Fix Kiro tool schema defaults

This commit is contained in:
Darley
2026-01-26 08:27:53 +08:00
parent fe8c7a62aa
commit 7c7c5fd967
2 changed files with 18 additions and 3 deletions
@@ -314,7 +314,7 @@ func ConvertOpenAIToolsToKiroFormat(tools []map[string]interface{}) []KiroToolWr
name := kirocommon.GetString(fn, "name")
description := kirocommon.GetString(fn, "description")
parameters := fn["parameters"]
parameters := ensureKiroInputSchema(fn["parameters"])
if name == "" {
continue
@@ -381,6 +381,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{}{},
}
}
// convertOpenAIToolsToKiro converts OpenAI tools to Kiro format
func convertOpenAIToolsToKiro(tools gjson.Result) []KiroToolWrapper {
var kiroTools []KiroToolWrapper
@@ -401,7 +411,12 @@ func convertOpenAIToolsToKiro(tools gjson.Result) []KiroToolWrapper {
name := fn.Get("name").String()
description := fn.Get("description").String()
parameters := fn.Get("parameters").Value()
parametersResult := fn.Get("parameters")
var parameters interface{}
if parametersResult.Exists() && parametersResult.Type != gjson.Null {
parameters = parametersResult.Value()
}
parameters = ensureKiroInputSchema(parameters)
// Shorten tool name if it exceeds 64 characters (common with MCP tools)
originalName := name