{"record":{"id":"a3386820809edbd5","repo":"JuliusBrussee/caveman","slug":"caveman-agent-unknown-model-json-stringify-requ","errorCode":null,"errorMessage":"caveman agent: unknown model ${JSON.stringify(requested)}","messagePattern":"caveman agent: unknown model (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/agent/src/runtime.ts","lineNumber":3247,"sourceCode":"  // future OAuth-capable Google provider cannot be relabeled as metered.\n  if (provider === \"google\" && process.env.GOOGLE_API_KEY) return \"metered\";\n  return \"unknown\";\n}\n\nfunction resolveModel(definition: AgentDefinition, models: Models, rootDir: string): Model<Api> {\n  if (typeof definition.model === \"object\" && \"provider\" in definition.model) {\n    return definition.model;\n  }\n  const requested = typeof definition.model === \"string\"\n    ? definition.model\n    : process.env.CAVE_MODEL ?? localProviderModel(rootDir);\n  if (requested) {\n    const slash = requested.indexOf(\"/\");\n    if (slash <= 0 || slash === requested.length - 1) {\n      throw new Error(\"caveman agent: pinned model must use provider/model format\");\n    }\n    const model = models.getModel(requested.slice(0, slash), requested.slice(slash + 1));\n    if (!model) throw new Error(`caveman agent: unknown model ${JSON.stringify(requested)}`);\n    return model;\n  }\n\n  const configured: Array<[string, string]> = [];\n  if (process.env.ANTHROPIC_API_KEY) configured.push([\"anthropic\", \"claude-haiku-4-5\"]);\n  if (process.env.OPENAI_API_KEY) configured.push([\"openai\", \"gpt-5.4-mini\"]);\n  if (process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY) configured.push([\"google\", \"gemini-2.5-flash\"]);\n  if (configured.length !== 1) {\n    throw new Error(\n      configured.length === 0\n        ? \"caveman agent: no supported provider credential found\"\n        : \"caveman agent: multiple provider credentials found; set CAVE_MODEL once\",\n    );\n  }\n  const [provider, id] = configured[0]!;\n  const model = models.getModel(provider, id);\n  if (!model) throw new Error(`caveman agent: baseline model unavailable: ${provider}/${id}`);\n  return model;","sourceCodeStart":3229,"sourceCodeEnd":3265,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/packages/agent/src/runtime.ts#L3229-L3265","documentation":"Error \"caveman agent: unknown model ${JSON.stringify(requested)}\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at packages/agent/src/runtime.ts:3247 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Choose a model from the supported provider catalog; the requested model id is unknown."],"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"}