From b8201293b6fab7a38bfd9cbfe616872d2cc6b0c5 Mon Sep 17 00:00:00 2001 From: yushen Date: Fri, 30 Jan 2026 15:48:30 +0800 Subject: [PATCH] fix(agent): add OpenRouter provider support and guard against unknown models Use generic OPENROUTER_* env vars (OPENROUTER_API_KEY, OPENROUTER_BASE_URL, OPENROUTER_MODEL) via the existing fallback mechanism instead of hardcoding mappings to OPENAI_* vars. Also add a guard when resolveModel returns undefined to throw a clear error instead of crashing on property access. Co-Authored-By: Claude Opus 4.5 --- src/agent/runner.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/agent/runner.ts b/src/agent/runner.ts index 8eaee194..eac01d30 100644 --- a/src/agent/runner.ts +++ b/src/agent/runner.ts @@ -177,6 +177,14 @@ export class Agent { const effectiveModel = resolvedModel ?? options.model ?? storedMeta?.model; let model = resolveModel({ ...options, provider: effectiveProvider, model: effectiveModel }); + if (!model) { + throw new Error( + `Unknown model: provider="${effectiveProvider}", model="${effectiveModel}". ` + + `Check your LLM_PROVIDER and model env vars (e.g. OPENAI_MODEL). ` + + `For OpenRouter, use LLM_PROVIDER=openrouter.`, + ); + } + // Override base URL if provided via options or environment variable const baseUrl = resolveBaseUrl(model.provider, options.baseUrl); if (baseUrl) {