From a7b5b4e56115106708875125a584600db0c12d55 Mon Sep 17 00:00:00 2001 From: Marc-oss-hub Date: Tue, 11 Aug 2026 00:24:20 +0800 Subject: [PATCH] feat(providers): add OrcaRouter preset --- src/tui/providers/provider-presets.test.ts | 8 ++++++++ src/tui/providers/provider-presets.ts | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/tui/providers/provider-presets.test.ts b/src/tui/providers/provider-presets.test.ts index 48e427d4..df903f23 100644 --- a/src/tui/providers/provider-presets.test.ts +++ b/src/tui/providers/provider-presets.test.ts @@ -44,6 +44,14 @@ describe("PROVIDER_PRESETS", () => { ); expect(keyless).toContain("nous"); expect(keyless).toContain("ollama-cloud"); + expect(keyless).toContain("orcarouter"); + }); + + it("exposes OrcaRouter as a named preset", () => { + expect(findProviderPreset("orcarouter")?.baseUrl).toBe( + "https://api.orcarouter.ai", + ); + expect(findProviderPreset("orcarouter")?.envVar).toBe("ORCAROUTER_API_KEY"); }); it("returns undefined for an unknown id", () => { diff --git a/src/tui/providers/provider-presets.ts b/src/tui/providers/provider-presets.ts index f85d2429..4ac5cad3 100644 --- a/src/tui/providers/provider-presets.ts +++ b/src/tui/providers/provider-presets.ts @@ -110,6 +110,14 @@ export const PROVIDER_PRESETS: readonly ProviderPreset[] = [ listsModelsWithoutKey: true, note: "hosted Ollama, models listed without a key", }, + { + id: "orcarouter", + label: "OrcaRouter", + baseUrl: "https://api.orcarouter.ai", + envVar: "ORCAROUTER_API_KEY", + listsModelsWithoutKey: true, + note: "OpenAI-compatible gateway, 160+ models via one key", + }, { id: "lmstudio", label: "LM Studio (local)",