opencode-qoder-bridge 0.1.9 → 0.1.10
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/CHANGELOG.md +13 -0
- package/README.md +20 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -13
- package/dist/index.js.map +1 -1
- package/dist/language-model.d.ts +3 -0
- package/dist/language-model.d.ts.map +1 -1
- package/dist/language-model.js +11 -4
- package/dist/language-model.js.map +1 -1
- package/dist/models.d.ts +19 -7
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +342 -94
- package/dist/models.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAiDhD,eAAO,MAAM,eAAe,EAAE,aAAa,EAI1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAgCvC,wBAAgB,QAAQ,CACtB,EAAE,EAAE,MAAM,EACV,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EAC7D,OAAO,GAAE,qBAA0B,GAClC,aAAa,GAAG,SAAS,CAS3B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACjF,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,WAAW,qBAAqB;IACpC,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,0EAA0E;AAC1E,wBAAgB,6BAA6B,CAAC,OAAO,GAAE,OAAO,KAAa,GAAG,IAAI,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,CAmBhE;AA0JD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EAC7D,OAAO,GAAE,qBAA0B,GAClC,iBAAiB,EAAE,CAsBrB;AA2BD,wBAAgB,UAAU,CACxB,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EAC7D,OAAO,GAAE,qBAA0B,GAClC,aAAa,EAAE,CAQjB;AAED,wBAAgB,sBAAsB,CACpC,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EAC7D,OAAO,GAAE,qBAA0B,GAClC,iBAAiB,EAAE,GAAG,IAAI,CAI5B;AAED,wBAAsB,kBAAkB,CACtC,KAAK,UAAQ,EACb,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EAC7D,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,CA0BrC;AA2CD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EAC7D,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAKrD"}
|
package/dist/models.js
CHANGED
|
@@ -3,7 +3,7 @@ import { findQoderCLI } from "./auth.js";
|
|
|
3
3
|
import { idlePrompt } from "./sdk-session.js";
|
|
4
4
|
import { hasQoderCredential, qoderAuth } from "./sdk-auth.js";
|
|
5
5
|
import { chmodSync, existsSync, lstatSync, mkdirSync, readFileSync, renameSync, unlinkSync } from "node:fs";
|
|
6
|
-
import { randomUUID } from "node:crypto";
|
|
6
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
7
7
|
import { writeFile } from "node:fs/promises";
|
|
8
8
|
import { join } from "node:path";
|
|
9
9
|
import { resolveStateDir } from "./state-dir.js";
|
|
@@ -14,9 +14,14 @@ const OUTPUT = 32_000;
|
|
|
14
14
|
const MAX_MODEL_CACHE_BYTES = 1_000_000;
|
|
15
15
|
const MAX_MODEL_TOKENS = 10_000_000;
|
|
16
16
|
const MAX_PRICE_FACTOR = 1_000_000;
|
|
17
|
+
const MAX_DYNAMIC_MODELS = 512;
|
|
18
|
+
const MODEL_CACHE_VERSION = 1;
|
|
17
19
|
const FETCH_TIMEOUT_MS = 30_000;
|
|
18
20
|
const CLEANUP_GRACE_MS = 5_000;
|
|
21
|
+
const MODEL_REFRESH_INTERVAL_MS = 60_000;
|
|
22
|
+
const MODEL_RETRY_INTERVAL_MS = 5_000;
|
|
19
23
|
const UNSAFE_IDS = new Set(["__proto__", "prototype", "constructor"]);
|
|
24
|
+
const CONTROL_CHARS = /[\u0000-\u001f\u007f-\u009f]/;
|
|
20
25
|
function def(id, name, multiplier, opts = {}) {
|
|
21
26
|
return {
|
|
22
27
|
id,
|
|
@@ -42,7 +47,6 @@ export const FALLBACK_MODELS = [
|
|
|
42
47
|
export const DEFAULT_MODEL_ID = "auto";
|
|
43
48
|
const MODEL_INDEX = new Map(FALLBACK_MODELS.map((m) => [m.id, m]));
|
|
44
49
|
const STATE_DIR = resolveStateDir();
|
|
45
|
-
const MODEL_CACHE_FILE = join(STATE_DIR, "models.json");
|
|
46
50
|
function toModelDef(m) {
|
|
47
51
|
return {
|
|
48
52
|
id: m.id,
|
|
@@ -69,9 +73,25 @@ function rebuildIndex(models) {
|
|
|
69
73
|
MODEL_INDEX.set(model.id, def);
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
|
-
export function getModel(id) {
|
|
76
|
+
export function getModel(id, environment = process.env, options = {}) {
|
|
77
|
+
const runtimeEnvironment = effectiveEnvironment(environment);
|
|
78
|
+
if (hasQoderCredential(runtimeEnvironment))
|
|
79
|
+
getCatalogState(runtimeEnvironment, options);
|
|
80
|
+
else if (activeCatalogScope && catalogStates.get(activeCatalogScope)?.liveUpdated) {
|
|
81
|
+
rebuildIndex(catalogStates.get(activeCatalogScope)?.models ?? []);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
rebuildIndex([]);
|
|
85
|
+
}
|
|
73
86
|
return MODEL_INDEX.get(id);
|
|
74
87
|
}
|
|
88
|
+
const catalogStates = new Map();
|
|
89
|
+
let activeCatalogScope;
|
|
90
|
+
let modelQueryFactory = query;
|
|
91
|
+
/** @internal Test seam for deterministic discovery lifecycle coverage. */
|
|
92
|
+
export function setModelDiscoveryQueryFactory(factory = query) {
|
|
93
|
+
modelQueryFactory = factory;
|
|
94
|
+
}
|
|
75
95
|
/**
|
|
76
96
|
* Keep catalog entries that are usable model ids. Disabled entries are
|
|
77
97
|
* dropped; anything else (BYOK, tagged, scene-filtered) stays so the bridge
|
|
@@ -80,25 +100,38 @@ export function getModel(id) {
|
|
|
80
100
|
export function selectEnabledModels(models) {
|
|
81
101
|
if (!Array.isArray(models))
|
|
82
102
|
return [];
|
|
83
|
-
|
|
103
|
+
const seen = new Set();
|
|
104
|
+
const selected = [];
|
|
105
|
+
for (const m of models) {
|
|
84
106
|
if (!m || typeof m !== "object" || Array.isArray(m))
|
|
85
|
-
|
|
107
|
+
continue;
|
|
86
108
|
const value = m.value;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
109
|
+
if (typeof value !== "string"
|
|
110
|
+
|| value.trim().length === 0
|
|
111
|
+
|| value.length > 256
|
|
112
|
+
|| UNSAFE_IDS.has(value)
|
|
113
|
+
|| CONTROL_CHARS.test(value)
|
|
114
|
+
|| m.isEnabled === false
|
|
115
|
+
|| seen.has(value))
|
|
116
|
+
continue;
|
|
117
|
+
seen.add(value);
|
|
118
|
+
selected.push(m);
|
|
119
|
+
if (selected.length >= MAX_DYNAMIC_MODELS)
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
return selected;
|
|
93
123
|
}
|
|
94
124
|
function mapModelInfo(m) {
|
|
95
125
|
const factor = finiteNonNegative(m.priceFactor, 1.0);
|
|
96
126
|
const context = finitePositiveInteger(m.maxInputTokens, CONTEXT);
|
|
97
127
|
const output = finitePositiveInteger(m.maxOutputTokens, OUTPUT);
|
|
98
128
|
const vl = m.isVl === undefined ? true : m.isVl === true;
|
|
129
|
+
const displayName = typeof m.displayName === "string" && m.displayName.trim()
|
|
130
|
+
? m.displayName.replace(CONTROL_CHARS, " ").trim().slice(0, 1024)
|
|
131
|
+
: "";
|
|
99
132
|
return {
|
|
100
133
|
id: m.value,
|
|
101
|
-
name:
|
|
134
|
+
name: displayName || m.value,
|
|
102
135
|
attachment: vl,
|
|
103
136
|
reasoning: m.isReasoning === true,
|
|
104
137
|
toolCall: true,
|
|
@@ -128,9 +161,9 @@ function validCachedModel(value) {
|
|
|
128
161
|
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
129
162
|
return false;
|
|
130
163
|
const model = value;
|
|
131
|
-
if (typeof model.id !== "string" || model.id.length === 0 || model.id.length > 256 || UNSAFE_IDS.has(model.id))
|
|
164
|
+
if (typeof model.id !== "string" || model.id.length === 0 || model.id.length > 256 || UNSAFE_IDS.has(model.id) || CONTROL_CHARS.test(model.id))
|
|
132
165
|
return false;
|
|
133
|
-
if (typeof model.name !== "string" || model.name.length === 0 || model.name.length > 1024)
|
|
166
|
+
if (typeof model.name !== "string" || model.name.length === 0 || model.name.length > 1024 || CONTROL_CHARS.test(model.name))
|
|
134
167
|
return false;
|
|
135
168
|
if (typeof model.attachment !== "boolean" || typeof model.reasoning !== "boolean" || typeof model.toolCall !== "boolean")
|
|
136
169
|
return false;
|
|
@@ -150,34 +183,130 @@ function validCachedModel(value) {
|
|
|
150
183
|
if (!modalities || typeof modalities !== "object" || Array.isArray(modalities))
|
|
151
184
|
return false;
|
|
152
185
|
const modes = modalities;
|
|
153
|
-
return [modes.input, modes.output].every((items) => Array.isArray(items)
|
|
186
|
+
return [modes.input, modes.output].every((items) => Array.isArray(items)
|
|
187
|
+
&& items.length <= 8
|
|
188
|
+
&& items.every((item) => typeof item === "string" && item.length <= 64 && !CONTROL_CHARS.test(item)));
|
|
189
|
+
}
|
|
190
|
+
function cloneModel(model) {
|
|
191
|
+
return {
|
|
192
|
+
...model,
|
|
193
|
+
limit: { ...model.limit },
|
|
194
|
+
cost: { ...model.cost },
|
|
195
|
+
modalities: { input: [...model.modalities.input], output: [...model.modalities.output] },
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function cloneModels(models) {
|
|
199
|
+
return models?.map(cloneModel) ?? null;
|
|
200
|
+
}
|
|
201
|
+
function effectiveEnvironment(environment) {
|
|
202
|
+
return { ...process.env, ...environment };
|
|
203
|
+
}
|
|
204
|
+
function safeOption(value) {
|
|
205
|
+
if (typeof value !== "string")
|
|
206
|
+
return undefined;
|
|
207
|
+
const normalized = value.trim();
|
|
208
|
+
return normalized && !CONTROL_CHARS.test(normalized) ? normalized : undefined;
|
|
209
|
+
}
|
|
210
|
+
function fingerprint(value) {
|
|
211
|
+
return createHash("sha256").update(value).digest("hex").slice(0, 32);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Model catalogs are account/scene specific. Keep their cache and refresh
|
|
215
|
+
* state isolated without ever putting a credential itself in a path or log.
|
|
216
|
+
*/
|
|
217
|
+
function catalogScope(environment, options) {
|
|
218
|
+
const token = environment.QODER_PERSONAL_ACCESS_TOKEN?.trim();
|
|
219
|
+
const authScope = token
|
|
220
|
+
? `pat:${fingerprint(token)}`
|
|
221
|
+
: hasQoderCredential(environment) ? "local-login" : "anonymous";
|
|
222
|
+
const parts = [
|
|
223
|
+
`auth=${authScope}`,
|
|
224
|
+
`scene=${environment.QODER_SCENE ?? ""}`,
|
|
225
|
+
`vpc=${safeOption(options.vpcEndpoint) ?? environment.QODER_VPC_ENDPOINT ?? environment.QODERCN_VPC_ENDPOINT ?? ""}`,
|
|
226
|
+
`endpoint=${environment.QODER_API_URL ?? environment.QODER_BASE_URL ?? ""}`,
|
|
227
|
+
`proxy=${safeOption(options.proxy) ?? environment.HTTPS_PROXY ?? environment.HTTP_PROXY ?? ""}`,
|
|
228
|
+
];
|
|
229
|
+
return fingerprint(parts.join("\u0000"));
|
|
230
|
+
}
|
|
231
|
+
function cacheFileFor(scope) {
|
|
232
|
+
return join(STATE_DIR, `models.${scope}.json`);
|
|
233
|
+
}
|
|
234
|
+
function getCatalogState(environment = process.env, options = {}) {
|
|
235
|
+
const runtimeEnvironment = effectiveEnvironment(environment);
|
|
236
|
+
const scope = catalogScope(runtimeEnvironment, options);
|
|
237
|
+
let state = catalogStates.get(scope);
|
|
238
|
+
if (!state) {
|
|
239
|
+
state = {
|
|
240
|
+
scope,
|
|
241
|
+
cacheFile: cacheFileFor(scope),
|
|
242
|
+
models: null,
|
|
243
|
+
cacheLoaded: false,
|
|
244
|
+
inflightFetch: null,
|
|
245
|
+
requestGeneration: 0,
|
|
246
|
+
lastSuccessAt: 0,
|
|
247
|
+
lastFailureAt: 0,
|
|
248
|
+
pendingModelsToWrite: null,
|
|
249
|
+
activeWritePromise: null,
|
|
250
|
+
liveUpdated: false,
|
|
251
|
+
};
|
|
252
|
+
catalogStates.set(scope, state);
|
|
253
|
+
}
|
|
254
|
+
if (!state.cacheLoaded) {
|
|
255
|
+
state.cacheLoaded = true;
|
|
256
|
+
const cached = loadCachedModels(state);
|
|
257
|
+
if (cached)
|
|
258
|
+
state.models = cached;
|
|
259
|
+
}
|
|
260
|
+
if (activeCatalogScope !== scope) {
|
|
261
|
+
activeCatalogScope = scope;
|
|
262
|
+
rebuildIndex(state.models ?? []);
|
|
263
|
+
}
|
|
264
|
+
return state;
|
|
154
265
|
}
|
|
155
266
|
/**
|
|
156
267
|
* Dynamically apply live model updates received from SDK streaming events
|
|
157
268
|
* (`available_models_update`). Updates the in-memory index and cache file.
|
|
158
269
|
*/
|
|
159
|
-
export function applyLiveModelUpdates(models) {
|
|
270
|
+
export function applyLiveModelUpdates(models, environment = process.env, options = {}) {
|
|
271
|
+
const state = getCatalogState(environment, options);
|
|
160
272
|
const enabled = selectEnabledModels(models);
|
|
273
|
+
// Empty SDK events are commonly transient during auth/scene changes. Keep
|
|
274
|
+
// the current in-memory catalog so the model picker does not suddenly lose
|
|
275
|
+
// every account model; a later non-empty snapshot still replaces it.
|
|
276
|
+
if (enabled.length === 0) {
|
|
277
|
+
debug("Live model update was empty; retaining the current catalog");
|
|
278
|
+
return cloneModels(state.models) ?? [];
|
|
279
|
+
}
|
|
161
280
|
const mapped = enabled.map(mapModelInfo);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
281
|
+
state.requestGeneration += 1;
|
|
282
|
+
state.models = mapped;
|
|
283
|
+
state.liveUpdated = true;
|
|
284
|
+
state.lastFailureAt = 0;
|
|
285
|
+
if (mapped.length > 0) {
|
|
286
|
+
state.lastSuccessAt = Date.now();
|
|
287
|
+
void queueModelCacheWriteForState(state, mapped);
|
|
288
|
+
}
|
|
289
|
+
if (activeCatalogScope === state.scope)
|
|
290
|
+
rebuildIndex(mapped);
|
|
165
291
|
debug(`Live model update: refreshed ${mapped.length} models`);
|
|
166
|
-
return
|
|
292
|
+
return cloneModels(state.models) ?? [];
|
|
167
293
|
}
|
|
168
|
-
|
|
169
|
-
function loadCachedModels() {
|
|
294
|
+
function loadCachedModels(state) {
|
|
170
295
|
try {
|
|
171
|
-
if (!existsSync(
|
|
296
|
+
if (!existsSync(state.cacheFile))
|
|
172
297
|
return null;
|
|
173
|
-
const info = lstatSync(
|
|
298
|
+
const info = lstatSync(state.cacheFile);
|
|
174
299
|
if (!info.isFile() || info.isSymbolicLink() || info.size > MAX_MODEL_CACHE_BYTES)
|
|
175
300
|
return null;
|
|
176
|
-
const parsed = JSON.parse(readFileSync(
|
|
177
|
-
if (!Array.isArray(parsed))
|
|
301
|
+
const parsed = JSON.parse(readFileSync(state.cacheFile, "utf8"));
|
|
302
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
303
|
+
return null;
|
|
304
|
+
const payload = parsed;
|
|
305
|
+
if (payload.version !== MODEL_CACHE_VERSION || payload.scope !== state.scope || !Array.isArray(payload.models))
|
|
306
|
+
return null;
|
|
307
|
+
const models = payload.models.filter(validCachedModel).slice(0, MAX_DYNAMIC_MODELS);
|
|
308
|
+
if (models.length === 0)
|
|
178
309
|
return null;
|
|
179
|
-
const models = parsed.filter(validCachedModel);
|
|
180
|
-
rebuildIndex(models);
|
|
181
310
|
return models;
|
|
182
311
|
}
|
|
183
312
|
catch (error) {
|
|
@@ -185,29 +314,52 @@ function loadCachedModels() {
|
|
|
185
314
|
return null;
|
|
186
315
|
}
|
|
187
316
|
}
|
|
188
|
-
export function listModels() {
|
|
317
|
+
export function listModels(environment = process.env, options = {}) {
|
|
318
|
+
const runtimeEnvironment = effectiveEnvironment(environment);
|
|
319
|
+
if (hasQoderCredential(runtimeEnvironment))
|
|
320
|
+
getCatalogState(runtimeEnvironment, options);
|
|
321
|
+
else if (activeCatalogScope && catalogStates.get(activeCatalogScope)?.liveUpdated) {
|
|
322
|
+
rebuildIndex(catalogStates.get(activeCatalogScope)?.models ?? []);
|
|
323
|
+
}
|
|
324
|
+
else
|
|
325
|
+
rebuildIndex([]);
|
|
189
326
|
return [...MODEL_INDEX.values()].map((m) => ({ ...m, cost: { ...m.cost }, limit: { ...m.limit } }));
|
|
190
327
|
}
|
|
191
|
-
export function getCachedDynamicModels() {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
328
|
+
export function getCachedDynamicModels(environment = process.env, options = {}) {
|
|
329
|
+
const runtimeEnvironment = effectiveEnvironment(environment);
|
|
330
|
+
if (!hasQoderCredential(runtimeEnvironment))
|
|
331
|
+
return null;
|
|
332
|
+
return cloneModels(getCatalogState(runtimeEnvironment, options).models);
|
|
333
|
+
}
|
|
334
|
+
export async function fetchDynamicModels(force = false, environment = process.env, options = {}) {
|
|
335
|
+
const runtimeEnvironment = effectiveEnvironment(environment);
|
|
336
|
+
if (!hasQoderCredential(runtimeEnvironment)) {
|
|
337
|
+
debug("Skipping live model discovery: no Qoder credential is available");
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
const state = getCatalogState(runtimeEnvironment, options);
|
|
341
|
+
if (state.models && !force)
|
|
342
|
+
return cloneModels(state.models);
|
|
343
|
+
if (state.inflightFetch)
|
|
344
|
+
return state.inflightFetch;
|
|
345
|
+
const now = Date.now();
|
|
346
|
+
if (state.lastSuccessAt > 0 && now - state.lastSuccessAt < MODEL_REFRESH_INTERVAL_MS) {
|
|
347
|
+
return cloneModels(state.models);
|
|
348
|
+
}
|
|
349
|
+
if (state.lastFailureAt > 0 && now - state.lastFailureAt < MODEL_RETRY_INTERVAL_MS) {
|
|
350
|
+
return cloneModels(state.models);
|
|
351
|
+
}
|
|
352
|
+
const generation = ++state.requestGeneration;
|
|
353
|
+
const operation = doFetchDynamicModels(state, runtimeEnvironment, options, generation);
|
|
354
|
+
let tracked;
|
|
355
|
+
tracked = operation.finally(() => {
|
|
356
|
+
if (state.inflightFetch === tracked)
|
|
357
|
+
state.inflightFetch = null;
|
|
207
358
|
});
|
|
208
|
-
|
|
359
|
+
state.inflightFetch = tracked;
|
|
360
|
+
return tracked;
|
|
209
361
|
}
|
|
210
|
-
async function writeCacheFile(models) {
|
|
362
|
+
async function writeCacheFile(state, models) {
|
|
211
363
|
let temporary;
|
|
212
364
|
try {
|
|
213
365
|
mkdirSync(STATE_DIR, { recursive: true, mode: 0o700 });
|
|
@@ -215,9 +367,15 @@ async function writeCacheFile(models) {
|
|
|
215
367
|
chmodSync(STATE_DIR, 0o700);
|
|
216
368
|
}
|
|
217
369
|
catch { /* best-effort */ }
|
|
218
|
-
temporary = join(STATE_DIR, `.models.${process.pid}.${randomUUID()}.tmp`);
|
|
219
|
-
|
|
220
|
-
|
|
370
|
+
temporary = join(STATE_DIR, `.models.${state.scope}.${process.pid}.${randomUUID()}.tmp`);
|
|
371
|
+
const payload = {
|
|
372
|
+
version: MODEL_CACHE_VERSION,
|
|
373
|
+
scope: state.scope,
|
|
374
|
+
fetchedAt: Date.now(),
|
|
375
|
+
models,
|
|
376
|
+
};
|
|
377
|
+
await writeFile(temporary, JSON.stringify(payload, null, 2) + "\n", { mode: 0o600 });
|
|
378
|
+
renameSync(temporary, state.cacheFile);
|
|
221
379
|
temporary = undefined;
|
|
222
380
|
}
|
|
223
381
|
finally {
|
|
@@ -229,78 +387,168 @@ async function writeCacheFile(models) {
|
|
|
229
387
|
}
|
|
230
388
|
}
|
|
231
389
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
const toWrite = pendingModelsToWrite;
|
|
237
|
-
pendingModelsToWrite = null;
|
|
390
|
+
async function processCacheWrite(state) {
|
|
391
|
+
while (state.pendingModelsToWrite !== null) {
|
|
392
|
+
const toWrite = state.pendingModelsToWrite;
|
|
393
|
+
state.pendingModelsToWrite = null;
|
|
238
394
|
try {
|
|
239
|
-
await writeCacheFile(toWrite);
|
|
395
|
+
await writeCacheFile(state, toWrite);
|
|
240
396
|
}
|
|
241
397
|
catch (error) {
|
|
242
398
|
debug("Model cache write failed:", describeError(error));
|
|
243
399
|
}
|
|
244
400
|
}
|
|
245
|
-
activeWritePromise = null;
|
|
401
|
+
state.activeWritePromise = null;
|
|
246
402
|
}
|
|
247
|
-
|
|
248
|
-
pendingModelsToWrite = models;
|
|
249
|
-
activeWritePromise ??= processCacheWrite();
|
|
250
|
-
return activeWritePromise;
|
|
403
|
+
function queueModelCacheWriteForState(state, models) {
|
|
404
|
+
state.pendingModelsToWrite = models.map(cloneModel);
|
|
405
|
+
state.activeWritePromise ??= processCacheWrite(state);
|
|
406
|
+
return state.activeWritePromise;
|
|
407
|
+
}
|
|
408
|
+
export function queueModelCacheWrite(models, environment = process.env, options = {}) {
|
|
409
|
+
return queueModelCacheWriteForState(getCatalogState(environment, options), models);
|
|
251
410
|
}
|
|
252
411
|
export async function flushModelCache() {
|
|
253
|
-
|
|
254
|
-
|
|
412
|
+
const writes = [...catalogStates.values()]
|
|
413
|
+
.map((state) => state.activeWritePromise)
|
|
414
|
+
.filter((promise) => Boolean(promise));
|
|
415
|
+
if (writes.length > 0)
|
|
416
|
+
await Promise.all(writes);
|
|
255
417
|
}
|
|
256
|
-
async function doFetchDynamicModels() {
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
return null;
|
|
260
|
-
let q;
|
|
418
|
+
async function doFetchDynamicModels(state, environment, options, generation) {
|
|
419
|
+
const timeoutMs = normalizeTimeout(options.timeoutMs);
|
|
420
|
+
const deadline = Date.now() + timeoutMs;
|
|
261
421
|
const abortController = new AbortController();
|
|
262
|
-
const timeout = setTimeout(() => abortController.abort(),
|
|
422
|
+
const timeout = setTimeout(() => abortController.abort(), timeoutMs);
|
|
263
423
|
if (typeof timeout.unref === "function")
|
|
264
424
|
timeout.unref();
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
: {};
|
|
425
|
+
const remaining = () => Math.max(1, deadline - Date.now());
|
|
426
|
+
const canCommit = () => state.requestGeneration === generation && !abortController.signal.aborted;
|
|
268
427
|
try {
|
|
269
|
-
|
|
428
|
+
// The Worker is the normal path and avoids any PATH dependency. If a
|
|
429
|
+
// separately installed qodercli is present, try it in parallel as an
|
|
430
|
+
// automatic compatibility fallback; neither path requires users to run a
|
|
431
|
+
// model-list command themselves.
|
|
432
|
+
const runtimes = [undefined];
|
|
433
|
+
const cli = findQoderCLI();
|
|
434
|
+
if (cli)
|
|
435
|
+
runtimes.push(cli);
|
|
436
|
+
const attempts = runtimes.map((runtimePath) => fetchFromRuntime(runtimePath, environment, options, deadline, abortController.signal));
|
|
437
|
+
let emptySnapshot = false;
|
|
438
|
+
let failures = 0;
|
|
439
|
+
const pending = attempts.map((promise, index) => ({
|
|
440
|
+
index,
|
|
441
|
+
promise: promise.then((models) => ({ index, models })),
|
|
442
|
+
}));
|
|
443
|
+
while (pending.length > 0) {
|
|
444
|
+
const result = await Promise.race(pending.map((item) => item.promise));
|
|
445
|
+
const pendingIndex = pending.findIndex((item) => item.index === result.index);
|
|
446
|
+
if (pendingIndex >= 0)
|
|
447
|
+
pending.splice(pendingIndex, 1);
|
|
448
|
+
if (Array.isArray(result.models)) {
|
|
449
|
+
if (result.models.length > 0) {
|
|
450
|
+
if (!canCommit())
|
|
451
|
+
return cloneModels(state.models);
|
|
452
|
+
const committed = commitDiscoveredModels(state, result.models, generation);
|
|
453
|
+
abortController.abort();
|
|
454
|
+
return committed;
|
|
455
|
+
}
|
|
456
|
+
emptySnapshot = true;
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
failures += 1;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
if (!canCommit())
|
|
463
|
+
return cloneModels(state.models);
|
|
464
|
+
if (emptySnapshot) {
|
|
465
|
+
state.lastSuccessAt = 0;
|
|
466
|
+
state.lastFailureAt = Date.now();
|
|
467
|
+
debug("Live model catalog was empty; retaining the current catalog");
|
|
468
|
+
}
|
|
469
|
+
if (failures > 0) {
|
|
470
|
+
state.lastFailureAt = Date.now();
|
|
471
|
+
debug(`Live model catalog unavailable through ${failures} runtime attempt(s)`);
|
|
472
|
+
}
|
|
473
|
+
return cloneModels(state.models);
|
|
474
|
+
}
|
|
475
|
+
catch (error) {
|
|
476
|
+
if (state.requestGeneration === generation)
|
|
477
|
+
state.lastFailureAt = Date.now();
|
|
478
|
+
debug("Live model catalog unavailable; keeping cached/fallback models:", describeError(error));
|
|
479
|
+
return cloneModels(state.models);
|
|
480
|
+
}
|
|
481
|
+
finally {
|
|
482
|
+
clearTimeout(timeout);
|
|
483
|
+
abortController.abort();
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
async function fetchFromRuntime(runtimePath, environment, options, deadline, overallSignal) {
|
|
487
|
+
if (overallSignal.aborted)
|
|
488
|
+
return null;
|
|
489
|
+
const abortController = new AbortController();
|
|
490
|
+
const abortAttempt = () => abortController.abort();
|
|
491
|
+
overallSignal.addEventListener("abort", abortAttempt, { once: true });
|
|
492
|
+
let q;
|
|
493
|
+
const remaining = () => Math.max(1, deadline - Date.now());
|
|
494
|
+
try {
|
|
495
|
+
q = modelQueryFactory({
|
|
270
496
|
prompt: idlePrompt(abortController.signal),
|
|
271
497
|
options: {
|
|
272
|
-
auth: qoderAuth(),
|
|
498
|
+
auth: qoderAuth(environment),
|
|
273
499
|
model: "auto",
|
|
274
500
|
abortController,
|
|
275
501
|
persistSession: false,
|
|
276
|
-
|
|
277
|
-
...
|
|
502
|
+
env: environment,
|
|
503
|
+
...(runtimePath ? { pathToQoderCLIExecutable: runtimePath } : {}),
|
|
504
|
+
...(safeOption(options.proxy) ? { proxy: safeOption(options.proxy) } : {}),
|
|
505
|
+
...(safeOption(options.vpcEndpoint) ? { vpcEndpoint: safeOption(options.vpcEndpoint) } : {}),
|
|
506
|
+
...(safeOption(options.cwd) ? { cwd: safeOption(options.cwd) } : {}),
|
|
507
|
+
controlRequestTimeoutMs: Math.max(100, Math.min(5_000, remaining() - 100)),
|
|
508
|
+
closeGraceMs: Math.min(CLEANUP_GRACE_MS, 500),
|
|
278
509
|
},
|
|
279
510
|
});
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
// models until a lucky refresh.
|
|
284
|
-
const models = await withTimeout(q.getAvailableModels({ fetchStrategy: "live" }), FETCH_TIMEOUT_MS, `Qoder model discovery exceeded ${FETCH_TIMEOUT_MS}ms`);
|
|
285
|
-
if (!Array.isArray(models))
|
|
286
|
-
return null;
|
|
287
|
-
const enabled = selectEnabledModels(models);
|
|
288
|
-
debug(`Model catalog: ${enabled.length} usable of ${models.length} reported`
|
|
289
|
-
+ (enabled.length === 0 ? "" : ` (${enabled.map((m) => m.value).join(", ")})`));
|
|
290
|
-
cachedDynamicModels = enabled.map(mapModelInfo);
|
|
291
|
-
rebuildIndex(cachedDynamicModels);
|
|
292
|
-
await queueModelCacheWrite(cachedDynamicModels);
|
|
293
|
-
return getCachedDynamicModels();
|
|
511
|
+
await withTimeout(q.initializationResult(), remaining(), `Qoder model discovery initialization exceeded ${Math.max(1, deadline - Date.now())}ms`);
|
|
512
|
+
const models = await withTimeout(q.getAvailableModels({ fetchStrategy: "live" }), remaining(), `Qoder model discovery exceeded ${Math.max(1, deadline - Date.now())}ms`);
|
|
513
|
+
return Array.isArray(models) ? models : null;
|
|
294
514
|
}
|
|
295
515
|
catch (error) {
|
|
296
|
-
debug(
|
|
516
|
+
debug(`Model discovery runtime${runtimePath ? " (qodercli fallback)" : " (bundled Worker)"} failed:`, describeError(error));
|
|
297
517
|
return null;
|
|
298
518
|
}
|
|
299
519
|
finally {
|
|
300
|
-
|
|
520
|
+
overallSignal.removeEventListener("abort", abortAttempt);
|
|
301
521
|
abortController.abort();
|
|
302
522
|
if (q)
|
|
303
|
-
|
|
523
|
+
void closeAsyncIterator(q, CLEANUP_GRACE_MS);
|
|
304
524
|
}
|
|
305
525
|
}
|
|
526
|
+
function commitDiscoveredModels(state, models, generation) {
|
|
527
|
+
if (state.requestGeneration !== generation)
|
|
528
|
+
return cloneModels(state.models);
|
|
529
|
+
const enabled = selectEnabledModels(models);
|
|
530
|
+
debug(`Model catalog: ${enabled.length} usable of ${models.length} reported`
|
|
531
|
+
+ (enabled.length === 0 ? "" : ` (${enabled.map((m) => m.value).join(", ")})`));
|
|
532
|
+
// An empty live response is ambiguous (transient auth/scene/server
|
|
533
|
+
// failures are returned this way by some SDK/CLI versions). Keep the last
|
|
534
|
+
// known-good catalog and let the built-ins cover a genuinely empty cache.
|
|
535
|
+
if (enabled.length === 0)
|
|
536
|
+
return cloneModels(state.models);
|
|
537
|
+
const mapped = enabled.map(mapModelInfo);
|
|
538
|
+
state.models = mapped;
|
|
539
|
+
state.liveUpdated = true;
|
|
540
|
+
state.lastSuccessAt = Date.now();
|
|
541
|
+
state.lastFailureAt = 0;
|
|
542
|
+
if (activeCatalogScope === state.scope)
|
|
543
|
+
rebuildIndex(mapped);
|
|
544
|
+
// Cache persistence is deliberately detached from startup registration;
|
|
545
|
+
// a slow filesystem must not hold OpenCode past the discovery deadline.
|
|
546
|
+
void queueModelCacheWriteForState(state, mapped);
|
|
547
|
+
return cloneModels(mapped);
|
|
548
|
+
}
|
|
549
|
+
function normalizeTimeout(value) {
|
|
550
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0)
|
|
551
|
+
return FETCH_TIMEOUT_MS;
|
|
552
|
+
return Math.min(FETCH_TIMEOUT_MS, Math.max(250, Math.floor(value)));
|
|
553
|
+
}
|
|
306
554
|
//# sourceMappingURL=models.js.map
|
package/dist/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|