oc-codex-multi-auth 6.22.0 → 6.24.0

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 (120) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +793 -729
  3. package/assets/icon.svg +7 -7
  4. package/assets/opencode-logo-ornate-dark.svg +18 -18
  5. package/assets/readme-hero.svg +31 -31
  6. package/config/README.md +197 -177
  7. package/config/minimal-opencode.json +14 -14
  8. package/config/opencode-legacy.json +1346 -1496
  9. package/config/opencode-modern.json +466 -555
  10. package/dist/index.d.ts +7 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +37 -19
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/accounts/warm-request.d.ts.map +1 -1
  15. package/dist/lib/accounts/warm-request.js +9 -11
  16. package/dist/lib/accounts/warm-request.js.map +1 -1
  17. package/dist/lib/codex-usage.d.ts +35 -0
  18. package/dist/lib/codex-usage.d.ts.map +1 -1
  19. package/dist/lib/codex-usage.js +51 -0
  20. package/dist/lib/codex-usage.js.map +1 -1
  21. package/dist/lib/config.d.ts +5 -3
  22. package/dist/lib/config.d.ts.map +1 -1
  23. package/dist/lib/config.js +2 -0
  24. package/dist/lib/config.js.map +1 -1
  25. package/dist/lib/constants.d.ts +13 -0
  26. package/dist/lib/constants.d.ts.map +1 -1
  27. package/dist/lib/constants.js +13 -0
  28. package/dist/lib/constants.js.map +1 -1
  29. package/dist/lib/context-overflow.js +10 -10
  30. package/dist/lib/desktop-notifications.js +6 -6
  31. package/dist/lib/oauth-success.js +202 -202
  32. package/dist/lib/opencode-v2-provider.d.ts +2 -0
  33. package/dist/lib/opencode-v2-provider.d.ts.map +1 -0
  34. package/dist/lib/opencode-v2-provider.js +4 -0
  35. package/dist/lib/opencode-v2-provider.js.map +1 -0
  36. package/dist/lib/opencode-v2-rpc.d.ts +27 -0
  37. package/dist/lib/opencode-v2-rpc.d.ts.map +1 -0
  38. package/dist/lib/opencode-v2-rpc.js +16 -0
  39. package/dist/lib/opencode-v2-rpc.js.map +1 -0
  40. package/dist/lib/opencode-v2-status.d.ts +17 -0
  41. package/dist/lib/opencode-v2-status.d.ts.map +1 -0
  42. package/dist/lib/opencode-v2-status.js +91 -0
  43. package/dist/lib/opencode-v2-status.js.map +1 -0
  44. package/dist/lib/opencode-v2-tui.d.ts +4 -0
  45. package/dist/lib/opencode-v2-tui.d.ts.map +1 -0
  46. package/dist/lib/opencode-v2-tui.js +105 -0
  47. package/dist/lib/opencode-v2-tui.js.map +1 -0
  48. package/dist/lib/opencode-v2.d.ts +11 -0
  49. package/dist/lib/opencode-v2.d.ts.map +1 -0
  50. package/dist/lib/opencode-v2.js +235 -0
  51. package/dist/lib/opencode-v2.js.map +1 -0
  52. package/dist/lib/prompts/codex-opencode-bridge.js +67 -67
  53. package/dist/lib/prompts/codex.d.ts +12 -2
  54. package/dist/lib/prompts/codex.d.ts.map +1 -1
  55. package/dist/lib/prompts/codex.js +126 -91
  56. package/dist/lib/prompts/codex.js.map +1 -1
  57. package/dist/lib/quota-capacity.d.ts +4 -0
  58. package/dist/lib/quota-capacity.d.ts.map +1 -0
  59. package/dist/lib/quota-capacity.js +45 -0
  60. package/dist/lib/quota-capacity.js.map +1 -0
  61. package/dist/lib/quota-overview.d.ts +13 -27
  62. package/dist/lib/quota-overview.d.ts.map +1 -1
  63. package/dist/lib/quota-overview.js +59 -99
  64. package/dist/lib/quota-overview.js.map +1 -1
  65. package/dist/lib/quota-recovery.d.ts +5 -0
  66. package/dist/lib/quota-recovery.d.ts.map +1 -0
  67. package/dist/lib/quota-recovery.js +66 -0
  68. package/dist/lib/quota-recovery.js.map +1 -0
  69. package/dist/lib/request/fetch-helpers.d.ts +1 -1
  70. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  71. package/dist/lib/request/fetch-helpers.js +85 -51
  72. package/dist/lib/request/fetch-helpers.js.map +1 -1
  73. package/dist/lib/request/helpers/model-map.d.ts +10 -0
  74. package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
  75. package/dist/lib/request/helpers/model-map.js +39 -11
  76. package/dist/lib/request/helpers/model-map.js.map +1 -1
  77. package/dist/lib/request/helpers/responses-lite.d.ts.map +1 -1
  78. package/dist/lib/request/helpers/responses-lite.js +4 -1
  79. package/dist/lib/request/helpers/responses-lite.js.map +1 -1
  80. package/dist/lib/request/request-transformer.d.ts.map +1 -1
  81. package/dist/lib/request/request-transformer.js +37 -15
  82. package/dist/lib/request/request-transformer.js.map +1 -1
  83. package/dist/lib/schemas.d.ts +9 -1
  84. package/dist/lib/schemas.d.ts.map +1 -1
  85. package/dist/lib/schemas.js +3 -2
  86. package/dist/lib/schemas.js.map +1 -1
  87. package/dist/lib/storage/state.d.ts +8 -0
  88. package/dist/lib/storage/state.d.ts.map +1 -1
  89. package/dist/lib/storage/state.js +47 -20
  90. package/dist/lib/storage/state.js.map +1 -1
  91. package/dist/lib/tools/codex-limits.d.ts.map +1 -1
  92. package/dist/lib/tools/codex-limits.js +49 -3
  93. package/dist/lib/tools/codex-limits.js.map +1 -1
  94. package/dist/lib/tui-quota-cache.d.ts +1 -0
  95. package/dist/lib/tui-quota-cache.d.ts.map +1 -1
  96. package/dist/lib/tui-quota-cache.js +2 -0
  97. package/dist/lib/tui-quota-cache.js.map +1 -1
  98. package/dist/lib/tui-quota-overview.d.ts.map +1 -1
  99. package/dist/lib/tui-quota-overview.js +4 -0
  100. package/dist/lib/tui-quota-overview.js.map +1 -1
  101. package/dist/lib/tui-status-slot.d.ts +3 -0
  102. package/dist/lib/tui-status-slot.d.ts.map +1 -0
  103. package/dist/lib/tui-status-slot.js +27 -0
  104. package/dist/lib/tui-status-slot.js.map +1 -0
  105. package/dist/lib/tui-status.d.ts +1 -0
  106. package/dist/lib/tui-status.d.ts.map +1 -1
  107. package/dist/lib/tui-status.js +1 -0
  108. package/dist/lib/tui-status.js.map +1 -1
  109. package/dist/tui.d.ts +10 -3
  110. package/dist/tui.d.ts.map +1 -1
  111. package/dist/tui.js +22 -1
  112. package/dist/tui.js.map +1 -1
  113. package/package.json +157 -155
  114. package/scripts/audit-dev-allowlist.js +114 -114
  115. package/scripts/clean-dist.js +27 -27
  116. package/scripts/copy-oauth-success.js +47 -47
  117. package/scripts/install-oc-codex-multi-auth-core.js +2092 -2003
  118. package/scripts/install-oc-codex-multi-auth.js +37 -37
  119. package/scripts/test-all-models.sh +260 -260
  120. package/scripts/validate-model-map.sh +97 -97
@@ -28,6 +28,9 @@
28
28
  * whole rendering can be exercised without a network, a clock or a terminal.
29
29
  */
30
30
  import { maskEmailForDisplay } from "./account-display.js";
31
+ import { computeWeightedLeftPercent, resolveGoverningWindow } from "./quota-capacity.js";
32
+ import { resolveNextQuotaRecovery, resolveQuotaRecoveryEvents } from "./quota-recovery.js";
33
+ export { computeWeightedLeftPercent, resolveGoverningWindow } from "./quota-capacity.js";
31
34
  import { formatPlanMultiplier, getPlanWeight } from "./plan-allotment.js";
32
35
  import { formatQuotaPercent, toQuotaDisplayPercent, } from "./quota-display.js";
33
36
  const MS_PER_MINUTE = 60_000;
@@ -46,8 +49,6 @@ const MS_PER_DAY = 24 * MS_PER_HOUR;
46
49
  * not the same situation.
47
50
  */
48
51
  export const OVERVIEW_RESET_LEFT_PERCENT = 25;
49
- /** Smallest pool-total movement worth spending characters on. */
50
- const MIN_RECOVERY_DELTA_PERCENT = 1;
51
52
  function isPercent(value) {
52
53
  return typeof value === "number" && Number.isFinite(value);
53
54
  }
@@ -66,59 +67,6 @@ export function formatCompactDuration(ms) {
66
67
  return `${Math.floor(ms / MS_PER_HOUR)}h`;
67
68
  return `${Math.max(1, Math.floor(ms / MS_PER_MINUTE))}m`;
68
69
  }
69
- /**
70
- * The window that decides what an account can still do.
71
- *
72
- * An account reports several windows at once - typically a 5-hour and a weekly
73
- * one - and the one with the least headroom is the one that stops a request,
74
- * so it is the one the account is described by. On a tie the window that
75
- * blocks for longer governs: two windows both fully spent are not equally
76
- * costly when one returns in four hours and the other in three days.
77
- */
78
- export function resolveGoverningWindow(account) {
79
- let governing;
80
- for (const window of account.windows) {
81
- if (!isPercent(window.leftPercent))
82
- continue;
83
- if (!governing) {
84
- governing = window;
85
- continue;
86
- }
87
- const governingLeft = governing.leftPercent ?? 100;
88
- if (window.leftPercent < governingLeft) {
89
- governing = window;
90
- continue;
91
- }
92
- if (window.leftPercent === governingLeft &&
93
- isPercent(window.resetAtMs) &&
94
- (!isPercent(governing.resetAtMs) || window.resetAtMs > governing.resetAtMs)) {
95
- governing = window;
96
- }
97
- }
98
- return governing;
99
- }
100
- /**
101
- * Weighted mean headroom across the pool, or `undefined` when no account
102
- * reported a readable window.
103
- *
104
- * Accounts with no readable window are left out rather than counted as full:
105
- * a quota we could not read is not capacity we know we have.
106
- */
107
- export function computeWeightedLeftPercent(accounts) {
108
- let weighted = 0;
109
- let totalWeight = 0;
110
- for (const account of accounts) {
111
- const governing = resolveGoverningWindow(account);
112
- if (!governing || !isPercent(governing.leftPercent))
113
- continue;
114
- const weight = getPlanWeight(account.planType);
115
- if (!Number.isFinite(weight) || weight <= 0)
116
- continue;
117
- weighted += weight * governing.leftPercent;
118
- totalWeight += weight;
119
- }
120
- return totalWeight > 0 ? Math.round(weighted / totalWeight) : undefined;
121
- }
122
70
  /**
123
71
  * What the pool the percentage is taken over adds up to, in 1x seats.
124
72
  *
@@ -150,36 +98,7 @@ export function computePoolAllotment(accounts) {
150
98
  * arrive. Movement below one point is dropped rather than rendered as `+0%`.
151
99
  */
152
100
  export function resolveQuotaOverviewRecovery(accounts, now = Date.now()) {
153
- const current = computeWeightedLeftPercent(accounts);
154
- if (current === undefined)
155
- return undefined;
156
- let earliest;
157
- for (const account of accounts) {
158
- for (const window of account.windows) {
159
- if (!isPercent(window.leftPercent) || window.leftPercent >= 100)
160
- continue;
161
- const resetAtMs = window.resetAtMs;
162
- if (!isPercent(resetAtMs) || resetAtMs <= now)
163
- continue;
164
- if (earliest === undefined || resetAtMs < earliest)
165
- earliest = resetAtMs;
166
- }
167
- }
168
- if (earliest === undefined)
169
- return undefined;
170
- const refilled = accounts.map((account) => ({
171
- ...account,
172
- windows: account.windows.map((window) => isPercent(window.resetAtMs) && window.resetAtMs <= earliest
173
- ? { ...window, leftPercent: 100 }
174
- : window),
175
- }));
176
- const recovered = computeWeightedLeftPercent(refilled);
177
- if (recovered === undefined)
178
- return undefined;
179
- const deltaPercent = recovered - current;
180
- if (deltaPercent < MIN_RECOVERY_DELTA_PERCENT)
181
- return undefined;
182
- return { deltaPercent, atMs: earliest };
101
+ return resolveNextQuotaRecovery(accounts, now);
183
102
  }
184
103
  /**
185
104
  * Whether nothing in the pool has capacity left.
@@ -326,6 +245,14 @@ function resolveResetCredits(account) {
326
245
  ? Math.trunc(credits)
327
246
  : 0;
328
247
  }
248
+ function resolveApplicableResetCredits(account) {
249
+ const applicable = account.resetCreditsApplicable;
250
+ if (applicable === null)
251
+ return 0;
252
+ if (applicable !== undefined)
253
+ return Math.min(resolveResetCredits(account), applicable);
254
+ return (governingLeftPercent(account) ?? 100) <= 0 ? resolveResetCredits(account) : 0;
255
+ }
329
256
  function shouldPrintReset(leftPercent, resetTimes) {
330
257
  if (resetTimes === "never")
331
258
  return false;
@@ -429,6 +356,23 @@ function formatRecovery(recovery, options) {
429
356
  const sign = options.mode === "used" ? "-" : "+";
430
357
  return `${sign}${recovery.deltaPercent}% ${options.words ? "in " : ""}${at}`;
431
358
  }
359
+ function formatRecoveryEventForms(events, now) {
360
+ const buckets = new Map();
361
+ for (const event of events) {
362
+ const duration = formatCompactDuration(event.atMs - now);
363
+ if (duration)
364
+ buckets.set(duration, (buckets.get(duration) ?? 0) + event.deltaPercent);
365
+ }
366
+ if (buckets.size === 0)
367
+ return [];
368
+ const long = [...buckets].map(([duration, delta]) => `+${delta}% in ${duration}`);
369
+ const short = [...buckets].map(([duration, delta]) => `+${delta}% ${duration}`);
370
+ const forms = [long.join(", ")];
371
+ for (let count = short.length; count > 0; count -= 1) {
372
+ forms.push(short.slice(0, count).join(", "));
373
+ }
374
+ return forms;
375
+ }
432
376
  function formatAccountCount(count, style) {
433
377
  if (style === "bare")
434
378
  return `${count}`;
@@ -505,16 +449,18 @@ export function formatQuotaOverviewCandidates(accounts, options) {
505
449
  const totalText = formatQuotaPercent(total, options.mode);
506
450
  const ordered = orderOverviewAccounts(accounts, options.order);
507
451
  const usable = ordered.filter((account) => resolveGoverningWindow(account));
508
- const recovery = options.recovery
452
+ const recovery = options.recovery === true
509
453
  ? resolveQuotaOverviewRecovery(accounts, now)
510
454
  : undefined;
511
- const recoveryForms = recovery
512
- ? [true, false]
513
- .map((words) => formatRecovery(recovery, { mode: options.mode, now, words }))
514
- .filter((form) => Boolean(form))
515
- : [];
455
+ const recoveryForms = options.recovery === "all"
456
+ ? formatRecoveryEventForms(resolveQuotaRecoveryEvents(accounts, now), now)
457
+ : recovery
458
+ ? [true, false]
459
+ .map((words) => formatRecovery(recovery, { mode: options.mode, now, words }))
460
+ .filter((form) => Boolean(form))
461
+ : [];
516
462
  const bodies = [];
517
- if (options.layout !== "count") {
463
+ if (options.layout !== "count" && options.layout !== "total") {
518
464
  // Position identifies an account only when the accounts are in number
519
465
  // order, none of them is missing from the line, and the numbers run
520
466
  // 1..n with no gap - a deduplicated or disabled account leaves indices
@@ -552,6 +498,11 @@ export function formatQuotaOverviewCandidates(accounts, options) {
552
498
  }
553
499
  if (!heads.includes(totalText))
554
500
  heads.push(totalText);
501
+ if (options.layout === "total") {
502
+ return heads.flatMap((head) => [
503
+ ...recoveryForms.map((form) => `${head} ${form}`), head,
504
+ ]);
505
+ }
555
506
  const candidates = [];
556
507
  const push = (head, ...tail) => {
557
508
  const body = tail.filter((part) => Boolean(part));
@@ -602,16 +553,25 @@ export function formatQuotaOverviewText(accounts, options) {
602
553
  * tomorrow throws the credit away, while the account six days out is the one
603
554
  * worth spending it on.
604
555
  *
605
- * Returns nothing at all unless the pool is spent and something is redeemable.
606
- * A reset credit is only an answer to "everything is used up"; offered while
607
- * accounts still have headroom it is an invitation to waste it.
556
+ * Returns nothing unless the weighted-usage threshold is met and a credit is
557
+ * known to be applicable. The default threshold preserves full exhaustion.
608
558
  */
609
559
  export function formatQuotaResetsCandidates(accounts, options) {
610
- if (!isPoolFullySpent(accounts))
611
- return [];
560
+ const minUsedPercent = options.minUsedPercent ?? 100;
561
+ if (minUsedPercent >= 100) {
562
+ // The default keeps the old rule on the DISPLAYED headroom: an account
563
+ // at 99.6% used reads `0%` left and counts as spent.
564
+ if (!isPoolFullySpent(accounts))
565
+ return [];
566
+ }
567
+ else {
568
+ const total = computeWeightedLeftPercent(accounts, "exact");
569
+ if (total === undefined || 100 - total < minUsedPercent)
570
+ return [];
571
+ }
612
572
  const now = options.now ?? Date.now();
613
573
  const maskEmail = options.maskEmail ?? false;
614
- const redeemable = orderOverviewAccounts(accounts, "renewing-latest").filter((account) => resolveResetCredits(account) > 0);
574
+ const redeemable = orderOverviewAccounts(accounts, "renewing-latest").filter((account) => resolveApplicableResetCredits(account) > 0);
615
575
  if (redeemable.length === 0)
616
576
  return [];
617
577
  const durations = redeemable.map((account) => {
@@ -620,7 +580,7 @@ export function formatQuotaResetsCandidates(accounts, options) {
620
580
  ? undefined
621
581
  : formatCompactDuration(resetAtMs - now);
622
582
  });
623
- const credits = redeemable.map((account) => resolveResetCredits(account));
583
+ const credits = redeemable.map((account) => resolveApplicableResetCredits(account));
624
584
  const everyAccountHasOneCredit = credits.every((count) => count === 1);
625
585
  // The identity follows `accountNames` like the pool line does: the full
626
586
  // address is the longest form of the `label` name and appears only there,
@@ -1 +1 @@
1
- {"version":3,"file":"quota-overview.js","sourceRoot":"","sources":["../../lib/quota-overview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota-overview.js","sourceRoot":"","sources":["../../lib/quota-overview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { QuotaOverviewAccount, QuotaOverviewRecovery } from "./quota-overview.js";
2
+ export declare function resolveNextQuotaRecovery(accounts: readonly QuotaOverviewAccount[], now: number): QuotaOverviewRecovery | undefined;
3
+ /** Simulate known ordinary windows once; deltas telescope rather than repeating cumulative gains. */
4
+ export declare function resolveQuotaRecoveryEvents(accounts: readonly QuotaOverviewAccount[], now?: number): QuotaOverviewRecovery[];
5
+ //# sourceMappingURL=quota-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-recovery.d.ts","sourceRoot":"","sources":["../../lib/quota-recovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAuB,MAAM,qBAAqB,CAAC;AAQ5G,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,GAAG,EAAE,MAAM,GACT,qBAAqB,GAAG,SAAS,CAwBnC;AAED,qGAAqG;AACrG,wBAAgB,0BAA0B,CACzC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,GAAG,GAAE,MAAmB,GACtB,qBAAqB,EAAE,CA0BzB"}
@@ -0,0 +1,66 @@
1
+ import { computeWeightedLeftPercent } from "./quota-capacity.js";
2
+ function isFutureReset(window, now) {
3
+ return typeof window.leftPercent === "number" &&
4
+ Number.isFinite(window.leftPercent) && window.leftPercent >= 0 && window.leftPercent < 100 &&
5
+ typeof window.resetAtMs === "number" && Number.isFinite(window.resetAtMs) && window.resetAtMs > now;
6
+ }
7
+ export function resolveNextQuotaRecovery(accounts, now) {
8
+ const current = computeWeightedLeftPercent(accounts);
9
+ if (current === undefined)
10
+ return undefined;
11
+ let earliest;
12
+ for (const account of accounts) {
13
+ for (const window of account.windows) {
14
+ if (isFutureReset(window, now) && window.resetAtMs !== undefined) {
15
+ earliest = Math.min(earliest ?? Infinity, window.resetAtMs);
16
+ }
17
+ }
18
+ }
19
+ if (earliest === undefined)
20
+ return undefined;
21
+ const atMs = earliest;
22
+ const refilled = accounts.map((account) => ({
23
+ ...account,
24
+ windows: account.windows.map((window) =>
25
+ // Only readable future resets refill: an unreadable window would add
26
+ // an account `current` never counted, and a past reset is not news.
27
+ isFutureReset(window, now) && window.resetAtMs !== undefined && window.resetAtMs <= atMs
28
+ ? { ...window, leftPercent: 100 } : window),
29
+ }));
30
+ const recovered = computeWeightedLeftPercent(refilled);
31
+ if (recovered === undefined || recovered - current < 1)
32
+ return undefined;
33
+ return { atMs, deltaPercent: recovered - current };
34
+ }
35
+ /** Simulate known ordinary windows once; deltas telescope rather than repeating cumulative gains. */
36
+ export function resolveQuotaRecoveryEvents(accounts, now = Date.now()) {
37
+ let previous = computeWeightedLeftPercent(accounts);
38
+ if (previous === undefined)
39
+ return [];
40
+ const timestamps = new Set();
41
+ for (const account of accounts) {
42
+ for (const window of account.windows) {
43
+ if (isFutureReset(window, now) && window.resetAtMs !== undefined)
44
+ timestamps.add(window.resetAtMs);
45
+ }
46
+ }
47
+ let simulated = accounts;
48
+ const events = [];
49
+ for (const atMs of [...timestamps].sort((left, right) => left - right)) {
50
+ simulated = simulated.map((account) => ({
51
+ ...account,
52
+ windows: account.windows.map((window) => window.resetAtMs === atMs && isFutureReset(window, now)
53
+ ? { ...window, leftPercent: 100 }
54
+ : window),
55
+ }));
56
+ const recovered = computeWeightedLeftPercent(simulated);
57
+ if (recovered === undefined)
58
+ continue;
59
+ const deltaPercent = recovered - previous;
60
+ previous = recovered;
61
+ if (deltaPercent > 0)
62
+ events.push({ atMs, deltaPercent });
63
+ }
64
+ return events;
65
+ }
66
+ //# sourceMappingURL=quota-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-recovery.js","sourceRoot":"","sources":["../../lib/quota-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGjE,SAAS,aAAa,CAAC,MAA2B,EAAE,GAAW;IAC9D,OAAO,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QAC5C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,GAAG;QAC1F,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,QAAyC,EACzC,GAAW;IAEX,MAAM,OAAO,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,QAA4B,CAAC;IACjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7D,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC;IACtB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC3C,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACvC,qEAAqE;QACrE,oEAAoE;QACpE,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI;YACvF,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;KAC7C,CAAC,CAAC,CAAC;IACJ,MAAM,SAAS,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,OAAO,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,GAAG,OAAO,EAAE,CAAC;AACpD,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,0BAA0B,CACzC,QAAyC,EACzC,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,IAAI,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;gBAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpG,CAAC;IACF,CAAC;IACD,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACxE,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACvC,GAAG,OAAO;YACV,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACvC,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC;gBACtD,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE;gBACjC,CAAC,CAAC,MAAM,CAAC;SACX,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS;QACtC,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;QAC1C,QAAQ,GAAG,SAAS,CAAC;QACrB,IAAI,YAAY,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -134,7 +134,7 @@ export declare function shouldRefreshToken(auth: Auth, skewMs?: number): boolean
134
134
  * @param client - Opencode client for updating stored credentials
135
135
  * @returns Updated auth (throws on failure)
136
136
  */
137
- export declare function refreshAndUpdateToken(currentAuth: OAuthAuthDetails, client: OpencodeClient, identity?: Omit<PersistedRefreshIdentity, "refreshToken">): Promise<OAuthAuthDetails>;
137
+ export declare function refreshAndUpdateToken(currentAuth: OAuthAuthDetails, client: OpencodeClient | undefined, identity?: Omit<PersistedRefreshIdentity, "refreshToken">): Promise<OAuthAuthDetails>;
138
138
  /**
139
139
  * Extracts URL string from various request input types
140
140
  * @param input - Request input (string, URL, or Request object)
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-helpers.d.ts","sourceRoot":"","sources":["../../../lib/request/fetch-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-helpers.d.ts","sourceRoot":"","sources":["../../../lib/request/fetch-helpers.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { coordinatePersistedRefresh, } from "../storage/coordinated-refresh.js";
6
6
  import { logRequest, logError, logWarn } from "../logger.js";
7
7
  import { ensureInstructionIdentity, getCodexInstructions, getModelFamily, } from "../prompts/codex.js";
8
8
  import { transformRequestBody, normalizeModel, upsertBackendModelIdentityMessage, } from "./request-transformer.js";
9
- import { DAYBREAK_BLUE_MODEL_ID, DAYBREAK_RED_MODEL_ID, GPT_55_MODEL_ID, GPT_56_CYBER_MODEL_ID, GPT_56_LUNA_MODEL_ID, GPT_56_SOL_MODEL_ID, GPT_56_TERRA_MODEL_ID, GPT_6_ASTRA_MODEL_ID, } from "./helpers/model-map.js";
9
+ import { DAYBREAK_BLUE_MODEL_ID, DAYBREAK_RED_MODEL_ID, GPT_55_MODEL_ID, GPT_56_CYBER_MODEL_ID, GPT_56_LUNA_MODEL_ID, GPT_56_SOL_MODEL_ID, GPT_56_TERRA_MODEL_ID, GPT_6_ASTRA_MODEL_ID, GPT_6_LUNA_MODEL_ID, GPT_6_SOL_MODEL_ID, } from "./helpers/model-map.js";
10
10
  import { stripEffortSuffix } from "./helpers/effort-suffix.js";
11
11
  import { RESPONSES_LITE_HEADER, RESPONSES_LITE_HEADER_VALUE, shapeBodyForModel, usesResponsesLite, } from "./helpers/responses-lite.js";
12
12
  import { resolveClientIdentity } from "./helpers/client-identity.js";
@@ -49,66 +49,98 @@ const CHATGPT_CODEX_UNSUPPORTED_MODEL_CODE = "model_not_supported_with_chatgpt_a
49
49
  const CHATGPT_CODEX_UNSUPPORTED_MODEL_PATTERN = /model is not supported when using codex with a chatgpt account/i;
50
50
  const NORMALIZED_UNSUPPORTED_MODEL_PATTERN = /the model ['"]([^'"]+)['"] is not currently available for this chatgpt account/i;
51
51
  export const DEFAULT_UNSUPPORTED_CODEX_FALLBACK_CHAIN = {
52
- // GPT-6 Astra launched 2026-09-03 to a limited set of organizations first,
53
- // reaching Plus/Pro/Business/Enterprise only "in the coming days", so an
54
- // entitlement 400 is the expected result for most accounts today. Degrade
55
- // into the 5.6 tiers, which are the closest thing in capability.
52
+ // The general rows follow one order, most capable first:
56
53
  //
57
- // The Daybreak tiers are deliberately absent from this table. They are
58
- // cyber-specialty models (`model_specialty: "cyber"`); silently degrading a
59
- // Daybreak request onto a general model would answer a security-research
60
- // prompt with a model that was never asked for. They fail loudly instead.
54
+ // gpt-6-astra > gpt-6-sol > gpt-5.6-sol > gpt-5.6-terra
55
+ // > gpt-5.5 > gpt-6-luna > gpt-5.6-luna
56
+ //
57
+ // and each row is that order's tail after its own model. The resolver walks
58
+ // the chain of whichever model it is CURRENTLY on, so a row that is not a
59
+ // suffix of the others dead-ends the walk early. Every walk ends on the
60
+ // terminal, `gpt-5.6-luna`, whose row lists everything else (minus Astra),
61
+ // so every entry point reaches every live general model.
62
+ //
63
+ // The terminal is `gpt-5.6-luna`, not `gpt-5.5`: OpenAI's Codex model docs
64
+ // say GPT-5.5 retires from Codex with ChatGPT sign-in on 2026-10-14. 5.6
65
+ // Luna is listed for every plan and has no retirement date. `gpt-5.2`, the
66
+ // terminal before that, left the catalog in openai/codex #44250.
67
+ //
68
+ // A GPT-6 tier crosses to the matching 5.6 tier before its GPT-6 sibling:
69
+ // Sol and Luna joined the catalog on 2026-09-22 (openai/codex 49e95cc7), so
70
+ // an entitlement 400 on one GPT-6 tier most likely means the account is not
71
+ // in the GPT-6 rollout yet, and the sibling would fail the same way.
72
+ //
73
+ // Astra is never a target: it is the frontier tier, so nothing degrades
74
+ // into it. The Daybreak tiers are absent entirely. They are cyber-specialty
75
+ // models (`model_specialty: "cyber"`); silently degrading a Daybreak request
76
+ // onto a general model would answer a security-research prompt with a model
77
+ // that was never asked for. They fail loudly instead.
61
78
  [GPT_6_ASTRA_MODEL_ID]: [
79
+ GPT_6_SOL_MODEL_ID,
62
80
  GPT_56_SOL_MODEL_ID,
63
81
  GPT_56_TERRA_MODEL_ID,
82
+ GPT_55_MODEL_ID,
83
+ GPT_6_LUNA_MODEL_ID,
64
84
  GPT_56_LUNA_MODEL_ID,
85
+ ],
86
+ [GPT_6_SOL_MODEL_ID]: [
87
+ GPT_56_SOL_MODEL_ID,
88
+ GPT_56_TERRA_MODEL_ID,
65
89
  GPT_55_MODEL_ID,
66
- "gpt-5.2",
90
+ GPT_6_LUNA_MODEL_ID,
91
+ GPT_56_LUNA_MODEL_ID,
67
92
  ],
68
- // GPT-5.6 shipped as a limited preview. Accounts outside it get
69
- // `model_not_supported_with_chatgpt_account`, so degrade down the 5.6 tiers
70
- // and then out to the generally-available 5.5 family.
71
- //
72
- // `gpt-5.2` repeats on every tier on purpose. The resolver walks the chain
73
- // of whichever model it is currently on, so once a request hops from
74
- // gpt-5.5 to terra it reads terra's list; a terminal that lived only on
75
- // gpt-5.5's list would never be reached.
76
93
  [GPT_56_SOL_MODEL_ID]: [
77
94
  GPT_56_TERRA_MODEL_ID,
95
+ GPT_55_MODEL_ID,
96
+ GPT_6_LUNA_MODEL_ID,
78
97
  GPT_56_LUNA_MODEL_ID,
98
+ ],
99
+ [GPT_56_TERRA_MODEL_ID]: [GPT_55_MODEL_ID, GPT_6_LUNA_MODEL_ID, GPT_56_LUNA_MODEL_ID],
100
+ // The catalog names `gpt-6-sol` as gpt-5.5's `upgrade`, so its row leads
101
+ // with it rather than being a plain suffix.
102
+ [GPT_55_MODEL_ID]: [
103
+ GPT_6_SOL_MODEL_ID,
104
+ GPT_56_SOL_MODEL_ID,
105
+ GPT_56_TERRA_MODEL_ID,
106
+ GPT_6_LUNA_MODEL_ID,
107
+ GPT_56_LUNA_MODEL_ID,
108
+ ],
109
+ // The two Luna tiers end the order, so both rows go up after trying each
110
+ // other: a walk hops between them, and whichever row it is on then has to
111
+ // list the rest, or the walk dead-ends. gpt-5.6-luna leads with gpt-6-luna,
112
+ // its catalog `upgrade`. The warm ping starts at gpt-6-luna and reaches 6
113
+ // models, exactly WARM_ATTEMPT_HARD_CEILING (lib/accounts/warm-request.ts).
114
+ [GPT_6_LUNA_MODEL_ID]: [
115
+ GPT_56_LUNA_MODEL_ID,
116
+ GPT_6_SOL_MODEL_ID,
117
+ GPT_56_SOL_MODEL_ID,
118
+ GPT_56_TERRA_MODEL_ID,
79
119
  GPT_55_MODEL_ID,
80
- "gpt-5.2",
81
120
  ],
82
- [GPT_56_TERRA_MODEL_ID]: [GPT_56_LUNA_MODEL_ID, GPT_55_MODEL_ID, "gpt-5.2"],
83
- [GPT_56_LUNA_MODEL_ID]: [GPT_55_MODEL_ID, "gpt-5.2"],
84
- // GPT-5.4 and GPT-5.4 Mini were retired from Codex on 2026-08-31T19:00:00Z.
85
- // The catalog marks both `visibility: "hide"` and carries an explicit
86
- // `upgrade` directive naming the replacement — gpt-5.4 -> gpt-5.6-terra,
87
- // gpt-5.4-mini -> gpt-5.6-luna. `gpt-5.4-nano` has no catalog entry at all.
88
- //
89
- // Every tail below used to lead with those three, so an entitlement failure
90
- // on gpt-5.5 or gpt-5-codex spent its whole attempt budget on retired ids
91
- // and then hard-failed without ever trying a live model.
92
- //
93
- // The tails now end at the live models: `gpt-5.6-terra` and `gpt-5.6-luna`
94
- // (the catalog's own named replacements, and its top-priority entries) then
95
- // `gpt-5.2`, the only other general model still `visibility: "list"`. The
96
- // retired ids are not re-appended after them: if terra, luna and 5.2 have
97
- // all been refused, the account has no general Codex entitlement left and a
98
- // model OpenAI retired four days ago cannot rescue it. Selecting `gpt-5.4`
99
- // or `gpt-5.4-mini` directly still degrades, through their own keys below.
100
- [GPT_55_MODEL_ID]: [GPT_56_TERRA_MODEL_ID, GPT_56_LUNA_MODEL_ID, "gpt-5.2"],
101
- // Each retired id leads with the successor its own catalog entry names.
102
- "gpt-5.4": [GPT_56_TERRA_MODEL_ID, GPT_55_MODEL_ID, "gpt-5.2"],
103
- "gpt-5.4-mini": [GPT_56_LUNA_MODEL_ID, GPT_55_MODEL_ID, "gpt-5.2"],
104
- // `gpt-5.4-nano` has no catalog entry, so no upgrade directive to follow. It
105
- // was previously a dead end with no chain of its own, which made it a
106
- // terminal failure for anyone who selected it; give it the same way out.
107
- "gpt-5.4-nano": [GPT_56_LUNA_MODEL_ID, GPT_55_MODEL_ID, "gpt-5.2"],
121
+ [GPT_56_LUNA_MODEL_ID]: [
122
+ GPT_6_LUNA_MODEL_ID,
123
+ GPT_6_SOL_MODEL_ID,
124
+ GPT_56_SOL_MODEL_ID,
125
+ GPT_56_TERRA_MODEL_ID,
126
+ GPT_55_MODEL_ID,
127
+ ],
128
+ // Retired ids lead with the successor OpenAI names for them: gpt-5.4 ->
129
+ // gpt-6-sol, gpt-5.4-mini -> gpt-6-luna (Codex models docs; both retired
130
+ // from Codex on 2026-08-31). `gpt-5.4-mini` has since left the catalog
131
+ // entirely (#44250), but Codex keeps migrating saved selections of it to
132
+ // Luna, so this row keeps doing the same. Each row ends on the terminal.
133
+ "gpt-5.4": [GPT_6_SOL_MODEL_ID, GPT_56_TERRA_MODEL_ID, GPT_56_LUNA_MODEL_ID],
134
+ "gpt-5.4-mini": [GPT_6_LUNA_MODEL_ID, GPT_56_LUNA_MODEL_ID],
135
+ // `gpt-5.4-nano` never had a catalog entry, so no upgrade directive to
136
+ // follow; it takes the budget line like its mini sibling.
137
+ "gpt-5.4-nano": [GPT_6_LUNA_MODEL_ID, GPT_56_LUNA_MODEL_ID],
108
138
  // GPT-5.4 Pro has no catalog entry either; it inherits the 5.4 line's
109
139
  // successor rather than degrading onto retired gpt-5.4 first.
110
- "gpt-5.4-pro": [GPT_56_TERRA_MODEL_ID, GPT_55_MODEL_ID, "gpt-5.2"],
111
- "gpt-5-codex": [GPT_56_TERRA_MODEL_ID, GPT_55_MODEL_ID, "gpt-5.2"],
140
+ "gpt-5.4-pro": [GPT_6_SOL_MODEL_ID, GPT_56_TERRA_MODEL_ID, GPT_56_LUNA_MODEL_ID],
141
+ // gpt-5-codex was shut down on 2026-07-23 (API deprecations page); a
142
+ // hand-typed selection still gets a way out.
143
+ "gpt-5-codex": [GPT_56_TERRA_MODEL_ID, GPT_56_LUNA_MODEL_ID],
112
144
  // Legacy selectors normalize to `gpt-5-codex` before lookup during the
113
145
  // request path. Keep these historical entries for direct helper callers and
114
146
  // custom-chain documentation; the canonical `gpt-5-codex` edge above is the
@@ -128,8 +160,11 @@ const DEFAULT_AUTO_FALLBACK_ENTRY_OPT_OUT_ENV = {
128
160
  [GPT_56_SOL_MODEL_ID]: "CODEX_AUTH_DISABLE_GPT56_AUTO_FALLBACK",
129
161
  [GPT_56_TERRA_MODEL_ID]: "CODEX_AUTH_DISABLE_GPT56_AUTO_FALLBACK",
130
162
  [GPT_56_LUNA_MODEL_ID]: "CODEX_AUTH_DISABLE_GPT56_AUTO_FALLBACK",
131
- // Astra is mid-rollout, so the same reasoning applies one generation up.
163
+ // Every GPT-6 tier is mid-rollout, so the same reasoning applies one
164
+ // generation up. One switch covers the generation, like the 5.6 one.
132
165
  [GPT_6_ASTRA_MODEL_ID]: "CODEX_AUTH_DISABLE_GPT6_AUTO_FALLBACK",
166
+ [GPT_6_SOL_MODEL_ID]: "CODEX_AUTH_DISABLE_GPT6_AUTO_FALLBACK",
167
+ [GPT_6_LUNA_MODEL_ID]: "CODEX_AUTH_DISABLE_GPT6_AUTO_FALLBACK",
133
168
  };
134
169
  /**
135
170
  * Models the default auto-fallback may keep degrading *from* after it has
@@ -140,8 +175,7 @@ const DEFAULT_AUTO_FALLBACK_ENTRY_OPT_OUT_ENV = {
140
175
  * own a row in DEFAULT_UNSUPPORTED_CODEX_FALLBACK_CHAIN: membership here gates
141
176
  * *whether* auto-fallback is allowed to continue, but the resolver still reads
142
177
  * `chain[currentModel]`, so a member with no row of its own returns undefined
143
- * either way. `gpt-5.2` is deliberately absent for that reason. It is the last
144
- * resort in every tail and has no row, so listing it would be a no-op.
178
+ * either way.
145
179
  */
146
180
  const DEFAULT_AUTO_FALLBACK_CONTINUATION_MODELS = new Set([
147
181
  "gpt-5.4",
@@ -604,7 +638,7 @@ export async function refreshAndUpdateToken(currentAuth, client, identity = {})
604
638
  }
605
639
  const currentScope = currentAuth.scope;
606
640
  const nextScope = refreshResult.scope ?? currentScope;
607
- await client.auth.set({
641
+ await client?.auth.set({
608
642
  path: { id: "openai" },
609
643
  body: {
610
644
  type: "oauth",