feat(providers): add trae/windsurf/zed/workbuddy/codebuddy-intl + icons

- New providers: trae, windsurf, zed, workbuddy, codebuddy-intl
  (registry + executor, wired into executors/index.js + registry/index.js)
- zed: port hosted cloud proxy from OmniRoute — RSA access-token → short-lived
  LLM token exchange (shared/zedAuth.js) + NDJSON {event}/{status}/[DONE]
  stream translated back to OpenAI via Claude/Gemini/OpenAI-Responses translators
- Provider icons (128x128 png) for the 5 new providers
- qoder + tokenRefresh provider tweaks

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
decolua
2026-07-23 15:37:24 +07:00
parent 79918c7830
commit 039c4dbc72
21 changed files with 1539 additions and 12 deletions

View File

@@ -13,6 +13,11 @@ import {
refreshGitHubToken,
refreshCopilotToken,
refreshCodebuddyToken,
refreshCodebuddyIntlToken,
refreshWorkbuddyToken,
refreshTraeToken,
refreshZedToken,
refreshWindsurfToken,
classifyOAuthRefreshError,
} from "./tokenRefresh/providers.js";
@@ -29,6 +34,11 @@ export {
refreshGitHubToken,
refreshCopilotToken,
refreshCodebuddyToken,
refreshCodebuddyIntlToken,
refreshWorkbuddyToken,
refreshTraeToken,
refreshZedToken,
refreshWindsurfToken,
classifyOAuthRefreshError,
};
@@ -138,6 +148,11 @@ const REFRESH_HANDLERS = {
"grok-cli": (c, log) => refreshXaiToken(c.refreshToken, log),
gcli: (c, log) => refreshXaiToken(c.refreshToken, log),
"codebuddy-cn": (c, log) => refreshCodebuddyToken(c.refreshToken, log),
"codebuddy-intl": (c, log) => refreshCodebuddyIntlToken(c.refreshToken, log),
workbuddy: (c, log) => refreshWorkbuddyToken(c.refreshToken, log),
trae: (c, log) => refreshTraeToken(c.refreshToken, c, log),
zed: () => refreshZedToken(),
windsurf: (c, log) => refreshWindsurfToken(c, log),
// Kimi Code OAuth (merged into id `kimi`); legacy id still routes here
kimi: (c, log) => refreshKimiToken(c.refreshToken, c, log),
"kimi-coding": (c, log) => refreshKimiToken(c.refreshToken, c, log),