@slkiser/opencode-quota 2.3.0 → 2.4.1

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.
@@ -1,13 +1,172 @@
1
1
  import { readFileSync } from "fs";
2
+ import { mkdir, readFile, rename, rm, writeFile } from "fs/promises";
3
+ import { dirname, join } from "path";
4
+ import { fetchWithTimeout } from "./http.js";
5
+ import { getOpencodeRuntimeDirs } from "./opencode-runtime-paths.js";
6
+ const SOURCE_URL = "https://models.dev/api.json";
7
+ const DEFAULT_MODELSDEV_PROVIDERS = ["anthropic", "google", "moonshotai", "openai", "xai", "zai"];
8
+ const COST_KEYS = ["input", "output", "cache_read", "cache_write"];
9
+ const RUNTIME_SNAPSHOT_FILENAME = "modelsdev-pricing.runtime.min.json";
10
+ const RUNTIME_REFRESH_STATE_FILENAME = "modelsdev-pricing.refresh-state.json";
11
+ const DEFAULT_REFRESH_MIN_ATTEMPT_INTERVAL_MS = 6 * 60 * 60 * 1000;
12
+ const DEFAULT_REFRESH_TIMEOUT_MS = 6_000;
13
+ export const DEFAULT_PRICING_SNAPSHOT_MAX_AGE_MS = 3 * 24 * 60 * 60 * 1000;
14
+ const EMPTY_SNAPSHOT = {
15
+ _meta: {
16
+ source: "none",
17
+ generatedAt: 0,
18
+ providers: [],
19
+ units: "USD per 1M tokens",
20
+ },
21
+ providers: {},
22
+ };
2
23
  let SNAPSHOT = null;
24
+ let SNAPSHOT_SOURCE = "bundled";
3
25
  let MODEL_INDEX = null;
26
+ let REFRESH_IN_FLIGHT = null;
27
+ let PROCESS_REFRESH_CHECKED = false;
28
+ function asRecord(value) {
29
+ return value && typeof value === "object" ? value : null;
30
+ }
31
+ function sortRecordByKeys(obj) {
32
+ const out = {};
33
+ for (const key of Object.keys(obj).sort((a, b) => a.localeCompare(b))) {
34
+ out[key] = obj[key];
35
+ }
36
+ return out;
37
+ }
38
+ function parseEnabled(value) {
39
+ if (!value)
40
+ return true;
41
+ const normalized = value.trim().toLowerCase();
42
+ return !["0", "false", "no", "off"].includes(normalized);
43
+ }
44
+ function parseMaxAgeMs(value) {
45
+ if (!value)
46
+ return DEFAULT_PRICING_SNAPSHOT_MAX_AGE_MS;
47
+ const days = Number(value);
48
+ if (!Number.isFinite(days) || days <= 0)
49
+ return DEFAULT_PRICING_SNAPSHOT_MAX_AGE_MS;
50
+ return Math.floor(days * 24 * 60 * 60 * 1000);
51
+ }
52
+ export function getPricingRefreshPolicy(env = process.env) {
53
+ return {
54
+ enabled: parseEnabled(env.OPENCODE_QUOTA_PRICING_AUTO_REFRESH),
55
+ maxAgeMs: parseMaxAgeMs(env.OPENCODE_QUOTA_PRICING_MAX_AGE_DAYS),
56
+ minAttemptIntervalMs: DEFAULT_REFRESH_MIN_ATTEMPT_INTERVAL_MS,
57
+ timeoutMs: DEFAULT_REFRESH_TIMEOUT_MS,
58
+ };
59
+ }
60
+ function normalizeSnapshot(raw) {
61
+ const root = asRecord(raw);
62
+ if (!root)
63
+ return null;
64
+ const metaRaw = asRecord(root._meta);
65
+ const providersRaw = asRecord(root.providers);
66
+ if (!metaRaw || !providersRaw)
67
+ return null;
68
+ const generatedAt = Number(metaRaw.generatedAt);
69
+ if (!Number.isFinite(generatedAt) || generatedAt <= 0)
70
+ return null;
71
+ const providers = {};
72
+ for (const providerId of Object.keys(providersRaw)) {
73
+ const modelsRaw = asRecord(providersRaw[providerId]);
74
+ if (!modelsRaw)
75
+ continue;
76
+ const models = {};
77
+ for (const modelId of Object.keys(modelsRaw)) {
78
+ const modelRaw = asRecord(modelsRaw[modelId]);
79
+ if (!modelRaw)
80
+ continue;
81
+ const buckets = {};
82
+ const input = modelRaw.input;
83
+ const output = modelRaw.output;
84
+ const cacheRead = modelRaw.cache_read;
85
+ const cacheWrite = modelRaw.cache_write;
86
+ const reasoning = modelRaw.reasoning;
87
+ if (typeof input === "number" && Number.isFinite(input))
88
+ buckets.input = input;
89
+ if (typeof output === "number" && Number.isFinite(output))
90
+ buckets.output = output;
91
+ if (typeof cacheRead === "number" && Number.isFinite(cacheRead))
92
+ buckets.cache_read = cacheRead;
93
+ if (typeof cacheWrite === "number" && Number.isFinite(cacheWrite)) {
94
+ buckets.cache_write = cacheWrite;
95
+ }
96
+ if (typeof reasoning === "number" && Number.isFinite(reasoning))
97
+ buckets.reasoning = reasoning;
98
+ if (Object.keys(buckets).length > 0) {
99
+ models[modelId] = buckets;
100
+ }
101
+ }
102
+ if (Object.keys(models).length > 0) {
103
+ providers[providerId] = sortRecordByKeys(models);
104
+ }
105
+ }
106
+ const providerList = Object.keys(providers).sort((a, b) => a.localeCompare(b));
107
+ return {
108
+ _meta: {
109
+ source: typeof metaRaw.source === "string" && metaRaw.source ? metaRaw.source : SOURCE_URL,
110
+ generatedAt: Math.trunc(generatedAt),
111
+ providers: providerList,
112
+ units: typeof metaRaw.units === "string" && metaRaw.units ? metaRaw.units : "USD per 1M tokens",
113
+ },
114
+ providers: sortRecordByKeys(providers),
115
+ };
116
+ }
117
+ function loadBundledSnapshotSync(override) {
118
+ if (override) {
119
+ return normalizeSnapshot(override) ?? EMPTY_SNAPSHOT;
120
+ }
121
+ try {
122
+ const url = new URL("../data/modelsdev-pricing.min.json", import.meta.url);
123
+ const raw = readFileSync(url, "utf-8");
124
+ return normalizeSnapshot(JSON.parse(raw)) ?? EMPTY_SNAPSHOT;
125
+ }
126
+ catch {
127
+ return EMPTY_SNAPSHOT;
128
+ }
129
+ }
130
+ export function getRuntimePricingSnapshotPath(runtimeDirs) {
131
+ const dirs = runtimeDirs ?? getOpencodeRuntimeDirs();
132
+ return join(dirs.cacheDir, "opencode-quota", RUNTIME_SNAPSHOT_FILENAME);
133
+ }
134
+ export function getRuntimePricingRefreshStatePath(runtimeDirs) {
135
+ const dirs = runtimeDirs ?? getOpencodeRuntimeDirs();
136
+ return join(dirs.cacheDir, "opencode-quota", RUNTIME_REFRESH_STATE_FILENAME);
137
+ }
138
+ function loadRuntimeSnapshotSync(runtimeDirs) {
139
+ const path = getRuntimePricingSnapshotPath(runtimeDirs);
140
+ try {
141
+ const raw = readFileSync(path, "utf-8");
142
+ return normalizeSnapshot(JSON.parse(raw));
143
+ }
144
+ catch {
145
+ return null;
146
+ }
147
+ }
148
+ function chooseSnapshot(params) {
149
+ const bundled = loadBundledSnapshotSync(params?.bootstrapSnapshotOverride);
150
+ const runtime = loadRuntimeSnapshotSync(params?.runtimeDirs);
151
+ if (runtime && runtime._meta.generatedAt >= bundled._meta.generatedAt) {
152
+ return { snapshot: runtime, source: "runtime" };
153
+ }
154
+ if (bundled._meta.generatedAt > 0) {
155
+ return { snapshot: bundled, source: "bundled" };
156
+ }
157
+ return { snapshot: EMPTY_SNAPSHOT, source: "empty" };
158
+ }
159
+ function setSnapshot(snapshot, source) {
160
+ SNAPSHOT = snapshot;
161
+ SNAPSHOT_SOURCE = source;
162
+ MODEL_INDEX = null;
163
+ }
4
164
  function ensureLoaded() {
5
165
  if (SNAPSHOT)
6
166
  return SNAPSHOT;
7
- const url = new URL("../data/modelsdev-pricing.min.json", import.meta.url);
8
- const raw = readFileSync(url, "utf-8");
9
- SNAPSHOT = JSON.parse(raw);
10
- return SNAPSHOT;
167
+ const selected = chooseSnapshot();
168
+ setSnapshot(selected.snapshot, selected.source);
169
+ return selected.snapshot;
11
170
  }
12
171
  function ensureModelIndex() {
13
172
  if (MODEL_INDEX)
@@ -27,9 +186,349 @@ function ensureModelIndex() {
27
186
  MODEL_INDEX = idx;
28
187
  return idx;
29
188
  }
189
+ function normalizeRefreshState(raw) {
190
+ const obj = asRecord(raw);
191
+ if (!obj)
192
+ return null;
193
+ const version = Number(obj.version);
194
+ const updatedAt = Number(obj.updatedAt);
195
+ if (version !== 1 || !Number.isFinite(updatedAt) || updatedAt <= 0)
196
+ return null;
197
+ const out = {
198
+ version: 1,
199
+ updatedAt: Math.trunc(updatedAt),
200
+ };
201
+ const lastAttemptAt = Number(obj.lastAttemptAt);
202
+ const lastSuccessAt = Number(obj.lastSuccessAt);
203
+ const lastFailureAt = Number(obj.lastFailureAt);
204
+ if (Number.isFinite(lastAttemptAt) && lastAttemptAt > 0)
205
+ out.lastAttemptAt = Math.trunc(lastAttemptAt);
206
+ if (Number.isFinite(lastSuccessAt) && lastSuccessAt > 0)
207
+ out.lastSuccessAt = Math.trunc(lastSuccessAt);
208
+ if (Number.isFinite(lastFailureAt) && lastFailureAt > 0)
209
+ out.lastFailureAt = Math.trunc(lastFailureAt);
210
+ if (typeof obj.lastResult === "string") {
211
+ const allowed = new Set(["success", "not_modified", "skipped_fresh", "skipped_throttled", "failed"]);
212
+ if (allowed.has(obj.lastResult)) {
213
+ out.lastResult = obj.lastResult;
214
+ }
215
+ }
216
+ if (typeof obj.lastError === "string" && obj.lastError)
217
+ out.lastError = obj.lastError;
218
+ if (typeof obj.etag === "string" && obj.etag)
219
+ out.etag = obj.etag;
220
+ if (typeof obj.lastModified === "string" && obj.lastModified)
221
+ out.lastModified = obj.lastModified;
222
+ return out;
223
+ }
224
+ async function writeJsonAtomic(path, data) {
225
+ const dir = dirname(path);
226
+ const tmp = `${path}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`;
227
+ await mkdir(dir, { recursive: true });
228
+ await writeFile(tmp, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
229
+ const safeRm = async (target) => {
230
+ try {
231
+ await rm(target, { force: true });
232
+ }
233
+ catch {
234
+ // best-effort cleanup
235
+ }
236
+ };
237
+ try {
238
+ await rename(tmp, path);
239
+ }
240
+ catch (err) {
241
+ const code = err && typeof err === "object" && "code" in err
242
+ ? String(err.code)
243
+ : "";
244
+ const shouldRetryAsReplace = code === "EPERM" || code === "EEXIST" || code === "EACCES" || code === "ENOTEMPTY";
245
+ if (!shouldRetryAsReplace) {
246
+ await safeRm(tmp);
247
+ throw err;
248
+ }
249
+ await safeRm(path);
250
+ await rename(tmp, path);
251
+ }
252
+ }
253
+ async function readRefreshState(path) {
254
+ try {
255
+ const raw = await readFile(path, "utf-8");
256
+ return normalizeRefreshState(JSON.parse(raw));
257
+ }
258
+ catch {
259
+ return null;
260
+ }
261
+ }
262
+ export async function readPricingRefreshState(runtimeDirs) {
263
+ return await readRefreshState(getRuntimePricingRefreshStatePath(runtimeDirs));
264
+ }
265
+ function makeDefaultRefreshState(nowMs) {
266
+ return {
267
+ version: 1,
268
+ updatedAt: nowMs,
269
+ };
270
+ }
271
+ function pickCostBuckets(rawCost) {
272
+ const obj = asRecord(rawCost);
273
+ if (!obj)
274
+ return null;
275
+ const picked = {};
276
+ for (const key of COST_KEYS) {
277
+ const value = obj[key];
278
+ if (typeof value === "number" && Number.isFinite(value)) {
279
+ picked[key] = value;
280
+ }
281
+ }
282
+ return Object.keys(picked).length > 0 ? picked : null;
283
+ }
284
+ function buildSnapshotFromApi(apiRaw, providerIDs, generatedAt) {
285
+ const api = asRecord(apiRaw) ?? {};
286
+ const providers = {};
287
+ for (const providerID of providerIDs) {
288
+ const providerNode = asRecord(api[providerID]);
289
+ const models = asRecord(providerNode?.models);
290
+ if (!models)
291
+ continue;
292
+ const pricedModels = {};
293
+ for (const modelID of Object.keys(models)) {
294
+ const modelNode = asRecord(models[modelID]);
295
+ const cost = pickCostBuckets(modelNode?.cost);
296
+ if (cost) {
297
+ pricedModels[modelID] = cost;
298
+ }
299
+ }
300
+ if (Object.keys(pricedModels).length > 0) {
301
+ providers[providerID] = sortRecordByKeys(pricedModels);
302
+ }
303
+ }
304
+ const providerList = Object.keys(providers).sort((a, b) => a.localeCompare(b));
305
+ return {
306
+ _meta: {
307
+ generatedAt,
308
+ providers: providerList,
309
+ source: SOURCE_URL,
310
+ units: "USD per 1M tokens",
311
+ },
312
+ providers: sortRecordByKeys(providers),
313
+ };
314
+ }
315
+ function countPricedModels(snapshot) {
316
+ let total = 0;
317
+ for (const models of Object.values(snapshot.providers)) {
318
+ total += Object.keys(models).length;
319
+ }
320
+ return total;
321
+ }
322
+ function getErrorMessage(error) {
323
+ return error instanceof Error ? error.message : String(error);
324
+ }
325
+ async function fetchModelsDevSnapshot(params) {
326
+ const headers = new Headers();
327
+ if (params.state.etag)
328
+ headers.set("If-None-Match", params.state.etag);
329
+ if (params.state.lastModified)
330
+ headers.set("If-Modified-Since", params.state.lastModified);
331
+ if (!params.fetchFn) {
332
+ return await fetchWithTimeout(SOURCE_URL, { headers }, params.timeoutMs);
333
+ }
334
+ const controller = new AbortController();
335
+ const timeoutId = setTimeout(() => controller.abort(), params.timeoutMs);
336
+ try {
337
+ return await params.fetchFn(SOURCE_URL, {
338
+ headers,
339
+ signal: controller.signal,
340
+ });
341
+ }
342
+ finally {
343
+ clearTimeout(timeoutId);
344
+ }
345
+ }
346
+ export async function maybeRefreshPricingSnapshot(opts = {}) {
347
+ if (REFRESH_IN_FLIGHT)
348
+ return REFRESH_IN_FLIGHT;
349
+ REFRESH_IN_FLIGHT = (async () => {
350
+ const nowMs = opts.nowMs ?? Date.now();
351
+ const policy = getPricingRefreshPolicy(process.env);
352
+ const maxAgeMs = opts.maxAgeMs ?? policy.maxAgeMs;
353
+ const minAttemptIntervalMs = opts.minAttemptIntervalMs ?? policy.minAttemptIntervalMs;
354
+ const timeoutMs = opts.timeoutMs ?? policy.timeoutMs;
355
+ const runtimeDirs = opts.runtimeDirs;
356
+ const snapshotPath = getRuntimePricingSnapshotPath(runtimeDirs);
357
+ const statePath = getRuntimePricingRefreshStatePath(runtimeDirs);
358
+ const force = opts.force === true;
359
+ const previousState = (await readRefreshState(statePath)) ?? makeDefaultRefreshState(nowMs);
360
+ if (!force && PROCESS_REFRESH_CHECKED) {
361
+ return {
362
+ attempted: false,
363
+ updated: false,
364
+ reason: "already_checked_this_process",
365
+ state: previousState,
366
+ };
367
+ }
368
+ PROCESS_REFRESH_CHECKED = true;
369
+ const selected = chooseSnapshot({
370
+ runtimeDirs,
371
+ bootstrapSnapshotOverride: opts.bootstrapSnapshotOverride,
372
+ });
373
+ setSnapshot(selected.snapshot, selected.source);
374
+ const health = getPricingSnapshotHealth({ nowMs, maxAgeMs });
375
+ if (!force && !policy.enabled) {
376
+ return {
377
+ attempted: false,
378
+ updated: false,
379
+ reason: "disabled",
380
+ state: {
381
+ ...previousState,
382
+ updatedAt: nowMs,
383
+ lastResult: "skipped_fresh",
384
+ },
385
+ };
386
+ }
387
+ if (!force && !health.stale) {
388
+ return {
389
+ attempted: false,
390
+ updated: false,
391
+ reason: "fresh",
392
+ state: {
393
+ ...previousState,
394
+ updatedAt: nowMs,
395
+ lastResult: "skipped_fresh",
396
+ },
397
+ };
398
+ }
399
+ if (!force && previousState.lastAttemptAt && nowMs - previousState.lastAttemptAt < minAttemptIntervalMs) {
400
+ return {
401
+ attempted: false,
402
+ updated: false,
403
+ reason: "throttled",
404
+ state: {
405
+ ...previousState,
406
+ updatedAt: nowMs,
407
+ lastResult: "skipped_throttled",
408
+ },
409
+ };
410
+ }
411
+ const attemptingState = {
412
+ ...previousState,
413
+ version: 1,
414
+ updatedAt: nowMs,
415
+ lastAttemptAt: nowMs,
416
+ };
417
+ try {
418
+ const response = await fetchModelsDevSnapshot({
419
+ timeoutMs,
420
+ state: attemptingState,
421
+ fetchFn: opts.fetchFn,
422
+ });
423
+ if (response.status === 304) {
424
+ const activeSnapshot = ensureLoaded();
425
+ const refreshedSnapshot = {
426
+ _meta: {
427
+ ...activeSnapshot._meta,
428
+ generatedAt: nowMs,
429
+ },
430
+ providers: activeSnapshot.providers,
431
+ };
432
+ await writeJsonAtomic(snapshotPath, refreshedSnapshot);
433
+ setSnapshot(refreshedSnapshot, "runtime");
434
+ const nextState = {
435
+ ...attemptingState,
436
+ updatedAt: nowMs,
437
+ lastSuccessAt: nowMs,
438
+ lastResult: "not_modified",
439
+ lastError: undefined,
440
+ etag: response.headers.get("etag") ?? attemptingState.etag,
441
+ lastModified: response.headers.get("last-modified") ?? attemptingState.lastModified,
442
+ };
443
+ try {
444
+ await writeJsonAtomic(statePath, nextState);
445
+ }
446
+ catch {
447
+ // best effort; keep refreshed in-memory/runtime snapshot active
448
+ }
449
+ return {
450
+ attempted: true,
451
+ updated: true,
452
+ state: nextState,
453
+ };
454
+ }
455
+ if (!response.ok) {
456
+ throw new Error(`Failed to fetch ${SOURCE_URL}: ${response.status} ${response.statusText}`);
457
+ }
458
+ const api = await response.json();
459
+ const snapshot = buildSnapshotFromApi(api, opts.providerAllowlist ?? DEFAULT_MODELSDEV_PROVIDERS, nowMs);
460
+ if (countPricedModels(snapshot) === 0) {
461
+ throw new Error("Refusing to persist empty pricing snapshot from models.dev");
462
+ }
463
+ await writeJsonAtomic(snapshotPath, snapshot);
464
+ setSnapshot(snapshot, "runtime");
465
+ const nextState = {
466
+ ...attemptingState,
467
+ updatedAt: nowMs,
468
+ lastSuccessAt: nowMs,
469
+ lastResult: "success",
470
+ lastError: undefined,
471
+ etag: response.headers.get("etag") ?? attemptingState.etag,
472
+ lastModified: response.headers.get("last-modified") ?? attemptingState.lastModified,
473
+ };
474
+ try {
475
+ await writeJsonAtomic(statePath, nextState);
476
+ }
477
+ catch {
478
+ // best effort; snapshot has already been updated
479
+ }
480
+ return {
481
+ attempted: true,
482
+ updated: true,
483
+ state: nextState,
484
+ };
485
+ }
486
+ catch (error) {
487
+ const errorMessage = getErrorMessage(error);
488
+ const nextState = {
489
+ ...attemptingState,
490
+ updatedAt: nowMs,
491
+ lastFailureAt: nowMs,
492
+ lastResult: "failed",
493
+ lastError: errorMessage,
494
+ };
495
+ try {
496
+ await writeJsonAtomic(statePath, nextState);
497
+ }
498
+ catch {
499
+ // best effort; report original fetch/refresh error
500
+ }
501
+ return {
502
+ attempted: true,
503
+ updated: false,
504
+ error: errorMessage,
505
+ state: nextState,
506
+ };
507
+ }
508
+ })().finally(() => {
509
+ REFRESH_IN_FLIGHT = null;
510
+ });
511
+ return REFRESH_IN_FLIGHT;
512
+ }
30
513
  export function getPricingSnapshotMeta() {
31
514
  return ensureLoaded()._meta;
32
515
  }
516
+ export function getPricingSnapshotSource() {
517
+ ensureLoaded();
518
+ return SNAPSHOT_SOURCE;
519
+ }
520
+ export function getPricingSnapshotHealth(opts) {
521
+ const generatedAt = getPricingSnapshotMeta().generatedAt;
522
+ const nowMs = opts?.nowMs ?? Date.now();
523
+ const maxAgeMs = opts?.maxAgeMs ?? DEFAULT_PRICING_SNAPSHOT_MAX_AGE_MS;
524
+ const ageMs = Math.max(0, nowMs - generatedAt);
525
+ return {
526
+ generatedAt,
527
+ ageMs,
528
+ maxAgeMs,
529
+ stale: ageMs > maxAgeMs,
530
+ };
531
+ }
33
532
  export function hasProvider(providerId) {
34
533
  return !!ensureLoaded().providers[providerId];
35
534
  }
@@ -77,4 +576,11 @@ export function lookupCost(providerId, modelId) {
77
576
  export function hasCost(providerId, modelId) {
78
577
  return lookupCost(providerId, modelId) != null;
79
578
  }
579
+ export function __resetPricingSnapshotForTests() {
580
+ SNAPSHOT = null;
581
+ SNAPSHOT_SOURCE = "bundled";
582
+ MODEL_INDEX = null;
583
+ REFRESH_IN_FLIGHT = null;
584
+ PROCESS_REFRESH_CHECKED = false;
585
+ }
80
586
  //# sourceMappingURL=modelsdev-pricing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modelsdev-pricing.js","sourceRoot":"","sources":["../../src/lib/modelsdev-pricing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelsdev-pricing.js","sourceRoot":"","sources":["../../src/lib/modelsdev-pricing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"quota-stats.d.ts","sourceRoot":"","sources":["../../src/lib/quota-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota-stats.d.ts","sourceRoot":"","sources":["../../src/lib/quota-stats.ts"],"names":[],"mappings":"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"}