import { z } from "zod"; export const agentInvokeConfigSchema = z.object({ maxRecursionDepth: z.number().int().positive().max(10).default(3), resultTruncateLength: z.number().int().positive().max(50000).default(4000), timeoutMs: z.number().int().positive().max(120000).default(30000), maxOutputTokens: z.number().int().positive().max(32768).default(4096), }); export type AgentInvokeToolConfig = z.infer; export const DEFAULT_AGENT_INVOKE_CONFIG: AgentInvokeToolConfig = { maxRecursionDepth: 3, resultTruncateLength: 8000, timeoutMs: 60000, maxOutputTokens: 8192, }; export function parseAgentInvokeConfig(raw: unknown): AgentInvokeToolConfig { const parsed = agentInvokeConfigSchema.safeParse(raw); if (!parsed.success) { throw new Error(`Invalid agent-invoke config: ${parsed.error.message}`); } return parsed.data; }