oc-codex-multi-auth 6.20.0 → 6.22.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 (215) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +729 -568
  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 +177 -177
  7. package/config/minimal-opencode.json +14 -14
  8. package/config/opencode-legacy.json +1496 -1496
  9. package/config/opencode-modern.json +555 -555
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +567 -102
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/account-display.d.ts +46 -0
  14. package/dist/lib/account-display.d.ts.map +1 -1
  15. package/dist/lib/account-display.js +263 -1
  16. package/dist/lib/account-display.js.map +1 -1
  17. package/dist/lib/accounts/persistence.d.ts +3 -1
  18. package/dist/lib/accounts/persistence.d.ts.map +1 -1
  19. package/dist/lib/accounts/persistence.js +27 -3
  20. package/dist/lib/accounts/persistence.js.map +1 -1
  21. package/dist/lib/accounts/stale-state.d.ts +1 -0
  22. package/dist/lib/accounts/stale-state.d.ts.map +1 -1
  23. package/dist/lib/accounts/stale-state.js +30 -0
  24. package/dist/lib/accounts/stale-state.js.map +1 -1
  25. package/dist/lib/accounts/warm-recovery.d.ts +8 -0
  26. package/dist/lib/accounts/warm-recovery.d.ts.map +1 -0
  27. package/dist/lib/accounts/warm-recovery.js +70 -0
  28. package/dist/lib/accounts/warm-recovery.js.map +1 -0
  29. package/dist/lib/accounts/warm-request.d.ts +2 -0
  30. package/dist/lib/accounts/warm-request.d.ts.map +1 -1
  31. package/dist/lib/accounts/warm-request.js +4 -2
  32. package/dist/lib/accounts/warm-request.js.map +1 -1
  33. package/dist/lib/accounts.d.ts +5 -1
  34. package/dist/lib/accounts.d.ts.map +1 -1
  35. package/dist/lib/accounts.js +22 -17
  36. package/dist/lib/accounts.js.map +1 -1
  37. package/dist/lib/auth/login-runner.d.ts.map +1 -1
  38. package/dist/lib/auth/login-runner.js +79 -2
  39. package/dist/lib/auth/login-runner.js.map +1 -1
  40. package/dist/lib/auto-update-checker.d.ts +17 -1
  41. package/dist/lib/auto-update-checker.d.ts.map +1 -1
  42. package/dist/lib/auto-update-checker.js +49 -3
  43. package/dist/lib/auto-update-checker.js.map +1 -1
  44. package/dist/lib/circuit-breaker.d.ts +5 -0
  45. package/dist/lib/circuit-breaker.d.ts.map +1 -1
  46. package/dist/lib/circuit-breaker.js +23 -6
  47. package/dist/lib/circuit-breaker.js.map +1 -1
  48. package/dist/lib/cli.d.ts +1 -0
  49. package/dist/lib/cli.d.ts.map +1 -1
  50. package/dist/lib/cli.js +9 -3
  51. package/dist/lib/cli.js.map +1 -1
  52. package/dist/lib/codex-reset.d.ts +7 -1
  53. package/dist/lib/codex-reset.d.ts.map +1 -1
  54. package/dist/lib/codex-reset.js +9 -2
  55. package/dist/lib/codex-reset.js.map +1 -1
  56. package/dist/lib/codex-usage.d.ts +7 -4
  57. package/dist/lib/codex-usage.d.ts.map +1 -1
  58. package/dist/lib/codex-usage.js +48 -13
  59. package/dist/lib/codex-usage.js.map +1 -1
  60. package/dist/lib/config.d.ts +77 -1
  61. package/dist/lib/config.d.ts.map +1 -1
  62. package/dist/lib/config.js +190 -15
  63. package/dist/lib/config.js.map +1 -1
  64. package/dist/lib/context-overflow.js +10 -10
  65. package/dist/lib/desktop-notifications.js +6 -6
  66. package/dist/lib/oauth-success.js +202 -202
  67. package/dist/lib/parallel-probe.d.ts.map +1 -1
  68. package/dist/lib/parallel-probe.js +2 -1
  69. package/dist/lib/parallel-probe.js.map +1 -1
  70. package/dist/lib/plan-allotment.d.ts +72 -0
  71. package/dist/lib/plan-allotment.d.ts.map +1 -0
  72. package/dist/lib/plan-allotment.js +142 -0
  73. package/dist/lib/plan-allotment.js.map +1 -0
  74. package/dist/lib/plugin-origin.d.ts +77 -0
  75. package/dist/lib/plugin-origin.d.ts.map +1 -0
  76. package/dist/lib/plugin-origin.js +301 -0
  77. package/dist/lib/plugin-origin.js.map +1 -0
  78. package/dist/lib/prompts/codex-opencode-bridge.js +67 -67
  79. package/dist/lib/prompts/codex.js +75 -75
  80. package/dist/lib/quota-display.d.ts +40 -0
  81. package/dist/lib/quota-display.d.ts.map +1 -0
  82. package/dist/lib/quota-display.js +45 -0
  83. package/dist/lib/quota-display.js.map +1 -0
  84. package/dist/lib/quota-notifications.d.ts +2 -1
  85. package/dist/lib/quota-notifications.d.ts.map +1 -1
  86. package/dist/lib/quota-notifications.js +43 -14
  87. package/dist/lib/quota-notifications.js.map +1 -1
  88. package/dist/lib/quota-overview.d.ts +253 -0
  89. package/dist/lib/quota-overview.d.ts.map +1 -0
  90. package/dist/lib/quota-overview.js +707 -0
  91. package/dist/lib/quota-overview.js.map +1 -0
  92. package/dist/lib/request/fetch-helpers.js +22 -18
  93. package/dist/lib/request/fetch-helpers.js.map +1 -1
  94. package/dist/lib/request/response-handler.d.ts.map +1 -1
  95. package/dist/lib/request/response-handler.js +85 -43
  96. package/dist/lib/request/response-handler.js.map +1 -1
  97. package/dist/lib/request/retry-budget.d.ts +26 -0
  98. package/dist/lib/request/retry-budget.d.ts.map +1 -1
  99. package/dist/lib/request/retry-budget.js +43 -0
  100. package/dist/lib/request/retry-budget.js.map +1 -1
  101. package/dist/lib/rotation.d.ts +1 -1
  102. package/dist/lib/schemas.d.ts +67 -0
  103. package/dist/lib/schemas.d.ts.map +1 -1
  104. package/dist/lib/schemas.js +53 -0
  105. package/dist/lib/schemas.js.map +1 -1
  106. package/dist/lib/storage/backup.d.ts +33 -0
  107. package/dist/lib/storage/backup.d.ts.map +1 -1
  108. package/dist/lib/storage/backup.js +43 -7
  109. package/dist/lib/storage/backup.js.map +1 -1
  110. package/dist/lib/storage/credential-snapshots.d.ts +78 -0
  111. package/dist/lib/storage/credential-snapshots.d.ts.map +1 -0
  112. package/dist/lib/storage/credential-snapshots.js +302 -0
  113. package/dist/lib/storage/credential-snapshots.js.map +1 -0
  114. package/dist/lib/storage/export-import.d.ts.map +1 -1
  115. package/dist/lib/storage/export-import.js +7 -0
  116. package/dist/lib/storage/export-import.js.map +1 -1
  117. package/dist/lib/storage/flagged.d.ts.map +1 -1
  118. package/dist/lib/storage/flagged.js +23 -1
  119. package/dist/lib/storage/flagged.js.map +1 -1
  120. package/dist/lib/storage/load-save.d.ts +5 -0
  121. package/dist/lib/storage/load-save.d.ts.map +1 -1
  122. package/dist/lib/storage/load-save.js +61 -0
  123. package/dist/lib/storage/load-save.js.map +1 -1
  124. package/dist/lib/storage/normalize.d.ts.map +1 -1
  125. package/dist/lib/storage/normalize.js +38 -2
  126. package/dist/lib/storage/normalize.js.map +1 -1
  127. package/dist/lib/storage/paths.d.ts +1 -0
  128. package/dist/lib/storage/paths.d.ts.map +1 -1
  129. package/dist/lib/storage/paths.js +1 -1
  130. package/dist/lib/storage/paths.js.map +1 -1
  131. package/dist/lib/storage/state.d.ts +1 -0
  132. package/dist/lib/storage/state.d.ts.map +1 -1
  133. package/dist/lib/storage/state.js +12 -0
  134. package/dist/lib/storage/state.js.map +1 -1
  135. package/dist/lib/storage/test-home-guard.d.ts +35 -0
  136. package/dist/lib/storage/test-home-guard.d.ts.map +1 -0
  137. package/dist/lib/storage/test-home-guard.js +59 -0
  138. package/dist/lib/storage/test-home-guard.js.map +1 -0
  139. package/dist/lib/tools/codex-dashboard.d.ts.map +1 -1
  140. package/dist/lib/tools/codex-dashboard.js +3 -2
  141. package/dist/lib/tools/codex-dashboard.js.map +1 -1
  142. package/dist/lib/tools/codex-doctor.d.ts.map +1 -1
  143. package/dist/lib/tools/codex-doctor.js +16 -0
  144. package/dist/lib/tools/codex-doctor.js.map +1 -1
  145. package/dist/lib/tools/codex-health.d.ts.map +1 -1
  146. package/dist/lib/tools/codex-health.js +10 -2
  147. package/dist/lib/tools/codex-health.js.map +1 -1
  148. package/dist/lib/tools/codex-label.d.ts.map +1 -1
  149. package/dist/lib/tools/codex-label.js +1 -0
  150. package/dist/lib/tools/codex-label.js.map +1 -1
  151. package/dist/lib/tools/codex-limits.d.ts.map +1 -1
  152. package/dist/lib/tools/codex-limits.js +26 -10
  153. package/dist/lib/tools/codex-limits.js.map +1 -1
  154. package/dist/lib/tools/codex-list.d.ts.map +1 -1
  155. package/dist/lib/tools/codex-list.js +28 -3
  156. package/dist/lib/tools/codex-list.js.map +1 -1
  157. package/dist/lib/tools/codex-note.d.ts.map +1 -1
  158. package/dist/lib/tools/codex-note.js +4 -1
  159. package/dist/lib/tools/codex-note.js.map +1 -1
  160. package/dist/lib/tools/codex-pool.d.ts.map +1 -1
  161. package/dist/lib/tools/codex-pool.js +6 -2
  162. package/dist/lib/tools/codex-pool.js.map +1 -1
  163. package/dist/lib/tools/codex-refresh.d.ts.map +1 -1
  164. package/dist/lib/tools/codex-refresh.js +4 -1
  165. package/dist/lib/tools/codex-refresh.js.map +1 -1
  166. package/dist/lib/tools/codex-remove.d.ts.map +1 -1
  167. package/dist/lib/tools/codex-remove.js +1 -0
  168. package/dist/lib/tools/codex-remove.js.map +1 -1
  169. package/dist/lib/tools/codex-reset.d.ts.map +1 -1
  170. package/dist/lib/tools/codex-reset.js +53 -8
  171. package/dist/lib/tools/codex-reset.js.map +1 -1
  172. package/dist/lib/tools/codex-status.d.ts.map +1 -1
  173. package/dist/lib/tools/codex-status.js +25 -2
  174. package/dist/lib/tools/codex-status.js.map +1 -1
  175. package/dist/lib/tools/codex-switch.d.ts.map +1 -1
  176. package/dist/lib/tools/codex-switch.js +1 -0
  177. package/dist/lib/tools/codex-switch.js.map +1 -1
  178. package/dist/lib/tools/codex-tag.d.ts.map +1 -1
  179. package/dist/lib/tools/codex-tag.js +4 -1
  180. package/dist/lib/tools/codex-tag.js.map +1 -1
  181. package/dist/lib/tools/codex-warm.d.ts +2 -1
  182. package/dist/lib/tools/codex-warm.d.ts.map +1 -1
  183. package/dist/lib/tools/codex-warm.js +49 -5
  184. package/dist/lib/tools/codex-warm.js.map +1 -1
  185. package/dist/lib/tools/index.d.ts +10 -1
  186. package/dist/lib/tools/index.d.ts.map +1 -1
  187. package/dist/lib/tools/index.js.map +1 -1
  188. package/dist/lib/tui-quota-cache.d.ts +35 -0
  189. package/dist/lib/tui-quota-cache.d.ts.map +1 -1
  190. package/dist/lib/tui-quota-cache.js +79 -12
  191. package/dist/lib/tui-quota-cache.js.map +1 -1
  192. package/dist/lib/tui-quota-overview.d.ts +55 -0
  193. package/dist/lib/tui-quota-overview.d.ts.map +1 -0
  194. package/dist/lib/tui-quota-overview.js +209 -0
  195. package/dist/lib/tui-quota-overview.js.map +1 -0
  196. package/dist/lib/tui-status.d.ts +55 -0
  197. package/dist/lib/tui-status.d.ts.map +1 -1
  198. package/dist/lib/tui-status.js +155 -14
  199. package/dist/lib/tui-status.js.map +1 -1
  200. package/dist/lib/ui/auth-menu.d.ts +2 -0
  201. package/dist/lib/ui/auth-menu.d.ts.map +1 -1
  202. package/dist/lib/ui/auth-menu.js +10 -6
  203. package/dist/lib/ui/auth-menu.js.map +1 -1
  204. package/dist/tui.d.ts +59 -1
  205. package/dist/tui.d.ts.map +1 -1
  206. package/dist/tui.js +535 -43
  207. package/dist/tui.js.map +1 -1
  208. package/package.json +155 -155
  209. package/scripts/audit-dev-allowlist.js +114 -114
  210. package/scripts/clean-dist.js +27 -27
  211. package/scripts/copy-oauth-success.js +47 -47
  212. package/scripts/install-oc-codex-multi-auth-core.js +2003 -1469
  213. package/scripts/install-oc-codex-multi-auth.js +37 -37
  214. package/scripts/test-all-models.sh +260 -260
  215. package/scripts/validate-model-map.sh +97 -97
@@ -16,6 +16,7 @@
16
16
  * audit flagged.
17
17
  */
18
18
  import { promises as fs, existsSync } from "node:fs";
19
+ import { createHash } from "node:crypto";
19
20
  import { dirname, join } from "node:path";
20
21
  import { ACCOUNTS_FILE_NAME, LEGACY_ACCOUNTS_FILE_NAME } from "../constants.js";
21
22
  import { createLogger } from "../logger.js";
@@ -24,6 +25,8 @@ import { renameWithWindowsRetry } from "./atomic-write.js";
24
25
  import { formatStorageErrorHint, StorageError } from "./errors.js";
25
26
  import { normalizeAccountStorage } from "./normalize.js";
26
27
  import { getConfigDir } from "./paths.js";
28
+ import { assertTestRunNeverTouchesRealHome, TEST_HOME_ESCAPE_CODE, } from "./test-home-guard.js";
29
+ import { trySnapshotCredentialStoreBeforeWrite } from "./credential-snapshots.js";
27
30
  import { getCurrentLegacyProjectStoragePath, getCurrentProjectRoot, getCurrentProjectStorageKey, getCurrentStoragePath, getStoragePath, withStorageLock, } from "./state.js";
28
31
  import { buildV2RecoveryHint, UNKNOWN_V2_FORMAT_CODE, } from "./migrations.js";
29
32
  import { acquireOrDetectLock } from "./worktree-lock.js";
@@ -31,6 +34,14 @@ import { withStorageTransaction } from "./transaction-lock.js";
31
34
  import { isKeychainOptInEnabled, readFromKeychain, writeToKeychain, deleteFromKeychain, } from "./keychain.js";
32
35
  import os from "node:os";
33
36
  const log = createLogger("storage");
37
+ let lastWrittenAccounts;
38
+ export function consumeLastWrittenAccountsDigest(path = getStoragePath()) {
39
+ if (lastWrittenAccounts?.path !== path)
40
+ return undefined;
41
+ const digest = lastWrittenAccounts.digest;
42
+ lastWrittenAccounts = undefined;
43
+ return digest;
44
+ }
34
45
  const COLLISION_WARNING_THROTTLE_MS = 60_000;
35
46
  const COLLISION_WARNING_THROTTLE_MAX_ENTRIES = 128;
36
47
  const collisionWarningTimes = new Map();
@@ -106,6 +117,10 @@ async function checkWorktreeLockForCurrentStorage(operation) {
106
117
  });
107
118
  return;
108
119
  }
120
+ // Before the probe, not inside the try: `acquireOrDetectLock` writes a lock
121
+ // sidecar next to the accounts file, so a leaked HOME would touch the real
122
+ // store here even on a pure read, and this function's catch would hide it.
123
+ assertTestRunNeverTouchesRealHome(path);
109
124
  try {
110
125
  const result = await acquireOrDetectLock(path);
111
126
  if (!result.acquired && result.foreign) {
@@ -163,6 +178,11 @@ async function ensureGitignore(storagePath) {
163
178
  }
164
179
  }
165
180
  async function migrateStorageFileIfNeeded(legacyPath, nextPath, persist, label) {
181
+ // Before the existsSync, and outside the try: this reads the legacy file and
182
+ // the catch below swallows everything except a forward-compat reject, so a
183
+ // guard placed any later would be silently discarded.
184
+ if (legacyPath)
185
+ assertTestRunNeverTouchesRealHome(legacyPath);
166
186
  if (!legacyPath || legacyPath === nextPath || !existsSync(legacyPath)) {
167
187
  return null;
168
188
  }
@@ -240,6 +260,11 @@ async function loadGlobalAccountsFallback() {
240
260
  if (!shouldUseProjectGlobalFallback() || !currentStoragePath) {
241
261
  return null;
242
262
  }
263
+ // The project store is missing, so this reaches for the GLOBAL one, which
264
+ // resolves against `homedir()` and is the real pool whenever HOME has been
265
+ // restored. Guarded here rather than at the read below, because the catch
266
+ // there returns null for everything and would hide the escape.
267
+ assertTestRunNeverTouchesRealHome(getGlobalAccountsStoragePath());
243
268
  const migrated = await migrateLegacyGlobalStorageIfNeeded();
244
269
  if (migrated) {
245
270
  return migrated;
@@ -461,6 +486,7 @@ async function loadAccountsInternal(persistMigration) {
461
486
  * Callers must already be inside withStorageLock when using this helper directly.
462
487
  */
463
488
  async function writeAccountsToPathUnlocked(path, storage) {
489
+ assertTestRunNeverTouchesRealHome(path);
464
490
  const uniqueSuffix = `${Date.now()}.${Math.random().toString(36).slice(2, 8)}`;
465
491
  const tempPath = `${path}.${uniqueSuffix}.tmp`;
466
492
  try {
@@ -469,6 +495,12 @@ async function writeAccountsToPathUnlocked(path, storage) {
469
495
  // Normalize before persisting so every write path enforces dedup semantics
470
496
  // (exact identity dedupe plus legacy email dedupe for identity-less records).
471
497
  const normalizedStorage = normalizeAccountStorage(storage) ?? storage;
498
+ // Preserve what is on disk now, before it is replaced. Compared against
499
+ // the normalized payload rather than the caller's, so a difference
500
+ // normalization erases never costs a snapshot. We are already inside
501
+ // `withStorageLock`, so the captured state is exactly the state this write
502
+ // supersedes.
503
+ await trySnapshotCredentialStoreBeforeWrite(path, normalizedStorage);
472
504
  const content = JSON.stringify(normalizedStorage, null, 2);
473
505
  await fs.writeFile(tempPath, content, { encoding: "utf-8", mode: 0o600 });
474
506
  const stats = await fs.stat(tempPath);
@@ -477,6 +509,8 @@ async function writeAccountsToPathUnlocked(path, storage) {
477
509
  throw emptyError;
478
510
  }
479
511
  await renameWithWindowsRetry(tempPath, path);
512
+ // Only a published write may suppress this process's live-reload watcher.
513
+ lastWrittenAccounts = { path, digest: createHash("sha256").update(content).digest("hex") };
480
514
  }
481
515
  catch (error) {
482
516
  try {
@@ -575,6 +609,13 @@ async function saveAccountsUnlocked(storage) {
575
609
  // other worktrees on their next acquire.
576
610
  await checkWorktreeLockForCurrentStorage("save");
577
611
  if (isKeychainOptInEnabled()) {
612
+ // Credential snapshots are scoped to the JSON backend and do not cover
613
+ // keychain mode. That is enforced inside the snapshotter itself rather
614
+ // than by the absence of a call here, so neither the JSON fallback below
615
+ // nor `clearAccounts` can reintroduce a plaintext copy of the token set -
616
+ // see `snapshotCredentialStoreBeforeWrite`. Keychain users' recovery path
617
+ // stays `codex-export` plus the keychain's own backing store.
618
+ //
578
619
  // Normalize before serializing so the keychain receives the same shape
579
620
  // the JSON backend would have written. Using the same JSON format keeps
580
621
  // migration and rollback symmetric: a rolled-back JSON file is valid
@@ -646,15 +687,35 @@ export async function saveAccounts(storage) {
646
687
  * keychain delete and log at `error`. Both copies remain in sync so the
647
688
  * caller can retry safely. The operation is still best-effort (never
648
689
  * throws) to preserve the existing contract above the storage layer.
690
+ *
691
+ * @throws StorageError (code `TEST_HOME_ESCAPE`) - the single exception to
692
+ * best-effort, and inert outside vitest. The guard refuses the deletion, so
693
+ * absorbing it would return success for a clear that never happened.
649
694
  */
650
695
  export async function clearAccounts() {
651
696
  return withStorageLock(async () => {
652
697
  let jsonCleared = true;
653
698
  try {
654
699
  const path = getStoragePath();
700
+ assertTestRunNeverTouchesRealHome(path);
701
+ // Deleting the store outright needs no significance test - `null` says
702
+ // there is no successor document to compare against. The snapshotter
703
+ // still applies its own config and keychain gates.
704
+ await trySnapshotCredentialStoreBeforeWrite(path, null);
655
705
  await fs.unlink(path);
656
706
  }
657
707
  catch (error) {
708
+ // The test-home guard is not a storage failure to absorb. It fires only
709
+ // under vitest, and it exists to fail a run that escaped its sandbox; it
710
+ // throws before the unlink, so swallowing it here would report a
711
+ // successful clear for a deletion that deliberately did not happen -
712
+ // fail-closed downgraded to fail-open on the one path that destroys the
713
+ // store. The same re-throw covers the snapshotter, which surfaces this
714
+ // code through `trySnapshotCredentialStoreBeforeWrite` for the same
715
+ // reason.
716
+ if (error instanceof StorageError && error.code === TEST_HOME_ESCAPE_CODE) {
717
+ throw error;
718
+ }
658
719
  const code = error.code;
659
720
  if (code !== "ENOENT") {
660
721
  jsonCleared = false;
@@ -1 +1 @@
1
- {"version":3,"file":"load-save.js","sourceRoot":"","sources":["../../../lib/storage/load-save.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-save.js","sourceRoot":"","sources":["../../../lib/storage/load-save.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../lib/storage/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AA6GzB;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,gBAAgB,GAAG,IAAI,CA+HzB"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../lib/storage/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AA4IzB;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,gBAAgB,GAAG,IAAI,CAqIzB"}
@@ -9,6 +9,8 @@
9
9
  import { createLogger } from "../logger.js";
10
10
  import { extractAccountUserId, isStaleGeneratedAccountLabel } from "../auth/token-utils.js";
11
11
  import { MODEL_FAMILIES } from "../prompts/codex.js";
12
+ import { MAX_QUOTA_RESET_HORIZON_MS } from "../quota-windows.js";
13
+ import { nowMs } from "../utils.js";
12
14
  import { AccountStorageV2DetectionSchema } from "../schemas.js";
13
15
  import { StorageError } from "./errors.js";
14
16
  import { clampIndex, deduplicateAccountsForStorage, extractActiveKeys, findAccountIndexByIdentityKeys, isRecord, } from "./identity.js";
@@ -93,6 +95,18 @@ function sanitizeAccountNumericState(account) {
93
95
  delete next[key];
94
96
  }
95
97
  }
98
+ // A finite-but-huge future stamp strands the account exactly like the
99
+ // non-finite values above: expiry can never fire, so rotation serves null
100
+ // and getMinWaitTimeForFamily counts down for centuries. The same 30-day
101
+ // horizon the header and stamp writers enforce bounds what a corrupt or
102
+ // unit-mangled file can claim.
103
+ const horizon = nowMs() + MAX_QUOTA_RESET_HORIZON_MS;
104
+ for (const key of ["coolingDownUntil", "quotaExhaustedUntil"]) {
105
+ const value = next[key];
106
+ if (typeof value === "number" && value > horizon) {
107
+ delete next[key];
108
+ }
109
+ }
96
110
  for (const key of ["addedAt", "lastUsed"]) {
97
111
  const value = next[key];
98
112
  if (typeof value !== "number" || !Number.isFinite(value)) {
@@ -102,7 +116,7 @@ function sanitizeAccountNumericState(account) {
102
116
  if (next.rateLimitResetTimes) {
103
117
  let dropped = false;
104
118
  for (const [key, value] of Object.entries(next.rateLimitResetTimes)) {
105
- if (typeof value !== "number" || !Number.isFinite(value)) {
119
+ if (typeof value !== "number" || !Number.isFinite(value) || value > horizon) {
106
120
  delete next.rateLimitResetTimes[key];
107
121
  dropped = true;
108
122
  }
@@ -113,6 +127,23 @@ function sanitizeAccountNumericState(account) {
113
127
  }
114
128
  return next;
115
129
  }
130
+ /**
131
+ * Seed V3 family-keyed rate-limit state from the V1 global stamp. Mirrors
132
+ * the mapping in {@link migrateV1ToV3} so the rebuilt account list keeps the
133
+ * migration's per-account output.
134
+ */
135
+ function seedV1RateLimitState(account) {
136
+ const legacy = account
137
+ .rateLimitResetTime;
138
+ if (typeof legacy !== "number" || !Number.isFinite(legacy) || legacy <= nowMs()) {
139
+ return account;
140
+ }
141
+ const rateLimitResetTimes = {};
142
+ for (const family of MODEL_FAMILIES) {
143
+ rateLimitResetTimes[family] = legacy;
144
+ }
145
+ return { ...account, rateLimitResetTimes };
146
+ }
116
147
  /**
117
148
  * Normalizes and validates account storage data, migrating from v1 to v3 if needed.
118
149
  * Handles deduplication, index clamping, and per-family active index mapping.
@@ -174,7 +205,12 @@ export function normalizeAccountStorage(data, sourcePath) {
174
205
  : data;
175
206
  const validAccounts = rawAccounts.filter((account) => isRecord(account) && typeof account.refreshToken === "string" && !!account.refreshToken.trim());
176
207
  const accountsWithMemberIdentity = validAccounts.map((account) => {
177
- const sanitized = sanitizeAccountNumericState(account);
208
+ // migrateV1ToV3 maps the V1 global rate-limit stamp onto every family
209
+ // key, but the account rebuild below starts from the raw records, so
210
+ // that mapped state must be seeded here or the migration's per-account
211
+ // output is silently discarded.
212
+ const seeded = fromVersion === 1 ? seedV1RateLimitState(account) : account;
213
+ const sanitized = sanitizeAccountNumericState(seeded);
178
214
  const named = dropStaleGeneratedLabel(sanitized);
179
215
  if (named.accountUserId?.trim())
180
216
  return named;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../lib/storage/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../lib/storage/normalize.ts"],"names":[],"mappings":"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"}
@@ -12,5 +12,6 @@ export declare function getProjectStorageKey(projectPath: string): string;
12
12
  export declare function getProjectGlobalConfigDir(projectPath: string): string;
13
13
  export declare function isProjectDirectory(dir: string): boolean;
14
14
  export declare function findProjectRoot(startDir: string): string | null;
15
+ export declare function isWithinDirectory(baseDir: string, targetPath: string): boolean;
15
16
  export declare function resolvePath(filePath: string): string;
16
17
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../lib/storage/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAgBD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB/D;AAcD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyBpD"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../lib/storage/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAgBD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB/D;AAOD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAK9E;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyBpD"}
@@ -66,7 +66,7 @@ function normalizePathForComparison(filePath) {
66
66
  const resolvedPath = resolve(filePath);
67
67
  return process.platform === "win32" ? resolvedPath.toLowerCase() : resolvedPath;
68
68
  }
69
- function isWithinDirectory(baseDir, targetPath) {
69
+ export function isWithinDirectory(baseDir, targetPath) {
70
70
  const normalizedBase = normalizePathForComparison(baseDir);
71
71
  const normalizedTarget = normalizePathForComparison(targetPath);
72
72
  const rel = relative(normalizedBase, normalizedTarget);
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../lib/storage/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../lib/storage/paths.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@
21
21
  * cross-request races during migration/seeding flows.
22
22
  */
23
23
  export declare function withStorageLock<T>(fn: () => Promise<T>): Promise<T>;
24
+ export declare function subscribeToStoragePathChanges(listener: () => void): () => void;
24
25
  export declare function setStoragePath(projectPath: string | null): void;
25
26
  export declare function setStoragePathDirect(path: string | null): void;
26
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/storage/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOnE;AAMD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAkB/D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAI9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAMD,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,kCAAkC,IAAI,MAAM,GAAG,IAAI,CAElE;AAED,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,IAAI,CAG3D"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/storage/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOnE;AAOD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAG9E;AAMD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAoB/D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAK9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAKvC;AAMD,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,kCAAkC,IAAI,MAAM,GAAG,IAAI,CAElE;AAED,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,IAAI,CAG3D"}
@@ -35,11 +35,21 @@ export function withStorageLock(fn) {
35
35
  let currentStoragePath = null;
36
36
  let currentLegacyProjectStoragePath = null;
37
37
  let currentProjectRoot = null;
38
+ const storagePathListeners = new Set();
39
+ export function subscribeToStoragePathChanges(listener) {
40
+ storagePathListeners.add(listener);
41
+ return () => { storagePathListeners.delete(listener); };
42
+ }
43
+ function notifyStoragePathChanged() {
44
+ for (const listener of storagePathListeners)
45
+ listener();
46
+ }
38
47
  export function setStoragePath(projectPath) {
39
48
  if (!projectPath) {
40
49
  currentStoragePath = null;
41
50
  currentLegacyProjectStoragePath = null;
42
51
  currentProjectRoot = null;
52
+ notifyStoragePathChanged();
43
53
  return;
44
54
  }
45
55
  const projectRoot = findProjectRoot(projectPath);
@@ -53,11 +63,13 @@ export function setStoragePath(projectPath) {
53
63
  currentLegacyProjectStoragePath = null;
54
64
  currentProjectRoot = null;
55
65
  }
66
+ notifyStoragePathChanged();
56
67
  }
57
68
  export function setStoragePathDirect(path) {
58
69
  currentStoragePath = path;
59
70
  currentLegacyProjectStoragePath = null;
60
71
  currentProjectRoot = null;
72
+ notifyStoragePathChanged();
61
73
  }
62
74
  /**
63
75
  * Returns the file path for the account storage JSON file.
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/storage/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,IAAI,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAI,EAAoB;IACrD,MAAM,aAAa,GAAG,YAAY,CAAC;IACnC,IAAI,WAAuB,CAAC;IAC5B,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC3C,WAAW,GAAG,OAAO,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,IAAI,kBAAkB,GAAkB,IAAI,CAAC;AAC7C,IAAI,+BAA+B,GAAkB,IAAI,CAAC;AAC1D,IAAI,kBAAkB,GAAkB,IAAI,CAAC;AAE7C,MAAM,UAAU,cAAc,CAAC,WAA0B;IACvD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,kBAAkB,GAAG,IAAI,CAAC;QAC1B,+BAA+B,GAAG,IAAI,CAAC;QACvC,kBAAkB,GAAG,IAAI,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,WAAW,EAAE,CAAC;QAChB,kBAAkB,GAAG,WAAW,CAAC;QACjC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACtF,+BAA+B,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,CAAC;IACtG,CAAC;SAAM,CAAC;QACN,kBAAkB,GAAG,IAAI,CAAC;QAC1B,+BAA+B,GAAG,IAAI,CAAC;QACvC,kBAAkB,GAAG,IAAI,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAmB;IACtD,kBAAkB,GAAG,IAAI,CAAC;IAC1B,+BAA+B,GAAG,IAAI,CAAC;IACvC,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAClD,CAAC;AAED,+EAA+E;AAC/E,yEAAyE;AACzE,4CAA4C;AAE5C,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kCAAkC;IAChD,OAAO,+BAA+B,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B;IACzC,IAAI,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/storage/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The test-run write guard, shared by every storage writer.
3
+ *
4
+ * Extracted from `lib/storage/load-save.ts` so the credential-snapshot writer
5
+ * can apply the same check. Importing it from `load-save.ts` directly would be
6
+ * a cycle: `load-save.ts` is what triggers snapshots in the first place.
7
+ */
8
+ /**
9
+ * StorageError code for a write refused inside the developer's real home.
10
+ *
11
+ * Shared rather than spelled out at each site: several callers deliberately
12
+ * absorb storage failures and have to re-throw this one, and a typo in any of
13
+ * those copies would silently turn the guard back into a swallowed warning.
14
+ */
15
+ export declare const TEST_HOME_ESCAPE_CODE = "TEST_HOME_ESCAPE";
16
+ /**
17
+ * Refuse to touch account storage inside the developer's real home while the
18
+ * test suite is running.
19
+ *
20
+ * `vitest.config.ts` redirects HOME to a sandbox before any module loads, but a
21
+ * test that restores the captured real HOME, or a future regression in that
22
+ * config, would otherwise read or overwrite live ChatGPT credentials.
23
+ * `os.userInfo()` reads the passwd entry instead of `$HOME`, so it still names
24
+ * the real home after the redirect and gives the check something the sandbox
25
+ * cannot spoof. Inert outside vitest.
26
+ *
27
+ * The sandbox and the temp directory are exempt, and both exemptions are
28
+ * load-bearing rather than convenience: on Windows `os.tmpdir()` normally sits
29
+ * inside the user profile, so there every legitimate sandbox path is also a
30
+ * real-home path and a bare home-prefix test would reject the entire suite.
31
+ * Neither exemption can reach the production store, which lives under the real
32
+ * home's `.opencode`.
33
+ */
34
+ export declare function assertTestRunNeverTouchesRealHome(path: string): void;
35
+ //# sourceMappingURL=test-home-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-home-guard.d.ts","sourceRoot":"","sources":["../../../lib/storage/test-home-guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CA0BpE"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * The test-run write guard, shared by every storage writer.
3
+ *
4
+ * Extracted from `lib/storage/load-save.ts` so the credential-snapshot writer
5
+ * can apply the same check. Importing it from `load-save.ts` directly would be
6
+ * a cycle: `load-save.ts` is what triggers snapshots in the first place.
7
+ */
8
+ import os from "node:os";
9
+ import { StorageError } from "./errors.js";
10
+ import { isWithinDirectory } from "./paths.js";
11
+ /**
12
+ * StorageError code for a write refused inside the developer's real home.
13
+ *
14
+ * Shared rather than spelled out at each site: several callers deliberately
15
+ * absorb storage failures and have to re-throw this one, and a typo in any of
16
+ * those copies would silently turn the guard back into a swallowed warning.
17
+ */
18
+ export const TEST_HOME_ESCAPE_CODE = "TEST_HOME_ESCAPE";
19
+ /**
20
+ * Refuse to touch account storage inside the developer's real home while the
21
+ * test suite is running.
22
+ *
23
+ * `vitest.config.ts` redirects HOME to a sandbox before any module loads, but a
24
+ * test that restores the captured real HOME, or a future regression in that
25
+ * config, would otherwise read or overwrite live ChatGPT credentials.
26
+ * `os.userInfo()` reads the passwd entry instead of `$HOME`, so it still names
27
+ * the real home after the redirect and gives the check something the sandbox
28
+ * cannot spoof. Inert outside vitest.
29
+ *
30
+ * The sandbox and the temp directory are exempt, and both exemptions are
31
+ * load-bearing rather than convenience: on Windows `os.tmpdir()` normally sits
32
+ * inside the user profile, so there every legitimate sandbox path is also a
33
+ * real-home path and a bare home-prefix test would reject the entire suite.
34
+ * Neither exemption can reach the production store, which lives under the real
35
+ * home's `.opencode`.
36
+ */
37
+ export function assertTestRunNeverTouchesRealHome(path) {
38
+ if (!process.env.VITEST)
39
+ return;
40
+ let realHome;
41
+ try {
42
+ realHome = os.userInfo().homedir;
43
+ }
44
+ catch {
45
+ return;
46
+ }
47
+ if (!realHome || !isWithinDirectory(realHome, path))
48
+ return;
49
+ // A root exempts what lies beneath it only while it does not itself swallow
50
+ // the real home. Without that clause `OC_CODEX_TEST_HOME=/` or `TMPDIR=$HOME`
51
+ // would disarm the guard completely.
52
+ const exempts = (root) => !!root && !isWithinDirectory(root, realHome) && isWithinDirectory(root, path);
53
+ if (exempts(process.env.OC_CODEX_TEST_HOME))
54
+ return;
55
+ if (exempts(os.tmpdir()))
56
+ return;
57
+ throw new StorageError(`Refusing to touch account storage inside the real home directory during a test run: ${path}`, TEST_HOME_ESCAPE_CODE, path, "A test resolved account storage against the developer's real home. Point HOME at a temp directory for the whole vitest process (see vitest.config.ts) instead of overriding it per test.");
58
+ }
59
+ //# sourceMappingURL=test-home-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-home-guard.js","sourceRoot":"","sources":["../../../lib/storage/test-home-guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iCAAiC,CAAC,IAAY;IAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO;IAEhC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO;IAE5D,4EAA4E;IAC5E,8EAA8E;IAC9E,qCAAqC;IACrC,MAAM,OAAO,GAAG,CAAC,IAAwB,EAAW,EAAE,CACpD,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEhF,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAAE,OAAO;IACpD,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAAE,OAAO;IAEjC,MAAM,IAAI,YAAY,CACpB,uFAAuF,IAAI,EAAE,EAC7F,qBAAqB,EACrB,IAAI,EACJ,0LAA0L,CAC3L,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-dashboard.d.ts","sourceRoot":"","sources":["../../../lib/tools/codex-dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAarE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CA+PzE"}
1
+ {"version":3,"file":"codex-dashboard.d.ts","sourceRoot":"","sources":["../../../lib/tools/codex-dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAarE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAgQzE"}
@@ -95,6 +95,7 @@ export function createCodexDashboardTool(ctx) {
95
95
  ...buildJsonAccountIdentity(entry.index, {
96
96
  includeSensitive: includeSensitiveOutput,
97
97
  account: storage.accounts[entry.index],
98
+ peerAccounts: storage.accounts,
98
99
  }),
99
100
  eligible: entry.eligible,
100
101
  healthScore: entry.healthScore,
@@ -125,7 +126,7 @@ export function createCodexDashboardTool(ctx) {
125
126
  lines.push("");
126
127
  lines.push(...formatUiSection(ui, "Account eligibility"));
127
128
  for (const entry of explainability) {
128
- const label = formatCommandAccountLabel(storage.accounts[entry.index], entry.index, { maskEmail });
129
+ const label = formatCommandAccountLabel(storage.accounts[entry.index], entry.index, { maskEmail, peerAccounts: storage.accounts });
129
130
  const state = entry.eligible
130
131
  ? formatUiBadge(ui, "eligible", "success")
131
132
  : formatUiBadge(ui, "blocked", "warning");
@@ -158,7 +159,7 @@ export function createCodexDashboardTool(ctx) {
158
159
  lines.push("");
159
160
  lines.push("Account eligibility:");
160
161
  for (const entry of explainability) {
161
- const label = formatCommandAccountLabel(storage.accounts[entry.index], entry.index, { maskEmail });
162
+ const label = formatCommandAccountLabel(storage.accounts[entry.index], entry.index, { maskEmail, peerAccounts: storage.accounts });
162
163
  lines.push(` - ${label}: ${entry.eligible ? "eligible" : "blocked"} | health=${Math.round(entry.healthScore)} | tokens=${entry.tokensAvailable.toFixed(1)} | reasons=${entry.reasons.join(", ")}`);
163
164
  }
164
165
  lines.push("");