From 4705af6b1aa5df0bf1686c70ff893cf0da4ea5de Mon Sep 17 00:00:00 2001 From: Ajax Davis Date: Sun, 30 Nov 2025 02:45:32 +1000 Subject: [PATCH] fix: ensure tool parameters schema is always a valid JSON Schema object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: OpenAI API error 'got type: None' when tool has no/invalid parameters Solution: Add guard to explicitly create empty object schema with description when no parameters exist 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- apps/web/src/lib/ai-agent/tool-executor-agent.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/web/src/lib/ai-agent/tool-executor-agent.ts b/apps/web/src/lib/ai-agent/tool-executor-agent.ts index 83cad96..af5a075 100644 --- a/apps/web/src/lib/ai-agent/tool-executor-agent.ts +++ b/apps/web/src/lib/ai-agent/tool-executor-agent.ts @@ -95,7 +95,12 @@ export function createToolDefinition(tool: Tool) { const parameters = Array.isArray(tool.parameters) ? (tool.parameters as unknown as TPMJSParameter[]) : []; - const schema = tpmjsParamsToZodSchema(parameters); + + // Ensure we have a valid schema - if no parameters, use an empty object with explicit additionalProperties + const schema = + parameters.length > 0 + ? tpmjsParamsToZodSchema(parameters) + : z.object({}).describe('No parameters required'); return aiTool({ description: tool.description,