/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: 4b4abd9fb606 */ import * as z from "zod/v4"; import { safeParse } from "../../lib/schemas.js"; import * as discriminatedUnionTypes from "../../types/discriminatedUnion.js"; import { discriminatedUnion } from "../../types/discriminatedUnion.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { AudioChunk, AudioChunk$inboundSchema, AudioChunk$Outbound, AudioChunk$outboundSchema, } from "./audiochunk.js"; import { DocumentURLChunk, DocumentURLChunk$inboundSchema, DocumentURLChunk$Outbound, DocumentURLChunk$outboundSchema, } from "./documenturlchunk.js"; import { FileChunk, FileChunk$inboundSchema, FileChunk$Outbound, FileChunk$outboundSchema, } from "./filechunk.js"; import { ImageURLChunk, ImageURLChunk$inboundSchema, ImageURLChunk$Outbound, ImageURLChunk$outboundSchema, } from "./imageurlchunk.js"; import { ReferenceChunk, ReferenceChunk$inboundSchema, ReferenceChunk$Outbound, ReferenceChunk$outboundSchema, } from "./referencechunk.js"; import { TextChunk, TextChunk$inboundSchema, TextChunk$Outbound, TextChunk$outboundSchema, } from "./textchunk.js"; import { ThinkChunk, ThinkChunk$inboundSchema, ThinkChunk$Outbound, ThinkChunk$outboundSchema, } from "./thinkchunk.js"; export type ContentChunk = | (ImageURLChunk & { type: "image_url" }) | (DocumentURLChunk & { type: "document_url" }) | (TextChunk & { type: "text" }) | (ReferenceChunk & { type: "reference" }) | (FileChunk & { type: "file" }) | (ThinkChunk & { type: "thinking" }) | AudioChunk | discriminatedUnionTypes.Unknown<"type">; /** @internal */ export const ContentChunk$inboundSchema: z.ZodType = discriminatedUnion("type", { image_url: ImageURLChunk$inboundSchema.and( z.object({ type: z.literal("image_url") }), ), document_url: DocumentURLChunk$inboundSchema.and( z.object({ type: z.literal("document_url") }), ), text: TextChunk$inboundSchema.and(z.object({ type: z.literal("text") })), reference: ReferenceChunk$inboundSchema.and( z.object({ type: z.literal("reference") }), ), file: FileChunk$inboundSchema.and(z.object({ type: z.literal("file") })), thinking: ThinkChunk$inboundSchema.and( z.object({ type: z.literal("thinking") }), ), input_audio: AudioChunk$inboundSchema, }); /** @internal */ export type ContentChunk$Outbound = | (ImageURLChunk$Outbound & { type: "image_url" }) | (DocumentURLChunk$Outbound & { type: "document_url" }) | (TextChunk$Outbound & { type: "text" }) | (ReferenceChunk$Outbound & { type: "reference" }) | (FileChunk$Outbound & { type: "file" }) | (ThinkChunk$Outbound & { type: "thinking" }) | AudioChunk$Outbound; /** @internal */ export const ContentChunk$outboundSchema: z.ZodType< ContentChunk$Outbound, ContentChunk > = z.union([ ImageURLChunk$outboundSchema.and(z.object({ type: z.literal("image_url") })), DocumentURLChunk$outboundSchema.and( z.object({ type: z.literal("document_url") }), ), TextChunk$outboundSchema.and(z.object({ type: z.literal("text") })), ReferenceChunk$outboundSchema.and(z.object({ type: z.literal("reference") })), FileChunk$outboundSchema.and(z.object({ type: z.literal("file") })), ThinkChunk$outboundSchema.and(z.object({ type: z.literal("thinking") })), AudioChunk$outboundSchema, ]); export function contentChunkToJSON(contentChunk: ContentChunk): string { return JSON.stringify(ContentChunk$outboundSchema.parse(contentChunk)); } export function contentChunkFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ContentChunk$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ContentChunk' from JSON`, ); }