refactor(open-sse): P3 provider registry — split into providers/registry/{id}.js

- 100 registry files: transport + models co-located per provider (Mongoose-style)
- providers/shared.js: shared Claude headers + OS/arch helpers (deduped)
- providers/models/helpers.js: withCodexReviewModels (kept dynamic)
- providers/index.js builds PROVIDERS + PROVIDER_MODELS = old API (content byte-for-byte)
- config/providers.js + providerModels.js → barrel re-export, keep accessors + runtime helpers
- Verified: PROVIDERS/MODELS/OAuth/alias byte-for-byte, golden translator tests pass, 0 new regression

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
decolua
2026-06-13 21:08:37 +07:00
co-authored by Cursor
parent 7134dd71db
commit 5a042840fd
108 changed files with 3918 additions and 1340 deletions
+5 -1
View File
@@ -25,9 +25,13 @@ const ALIAS_TOKENS = [
"sambanova","samba","nscale","baseten","publicai","nous-research","nous","glhf","bb","blackbox",
];
// Sort idToAlias by key — runtime accesses by key, order is irrelevant (content-based)
const sortedIdToAlias = Object.fromEntries(
Object.keys(PROVIDER_ID_TO_ALIAS).sort().map(k => [k, PROVIDER_ID_TO_ALIAS[k]])
);
const resolved = {
aliasToId: Object.fromEntries(ALIAS_TOKENS.map(a => [a, resolveProviderAlias(a)])),
idToAlias: PROVIDER_ID_TO_ALIAS,
idToAlias: sortedIdToAlias,
modelKeys: Object.keys(PROVIDER_MODELS).sort(),
};
const current = JSON.parse(JSON.stringify(resolved));