{"record":{"id":"3e02fcbe1840439e","repo":"JuliusBrussee/caveman","slug":"not-valid-json-w","errorCode":null,"errorMessage":"not valid JSON: %w","messagePattern":"not valid JSON: %w","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"shrink/shrink.go","lineNumber":243,"sourceCode":"\t\tout[e.name] = profileOf(e.schema)\n\t}\n\treturn out, nil\n}\n\n// --- catalog parsing --------------------------------------------------------\n\ntype toolEntry struct {\n\tname   string\n\traw    []byte         // the tool object's JSON\n\tschema map[string]any // its inputSchema/parameters, if any\n}\n\n// extractTools handles the MCP ({\"tools\":[…]}), OpenAI (array of {function:…} or\n// flat) and {\"functions\":[…]} shapes.\nfunc extractTools(input []byte) ([]toolEntry, error) {\n\tvar top any\n\tif err := json.Unmarshal(input, &top); err != nil {\n\t\treturn nil, fmt.Errorf(\"not valid JSON: %w\", err)\n\t}\n\tvar rawList []any\n\tswitch t := top.(type) {\n\tcase map[string]any:\n\t\tif v, ok := t[\"tools\"].([]any); ok {\n\t\t\trawList = v\n\t\t} else if v, ok := t[\"functions\"].([]any); ok {\n\t\t\trawList = v\n\t\t} else {\n\t\t\trawList = []any{t} // a single tool object\n\t\t}\n\tcase []any:\n\t\trawList = t\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unsupported catalog shape\")\n\t}\n\n\tvar entries []toolEntry","sourceCodeStart":225,"sourceCodeEnd":261,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/shrink/shrink.go#L225-L261","documentation":"Error \"not valid JSON: %w\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at shrink/shrink.go:243 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide valid JSON input."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"27d5a3981a347890211bb1bf2439e5c821a63bc9","analyzedAt":"2026-08-15T09:26:11.751Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}