From e3e741d0be8bdf8dd0dba7e61deecd391310b12f Mon Sep 17 00:00:00 2001 From: Darley Date: Mon, 26 Jan 2026 09:15:38 +0800 Subject: [PATCH] Default Claude tool input schema --- .../kiro/claude/kiro_claude_request.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/internal/translator/kiro/claude/kiro_claude_request.go b/internal/translator/kiro/claude/kiro_claude_request.go index bcd39af4..f92be9d5 100644 --- a/internal/translator/kiro/claude/kiro_claude_request.go +++ b/internal/translator/kiro/claude/kiro_claude_request.go @@ -499,6 +499,16 @@ func shortenToolNameIfNeeded(name string) string { return name[:limit] } +func ensureKiroInputSchema(parameters interface{}) interface{} { + if parameters != nil { + return parameters + } + return map[string]interface{}{ + "type": "object", + "properties": map[string]interface{}{}, + } +} + // convertClaudeToolsToKiro converts Claude tools to Kiro format func convertClaudeToolsToKiro(tools gjson.Result) []KiroToolWrapper { var kiroTools []KiroToolWrapper @@ -509,7 +519,12 @@ func convertClaudeToolsToKiro(tools gjson.Result) []KiroToolWrapper { for _, tool := range tools.Array() { name := tool.Get("name").String() description := tool.Get("description").String() - inputSchema := tool.Get("input_schema").Value() + inputSchemaResult := tool.Get("input_schema") + var inputSchema interface{} + if inputSchemaResult.Exists() && inputSchemaResult.Type != gjson.Null { + inputSchema = inputSchemaResult.Value() + } + inputSchema = ensureKiroInputSchema(inputSchema) // Shorten tool name if it exceeds 64 characters (common with MCP tools) originalName := name