oc-codex-multi-auth 6.3.2 → 6.3.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.
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Account stale-state repair helpers used by `codex-doctor --fix`.
3
+ *
4
+ * Background (issue #171): after a successful token refresh, an account can
5
+ * still be skipped by rotation because it carries stale account-health state
6
+ * that nothing in the normal request path clears:
7
+ *
8
+ * - an `auth-failure` / `network-error` cooldown left over from a transient
9
+ * failure that has since recovered, and/or
10
+ * - `rateLimitResetTimes` entries that point at a future reset that no longer
11
+ * reflects real quota (the user's own `--pure` requests succeed, proving the
12
+ * account is usable).
13
+ *
14
+ * A successful token refresh is strong, explicit evidence that the credential
15
+ * is alive, so when the user runs the explicit `--fix` repair we clear that
16
+ * stale state for the refreshed account. The next genuine 401/429 re-establishes
17
+ * accurate state, so the blast radius of clearing is a single real retry.
18
+ *
19
+ * These helpers are intentionally pure (operate on a mutable record, return what
20
+ * changed) so they can be unit-tested without the AccountManager or the plugin
21
+ * runtime.
22
+ */
23
+ /**
24
+ * Subset of a stored account record this module mutates. Kept permissive so the
25
+ * doctor can pass `AccountMetadataV3` records without coupling to the full
26
+ * schema shape.
27
+ */
28
+ export interface StaleStateAccount {
29
+ coolingDownUntil?: number;
30
+ cooldownReason?: string;
31
+ rateLimitResetTimes?: Record<string, number | undefined>;
32
+ }
33
+ export interface ClearedStaleState {
34
+ /** True when an active cooldown window was cleared. */
35
+ clearedCooldown: boolean;
36
+ /** Number of rate-limit reset entries removed. */
37
+ clearedRateLimitKeys: number;
38
+ }
39
+ /**
40
+ * Clear stale health state from an account that has just been proven healthy
41
+ * (its token refresh succeeded this run).
42
+ *
43
+ * - Removes any cooldown (`coolingDownUntil` / `cooldownReason`). A successful
44
+ * refresh contradicts both `auth-failure` (auth just worked) and
45
+ * `network-error` (the network call just worked) cooldowns.
46
+ * - Removes all `rateLimitResetTimes` entries. On an explicit repair, a stale
47
+ * future-dated reset is exactly the dark-state bug from #171; the next real
48
+ * 429 re-sets it accurately.
49
+ *
50
+ * @returns what was cleared, so the caller can report it.
51
+ */
52
+ export declare function clearRefreshedAccountStaleState(account: StaleStateAccount): ClearedStaleState;
53
+ export interface StaleStateRepairSummary {
54
+ /** Accounts that had an active cooldown cleared. */
55
+ cooldownsCleared: number;
56
+ /** Total rate-limit reset entries removed across all accounts. */
57
+ rateLimitKeysCleared: number;
58
+ }
59
+ /**
60
+ * Apply {@link clearRefreshedAccountStaleState} across the given accounts and
61
+ * return an aggregate summary. Only call this for accounts whose refresh
62
+ * succeeded.
63
+ */
64
+ export declare function clearRefreshedAccountsStaleState(accounts: StaleStateAccount[]): StaleStateRepairSummary;
65
+ /**
66
+ * Subset of a stored account used for duplicate detection. Permissive on
67
+ * purpose so callers can pass full `AccountMetadataV3` records.
68
+ */
69
+ export interface DuplicateScanAccount {
70
+ organizationId?: string;
71
+ accountIdSource?: string;
72
+ email?: string;
73
+ enabled?: boolean;
74
+ }
75
+ /**
76
+ * Detect disabled `token`-source duplicates that shadow an enabled,
77
+ * org-backed real account sharing the same email (issue #171).
78
+ *
79
+ * A fresh host re-login can mint a `accountIdSource: "token"` entry from the
80
+ * raw auth token instead of updating the matching `org`-source account. When
81
+ * that token entry is left `enabled: false`, it is harmless for rotation but
82
+ * pollutes diagnostics (account count, TUI quota cache index) and confuses
83
+ * recovery. We only *flag* these — never auto-remove — because a `token`-source
84
+ * and an `org`-source record are linked solely by email, and email-only merges
85
+ * are exactly what multi-org handling (#64) must not collapse blindly. Removal
86
+ * stays a user decision (`codex-remove`).
87
+ *
88
+ * @returns the 0-based indexes of disabled token-source duplicates.
89
+ */
90
+ export declare function findDisabledTokenSourceDuplicates(accounts: DuplicateScanAccount[]): number[];
91
+ /**
92
+ * Subset of a stored account used for the read-only stale-state diagnostic.
93
+ */
94
+ export interface StaleStateScanAccount {
95
+ enabled?: boolean;
96
+ coolingDownUntil?: number;
97
+ cooldownReason?: string;
98
+ rateLimitResetTimes?: Record<string, number | undefined>;
99
+ }
100
+ /**
101
+ * Identify enabled accounts that are currently blocked ONLY by a future-dated
102
+ * cooldown and/or future-dated rate-limit reset — i.e. the exact dark state from
103
+ * issue #171 that `codex-doctor --fix` can recover (a successful token refresh
104
+ * proves the credential is alive, so the block is stale).
105
+ *
106
+ * This is read-only (it mutates nothing) so both `codex-health` and the
107
+ * non-`--fix` `codex-doctor` path can surface the finding and point the user at
108
+ * the repair. Expired cooldowns / rate-limits are ignored because the normal
109
+ * request path already clears those.
110
+ *
111
+ * @returns the 0-based indexes of accounts blocked by recoverable stale state.
112
+ */
113
+ export declare function findStaleRecoverableAccounts(accounts: StaleStateScanAccount[], now?: number): number[];
114
+ /**
115
+ * Subset of a stored account used for the absorbed-credential diagnostic.
116
+ */
117
+ export interface FreshCredentialScanAccount {
118
+ enabled?: boolean;
119
+ expiresAt?: number;
120
+ accessToken?: string;
121
+ }
122
+ /**
123
+ * Identify accounts that are DISABLED yet carry a fresh (unexpired) access
124
+ * token — the fingerprint of a user-disabled account that absorbed a newer
125
+ * enabled re-login during dedup (issue #171).
126
+ *
127
+ * The merge is intentionally fail-closed: a user-disabled record stays disabled
128
+ * even after it absorbs a fresh credential. That is correct, but it is silent —
129
+ * the absorbing record is org-source AND disabled, so it is skipped by every
130
+ * other #171 diagnostic and the user gets no hint that a fresh login they just
131
+ * performed landed on a deliberately-disabled slot. This read-only detector
132
+ * surfaces that case so tooling can suggest re-enabling the account if intended.
133
+ *
134
+ * Read-only: mutates nothing, and never re-enables (that stays a user decision).
135
+ *
136
+ * @returns the 0-based indexes of disabled accounts holding a fresh credential.
137
+ */
138
+ export declare function findDisabledAccountsWithFreshCredential(accounts: FreshCredentialScanAccount[], now?: number): number[];
139
+ //# sourceMappingURL=stale-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-state.d.ts","sourceRoot":"","sources":["../../../lib/accounts/stale-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,iBAAiB;IACjC,uDAAuD;IACvD,eAAe,EAAE,OAAO,CAAC;IACzB,kDAAkD;IAClD,oBAAoB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAC9C,OAAO,EAAE,iBAAiB,GACxB,iBAAiB,CAsBnB;AAED,MAAM,WAAW,uBAAuB;IACvC,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC/C,QAAQ,EAAE,iBAAiB,EAAE,GAC3B,uBAAuB,CASzB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iCAAiC,CAChD,QAAQ,EAAE,oBAAoB,EAAE,GAC9B,MAAM,EAAE,CAgCV;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAC3C,QAAQ,EAAE,qBAAqB,EAAE,EACjC,GAAG,GAAE,MAAgB,GACnB,MAAM,EAAE,CAyBV;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uCAAuC,CACtD,QAAQ,EAAE,0BAA0B,EAAE,EACtC,GAAG,GAAE,MAAgB,GACnB,MAAM,EAAE,CAeV"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Account stale-state repair helpers used by `codex-doctor --fix`.
3
+ *
4
+ * Background (issue #171): after a successful token refresh, an account can
5
+ * still be skipped by rotation because it carries stale account-health state
6
+ * that nothing in the normal request path clears:
7
+ *
8
+ * - an `auth-failure` / `network-error` cooldown left over from a transient
9
+ * failure that has since recovered, and/or
10
+ * - `rateLimitResetTimes` entries that point at a future reset that no longer
11
+ * reflects real quota (the user's own `--pure` requests succeed, proving the
12
+ * account is usable).
13
+ *
14
+ * A successful token refresh is strong, explicit evidence that the credential
15
+ * is alive, so when the user runs the explicit `--fix` repair we clear that
16
+ * stale state for the refreshed account. The next genuine 401/429 re-establishes
17
+ * accurate state, so the blast radius of clearing is a single real retry.
18
+ *
19
+ * These helpers are intentionally pure (operate on a mutable record, return what
20
+ * changed) so they can be unit-tested without the AccountManager or the plugin
21
+ * runtime.
22
+ */
23
+ import { nowMs } from "../utils.js";
24
+ /**
25
+ * Clear stale health state from an account that has just been proven healthy
26
+ * (its token refresh succeeded this run).
27
+ *
28
+ * - Removes any cooldown (`coolingDownUntil` / `cooldownReason`). A successful
29
+ * refresh contradicts both `auth-failure` (auth just worked) and
30
+ * `network-error` (the network call just worked) cooldowns.
31
+ * - Removes all `rateLimitResetTimes` entries. On an explicit repair, a stale
32
+ * future-dated reset is exactly the dark-state bug from #171; the next real
33
+ * 429 re-sets it accurately.
34
+ *
35
+ * @returns what was cleared, so the caller can report it.
36
+ */
37
+ export function clearRefreshedAccountStaleState(account) {
38
+ const now = nowMs();
39
+ const hadActiveCooldown = typeof account.coolingDownUntil === "number" && account.coolingDownUntil > now;
40
+ if (account.coolingDownUntil !== undefined || account.cooldownReason !== undefined) {
41
+ delete account.coolingDownUntil;
42
+ delete account.cooldownReason;
43
+ }
44
+ let clearedRateLimitKeys = 0;
45
+ if (account.rateLimitResetTimes) {
46
+ clearedRateLimitKeys = Object.keys(account.rateLimitResetTimes).length;
47
+ if (clearedRateLimitKeys > 0) {
48
+ account.rateLimitResetTimes = {};
49
+ }
50
+ }
51
+ return {
52
+ clearedCooldown: hadActiveCooldown,
53
+ clearedRateLimitKeys,
54
+ };
55
+ }
56
+ /**
57
+ * Apply {@link clearRefreshedAccountStaleState} across the given accounts and
58
+ * return an aggregate summary. Only call this for accounts whose refresh
59
+ * succeeded.
60
+ */
61
+ export function clearRefreshedAccountsStaleState(accounts) {
62
+ let cooldownsCleared = 0;
63
+ let rateLimitKeysCleared = 0;
64
+ for (const account of accounts) {
65
+ const cleared = clearRefreshedAccountStaleState(account);
66
+ if (cleared.clearedCooldown)
67
+ cooldownsCleared += 1;
68
+ rateLimitKeysCleared += cleared.clearedRateLimitKeys;
69
+ }
70
+ return { cooldownsCleared, rateLimitKeysCleared };
71
+ }
72
+ /**
73
+ * Detect disabled `token`-source duplicates that shadow an enabled,
74
+ * org-backed real account sharing the same email (issue #171).
75
+ *
76
+ * A fresh host re-login can mint a `accountIdSource: "token"` entry from the
77
+ * raw auth token instead of updating the matching `org`-source account. When
78
+ * that token entry is left `enabled: false`, it is harmless for rotation but
79
+ * pollutes diagnostics (account count, TUI quota cache index) and confuses
80
+ * recovery. We only *flag* these — never auto-remove — because a `token`-source
81
+ * and an `org`-source record are linked solely by email, and email-only merges
82
+ * are exactly what multi-org handling (#64) must not collapse blindly. Removal
83
+ * stays a user decision (`codex-remove`).
84
+ *
85
+ * @returns the 0-based indexes of disabled token-source duplicates.
86
+ */
87
+ export function findDisabledTokenSourceDuplicates(accounts) {
88
+ const enabledOrgEmails = new Set();
89
+ for (const account of accounts) {
90
+ const email = account.email?.trim().toLowerCase();
91
+ if (!email)
92
+ continue;
93
+ const isEnabled = account.enabled !== false;
94
+ const isOrgBacked = account.accountIdSource === "org" ||
95
+ (typeof account.organizationId === "string" && account.organizationId.trim().length > 0);
96
+ if (isEnabled && isOrgBacked) {
97
+ enabledOrgEmails.add(email);
98
+ }
99
+ }
100
+ if (enabledOrgEmails.size === 0)
101
+ return [];
102
+ const duplicates = [];
103
+ for (let i = 0; i < accounts.length; i += 1) {
104
+ const account = accounts[i];
105
+ if (!account)
106
+ continue;
107
+ if (account.enabled !== false)
108
+ continue;
109
+ if (account.accountIdSource !== "token")
110
+ continue;
111
+ const hasOrg = typeof account.organizationId === "string" && account.organizationId.trim().length > 0;
112
+ if (hasOrg)
113
+ continue;
114
+ const email = account.email?.trim().toLowerCase();
115
+ if (!email)
116
+ continue;
117
+ if (enabledOrgEmails.has(email)) {
118
+ duplicates.push(i);
119
+ }
120
+ }
121
+ return duplicates;
122
+ }
123
+ /**
124
+ * Identify enabled accounts that are currently blocked ONLY by a future-dated
125
+ * cooldown and/or future-dated rate-limit reset — i.e. the exact dark state from
126
+ * issue #171 that `codex-doctor --fix` can recover (a successful token refresh
127
+ * proves the credential is alive, so the block is stale).
128
+ *
129
+ * This is read-only (it mutates nothing) so both `codex-health` and the
130
+ * non-`--fix` `codex-doctor` path can surface the finding and point the user at
131
+ * the repair. Expired cooldowns / rate-limits are ignored because the normal
132
+ * request path already clears those.
133
+ *
134
+ * @returns the 0-based indexes of accounts blocked by recoverable stale state.
135
+ */
136
+ export function findStaleRecoverableAccounts(accounts, now = nowMs()) {
137
+ const blocked = [];
138
+ for (let i = 0; i < accounts.length; i += 1) {
139
+ const account = accounts[i];
140
+ if (!account)
141
+ continue;
142
+ if (account.enabled === false)
143
+ continue;
144
+ const hasFutureCooldown = typeof account.coolingDownUntil === "number" && account.coolingDownUntil > now;
145
+ let hasFutureRateLimit = false;
146
+ if (account.rateLimitResetTimes) {
147
+ for (const reset of Object.values(account.rateLimitResetTimes)) {
148
+ if (typeof reset === "number" && reset > now) {
149
+ hasFutureRateLimit = true;
150
+ break;
151
+ }
152
+ }
153
+ }
154
+ if (hasFutureCooldown || hasFutureRateLimit) {
155
+ blocked.push(i);
156
+ }
157
+ }
158
+ return blocked;
159
+ }
160
+ /**
161
+ * Identify accounts that are DISABLED yet carry a fresh (unexpired) access
162
+ * token — the fingerprint of a user-disabled account that absorbed a newer
163
+ * enabled re-login during dedup (issue #171).
164
+ *
165
+ * The merge is intentionally fail-closed: a user-disabled record stays disabled
166
+ * even after it absorbs a fresh credential. That is correct, but it is silent —
167
+ * the absorbing record is org-source AND disabled, so it is skipped by every
168
+ * other #171 diagnostic and the user gets no hint that a fresh login they just
169
+ * performed landed on a deliberately-disabled slot. This read-only detector
170
+ * surfaces that case so tooling can suggest re-enabling the account if intended.
171
+ *
172
+ * Read-only: mutates nothing, and never re-enables (that stays a user decision).
173
+ *
174
+ * @returns the 0-based indexes of disabled accounts holding a fresh credential.
175
+ */
176
+ export function findDisabledAccountsWithFreshCredential(accounts, now = nowMs()) {
177
+ const flagged = [];
178
+ for (let i = 0; i < accounts.length; i += 1) {
179
+ const account = accounts[i];
180
+ if (!account)
181
+ continue;
182
+ if (account.enabled !== false)
183
+ continue;
184
+ const hasToken = typeof account.accessToken === "string" && account.accessToken.length > 0;
185
+ const fresh = typeof account.expiresAt === "number" && account.expiresAt > now;
186
+ if (hasToken && fresh) {
187
+ flagged.push(i);
188
+ }
189
+ }
190
+ return flagged;
191
+ }
192
+ //# sourceMappingURL=stale-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-state.js","sourceRoot":"","sources":["../../../lib/accounts/stale-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login-runner.d.ts","sourceRoot":"","sources":["../../../lib/auth/login-runner.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE;;;;GAIG;AACH,KAAK,sBAAsB,GAAG;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,sBAAsB,EACtE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,GACP,CAAC,CAmFH;AAED,KAAK,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAE9D,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,uBAAuB,CAAC;IACjC,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CACtC,OAAO,EAAE,uBAAuB,EAAE,EAClC,UAAU,EAAE,OAAO,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC3C,uBAAuB,EACvB,mBAAmB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,cAAc,CACnF,CAAC;AAqBF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,sBAAsB,CA8DpF;AAED,wBAAgB,8BAA8B,CAC7C,SAAS,EAAE,sBAAsB,EACjC,SAAS,EAAE,yBAAyB,GAClC,sBAAsB,CAsCxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CACpD,SAAS,EAAE,sBAAsB,EACjC,OAAO,CAAC,EAAE;IACT,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,GACC,OAAO,CAAC,sBAAsB,CAAC,CAgBjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,iCAAiC,CACtD,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;IACT,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,GACC,OAAO,CAAC,sBAAsB,CAAC,CAMjC;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,uBAAuB,EAAE,EAClC,UAAU,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CA+ff"}
1
+ {"version":3,"file":"login-runner.d.ts","sourceRoot":"","sources":["../../../lib/auth/login-runner.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE;;;;GAIG;AACH,KAAK,sBAAsB,GAAG;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,sBAAsB,EACtE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,GACP,CAAC,CAmFH;AAED,KAAK,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAE9D,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,uBAAuB,CAAC;IACjC,sBAAsB,EAAE,uBAAuB,EAAE,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CACtC,OAAO,EAAE,uBAAuB,EAAE,EAClC,UAAU,EAAE,OAAO,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC3C,uBAAuB,EACvB,mBAAmB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,cAAc,CACnF,CAAC;AAqBF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,sBAAsB,CA8DpF;AAED,wBAAgB,8BAA8B,CAC7C,SAAS,EAAE,sBAAsB,EACjC,SAAS,EAAE,yBAAyB,GAClC,sBAAsB,CAsCxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CACpD,SAAS,EAAE,sBAAsB,EACjC,OAAO,CAAC,EAAE;IACT,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,GACC,OAAO,CAAC,sBAAsB,CAAC,CAgBjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,iCAAiC,CACtD,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;IACT,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,GACC,OAAO,CAAC,sBAAsB,CAAC,CAMjC;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,uBAAuB,EAAE,EAClC,UAAU,GAAE,OAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CAmgBf"}
@@ -395,7 +395,11 @@ export async function persistAccountPool(results, replaceAll = false) {
395
395
  const organizationId = account.organizationId?.trim();
396
396
  const accountId = account.accountId?.trim();
397
397
  const refreshToken = account.refreshToken?.trim();
398
- const email = account.email?.trim();
398
+ // Lowercase the email index key to match the lookup side
399
+ // (sanitizeEmail) and getExactIdentityKey; a trim-only key here let a
400
+ // mixed-case re-login miss its existing no-org entry and append a
401
+ // duplicate (#171 email-identity consistency).
402
+ const email = sanitizeEmail(account.email);
399
403
  if (refreshToken) {
400
404
  pushIndex(byRefreshTokenGlobal, refreshToken, i);
401
405
  }
@@ -1 +1 @@
1
- {"version":3,"file":"login-runner.js","sourceRoot":"","sources":["../../../lib/auth/login-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login-runner.js","sourceRoot":"","sources":["../../../lib/auth/login-runner.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,32 @@
13
13
  */
14
14
  export declare const DEACTIVATED_WORKSPACE_ERROR_CODE = "deactivated_workspace";
15
15
  export declare const USAGE_REQUEST_TIMEOUT_MESSAGE = "Usage request timed out";
16
+ /**
17
+ * Matches the "authentication token has been invalidated" auth failure that the
18
+ * Codex/OpenAI backend returns (HTTP 401) when a stored account's access token
19
+ * has been revoked server-side — for example after the user re-runs
20
+ * `opencode auth login` on another machine.
21
+ *
22
+ * This is the *request-path* counterpart to the token-refresh failure path: the
23
+ * stored access token can still look unexpired locally, so no proactive refresh
24
+ * fires, yet the upstream rejects it mid-request. The orchestrator in `index.ts`
25
+ * and the `codex-health`/`codex-doctor` probe use this matcher to treat such a
26
+ * response as an account-health failure (cool down + rotate / flag) instead of
27
+ * bubbling the 401 straight back to the caller and pinning every request to the
28
+ * dead account slot.
29
+ *
30
+ * The pattern tolerates the "(run `opencode auth login` if this persists)" hint
31
+ * the plugin appends to 401 bodies and minor wording variants.
32
+ *
33
+ * The second branch deliberately requires an explicit token/credential keyword
34
+ * before "sign in again": this matcher is also used on the status-less
35
+ * codex-health/codex-doctor probe path, where a bare "please sign in again"
36
+ * could otherwise come from a generic session-expiry, workspace-lock, or
37
+ * license error (e.g. a 402/403 body) and wrongly flag a healthy account as
38
+ * token-invalid.
39
+ */
40
+ export declare const INVALIDATED_AUTH_TOKEN_MESSAGE_PATTERN: RegExp;
41
+ export declare function isInvalidatedAuthTokenMessage(message: string | undefined): boolean;
16
42
  export declare function createDeactivatedWorkspaceError(): Error;
17
43
  export declare function isDeactivatedWorkspaceErrorMessage(message: string | undefined): boolean;
18
44
  export declare function createUsageRequestTimeoutError(): Error;
@@ -1 +1 @@
1
- {"version":3,"file":"error-sentinels.d.ts","sourceRoot":"","sources":["../../lib/error-sentinels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC,0BAA0B,CAAC;AACxE,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AAEvE,wBAAgB,+BAA+B,IAAI,KAAK,CAEvD;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvF;AAED,wBAAgB,8BAA8B,IAAI,KAAK,CAEtD;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEjF"}
1
+ {"version":3,"file":"error-sentinels.d.ts","sourceRoot":"","sources":["../../lib/error-sentinels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC,0BAA0B,CAAC;AACxE,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,sCAAsC,QACmE,CAAC;AAEvH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGlF;AAED,wBAAgB,+BAA+B,IAAI,KAAK,CAEvD;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvF;AAED,wBAAgB,8BAA8B,IAAI,KAAK,CAEtD;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEjF"}
@@ -13,6 +13,36 @@
13
13
  */
14
14
  export const DEACTIVATED_WORKSPACE_ERROR_CODE = "deactivated_workspace";
15
15
  export const USAGE_REQUEST_TIMEOUT_MESSAGE = "Usage request timed out";
16
+ /**
17
+ * Matches the "authentication token has been invalidated" auth failure that the
18
+ * Codex/OpenAI backend returns (HTTP 401) when a stored account's access token
19
+ * has been revoked server-side — for example after the user re-runs
20
+ * `opencode auth login` on another machine.
21
+ *
22
+ * This is the *request-path* counterpart to the token-refresh failure path: the
23
+ * stored access token can still look unexpired locally, so no proactive refresh
24
+ * fires, yet the upstream rejects it mid-request. The orchestrator in `index.ts`
25
+ * and the `codex-health`/`codex-doctor` probe use this matcher to treat such a
26
+ * response as an account-health failure (cool down + rotate / flag) instead of
27
+ * bubbling the 401 straight back to the caller and pinning every request to the
28
+ * dead account slot.
29
+ *
30
+ * The pattern tolerates the "(run `opencode auth login` if this persists)" hint
31
+ * the plugin appends to 401 bodies and minor wording variants.
32
+ *
33
+ * The second branch deliberately requires an explicit token/credential keyword
34
+ * before "sign in again": this matcher is also used on the status-less
35
+ * codex-health/codex-doctor probe path, where a bare "please sign in again"
36
+ * could otherwise come from a generic session-expiry, workspace-lock, or
37
+ * license error (e.g. a 402/403 body) and wrongly flag a healthy account as
38
+ * token-invalid.
39
+ */
40
+ export const INVALIDATED_AUTH_TOKEN_MESSAGE_PATTERN = /token has been invalidated|(?:authentication|auth|access|session|login)\s+token\b[^.]*\bsign(?:ing)?[\s-]*in again/i;
41
+ export function isInvalidatedAuthTokenMessage(message) {
42
+ if (!message)
43
+ return false;
44
+ return INVALIDATED_AUTH_TOKEN_MESSAGE_PATTERN.test(message);
45
+ }
16
46
  export function createDeactivatedWorkspaceError() {
17
47
  return new Error(DEACTIVATED_WORKSPACE_ERROR_CODE);
18
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error-sentinels.js","sourceRoot":"","sources":["../../lib/error-sentinels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,uBAAuB,CAAC;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;AAEvE,MAAM,UAAU,+BAA+B;IAC9C,OAAO,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,OAA2B;IAC7E,OAAO,OAAO,KAAK,gCAAgC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC7C,OAAO,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAA2B;IACvE,OAAO,OAAO,KAAK,6BAA6B,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"error-sentinels.js","sourceRoot":"","sources":["../../lib/error-sentinels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,uBAAuB,CAAC;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAClD,qHAAqH,CAAC;AAEvH,MAAM,UAAU,6BAA6B,CAAC,OAA2B;IACxE,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,sCAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC9C,OAAO,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,OAA2B;IAC7E,OAAO,OAAO,KAAK,gCAAgC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC7C,OAAO,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAA2B;IACvE,OAAO,OAAO,KAAK,6BAA6B,CAAC;AAClD,CAAC"}
@@ -13,6 +13,17 @@ export interface EntitlementError {
13
13
  code: string;
14
14
  message: string;
15
15
  }
16
+ /**
17
+ * Build an AbortError for caller-cancellation during retry/backoff waits.
18
+ *
19
+ * The request retry loop (index.ts) awaits sleeps that watch the caller
20
+ * AbortSignal. A bare `new Error("Aborted")` surfaced as an opaque, unnamed
21
+ * error and dropped `signal.reason` (issue #176). This mirrors the fetch-path
22
+ * behavior and the `isAbortError` convention in lib/codex-usage.ts: when the
23
+ * signal carries an Error reason it is propagated as-is; otherwise a fresh
24
+ * Error named "AbortError" is returned (carrying a string reason if present).
25
+ */
26
+ export declare function createAbortError(signal?: AbortSignal | null): Error;
16
27
  export declare const DEFAULT_UNSUPPORTED_CODEX_FALLBACK_CHAIN: Record<string, string[]>;
17
28
  export interface UnsupportedCodexModelInfo {
18
29
  isUnsupported: boolean;
@@ -64,6 +75,21 @@ export interface ErrorDiagnostics {
64
75
  threadId?: string;
65
76
  httpStatus?: number;
66
77
  }
78
+ /**
79
+ * Detects the "authentication token invalidated" failure on the *request* path
80
+ * (as opposed to the token-refresh path in {@link refreshAndUpdateToken}).
81
+ *
82
+ * The backend returns HTTP 401 with a body like
83
+ * "Your authentication token has been invalidated. Please try signing in
84
+ * again." When the access token presented for a request is rejected, the owning
85
+ * account must be cooled down and the request rotated to the next healthy
86
+ * account — otherwise persisted family routing keeps pinning every request to
87
+ * the dead account slot (issue #171).
88
+ *
89
+ * Driven primarily by the HTTP 401 status; the structured code and message are
90
+ * fallbacks for paths (probe/exception) that only carry an error string.
91
+ */
92
+ export declare function isInvalidatedAuthTokenError(errorBody: unknown, status?: number): boolean;
67
93
  export declare function isDeactivatedWorkspaceError(errorBody: unknown, status?: number): boolean;
68
94
  /**
69
95
  * Determines if the current auth token needs to be refreshed
@@ -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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"}