openai-ws-opencode 0.1.21 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/setup.js +189 -13
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/models/catalog.d.ts +1 -0
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/catalog.js.map +1 -1
- package/dist/models/defaults.d.ts +3 -0
- package/dist/models/defaults.d.ts.map +1 -1
- package/dist/models/defaults.js +20 -6
- package/dist/models/defaults.js.map +1 -1
- package/dist/models/resolve.d.ts +2 -2
- package/dist/models/resolve.d.ts.map +1 -1
- package/dist/models/resolve.js +46 -24
- package/dist/models/resolve.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +30 -11
- package/dist/plugin.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/transport/bridge.d.ts.map +1 -1
- package/dist/transport/bridge.js +16 -0
- package/dist/transport/bridge.js.map +1 -1
- package/dist/transport/config.d.ts +3 -0
- package/dist/transport/config.d.ts.map +1 -1
- package/dist/transport/config.js +3 -0
- package/dist/transport/config.js.map +1 -1
- package/dist/transport/pool.d.ts +4 -0
- package/dist/transport/pool.d.ts.map +1 -1
- package/dist/transport/pool.js +111 -14
- package/dist/transport/pool.js.map +1 -1
- package/package.json +1 -1
package/bin/setup.js
CHANGED
|
@@ -8,12 +8,101 @@ import path from "node:path";
|
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
9
|
import { applyEdits, format, modify, parse } from "jsonc-parser";
|
|
10
10
|
|
|
11
|
+
// src/models/catalog.ts
|
|
12
|
+
import crypto from "node:crypto";
|
|
13
|
+
|
|
11
14
|
// src/constants.ts
|
|
12
15
|
var OPENAI_API_BASE = "https://api.openai.com/v1";
|
|
13
16
|
var CODEX_API_BASE = "https://chatgpt.com/backend-api/codex";
|
|
14
17
|
var CODEX_API_ENDPOINT = `${CODEX_API_BASE}/responses`;
|
|
15
18
|
var CODEX_MODELS_ENDPOINT = `${CODEX_API_BASE}/models`;
|
|
19
|
+
var CODEX_CLI_NPM_ENDPOINT = "https://registry.npmjs.org/@openai/codex";
|
|
16
20
|
var OPENAI_MODELS_ENDPOINT = `${OPENAI_API_BASE}/models`;
|
|
21
|
+
var OPENAI_WS_BETA = "responses_websockets=2026-02-06";
|
|
22
|
+
var CODEX_ORIGINATOR = "opencode";
|
|
23
|
+
var USER_AGENT = "openai-ws-opencode/0.1.23";
|
|
24
|
+
|
|
25
|
+
// src/models/catalog.ts
|
|
26
|
+
var DEFAULT_TIMEOUT_MS = 800;
|
|
27
|
+
var CATALOG_TTL_MS = 30 * 60 * 1000;
|
|
28
|
+
var SKIP_CATALOG_ENV = "OPENAI_WS_OPENCODE_SKIP_CATALOG";
|
|
29
|
+
var cache = new Map;
|
|
30
|
+
function cacheKey(scope, credential, accountId = "") {
|
|
31
|
+
return `${scope}:${crypto.createHash("sha256").update(`${credential}:${accountId}`).digest("hex")}`;
|
|
32
|
+
}
|
|
33
|
+
function cached(key) {
|
|
34
|
+
const entry = cache.get(key);
|
|
35
|
+
if (!entry)
|
|
36
|
+
return { hit: false };
|
|
37
|
+
if (entry.expiresAt <= Date.now()) {
|
|
38
|
+
cache.delete(key);
|
|
39
|
+
return { hit: false };
|
|
40
|
+
}
|
|
41
|
+
return { hit: true, value: entry.value };
|
|
42
|
+
}
|
|
43
|
+
function setCached(key, value) {
|
|
44
|
+
cache.set(key, { expiresAt: Date.now() + CATALOG_TTL_MS, value });
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
function timeoutSignal(timeoutMs) {
|
|
48
|
+
return typeof AbortSignal !== "undefined" && typeof AbortSignal.timeout === "function" ? AbortSignal.timeout(timeoutMs) : undefined;
|
|
49
|
+
}
|
|
50
|
+
function fallbackCodexClientVersion(userAgent = USER_AGENT) {
|
|
51
|
+
return userAgent.includes("/") ? userAgent.split("/").at(-1) || userAgent : userAgent;
|
|
52
|
+
}
|
|
53
|
+
async function resolveCodexClientVersion(options = {}) {
|
|
54
|
+
if (process.env[SKIP_CATALOG_ENV] === "1")
|
|
55
|
+
return fallbackCodexClientVersion();
|
|
56
|
+
const key = "codex-cli-alpha-version";
|
|
57
|
+
const existing = cached(key);
|
|
58
|
+
if (existing.hit && existing.value)
|
|
59
|
+
return existing.value;
|
|
60
|
+
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
61
|
+
try {
|
|
62
|
+
const response = await fetchImpl(CODEX_CLI_NPM_ENDPOINT, {
|
|
63
|
+
signal: timeoutSignal(options.timeoutMs ?? DEFAULT_TIMEOUT_MS),
|
|
64
|
+
headers: { Accept: "application/json", "User-Agent": USER_AGENT }
|
|
65
|
+
});
|
|
66
|
+
if (!response.ok)
|
|
67
|
+
return setCached(key, fallbackCodexClientVersion()) ?? fallbackCodexClientVersion();
|
|
68
|
+
const json = await response.json();
|
|
69
|
+
const version = typeof json["dist-tags"]?.alpha === "string" ? json["dist-tags"].alpha : typeof json.version === "string" ? json.version : undefined;
|
|
70
|
+
return setCached(key, version ?? fallbackCodexClientVersion()) ?? fallbackCodexClientVersion();
|
|
71
|
+
} catch {
|
|
72
|
+
return setCached(key, fallbackCodexClientVersion()) ?? fallbackCodexClientVersion();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function fetchCodexCatalog(options) {
|
|
76
|
+
if (process.env[SKIP_CATALOG_ENV] === "1")
|
|
77
|
+
return;
|
|
78
|
+
const key = cacheKey("codex", options.accessToken, options.accountId);
|
|
79
|
+
const existing = cached(key);
|
|
80
|
+
if (existing.hit)
|
|
81
|
+
return existing.value;
|
|
82
|
+
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
83
|
+
const url = new URL(CODEX_MODELS_ENDPOINT);
|
|
84
|
+
url.searchParams.set("client_version", await resolveCodexClientVersion({ fetchImpl, timeoutMs: options.timeoutMs }));
|
|
85
|
+
try {
|
|
86
|
+
const response = await fetchImpl(url, {
|
|
87
|
+
signal: timeoutSignal(options.timeoutMs ?? DEFAULT_TIMEOUT_MS),
|
|
88
|
+
headers: {
|
|
89
|
+
Authorization: `Bearer ${options.accessToken}`,
|
|
90
|
+
...options.accountId ? { "ChatGPT-Account-Id": options.accountId } : {},
|
|
91
|
+
originator: CODEX_ORIGINATOR,
|
|
92
|
+
"OpenAI-Beta": OPENAI_WS_BETA,
|
|
93
|
+
"User-Agent": USER_AGENT
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
if (!response.ok)
|
|
97
|
+
return setCached(key, undefined);
|
|
98
|
+
const json = await response.json();
|
|
99
|
+
if (!Array.isArray(json.models))
|
|
100
|
+
return setCached(key, undefined);
|
|
101
|
+
return setCached(key, json.models);
|
|
102
|
+
} catch {
|
|
103
|
+
return setCached(key, undefined);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
17
106
|
|
|
18
107
|
// src/models/defaults.ts
|
|
19
108
|
function makeVariants(efforts, includeSummary = true) {
|
|
@@ -27,12 +116,26 @@ function makeVariants(efforts, includeSummary = true) {
|
|
|
27
116
|
]));
|
|
28
117
|
}
|
|
29
118
|
var CODEX_EFFECTIVE_CONTEXT_WINDOW = 272000;
|
|
119
|
+
var CODEX_OUTPUT_TOKEN_LIMIT = 128000;
|
|
120
|
+
function codexLimit(overrides = {}) {
|
|
121
|
+
const context = positiveFinite(overrides.context) ?? CODEX_EFFECTIVE_CONTEXT_WINDOW;
|
|
122
|
+
const inputCandidate = positiveFinite(overrides.input) ?? CODEX_EFFECTIVE_CONTEXT_WINDOW;
|
|
123
|
+
const output = positiveFinite(overrides.output) ?? CODEX_OUTPUT_TOKEN_LIMIT;
|
|
124
|
+
return {
|
|
125
|
+
context,
|
|
126
|
+
input: Math.min(inputCandidate, context),
|
|
127
|
+
output
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function positiveFinite(value) {
|
|
131
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
|
|
132
|
+
}
|
|
30
133
|
var OPENAI_WS_MODELS = {
|
|
31
134
|
"gpt-5.5": {
|
|
32
135
|
name: "GPT 5.5 (WebSocket)",
|
|
33
136
|
reasoning: true,
|
|
34
137
|
temperature: false,
|
|
35
|
-
limit:
|
|
138
|
+
limit: codexLimit(),
|
|
36
139
|
variants: makeVariants(["low", "medium", "high", "xhigh"], false),
|
|
37
140
|
release_date: "2026-04-23"
|
|
38
141
|
},
|
|
@@ -40,7 +143,7 @@ var OPENAI_WS_MODELS = {
|
|
|
40
143
|
name: "GPT 5.4 (WebSocket)",
|
|
41
144
|
reasoning: true,
|
|
42
145
|
temperature: true,
|
|
43
|
-
limit: { context:
|
|
146
|
+
limit: codexLimit({ context: 1e6 }),
|
|
44
147
|
variants: makeVariants(["low", "medium", "high", "xhigh"], false),
|
|
45
148
|
release_date: "2026-03-05"
|
|
46
149
|
},
|
|
@@ -48,7 +151,7 @@ var OPENAI_WS_MODELS = {
|
|
|
48
151
|
name: "GPT 5.4 Mini (WebSocket)",
|
|
49
152
|
reasoning: true,
|
|
50
153
|
temperature: true,
|
|
51
|
-
limit:
|
|
154
|
+
limit: codexLimit(),
|
|
52
155
|
variants: makeVariants(["low", "medium", "high", "xhigh"], false),
|
|
53
156
|
release_date: "2026-03-05"
|
|
54
157
|
},
|
|
@@ -56,7 +159,7 @@ var OPENAI_WS_MODELS = {
|
|
|
56
159
|
name: "GPT 5.3 Codex (WebSocket)",
|
|
57
160
|
reasoning: true,
|
|
58
161
|
temperature: false,
|
|
59
|
-
limit:
|
|
162
|
+
limit: codexLimit(),
|
|
60
163
|
variants: makeVariants(["low", "medium", "high", "xhigh"], false),
|
|
61
164
|
family: "gpt-codex",
|
|
62
165
|
release_date: "2026-02-05"
|
|
@@ -65,13 +168,26 @@ var OPENAI_WS_MODELS = {
|
|
|
65
168
|
name: "GPT 5.2 (WebSocket)",
|
|
66
169
|
reasoning: true,
|
|
67
170
|
temperature: true,
|
|
68
|
-
limit:
|
|
171
|
+
limit: codexLimit(),
|
|
69
172
|
variants: makeVariants(["low", "medium", "high", "xhigh"]),
|
|
70
173
|
release_date: "2025-12-10"
|
|
71
174
|
}
|
|
72
175
|
};
|
|
73
176
|
|
|
74
177
|
// src/models/resolve.ts
|
|
178
|
+
function positiveFinite2(value) {
|
|
179
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
|
|
180
|
+
}
|
|
181
|
+
function limitFromCatalog(model, fallback) {
|
|
182
|
+
const context = positiveFinite2(model.max_context_window) ?? positiveFinite2(model.context_window) ?? fallback.context;
|
|
183
|
+
const inputCandidate = positiveFinite2(model.context_window) ?? positiveFinite2(fallback.input) ?? CODEX_EFFECTIVE_CONTEXT_WINDOW;
|
|
184
|
+
const output = positiveFinite2(model.max_output_tokens) ?? positiveFinite2(fallback.output) ?? CODEX_OUTPUT_TOKEN_LIMIT;
|
|
185
|
+
return {
|
|
186
|
+
context,
|
|
187
|
+
input: Math.min(inputCandidate, context),
|
|
188
|
+
output
|
|
189
|
+
};
|
|
190
|
+
}
|
|
75
191
|
function modelToOpenCodeConfig(model) {
|
|
76
192
|
return {
|
|
77
193
|
name: model.name,
|
|
@@ -81,7 +197,7 @@ function modelToOpenCodeConfig(model) {
|
|
|
81
197
|
reasoning: model.reasoning,
|
|
82
198
|
temperature: model.temperature,
|
|
83
199
|
tool_call: true,
|
|
84
|
-
limit: model.limit,
|
|
200
|
+
limit: { ...model.limit },
|
|
85
201
|
modalities: {
|
|
86
202
|
input: ["text", "image"],
|
|
87
203
|
output: ["text"]
|
|
@@ -118,11 +234,31 @@ function sanitizeBuiltInConfigOverride(override) {
|
|
|
118
234
|
delete sanitized[key];
|
|
119
235
|
return sanitized;
|
|
120
236
|
}
|
|
121
|
-
function
|
|
237
|
+
function catalogEntriesBySlug(catalog) {
|
|
238
|
+
const entries = new Map;
|
|
239
|
+
if (!catalog)
|
|
240
|
+
return entries;
|
|
241
|
+
for (const entry of catalog) {
|
|
242
|
+
if (typeof entry?.slug === "string" && entry.slug.length > 0)
|
|
243
|
+
entries.set(entry.slug, entry);
|
|
244
|
+
}
|
|
245
|
+
return entries;
|
|
246
|
+
}
|
|
247
|
+
function bundledModelWithCatalogLimit(id, model, catalogEntry) {
|
|
248
|
+
if (!catalogEntry)
|
|
249
|
+
return model;
|
|
250
|
+
const limit = limitFromCatalog(catalogEntry, model.limit);
|
|
251
|
+
if (limit.context === model.limit.context && limit.input === model.limit.input && limit.output === model.limit.output)
|
|
252
|
+
return model;
|
|
253
|
+
return { ...model, limit };
|
|
254
|
+
}
|
|
255
|
+
function providerConfigModels(overrides = {}, catalog) {
|
|
122
256
|
const models = {};
|
|
257
|
+
const catalogBySlug = catalogEntriesBySlug(catalog);
|
|
123
258
|
for (const [id, model] of Object.entries(OPENAI_WS_MODELS)) {
|
|
259
|
+
const effective = bundledModelWithCatalogLimit(id, model, catalogBySlug.get(id));
|
|
124
260
|
models[id] = {
|
|
125
|
-
...modelToOpenCodeConfig(
|
|
261
|
+
...modelToOpenCodeConfig(effective),
|
|
126
262
|
...sanitizeBuiltInConfigOverride(overrides[id])
|
|
127
263
|
};
|
|
128
264
|
}
|
|
@@ -135,12 +271,12 @@ function providerConfigModels(overrides = {}) {
|
|
|
135
271
|
}
|
|
136
272
|
return models;
|
|
137
273
|
}
|
|
138
|
-
function providerConfig(overrides = {}) {
|
|
274
|
+
function providerConfig(overrides = {}, catalog) {
|
|
139
275
|
return {
|
|
140
276
|
api: OPENAI_API_BASE,
|
|
141
277
|
name: "OpenAI WebSocket",
|
|
142
278
|
npm: "@ai-sdk/openai",
|
|
143
|
-
models: providerConfigModels(overrides)
|
|
279
|
+
models: providerConfigModels(overrides, catalog)
|
|
144
280
|
};
|
|
145
281
|
}
|
|
146
282
|
|
|
@@ -179,7 +315,7 @@ function pluginPackageName(specifier) {
|
|
|
179
315
|
const lastAt = specifier.lastIndexOf("@");
|
|
180
316
|
return lastAt > 0 ? specifier.slice(0, lastAt) : specifier;
|
|
181
317
|
}
|
|
182
|
-
function patchConfigText(input, pluginSpec = DEFAULT_PLUGIN_SPEC, replacePluginSpec = false) {
|
|
318
|
+
function patchConfigText(input, pluginSpec = DEFAULT_PLUGIN_SPEC, replacePluginSpec = false, catalog) {
|
|
183
319
|
let text = input.trim() ? input : "{}";
|
|
184
320
|
const config = parse(text) ?? {};
|
|
185
321
|
if (!config.$schema)
|
|
@@ -195,7 +331,7 @@ function patchConfigText(input, pluginSpec = DEFAULT_PLUGIN_SPEC, replacePluginS
|
|
|
195
331
|
text = applyJsonPatch(text, ["plugin"], plugins);
|
|
196
332
|
const next = parse(text) ?? {};
|
|
197
333
|
const existingModels = next.provider?.["openai-ws"]?.models ?? {};
|
|
198
|
-
text = applyJsonPatch(text, ["provider", "openai-ws"], providerConfig(existingModels));
|
|
334
|
+
text = applyJsonPatch(text, ["provider", "openai-ws"], providerConfig(existingModels, catalog));
|
|
199
335
|
return applyEdits(text, format(text, undefined, {
|
|
200
336
|
insertSpaces: true,
|
|
201
337
|
tabSize: 2,
|
|
@@ -209,6 +345,45 @@ function isNotFound(error) {
|
|
|
209
345
|
function cacheHomePath(cacheHome = process.env.XDG_CACHE_HOME ?? path.join(os.homedir(), ".cache")) {
|
|
210
346
|
return cacheHome;
|
|
211
347
|
}
|
|
348
|
+
var CATALOG_FETCH_TIMEOUT_MS = 1500;
|
|
349
|
+
async function readCodexAuthSnapshot() {
|
|
350
|
+
const file = path.join(os.homedir(), ".codex", "auth.json");
|
|
351
|
+
let raw;
|
|
352
|
+
try {
|
|
353
|
+
raw = await fs.readFile(file, "utf8");
|
|
354
|
+
} catch {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
let parsed;
|
|
358
|
+
try {
|
|
359
|
+
parsed = JSON.parse(raw);
|
|
360
|
+
} catch {
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
const accessToken = typeof parsed?.tokens?.access_token === "string" ? parsed.tokens.access_token : undefined;
|
|
364
|
+
if (!accessToken)
|
|
365
|
+
return;
|
|
366
|
+
const accountId = typeof parsed?.tokens?.account_id === "string" ? parsed.tokens.account_id : undefined;
|
|
367
|
+
return { accessToken, accountId };
|
|
368
|
+
}
|
|
369
|
+
async function resolveLiveCatalog(customFetch) {
|
|
370
|
+
try {
|
|
371
|
+
if (customFetch)
|
|
372
|
+
return await customFetch();
|
|
373
|
+
if (process.env.OPENAI_WS_OPENCODE_SKIP_CATALOG === "1")
|
|
374
|
+
return;
|
|
375
|
+
const snapshot = await readCodexAuthSnapshot();
|
|
376
|
+
if (!snapshot)
|
|
377
|
+
return;
|
|
378
|
+
return await fetchCodexCatalog({
|
|
379
|
+
accessToken: snapshot.accessToken,
|
|
380
|
+
accountId: snapshot.accountId,
|
|
381
|
+
timeoutMs: CATALOG_FETCH_TIMEOUT_MS
|
|
382
|
+
});
|
|
383
|
+
} catch {
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
212
387
|
function openCodeLatestCachePath(cacheHome) {
|
|
213
388
|
return path.join(cacheHomePath(cacheHome), "opencode", "packages", `${PACKAGE_NAME}@latest`);
|
|
214
389
|
}
|
|
@@ -329,7 +504,8 @@ async function setupOpenCodeConfig(options = {}) {
|
|
|
329
504
|
if (error?.code !== "ENOENT")
|
|
330
505
|
throw error;
|
|
331
506
|
}
|
|
332
|
-
const
|
|
507
|
+
const catalog = options.catalog ?? await resolveLiveCatalog(options.catalogFetch);
|
|
508
|
+
const updated = patchConfigText(existing, options.pluginSpec ?? DEFAULT_PLUGIN_SPEC, Boolean(options.pluginSpec), catalog);
|
|
333
509
|
await fs.mkdir(path.dirname(file), { recursive: true });
|
|
334
510
|
await fs.writeFile(file, updated.endsWith(`
|
|
335
511
|
`) ? updated : `${updated}
|
package/dist/constants.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare const OPENAI_WS_URL = "wss://api.openai.com/v1/responses";
|
|
|
11
11
|
export declare const CODEX_WS_URL = "wss://chatgpt.com/backend-api/codex/responses";
|
|
12
12
|
export declare const OPENAI_WS_BETA = "responses_websockets=2026-02-06";
|
|
13
13
|
export declare const CODEX_ORIGINATOR = "opencode";
|
|
14
|
-
export declare const USER_AGENT = "openai-ws-opencode/0.1.
|
|
14
|
+
export declare const USER_AGENT = "openai-ws-opencode/0.1.23";
|
|
15
15
|
export declare const CODEX_OAUTH_SCOPE = "openid profile email offline_access";
|
|
16
16
|
export declare const OAUTH_PORT = 1455;
|
|
17
17
|
export declare const X_CODEX_TURN_STATE_HEADER = "x-codex-turn-state";
|
package/dist/constants.js
CHANGED
|
@@ -11,7 +11,7 @@ export const OPENAI_WS_URL = "wss://api.openai.com/v1/responses";
|
|
|
11
11
|
export const CODEX_WS_URL = "wss://chatgpt.com/backend-api/codex/responses";
|
|
12
12
|
export const OPENAI_WS_BETA = "responses_websockets=2026-02-06";
|
|
13
13
|
export const CODEX_ORIGINATOR = "opencode";
|
|
14
|
-
export const USER_AGENT = "openai-ws-opencode/0.1.
|
|
14
|
+
export const USER_AGENT = "openai-ws-opencode/0.1.23";
|
|
15
15
|
export const CODEX_OAUTH_SCOPE = "openid profile email offline_access";
|
|
16
16
|
export const OAUTH_PORT = 1455;
|
|
17
17
|
export const X_CODEX_TURN_STATE_HEADER = "x-codex-turn-state";
|
package/dist/models/catalog.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,0BAA0B,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAClD,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B,CAAA;AAED,KAAK,YAAY,GAAG;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,mBAAmB,GAAG,YAAY,GAAG;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,mBAAmB,GAAG,YAAY,GAAG;IACxC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAyBD,wBAAgB,0BAA0B,CAAC,SAAS,SAAa,GAAG,MAAM,CAEzE;AAED,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,CA2B3G;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAyBxG;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,0BAA0B,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAClD,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B,CAAA;AAED,KAAK,YAAY,GAAG;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,mBAAmB,GAAG,YAAY,GAAG;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,mBAAmB,GAAG,YAAY,GAAG;IACxC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAyBD,wBAAgB,0BAA0B,CAAC,SAAS,SAAa,GAAG,MAAM,CAEzE;AAED,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,CA2B3G;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAyBxG;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAErJ,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAC9B,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AACrC,MAAM,gBAAgB,GAAG,iCAAiC,CAAA;AAO1D,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,5 +12,8 @@ export interface OpenAIWSModelDef {
|
|
|
12
12
|
release_date?: string;
|
|
13
13
|
}
|
|
14
14
|
export declare function makeVariants(efforts: string[], includeSummary?: boolean): Record<string, Record<string, unknown>>;
|
|
15
|
+
export declare const CODEX_EFFECTIVE_CONTEXT_WINDOW = 272000;
|
|
16
|
+
export declare const CODEX_OUTPUT_TOKEN_LIMIT = 128000;
|
|
17
|
+
export declare function codexLimit(overrides?: Partial<OpenAIWSModelDef["limit"]>): OpenAIWSModelDef["limit"];
|
|
15
18
|
export declare const OPENAI_WS_MODELS: Record<string, OpenAIWSModelDef>;
|
|
16
19
|
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/models/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,UAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAW9G;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/models/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,UAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAW9G;AAED,eAAO,MAAM,8BAA8B,SAAS,CAAA;AACpD,eAAO,MAAM,wBAAwB,SAAS,CAAA;AAE9C,wBAAgB,UAAU,CAAC,SAAS,GAAE,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CASxG;AAMD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA0C7D,CAAA"}
|
package/dist/models/defaults.js
CHANGED
|
@@ -8,13 +8,27 @@ export function makeVariants(efforts, includeSummary = true) {
|
|
|
8
8
|
},
|
|
9
9
|
]));
|
|
10
10
|
}
|
|
11
|
-
const CODEX_EFFECTIVE_CONTEXT_WINDOW = 272000;
|
|
11
|
+
export const CODEX_EFFECTIVE_CONTEXT_WINDOW = 272000;
|
|
12
|
+
export const CODEX_OUTPUT_TOKEN_LIMIT = 128000;
|
|
13
|
+
export function codexLimit(overrides = {}) {
|
|
14
|
+
const context = positiveFinite(overrides.context) ?? CODEX_EFFECTIVE_CONTEXT_WINDOW;
|
|
15
|
+
const inputCandidate = positiveFinite(overrides.input) ?? CODEX_EFFECTIVE_CONTEXT_WINDOW;
|
|
16
|
+
const output = positiveFinite(overrides.output) ?? CODEX_OUTPUT_TOKEN_LIMIT;
|
|
17
|
+
return {
|
|
18
|
+
context,
|
|
19
|
+
input: Math.min(inputCandidate, context),
|
|
20
|
+
output,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function positiveFinite(value) {
|
|
24
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
|
|
25
|
+
}
|
|
12
26
|
export const OPENAI_WS_MODELS = {
|
|
13
27
|
"gpt-5.5": {
|
|
14
28
|
name: "GPT 5.5 (WebSocket)",
|
|
15
29
|
reasoning: true,
|
|
16
30
|
temperature: false,
|
|
17
|
-
limit:
|
|
31
|
+
limit: codexLimit(),
|
|
18
32
|
variants: makeVariants(["low", "medium", "high", "xhigh"], false),
|
|
19
33
|
release_date: "2026-04-23",
|
|
20
34
|
},
|
|
@@ -22,7 +36,7 @@ export const OPENAI_WS_MODELS = {
|
|
|
22
36
|
name: "GPT 5.4 (WebSocket)",
|
|
23
37
|
reasoning: true,
|
|
24
38
|
temperature: true,
|
|
25
|
-
limit: { context:
|
|
39
|
+
limit: codexLimit({ context: 1_000_000 }),
|
|
26
40
|
variants: makeVariants(["low", "medium", "high", "xhigh"], false),
|
|
27
41
|
release_date: "2026-03-05",
|
|
28
42
|
},
|
|
@@ -30,7 +44,7 @@ export const OPENAI_WS_MODELS = {
|
|
|
30
44
|
name: "GPT 5.4 Mini (WebSocket)",
|
|
31
45
|
reasoning: true,
|
|
32
46
|
temperature: true,
|
|
33
|
-
limit:
|
|
47
|
+
limit: codexLimit(),
|
|
34
48
|
variants: makeVariants(["low", "medium", "high", "xhigh"], false),
|
|
35
49
|
release_date: "2026-03-05",
|
|
36
50
|
},
|
|
@@ -38,7 +52,7 @@ export const OPENAI_WS_MODELS = {
|
|
|
38
52
|
name: "GPT 5.3 Codex (WebSocket)",
|
|
39
53
|
reasoning: true,
|
|
40
54
|
temperature: false,
|
|
41
|
-
limit:
|
|
55
|
+
limit: codexLimit(),
|
|
42
56
|
variants: makeVariants(["low", "medium", "high", "xhigh"], false),
|
|
43
57
|
family: "gpt-codex",
|
|
44
58
|
release_date: "2026-02-05",
|
|
@@ -47,7 +61,7 @@ export const OPENAI_WS_MODELS = {
|
|
|
47
61
|
name: "GPT 5.2 (WebSocket)",
|
|
48
62
|
reasoning: true,
|
|
49
63
|
temperature: true,
|
|
50
|
-
limit:
|
|
64
|
+
limit: codexLimit(),
|
|
51
65
|
variants: makeVariants(["low", "medium", "high", "xhigh"]),
|
|
52
66
|
release_date: "2025-12-10",
|
|
53
67
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/models/defaults.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,YAAY,CAAC,OAAiB,EAAE,cAAc,GAAG,IAAI;IACnE,OAAO,MAAM,CAAC,WAAW,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACtB,MAAM;QACN;YACE,eAAe,EAAE,MAAM;YACvB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,CAAC,6BAA6B,CAAC;SACzC;KACF,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,8BAA8B,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/models/defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/models/resolve.d.ts
CHANGED
|
@@ -79,8 +79,8 @@ export declare function resolveModels(overrides?: ProviderModelOverrides): Recor
|
|
|
79
79
|
export declare function resolveModelsForOAuth(catalog: CodexModelInfo[] | undefined, overrides?: ProviderModelOverrides): Record<string, ProviderModelConfig>;
|
|
80
80
|
export declare function resolveModelsForApiKey(allowedIds: Set<string> | undefined, overrides?: ProviderModelOverrides): Record<string, ProviderModelConfig>;
|
|
81
81
|
export declare function modelToOpenCodeConfig(model: OpenAIWSModelDef): OpenCodeConfigModel;
|
|
82
|
-
export declare function providerConfigModels(overrides?: Record<string, unknown
|
|
83
|
-
export declare function providerConfig(overrides?: ProviderModelOverrides): {
|
|
82
|
+
export declare function providerConfigModels(overrides?: Record<string, unknown>, catalog?: CodexModelInfo[]): Record<string, unknown>;
|
|
83
|
+
export declare function providerConfig(overrides?: ProviderModelOverrides, catalog?: CodexModelInfo[]): {
|
|
84
84
|
api: string;
|
|
85
85
|
name: string;
|
|
86
86
|
npm: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/models/resolve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/models/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/models/resolve.js
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { OPENAI_API_BASE, PROVIDER_ID } from "../constants.js";
|
|
2
|
-
import { makeVariants, OPENAI_WS_MODELS } from "./defaults.js";
|
|
2
|
+
import { CODEX_EFFECTIVE_CONTEXT_WINDOW, CODEX_OUTPUT_TOKEN_LIMIT, codexLimit, makeVariants, OPENAI_WS_MODELS } from "./defaults.js";
|
|
3
|
+
function positiveFinite(value) {
|
|
4
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
|
|
5
|
+
}
|
|
6
|
+
function limitFromCatalog(model, fallback) {
|
|
7
|
+
const context = positiveFinite(model.max_context_window) ?? positiveFinite(model.context_window) ?? fallback.context;
|
|
8
|
+
const inputCandidate = positiveFinite(model.context_window) ?? positiveFinite(fallback.input) ?? CODEX_EFFECTIVE_CONTEXT_WINDOW;
|
|
9
|
+
const output = positiveFinite(model.max_output_tokens) ?? positiveFinite(fallback.output) ?? CODEX_OUTPUT_TOKEN_LIMIT;
|
|
10
|
+
return {
|
|
11
|
+
context,
|
|
12
|
+
input: Math.min(inputCandidate, context),
|
|
13
|
+
output,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
3
16
|
export function modelToProviderConfig(id, model) {
|
|
4
17
|
return {
|
|
5
18
|
id,
|
|
@@ -16,7 +29,7 @@ export function modelToProviderConfig(id, model) {
|
|
|
16
29
|
interleaved: false,
|
|
17
30
|
},
|
|
18
31
|
cost: { input: 0, output: 0, cache: { read: 0, write: 0 } },
|
|
19
|
-
limit: model.limit,
|
|
32
|
+
limit: { ...model.limit },
|
|
20
33
|
status: "active",
|
|
21
34
|
options: {},
|
|
22
35
|
headers: {},
|
|
@@ -42,42 +55,31 @@ function fallbackModelFor(id) {
|
|
|
42
55
|
name: `${id} (WebSocket)`,
|
|
43
56
|
reasoning: true,
|
|
44
57
|
temperature: false,
|
|
45
|
-
limit:
|
|
58
|
+
limit: codexLimit(),
|
|
46
59
|
variants: {},
|
|
47
60
|
...(id.includes("codex") ? { family: "gpt-codex" } : id.endsWith("-pro") ? { family: "gpt-pro" } : {}),
|
|
48
61
|
};
|
|
49
62
|
result.variants = variantsForModel(id, result);
|
|
50
63
|
return result;
|
|
51
64
|
}
|
|
52
|
-
function resolvedCodexContextWindow(model) {
|
|
53
|
-
const context = model.context_window ?? model.max_context_window;
|
|
54
|
-
if (!context)
|
|
55
|
-
return undefined;
|
|
56
|
-
if (model.effective_context_window_percent != null)
|
|
57
|
-
return Math.floor((context * model.effective_context_window_percent) / 100);
|
|
58
|
-
return context;
|
|
59
|
-
}
|
|
60
65
|
function modelFromCodexCatalog(model) {
|
|
61
66
|
const id = model.slug;
|
|
62
67
|
if (!id)
|
|
63
68
|
return undefined;
|
|
64
69
|
if (model.prefer_websockets !== true && !isOpenAIWSCandidate(id))
|
|
65
70
|
return undefined;
|
|
66
|
-
const context = resolvedCodexContextWindow(model);
|
|
67
|
-
if (!context)
|
|
68
|
-
return undefined;
|
|
69
71
|
const efforts = (model.supported_reasoning_levels ?? [])
|
|
70
72
|
.map((level) => level.effort)
|
|
71
73
|
.filter((effort) => Boolean(effort));
|
|
72
74
|
const reasoning = efforts.length > 0;
|
|
75
|
+
const bundled = OPENAI_WS_MODELS[id];
|
|
76
|
+
const fallback = bundled?.limit ?? codexLimit();
|
|
77
|
+
const limit = limitFromCatalog(model, fallback);
|
|
73
78
|
const result = {
|
|
74
79
|
name: `${model.display_name ?? id} (WebSocket)`,
|
|
75
80
|
reasoning,
|
|
76
|
-
temperature: false,
|
|
77
|
-
limit
|
|
78
|
-
context,
|
|
79
|
-
output: 128000,
|
|
80
|
-
},
|
|
81
|
+
temperature: bundled?.temperature ?? false,
|
|
82
|
+
limit,
|
|
81
83
|
variants: reasoning ? makeVariants(efforts, Boolean(model.supports_reasoning_summaries)) : {},
|
|
82
84
|
...(id.includes("codex") ? { family: "gpt-codex" } : id.endsWith("-pro") ? { family: "gpt-pro" } : {}),
|
|
83
85
|
};
|
|
@@ -147,7 +149,7 @@ export function modelToOpenCodeConfig(model) {
|
|
|
147
149
|
reasoning: model.reasoning,
|
|
148
150
|
temperature: model.temperature,
|
|
149
151
|
tool_call: true,
|
|
150
|
-
limit: model.limit,
|
|
152
|
+
limit: { ...model.limit },
|
|
151
153
|
modalities: {
|
|
152
154
|
input: ["text", "image"],
|
|
153
155
|
output: ["text"],
|
|
@@ -184,11 +186,31 @@ function sanitizeBuiltInConfigOverride(override) {
|
|
|
184
186
|
delete sanitized[key];
|
|
185
187
|
return sanitized;
|
|
186
188
|
}
|
|
187
|
-
|
|
189
|
+
function catalogEntriesBySlug(catalog) {
|
|
190
|
+
const entries = new Map();
|
|
191
|
+
if (!catalog)
|
|
192
|
+
return entries;
|
|
193
|
+
for (const entry of catalog) {
|
|
194
|
+
if (typeof entry?.slug === "string" && entry.slug.length > 0)
|
|
195
|
+
entries.set(entry.slug, entry);
|
|
196
|
+
}
|
|
197
|
+
return entries;
|
|
198
|
+
}
|
|
199
|
+
function bundledModelWithCatalogLimit(id, model, catalogEntry) {
|
|
200
|
+
if (!catalogEntry)
|
|
201
|
+
return model;
|
|
202
|
+
const limit = limitFromCatalog(catalogEntry, model.limit);
|
|
203
|
+
if (limit.context === model.limit.context && limit.input === model.limit.input && limit.output === model.limit.output)
|
|
204
|
+
return model;
|
|
205
|
+
return { ...model, limit };
|
|
206
|
+
}
|
|
207
|
+
export function providerConfigModels(overrides = {}, catalog) {
|
|
188
208
|
const models = {};
|
|
209
|
+
const catalogBySlug = catalogEntriesBySlug(catalog);
|
|
189
210
|
for (const [id, model] of Object.entries(OPENAI_WS_MODELS)) {
|
|
211
|
+
const effective = bundledModelWithCatalogLimit(id, model, catalogBySlug.get(id));
|
|
190
212
|
models[id] = {
|
|
191
|
-
...modelToOpenCodeConfig(
|
|
213
|
+
...modelToOpenCodeConfig(effective),
|
|
192
214
|
...sanitizeBuiltInConfigOverride(overrides[id]),
|
|
193
215
|
};
|
|
194
216
|
}
|
|
@@ -201,12 +223,12 @@ export function providerConfigModels(overrides = {}) {
|
|
|
201
223
|
}
|
|
202
224
|
return models;
|
|
203
225
|
}
|
|
204
|
-
export function providerConfig(overrides = {}) {
|
|
226
|
+
export function providerConfig(overrides = {}, catalog) {
|
|
205
227
|
return {
|
|
206
228
|
api: OPENAI_API_BASE,
|
|
207
229
|
name: "OpenAI WebSocket",
|
|
208
230
|
npm: "@ai-sdk/openai",
|
|
209
|
-
models: providerConfigModels(overrides),
|
|
231
|
+
models: providerConfigModels(overrides, catalog),
|
|
210
232
|
};
|
|
211
233
|
}
|
|
212
234
|
//# sourceMappingURL=resolve.js.map
|