/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: c88ac13bb48c */ import * as z from "zod/v4"; import { remap as remap$ } from "../../lib/primitives.js"; import { smartUnion } from "../../types/smartUnion.js"; import { AssistantMessage, AssistantMessage$Outbound, AssistantMessage$outboundSchema, } from "./assistantmessage.js"; import { CodeInterpreterTool, CodeInterpreterTool$Outbound, CodeInterpreterTool$outboundSchema, } from "./codeinterpretertool.js"; import { CustomConnector, CustomConnector$Outbound, CustomConnector$outboundSchema, } from "./customconnector.js"; import { DocumentLibraryTool, DocumentLibraryTool$Outbound, DocumentLibraryTool$outboundSchema, } from "./documentlibrarytool.js"; import { GuardrailConfig, GuardrailConfig$Outbound, GuardrailConfig$outboundSchema, } from "./guardrailconfig.js"; import { ImageGenerationTool, ImageGenerationTool$Outbound, ImageGenerationTool$outboundSchema, } from "./imagegenerationtool.js"; import { MistralPromptMode, MistralPromptMode$outboundSchema, } from "./mistralpromptmode.js"; import { Prediction, Prediction$Outbound, Prediction$outboundSchema, } from "./prediction.js"; import { ReasoningEffort, ReasoningEffort$outboundSchema, } from "./reasoningeffort.js"; import { ResponseFormat, ResponseFormat$Outbound, ResponseFormat$outboundSchema, } from "./responseformat.js"; import { SystemMessage, SystemMessage$Outbound, SystemMessage$outboundSchema, } from "./systemmessage.js"; import { Tool, Tool$Outbound, Tool$outboundSchema } from "./tool.js"; import { ToolChoice, ToolChoice$Outbound, ToolChoice$outboundSchema, } from "./toolchoice.js"; import { ToolChoiceEnum, ToolChoiceEnum$outboundSchema, } from "./toolchoiceenum.js"; import { ToolMessage, ToolMessage$Outbound, ToolMessage$outboundSchema, } from "./toolmessage.js"; import { UserMessage, UserMessage$Outbound, UserMessage$outboundSchema, } from "./usermessage.js"; import { WebSearchPremiumTool, WebSearchPremiumTool$Outbound, WebSearchPremiumTool$outboundSchema, } from "./websearchpremiumtool.js"; import { WebSearchTool, WebSearchTool$Outbound, WebSearchTool$outboundSchema, } from "./websearchtool.js"; /** * Stop generation if this token is detected. Or if one of these tokens is detected when providing an array */ export type AgentsCompletionRequestStop = string | Array; export type AgentsCompletionRequestMessage = | (AssistantMessage & { role: "assistant" }) | SystemMessage | ToolMessage | UserMessage; export type AgentsCompletionRequestTool = | Tool | WebSearchTool | WebSearchPremiumTool | CodeInterpreterTool | ImageGenerationTool | DocumentLibraryTool | CustomConnector; export type AgentsCompletionRequestToolChoice = ToolChoice | ToolChoiceEnum; export type AgentsCompletionRequest = { /** * The maximum number of tokens to generate in the completion. The token count of your prompt plus `max_tokens` cannot exceed the model's context length. */ maxTokens?: number | null | undefined; /** * Whether to stream back partial progress. If set, tokens will be sent as data-only server-side events as they become available, with the stream terminated by a data: [DONE] message. Otherwise, the server will hold the request open until the timeout or until completion, with the response containing the full result as JSON. */ stream?: boolean | undefined; /** * Stop generation if this token is detected. Or if one of these tokens is detected when providing an array */ stop?: string | Array | null | undefined; /** * The seed to use for random sampling. If set, different calls will generate deterministic results. */ randomSeed?: number | null | undefined; metadata?: { [k: string]: any } | null | undefined; /** * The prompt(s) to generate completions for, encoded as a list of dict with role and content. */ messages: Array< | (AssistantMessage & { role: "assistant" }) | SystemMessage | ToolMessage | UserMessage >; /** * Specify the format that the model must output. By default it will use `{ "type": "text" }`. Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ "type": "json_schema" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide. */ responseFormat?: ResponseFormat | undefined; tools?: | Array< | Tool | WebSearchTool | WebSearchPremiumTool | CodeInterpreterTool | ImageGenerationTool | DocumentLibraryTool | CustomConnector > | null | undefined; toolChoice?: ToolChoice | ToolChoiceEnum | undefined; /** * The `presence_penalty` determines how much the model penalizes the repetition of words or phrases. A higher presence penalty encourages the model to use a wider variety of words and phrases, making the output more diverse and creative. */ presencePenalty?: number | null | undefined; /** * The `frequency_penalty` penalizes the repetition of words based on their frequency in the generated text. A higher frequency penalty discourages the model from repeating words that have already appeared frequently in the output, promoting diversity and reducing repetition. */ frequencyPenalty?: number | null | undefined; /** * Number of completions to return for each request, input tokens are only billed once. */ n?: number | null | undefined; /** * Enable users to specify an expected completion, optimizing response times by leveraging known or predictable content. */ prediction?: Prediction | undefined; parallelToolCalls?: boolean | undefined; reasoningEffort?: ReasoningEffort | null | undefined; /** * Allows toggling between the reasoning mode and no system prompt. When set to `reasoning` the system prompt for reasoning models will be used. */ promptMode?: MistralPromptMode | null | undefined; guardrails?: Array | null | undefined; /** * The ID of the agent to use for this completion. */ agentId: string; }; /** @internal */ export type AgentsCompletionRequestStop$Outbound = string | Array; /** @internal */ export const AgentsCompletionRequestStop$outboundSchema: z.ZodType< AgentsCompletionRequestStop$Outbound, AgentsCompletionRequestStop > = smartUnion([z.string(), z.array(z.string())]); export function agentsCompletionRequestStopToJSON( agentsCompletionRequestStop: AgentsCompletionRequestStop, ): string { return JSON.stringify( AgentsCompletionRequestStop$outboundSchema.parse( agentsCompletionRequestStop, ), ); } /** @internal */ export type AgentsCompletionRequestMessage$Outbound = | (AssistantMessage$Outbound & { role: "assistant" }) | SystemMessage$Outbound | ToolMessage$Outbound | UserMessage$Outbound; /** @internal */ export const AgentsCompletionRequestMessage$outboundSchema: z.ZodType< AgentsCompletionRequestMessage$Outbound, AgentsCompletionRequestMessage > = z.union([ AssistantMessage$outboundSchema.and( z.object({ role: z.literal("assistant") }), ), SystemMessage$outboundSchema, ToolMessage$outboundSchema, UserMessage$outboundSchema, ]); export function agentsCompletionRequestMessageToJSON( agentsCompletionRequestMessage: AgentsCompletionRequestMessage, ): string { return JSON.stringify( AgentsCompletionRequestMessage$outboundSchema.parse( agentsCompletionRequestMessage, ), ); } /** @internal */ export type AgentsCompletionRequestTool$Outbound = | Tool$Outbound | WebSearchTool$Outbound | WebSearchPremiumTool$Outbound | CodeInterpreterTool$Outbound | ImageGenerationTool$Outbound | DocumentLibraryTool$Outbound | CustomConnector$Outbound; /** @internal */ export const AgentsCompletionRequestTool$outboundSchema: z.ZodType< AgentsCompletionRequestTool$Outbound, AgentsCompletionRequestTool > = z.union([ Tool$outboundSchema, WebSearchTool$outboundSchema, WebSearchPremiumTool$outboundSchema, CodeInterpreterTool$outboundSchema, ImageGenerationTool$outboundSchema, DocumentLibraryTool$outboundSchema, CustomConnector$outboundSchema, ]); export function agentsCompletionRequestToolToJSON( agentsCompletionRequestTool: AgentsCompletionRequestTool, ): string { return JSON.stringify( AgentsCompletionRequestTool$outboundSchema.parse( agentsCompletionRequestTool, ), ); } /** @internal */ export type AgentsCompletionRequestToolChoice$Outbound = | ToolChoice$Outbound | string; /** @internal */ export const AgentsCompletionRequestToolChoice$outboundSchema: z.ZodType< AgentsCompletionRequestToolChoice$Outbound, AgentsCompletionRequestToolChoice > = smartUnion([ToolChoice$outboundSchema, ToolChoiceEnum$outboundSchema]); export function agentsCompletionRequestToolChoiceToJSON( agentsCompletionRequestToolChoice: AgentsCompletionRequestToolChoice, ): string { return JSON.stringify( AgentsCompletionRequestToolChoice$outboundSchema.parse( agentsCompletionRequestToolChoice, ), ); } /** @internal */ export type AgentsCompletionRequest$Outbound = { max_tokens?: number | null | undefined; stream: boolean; stop?: string | Array | null | undefined; random_seed?: number | null | undefined; metadata?: { [k: string]: any } | null | undefined; messages: Array< | (AssistantMessage$Outbound & { role: "assistant" }) | SystemMessage$Outbound | ToolMessage$Outbound | UserMessage$Outbound >; response_format?: ResponseFormat$Outbound | undefined; tools?: | Array< | Tool$Outbound | WebSearchTool$Outbound | WebSearchPremiumTool$Outbound | CodeInterpreterTool$Outbound | ImageGenerationTool$Outbound | DocumentLibraryTool$Outbound | CustomConnector$Outbound > | null | undefined; tool_choice?: ToolChoice$Outbound | string | undefined; presence_penalty?: number | null | undefined; frequency_penalty?: number | null | undefined; n?: number | null | undefined; prediction?: Prediction$Outbound | undefined; parallel_tool_calls?: boolean | undefined; reasoning_effort?: string | null | undefined; prompt_mode?: string | null | undefined; guardrails?: Array | null | undefined; agent_id: string; }; /** @internal */ export const AgentsCompletionRequest$outboundSchema: z.ZodType< AgentsCompletionRequest$Outbound, AgentsCompletionRequest > = z.object({ maxTokens: z.nullable(z.int()).optional(), stream: z.boolean().default(false), stop: z.nullable(smartUnion([z.string(), z.array(z.string())])).optional(), randomSeed: z.nullable(z.int()).optional(), metadata: z.nullable(z.record(z.string(), z.any())).optional(), messages: z.array( z.union([ AssistantMessage$outboundSchema.and( z.object({ role: z.literal("assistant") }), ), SystemMessage$outboundSchema, ToolMessage$outboundSchema, UserMessage$outboundSchema, ]), ), responseFormat: ResponseFormat$outboundSchema.optional(), tools: z.nullable( z.array( z.union([ Tool$outboundSchema, WebSearchTool$outboundSchema, WebSearchPremiumTool$outboundSchema, CodeInterpreterTool$outboundSchema, ImageGenerationTool$outboundSchema, DocumentLibraryTool$outboundSchema, CustomConnector$outboundSchema, ]), ), ).optional(), toolChoice: smartUnion([ ToolChoice$outboundSchema, ToolChoiceEnum$outboundSchema, ]).optional(), presencePenalty: z.nullable(z.number()).optional(), frequencyPenalty: z.nullable(z.number()).optional(), n: z.nullable(z.int()).optional(), prediction: Prediction$outboundSchema.optional(), parallelToolCalls: z.boolean().optional(), reasoningEffort: z.nullable(ReasoningEffort$outboundSchema).optional(), promptMode: z.nullable(MistralPromptMode$outboundSchema).optional(), guardrails: z.nullable(z.array(GuardrailConfig$outboundSchema)).optional(), agentId: z.string(), }).transform((v) => { return remap$(v, { maxTokens: "max_tokens", randomSeed: "random_seed", responseFormat: "response_format", toolChoice: "tool_choice", presencePenalty: "presence_penalty", frequencyPenalty: "frequency_penalty", parallelToolCalls: "parallel_tool_calls", reasoningEffort: "reasoning_effort", promptMode: "prompt_mode", agentId: "agent_id", }); }); export function agentsCompletionRequestToJSON( agentsCompletionRequest: AgentsCompletionRequest, ): string { return JSON.stringify( AgentsCompletionRequest$outboundSchema.parse(agentsCompletionRequest), ); }