/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: 6fea816fa63c */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ChatFile, ChatFile$inboundSchema, ChatFile$Outbound, ChatFile$outboundSchema, } from "./chatfile.js"; import { ChatMessageCitation, ChatMessageCitation$inboundSchema, ChatMessageCitation$Outbound, ChatMessageCitation$outboundSchema, } from "./chatmessagecitation.js"; import { QuerySuggestion, QuerySuggestion$inboundSchema, QuerySuggestion$Outbound, QuerySuggestion$outboundSchema, } from "./querysuggestion.js"; import { StructuredResult, StructuredResult$inboundSchema, StructuredResult$Outbound, StructuredResult$outboundSchema, } from "./structuredresult.js"; import { ToolInfo, ToolInfo$inboundSchema, ToolInfo$Outbound, ToolInfo$outboundSchema, } from "./toolinfo.js"; /** * Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation, followupRoutingSuggestion or file. */ export type ChatMessageFragment = { /** * An array of entities in the work graph retrieved via a data request. */ structuredResults?: Array | undefined; /** * An opaque token that represents this particular result in this particular query. To be used for /feedback reporting. */ trackingToken?: string | undefined; text?: string | undefined; querySuggestion?: QuerySuggestion | undefined; /** * Structure for file uploaded by a user for Chat. */ file?: ChatFile | undefined; action?: ToolInfo | undefined; /** * Information about the source for a ChatMessage. */ citation?: ChatMessageCitation | undefined; }; /** @internal */ export const ChatMessageFragment$inboundSchema: z.ZodType< ChatMessageFragment, z.ZodTypeDef, unknown > = z.object({ structuredResults: z.array(StructuredResult$inboundSchema).optional(), trackingToken: z.string().optional(), text: z.string().optional(), querySuggestion: QuerySuggestion$inboundSchema.optional(), file: ChatFile$inboundSchema.optional(), action: ToolInfo$inboundSchema.optional(), citation: ChatMessageCitation$inboundSchema.optional(), }); /** @internal */ export type ChatMessageFragment$Outbound = { structuredResults?: Array | undefined; trackingToken?: string | undefined; text?: string | undefined; querySuggestion?: QuerySuggestion$Outbound | undefined; file?: ChatFile$Outbound | undefined; action?: ToolInfo$Outbound | undefined; citation?: ChatMessageCitation$Outbound | undefined; }; /** @internal */ export const ChatMessageFragment$outboundSchema: z.ZodType< ChatMessageFragment$Outbound, z.ZodTypeDef, ChatMessageFragment > = z.object({ structuredResults: z.array(StructuredResult$outboundSchema).optional(), trackingToken: z.string().optional(), text: z.string().optional(), querySuggestion: QuerySuggestion$outboundSchema.optional(), file: ChatFile$outboundSchema.optional(), action: ToolInfo$outboundSchema.optional(), citation: ChatMessageCitation$outboundSchema.optional(), }); export function chatMessageFragmentToJSON( chatMessageFragment: ChatMessageFragment, ): string { return JSON.stringify( ChatMessageFragment$outboundSchema.parse(chatMessageFragment), ); } export function chatMessageFragmentFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ChatMessageFragment$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ChatMessageFragment' from JSON`, ); }