/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { InputMessageContent, InputMessageContent$inboundSchema, InputMessageContent$Outbound, InputMessageContent$outboundSchema, } from "./inputmessagecontent.js"; import { Status, Status$inboundSchema, Status$outboundSchema, } from "./status.js"; /** * The role of the message sender (user, assistant, system, or developer). */ export const InputMessageRole = { User: "user", Assistant: "assistant", System: "system", Developer: "developer", } as const; /** * The role of the message sender (user, assistant, system, or developer). */ export type InputMessageRole = ClosedEnum; /** * The message content. Can be a simple text string or an array of multimodal content items (text, images, files, audio). */ export type InputMessageContent1 = string | Array; /** * Input message item: A message with role and content. Use this for user, assistant, system, or developer turns in structured inputs. */ export type InputMessage = { /** * The item type identifier. Always 'message' for message items. */ type?: "message" | undefined; /** * The role of the message sender (user, assistant, system, or developer). */ role: InputMessageRole; /** * The message content. Can be a simple text string or an array of multimodal content items (text, images, files, audio). */ content: string | Array; /** * The processing status of an individual item. 'in_progress' means currently processing, 'completed' means finished successfully, 'incomplete' means processing stopped before completion. */ status?: Status | undefined; id?: string | undefined; }; /** @internal */ export const InputMessageRole$inboundSchema: z.ZodNativeEnum< typeof InputMessageRole > = z.nativeEnum(InputMessageRole); /** @internal */ export const InputMessageRole$outboundSchema: z.ZodNativeEnum< typeof InputMessageRole > = InputMessageRole$inboundSchema; /** @internal */ export const InputMessageContent1$inboundSchema: z.ZodType< InputMessageContent1, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(InputMessageContent$inboundSchema)]); /** @internal */ export type InputMessageContent1$Outbound = | string | Array; /** @internal */ export const InputMessageContent1$outboundSchema: z.ZodType< InputMessageContent1$Outbound, z.ZodTypeDef, InputMessageContent1 > = z.union([z.string(), z.array(InputMessageContent$outboundSchema)]); export function inputMessageContent1ToJSON( inputMessageContent1: InputMessageContent1, ): string { return JSON.stringify( InputMessageContent1$outboundSchema.parse(inputMessageContent1), ); } export function inputMessageContent1FromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => InputMessageContent1$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'InputMessageContent1' from JSON`, ); } /** @internal */ export const InputMessage$inboundSchema: z.ZodType< InputMessage, z.ZodTypeDef, unknown > = z.object({ type: z.literal("message").optional(), role: InputMessageRole$inboundSchema, content: z.union([z.string(), z.array(InputMessageContent$inboundSchema)]), status: Status$inboundSchema.optional(), id: z.string().default("msg_aa87e2b1112a455b8deabed784372198"), }); /** @internal */ export type InputMessage$Outbound = { type?: "message" | undefined; role: string; content: string | Array; status?: string | undefined; id: string; }; /** @internal */ export const InputMessage$outboundSchema: z.ZodType< InputMessage$Outbound, z.ZodTypeDef, InputMessage > = z.object({ type: z.literal("message").optional(), role: InputMessageRole$outboundSchema, content: z.union([z.string(), z.array(InputMessageContent$outboundSchema)]), status: Status$outboundSchema.optional(), id: z.string().default("msg_aa87e2b1112a455b8deabed784372198"), }); export function inputMessageToJSON(inputMessage: InputMessage): string { return JSON.stringify(InputMessage$outboundSchema.parse(inputMessage)); } export function inputMessageFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => InputMessage$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'InputMessage' from JSON`, ); }