oc-codex-multi-auth 6.11.2 → 6.11.4

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 (40) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +47 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/accounts/persistence.d.ts +21 -0
  5. package/dist/lib/accounts/persistence.d.ts.map +1 -1
  6. package/dist/lib/accounts/persistence.js +63 -2
  7. package/dist/lib/accounts/persistence.js.map +1 -1
  8. package/dist/lib/accounts/rotation.d.ts +35 -0
  9. package/dist/lib/accounts/rotation.d.ts.map +1 -1
  10. package/dist/lib/accounts/rotation.js +82 -6
  11. package/dist/lib/accounts/rotation.js.map +1 -1
  12. package/dist/lib/accounts/state.d.ts +9 -0
  13. package/dist/lib/accounts/state.d.ts.map +1 -1
  14. package/dist/lib/accounts/state.js +97 -16
  15. package/dist/lib/accounts/state.js.map +1 -1
  16. package/dist/lib/accounts.d.ts +7 -0
  17. package/dist/lib/accounts.d.ts.map +1 -1
  18. package/dist/lib/accounts.js +24 -0
  19. package/dist/lib/accounts.js.map +1 -1
  20. package/dist/lib/auth/auth.d.ts.map +1 -1
  21. package/dist/lib/auth/auth.js +6 -2
  22. package/dist/lib/auth/auth.js.map +1 -1
  23. package/dist/lib/auth/login-runner.d.ts.map +1 -1
  24. package/dist/lib/auth/login-runner.js +9 -2
  25. package/dist/lib/auth/login-runner.js.map +1 -1
  26. package/dist/lib/auth/scopes.d.ts +8 -0
  27. package/dist/lib/auth/scopes.d.ts.map +1 -1
  28. package/dist/lib/auth/scopes.js +11 -0
  29. package/dist/lib/auth/scopes.js.map +1 -1
  30. package/dist/lib/quota-windows.d.ts +59 -0
  31. package/dist/lib/quota-windows.d.ts.map +1 -0
  32. package/dist/lib/quota-windows.js +130 -0
  33. package/dist/lib/quota-windows.js.map +1 -0
  34. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  35. package/dist/lib/request/fetch-helpers.js +30 -5
  36. package/dist/lib/request/fetch-helpers.js.map +1 -1
  37. package/dist/lib/tui-quota-cache.d.ts.map +1 -1
  38. package/dist/lib/tui-quota-cache.js +5 -51
  39. package/dist/lib/tui-quota-cache.js.map +1 -1
  40. package/package.json +1 -1
@@ -11,6 +11,7 @@ import { MODEL_FAMILIES } from "../prompts/codex.js";
11
11
  import { registerCleanup, unregisterCleanup } from "../shutdown.js";
12
12
  import { withAccountStorageTransaction, } from "../storage.js";
13
13
  import { getWorkspaceIdentityKey } from "../storage/identity.js";
14
+ import { nowMs } from "../utils.js";
14
15
  import { clampNonNegativeInt } from "./rate-limits.js";
15
16
  const log = createLogger("accounts");
16
17
  /**
@@ -52,8 +53,11 @@ export class AccountPersistence {
52
53
  addedAt: account.addedAt,
53
54
  lastUsed: account.lastUsed,
54
55
  lastSwitchReason: account.lastSwitchReason,
56
+ // Copied, not referenced: adoptLongerDiskRateLimits merges the
57
+ // on-disk blocks into this payload, and it must not reach back
58
+ // through a shared reference into live rotation state.
55
59
  rateLimitResetTimes: Object.keys(account.rateLimitResetTimes).length > 0
56
- ? account.rateLimitResetTimes
60
+ ? { ...account.rateLimitResetTimes }
57
61
  : undefined,
58
62
  coolingDownUntil: account.coolingDownUntil,
59
63
  cooldownReason: account.cooldownReason,
@@ -70,11 +74,65 @@ export class AccountPersistence {
70
74
  // persisting.
71
75
  await withAccountStorageTransaction(async (current, persist) => {
72
76
  if (current) {
77
+ // Before adoptNewerDiskCredentials: for records without workspace
78
+ // ids the refresh token participates in the identity key, and
79
+ // adopting a rotated token would change which disk record this
80
+ // account matches.
81
+ this.adoptLongerDiskRateLimits(storage, current);
73
82
  this.adoptNewerDiskCredentials(storage, current);
74
83
  }
75
84
  await persist(storage);
76
85
  });
77
86
  }
87
+ /**
88
+ * Merges still-active rate-limit blocks from `disk` into `outgoing`, keeping
89
+ * whichever block runs longer per quota key.
90
+ *
91
+ * Rate-limit state is otherwise last-writer-wins, which is fine for a 5h
92
+ * window that both processes rediscover within minutes. It is not fine for a
93
+ * quota block: a second opencode process holding a stale snapshot would save
94
+ * over the weekly block another process had just recorded, and the exhausted
95
+ * account would be back in rotation after the next reload (issue #218).
96
+ *
97
+ * Only blocks still in the future are adopted, so an expired entry another
98
+ * process has not pruned yet cannot be resurrected, and a block this process
99
+ * deliberately cleared stays cleared once it has elapsed. `codex-doctor --fix`
100
+ * is unaffected: it persists through its own storage transaction rather than
101
+ * this method.
102
+ *
103
+ * Live in-memory state is intentionally left alone — unlike a consumed
104
+ * refresh token, a missing block is self-correcting, since the very next
105
+ * response re-applies it from the quota headers.
106
+ */
107
+ adoptLongerDiskRateLimits(outgoing, disk) {
108
+ const now = nowMs();
109
+ const diskByIdentity = new Map();
110
+ for (const record of disk.accounts) {
111
+ diskByIdentity.set(getWorkspaceIdentityKey(record), record);
112
+ }
113
+ for (const mine of outgoing.accounts) {
114
+ if (!mine)
115
+ continue;
116
+ const theirs = diskByIdentity.get(getWorkspaceIdentityKey(mine));
117
+ const theirResets = theirs?.rateLimitResetTimes;
118
+ if (!theirResets)
119
+ continue;
120
+ for (const [key, theirReset] of Object.entries(theirResets)) {
121
+ if (typeof theirReset !== "number" ||
122
+ !Number.isFinite(theirReset) ||
123
+ theirReset <= now) {
124
+ continue;
125
+ }
126
+ const myReset = mine.rateLimitResetTimes?.[key];
127
+ if (typeof myReset === "number" && myReset >= theirReset)
128
+ continue;
129
+ mine.rateLimitResetTimes = {
130
+ ...(mine.rateLimitResetTimes ?? {}),
131
+ [key]: theirReset,
132
+ };
133
+ }
134
+ }
135
+ }
78
136
  /**
79
137
  * Merges credentials from `disk` into `outgoing` (and the live in-memory
80
138
  * accounts) for every account whose on-disk refresh token differs and
@@ -104,7 +162,10 @@ export class AccountPersistence {
104
162
  mine.refreshToken = theirs.refreshToken;
105
163
  mine.accessToken = theirs.accessToken;
106
164
  mine.expiresAt = theirs.expiresAt;
107
- mine.oauthScope = theirs.oauthScope ?? mine.oauthScope;
165
+ // Truthy, not `??`: a legacy record can hold an empty-string scope, and
166
+ // `??` would let it overwrite a good in-memory value. Matches the live
167
+ // mirror below (issue #213).
168
+ mine.oauthScope = theirs.oauthScope || mine.oauthScope;
108
169
  mine.tokenRotatedAt = theirs.tokenRotatedAt;
109
170
  // Mirror into live state so this process stops refreshing with the
110
171
  // consumed token. Matched by identity key rather than array index:
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../lib/accounts/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../lib/accounts/persistence.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAoB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACN,6BAA6B,GAG7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAErC;;;GAGG;AACH,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAExC,MAAM,OAAO,kBAAkB;IAKD;IAJrB,iBAAiB,GAAyC,IAAI,CAAC;IAC/D,WAAW,GAAyB,IAAI,CAAC;IACzC,eAAe,GAAiC,IAAI,CAAC;IAE7D,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,KAAK,CAAC,UAAU;QACf,MAAM,mBAAmB,GAAyC,EAAE,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAC3D,mBAAmB,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAqB;YACjC,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC/C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,WAAW,EAAE,OAAO,CAAC,MAAM;gBAC3B,SAAS,EAAE,OAAO,CAAC,OAAO;gBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBACtD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,+DAA+D;gBAC/D,+DAA+D;gBAC/D,uDAAuD;gBACvD,mBAAmB,EAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,GAAG,CAAC;oBAClD,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE;oBACpC,CAAC,CAAC,SAAS;gBACb,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,cAAc,EAAE,OAAO,CAAC,cAAc;aACtC,CAAC,CAAC;YACH,WAAW;YACX,mBAAmB;SACnB,CAAC;QAEF,mEAAmE;QACnE,oEAAoE;QACpE,gEAAgE;QAChE,oEAAoE;QACpE,+DAA+D;QAC/D,kEAAkE;QAClE,cAAc;QACd,MAAM,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;YAC9D,IAAI,OAAO,EAAE,CAAC;gBACb,kEAAkE;gBAClE,8DAA8D;gBAC9D,+DAA+D;gBAC/D,mBAAmB;gBACnB,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjD,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACK,yBAAyB,CAChC,QAA0B,EAC1B,IAAsB;QAEtB,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC5D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,MAAM,EAAE,mBAAmB,CAAC;YAChD,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7D,IACC,OAAO,UAAU,KAAK,QAAQ;oBAC9B,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC5B,UAAU,IAAI,GAAG,EAChB,CAAC;oBACF,SAAS;gBACV,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC;gBAChD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,UAAU;oBAAE,SAAS;gBACnE,IAAI,CAAC,mBAAmB,GAAG;oBAC1B,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC;oBACnC,CAAC,GAAG,CAAC,EAAE,UAAU;iBACjB,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACK,yBAAyB,CAChC,QAA0B,EAC1B,IAAsB;QAEtB,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC5D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,EAAE,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxE,SAAS;YACV,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE,CAAC;gBAChE,SAAS;YACV,CAAC;YAED,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAClC,wEAAwE;YACxE,uEAAuE;YACvE,6BAA6B;YAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;YACvD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAE5C,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,iEAAiE;YACjE,+DAA+D;YAC/D,iEAAiE;YACjE,yCAAyC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,SAAS,CAAC,KAAK,YAAY,CAClE,CAAC;YACF,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;gBACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;gBACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;gBAChC,IAAI,MAAM,CAAC,UAAU;oBAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC3D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAC7C,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,+CAA+C,EAAE;gBACzD,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,MAAM,CAAC,cAAc;aAChC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,mBAAmB,CAAC,OAAO,GAAG,GAAG;QAChC,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;gBACzB,IAAI,CAAC;oBACJ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACtB,MAAM,IAAI,CAAC,WAAW,CAAC;oBACxB,CAAC;oBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;wBACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACzB,CAAC,CAAC,CAAC;oBACH,MAAM,IAAI,CAAC,WAAW,CAAC;gBACxB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;wBACjC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC7D,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC,CAAC;YACF,KAAK,MAAM,EAAE,CAAC;QACf,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,WAAW,CAAC;QACxB,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACK,6BAA6B;QACpC,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YACzC,iEAAiE;YACjE,iEAAiE;YACjE,mEAAmE;YACnE,mEAAmE;YACnE,+DAA+D;YAC/D,gCAAgC;YAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,YAAY,GAAyC,IAAI,CAAC;YAC9D,IAAI,CAAC;gBACJ,MAAM,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAC,gBAAgB,EAAE;oBACvB,IAAI,OAAO,CAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;wBACtC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;4BAC9B,MAAM,CACL,IAAI,KAAK,CACR,oCAAoC,yBAAyB,IAAI,CACjE,CACD,CAAC;wBACH,CAAC,EAAE,yBAAyB,CAAC,CAAC;oBAC/B,CAAC,CAAC;iBACF,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACjC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC7D,CAAC,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACV,IAAI,YAAY;oBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,sBAAsB;QACrB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC7B,CAAC;CACD"}
@@ -60,7 +60,42 @@ export declare class AccountRotation {
60
60
  */
61
61
  refundToken(account: ManagedAccount, family: ModelFamily, model?: string | null): boolean;
62
62
  markRateLimited(account: ManagedAccount, retryAfterMs: number, family: ModelFamily, model?: string | null): void;
63
+ /**
64
+ * The quota keys a (family, model) block covers: the family-wide key, plus
65
+ * the model-scoped one when a model is named.
66
+ */
67
+ private getBlockedQuotaKeys;
68
+ /**
69
+ * Write a rate-limit reset for `key`, keeping whichever block runs longer.
70
+ *
71
+ * Every writer goes through here so a later, shorter block can never shorten
72
+ * an existing one: a concurrent in-flight request that lands a plain 429 with
73
+ * a 30s retry-after must not pull a week-long weekly-quota block forward
74
+ * (issue #218). A stale past value can never win, because any reset written
75
+ * here is at or after `nowMs()`, and expired entries are dropped by
76
+ * `clearExpiredRateLimits` on the next selection pass anyway.
77
+ *
78
+ * @returns true when the stored reset moved later.
79
+ */
80
+ private extendRateLimitReset;
63
81
  markRateLimitedWithReason(account: ManagedAccount, retryAfterMs: number, family: ModelFamily, reason: RateLimitReason, model?: string | null): void;
82
+ /**
83
+ * Block an account until a quota window the backend reported as fully spent
84
+ * resets (issue #218).
85
+ *
86
+ * Differs from {@link markRateLimitedWithReason} in taking an ABSOLUTE reset
87
+ * stamp, so a week-long weekly-quota block is never rebuilt from a capped or
88
+ * backed-off retry delay. Like every writer it goes through
89
+ * {@link extendRateLimitReset}, so it neither shortens an existing block nor
90
+ * can be shortened by a later one.
91
+ *
92
+ * The block rides on the same persisted `rateLimitResetTimes` map as server
93
+ * 429s, so it survives restarts and is shared with other processes through
94
+ * the accounts file, and it expires on its own via `clearExpiredRateLimits`.
95
+ *
96
+ * @returns true when a new (or longer) block was written.
97
+ */
98
+ markQuotaExhausted(account: ManagedAccount, resetAtMs: number, family: ModelFamily, model?: string | null): boolean;
64
99
  markAccountCoolingDown(account: ManagedAccount, cooldownMs: number, reason: CooldownReason): void;
65
100
  /**
66
101
  * Mark every in-memory account sharing a refresh token as cooling down.
@@ -1 +1 @@
1
- {"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../../lib/accounts/rotation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAKN,KAAK,sBAAsB,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAIN,KAAK,eAAe,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D,qBAAa,eAAe;IACf,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAEhD;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,6BAA6B;IAmBrC,OAAO,CAAC,iBAAiB;IAOzB,yBAAyB,CACxB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GACrC,cAAc,GAAG,IAAI;IA2BxB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI;IAoBnF,+BAA+B,CAC9B,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,sBAAsB,EAChC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GACrC,cAAc,GAAG,IAAI;IA6DxB;;;;;;;;;;;;;;;OAeG;IACH,+BAA+B,CAC9B,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GACrC,cAAc,GAAG,IAAI;IAwCxB,aAAa,CACZ,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAKP,eAAe,CACd,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAMP,aAAa,CACZ,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAKP,YAAY,CACX,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO;IAKV;;;;OAIG;IACH,WAAW,CACV,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO;IAKV,eAAe,CACd,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAIP,yBAAyB,CACxB,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,eAAe,EACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAeP,sBAAsB,CACrB,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACpB,IAAI;IAMP;;;OAGG;IACH,uCAAuC,CACtC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACpB,MAAM;IAUT,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;CA+C3E"}
1
+ {"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../../lib/accounts/rotation.ts"],"names":[],"mappings":"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"}
@@ -218,17 +218,93 @@ export class AccountRotation {
218
218
  markRateLimited(account, retryAfterMs, family, model) {
219
219
  this.markRateLimitedWithReason(account, retryAfterMs, family, "unknown", model);
220
220
  }
221
+ /**
222
+ * The quota keys a (family, model) block covers: the family-wide key, plus
223
+ * the model-scoped one when a model is named.
224
+ */
225
+ getBlockedQuotaKeys(family, model) {
226
+ const keys = [getQuotaKey(family)];
227
+ if (model)
228
+ keys.push(getQuotaKey(family, model));
229
+ return keys;
230
+ }
231
+ /**
232
+ * Write a rate-limit reset for `key`, keeping whichever block runs longer.
233
+ *
234
+ * Every writer goes through here so a later, shorter block can never shorten
235
+ * an existing one: a concurrent in-flight request that lands a plain 429 with
236
+ * a 30s retry-after must not pull a week-long weekly-quota block forward
237
+ * (issue #218). A stale past value can never win, because any reset written
238
+ * here is at or after `nowMs()`, and expired entries are dropped by
239
+ * `clearExpiredRateLimits` on the next selection pass anyway.
240
+ *
241
+ * @returns true when the stored reset moved later.
242
+ */
243
+ extendRateLimitReset(account, key, resetAt) {
244
+ const existing = account.rateLimitResetTimes[key];
245
+ if (typeof existing === "number" &&
246
+ Number.isFinite(existing) &&
247
+ existing >= resetAt) {
248
+ return false;
249
+ }
250
+ account.rateLimitResetTimes[key] = resetAt;
251
+ return true;
252
+ }
221
253
  markRateLimitedWithReason(account, retryAfterMs, family, reason, model) {
222
254
  const retryMs = Math.max(0, Math.floor(retryAfterMs));
223
- const resetAt = nowMs() + retryMs;
224
- const baseKey = getQuotaKey(family);
225
- account.rateLimitResetTimes[baseKey] = resetAt;
226
- if (model) {
227
- const modelKey = getQuotaKey(family, model);
228
- account.rateLimitResetTimes[modelKey] = resetAt;
255
+ const keys = this.getBlockedQuotaKeys(family, model);
256
+ if (retryMs === 0) {
257
+ // A zero-length rate limit is not a block, it is the caller saying the
258
+ // window has elapsed. Clearing keeps the long-standing behavior: the
259
+ // old code wrote `nowMs()`, which clearExpiredRateLimits dropped on the
260
+ // next pass. It has to be explicit now, because the monotonic write
261
+ // below would otherwise preserve the very block the caller just
262
+ // declared expired. Nothing in the request path passes 0 — every
263
+ // server-derived delay is at least 1ms.
264
+ for (const key of keys)
265
+ delete account.rateLimitResetTimes[key];
229
266
  }
267
+ else {
268
+ const resetAt = nowMs() + retryMs;
269
+ for (const key of keys) {
270
+ this.extendRateLimitReset(account, key, resetAt);
271
+ }
272
+ }
273
+ // Set unconditionally even when the existing block already ran longer:
274
+ // this records the reason for the most recent 429, not for the block.
230
275
  account.lastRateLimitReason = reason;
231
276
  }
277
+ /**
278
+ * Block an account until a quota window the backend reported as fully spent
279
+ * resets (issue #218).
280
+ *
281
+ * Differs from {@link markRateLimitedWithReason} in taking an ABSOLUTE reset
282
+ * stamp, so a week-long weekly-quota block is never rebuilt from a capped or
283
+ * backed-off retry delay. Like every writer it goes through
284
+ * {@link extendRateLimitReset}, so it neither shortens an existing block nor
285
+ * can be shortened by a later one.
286
+ *
287
+ * The block rides on the same persisted `rateLimitResetTimes` map as server
288
+ * 429s, so it survives restarts and is shared with other processes through
289
+ * the accounts file, and it expires on its own via `clearExpiredRateLimits`.
290
+ *
291
+ * @returns true when a new (or longer) block was written.
292
+ */
293
+ markQuotaExhausted(account, resetAtMs, family, model) {
294
+ if (!Number.isFinite(resetAtMs))
295
+ return false;
296
+ const resetAt = Math.floor(resetAtMs);
297
+ if (resetAt <= nowMs())
298
+ return false;
299
+ let changed = false;
300
+ for (const key of this.getBlockedQuotaKeys(family, model)) {
301
+ if (this.extendRateLimitReset(account, key, resetAt))
302
+ changed = true;
303
+ }
304
+ if (changed)
305
+ account.lastRateLimitReason = "quota";
306
+ return changed;
307
+ }
232
308
  markAccountCoolingDown(account, cooldownMs, reason) {
233
309
  const ms = Math.max(0, Math.floor(cooldownMs));
234
310
  account.coolingDownUntil = nowMs() + ms;
@@ -1 +1 @@
1
- {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../../lib/accounts/rotation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../../lib/accounts/rotation.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,15 @@ export declare class AccountState {
61
61
  * the lost-update fix for shared-refresh-token accounts.
62
62
  */
63
63
  incrementAuthFailuresChain: Map<string, Promise<number>>;
64
+ /**
65
+ * Set when `initializeFromStorage` re-enabled an account that an earlier
66
+ * build had wrongly disabled for missing scopes. The repair happens in
67
+ * memory, so it must be flushed to disk or every surface that reads storage
68
+ * directly keeps showing the stale disabled state and re-auth note.
69
+ * `consumeScopeRepairs()` clears it, so the extra write happens once.
70
+ */
71
+ private scopeRepairsPending;
72
+ consumeScopeRepairs(): boolean;
64
73
  initializeFromStorage(authFallback: OAuthAuthDetails | undefined, stored: AccountStorageV3 | null | undefined): void;
65
74
  hasRefreshToken(refreshToken: string): boolean;
66
75
  getAccountCount(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/accounts/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/accounts/state.ts"],"names":[],"mappings":"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"}
@@ -10,20 +10,27 @@ import { MODEL_FAMILIES } from "../prompts/codex.js";
10
10
  import { nowMs } from "../utils.js";
11
11
  import { clampNonNegativeInt, clearExpiredRateLimits, getQuotaKey, isRateLimitedForFamily, } from "./rate-limits.js";
12
12
  import { extractAccountEmail, extractAccountId, sanitizeEmail, shouldUpdateAccountIdFromToken, } from "../auth/token-utils.js";
13
- import { getMissingRequiredOAuthScopes } from "../auth/scopes.js";
13
+ import { getMissingRequiredOAuthScopes, normalizeScope } from "../auth/scopes.js";
14
14
  import { getHealthTracker, getTokenTracker } from "../rotation.js";
15
15
  import { remapRateLimitBackoffAfterRemoval } from "../request/rate-limit-backoff.js";
16
16
  import { logWarn } from "../logger.js";
17
17
  function initFamilyState(defaultValue) {
18
18
  return Object.fromEntries(MODEL_FAMILIES.map((family) => [family, defaultValue]));
19
19
  }
20
+ /**
21
+ * Replaces any re-auth note already on the record with one describing the
22
+ * currently missing scopes, keeping operator-authored text intact.
23
+ *
24
+ * Replace, not append: the previous exact-match guard only recognized an
25
+ * identical sentence, so a record whose missing set had changed since it was
26
+ * written — the whole 6.11.2 population, once a real scope became known —
27
+ * ended up carrying both sentences, the stale one first and contradicting the
28
+ * accurate one.
29
+ */
20
30
  function appendReauthNote(accountNote, missingScopes) {
21
31
  const suffix = `Re-auth required for missing OAuth scope(s): ${missingScopes.join(", ")}.`;
22
- if (!accountNote)
23
- return suffix;
24
- if (accountNote.includes(suffix))
25
- return accountNote;
26
- return `${accountNote} ${suffix}`;
32
+ const preserved = stripReauthNote(accountNote);
33
+ return preserved ? `${preserved} ${suffix}` : suffix;
27
34
  }
28
35
  const MISSING_SCOPE_NOTE_MARKER = "Re-auth required for missing OAuth scope(s):";
29
36
  function hasExplicitOAuthScope(scope) {
@@ -32,9 +39,54 @@ function hasExplicitOAuthScope(scope) {
32
39
  function hasMissingScopeReauthNote(accountNote) {
33
40
  return typeof accountNote === "string" && accountNote.includes(MISSING_SCOPE_NOTE_MARKER);
34
41
  }
42
+ /**
43
+ * Removes a re-auth note this class previously appended, preserving any
44
+ * operator-authored text that came before it. `appendReauthNote` always appends
45
+ * its sentence last, so everything from the marker onward is ours to drop.
46
+ */
47
+ function stripReauthNote(accountNote) {
48
+ if (!accountNote)
49
+ return undefined;
50
+ const markerIndex = accountNote.indexOf(MISSING_SCOPE_NOTE_MARKER);
51
+ if (markerIndex < 0)
52
+ return accountNote;
53
+ const preserved = accountNote.slice(0, markerIndex).trim();
54
+ return preserved.length > 0 ? preserved : undefined;
55
+ }
56
+ /**
57
+ * Required-scope check that only fires when the granted scope is actually
58
+ * known. Absent scope metadata means "unknown", NOT "nothing was granted":
59
+ * `refreshAccessToken` deliberately omits `scope` when the token response does,
60
+ * and host credentials restored by the OpenAI backfill carry no scope either.
61
+ * Treating that absence as a total scope failure disabled freshly-authenticated
62
+ * accounts with "missing: openid, profile, email, offline_access" (issue #213).
63
+ */
64
+ function getEnforceableMissingOAuthScopes(scope) {
65
+ return hasExplicitOAuthScope(scope) ? getMissingRequiredOAuthScopes(scope) : [];
66
+ }
67
+ /**
68
+ * Same check across several records of the *same* grant — typically the pool's
69
+ * stored scope and the host credential's scope. If any known source shows the
70
+ * required scopes, the account is fine; disabling on the weaker of two sources
71
+ * would strand an account the other already vouches for. When none satisfies,
72
+ * the smallest missing set wins so the note reports the best evidence held.
73
+ */
74
+ function getEnforceableMissingOAuthScopesAcross(scopes) {
75
+ let fewestMissing;
76
+ for (const scope of scopes) {
77
+ if (!hasExplicitOAuthScope(scope))
78
+ continue;
79
+ const missing = getMissingRequiredOAuthScopes(scope);
80
+ if (missing.length === 0)
81
+ return [];
82
+ if (!fewestMissing || missing.length < fewestMissing.length) {
83
+ fewestMissing = missing;
84
+ }
85
+ }
86
+ return fewestMissing ?? [];
87
+ }
35
88
  function getAuthScope(auth) {
36
- const scope = auth?.scope;
37
- return typeof scope === "string" && scope.trim() ? scope : undefined;
89
+ return normalizeScope(auth?.scope);
38
90
  }
39
91
  export class AccountState {
40
92
  accounts = [];
@@ -50,11 +102,24 @@ export class AccountState {
50
102
  * the lost-update fix for shared-refresh-token accounts.
51
103
  */
52
104
  incrementAuthFailuresChain = new Map();
105
+ /**
106
+ * Set when `initializeFromStorage` re-enabled an account that an earlier
107
+ * build had wrongly disabled for missing scopes. The repair happens in
108
+ * memory, so it must be flushed to disk or every surface that reads storage
109
+ * directly keeps showing the stale disabled state and re-auth note.
110
+ * `consumeScopeRepairs()` clears it, so the extra write happens once.
111
+ */
112
+ scopeRepairsPending = false;
113
+ consumeScopeRepairs() {
114
+ const pending = this.scopeRepairsPending;
115
+ this.scopeRepairsPending = false;
116
+ return pending;
117
+ }
53
118
  initializeFromStorage(authFallback, stored) {
54
119
  const fallbackAccountId = extractAccountId(authFallback?.access);
55
120
  const fallbackAccountEmail = sanitizeEmail(extractAccountEmail(authFallback?.access));
56
121
  const fallbackOAuthScope = getAuthScope(authFallback);
57
- const fallbackMissingOAuthScopes = getMissingRequiredOAuthScopes(fallbackOAuthScope);
122
+ const fallbackMissingOAuthScopes = getEnforceableMissingOAuthScopes(fallbackOAuthScope);
58
123
  if (stored && stored.accounts.length > 0) {
59
124
  const baseNow = nowMs();
60
125
  this.accounts = stored.accounts
@@ -62,7 +127,9 @@ export class AccountState {
62
127
  if (!account.refreshToken || typeof account.refreshToken !== "string") {
63
128
  return null;
64
129
  }
65
- const accountOAuthScope = account.oauthScope;
130
+ // Canonicalize at the load boundary so a legacy blank on disk is
131
+ // carried as absent rather than as an explicit empty grant.
132
+ const accountOAuthScope = normalizeScope(account.oauthScope);
66
133
  const matchesFallback = !!authFallback &&
67
134
  ((fallbackAccountId && account.accountId === fallbackAccountId) ||
68
135
  account.refreshToken === authFallback.refresh ||
@@ -70,9 +137,21 @@ export class AccountState {
70
137
  sanitizeEmail(account.email) === fallbackAccountEmail));
71
138
  const refreshToken = matchesFallback && authFallback ? authFallback.refresh : account.refreshToken;
72
139
  const oauthScope = matchesFallback && fallbackOAuthScope ? fallbackOAuthScope : accountOAuthScope;
73
- const hasExplicitScope = hasExplicitOAuthScope(accountOAuthScope);
74
- const shouldEnforceScope = hasExplicitScope || hasMissingScopeReauthNote(account.accountNote);
75
- const missingOAuthScopes = shouldEnforceScope ? getMissingRequiredOAuthScopes(oauthScope) : [];
140
+ // The stored record and the matching host credential describe the
141
+ // same grant, so weigh both before disabling anything.
142
+ const missingOAuthScopes = getEnforceableMissingOAuthScopesAcross(matchesFallback
143
+ ? [accountOAuthScope, fallbackOAuthScope]
144
+ : [accountOAuthScope]);
145
+ // An account this class disabled carries the re-auth note. Once the
146
+ // scope check stops firing, undo our own damage instead of leaving
147
+ // it disabled forever — 6.11.2 disabled accounts whose scope was
148
+ // merely unknown, and re-login alone could not clear that (#213).
149
+ // A note-less `enabled: false` stays disabled: that one is the
150
+ // operator's own choice.
151
+ const disabledByScopeCheck = account.enabled === false && hasMissingScopeReauthNote(account.accountNote);
152
+ if (disabledByScopeCheck && missingOAuthScopes.length === 0) {
153
+ this.scopeRepairsPending = true;
154
+ }
76
155
  return {
77
156
  index,
78
157
  accountId: matchesFallback
@@ -84,13 +163,15 @@ export class AccountState {
84
163
  accountTags: account.accountTags,
85
164
  accountNote: missingOAuthScopes.length > 0
86
165
  ? appendReauthNote(account.accountNote, missingOAuthScopes)
87
- : account.accountNote,
166
+ : disabledByScopeCheck
167
+ ? stripReauthNote(account.accountNote)
168
+ : account.accountNote,
88
169
  email: matchesFallback
89
170
  ? fallbackAccountEmail ?? sanitizeEmail(account.email)
90
171
  : sanitizeEmail(account.email),
91
172
  refreshToken,
92
- enabled: account.enabled !== false &&
93
- (!shouldEnforceScope || missingOAuthScopes.length === 0),
173
+ enabled: missingOAuthScopes.length === 0 &&
174
+ (disabledByScopeCheck || account.enabled !== false),
94
175
  access: matchesFallback && authFallback ? authFallback.access : account.accessToken,
95
176
  expires: matchesFallback && authFallback ? authFallback.expires : account.expiresAt,
96
177
  oauthScope,
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/accounts/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/accounts/state.ts"],"names":[],"mappings":"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"}