{"record":{"id":"97d1fb5dff9d8bdf","repo":"JuliusBrussee/caveman","slug":"cave-tool-schema-invalid-definition-name","errorCode":null,"errorMessage":"cave_tool_schema_invalid:${definition.name}","messagePattern":"cave_tool_schema_invalid:(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/agent/src/runtime.ts","lineNumber":3821,"sourceCode":"      typeof parsed.description !== \"string\" || !isRecord(parsed.input)) {\n    throw new Error(`tool_schema_transform_invalid:${segmentID}`);\n  }\n  return output;\n}\n\nfunction providerToolDefinition(\n  definition: ToolDefinition,\n  lowered: LoweredContext,\n  appliedPlan: AppliedPlan,\n): { description: string; input: TSchema } {\n  const segment = lowered.ir.segments.find((item) => item.id === `tool.${definition.name}`);\n  if (!segment) throw new Error(`cave_context_segment_missing:tool.${definition.name}`);\n  const body = appliedPlan.bodies.get(segment.bodyHandle);\n  if (!body) throw new Error(`cave_context_body_missing:tool.${definition.name}`);\n  const parsed = JSON.parse(new TextDecoder().decode(body)) as unknown;\n  if (!isRecord(parsed) || parsed.name !== definition.name ||\n      typeof parsed.description !== \"string\" || !isRecord(parsed.input)) {\n    throw new Error(`cave_tool_schema_invalid:${definition.name}`);\n  }\n  return { description: parsed.description, input: parsed.input as TSchema };\n}\n\nfunction admitSubagent(state: InvocationState): () => void {\n  const ledger = state.ledger;\n  if (ledger.maxInvocations !== undefined && ledger.admitted >= ledger.maxInvocations) {\n    ledger.invocationRejections++;\n    throw new Error(\"cave_subagent_invocation_limit\");\n  }\n  if (ledger.maxConcurrent !== undefined && ledger.active >= ledger.maxConcurrent) {\n    ledger.concurrencyRejections++;\n    throw new Error(\"cave_subagent_concurrency_limit\");\n  }\n  ledger.admitted++;\n  ledger.active++;\n  ledger.peakActive = Math.max(ledger.peakActive, ledger.active);\n  let released = false;","sourceCodeStart":3803,"sourceCodeEnd":3839,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/packages/agent/src/runtime.ts#L3803-L3839","documentation":"Error \"cave_tool_schema_invalid:${definition.name}\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at packages/agent/src/runtime.ts:3821 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The named tool's schema is invalid; correct the JSON Schema emitted for the tool."],"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-15T22:17:37.221Z"}