/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: 7ef605ec81a5 */ import * as z from "zod/v4"; import { remap as remap$ } from "../../lib/primitives.js"; import { ClosedEnum } from "../../types/enums.js"; import { smartUnion } from "../../types/smartUnion.js"; import { CompletionArgs, CompletionArgs$Outbound, CompletionArgs$outboundSchema, } from "./completionargs.js"; import { ConversationInputs, ConversationInputs$Outbound, ConversationInputs$outboundSchema, } from "./conversationinputs.js"; import { GuardrailConfig, GuardrailConfig$Outbound, GuardrailConfig$outboundSchema, } from "./guardrailconfig.js"; export const ConversationRestartRequestHandoffExecution = { Client: "client", Server: "server", } as const; export type ConversationRestartRequestHandoffExecution = ClosedEnum< typeof ConversationRestartRequestHandoffExecution >; /** * Specific version of the agent to use when restarting. If not provided, uses the current version. */ export type ConversationRestartRequestAgentVersion = string | number; /** * Request to restart a new conversation from a given entry in the conversation. */ export type ConversationRestartRequest = { inputs?: ConversationInputs | undefined; stream?: false | undefined; /** * Whether to store the results into our servers or not. */ store?: boolean | undefined; handoffExecution?: ConversationRestartRequestHandoffExecution | undefined; /** * White-listed arguments from the completion API */ completionArgs?: CompletionArgs | undefined; guardrails?: Array | null | undefined; /** * Custom metadata for the conversation. */ metadata?: { [k: string]: any } | null | undefined; fromEntryId: string; /** * Specific version of the agent to use when restarting. If not provided, uses the current version. */ agentVersion?: string | number | null | undefined; }; /** @internal */ export const ConversationRestartRequestHandoffExecution$outboundSchema: z.ZodEnum = z.enum( ConversationRestartRequestHandoffExecution, ); /** @internal */ export type ConversationRestartRequestAgentVersion$Outbound = string | number; /** @internal */ export const ConversationRestartRequestAgentVersion$outboundSchema: z.ZodType< ConversationRestartRequestAgentVersion$Outbound, ConversationRestartRequestAgentVersion > = smartUnion([z.string(), z.int()]); export function conversationRestartRequestAgentVersionToJSON( conversationRestartRequestAgentVersion: ConversationRestartRequestAgentVersion, ): string { return JSON.stringify( ConversationRestartRequestAgentVersion$outboundSchema.parse( conversationRestartRequestAgentVersion, ), ); } /** @internal */ export type ConversationRestartRequest$Outbound = { inputs?: ConversationInputs$Outbound | undefined; stream: false; store: boolean; handoff_execution: string; completion_args?: CompletionArgs$Outbound | undefined; guardrails?: Array | null | undefined; metadata?: { [k: string]: any } | null | undefined; from_entry_id: string; agent_version?: string | number | null | undefined; }; /** @internal */ export const ConversationRestartRequest$outboundSchema: z.ZodType< ConversationRestartRequest$Outbound, ConversationRestartRequest > = z.object({ inputs: ConversationInputs$outboundSchema.optional(), stream: z.literal(false).default(false as const), store: z.boolean().default(true), handoffExecution: ConversationRestartRequestHandoffExecution$outboundSchema .default("server"), completionArgs: CompletionArgs$outboundSchema.optional(), guardrails: z.nullable(z.array(GuardrailConfig$outboundSchema)).optional(), metadata: z.nullable(z.record(z.string(), z.any())).optional(), fromEntryId: z.string(), agentVersion: z.nullable(smartUnion([z.string(), z.int()])).optional(), }).transform((v) => { return remap$(v, { handoffExecution: "handoff_execution", completionArgs: "completion_args", fromEntryId: "from_entry_id", agentVersion: "agent_version", }); }); export function conversationRestartRequestToJSON( conversationRestartRequest: ConversationRestartRequest, ): string { return JSON.stringify( ConversationRestartRequest$outboundSchema.parse(conversationRestartRequest), ); }