This commit is contained in:
k
2026-09-21 22:28:29 +02:00
parent 0ca3e9d4ca
commit 3571c99416
3 changed files with 71 additions and 14 deletions
+8
View File
@@ -114,6 +114,14 @@ Models are addressed as `"driver:model"` (split on the first `:`).
(SSE) implementation; concrete drivers only set base URL, key, and fallback
model list. A driver is enabled only when its `*_ENABLED` flag is set **and**
its key is non-empty; failing drivers are skipped (not fatal) in listings.
- Personal providers (BYOK, `src/userProviders.ts`): users attach their own
`openai` / `anthropic` / `deepseek` / `gemini` keys in settings
(`GET/PUT/DELETE /api/me/providers`, keys stored in `user_provider_keys`,
never returned — GET exposes presence + last4 only). `GET /api/models`
merges the caller's own-key models into their menu, and `POST /api/chat`
prefers the personal key for those four providers (also when the global
driver is disabled). The admin model policy still applies. Driver
constructors accept an `apiKeyOverride` for these per-user instances.
- `ArcaicSubDriver` ×3 (`arcaic-openai`, `arcaic-gemini`, `arcaic-qwen`,
one model each: `chat`) + `browser.ts` engine: web-UI sessions driven by a
headless browser (WebDriver BiDi) with a **throwaway profile** (mkdtemp