From 1dfbb40c4678cf537fb52e52654c10b12b424298 Mon Sep 17 00:00:00 2001 From: Erick Will Date: Sun, 5 Apr 2026 11:20:01 -0300 Subject: [PATCH] fix(api): stop LM Studio from rejecting tool schemas LM Studio's newer engine is very strict about JSON schemas. This adds the 'properties' and 'required' fields that were missing, which finally stops those 400 Bad Request errors from ruining the connection. --- rust/crates/api/src/providers/openai_compat.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rust/crates/api/src/providers/openai_compat.rs b/rust/crates/api/src/providers/openai_compat.rs index 48eec301..707db866 100644 --- a/rust/crates/api/src/providers/openai_compat.rs +++ b/rust/crates/api/src/providers/openai_compat.rs @@ -742,7 +742,12 @@ fn openai_tool_definition(tool: &ToolDefinition) -> Value { "function": { "name": tool.name, "description": tool.description, - "parameters": tool.input_schema, + "parameters": json!({ + "type": "object", + "properties": tool.input_schema.get("properties").unwrap_or(&json!({})), + "required": tool.input_schema.get("required").unwrap_or(&json!([])), + "additionalProperties": false + }), } }) }