fix: support raw JSON response tool arguments

This commit is contained in:
Seefs
2026-04-26 13:47:37 +08:00
parent f2f3410dcf
commit db89b57e1c
5 changed files with 76 additions and 3 deletions
+16
View File
@@ -43,3 +43,19 @@ func GetJsonType(data json.RawMessage) string {
return "number"
}
}
// JsonRawMessageToString returns JSON strings as their decoded value and other JSON values as raw text.
func JsonRawMessageToString(data json.RawMessage) string {
trimmed := bytes.TrimSpace(data)
if len(trimmed) == 0 || bytes.Equal(trimmed, []byte("null")) {
return ""
}
if trimmed[0] != '"' {
return string(trimmed)
}
var value string
if err := Unmarshal(trimmed, &value); err != nil {
return string(trimmed)
}
return value
}