JuliusBrussee/caveman · error
unsupported catalog shape
Error message
unsupported catalog shape
What it means
Error "unsupported catalog shape" thrown in JuliusBrussee/caveman.
Source
Thrown at shrink/shrink.go:258
func extractTools(input []byte) ([]toolEntry, error) {
var top any
if err := json.Unmarshal(input, &top); err != nil {
return nil, fmt.Errorf("not valid JSON: %w", err)
}
var rawList []any
switch t := top.(type) {
case map[string]any:
if v, ok := t["tools"].([]any); ok {
rawList = v
} else if v, ok := t["functions"].([]any); ok {
rawList = v
} else {
rawList = []any{t} // a single tool object
}
case []any:
rawList = t
default:
return nil, fmt.Errorf("unsupported catalog shape")
}
var entries []toolEntry
for _, item := range rawList {
obj, ok := item.(map[string]any)
if !ok {
continue
}
// OpenAI nests under "function".
toolObj := obj
if fn, ok := obj["function"].(map[string]any); ok {
toolObj = fn
}
name, _ := toolObj["name"].(string)
if name == "" {
continue
}
raw, _ := json.Marshal(obj)View on GitHub (pinned to 27d5a3981a)
Solutions
- Provide a supported catalog shape.
When it happens
Trigger: Thrown at shrink/shrink.go:258 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/04f8c6f7b52b8f91.
Report an issue: GitHub.