@slkiser/opencode-quota 4.0.0 → 4.0.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.
Files changed (41) hide show
  1. package/README.md +2 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/lib/entries.d.ts +3 -1
  5. package/dist/lib/entries.d.ts.map +1 -1
  6. package/dist/lib/maintainer-announcements.d.ts.map +1 -1
  7. package/dist/lib/maintainer-announcements.js +7 -15
  8. package/dist/lib/maintainer-announcements.js.map +1 -1
  9. package/dist/lib/openai.d.ts.map +1 -1
  10. package/dist/lib/openai.js +15 -0
  11. package/dist/lib/openai.js.map +1 -1
  12. package/dist/lib/opencode-config-editor.d.ts +6 -0
  13. package/dist/lib/opencode-config-editor.d.ts.map +1 -1
  14. package/dist/lib/opencode-config-editor.js +47 -1
  15. package/dist/lib/opencode-config-editor.js.map +1 -1
  16. package/dist/lib/provider-add-command.d.ts.map +1 -1
  17. package/dist/lib/provider-add-command.js +29 -2
  18. package/dist/lib/provider-add-command.js.map +1 -1
  19. package/dist/lib/provider-add.d.ts.map +1 -1
  20. package/dist/lib/provider-add.js +11 -2
  21. package/dist/lib/provider-add.js.map +1 -1
  22. package/dist/lib/quota-providers-remote.d.ts +6 -1
  23. package/dist/lib/quota-providers-remote.d.ts.map +1 -1
  24. package/dist/lib/quota-providers-remote.js +376 -12
  25. package/dist/lib/quota-providers-remote.js.map +1 -1
  26. package/dist/lib/quota-providers.d.ts +84 -3
  27. package/dist/lib/quota-providers.d.ts.map +1 -1
  28. package/dist/lib/quota-providers.js +561 -24
  29. package/dist/lib/quota-providers.js.map +1 -1
  30. package/dist/lib/quota-state.js +1 -1
  31. package/dist/lib/quota-state.js.map +1 -1
  32. package/dist/plugin.d.ts.map +1 -1
  33. package/dist/plugin.js +16 -12
  34. package/dist/plugin.js.map +1 -1
  35. package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
  36. package/dist/providers/minimax-coding-plan.js +29 -11
  37. package/dist/providers/minimax-coding-plan.js.map +1 -1
  38. package/dist/providers/quota-providers.d.ts.map +1 -1
  39. package/dist/providers/quota-providers.js +4 -1
  40. package/dist/providers/quota-providers.js.map +1 -1
  41. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"quota-providers-remote.d.ts","sourceRoot":"","sources":["../../src/lib/quota-providers-remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAW7E,eAAO,MAAM,6BAA6B,QAAa,CAAC;AACxD,eAAO,MAAM,kCAAkC,MAAM,CAAC;AACtD,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAa5C,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,eAAe,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAE/F,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,eAAe,EAAE,CAAA;CAAE,GAC7C;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAyCtC,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,gCAAgC,GACvC,OAAO,CAAC,2BAA2B,CAAC,CAyBtC;AA6ND,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gCAAgC,EACxC,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,yBAAyB,CAAC,CAgDpC;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAC3C,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBd"}
1
+ {"version":3,"file":"quota-providers-remote.d.ts","sourceRoot":"","sources":["../../src/lib/quota-providers-remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAMV,gCAAgC,EACjC,MAAM,sBAAsB,CAAC;AAgB9B,eAAO,MAAM,6BAA6B,QAAa,CAAC;AACxD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,sBAAsB,OAAQ,CAAC;AAC5C,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAa5C,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,eAAe,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAE/F,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,eAAe,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACnE;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAyCtC,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,gCAAgC,GACvC,OAAO,CAAC,2BAA2B,CAAC,CAyBtC;AA6lBD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gCAAgC,EACxC,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,yBAAyB,CAAC,CAqDpC;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAC3C,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3C,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBd"}
@@ -1,9 +1,14 @@
1
1
  import { createProviderApiKeyResolver, getApiKeyCheckedPaths, getGlobalOpencodeConfigCandidatePaths, } from "./api-key-resolver.js";
2
2
  import { sanitizeSingleLineDisplayText } from "./display-sanitize.js";
3
+ import { JSON_V1_MAX_DISPLAY_CODE_POINTS, JSON_V1_MAX_NUMBER_MAGNITUDE, normalizeJsonV1Timestamp, } from "./quota-providers.js";
3
4
  import { getAuthPaths, readAuthFile } from "./opencode-auth.js";
4
5
  import { REQUEST_TIMEOUT_MS } from "./types.js";
5
6
  export const QUOTA_PROVIDER_MAX_BODY_BYTES = 256 * 1024;
6
- export const QUOTA_PROVIDER_MAX_ACCOUNTING_ROWS = 100;
7
+ export const QUOTA_PROVIDER_MAX_REMOTE_ROWS = 100;
8
+ export const JSON_V1_MAX_RESPONSE_DEPTH = 32;
9
+ export const JSON_V1_MAX_CANDIDATES = 1_600;
10
+ export const JSON_V1_MAX_ENTRIES = 100;
11
+ export const JSON_V1_MAX_DETAILED_ERRORS = 16;
7
12
  export const QUOTA_PROVIDER_CONCURRENCY = 4;
8
13
  const RESULT_TYPES = new Set([
9
14
  "quota",
@@ -125,15 +130,15 @@ async function readBoundedJson(response) {
125
130
  throw new Error("Invalid JSON response");
126
131
  }
127
132
  }
128
- function parseAccountingV1(source, body) {
133
+ function parseQuotaV1(source, body) {
129
134
  if (!isRecord(body) ||
130
135
  !hasOnlyKeys(body, ["version", "entries"]) ||
131
- body.version !== "accounting-v1" ||
136
+ body.version !== "quota-v1" ||
132
137
  !Array.isArray(body.entries)) {
133
- return { success: false, error: "Invalid accounting-v1 response" };
138
+ return { success: false, error: "Invalid quota-v1 response" };
134
139
  }
135
- if (body.entries.length < 1 || body.entries.length > QUOTA_PROVIDER_MAX_ACCOUNTING_ROWS) {
136
- return { success: false, error: "Invalid accounting-v1 response" };
140
+ if (body.entries.length < 1 || body.entries.length > QUOTA_PROVIDER_MAX_REMOTE_ROWS) {
141
+ return { success: false, error: "Invalid quota-v1 response" };
137
142
  }
138
143
  const entries = [];
139
144
  for (const raw of body.entries) {
@@ -149,7 +154,7 @@ function parseAccountingV1(source, body) {
149
154
  "resetTimeIso",
150
155
  "observedAtIso",
151
156
  ])) {
152
- return { success: false, error: "Invalid accounting-v1 response" };
157
+ return { success: false, error: "Invalid quota-v1 response" };
153
158
  }
154
159
  const name = boundedDisplayText(raw.name, 80);
155
160
  const resultType = typeof raw.resultType === "string" && RESULT_TYPES.has(raw.resultType)
@@ -173,7 +178,7 @@ function parseAccountingV1(source, body) {
173
178
  (raw.right !== undefined && right === null) ||
174
179
  resetTimeIso === null ||
175
180
  observedAtIso === null) {
176
- return { success: false, error: "Invalid accounting-v1 response" };
181
+ return { success: false, error: "Invalid quota-v1 response" };
177
182
  }
178
183
  const common = {
179
184
  accounting: accountingMetadata(resultType, observedAtIso),
@@ -197,10 +202,364 @@ function parseAccountingV1(source, body) {
197
202
  entries.push({ ...common, kind: "value", value });
198
203
  continue;
199
204
  }
200
- return { success: false, error: "Invalid accounting-v1 response" };
205
+ return { success: false, error: "Invalid quota-v1 response" };
201
206
  }
202
207
  return { success: true, entries };
203
208
  }
209
+ function isJsonV1ResponseDepthValid(value) {
210
+ if (!value || typeof value !== "object")
211
+ return true;
212
+ const stack = [{ value, depth: 1 }];
213
+ while (stack.length > 0) {
214
+ const current = stack.pop();
215
+ if (current.depth > JSON_V1_MAX_RESPONSE_DEPTH)
216
+ return false;
217
+ const children = Array.isArray(current.value) ? current.value : Object.values(current.value);
218
+ for (const child of children) {
219
+ if (child && typeof child === "object") {
220
+ stack.push({ value: child, depth: current.depth + 1 });
221
+ }
222
+ }
223
+ }
224
+ return true;
225
+ }
226
+ function resolveJsonV1Path(root, path) {
227
+ let current = root;
228
+ for (let index = 0; index < path.length; index += 1) {
229
+ if (!isRecord(current))
230
+ return { state: "wrong-type" };
231
+ const segment = path[index];
232
+ if (!Object.prototype.hasOwnProperty.call(current, segment))
233
+ return { state: "missing" };
234
+ current = current[segment];
235
+ if (current === null)
236
+ return { state: "null" };
237
+ if (index < path.length - 1 && !isRecord(current))
238
+ return { state: "wrong-type" };
239
+ }
240
+ return { state: "value", value: current };
241
+ }
242
+ function jsonV1SourceValue(row, source) {
243
+ if ("literal" in source) {
244
+ return source.literal === null ? { state: "null" } : { state: "value", value: source.literal };
245
+ }
246
+ return resolveJsonV1Path(row, source.path);
247
+ }
248
+ function jsonV1ResolutionIssue(resolution) {
249
+ switch (resolution.state) {
250
+ case "missing":
251
+ return "was missing";
252
+ case "null":
253
+ return "was null";
254
+ case "wrong-type":
255
+ return "had wrong type";
256
+ }
257
+ }
258
+ function resolveJsonV1Number(row, source) {
259
+ const resolution = jsonV1SourceValue(row, source);
260
+ if (resolution.state !== "value") {
261
+ return { ok: false, issue: jsonV1ResolutionIssue(resolution) };
262
+ }
263
+ if (typeof resolution.value !== "number" || !Number.isFinite(resolution.value)) {
264
+ return { ok: false, issue: "had wrong type" };
265
+ }
266
+ if (Math.abs(resolution.value) > JSON_V1_MAX_NUMBER_MAGNITUDE) {
267
+ return { ok: false, issue: "exceeded the numeric magnitude limit" };
268
+ }
269
+ const value = "path" in source && source.divideBy !== undefined
270
+ ? resolution.value / source.divideBy
271
+ : resolution.value;
272
+ return Number.isFinite(value)
273
+ ? { ok: true, value }
274
+ : { ok: false, issue: "did not resolve to a finite number" };
275
+ }
276
+ function resolveJsonV1Text(row, source) {
277
+ const resolution = jsonV1SourceValue(row, source);
278
+ if (resolution.state !== "value") {
279
+ return { ok: false, issue: jsonV1ResolutionIssue(resolution) };
280
+ }
281
+ if (typeof resolution.value !== "string") {
282
+ return { ok: false, issue: "had wrong type" };
283
+ }
284
+ const normalized = boundedDisplayText(resolution.value, JSON_V1_MAX_DISPLAY_CODE_POINTS);
285
+ return normalized
286
+ ? { ok: true, value: normalized }
287
+ : { ok: false, issue: "did not resolve to bounded display text" };
288
+ }
289
+ function resolveJsonV1TimestampSource(row, source) {
290
+ const resolution = jsonV1SourceValue(row, source);
291
+ if (resolution.state !== "value") {
292
+ return { ok: false, issue: jsonV1ResolutionIssue(resolution) };
293
+ }
294
+ const normalized = normalizeJsonV1Timestamp(resolution.value, source.encoding);
295
+ return normalized
296
+ ? { ok: true, value: normalized }
297
+ : { ok: false, issue: "did not resolve to a valid timestamp" };
298
+ }
299
+ function jsonV1CandidateError(mappingIndex, field, issue, rowIndex) {
300
+ return `adapter.mappings[${mappingIndex}].${field} ${issue} at row ${rowIndex}`;
301
+ }
302
+ function formatJsonV1Value(value, mapping) {
303
+ const text = String(value);
304
+ if (!mapping.unit)
305
+ return text;
306
+ return mapping.unitPosition === "prefix" ? `${mapping.unit}${text}` : `${text} ${mapping.unit}`;
307
+ }
308
+ function formatJsonV1Pair(left, right, mapping) {
309
+ const pair = `${String(left)}/${String(right)}`;
310
+ if (!mapping.unit)
311
+ return pair;
312
+ return mapping.unitPosition === "prefix"
313
+ ? `${mapping.unit}${String(left)}/${mapping.unit}${String(right)}`
314
+ : `${pair} ${mapping.unit}`;
315
+ }
316
+ function jsonV1DerivedPercentageIssue(value) {
317
+ if (!Number.isFinite(value))
318
+ return "produced a non-finite percentage";
319
+ if (Math.abs(value) > JSON_V1_MAX_NUMBER_MAGNITUDE) {
320
+ return "produced a percentage beyond the numeric magnitude limit";
321
+ }
322
+ return null;
323
+ }
324
+ function mapJsonV1Candidate(source, row, rowIndex, mapping, mappingIndex) {
325
+ const fail = (field, issue) => ({
326
+ error: jsonV1CandidateError(mappingIndex, field, issue, rowIndex),
327
+ });
328
+ let resetTimeIso;
329
+ if (mapping.resetTime) {
330
+ const resolved = resolveJsonV1TimestampSource(row, mapping.resetTime);
331
+ if (!resolved.ok)
332
+ return fail("resetTime", resolved.issue);
333
+ resetTimeIso = resolved.value;
334
+ }
335
+ let observedAtIso;
336
+ if (mapping.observedTime) {
337
+ const resolved = resolveJsonV1TimestampSource(row, mapping.observedTime);
338
+ if (!resolved.ok)
339
+ return fail("observedTime", resolved.issue);
340
+ observedAtIso = resolved.value;
341
+ }
342
+ const common = {
343
+ accounting: accountingMetadata(mapping.resultType, observedAtIso),
344
+ name: `${source.label} ${mapping.name}`,
345
+ group: source.label,
346
+ ...(mapping.label ? { label: mapping.label } : {}),
347
+ ...(resetTimeIso ? { resetTimeIso } : {}),
348
+ };
349
+ switch (mapping.metric.type) {
350
+ case "percentage": {
351
+ const percentage = resolveJsonV1Number(row, mapping.metric.percentage);
352
+ if (!percentage.ok)
353
+ return fail("metric.percentage", percentage.issue);
354
+ if (mapping.metric.meaning === "remaining" && percentage.value > 100) {
355
+ return fail("metric.percentage", "must not exceed 100 for remaining meaning");
356
+ }
357
+ if (mapping.metric.meaning === "used" && percentage.value < 0) {
358
+ return fail("metric.percentage", "must be non-negative for used meaning");
359
+ }
360
+ return {
361
+ entry: {
362
+ ...common,
363
+ kind: "percent",
364
+ percentRemaining: mapping.metric.meaning === "remaining" ? percentage.value : 100 - percentage.value,
365
+ },
366
+ };
367
+ }
368
+ case "used-limit": {
369
+ const used = resolveJsonV1Number(row, mapping.metric.used);
370
+ if (!used.ok)
371
+ return fail("metric.used", used.issue);
372
+ const limit = resolveJsonV1Number(row, mapping.metric.limit);
373
+ if (!limit.ok)
374
+ return fail("metric.limit", limit.issue);
375
+ if (used.value < 0)
376
+ return fail("metric.used", "must be non-negative");
377
+ if (limit.value <= 0)
378
+ return fail("metric.limit", "must be greater than zero");
379
+ const percentRemaining = ((limit.value - used.value) / limit.value) * 100;
380
+ const percentageIssue = jsonV1DerivedPercentageIssue(percentRemaining);
381
+ if (percentageIssue)
382
+ return fail("metric.limit", percentageIssue);
383
+ return {
384
+ entry: {
385
+ ...common,
386
+ kind: "percent",
387
+ percentRemaining,
388
+ right: formatJsonV1Pair(used.value, limit.value, mapping),
389
+ },
390
+ };
391
+ }
392
+ case "remaining-limit": {
393
+ const remaining = resolveJsonV1Number(row, mapping.metric.remaining);
394
+ if (!remaining.ok)
395
+ return fail("metric.remaining", remaining.issue);
396
+ const limit = resolveJsonV1Number(row, mapping.metric.limit);
397
+ if (!limit.ok)
398
+ return fail("metric.limit", limit.issue);
399
+ if (limit.value <= 0)
400
+ return fail("metric.limit", "must be greater than zero");
401
+ if (remaining.value > limit.value) {
402
+ return fail("metric.remaining", "must not exceed limit");
403
+ }
404
+ const percentRemaining = (remaining.value / limit.value) * 100;
405
+ const percentageIssue = jsonV1DerivedPercentageIssue(percentRemaining);
406
+ if (percentageIssue)
407
+ return fail("metric.limit", percentageIssue);
408
+ return {
409
+ entry: {
410
+ ...common,
411
+ kind: "percent",
412
+ percentRemaining,
413
+ right: formatJsonV1Pair(remaining.value, limit.value, mapping),
414
+ },
415
+ };
416
+ }
417
+ case "spend-budget": {
418
+ const spend = resolveJsonV1Number(row, mapping.metric.spend);
419
+ if (!spend.ok)
420
+ return fail("metric.spend", spend.issue);
421
+ const budget = resolveJsonV1Number(row, mapping.metric.budget);
422
+ if (!budget.ok)
423
+ return fail("metric.budget", budget.issue);
424
+ if (spend.value < 0)
425
+ return fail("metric.spend", "must be non-negative");
426
+ if (budget.value <= 0)
427
+ return fail("metric.budget", "must be greater than zero");
428
+ const percentRemaining = ((budget.value - spend.value) / budget.value) * 100;
429
+ const percentageIssue = jsonV1DerivedPercentageIssue(percentRemaining);
430
+ if (percentageIssue)
431
+ return fail("metric.budget", percentageIssue);
432
+ return {
433
+ entry: {
434
+ ...common,
435
+ kind: "percent",
436
+ percentRemaining,
437
+ right: formatJsonV1Pair(spend.value, budget.value, mapping),
438
+ },
439
+ };
440
+ }
441
+ case "remaining-budget": {
442
+ const remaining = resolveJsonV1Number(row, mapping.metric.remaining);
443
+ if (!remaining.ok)
444
+ return fail("metric.remaining", remaining.issue);
445
+ const budget = resolveJsonV1Number(row, mapping.metric.budget);
446
+ if (!budget.ok)
447
+ return fail("metric.budget", budget.issue);
448
+ if (budget.value <= 0)
449
+ return fail("metric.budget", "must be greater than zero");
450
+ if (remaining.value > budget.value) {
451
+ return fail("metric.remaining", "must not exceed budget");
452
+ }
453
+ const percentRemaining = (remaining.value / budget.value) * 100;
454
+ const percentageIssue = jsonV1DerivedPercentageIssue(percentRemaining);
455
+ if (percentageIssue)
456
+ return fail("metric.budget", percentageIssue);
457
+ return {
458
+ entry: {
459
+ ...common,
460
+ kind: "percent",
461
+ percentRemaining,
462
+ right: formatJsonV1Pair(remaining.value, budget.value, mapping),
463
+ },
464
+ };
465
+ }
466
+ case "value": {
467
+ const value = resolveJsonV1Number(row, mapping.metric.value);
468
+ if (!value.ok)
469
+ return fail("metric.value", value.issue);
470
+ if (!["remaining", "balance"].includes(mapping.metric.valueType) && value.value < 0) {
471
+ return fail("metric.value", "must be non-negative");
472
+ }
473
+ return {
474
+ entry: {
475
+ ...common,
476
+ kind: "value",
477
+ value: formatJsonV1Value(value.value, mapping),
478
+ },
479
+ };
480
+ }
481
+ case "status": {
482
+ const value = resolveJsonV1Text(row, mapping.metric.value);
483
+ if (!value.ok)
484
+ return fail("metric.value", value.issue);
485
+ return { entry: { ...common, kind: "value", value: value.value } };
486
+ }
487
+ }
488
+ }
489
+ function parseJsonV1(source, body) {
490
+ const invalid = (message) => ({
491
+ success: false,
492
+ error: `Invalid json-v1 response: ${message}`,
493
+ });
494
+ if (!isJsonV1ResponseDepthValid(body)) {
495
+ return invalid(`nesting depth exceeded ${JSON_V1_MAX_RESPONSE_DEPTH}`);
496
+ }
497
+ let rows;
498
+ if (source.adapter.rowsPath) {
499
+ if (!isRecord(body))
500
+ return invalid("adapter.rowsPath requires an object root");
501
+ const resolved = resolveJsonV1Path(body, source.adapter.rowsPath);
502
+ if (resolved.state !== "value") {
503
+ return invalid(`adapter.rowsPath ${jsonV1ResolutionIssue(resolved)}`);
504
+ }
505
+ if (!Array.isArray(resolved.value)) {
506
+ return invalid("adapter.rowsPath did not resolve to an array");
507
+ }
508
+ rows = resolved.value;
509
+ }
510
+ else if (Array.isArray(body)) {
511
+ rows = body;
512
+ }
513
+ else if (isRecord(body)) {
514
+ rows = [body];
515
+ }
516
+ else {
517
+ return invalid("expected an object or array root");
518
+ }
519
+ if (rows.length < 1 || rows.length > QUOTA_PROVIDER_MAX_REMOTE_ROWS) {
520
+ return invalid(`selected rows must contain 1-${QUOTA_PROVIDER_MAX_REMOTE_ROWS} elements`);
521
+ }
522
+ if (rows.length * source.adapter.mappings.length > JSON_V1_MAX_CANDIDATES) {
523
+ return invalid(`candidate count exceeded ${JSON_V1_MAX_CANDIDATES}`);
524
+ }
525
+ const entries = [];
526
+ const rowErrors = [];
527
+ let errorCount = 0;
528
+ const recordError = (error) => {
529
+ errorCount += 1;
530
+ if (rowErrors.length < JSON_V1_MAX_DETAILED_ERRORS)
531
+ rowErrors.push(error);
532
+ };
533
+ for (let rowIndex = 0; rowIndex < rows.length; rowIndex += 1) {
534
+ const row = rows[rowIndex];
535
+ for (let mappingIndex = 0; mappingIndex < source.adapter.mappings.length; mappingIndex += 1) {
536
+ if (!isRecord(row)) {
537
+ recordError(jsonV1CandidateError(mappingIndex, "metric", "requires an object row", rowIndex));
538
+ continue;
539
+ }
540
+ const mapped = mapJsonV1Candidate(source, row, rowIndex, source.adapter.mappings[mappingIndex], mappingIndex);
541
+ if ("error" in mapped) {
542
+ recordError(mapped.error);
543
+ continue;
544
+ }
545
+ entries.push(mapped.entry);
546
+ if (entries.length > JSON_V1_MAX_ENTRIES) {
547
+ return invalid(`more than ${JSON_V1_MAX_ENTRIES} entries were produced`);
548
+ }
549
+ }
550
+ }
551
+ if (entries.length === 0) {
552
+ return invalid(rowErrors[0] ?? "no mappings produced entries");
553
+ }
554
+ if (errorCount > rowErrors.length) {
555
+ rowErrors.push("Additional json-v1 mapping errors omitted");
556
+ }
557
+ return {
558
+ success: true,
559
+ entries,
560
+ ...(rowErrors.length > 0 ? { rowErrors } : {}),
561
+ };
562
+ }
204
563
  function parseOpenRouterKeyV1(source, body) {
205
564
  if (!isRecord(body) || !isRecord(body.data)) {
206
565
  return { success: false, error: "Invalid openrouter-key-v1 response" };
@@ -275,9 +634,14 @@ export async function fetchRemoteQuotaProvider(source, apiKey, requestTimeoutMs)
275
634
  return { success: false, error: `HTTP ${response.status}` };
276
635
  }
277
636
  const body = await readBoundedJson(response);
278
- return source.format === "accounting-v1"
279
- ? parseAccountingV1(source, body)
280
- : parseOpenRouterKeyV1(source, body);
637
+ switch (source.format) {
638
+ case "quota-v1":
639
+ return parseQuotaV1(source, body);
640
+ case "openrouter-key-v1":
641
+ return parseOpenRouterKeyV1(source, body);
642
+ case "json-v1":
643
+ return parseJsonV1(source, body);
644
+ }
281
645
  }
282
646
  catch (error) {
283
647
  if (controller.signal.aborted || (error instanceof Error && error.name === "AbortError")) {
@@ -1 +1 @@
1
- {"version":3,"file":"quota-providers-remote.js","sourceRoot":"","sources":["../../src/lib/quota-providers-remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota-providers-remote.js","sourceRoot":"","sources":["../../src/lib/quota-providers-remote.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export declare const QUOTA_PROVIDER_REMOTE_FORMATS: readonly ["accounting-v1", "openrouter-key-v1"];
1
+ import type { AccountingResultType } from "./entries.js";
2
+ export declare const QUOTA_PROVIDER_REMOTE_FORMATS: readonly ["quota-v1", "openrouter-key-v1", "json-v1"];
2
3
  export declare const QUOTA_PROVIDER_MODES: readonly ["remote-api", "local-estimate"];
3
4
  export declare const QUOTA_PROVIDER_WINDOW_TYPES: readonly ["utc-day", "rolling"];
4
5
  export declare const QUOTA_PROVIDERS_AGGREGATE_ID = "quota-providers";
@@ -22,6 +23,68 @@ export declare function selectEligibleQuotaProviderDefinitions(params: {
22
23
  export type QuotaProviderRemoteFormat = (typeof QUOTA_PROVIDER_REMOTE_FORMATS)[number];
23
24
  export type QuotaProviderMode = (typeof QUOTA_PROVIDER_MODES)[number];
24
25
  export type QuotaProviderWindowType = (typeof QUOTA_PROVIDER_WINDOW_TYPES)[number];
26
+ export type JsonV1Path = string[];
27
+ export type JsonV1NumberSource = {
28
+ path: JsonV1Path;
29
+ divideBy?: 100 | 1_000 | 1_000_000;
30
+ } | {
31
+ literal: number;
32
+ };
33
+ export type JsonV1TextSource = {
34
+ path: JsonV1Path;
35
+ } | {
36
+ literal: string;
37
+ };
38
+ export type JsonV1TimestampEncoding = "iso-8601" | "unix-seconds" | "unix-milliseconds";
39
+ export type JsonV1TimestampSource = {
40
+ path: JsonV1Path;
41
+ encoding: JsonV1TimestampEncoding;
42
+ } | {
43
+ literal: string | number;
44
+ encoding: JsonV1TimestampEncoding;
45
+ };
46
+ export type JsonV1Metric = {
47
+ type: "percentage";
48
+ percentage: JsonV1NumberSource;
49
+ meaning: "remaining" | "used";
50
+ } | {
51
+ type: "used-limit";
52
+ used: JsonV1NumberSource;
53
+ limit: JsonV1NumberSource;
54
+ } | {
55
+ type: "remaining-limit";
56
+ remaining: JsonV1NumberSource;
57
+ limit: JsonV1NumberSource;
58
+ } | {
59
+ type: "spend-budget";
60
+ spend: JsonV1NumberSource;
61
+ budget: JsonV1NumberSource;
62
+ } | {
63
+ type: "remaining-budget";
64
+ remaining: JsonV1NumberSource;
65
+ budget: JsonV1NumberSource;
66
+ } | {
67
+ type: "value";
68
+ valueType: "used" | "limit" | "remaining" | "balance" | "spend" | "budget";
69
+ value: JsonV1NumberSource;
70
+ } | {
71
+ type: "status";
72
+ value: JsonV1TextSource;
73
+ };
74
+ export interface JsonV1Mapping {
75
+ resultType: AccountingResultType;
76
+ name: string;
77
+ label?: string;
78
+ unit?: string;
79
+ unitPosition?: "prefix" | "suffix";
80
+ resetTime?: JsonV1TimestampSource;
81
+ observedTime?: JsonV1TimestampSource;
82
+ metric: JsonV1Metric;
83
+ }
84
+ export interface JsonV1Adapter {
85
+ rowsPath?: JsonV1Path;
86
+ mappings: JsonV1Mapping[];
87
+ }
25
88
  interface QuotaProviderDefinitionBase {
26
89
  id: string;
27
90
  /** Effective OpenCode provider id. Input omits this when it is the same as id. */
@@ -32,13 +95,19 @@ interface QuotaProviderDefinitionBase {
32
95
  /** Exact OpenCode model ids, without a provider prefix. Omission covers the provider. */
33
96
  modelIds?: string[];
34
97
  }
35
- export interface RemoteApiQuotaProviderDefinition extends QuotaProviderDefinitionBase {
98
+ interface RemoteApiQuotaProviderDefinitionBase extends QuotaProviderDefinitionBase {
36
99
  mode: "remote-api";
37
100
  /** Canonical absolute HTTPS URL, or loopback HTTP URL. */
38
101
  url: string;
39
- format: QuotaProviderRemoteFormat;
40
102
  apiKeyEnv?: string;
41
103
  }
104
+ export type RemoteApiQuotaProviderDefinition = (RemoteApiQuotaProviderDefinitionBase & {
105
+ format: "quota-v1" | "openrouter-key-v1";
106
+ adapter?: never;
107
+ }) | (RemoteApiQuotaProviderDefinitionBase & {
108
+ format: "json-v1";
109
+ adapter: JsonV1Adapter;
110
+ });
42
111
  export interface LocalEstimateWindow {
43
112
  id: string;
44
113
  label: string;
@@ -69,6 +138,18 @@ export type QuotaProvidersValidationResult = {
69
138
  value?: undefined;
70
139
  issues: QuotaProviderValidationIssue[];
71
140
  };
141
+ export declare const JSON_V1_MAX_MAPPINGS = 16;
142
+ export declare const JSON_V1_MAX_ADAPTER_DEPTH = 8;
143
+ export declare const JSON_V1_MAX_ADAPTER_OBJECTS = 128;
144
+ export declare const JSON_V1_MAX_ADAPTER_PROPERTIES = 384;
145
+ export declare const JSON_V1_MAX_ADAPTER_ARRAY_ELEMENTS = 640;
146
+ export declare const JSON_V1_MAX_PATH_SEGMENTS = 8;
147
+ export declare const JSON_V1_MAX_PATH_SEGMENT_CODE_POINTS = 64;
148
+ export declare const JSON_V1_MAX_STATIC_NAME_CODE_POINTS = 80;
149
+ export declare const JSON_V1_MAX_STATIC_UNIT_CODE_POINTS = 32;
150
+ export declare const JSON_V1_MAX_DISPLAY_CODE_POINTS = 160;
151
+ export declare const JSON_V1_MAX_NUMBER_MAGNITUDE = 1000000000000000;
152
+ export declare function normalizeJsonV1Timestamp(value: unknown, encoding: JsonV1TimestampEncoding): string | null;
72
153
  /** Validate and normalize the complete global-only quotaProviders array atomically. */
73
154
  export declare function validateQuotaProviders(value: unknown): QuotaProvidersValidationResult;
74
155
  export declare function cloneQuotaProviders(definitions: readonly QuotaProviderDefinition[]): QuotaProviderDefinition[];