diff --git a/src-tauri/src/commands/acp.rs b/src-tauri/src/commands/acp.rs index dae247a9c..87e70e1b0 100644 --- a/src-tauri/src/commands/acp.rs +++ b/src-tauri/src/commands/acp.rs @@ -6497,6 +6497,15 @@ const HERMES_PROVIDERS: &[HermesProvider] = &[ needs_base_url: false, base_url_env_var: "OPENROUTER_BASE_URL", }, + // OrcaRouter — OpenAI-compatible AI gateway (models.dev catalog, env var + // `ORCAROUTER_API_KEY`). Resolved by Hermes through the same models.dev + // fallback as openrouter (`get_provider`), so no auth.py entry exists. + HermesProvider { + id: "orcarouter", + key_env_var: "ORCAROUTER_API_KEY", + needs_base_url: false, + base_url_env_var: "ORCAROUTER_BASE_URL", + }, HermesProvider { id: "openai-api", key_env_var: "OPENAI_API_KEY", @@ -17044,6 +17053,7 @@ wire_api = "chat" // of GLM_API_KEY) fails CI rather than silently sending the wrong key var. let expected: &[(&str, &str)] = &[ ("openrouter", "OPENROUTER_API_KEY"), + ("orcarouter", "ORCAROUTER_API_KEY"), ("openai-api", "OPENAI_API_KEY"), ("anthropic", "ANTHROPIC_API_KEY"), ("gemini", "GOOGLE_API_KEY"), diff --git a/src/lib/types.ts b/src/lib/types.ts index 79b8502cb..0f6ab6fdc 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -784,6 +784,12 @@ export const HERMES_PROVIDERS: HermesProviderOption[] = [ needsBaseUrl: false, kind: "apiKey", }, + { + id: "orcarouter", + label: "OrcaRouter", + needsBaseUrl: false, + kind: "apiKey", + }, { id: "openai-api", label: "OpenAI / Compatible",