{"record":{"id":"5f5528d7b6f1ed5b","repo":"JuliusBrussee/caveman","slug":"caveman-build-maxsearchcostusd-must-be-positive","errorCode":null,"errorMessage":"caveman build: maxSearchCostUsd must be positive","messagePattern":"caveman build: maxSearchCostUsd must be positive","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/agent/src/build.ts","lineNumber":53,"sourceCode":"    efficiency: options.efficiency ?? \"max\",\n    requiredFixturePassRate: options.requiredFixturePassRate ?? 1,\n    qualityRetention: options.qualityRetention ?? 0.98,\n    maxSearchCostUsd: options.maxSearchCostUsd ?? 2,\n    lock: options.lock ?? \"strict\",\n    sandbox: options.sandbox ?? \"required\",\n    ...(options.allowedModels === undefined ? {} : { allowedModels: [...options.allowedModels] }),\n    ...(options.deniedModels === undefined ? {} : { deniedModels: [...options.deniedModels] }),\n    ...(options.maxP95LatencyMs === undefined ? {} : { maxP95LatencyMs: options.maxP95LatencyMs }),\n    ...(options.forbiddenSafetyClasses === undefined ? {} : { forbiddenSafetyClasses: [...options.forbiddenSafetyClasses] }),\n  };\n  if (!(config.requiredFixturePassRate > 0 && config.requiredFixturePassRate <= 1)) {\n    throw new Error(\"caveman build: requiredFixturePassRate must be in (0,1]\");\n  }\n  if (!(config.qualityRetention > 0 && config.qualityRetention <= 1)) {\n    throw new Error(\"caveman build: qualityRetention must be in (0,1]\");\n  }\n  if (!(config.maxSearchCostUsd > 0)) {\n    throw new Error(\"caveman build: maxSearchCostUsd must be positive\");\n  }\n  return Object.freeze(config);\n}\n\nexport interface CavePlan {\n  schema_version: 1;\n  plan_id: string;\n  model: string;\n  reasoning: \"none\" | \"minimal\" | \"low\" | \"medium\" | \"high\";\n  segment_routes: Array<{\n    segment_kind: ContextKind;\n    segment_id?: string;\n    transform_id: string;\n    fallback: \"original\";\n  }>;\n  budgets: {\n    instructions: number;\n    tools: number;","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/packages/agent/src/build.ts#L35-L71","documentation":"Error \"caveman build: maxSearchCostUsd must be positive\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at packages/agent/src/build.ts:53 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set maxSearchCostUsd to a positive number in the defineBuild() config."],"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"}