mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-26 23:50:17 +00:00
* fix: add missing type key to http tool body schema The body property in HttpTool::parameters_schema() was missing the required \"type\" key, causing OpenAI to reject all tool calls with: Invalid schema for function 'http' Fixes #131 * fix: add missing type key to json tool data schema Same class of bug as http tool body — the data property in JsonTool::parameters_schema() was missing the required "type" key, causing OpenAI to reject all tool calls. Fixes #131 * fix: use Chat Completions API to avoid rig-core Responses API panic The default openai::Client routes through rig-core's Responses API, which panics at "The tool call ID should exist!" because ironclaw doesn't thread call_id through its ToolCall type. Switch to openai::CompletionsClient which uses the Chat Completions API and works correctly with the existing code. * fix: normalize tool schemas for OpenAI strict mode compliance GPT-5/5.2 enforce strict function calling by default. Add normalize_schema_strict() that recursively transforms tool parameter schemas at the provider boundary: - Forces additionalProperties: false on all objects - Makes required list ALL property keys - Converts optional fields to nullable types - Handles nested objects, array items, and combinators Original schemas remain unchanged for other providers. Closes #131 --------- Co-authored-by: Illia Polosukhin <[email protected]>