{"record":{"id":"1cfb9d8fc647576e","repo":"JuliusBrussee/caveman","slug":"no-named-tools-found","errorCode":null,"errorMessage":"no named tools found","messagePattern":"no named tools found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"shrink/shrink.go","lineNumber":281,"sourceCode":"\t\tobj, ok := item.(map[string]any)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\t// OpenAI nests under \"function\".\n\t\ttoolObj := obj\n\t\tif fn, ok := obj[\"function\"].(map[string]any); ok {\n\t\t\ttoolObj = fn\n\t\t}\n\t\tname, _ := toolObj[\"name\"].(string)\n\t\tif name == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\traw, _ := json.Marshal(obj)\n\t\tschema := schemaOf(toolObj)\n\t\tentries = append(entries, toolEntry{name: name, raw: raw, schema: schema})\n\t}\n\tif len(entries) == 0 {\n\t\treturn nil, fmt.Errorf(\"no named tools found\")\n\t}\n\treturn entries, nil\n}\n\n// schemaOf returns a tool's parameter schema, under either \"inputSchema\" (MCP) or\n// \"parameters\" (OpenAI).\nfunc schemaOf(tool map[string]any) map[string]any {\n\tif s, ok := tool[\"inputSchema\"].(map[string]any); ok {\n\t\treturn s\n\t}\n\tif s, ok := tool[\"parameters\"].(map[string]any); ok {\n\t\treturn s\n\t}\n\treturn nil\n}\n\n// profileOf extracts param names, per-param enums, and the required list.\nfunc profileOf(schema map[string]any) ToolProfile {","sourceCodeStart":263,"sourceCodeEnd":299,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/shrink/shrink.go#L263-L299","documentation":"Error \"no named tools found\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at shrink/shrink.go:281 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Include at least one named tool in the catalog."],"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"}