/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ConversationsItemsCreateRequest = { conversationId: string; /** * Optional external end-user identifier forwarded by the API gateway. */ xOnBehalfOf?: string | undefined; createItemsRequest: components.CreateItemsRequest; }; /** * The role of the message sender (user, assistant, system, or developer). */ export const DataRole = { User: "user", Assistant: "assistant", System: "system", Developer: "developer", } as const; /** * The role of the message sender (user, assistant, system, or developer). */ export type DataRole = ClosedEnum; /** * The message content. Can be a simple text string or an array of multimodal content items (text, images, files, audio). */ export type DataContent = 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 DataInputMessageItem = { /** * The item type identifier. Always 'message' for message items. */ type?: "message" | undefined; /** * The role of the message sender (user, assistant, system, or developer). */ role: DataRole; /** * 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?: components.Status | undefined; /** * The unique ID of the message. */ id: string; /** * The ID of the response that created this item, if any. */ responseId?: string | null | undefined; /** * Metadata from the response that created this item, if any. */ metadata?: { [k: string]: string } | null | undefined; }; export type ConversationsItemsCreateData = | components.ComputerToolCallWithId | components.CodeInterpreterToolCallWithId | components.OutputMessageWithId | components.OutputAudioItemWithId | components.FunctionToolCallWithId | components.LocalShellCallWithId | components.ShellCallWithId | components.MCPApprovalRequestWithId | components.MCPToolCallWithId | components.CustomToolCallWithId | components.FileSearchToolCallWithId | components.ComputerToolCallOutputWithId | components.WebSearchToolCallWithId | components.FunctionToolCallOutputWithId | components.ImageGenerationCallWithId | components.ShellCallOutputWithId | components.MCPListToolsWithId | components.MCPApprovalResponseWithId | components.CustomToolCallOutputWithId | DataInputMessageItem | components.ReasoningWithId | components.LocalShellCallOutputWithId | components.ResponseCompactionItemWithId | components.ItemReferenceWithId; /** * OK */ export type ConversationsItemsCreateResponseBody = { object?: "list" | undefined; /** * A list of conversation items. */ data: Array< | components.ComputerToolCallWithId | components.CodeInterpreterToolCallWithId | components.OutputMessageWithId | components.OutputAudioItemWithId | components.FunctionToolCallWithId | components.LocalShellCallWithId | components.ShellCallWithId | components.MCPApprovalRequestWithId | components.MCPToolCallWithId | components.CustomToolCallWithId | components.FileSearchToolCallWithId | components.ComputerToolCallOutputWithId | components.WebSearchToolCallWithId | components.FunctionToolCallOutputWithId | components.ImageGenerationCallWithId | components.ShellCallOutputWithId | components.MCPListToolsWithId | components.MCPApprovalResponseWithId | components.CustomToolCallOutputWithId | DataInputMessageItem | components.ReasoningWithId | components.LocalShellCallOutputWithId | components.ResponseCompactionItemWithId | components.ItemReferenceWithId >; /** * Whether there are more items */ hasMore: boolean; /** * ID of the last item in the current page */ lastId: string; }; /** @internal */ export const ConversationsItemsCreateRequest$inboundSchema: z.ZodType< ConversationsItemsCreateRequest, z.ZodTypeDef, unknown > = z.object({ conversation_id: z.string(), "X-On-Behalf-Of": z.string().optional(), CreateItemsRequest: components.CreateItemsRequest$inboundSchema, }).transform((v) => { return remap$(v, { "conversation_id": "conversationId", "X-On-Behalf-Of": "xOnBehalfOf", "CreateItemsRequest": "createItemsRequest", }); }); /** @internal */ export type ConversationsItemsCreateRequest$Outbound = { conversation_id: string; "X-On-Behalf-Of"?: string | undefined; CreateItemsRequest: components.CreateItemsRequest$Outbound; }; /** @internal */ export const ConversationsItemsCreateRequest$outboundSchema: z.ZodType< ConversationsItemsCreateRequest$Outbound, z.ZodTypeDef, ConversationsItemsCreateRequest > = z.object({ conversationId: z.string(), xOnBehalfOf: z.string().optional(), createItemsRequest: components.CreateItemsRequest$outboundSchema, }).transform((v) => { return remap$(v, { conversationId: "conversation_id", xOnBehalfOf: "X-On-Behalf-Of", createItemsRequest: "CreateItemsRequest", }); }); export function conversationsItemsCreateRequestToJSON( conversationsItemsCreateRequest: ConversationsItemsCreateRequest, ): string { return JSON.stringify( ConversationsItemsCreateRequest$outboundSchema.parse( conversationsItemsCreateRequest, ), ); } export function conversationsItemsCreateRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ConversationsItemsCreateRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ConversationsItemsCreateRequest' from JSON`, ); } /** @internal */ export const DataRole$inboundSchema: z.ZodNativeEnum = z .nativeEnum(DataRole); /** @internal */ export const DataRole$outboundSchema: z.ZodNativeEnum = DataRole$inboundSchema; /** @internal */ export const DataContent$inboundSchema: z.ZodType< DataContent, z.ZodTypeDef, unknown > = z.union([ z.string(), z.array(components.InputMessageContent$inboundSchema), ]); /** @internal */ export type DataContent$Outbound = | string | Array; /** @internal */ export const DataContent$outboundSchema: z.ZodType< DataContent$Outbound, z.ZodTypeDef, DataContent > = z.union([ z.string(), z.array(components.InputMessageContent$outboundSchema), ]); export function dataContentToJSON(dataContent: DataContent): string { return JSON.stringify(DataContent$outboundSchema.parse(dataContent)); } export function dataContentFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => DataContent$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'DataContent' from JSON`, ); } /** @internal */ export const DataInputMessageItem$inboundSchema: z.ZodType< DataInputMessageItem, z.ZodTypeDef, unknown > = z.object({ type: z.literal("message").optional(), role: DataRole$inboundSchema, content: z.union([ z.string(), z.array(components.InputMessageContent$inboundSchema), ]), status: components.Status$inboundSchema.optional(), id: z.string(), response_id: z.nullable(z.string()).optional(), metadata: z.nullable(z.record(z.string())).optional(), }).transform((v) => { return remap$(v, { "response_id": "responseId", }); }); /** @internal */ export type DataInputMessageItem$Outbound = { type?: "message" | undefined; role: string; content: string | Array; status?: string | undefined; id: string; response_id?: string | null | undefined; metadata?: { [k: string]: string } | null | undefined; }; /** @internal */ export const DataInputMessageItem$outboundSchema: z.ZodType< DataInputMessageItem$Outbound, z.ZodTypeDef, DataInputMessageItem > = z.object({ type: z.literal("message").optional(), role: DataRole$outboundSchema, content: z.union([ z.string(), z.array(components.InputMessageContent$outboundSchema), ]), status: components.Status$outboundSchema.optional(), id: z.string(), responseId: z.nullable(z.string()).optional(), metadata: z.nullable(z.record(z.string())).optional(), }).transform((v) => { return remap$(v, { responseId: "response_id", }); }); export function dataInputMessageItemToJSON( dataInputMessageItem: DataInputMessageItem, ): string { return JSON.stringify( DataInputMessageItem$outboundSchema.parse(dataInputMessageItem), ); } export function dataInputMessageItemFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => DataInputMessageItem$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'DataInputMessageItem' from JSON`, ); } /** @internal */ export const ConversationsItemsCreateData$inboundSchema: z.ZodType< ConversationsItemsCreateData, z.ZodTypeDef, unknown > = z.union([ components.ComputerToolCallWithId$inboundSchema, components.CodeInterpreterToolCallWithId$inboundSchema, components.OutputMessageWithId$inboundSchema, components.OutputAudioItemWithId$inboundSchema, components.FunctionToolCallWithId$inboundSchema, components.LocalShellCallWithId$inboundSchema, components.ShellCallWithId$inboundSchema, components.MCPApprovalRequestWithId$inboundSchema, components.MCPToolCallWithId$inboundSchema, components.CustomToolCallWithId$inboundSchema, components.FileSearchToolCallWithId$inboundSchema, components.ComputerToolCallOutputWithId$inboundSchema, components.WebSearchToolCallWithId$inboundSchema, components.FunctionToolCallOutputWithId$inboundSchema, components.ImageGenerationCallWithId$inboundSchema, components.ShellCallOutputWithId$inboundSchema, components.MCPListToolsWithId$inboundSchema, components.MCPApprovalResponseWithId$inboundSchema, components.CustomToolCallOutputWithId$inboundSchema, z.lazy(() => DataInputMessageItem$inboundSchema), components.ReasoningWithId$inboundSchema, components.LocalShellCallOutputWithId$inboundSchema, components.ResponseCompactionItemWithId$inboundSchema, components.ItemReferenceWithId$inboundSchema, ]); /** @internal */ export type ConversationsItemsCreateData$Outbound = | components.ComputerToolCallWithId$Outbound | components.CodeInterpreterToolCallWithId$Outbound | components.OutputMessageWithId$Outbound | components.OutputAudioItemWithId$Outbound | components.FunctionToolCallWithId$Outbound | components.LocalShellCallWithId$Outbound | components.ShellCallWithId$Outbound | components.MCPApprovalRequestWithId$Outbound | components.MCPToolCallWithId$Outbound | components.CustomToolCallWithId$Outbound | components.FileSearchToolCallWithId$Outbound | components.ComputerToolCallOutputWithId$Outbound | components.WebSearchToolCallWithId$Outbound | components.FunctionToolCallOutputWithId$Outbound | components.ImageGenerationCallWithId$Outbound | components.ShellCallOutputWithId$Outbound | components.MCPListToolsWithId$Outbound | components.MCPApprovalResponseWithId$Outbound | components.CustomToolCallOutputWithId$Outbound | DataInputMessageItem$Outbound | components.ReasoningWithId$Outbound | components.LocalShellCallOutputWithId$Outbound | components.ResponseCompactionItemWithId$Outbound | components.ItemReferenceWithId$Outbound; /** @internal */ export const ConversationsItemsCreateData$outboundSchema: z.ZodType< ConversationsItemsCreateData$Outbound, z.ZodTypeDef, ConversationsItemsCreateData > = z.union([ components.ComputerToolCallWithId$outboundSchema, components.CodeInterpreterToolCallWithId$outboundSchema, components.OutputMessageWithId$outboundSchema, components.OutputAudioItemWithId$outboundSchema, components.FunctionToolCallWithId$outboundSchema, components.LocalShellCallWithId$outboundSchema, components.ShellCallWithId$outboundSchema, components.MCPApprovalRequestWithId$outboundSchema, components.MCPToolCallWithId$outboundSchema, components.CustomToolCallWithId$outboundSchema, components.FileSearchToolCallWithId$outboundSchema, components.ComputerToolCallOutputWithId$outboundSchema, components.WebSearchToolCallWithId$outboundSchema, components.FunctionToolCallOutputWithId$outboundSchema, components.ImageGenerationCallWithId$outboundSchema, components.ShellCallOutputWithId$outboundSchema, components.MCPListToolsWithId$outboundSchema, components.MCPApprovalResponseWithId$outboundSchema, components.CustomToolCallOutputWithId$outboundSchema, z.lazy(() => DataInputMessageItem$outboundSchema), components.ReasoningWithId$outboundSchema, components.LocalShellCallOutputWithId$outboundSchema, components.ResponseCompactionItemWithId$outboundSchema, components.ItemReferenceWithId$outboundSchema, ]); export function conversationsItemsCreateDataToJSON( conversationsItemsCreateData: ConversationsItemsCreateData, ): string { return JSON.stringify( ConversationsItemsCreateData$outboundSchema.parse( conversationsItemsCreateData, ), ); } export function conversationsItemsCreateDataFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ConversationsItemsCreateData$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ConversationsItemsCreateData' from JSON`, ); } /** @internal */ export const ConversationsItemsCreateResponseBody$inboundSchema: z.ZodType< ConversationsItemsCreateResponseBody, z.ZodTypeDef, unknown > = z.object({ object: z.literal("list").optional(), data: z.array( z.union([ components.ComputerToolCallWithId$inboundSchema, components.CodeInterpreterToolCallWithId$inboundSchema, components.OutputMessageWithId$inboundSchema, components.OutputAudioItemWithId$inboundSchema, components.FunctionToolCallWithId$inboundSchema, components.LocalShellCallWithId$inboundSchema, components.ShellCallWithId$inboundSchema, components.MCPApprovalRequestWithId$inboundSchema, components.MCPToolCallWithId$inboundSchema, components.CustomToolCallWithId$inboundSchema, components.FileSearchToolCallWithId$inboundSchema, components.ComputerToolCallOutputWithId$inboundSchema, components.WebSearchToolCallWithId$inboundSchema, components.FunctionToolCallOutputWithId$inboundSchema, components.ImageGenerationCallWithId$inboundSchema, components.ShellCallOutputWithId$inboundSchema, components.MCPListToolsWithId$inboundSchema, components.MCPApprovalResponseWithId$inboundSchema, components.CustomToolCallOutputWithId$inboundSchema, z.lazy(() => DataInputMessageItem$inboundSchema), components.ReasoningWithId$inboundSchema, components.LocalShellCallOutputWithId$inboundSchema, components.ResponseCompactionItemWithId$inboundSchema, components.ItemReferenceWithId$inboundSchema, ]), ), has_more: z.boolean(), last_id: z.string(), }).transform((v) => { return remap$(v, { "has_more": "hasMore", "last_id": "lastId", }); }); /** @internal */ export type ConversationsItemsCreateResponseBody$Outbound = { object?: "list" | undefined; data: Array< | components.ComputerToolCallWithId$Outbound | components.CodeInterpreterToolCallWithId$Outbound | components.OutputMessageWithId$Outbound | components.OutputAudioItemWithId$Outbound | components.FunctionToolCallWithId$Outbound | components.LocalShellCallWithId$Outbound | components.ShellCallWithId$Outbound | components.MCPApprovalRequestWithId$Outbound | components.MCPToolCallWithId$Outbound | components.CustomToolCallWithId$Outbound | components.FileSearchToolCallWithId$Outbound | components.ComputerToolCallOutputWithId$Outbound | components.WebSearchToolCallWithId$Outbound | components.FunctionToolCallOutputWithId$Outbound | components.ImageGenerationCallWithId$Outbound | components.ShellCallOutputWithId$Outbound | components.MCPListToolsWithId$Outbound | components.MCPApprovalResponseWithId$Outbound | components.CustomToolCallOutputWithId$Outbound | DataInputMessageItem$Outbound | components.ReasoningWithId$Outbound | components.LocalShellCallOutputWithId$Outbound | components.ResponseCompactionItemWithId$Outbound | components.ItemReferenceWithId$Outbound >; has_more: boolean; last_id: string; }; /** @internal */ export const ConversationsItemsCreateResponseBody$outboundSchema: z.ZodType< ConversationsItemsCreateResponseBody$Outbound, z.ZodTypeDef, ConversationsItemsCreateResponseBody > = z.object({ object: z.literal("list").optional(), data: z.array( z.union([ components.ComputerToolCallWithId$outboundSchema, components.CodeInterpreterToolCallWithId$outboundSchema, components.OutputMessageWithId$outboundSchema, components.OutputAudioItemWithId$outboundSchema, components.FunctionToolCallWithId$outboundSchema, components.LocalShellCallWithId$outboundSchema, components.ShellCallWithId$outboundSchema, components.MCPApprovalRequestWithId$outboundSchema, components.MCPToolCallWithId$outboundSchema, components.CustomToolCallWithId$outboundSchema, components.FileSearchToolCallWithId$outboundSchema, components.ComputerToolCallOutputWithId$outboundSchema, components.WebSearchToolCallWithId$outboundSchema, components.FunctionToolCallOutputWithId$outboundSchema, components.ImageGenerationCallWithId$outboundSchema, components.ShellCallOutputWithId$outboundSchema, components.MCPListToolsWithId$outboundSchema, components.MCPApprovalResponseWithId$outboundSchema, components.CustomToolCallOutputWithId$outboundSchema, z.lazy(() => DataInputMessageItem$outboundSchema), components.ReasoningWithId$outboundSchema, components.LocalShellCallOutputWithId$outboundSchema, components.ResponseCompactionItemWithId$outboundSchema, components.ItemReferenceWithId$outboundSchema, ]), ), hasMore: z.boolean(), lastId: z.string(), }).transform((v) => { return remap$(v, { hasMore: "has_more", lastId: "last_id", }); }); export function conversationsItemsCreateResponseBodyToJSON( conversationsItemsCreateResponseBody: ConversationsItemsCreateResponseBody, ): string { return JSON.stringify( ConversationsItemsCreateResponseBody$outboundSchema.parse( conversationsItemsCreateResponseBody, ), ); } export function conversationsItemsCreateResponseBodyFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ConversationsItemsCreateResponseBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ConversationsItemsCreateResponseBody' from JSON`, ); }