{"version":3,"sources":["../src/chat/chat-response.ts","../src/message/roles.ts","../src/message/content/error.ts","../src/message/content/image-content.ts","../src/message/content/pdf-content.ts","../src/message/content/reasoning-content.ts","../src/message/content/search-result.ts","../src/message/content/text-content.ts","../src/message/content/tool-call-content.ts","../src/message/content/tool-response-content.ts","../src/message/content/content.ts","../src/message/content/token-content.ts","../src/message/message.ts","../src/config/config.ts","../src/config/mcp.config.ts","../src/config/response-schema.config.ts","../src/embedding/embedding-requests.ts","../src/embedding/embedding-response.ts","../src/errors/gateway-base.error.ts","../src/pricing/pricing-tiers.ts","../src/pricing/embedding-pricing.ts","../src/tool/function-tool.ts","../src/tool/tool.ts","../src/utils/create-message.ts","../src/utils/merge-partial-messages.ts"],"names":["SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","RoleLiterals","RoleEnum","z","PartialRoleLiterals","PartialRoleEnum","ErrorModalityLiteral","SafetyErrorTypeLiteral","SafetyErrorContentValue","ResponseErrorTypeLiteral","ResponseErrorContentValue","ErrorContent","Metadata","PartialErrorModalityLiteral","PartialSafetyErrorContentValue","PartialResponseErrorContentValue","PartialErrorContent","ImageModalityLiteral","Base64ImageContentTypeLiteral","Base64ImageContentMediaTypeLiterals","Base64ImageContentValue","UrlImageContentTypeLiteral","UrlImageContentValue","ImageContentValue","ImageContentDetails","ImageContentDetailsLiteral","ImageContent","PdfModalityLiteral","Base64PdfContentTypeLiteral","Base64PdfContentValue","UrlPdfContentTypeLiteral","UrlPdfContentValue","PdfContentValue","PdfContent","ReasoningModalityLiteral","PartialReasoningModalityLiteral","ReasoningContentTypeLiteral","RedactedReasoningContentTypeLiteral","ReasoningContentValue","RedactedReasoningContentValue","ReasoningContentValueUnion","ReasoningContent","PartialReasoningContentValue","PartialReasoningContentValueUnion","PartialReasoningContent","SearchResultModalityLiteral","SearchResultContentValue","SearchResultContent","PartialSearchResultModalityLiteral","PartialSearchResultContentValue","PartialSearchResultContent","TextModalityLiteral","TextContent","PartialTextModalityLiteral","PartialTextContent","ToolCallModalityLiteral","ToolCallContent","PartialToolCallModalityLiteral","PartialToolCallContent","ToolResponseModalityLiteral","ToolResponseContent","PartialToolResponseModalityLiteral","PartialToolResponseContent","ModalityLiterals","ModalityEnum","Content","TextContentMetadata","ImageContentMetadata","PdfContentMetadata","ToolCallContentMetadata","ToolResponseContentMetadata","ReasoningContentMetadata","ErrorContentMetadata","SearchResultContentMetadata","PartialModalityLiterals","PartialModalityEnum","PartialContent","PartialTextContentMetadata","PartialToolCallContentMetadata","PartialToolResponseContentMetadata","PartialReasoningContentMetadata","PartialErrorContentMetadata","PartialSearchResultContentMetadata","TokenModalityLiteral","TokenContent","Message","Role","MessageMetadata","PartialMessage","ChatUsage","ChatBaseLogProb","ChatLogProb","ChatLogProbs","ChatResponse","PartialChatUsage","PartialChatResponse","Config","McpServerToolConfiguration","McpServer","url","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","EmbeddingModalityLiterals","EmbeddingModalityEnum","TextEmbeddingRequests","TokenEmbeddingRequests","EmbeddingRequests","FloatEmbeddingLiteral","FloatEmbedding","Base64EmbeddingLiteral","Base64Embedding","EmbeddingsUsage","EmbeddingResponse","safeStringify","obj","seen","key","value","getErrorMessage","error","GatewayBaseErrorLiteral","GatewayBaseError","_GatewayBaseError","info","cause","name","ChatModelTokenPairPrice","ChatModelTokenTypePrice","ChatModelTokenRangePrice","t","ChatModelPrice","data","ctx","tokenRanges","i","prev","curr","last","EmbeddingModelPrice","FunctionToolLiteral","FunctionParameterTypes","FunctionParameterTypesLiteral","FunctionParameter","FunctionParameters","Function","ToolTypes","ToolTypesLiteral","FunctionRequestRetry","FunctionRequestHttp","FunctionRequest","FunctionTool","ToolLiterals","ToolEnum","Tool","FunctionToolMetadata","createTextContent","content","createToolCallContent","index","id","args","serverName","thoughtSignature","createToolResponseContent","apiResponse","metadata","createTextMessage","role","createUrlImageMessage","detail","createBase64ImageMessage","base64","createToolCallMessage","createToolResponseMessage","createPartialTextMessage","createPartialToolCallMessage","createPartialToolResponseMessage","createReasoningContent","thinking","signature","createReasoningMessage","createRedactedReasoningContent","createRedactedReasoningMessage","createPartialReasoningMessage","createPartialRedactedReasoningMessage","createSafetyErrorContent","category","probability","blocked","message","createPartialSafetyErrorContent","createPartialSafetyErrorMessage","createResponseErrorContent","code","provider","createPartialResponseErrorContent","createPartialResponseErrorMessage","createSearchResultContent","type","query","responses","references","createPartialSearchResultContent","createPartialSearchResultMessage","mergePartialMessages","response","_a","finalizedResponse","mergedContents","lastModality","lastReasoningType","lastToolCallIndex","lastToolResponseIndex","currentTextValue","currentToolCall","currentToolResponse","currentReasoning","currentSearchResult","currentError","finalizePreviousBlock","_b","_c","_d","_e","_f","_g","_h","_i","finalizedContent","__spreadValues","hasQuery","hasResponses","hasReferences","r","ref","chatChunk","chunkIndex","messageIndex","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","currentContent","currentModality","currentReasoningType","currentToolCallIndex","currentToolResponseIndex","textPart","toolCallPart","toolResponsePart","valuePart","incoming","firstPrompt","lastPrompt","totalCompletion","usageFound","aggregatedUsage","chunk","u"],"mappings":"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","file":"index.mjs","sourcesContent":["import { z } from \"zod\";\n\nimport { Message, PartialMessage } from \"./../message\";\n\nconst ChatUsage = z.object({\n  promptTokens: z.number().nonnegative(),\n  completionTokens: z.number().nonnegative(),\n  totalTokens: z.number().nonnegative(),\n});\ntype ChatUsageType = z.infer<typeof ChatUsage>;\n\nconst ChatBaseLogProb = z.object({\n  token: z.string(),\n  logProb: z.number(),\n  bytes: z.array(z.number().int()).nullable(),\n});\ntype ChatBaseLogProbType = z.infer<typeof ChatBaseLogProb>;\n\nconst ChatLogProb = ChatBaseLogProb.extend({\n  topLogProbs: z.array(ChatBaseLogProb),\n});\ntype ChatLogProbType = z.infer<typeof ChatLogProb>;\n\nconst ChatLogProbs = z.array(ChatLogProb);\ntype ChatLogProbsType = z.infer<typeof ChatLogProbs>;\n\nconst ChatResponse = z.object({\n  messages: z.array(Message()),\n  usage: ChatUsage.optional(),\n  logProbs: ChatLogProbs.optional(),\n});\ntype ChatResponseType = z.infer<typeof ChatResponse>;\n\nconst PartialChatUsage = z.object({\n  promptTokens: z.number().nonnegative().optional(),\n  completionTokens: z.number().nonnegative().optional(),\n  totalTokens: z.number().nonnegative().optional(),\n});\n\ntype PartialChatUsageType = z.infer<typeof PartialChatUsage>;\n\nconst PartialChatResponse = z.object({\n  partialMessages: z.array(PartialMessage()),\n  usage: PartialChatUsage.optional(),\n  logProbs: ChatLogProbs.optional(),\n});\ntype PartialChatResponseType = z.infer<typeof PartialChatResponse>;\n\nexport {\n  ChatBaseLogProb,\n  ChatLogProb,\n  ChatLogProbs,\n  ChatResponse,\n  ChatUsage,\n  PartialChatResponse,\n  PartialChatUsage,\n  type ChatBaseLogProbType,\n  type ChatLogProbsType,\n  type ChatLogProbType,\n  type ChatResponseType,\n  type ChatUsageType,\n  type PartialChatResponseType,\n  type PartialChatUsageType,\n};\n","import { z } from \"zod\";\n\nconst SystemRoleLiteral = \"system\" as const;\nconst UserRoleLiteral = \"user\" as const;\nconst AssistantRoleLiteral = \"assistant\" as const;\nconst ToolRoleLiteral = \"tool\" as const;\n\nconst RoleLiterals = [SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral] as const;\nconst RoleEnum = z.enum(RoleLiterals);\ntype RoleEnumType = z.infer<typeof RoleEnum>;\n\nconst PartialRoleLiterals = [AssistantRoleLiteral] as const;\nconst PartialRoleEnum = z.enum(PartialRoleLiterals);\ntype PartialRoleEnumType = z.infer<typeof PartialRoleEnum>;\n\nexport {\n  UserRoleLiteral,\n  ToolRoleLiteral,\n  SystemRoleLiteral,\n  AssistantRoleLiteral,\n  RoleEnum,\n  RoleLiterals,\n  PartialRoleEnum,\n  PartialRoleLiterals,\n  type RoleEnumType,\n  type PartialRoleEnumType,\n};\n","import { z } from \"zod\";\n\nconst ErrorModalityLiteral = \"error\" as const;\n\nconst SafetyErrorTypeLiteral = \"safety\" as const;\n\nconst SafetyErrorContentValue = z.object({\n  type: z.literal(SafetyErrorTypeLiteral),\n  value: z.object({\n    category: z.string(),\n    probability: z.string(),\n    blocked: z.boolean(),\n    message: z.string(),\n  }),\n});\ntype SafetyErrorContentType = z.infer<typeof SafetyErrorContentValue>;\n\nconst ResponseErrorTypeLiteral = \"response_error\" as const;\n\nconst ResponseErrorContentValue = z.object({\n  type: z.literal(ResponseErrorTypeLiteral),\n  value: z.object({\n    code: z.string(),\n    message: z.string(),\n    provider: z.string().optional(),\n  }),\n});\ntype ResponseErrorContentType = z.infer<typeof ResponseErrorContentValue>;\n\nconst ErrorContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(ErrorModalityLiteral),\n    value: z.discriminatedUnion(\"type\", [SafetyErrorContentValue, ResponseErrorContentValue]),\n    metadata: Metadata,\n  });\ntype ErrorContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ErrorContent<M>>>;\n\nconst PartialErrorModalityLiteral = \"partial-error\" as const;\n\nconst PartialSafetyErrorContentValue = z.object({\n  type: z.literal(SafetyErrorTypeLiteral),\n  category: z.string().optional(),\n  probability: z.string().optional(),\n  blocked: z.boolean().optional(),\n  message: z.string().optional(),\n});\ntype PartialSafetyErrorContentType = z.infer<typeof PartialSafetyErrorContentValue>;\n\nconst PartialResponseErrorContentValue = z.object({\n  type: z.literal(ResponseErrorTypeLiteral),\n  code: z.string().optional(),\n  message: z.string().optional(),\n  provider: z.string().optional(),\n});\ntype PartialResponseErrorContentType = z.infer<typeof PartialResponseErrorContentValue>;\n\nconst PartialErrorContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(PartialErrorModalityLiteral),\n    value: z.discriminatedUnion(\"type\", [PartialSafetyErrorContentValue, PartialResponseErrorContentValue]),\n    metadata: Metadata,\n  });\ntype PartialErrorContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialErrorContent<M>>>;\n\nexport {\n  ErrorContent,\n  PartialErrorContent,\n  ErrorModalityLiteral,\n  PartialErrorModalityLiteral,\n  SafetyErrorTypeLiteral,\n  SafetyErrorContentValue,\n  ResponseErrorTypeLiteral,\n  ResponseErrorContentValue,\n  PartialResponseErrorContentValue,\n  type SafetyErrorContentType,\n  type PartialSafetyErrorContentType,\n  type ResponseErrorContentType,\n  type PartialResponseErrorContentType,\n  type ErrorContentType,\n  type PartialErrorContentType,\n};\n","import { z } from \"zod\";\n\nconst ImageModalityLiteral = \"image\" as const;\n\nconst Base64ImageContentTypeLiteral = \"base64\" as const;\nconst Base64ImageContentMediaTypeLiterals = [\"png\", \"jpeg\", \"webp\", \"gif\"] as const;\nconst Base64ImageContentValue = z.object({\n  type: z.literal(Base64ImageContentTypeLiteral),\n  base64: z.string(),\n  mediaType: z.enum(Base64ImageContentMediaTypeLiterals),\n});\ntype Base64ImageContentValueType = z.infer<typeof Base64ImageContentValue>;\n\nconst UrlImageContentTypeLiteral = \"url\" as const;\nconst UrlImageContentValue = z.object({\n  type: z.literal(UrlImageContentTypeLiteral),\n  url: z.string(),\n});\ntype UrlImageContentValueType = z.infer<typeof UrlImageContentValue>;\n\nconst ImageContentValue = z.discriminatedUnion(\"type\", [Base64ImageContentValue, UrlImageContentValue]);\ntype ImageContentValueType = z.infer<typeof ImageContentValue>;\n\nconst ImageContentDetails = [\"low\", \"medium\", \"high\", \"auto\"] as const;\nconst ImageContentDetailsLiteral = z.enum(ImageContentDetails);\ntype ImageContentDetailsLiteralType = z.infer<typeof ImageContentDetailsLiteral>;\nconst ImageContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(ImageModalityLiteral),\n    detail: ImageContentDetailsLiteral,\n    value: ImageContentValue,\n    metadata: Metadata,\n  });\ntype ImageContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ImageContent<M>>>;\n\nexport {\n  Base64ImageContentValue,\n  ImageContent,\n  ImageContentDetails,\n  ImageContentDetailsLiteral,\n  ImageModalityLiteral,\n  UrlImageContentValue,\n  UrlImageContentTypeLiteral,\n  Base64ImageContentTypeLiteral,\n  Base64ImageContentMediaTypeLiterals,\n  type Base64ImageContentValueType,\n  type ImageContentDetailsLiteralType,\n  type ImageContentType,\n  type ImageContentValueType,\n  type UrlImageContentValueType,\n};\n","import { z } from \"zod\";\n\nconst PdfModalityLiteral = \"pdf\" as const;\n\nconst Base64PdfContentTypeLiteral = \"base64\" as const;\nconst Base64PdfContentValue = z.object({\n  type: z.literal(Base64PdfContentTypeLiteral),\n  base64: z.string(),\n});\ntype Base64PdfContentValueType = z.infer<typeof Base64PdfContentValue>;\n\nconst UrlPdfContentTypeLiteral = \"url\" as const;\nconst UrlPdfContentValue = z.object({\n  type: z.literal(UrlPdfContentTypeLiteral),\n  url: z.string(),\n});\ntype UrlPdfContentValueType = z.infer<typeof UrlPdfContentValue>;\n\nconst PdfContentValue = z.discriminatedUnion(\"type\", [Base64PdfContentValue, UrlPdfContentValue]);\ntype PdfContentValueType = z.infer<typeof PdfContentValue>;\n\nconst PdfContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(PdfModalityLiteral),\n    value: PdfContentValue,\n    file: z.object({\n      name: z.string(),\n      id: z.string(),\n      size: z.number().optional(),\n    }),\n    metadata: Metadata,\n  });\ntype PdfContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PdfContent<M>>>;\n\nexport {\n  Base64PdfContentValue,\n  PdfContent,\n  PdfModalityLiteral,\n  UrlPdfContentValue,\n  UrlPdfContentTypeLiteral,\n  Base64PdfContentTypeLiteral,\n  type Base64PdfContentValueType,\n  type PdfContentType,\n  type PdfContentValueType,\n  type UrlPdfContentValueType,\n};\n","import { z } from \"zod\";\n\nconst ReasoningModalityLiteral = \"reasoning\" as const;\nconst PartialReasoningModalityLiteral = \"partial-reasoning\" as const;\n\nconst ReasoningContentTypeLiteral = \"thinking\" as const;\nconst RedactedReasoningContentTypeLiteral = \"redacted\" as const;\n\nconst ReasoningContentValue = z.object({\n  type: z.literal(ReasoningContentTypeLiteral),\n  thinking: z.string(),\n  signature: z.string(),\n});\ntype ReasoningContentValueType = z.infer<typeof ReasoningContentValue>;\n\nconst RedactedReasoningContentValue = z.object({\n  type: z.literal(RedactedReasoningContentTypeLiteral),\n  data: z.string()\n});\ntype RedactedReasoningContentValueType = z.infer<typeof RedactedReasoningContentValue>;\n\nconst ReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ ReasoningContentValue, RedactedReasoningContentValue ]);\ntype ReasoningContentValueUnionType = z.infer<typeof ReasoningContentValueUnion>;\n\nconst ReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(ReasoningModalityLiteral),\n    value: ReasoningContentValueUnion,\n    metadata: Metadata,\n  });\n\ntype ReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ReasoningContent<M>>>;\n\nconst PartialReasoningContentValue = z.object({\n  type: z.literal(ReasoningContentTypeLiteral),\n  thinking: ReasoningContentValue.shape.thinking.optional(),\n  signature: ReasoningContentValue.shape.signature.optional(),\n});\nconst PartialReasoningContentValueUnion = z.discriminatedUnion(\"type\", [ \n  PartialReasoningContentValue, \n  RedactedReasoningContentValue \n]);\n\nconst PartialReasoningContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(PartialReasoningModalityLiteral),\n    value: PartialReasoningContentValueUnion,\n    metadata: Metadata,\n  });\ntype PartialReasoningContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialReasoningContent<M>>>;\n\nexport {\n  ReasoningContent,\n  PartialReasoningContent,\n  PartialReasoningModalityLiteral,\n  ReasoningContentTypeLiteral,\n  ReasoningContentValue,\n  PartialReasoningContentValue,\n  ReasoningContentValueUnion,\n  PartialReasoningContentValueUnion,\n  ReasoningModalityLiteral,\n  RedactedReasoningContentTypeLiteral,\n  RedactedReasoningContentValue,\n  type PartialReasoningContentType,\n  type ReasoningContentType,\n  type ReasoningContentValueType,\n  type ReasoningContentValueUnionType,\n  type RedactedReasoningContentValueType,\n};\n","import { z } from \"zod\";\n\nconst SearchResultModalityLiteral = \"search-result\" as const;\n\nconst SearchResultContentValue = z.object({\n  type: z.string().optional(),\n  query: z.string(),\n  responses: z.array(\n    z.object({\n      source: z.string(),\n      url: z.string(),\n      title: z.string(),\n      snippet: z.string().optional(),\n    })\n  ),\n  references: z.array(\n    z.object({\n      text: z.string(),\n      responseIndices: z.array(z.number()),\n      startIndex: z.number().optional(),\n      endIndex: z.number().optional(),\n      confidenceScores: z.array(z.number()).optional(),\n    })\n  ),\n});\ntype SearchResultContentValueType = z.infer<typeof SearchResultContentValue>;\n\nconst SearchResultContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(SearchResultModalityLiteral),\n    value: SearchResultContentValue,\n    metadata: Metadata,\n  });\ntype SearchResultContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof SearchResultContent<M>>>;\n\nconst PartialSearchResultModalityLiteral = \"partial-search-result\" as const;\n\nconst PartialSearchResultContentValue = z.object({\n  type: z.string().optional(),\n  query: z.string().optional(),\n  responses: z\n    .array(\n      z.object({\n        source: z.string().optional(),\n        url: z.string().optional(),\n        title: z.string().optional(),\n        snippet: z.string().optional(),\n      })\n    )\n    .optional(),\n  references: z\n    .array(\n      z.object({\n        text: z.string().optional(),\n        responseIndices: z.array(z.number()).optional(),\n        startIndex: z.number().optional(),\n        endIndex: z.number().optional(),\n        confidenceScores: z.array(z.number()).optional(),\n      })\n    )\n    .optional(),\n});\ntype PartialSearchResultContentValueType = z.infer<typeof PartialSearchResultContentValue>;\n\nconst PartialSearchResultContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(PartialSearchResultModalityLiteral),\n    value: PartialSearchResultContentValue,\n    metadata: Metadata,\n  });\ntype PartialSearchResultContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialSearchResultContent<M>>>;\n\nexport {\n  PartialSearchResultModalityLiteral,\n  PartialSearchResultContent,\n  PartialSearchResultContentValue,\n  SearchResultModalityLiteral,\n  SearchResultContent,\n  SearchResultContentValue,\n  type SearchResultContentType,\n  type SearchResultContentValueType,\n  type PartialSearchResultContentType,\n  type PartialSearchResultContentValueType,\n};\n","import { z } from \"zod\";\n\nconst TextModalityLiteral = \"text\" as const;\n\nconst TextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(TextModalityLiteral),\n    value: z.string(),\n    metadata: Metadata,\n  });\ntype TextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TextContent<M>>>;\nconst PartialTextModalityLiteral = \"partial-text\" as const;\n\nconst PartialTextContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(PartialTextModalityLiteral),\n    value: z.string(),\n    metadata: Metadata,\n  });\ntype PartialTextContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialTextContent<M>>>;\n\nexport {\n  TextContent,\n  PartialTextContent,\n  TextModalityLiteral,\n  PartialTextModalityLiteral,\n  type TextContentType,\n  type PartialTextContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolCallModalityLiteral = \"tool-call\" as const;\n\nconst ToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(ToolCallModalityLiteral),\n    index: z.number().int().nonnegative(),\n    id: z.string().min(1),\n    name: z.string().min(1),\n    arguments: z.string(),\n    serverName: z.string().optional(),\n    thoughtSignature: z.string().optional(),\n    metadata: Metadata,\n  });\ntype ToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolCallContent<M>>>;\nconst PartialToolCallModalityLiteral = \"partial-tool-call\" as const;\n\nconst PartialToolCallContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(PartialToolCallModalityLiteral),\n    index: z.number().int().nonnegative(),\n    id: z.string().optional(),\n    name: z.string().optional(),\n    arguments: z.string().optional(),\n    serverName: z.string().optional(),\n    thoughtSignature: z.string().optional(),\n    metadata: Metadata,\n  });\ntype PartialToolCallContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolCallContent<M>>>;\n\nexport {\n  PartialToolCallContent,\n  PartialToolCallModalityLiteral,\n  ToolCallContent,\n  ToolCallModalityLiteral,\n  type PartialToolCallContentType,\n  type ToolCallContentType,\n};\n","import { z } from \"zod\";\n\nconst ToolResponseModalityLiteral = \"tool-response\" as const;\n\nconst ToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(ToolResponseModalityLiteral),\n    index: z.number().int().nonnegative(),\n    id: z.string().min(1),\n    name: z.string().min(1),\n    data: z.string(),\n    apiResponse: z\n      .object({\n        statusCode: z.number().int().nonnegative(),\n      })\n      .optional(),\n    metadata: Metadata,\n  });\ntype ToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof ToolResponseContent<M>>>;\n\nconst PartialToolResponseModalityLiteral = \"partial-tool-response\" as const;\n\nconst PartialToolResponseContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(PartialToolResponseModalityLiteral),\n    index: z.number().int().nonnegative(),\n    id: z.string().optional(),\n    name: z.string().optional(),\n    data: z.string().optional(),\n    apiResponse: z\n      .object({\n        statusCode: z.number().int().nonnegative(),\n      })\n      .optional(),\n    metadata: Metadata,\n  });\ntype PartialToolResponseContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof PartialToolResponseContent<M>>>;\n\nexport {\n  PartialToolResponseContent,\n  PartialToolResponseModalityLiteral,\n  ToolResponseContent,\n  ToolResponseModalityLiteral,\n  type PartialToolResponseContentType,\n  type ToolResponseContentType,\n};\n","import { z } from \"zod\";\n\nimport { ErrorContent, ErrorModalityLiteral, PartialErrorContent, PartialErrorModalityLiteral } from \"./error\";\nimport { ImageContent, ImageModalityLiteral } from \"./image-content\";\nimport { PdfContent, PdfModalityLiteral } from \"./pdf-content\";\nimport { PartialReasoningContent, PartialReasoningModalityLiteral, ReasoningContent, ReasoningModalityLiteral } from \"./reasoning-content\";\nimport { PartialSearchResultContent, PartialSearchResultModalityLiteral, SearchResultContent, SearchResultModalityLiteral } from \"./search-result\";\nimport { PartialTextContent, PartialTextModalityLiteral, TextContent, TextModalityLiteral } from \"./text-content\";\nimport { PartialToolCallContent, PartialToolCallModalityLiteral, ToolCallContent, ToolCallModalityLiteral } from \"./tool-call-content\";\nimport { PartialToolResponseContent, ToolResponseContent, ToolResponseModalityLiteral } from \"./tool-response-content\";\n\nconst ModalityLiterals = [\n  TextModalityLiteral,\n  ImageModalityLiteral,\n  PdfModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n  ReasoningModalityLiteral,\n  ErrorModalityLiteral,\n  SearchResultModalityLiteral,\n] as const;\nconst ModalityEnum = z.enum(ModalityLiterals);\ntype ModalityEnumType = z.infer<typeof ModalityEnum>;\n\nconst Content = <\n  TCM extends z.ZodTypeAny = z.ZodUndefined,\n  ICM extends z.ZodTypeAny = z.ZodUndefined,\n  PCM extends z.ZodTypeAny = z.ZodUndefined,\n  TCCM extends z.ZodTypeAny = z.ZodUndefined,\n  TRCM extends z.ZodTypeAny = z.ZodUndefined,\n  RCM extends z.ZodTypeAny = z.ZodUndefined,\n  ECM extends z.ZodTypeAny = z.ZodUndefined,\n  SRCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n  TextContentMetadata: TCM = z.undefined() as TCM,\n  ImageContentMetadata: ICM = z.undefined() as ICM,\n  PdfContentMetadata: PCM = z.undefined() as PCM,\n  ToolCallContentMetadata: TCCM = z.undefined() as TCCM,\n  ToolResponseContentMetadata: TRCM = z.undefined() as TRCM,\n  ReasoningContentMetadata: RCM = z.undefined() as RCM,\n  ErrorContentMetadata: ECM = z.undefined() as ECM,\n  SearchResultContentMetadata: SRCM = z.undefined() as SRCM\n) =>\n  z.discriminatedUnion(\"modality\", [\n    TextContent(TextContentMetadata),\n    ImageContent(ImageContentMetadata),\n    PdfContent(PdfContentMetadata),\n    ToolCallContent(ToolCallContentMetadata),\n    ToolResponseContent(ToolResponseContentMetadata),\n    ReasoningContent(ReasoningContentMetadata),\n    ErrorContent(ErrorContentMetadata),\n    SearchResultContent(SearchResultContentMetadata),\n  ]);\ntype ContentType<\n  TCM extends z.ZodTypeAny = z.ZodUndefined,\n  ICM extends z.ZodTypeAny = z.ZodUndefined,\n  PCM extends z.ZodTypeAny = z.ZodUndefined,\n  TCCM extends z.ZodTypeAny = z.ZodUndefined,\n  TRCM extends z.ZodTypeAny = z.ZodUndefined,\n  RCM extends z.ZodTypeAny = z.ZodUndefined,\n  ECM extends z.ZodTypeAny = z.ZodUndefined,\n  SRCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Content<TCM, ICM, PCM, TCCM, TRCM, RCM, ECM, SRCM>>>;\n\nconst PartialModalityLiterals = [PartialTextModalityLiteral, PartialToolCallModalityLiteral, PartialReasoningModalityLiteral, PartialErrorModalityLiteral, PartialSearchResultModalityLiteral] as const;\nconst PartialModalityEnum = z.enum(PartialModalityLiterals);\ntype PartialModalityEnumType = z.infer<typeof PartialModalityEnum>;\n\nconst PartialContent = <\n  TCM extends z.ZodTypeAny = z.ZodUndefined,\n  TCCM extends z.ZodTypeAny = z.ZodUndefined,\n  TRCM extends z.ZodTypeAny = z.ZodUndefined,\n  RCM extends z.ZodTypeAny = z.ZodUndefined,\n  ECM extends z.ZodTypeAny = z.ZodUndefined,\n  SRCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n  PartialTextContentMetadata: TCM = z.undefined() as TCM,\n  PartialToolCallContentMetadata: TCCM = z.undefined() as TCCM,\n  PartialToolResponseContentMetadata: TRCM = z.undefined() as TRCM,\n  PartialReasoningContentMetadata: RCM = z.undefined() as RCM,\n  PartialErrorContentMetadata: ECM = z.undefined() as ECM,\n  PartialSearchResultContentMetadata: SRCM = z.undefined() as SRCM,\n) =>\n  z.discriminatedUnion(\"modality\", [\n    PartialTextContent(PartialTextContentMetadata),\n    PartialToolCallContent(PartialToolCallContentMetadata),\n    PartialReasoningContent(PartialReasoningContentMetadata),\n    PartialToolResponseContent(PartialToolResponseContentMetadata),\n    PartialErrorContent(PartialErrorContentMetadata),\n    PartialSearchResultContent(PartialSearchResultContentMetadata),\n  ]);\ntype PartialContentType<\n  TCM extends z.ZodTypeAny = z.ZodUndefined,\n  TCCM extends z.ZodTypeAny = z.ZodUndefined,\n  TRCM extends z.ZodTypeAny = z.ZodUndefined,\n  RCM extends z.ZodTypeAny = z.ZodUndefined,\n  ECM extends z.ZodTypeAny = z.ZodUndefined,\n  SRCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialContent<TCM, TCCM, TRCM, RCM, ECM, SRCM>>>;\n\nexport {\n  Content,\n  ModalityEnum,\n  ModalityLiterals,\n  PartialContent,\n  PartialModalityEnum,\n  PartialModalityLiterals,\n  type ContentType,\n  type ModalityEnumType,\n  type PartialContentType,\n  type PartialModalityEnumType,\n};\n","import { z } from \"zod\";\n\nconst TokenModalityLiteral = \"token\" as const;\n\nconst TokenContent = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.object({\n    modality: z.literal(TokenModalityLiteral),\n    value: z.array(z.number().int().nonnegative()),\n    metadata: Metadata,\n  });\ntype TokenContentType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof TokenContent<M>>>;\n\nexport { TokenContent, TokenModalityLiteral, type TokenContentType };\n","import { z } from \"zod\";\n\nimport { Content, PartialContent } from \"./content\";\nimport { PartialRoleEnum, RoleEnum } from \"./roles\";\n\nconst Message = <\n  R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n  TCM extends z.ZodTypeAny = z.ZodUndefined,\n  ICM extends z.ZodTypeAny = z.ZodUndefined,\n  CCM extends z.ZodTypeAny = z.ZodUndefined,\n  RCM extends z.ZodTypeAny = z.ZodUndefined,\n  RTCM extends z.ZodTypeAny = z.ZodUndefined,\n  PCCM extends z.ZodTypeAny = z.ZodUndefined,\n  MM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n  Role: R = RoleEnum as unknown as R,\n  TextContentMetadata: TCM = z.undefined() as TCM,\n  ImageContentMetadata: ICM = z.undefined() as ICM,\n  ToolCallContentMetadata: CCM = z.undefined() as CCM,\n  ToolResponseContentMetadata: RCM = z.undefined() as RCM,\n  PdfContentMetadata: PCCM = z.undefined() as PCCM,\n  ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM,\n  MessageMetadata: MM = z.undefined() as MM\n) =>\n  z.object({\n    role: Role,\n    content: z.array(\n      Content(\n        TextContentMetadata,\n        ImageContentMetadata,\n        ToolCallContentMetadata,\n        ToolResponseContentMetadata,\n        ReasoningContentMetadata,\n        PdfContentMetadata\n      )\n    ),\n    metadata: MessageMetadata,\n  });\ntype MessageType<\n  R extends z.ZodEnum<[string, ...string[]]> = typeof RoleEnum,\n  TCM extends z.ZodTypeAny = z.ZodUndefined,\n  ICM extends z.ZodTypeAny = z.ZodUndefined,\n  CCM extends z.ZodTypeAny = z.ZodUndefined,\n  RCM extends z.ZodTypeAny = z.ZodUndefined,\n  RTCM extends z.ZodTypeAny = z.ZodUndefined,\n  PCCM extends z.ZodTypeAny = z.ZodUndefined,\n  MM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof Message<R, TCM, ICM, CCM, RCM, PCCM, RTCM, MM>>>;\n\nconst PartialMessage = <\n  R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n  TCM extends z.ZodTypeAny = z.ZodUndefined,\n  CCM extends z.ZodTypeAny = z.ZodUndefined,\n  MM extends z.ZodTypeAny = z.ZodUndefined,\n  RTCM extends z.ZodTypeAny = z.ZodUndefined,\n  TPCM extends z.ZodTypeAny = z.ZodUndefined,\n>(\n  Role: R = PartialRoleEnum as unknown as R,\n  TextContentMetadata: TCM = z.undefined() as TCM,\n  ToolCallContentMetadata: CCM = z.undefined() as CCM,\n  ReasoningContentMetadata: z.ZodTypeAny = z.undefined() as RTCM,\n  MessageMetadata: MM = z.undefined() as MM,\n  ToolResponseContentMetadata: TPCM = z.undefined() as TPCM\n) =>\n  z.object({\n    role: Role,\n    partialContent: PartialContent(TextContentMetadata, ToolCallContentMetadata, ReasoningContentMetadata, ToolResponseContentMetadata),\n    metadata: MessageMetadata,\n  });\ntype PartialMessageType<\n  R extends z.ZodEnum<[string, ...string[]]> = typeof PartialRoleEnum,\n  TCM extends z.ZodTypeAny = z.ZodUndefined,\n  CCM extends z.ZodTypeAny = z.ZodUndefined,\n  MM extends z.ZodTypeAny = z.ZodUndefined,\n  RTCM extends z.ZodTypeAny = z.ZodUndefined,\n  TPCM extends z.ZodTypeAny = z.ZodUndefined,\n> = z.infer<ReturnType<typeof PartialMessage<R, TCM, CCM, MM, RTCM, TPCM>>>;\n\nexport { Message, PartialMessage, type MessageType, type PartialMessageType };\n","import { z } from \"zod\";\n\nconst Config = <C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>>(\n  Config: C = z.record(z.string(), z.any()).optional() as unknown as C\n) => Config;\ntype ConfigType<C extends z.ZodRecord<z.ZodString, z.ZodAny> = z.ZodRecord<z.ZodString, z.ZodAny>> = z.infer<ReturnType<typeof Config<C>>>;\n\nexport { Config, type ConfigType };\n","import { z } from \"zod\";\n\nconst McpServerToolConfiguration = z.object({\n  enabled: z.boolean().default(true),\n  allowedTools: z.array(z.string().min(1)),\n});\ntype McpServerToolConfigurationType = z.infer<typeof McpServerToolConfiguration>;\n\nconst McpServer = z.object({\n  type: z.literal(\"url\"),\n  url: z\n    .string()\n    .url()\n    .refine((url) => url.startsWith(\"https://\"), {\n      message: \"MCP server URL must start with https://\",\n    }),\n  name: z.string().min(1),\n  toolConfiguration: McpServerToolConfiguration.optional(),\n  authorizationToken: z.string().min(1).optional(),\n});\ntype McpServerType = z.infer<typeof McpServer>;\n\nexport { McpServer, McpServerToolConfiguration, type McpServerToolConfigurationType, type McpServerType };\n","import { z } from \"zod\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\ntype ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n  anyOf: z.array(z.any()).optional(),\n  type: z.union([ResponseSchemaTypesLiteral, z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))]).optional(),\n  default: z.any().optional(),\n  title: z.string().optional(),\n  description: z.string().max(4096).optional(),\n  properties: z.record(z.any()).optional(),\n  required: z.array(z.string()).optional(),\n  minItems: z.number().int().min(0).optional(),\n  maxItems: z.number().int().optional(),\n  items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n  enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n  minimum: z.number().optional(), // Minimum value for number\n  maximum: z.number().optional(), // Maximum value for number\n  minLength: z.number().int().min(0).optional(), // Minimum length for string\n  maxLength: z.number().int().optional(), // Maximum length for string\n  $ref: z.string().optional(), // Reference to another schema\n});\ntype ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n  type: z.enum([\"object\"]),\n  required: z.array(z.string()),\n  $defs: z.record(z.any()).optional(),\n  properties: z.record(ResponseSchemaProperty),\n  additionalProperties: z.literal(false),\n});\ntype ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z\n  .object({\n    name: z\n      .string()\n      .regex(/^[a-zA-Z0-9_]{1,64}$/)\n      .max(64),\n    description: z.string().max(4096),\n    strict: z.boolean().optional(),\n    schema: ResponseSchemaStructure,\n  })\n  .optional();\ntype ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nexport {\n  ResponseSchema,\n  ResponseSchemaProperty,\n  ResponseSchemaStructure,\n  ResponseSchemaTypes,\n  ResponseSchemaTypesLiteral,\n  type ResponseSchemaTypesType,\n  type ResponseSchemaType,\n  type ResponseSchemaPropertyType,\n  type ResponseSchemaStructureType,\n};\n","import { z } from \"zod\";\n\nconst EmbeddingTextModalityLiteral = \"text\" as const;\nconst EmbeddingTokenModalityLiteral = \"token\" as const;\n\nconst EmbeddingModalityLiterals = [EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral] as const;\nconst EmbeddingModalityEnum = z.enum(EmbeddingModalityLiterals);\ntype EmbeddingModalityEnumType = z.infer<typeof EmbeddingModalityEnum>;\n\nconst TextEmbeddingRequests = z.array(z.string().min(1));\ntype TextEmbeddingRequestsType = z.infer<typeof TextEmbeddingRequests>;\n\nconst TokenEmbeddingRequests = z.array(z.array(z.number().int().nonnegative()));\ntype TokenEmbeddingRequestsType = z.infer<typeof TokenEmbeddingRequests>;\n\nconst EmbeddingRequests = <M extends z.ZodTypeAny = z.ZodUndefined>(Metadata: M = z.undefined() as M) =>\n  z.discriminatedUnion(\"modality\", [\n    z.object({\n      modality: z.literal(EmbeddingTextModalityLiteral),\n      metadata: Metadata,\n      requests: TextEmbeddingRequests,\n    }),\n    z.object({\n      modality: z.literal(EmbeddingTokenModalityLiteral),\n      metadata: Metadata,\n      requests: TokenEmbeddingRequests,\n    }),\n  ]);\ntype EmbeddingRequestsType<M extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof EmbeddingRequests<M>>>;\n\nexport {\n  EmbeddingTextModalityLiteral,\n  EmbeddingTokenModalityLiteral,\n  EmbeddingModalityLiterals,\n  EmbeddingModalityEnum,\n  TextEmbeddingRequests,\n  TokenEmbeddingRequests,\n  EmbeddingRequests,\n  type EmbeddingRequestsType,\n  type EmbeddingModalityEnumType,\n  type TextEmbeddingRequestsType,\n  type TokenEmbeddingRequestsType,\n};\n","import { z } from \"zod\";\n\nconst FloatEmbeddingLiteral = \"float\" as const;\nconst FloatEmbedding = z.object({\n  index: z.number().int().nonnegative(),\n  embedding: z.array(z.number()),\n});\ntype FloatEmbeddingType = z.infer<typeof FloatEmbedding>;\n\nconst Base64EmbeddingLiteral = \"base64\" as const;\nconst Base64Embedding = z.object({\n  index: z.number().int().nonnegative(),\n  embedding: z.string().base64(),\n});\ntype Base64EmbeddingType = z.infer<typeof Base64Embedding>;\n\nconst EmbeddingsUsage = z.object({\n  totalTokens: z.number().int().nonnegative(),\n});\ntype EmbeddingsUsageType = z.infer<typeof EmbeddingsUsage>;\n\nconst EmbeddingResponse = z.discriminatedUnion(\"encodingFormat\", [\n  z.object({\n    encodingFormat: z.literal(FloatEmbeddingLiteral),\n    embeddings: z.array(FloatEmbedding),\n    usage: EmbeddingsUsage.optional(),\n  }),\n  z.object({\n    encodingFormat: z.literal(Base64EmbeddingLiteral),\n    embeddings: z.array(Base64Embedding),\n    usage: EmbeddingsUsage.optional(),\n  }),\n]);\ntype EmbeddingResponseType = z.infer<typeof EmbeddingResponse>;\n\nexport {\n  FloatEmbeddingLiteral,\n  Base64EmbeddingLiteral,\n  FloatEmbedding,\n  Base64Embedding,\n  EmbeddingsUsage,\n  EmbeddingResponse,\n  type FloatEmbeddingType,\n  type Base64EmbeddingType,\n  type EmbeddingsUsageType,\n  type EmbeddingResponseType,\n};\n","const safeStringify = (obj: unknown) => {\n  const seen = new WeakSet();\n  return JSON.stringify(obj, (key, value) => {\n    if (typeof value === \"object\" && value !== null) {\n      if (seen.has(value)) {\n        return; // Skip circular reference\n      }\n      seen.add(value);\n    }\n    return value;\n  });\n};\n\nconst getErrorMessage = (error: unknown | undefined): string => {\n  if (error == null) return \"unknown error\";\n  if (typeof error === \"string\") return error;\n  if (error instanceof Error) return error.message;\n  return safeStringify(error);\n};\n\nconst GatewayBaseErrorLiteral = \"GatewayBaseError\" as const;\nclass GatewayBaseError extends Error {\n  readonly name: string = GatewayBaseErrorLiteral;\n  readonly info: string;\n  readonly cause: unknown;\n\n  constructor({ info, cause }: { info: string; cause: unknown }, name?: string) {\n    super(`[${name ?? GatewayBaseErrorLiteral}]: ${info}\\nMessage: ${getErrorMessage(cause)}`);\n    this.info = info;\n    this.cause = cause;\n    this.name = name ?? GatewayBaseErrorLiteral;\n    Object.setPrototypeOf(this, new.target.prototype);\n  }\n\n  static isGatewayBaseError(error: unknown): error is GatewayBaseError {\n    return error instanceof GatewayBaseError;\n  }\n\n  toJSON(): object {\n    return {\n      name: this.name,\n      info: this.info,\n      cause: this.cause,\n      message: this.message,\n      stack: this.stack,\n    };\n  }\n}\n\nexport { GatewayBaseError };\n","import { z } from \"zod\";\n\n/**\n * A pair of per‑million‑token rates for a single price category (e.g., base input/output).\n * Represents the input and output cost for 1 million tokens within a specific category (like 'base') of a pricing tier.\n */\nconst ChatModelTokenPairPrice = z\n  .object({\n    inputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M input tokens\"),\n    outputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M output tokens\"),\n  })\n  .describe(\"Input/output price pair (per 1M tokens) for a specific category within a ChatModel pricing tier.\");\n\ntype ChatModelTokenPairPriceType = z.infer<typeof ChatModelTokenPairPrice>;\n\n/**\n * Defines the price categories (e.g., base) applicable within a single pricing tier (`ChatModelTokenRangePrice`).\n * Each category holds a `ChatModelTokenPairPrice`.\n */\nconst ChatModelTokenTypePrice = z\n  .object({\n    base: ChatModelTokenPairPrice.describe(\"Base (uncached, non‑reasoning) rates\"),\n    // Add optional 'cached' and 'reasoning' here if they become standard\n  })\n  .describe(\"Holds the `ChatModelTokenPairPrice` for different categories (e.g., base) within a single pricing tier.\");\n\ntype ChatModelTokenTypePriceType = z.infer<typeof ChatModelTokenTypePrice>;\n\n/**\n * Defines a single tier in a model's pricing schedule (`ChatModelPrice`), based on token count range.\n * - `minTokens`: inclusive lower bound (integer ≥ 0).\n * - `maxTokens`: exclusive upper bound (integer > minTokens), or `null` for ∞.\n * - `prices`: the `ChatModelTokenTypePrice` (categories and their rates) applicable to this tier.\n */\nconst ChatModelTokenRangePrice = z\n  .object({\n    minTokens: z.number().int().nonnegative().describe(\"Inclusive lower token bound for this tier.\"),\n    maxTokens: z.number().int().nullable().optional().describe(\"Exclusive upper token bound; `null` means ∞.\"),\n    prices: ChatModelTokenTypePrice.describe(\"Price categories and rates for this specific token range.\"),\n  })\n  .refine((t) => t.maxTokens === null || (typeof t.maxTokens === \"number\" && t.maxTokens > t.minTokens), {\n    message: \"maxTokens must be > minTokens (or null for infinite).\",\n    path: [\"maxTokens\"],\n  })\n  .describe(\"A single pricing tier defined by a token range and associated prices.\");\n\ntype ChatModelTokenRangePriceType = z.infer<typeof ChatModelTokenRangePrice>;\n\n/**\n * Full pricing schedule for a specific chat model, potentially with multiple `ChatModelTokenRangePrice` tiers.\n * Ensures tiers are contiguous and cover the full range from 0 to infinity.\n * - First tier must start at 0 tokens.\n * - `tokenRanges` must be contiguous: each tier.minTokens === previous.maxTokens.\n * - Last `tokenRange` must have maxTokens = null (infinite).\n */\nconst ChatModelPrice = z\n  .object({\n    modelName: z.string().describe(\"Model name this schedule applies to.\"),\n    currency: z.string().default(\"USD\").describe(\"Currency code (e.g., USD).\"),\n    tokenRanges: z\n      .array(ChatModelTokenRangePrice)\n      .min(1)\n      .describe(\"Pricing tiers (`ChatModelTokenRangePrice`) schedule, sorted by minTokens.\"),\n  })\n  .superRefine((data, ctx) => {\n    const { tokenRanges } = data;\n\n    // 1) First tier starts at 0\n    if (tokenRanges[0].minTokens !== 0) {\n      ctx.addIssue({\n        code: z.ZodIssueCode.custom,\n        path: [\"tokenRanges\", 0, \"minTokens\"],\n        message: \"The first tier must have minTokens = 0.\",\n      });\n    }\n\n    // 2) tokenRanges must be sorted and contiguous\n    for (let i = 1; i < tokenRanges.length; i++) {\n      const prev = tokenRanges[i - 1];\n      const curr = tokenRanges[i];\n\n      if (prev.maxTokens === null) {\n        ctx.addIssue({\n          code: z.ZodIssueCode.custom,\n          path: [\"tokenRanges\", i - 1, \"maxTokens\"],\n          message: \"Cannot define any tokenRanges after an infinite tier (maxTokens = null).\",\n        });\n        break; // Stop further checks if structure is already invalid\n      }\n\n      if (curr.minTokens !== prev.maxTokens) {\n        ctx.addIssue({\n          code: z.ZodIssueCode.custom,\n          path: [\"tokenRanges\", i, \"minTokens\"],\n          message: `Tier ${i} minTokens (${curr.minTokens}) must equal previous tier's maxTokens (${prev.maxTokens}) for contiguity.`,\n        });\n      }\n\n      // Ensure sorting (although contiguity check often implies this)\n      if (curr.minTokens < prev.minTokens) {\n        ctx.addIssue({\n          code: z.ZodIssueCode.custom,\n          path: [\"tokenRanges\", i, \"minTokens\"],\n          message: `tokenRanges must be sorted by ascending minTokens. Tier ${i} (${curr.minTokens}) starts before Tier ${i - 1} (${prev.minTokens}).`,\n        });\n      }\n    }\n\n    // 3) Last tier must be infinite\n    const last = tokenRanges[tokenRanges.length - 1];\n    // Check last.maxTokens only if the loop didn't break early due to a previous infinite tier\n    if (tokenRanges.every((t) => t.maxTokens !== null || t === last) && last.maxTokens !== null) {\n      ctx.addIssue({\n        code: z.ZodIssueCode.custom,\n        path: [\"tokenRanges\", tokenRanges.length - 1, \"maxTokens\"],\n        message: \"The final tier must have maxTokens = null (representing infinity).\",\n      });\n    }\n  })\n  .describe(\"Complete pricing schedule for a single chat model, including all its token-based tiers.\");\n\ntype ChatModelPriceType = z.infer<typeof ChatModelPrice>;\n\n// Export the schemas and types\nexport { ChatModelPrice, ChatModelTokenPairPrice, ChatModelTokenRangePrice, ChatModelTokenTypePrice };\nexport type { ChatModelPriceType, ChatModelTokenPairPriceType, ChatModelTokenRangePriceType, ChatModelTokenTypePriceType };\n","import { z } from \"zod\";\n\n/**\n * Flat, input-token-based pricing for a single embedding model.\n *\n * Unlike `ChatModelPrice` (which has input/output rates and token-range tiers),\n * embedding models are billed only on input tokens at a single flat rate, so a\n * tier schedule is unnecessary.\n */\nconst EmbeddingModelPrice = z\n  .object({\n    modelName: z.string().min(1).describe(\"Model name this price applies to.\"),\n    currency: z.string().default(\"USD\").describe(\"Currency code (e.g., USD).\"),\n    inputPricePerMillion: z.number().nonnegative().describe(\"Price per 1M input tokens.\"),\n  })\n  .describe(\"Complete (flat) pricing for a single embedding model.\");\n\ntype EmbeddingModelPriceType = z.infer<typeof EmbeddingModelPrice>;\n\nexport { EmbeddingModelPrice };\nexport type { EmbeddingModelPriceType };\n","import { z } from \"zod\";\n\nconst FunctionToolLiteral = \"function\" as const;\n\nconst FunctionParameterTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"];\nconst FunctionParameterTypesLiteral = z.enum([\"object\", \"array\", \"number\", \"string\", \"boolean\", \"null\"]);\ntype FunctionParameterTypesType = z.infer<typeof FunctionParameterTypesLiteral>;\n\nconst FunctionParameter = z.object({\n  anyOf: z.array(z.any()).optional(),\n  type: FunctionParameterTypesLiteral.optional(),\n  default: z.any().optional(),\n  title: z.string().optional(),\n  description: z.string().max(4096).optional(),\n  properties: z.record(z.any()).optional(),\n  required: z.array(z.string()).optional(),\n  minItems: z.number().int().min(0).optional(),\n  maxItems: z.number().int().optional(),\n  items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n  enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n  minimum: z.number().optional(), // Minimum value for number\n  maximum: z.number().optional(), // Maximum value for number\n  minLength: z.number().int().min(0).optional(), // Minimum length for string\n  maxLength: z.number().int().optional(), // Maximum length for string\n});\ntype FunctionParameterType = z.infer<typeof FunctionParameter>;\n\nconst FunctionParameters = z.object({\n  type: z.enum([\"object\"]),\n  title: z.string().optional(),\n  $defs: z.record(z.any()).optional(),\n  properties: z.record(FunctionParameter).optional(),\n  required: z.array(z.string()).optional(),\n});\ntype FunctionParametersType = z.infer<typeof FunctionParameters>;\n\nconst Function = z.object({\n  name: z\n    .string()\n    .regex(/^[a-zA-Z0-9_]{1,64}$/)\n    .max(64),\n  description: z.string().max(4096),\n  parameters: z.any(),\n  strict: z.boolean().optional(),\n});\ntype FunctionType = z.infer<typeof Function>;\n\nconst ToolTypes = [\"function\"];\nconst ToolTypesLiteral = z.enum([\"function\"]);\ntype ToolTypesType = z.infer<typeof ToolTypesLiteral>;\n\nconst FunctionRequestRetry = z.object({\n  maxAttempts: z.number().int().positive(),\n  initialDelay: z.number().int().positive(),\n  exponentialFactor: z.number().int().positive(),\n});\n\nconst FunctionRequestHttp = z.object({\n  type: z.literal(\"http\"),\n  method: z.enum([\"get\", \"post\"]),\n  url: z.string().url(),\n  headers: z.record(z.string()).optional(),\n  query: z.record(z.string()).optional(),\n  body: z.record(z.any()).optional(),\n  proxyUrl: z.string().url().optional(),\n  proxyHeaders: z.record(z.string()).optional(),\n  retry: FunctionRequestRetry.optional(),\n});\n\nconst FunctionRequest = z.discriminatedUnion(\"type\", [FunctionRequestHttp]);\n\nconst FunctionTool = z.object({\n  type: ToolTypesLiteral,\n  definition: z.object({\n    schema: Function,\n  }),\n  request: FunctionRequest.optional(),\n});\ntype FunctionToolType = z.infer<typeof FunctionTool>;\n\nexport {\n  Function,\n  FunctionParameter,\n  FunctionParameters,\n  FunctionParameterTypes,\n  FunctionParameterTypesLiteral,\n  FunctionRequestHttp,\n  FunctionRequest,\n  FunctionRequestRetry,\n  ToolTypes,\n  ToolTypesLiteral,\n  type FunctionParametersType,\n  type FunctionParameterType,\n  type FunctionParameterTypesType,\n  type FunctionType,\n  type ToolTypesType,\n};\n\nexport { FunctionTool, FunctionToolLiteral, type FunctionToolType };\n","import { z } from \"zod\";\n\nimport { FunctionTool, FunctionToolLiteral } from \"./function-tool\";\n\nconst ToolLiterals = [FunctionToolLiteral] as const;\nconst ToolEnum = z.enum(ToolLiterals);\ntype ToolEnumType = z.infer<typeof ToolEnum>;\n\nconst Tool = <FTM extends z.ZodTypeAny>(FunctionToolMetadata: FTM = z.undefined() as FTM) =>\n  z.discriminatedUnion(\"type\", [FunctionTool.extend({ metadata: FunctionToolMetadata })]);\ntype ToolType<FTM extends z.ZodTypeAny = z.ZodUndefined> = z.infer<ReturnType<typeof Tool<FTM>>>;\n\nexport { Tool, ToolEnum, ToolLiterals, type ToolEnumType, type ToolType };\n","import {\n  Base64ImageContentTypeLiteral,\n  ContentType,\n  ErrorContent,\n  ErrorModalityLiteral,\n  ImageContent,\n  ImageContentDetailsLiteralType,\n  ImageModalityLiteral,\n  Message,\n  MessageType,\n  PartialContentType,\n  PartialErrorContent,\n  PartialErrorModalityLiteral,\n  PartialMessage,\n  PartialMessageType,\n  PartialReasoningContent,\n  PartialReasoningModalityLiteral,\n  PartialSearchResultContent,\n  PartialSearchResultModalityLiteral,\n  PartialTextContent,\n  PartialTextModalityLiteral,\n  PartialToolCallContent,\n  PartialToolCallModalityLiteral,\n  PartialToolResponseContent,\n  PartialToolResponseModalityLiteral,\n  ReasoningContent,\n  ReasoningContentTypeLiteral,\n  ReasoningModalityLiteral,\n  RedactedReasoningContentTypeLiteral,\n  ResponseErrorTypeLiteral,\n  RoleEnumType,\n  SafetyErrorTypeLiteral,\n  SearchResultContent,\n  SearchResultContentValueType,\n  SearchResultModalityLiteral,\n  TextContent,\n  TextModalityLiteral,\n  ToolCallContent,\n  ToolCallModalityLiteral,\n  ToolResponseContent,\n  ToolResponseModalityLiteral,\n  UrlImageContentTypeLiteral,\n} from \"./../message\";\n\nconst createTextContent = (content: string): ContentType => {\n  return TextContent().parse({\n    modality: TextModalityLiteral,\n    value: content,\n  });\n};\n\nconst createToolCallContent = (\n  index: number,\n  id: string,\n  name: string,\n  args: string,\n  serverName?: string,\n  thoughtSignature?: string\n): ContentType => {\n  return ToolCallContent().parse({\n    modality: ToolCallModalityLiteral,\n    index: index,\n    id: id,\n    name: name,\n    arguments: args,\n    serverName: serverName,\n    thoughtSignature: thoughtSignature,\n  });\n};\n\nconst createToolResponseContent = (\n  index: number,\n  id: string,\n  name: string,\n  data: string,\n  apiResponse?: { statusCode: number },\n  metadata?: any\n): ContentType => {\n  return ToolResponseContent().parse({\n    modality: ToolResponseModalityLiteral,\n    index: index,\n    id: id,\n    name: name,\n    data: data,\n    apiResponse: apiResponse,\n    metadata: metadata,\n  });\n};\n\nconst createTextMessage = (role: RoleEnumType, content: string): MessageType => {\n  return Message().parse({\n    role: role,\n    content: [\n      TextContent().parse({\n        modality: TextModalityLiteral,\n        value: content,\n      }),\n    ],\n  });\n};\n\nconst createUrlImageMessage = (role: RoleEnumType, url: string, detail: ImageContentDetailsLiteralType): MessageType => {\n  return Message().parse({\n    role: role,\n    content: [\n      ImageContent().parse({\n        modality: ImageModalityLiteral,\n        detail: detail,\n        value: {\n          type: UrlImageContentTypeLiteral,\n          url: url,\n        },\n      }),\n    ],\n  });\n};\n\nconst createBase64ImageMessage = (role: RoleEnumType, base64: string, detail: ImageContentDetailsLiteralType): MessageType => {\n  return Message().parse({\n    role: role,\n    content: [\n      ImageContent().parse({\n        modality: ImageModalityLiteral,\n        detail: detail,\n        value: {\n          type: Base64ImageContentTypeLiteral,\n          base64: base64,\n        },\n      }),\n    ],\n  });\n};\n\nconst createToolCallMessage = (\n  role: RoleEnumType,\n  index: number,\n  id: string,\n  name: string,\n  args: string,\n  thoughtSignature?: string\n): MessageType => {\n  return Message().parse({\n    role: role,\n    content: [\n      ToolCallContent().parse({\n        modality: ToolCallModalityLiteral,\n        index: index,\n        id: id,\n        name: name,\n        arguments: args,\n        thoughtSignature: thoughtSignature,\n      }),\n    ],\n  });\n};\n\nconst createToolResponseMessage = (role: RoleEnumType, index: number, id: string, name: string, data: string): MessageType => {\n  return Message().parse({\n    role: role,\n    content: [\n      ToolResponseContent().parse({\n        modality: ToolResponseModalityLiteral,\n        index: index,\n        id: id,\n        name: name,\n        data: data,\n      }),\n    ],\n  });\n};\n\nconst createPartialTextMessage = (role: RoleEnumType, content: string): PartialMessageType => {\n  return PartialMessage().parse({\n    role: role,\n    partialContent: PartialTextContent().parse({\n      modality: PartialTextModalityLiteral,\n      value: content,\n    }),\n  });\n};\n\nconst createPartialToolCallMessage = (\n  role: RoleEnumType,\n  index: number,\n  id?: string,\n  name?: string,\n  args?: string,\n  serverName?: string,\n  thoughtSignature?: string\n): PartialMessageType => {\n  return PartialMessage().parse({\n    role: role,\n    partialContent: PartialToolCallContent().parse({\n      modality: PartialToolCallModalityLiteral,\n      index: index,\n      id: id,\n      name: name,\n      arguments: args,\n      serverName: serverName,\n      thoughtSignature: thoughtSignature,\n    }),\n  });\n};\n\nconst createPartialToolResponseMessage = (\n  role: RoleEnumType,\n  index: number,\n  id: string,\n  name: string,\n  data: string\n): PartialMessageType => {\n  return PartialMessage().parse({\n    role: role,\n    partialContent: PartialToolResponseContent().parse({\n      modality: PartialToolResponseModalityLiteral,\n      index: index,\n      id: id,\n      name: name,\n      data: data,\n    }),\n  });\n};\nconst createReasoningContent = (thinking: string, signature: string): ContentType => {\n  return ReasoningContent().parse({\n    modality: ReasoningModalityLiteral,\n    value: {\n      type: ReasoningContentTypeLiteral,\n      thinking,\n      signature,\n    },\n  });\n};\n\nconst createReasoningMessage = (role: RoleEnumType, thinking: string, signature: string): MessageType => {\n  return Message().parse({\n    role: role,\n    content: [\n      ReasoningContent().parse({\n        modality: ReasoningModalityLiteral,\n        value: {\n          type: ReasoningContentTypeLiteral,\n          thinking,\n          signature,\n        },\n      }),\n    ],\n  });\n};\n// Redacted Reasoning Content\nconst createRedactedReasoningContent = (data: string): ContentType => {\n  return ReasoningContent().parse({\n    modality: ReasoningModalityLiteral,\n    value: {\n      type: RedactedReasoningContentTypeLiteral,\n      data,\n    },\n  });\n};\n\nconst createRedactedReasoningMessage = (role: RoleEnumType, data: string): MessageType => {\n  return Message().parse({\n    role: role,\n    content: [\n      ReasoningContent().parse({\n        modality: ReasoningModalityLiteral,\n        value: {\n          type: RedactedReasoningContentTypeLiteral,\n          data,\n        },\n      }),\n    ],\n  });\n};\n\nconst createPartialReasoningMessage = (role: RoleEnumType, thinking?: string, signature?: string): PartialMessageType => {\n  return PartialMessage().parse({\n    role: role,\n    partialContent: PartialReasoningContent().parse({\n      modality: PartialReasoningModalityLiteral,\n      value: {\n        type: ReasoningContentTypeLiteral,\n        thinking,\n        signature,\n      },\n      // metadata is optional; omit or provide if needed\n    }),\n  });\n};\n\n// Create a partial redacted reasoning message\nconst createPartialRedactedReasoningMessage = (role: RoleEnumType, data: string): PartialMessageType => {\n  return PartialMessage().parse({\n    role: role,\n    partialContent: PartialReasoningContent().parse({\n      modality: PartialReasoningModalityLiteral,\n      value: {\n        type: RedactedReasoningContentTypeLiteral,\n        data,\n      },\n      // metadata is optional; omit or provide if needed\n    }),\n  });\n};\n\nconst createSafetyErrorContent = (category: string, probability: string, blocked: boolean, message: string): ContentType => {\n  return ErrorContent().parse({\n    modality: ErrorModalityLiteral,\n    value: {\n      type: SafetyErrorTypeLiteral,\n      value: {\n        category,\n        probability,\n        blocked,\n        message,\n      },\n    },\n  });\n};\n\nconst createPartialSafetyErrorContent = (\n  category?: string,\n  probability?: string,\n  blocked?: boolean,\n  message?: string\n): PartialContentType => {\n  return PartialErrorContent().parse({\n    modality: PartialErrorModalityLiteral,\n    value: {\n      type: SafetyErrorTypeLiteral,\n      category: category,\n      probability: probability,\n      blocked: blocked,\n      message: message,\n    },\n  });\n};\n\nconst createPartialSafetyErrorMessage = (\n  role: RoleEnumType,\n  category?: string,\n  probability?: string,\n  blocked?: boolean,\n  message?: string\n): PartialMessageType => {\n  return PartialMessage().parse({\n    role: role,\n    partialContent: PartialErrorContent().parse({\n      modality: PartialErrorModalityLiteral,\n      value: {\n        type: SafetyErrorTypeLiteral,\n        category: category,\n        probability: probability,\n        blocked: blocked,\n        message: message,\n      },\n    }),\n  });\n};\n\nconst createResponseErrorContent = (code: string, message: string, provider?: string): ContentType => {\n  return ErrorContent().parse({\n    modality: ErrorModalityLiteral,\n    value: {\n      type: ResponseErrorTypeLiteral,\n      value: {\n        code,\n        message,\n        provider,\n      },\n    },\n  });\n};\n\nconst createPartialResponseErrorContent = (code?: string, message?: string, provider?: string): PartialContentType => {\n  return PartialErrorContent().parse({\n    modality: PartialErrorModalityLiteral,\n    value: {\n      type: ResponseErrorTypeLiteral,\n      code,\n      message,\n      provider,\n    },\n  });\n};\n\nconst createPartialResponseErrorMessage = (role: RoleEnumType, code?: string, message?: string, provider?: string): PartialMessageType => {\n  return PartialMessage().parse({\n    role: role,\n    partialContent: PartialErrorContent().parse({\n      modality: PartialErrorModalityLiteral,\n      value: {\n        type: ResponseErrorTypeLiteral,\n        code,\n        message,\n        provider,\n      },\n    }),\n  });\n};\n\nconst createSearchResultContent = (\n  type: string,\n  query: string,\n  responses: SearchResultContentValueType[\"responses\"],\n  references: SearchResultContentValueType[\"references\"]\n): ContentType => {\n  return SearchResultContent().parse({\n    modality: SearchResultModalityLiteral,\n    value: { type, query, responses, references },\n  });\n};\n\nconst createPartialSearchResultContent = (\n  type: string,\n  query?: string,\n  responses?: SearchResultContentValueType[\"responses\"],\n  references?: SearchResultContentValueType[\"references\"]\n): PartialContentType => {\n  return PartialSearchResultContent().parse({\n    modality: PartialSearchResultModalityLiteral,\n    value: { type, query, responses, references },\n  });\n};\n\nconst createPartialSearchResultMessage = (\n  role: RoleEnumType,\n  type: string,\n  query?: string,\n  responses?: SearchResultContentValueType[\"responses\"],\n  references?: SearchResultContentValueType[\"references\"]\n): PartialMessageType => {\n  return PartialMessage().parse({\n    role: role,\n    partialContent: PartialSearchResultContent().parse({\n      modality: PartialSearchResultModalityLiteral,\n      value: { type, query, responses, references },\n    }),\n  });\n};\n\nexport {\n  createBase64ImageMessage,\n  createPartialReasoningMessage,\n  createPartialRedactedReasoningMessage,\n  createPartialResponseErrorContent,\n  createPartialResponseErrorMessage,\n  createPartialSafetyErrorContent,\n  createPartialSafetyErrorMessage,\n  createPartialSearchResultContent,\n  createPartialSearchResultMessage,\n  createPartialTextMessage,\n  createPartialToolCallMessage,\n  createPartialToolResponseMessage,\n  createReasoningContent,\n  createReasoningMessage,\n  createRedactedReasoningContent,\n  createRedactedReasoningMessage,\n  createResponseErrorContent,\n  createSafetyErrorContent,\n  createSearchResultContent,\n  createTextContent,\n  createTextMessage,\n  createToolCallContent,\n  createToolCallMessage,\n  createToolResponseContent,\n  createToolResponseMessage,\n  createUrlImageMessage,\n};\n","import { GatewayBaseError } from \"../errors/gateway-base.error\";\nimport { ChatResponseType, ChatUsageType, PartialChatResponseType } from \"./../chat/chat-response\";\nimport {\n  AssistantRoleLiteral,\n  ContentType,\n  ErrorModalityLiteral,\n  MessageType,\n  PartialContentType,\n  PartialErrorContentType,\n  PartialErrorModalityLiteral,\n  PartialReasoningContentType,\n  PartialReasoningModalityLiteral,\n  PartialSearchResultContentType,\n  PartialSearchResultModalityLiteral,\n  PartialTextContentType,\n  PartialTextModalityLiteral,\n  PartialToolCallContentType,\n  PartialToolCallModalityLiteral,\n  PartialToolResponseContentType,\n  PartialToolResponseModalityLiteral,\n  ReasoningContentTypeLiteral,\n  ReasoningContentValueUnionType,\n  ReasoningModalityLiteral,\n  RedactedReasoningContentTypeLiteral,\n  SearchResultModalityLiteral,\n  TextModalityLiteral,\n  ToolCallModalityLiteral,\n  ToolResponseModalityLiteral,\n} from \"./../message\";\n\nconst mergePartialMessages = (response: PartialChatResponseType[]): ChatResponseType => {\n  const finalizedResponse: ChatResponseType = { messages: [] };\n\n  if (!response || response.length === 0) {\n    return finalizedResponse;\n  }\n  const mergedContents: ContentType[] = [];\n\n  // Accumulators for the content *currently being streamed*\n  let lastModality: PartialContentType[\"modality\"] | null = null;\n  let lastReasoningType: ReasoningContentValueUnionType[\"type\"] | null = null; // Track 'thinking' vs 'redacted'\n  let lastToolCallIndex: number | undefined = undefined;\n  let lastToolResponseIndex: number | undefined = undefined;\n\n  let currentTextValue: string | null = null;\n  let currentToolCall: { index?: number; id: string; name: string; arguments: string; thoughtSignature?: string } | null = null;\n  let currentToolResponse: { index?: number; id: string; name: string; data: string; apiResponse?: { statusCode: number } } | null = null;\n  let currentReasoning: PartialReasoningContentType[\"value\"] | null = null; // Store the partial value directly\n  let currentSearchResult: PartialSearchResultContentType[\"value\"] | null = null;\n  let currentError: PartialErrorContentType[\"value\"] | null = null;\n\n  // --- Helper Function to Finalize and Add the previous block ---\n  const finalizePreviousBlock = () => {\n    let finalizedContent: ContentType | null = null;\n\n    if (lastModality === PartialTextModalityLiteral && currentTextValue !== null) {\n      finalizedContent = {\n        modality: TextModalityLiteral,\n        value: currentTextValue,\n      };\n    } else if (lastModality === PartialToolCallModalityLiteral && currentToolCall) {\n      // Ensure required fields are present for the final ToolCall\n      if (currentToolCall.id && currentToolCall.name && currentToolCall.arguments !== undefined && currentToolCall.index !== undefined) {\n        finalizedContent = {\n          modality: ToolCallModalityLiteral,\n          index: currentToolCall.index,\n          id: currentToolCall.id,\n          name: currentToolCall.name,\n          arguments: currentToolCall.arguments,\n          ...(currentToolCall.thoughtSignature ? { thoughtSignature: currentToolCall.thoughtSignature } : {}),\n        };\n      } else {\n        throw new GatewayBaseError({\n          info: \"Incomplete tool call data encountered during finalization. Required fields (id, name, arguments, index) were missing or incomplete.\",\n          cause: { currentToolCall },\n        });\n      }\n    } else if (lastModality === PartialToolResponseModalityLiteral && currentToolResponse) {\n      // Ensure required fields are present for the final ToolResponse\n      if (\n        currentToolResponse.id &&\n        currentToolResponse.name &&\n        currentToolResponse.data !== undefined &&\n        currentToolResponse.index !== undefined\n      ) {\n        finalizedContent = {\n          modality: ToolResponseModalityLiteral,\n          index: currentToolResponse.index,\n          id: currentToolResponse.id,\n          name: currentToolResponse.name,\n          data: currentToolResponse.data,\n          apiResponse: currentToolResponse.apiResponse,\n        };\n      } else {\n        throw new GatewayBaseError({\n          info: \"Incomplete tool response data encountered during finalization. Required fields (id, name, data, index) were missing or incomplete.\",\n          cause: { currentToolResponse },\n        });\n      }\n    } else if (lastModality === PartialReasoningModalityLiteral && currentReasoning) {\n      if (currentReasoning.type === ReasoningContentTypeLiteral) {\n        if (currentReasoning.thinking !== undefined && currentReasoning.signature !== undefined) {\n          finalizedContent = {\n            modality: ReasoningModalityLiteral,\n            value: {\n              type: ReasoningContentTypeLiteral,\n              thinking: currentReasoning.thinking,\n              signature: currentReasoning.signature,\n            },\n          };\n        } else {\n          throw new GatewayBaseError({\n            info: \"Incomplete 'thinking' reasoning data encountered during finalization. Required fields (thinking, signature) were missing or incomplete.\",\n            cause: { currentReasoning },\n          });\n        }\n      } else if (currentReasoning.type === RedactedReasoningContentTypeLiteral) {\n        if (currentReasoning.data !== undefined) {\n          finalizedContent = {\n            modality: ReasoningModalityLiteral,\n            value: {\n              type: RedactedReasoningContentTypeLiteral,\n              data: currentReasoning.data,\n            },\n          };\n        } else {\n          throw new GatewayBaseError({\n            info: \"Incomplete 'redacted' reasoning data encountered during finalization. Required field (data) was missing or incomplete.\",\n            cause: { currentReasoning },\n          });\n        }\n      }\n    } else if (lastModality === PartialSearchResultModalityLiteral && currentSearchResult) {\n      // Only finalize search result if it has meaningful content\n      const hasQuery = currentSearchResult.query && currentSearchResult.query.length > 0;\n      const hasResponses = currentSearchResult.responses && currentSearchResult.responses.length > 0;\n      const hasReferences = currentSearchResult.references && currentSearchResult.references.length > 0;\n\n      if (hasQuery || hasResponses || hasReferences) {\n        finalizedContent = {\n          modality: SearchResultModalityLiteral,\n          value: {\n            type: currentSearchResult.type,\n            query: currentSearchResult.query ?? \"\",\n            responses: (currentSearchResult.responses ?? []).map((r) => ({\n              source: r.source ?? \"\",\n              url: r.url ?? \"\",\n              title: r.title ?? \"\",\n              snippet: r.snippet,\n            })),\n            references: (currentSearchResult.references ?? []).map((ref) => ({\n              text: ref.text ?? \"\",\n              responseIndices: ref.responseIndices ?? [],\n              startIndex: ref.startIndex,\n              endIndex: ref.endIndex,\n              confidenceScores: ref.confidenceScores,\n            })),\n          },\n        };\n      }\n      // If empty, don't create content - just reset accumulators\n    } else if (lastModality === PartialErrorModalityLiteral && currentError) {\n      // Errors come as complete objects, convert directly\n      if (currentError.type === \"safety\") {\n        finalizedContent = {\n          modality: ErrorModalityLiteral,\n          value: {\n            type: \"safety\",\n            value: {\n              category: currentError.category ?? \"\",\n              probability: currentError.probability ?? \"\",\n              blocked: currentError.blocked ?? false,\n              message: currentError.message ?? \"\",\n            },\n          },\n        };\n      } else if (currentError.type === \"response_error\") {\n        finalizedContent = {\n          modality: ErrorModalityLiteral,\n          value: {\n            type: \"response_error\",\n            value: {\n              code: currentError.code ?? \"\",\n              message: currentError.message ?? \"\",\n              ...(currentError.provider !== undefined ? { provider: currentError.provider } : {}),\n            },\n          },\n        };\n      }\n    }\n\n    // If content was successfully finalized, add it as a separate message\n    if (finalizedContent) {\n      mergedContents.push(finalizedContent);\n    }\n\n    // Reset accumulators for the *next* block\n    currentTextValue = null;\n    currentToolCall = null;\n    currentToolResponse = null;\n    currentReasoning = null;\n    currentSearchResult = null;\n    currentError = null;\n    lastModality = null; // Reset modality marker\n    lastReasoningType = null; // Reset reasoning type marker\n    lastToolCallIndex = undefined; // Reset tool call index marker\n    lastToolResponseIndex = undefined; // Reset tool response index marker\n  };\n\n  // --- Main Processing Loop ---\n  response.forEach((chatChunk, chunkIndex) => {\n    if (!chatChunk.partialMessages) return;\n\n    chatChunk.partialMessages.forEach((message, messageIndex) => {\n      if (message.role !== AssistantRoleLiteral) {\n        throw new GatewayBaseError({\n          info: `Unexpected message role encountered while merging partial messages. Expected '${AssistantRoleLiteral}'.`,\n          cause: { role: message.role, chunkIndex, messageIndex, message },\n        });\n      }\n\n      const currentContent = message.partialContent;\n      const currentModality = currentContent.modality;\n      let currentReasoningType: ReasoningContentValueUnionType[\"type\"] | null = null;\n      let currentToolCallIndex: number | undefined = undefined;\n      let currentToolResponseIndex: number | undefined = undefined;\n\n      if (currentModality === PartialReasoningModalityLiteral) {\n        currentReasoningType = (currentContent as PartialReasoningContentType).value.type;\n      }\n      if (currentModality === PartialToolCallModalityLiteral) {\n        currentToolCallIndex = (currentContent as PartialToolCallContentType).index;\n      }\n      if (currentModality === PartialToolResponseModalityLiteral) {\n        currentToolResponseIndex = (currentContent as PartialToolResponseContentType).index;\n      }\n\n      // --- Check for Block Change ---\n      // A new block starts if:\n      // 1. Modality changes.\n      // 2. Modality is Reasoning, and the *type* of reasoning changes.\n      // 3. Modality is ToolCall, and the *index* changes.\n      // 4. Modality is ToolResponse, and the *index* changes.\n      const modalityChanged = currentModality !== lastModality;\n      const reasoningTypeChanged =\n        currentModality === PartialReasoningModalityLiteral &&\n        lastModality === PartialReasoningModalityLiteral &&\n        currentReasoningType !== lastReasoningType;\n      const toolCallIndexChanged =\n        currentModality === PartialToolCallModalityLiteral &&\n        lastModality === PartialToolCallModalityLiteral &&\n        currentToolCallIndex !== lastToolCallIndex;\n      const toolResponseIndexChanged =\n        currentModality === PartialToolResponseModalityLiteral &&\n        lastModality === PartialToolResponseModalityLiteral &&\n        currentToolResponseIndex !== lastToolResponseIndex;\n\n      // If a boundary is detected and we were accumulating something, finalize the previous block.\n      if ((modalityChanged || reasoningTypeChanged || toolCallIndexChanged || toolResponseIndexChanged) && lastModality !== null) {\n        finalizePreviousBlock();\n      }\n\n      // --- Update State & Accumulate Current Part ---\n      // Set the markers for the block *now* being processed\n      if (lastModality === null) {\n        // Only set if we just finalized or it's the first part\n        lastModality = currentModality;\n        if (currentModality === PartialReasoningModalityLiteral) {\n          lastReasoningType = currentReasoningType;\n        }\n        if (currentModality === PartialToolCallModalityLiteral) {\n          lastToolCallIndex = currentToolCallIndex;\n        }\n        if (currentModality === PartialToolResponseModalityLiteral) {\n          lastToolResponseIndex = currentToolResponseIndex;\n        }\n      }\n\n      // Accumulate based on current modality\n      if (currentModality === PartialTextModalityLiteral) {\n        const textPart = currentContent as PartialTextContentType;\n        currentTextValue = (currentTextValue ?? \"\") + (textPart.value ?? \"\");\n      } else if (currentModality === PartialToolCallModalityLiteral) {\n        const toolCallPart = currentContent as PartialToolCallContentType;\n        if (!currentToolCall) {\n          // Initialize if starting a new tool call block\n          currentToolCall = {\n            index: toolCallPart.index,\n            id: toolCallPart.id ?? \"\",\n            name: toolCallPart.name ?? \"\",\n            arguments: toolCallPart.arguments ?? \"\",\n            thoughtSignature: toolCallPart.thoughtSignature,\n          };\n        } else {\n          // Append to existing tool call block (same index)\n          currentToolCall.id += toolCallPart.id || \"\";\n          currentToolCall.name += toolCallPart.name || \"\";\n          currentToolCall.arguments += toolCallPart.arguments || \"\";\n          // Keep the first thoughtSignature encountered (or update if newly provided)\n          if (!currentToolCall.thoughtSignature && toolCallPart.thoughtSignature) {\n            currentToolCall.thoughtSignature = toolCallPart.thoughtSignature;\n          }\n        }\n      } else if (currentModality === PartialToolResponseModalityLiteral) {\n        const toolResponsePart = currentContent as PartialToolResponseContentType;\n        if (!currentToolResponse) {\n          // Initialize if starting a new tool response block\n          currentToolResponse = {\n            index: toolResponsePart.index,\n            id: toolResponsePart.id ?? \"\",\n            name: toolResponsePart.name ?? \"\",\n            data: toolResponsePart.data ?? \"\",\n            apiResponse: toolResponsePart.apiResponse,\n          };\n        } else {\n          // Append to existing tool response block (same index)\n          currentToolResponse.id += toolResponsePart.id || \"\";\n          currentToolResponse.name += toolResponsePart.name || \"\";\n          currentToolResponse.data += toolResponsePart.data || \"\";\n          // Keep the first apiResponse encountered\n          if (!currentToolResponse.apiResponse && toolResponsePart.apiResponse) {\n            currentToolResponse.apiResponse = toolResponsePart.apiResponse;\n          }\n        }\n      } else if (currentModality === PartialReasoningModalityLiteral) {\n        const reasoningPart = currentContent as PartialReasoningContentType;\n        const valuePart = reasoningPart.value;\n\n        if (!currentReasoning) {\n          // Initialize if starting a new reasoning block\n          if (valuePart.type === ReasoningContentTypeLiteral) {\n            currentReasoning = {\n              type: ReasoningContentTypeLiteral,\n              thinking: valuePart.thinking ?? \"\",\n              signature: valuePart.signature ?? \"\",\n            };\n          } else if (valuePart.type === RedactedReasoningContentTypeLiteral) {\n            currentReasoning = {\n              type: RedactedReasoningContentTypeLiteral,\n              data: valuePart.data ?? \"\",\n            };\n          } else {\n            throw new GatewayBaseError({\n              info: `Unknown reasoning type encountered during initialization. Expected '${ReasoningContentTypeLiteral}' or '${RedactedReasoningContentTypeLiteral}'.`,\n              cause: { valuePart, chunkIndex, messageIndex },\n            });\n          }\n        } else {\n          // For redacted reasoning, do not accumulate subsequent parts;\n          // finalize the existing block and start a new one.\n          if (currentReasoning.type === RedactedReasoningContentTypeLiteral && valuePart.type === RedactedReasoningContentTypeLiteral) {\n            finalizePreviousBlock();\n            // Start a new redacted reasoning block immediately\n            currentReasoning = {\n              type: RedactedReasoningContentTypeLiteral,\n              data: valuePart.data ?? \"\",\n            };\n            // Since we finalized, update the state markers accordingly\n            lastModality = currentModality;\n            lastReasoningType = valuePart.type;\n          } else if (currentReasoning.type === ReasoningContentTypeLiteral && valuePart.type === ReasoningContentTypeLiteral) {\n            // Accumulate for \"thinking\" type reasoning normally\n            currentReasoning.thinking = (currentReasoning.thinking ?? \"\") + (valuePart.thinking ?? \"\");\n            currentReasoning.signature = (currentReasoning.signature ?? \"\") + (valuePart.signature ?? \"\");\n          } else {\n            throw new GatewayBaseError({\n              info: \"Logic error: Mismatched reasoning types during accumulation.\",\n              cause: { currentReasoning, valuePart, chunkIndex, messageIndex },\n            });\n          }\n        }\n      } else if (currentModality === PartialSearchResultModalityLiteral) {\n        const searchResultPart = currentContent as PartialSearchResultContentType;\n        const valuePart = searchResultPart.value;\n        // Search results accumulate - merge incoming data with existing\n        if (!currentSearchResult) {\n          // Initialize new search result\n          currentSearchResult = {\n            type: valuePart.type,\n            query: valuePart.query ?? \"\",\n            responses: [...(valuePart.responses ?? [])],\n            references: [...(valuePart.references ?? [])],\n          };\n        } else {\n          // Merge with existing search result - keep latest non-empty query, merge arrays\n          if (valuePart.query && valuePart.query.length > 0) {\n            currentSearchResult.query = valuePart.query;\n          }\n          if (valuePart.responses && valuePart.responses.length > 0) {\n            currentSearchResult.responses = [...(currentSearchResult.responses ?? []), ...valuePart.responses];\n          }\n          if (valuePart.references && valuePart.references.length > 0) {\n            currentSearchResult.references = [...(currentSearchResult.references ?? []), ...valuePart.references];\n          }\n        }\n      } else if (currentModality === PartialErrorModalityLiteral) {\n        const errorPart = currentContent as PartialErrorContentType;\n        const incoming = errorPart.value;\n        // `safety` errors arrive as complete objects — each one is a separate block.\n        // `response_error` partials are delta-concatenated on `message` to support streaming\n        // refusal text (e.g. OpenAI Responses API `response.refusal.delta` chunks), while\n        // `code` and `provider` take the first non-undefined value seen in the block.\n        if (!currentError) {\n          currentError = incoming;\n        } else if (currentError.type === \"response_error\" && incoming.type === \"response_error\") {\n          currentError = {\n            type: \"response_error\",\n            code: currentError.code ?? incoming.code,\n            message: (currentError.message ?? \"\") + (incoming.message ?? \"\"),\n            provider: currentError.provider ?? incoming.provider,\n          };\n        } else {\n          // Type changed (e.g. safety→response_error or response_error→safety) or safety→safety:\n          // finalize the existing block and start a new one.\n          finalizePreviousBlock();\n          lastModality = currentModality;\n          currentError = incoming;\n        }\n      }\n    });\n  });\n\n  // Finalize any remaining accumulated content after the loops finish\n  finalizePreviousBlock();\n\n  finalizedResponse.messages = [\n    {\n      role: AssistantRoleLiteral,\n      content: mergedContents,\n    },\n  ] as MessageType[];\n\n  // Usage\n  // Initialize accumulators\n  let firstPrompt: number | undefined;\n  let lastPrompt: number | undefined;\n  let totalCompletion = 0;\n  let usageFound = false;\n\n  const aggregatedUsage: ChatUsageType = {\n    promptTokens: 0,\n    completionTokens: 0,\n    totalTokens: 0,\n  };\n\n  for (const chunk of response) {\n    const u = chunk.usage;\n    if (!u) continue;\n\n    usageFound = true;\n\n    // Track first & last promptTokens\n    if (u.promptTokens != null) {\n      if (firstPrompt === undefined) {\n        firstPrompt = u.promptTokens;\n      }\n      lastPrompt = u.promptTokens;\n    }\n\n    // Sum completionTokens\n    if (u.completionTokens != null) {\n      totalCompletion += u.completionTokens;\n    }\n  }\n\n  if (usageFound) {\n    // Use the latest promptTokens if we saw one, otherwise the first\n    aggregatedUsage.promptTokens = lastPrompt ?? firstPrompt ?? 0;\n    aggregatedUsage.completionTokens = totalCompletion;\n    aggregatedUsage.totalTokens = aggregatedUsage.promptTokens + aggregatedUsage.completionTokens;\n\n    finalizedResponse.usage = aggregatedUsage;\n  } else {\n    finalizedResponse.usage = undefined;\n  }\n  return finalizedResponse;\n};\n\nexport { mergePartialMessages };\n"]}