opencode-openai-codex-multi-auth 4.5.5 → 4.5.9
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.
- package/README.md +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +356 -48
- package/dist/index.js.map +1 -1
- package/dist/lib/account-matching.d.ts.map +1 -1
- package/dist/lib/account-matching.js +3 -37
- package/dist/lib/account-matching.js.map +1 -1
- package/dist/lib/accounts.d.ts +22 -1
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +291 -56
- package/dist/lib/accounts.js.map +1 -1
- package/dist/lib/auth/auth.d.ts +5 -0
- package/dist/lib/auth/auth.d.ts.map +1 -1
- package/dist/lib/auth/auth.js +19 -1
- package/dist/lib/auth/auth.js.map +1 -1
- package/dist/lib/cli.d.ts +7 -1
- package/dist/lib/cli.d.ts.map +1 -1
- package/dist/lib/cli.js +57 -3
- package/dist/lib/cli.js.map +1 -1
- package/dist/lib/config.d.ts +8 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +35 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/formatting.d.ts +9 -0
- package/dist/lib/formatting.d.ts.map +1 -0
- package/dist/lib/formatting.js +71 -0
- package/dist/lib/formatting.js.map +1 -0
- package/dist/lib/oauth-success.html +1 -1
- package/dist/lib/rate-limit.d.ts +36 -0
- package/dist/lib/rate-limit.d.ts.map +1 -0
- package/dist/lib/rate-limit.js +78 -0
- package/dist/lib/rate-limit.js.map +1 -0
- package/dist/lib/refresh-queue.d.ts +37 -0
- package/dist/lib/refresh-queue.d.ts.map +1 -0
- package/dist/lib/refresh-queue.js +83 -0
- package/dist/lib/refresh-queue.js.map +1 -0
- package/dist/lib/rotation.d.ts +1 -1
- package/dist/lib/rotation.d.ts.map +1 -1
- package/dist/lib/rotation.js +15 -3
- package/dist/lib/rotation.js.map +1 -1
- package/dist/lib/storage.d.ts +20 -0
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +502 -108
- package/dist/lib/storage.js.map +1 -1
- package/dist/lib/types.d.ts +45 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +11 -5
package/dist/lib/accounts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { decodeJWT, refreshAccessToken } from "./auth/auth.js";
|
|
2
2
|
import { JWT_CLAIM_PATH } from "./constants.js";
|
|
3
|
-
import { loadAccounts, saveAccounts } from "./storage.js";
|
|
3
|
+
import { backupAccountsFile, loadAccounts, saveAccounts } from "./storage.js";
|
|
4
4
|
import { MODEL_FAMILIES } from "./prompts/codex.js";
|
|
5
5
|
import { getHealthTracker, getTokenTracker, selectHybridAccount } from "./rotation.js";
|
|
6
6
|
import { findAccountMatchIndex } from "./account-matching.js";
|
|
@@ -56,6 +56,7 @@ const PLAN_TYPE_LABELS = {
|
|
|
56
56
|
enterprise: "Enterprise",
|
|
57
57
|
edu: "Edu",
|
|
58
58
|
};
|
|
59
|
+
const HYDRATION_ATTEMPT_COOLDOWN_MS = 60_000;
|
|
59
60
|
function normalizePlanType(planType) {
|
|
60
61
|
if (typeof planType !== "string")
|
|
61
62
|
return undefined;
|
|
@@ -97,6 +98,15 @@ export function formatWaitTime(ms) {
|
|
|
97
98
|
return `${minutes}m ${seconds}s`;
|
|
98
99
|
return `${seconds}s`;
|
|
99
100
|
}
|
|
101
|
+
function hasCompleteIdentity(account) {
|
|
102
|
+
return Boolean(account.accountId && account.email && account.plan);
|
|
103
|
+
}
|
|
104
|
+
function isAccountEnabled(account) {
|
|
105
|
+
return account.enabled !== false;
|
|
106
|
+
}
|
|
107
|
+
export function needsIdentityHydration(accounts) {
|
|
108
|
+
return accounts.some((account) => isAccountEnabled(account) && !hasCompleteIdentity(account));
|
|
109
|
+
}
|
|
100
110
|
function clearExpiredRateLimits(account) {
|
|
101
111
|
const now = nowMs();
|
|
102
112
|
for (const key of Object.keys(account.rateLimitResetTimes)) {
|
|
@@ -119,6 +129,55 @@ function isRateLimitedForFamily(account, family, model) {
|
|
|
119
129
|
const baseKey = getQuotaKey(family);
|
|
120
130
|
return isRateLimitedForQuotaKey(account, baseKey);
|
|
121
131
|
}
|
|
132
|
+
async function migrateLegacyAccounts(storage) {
|
|
133
|
+
const needsMigration = storage.accounts.some((record) => !hasCompleteIdentity(record));
|
|
134
|
+
if (!needsMigration)
|
|
135
|
+
return storage;
|
|
136
|
+
let updated = false;
|
|
137
|
+
const migratedAccounts = [];
|
|
138
|
+
for (const record of storage.accounts) {
|
|
139
|
+
if (hasCompleteIdentity(record)) {
|
|
140
|
+
migratedAccounts.push(record);
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
if (!record.refreshToken) {
|
|
144
|
+
migratedAccounts.push(record);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const result = await refreshAccessToken(record.refreshToken);
|
|
148
|
+
if (result.type !== "success") {
|
|
149
|
+
migratedAccounts.push(record);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
const token = result.idToken ?? result.access;
|
|
153
|
+
const accountId = extractAccountId(token);
|
|
154
|
+
const email = sanitizeEmail(extractAccountEmail(token));
|
|
155
|
+
const plan = extractAccountPlan(token);
|
|
156
|
+
if (!accountId || !email || !plan) {
|
|
157
|
+
migratedAccounts.push(record);
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
updated = true;
|
|
161
|
+
migratedAccounts.push({
|
|
162
|
+
...record,
|
|
163
|
+
accountId,
|
|
164
|
+
email,
|
|
165
|
+
plan,
|
|
166
|
+
refreshToken: result.refresh,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
if (!updated)
|
|
170
|
+
return storage;
|
|
171
|
+
const backupPath = await backupAccountsFile();
|
|
172
|
+
if (!backupPath)
|
|
173
|
+
return storage;
|
|
174
|
+
const migrated = {
|
|
175
|
+
...storage,
|
|
176
|
+
accounts: migratedAccounts,
|
|
177
|
+
};
|
|
178
|
+
await saveAccounts(migrated);
|
|
179
|
+
return migrated;
|
|
180
|
+
}
|
|
122
181
|
function mergeAccountRecords(existing, incoming) {
|
|
123
182
|
const merged = existing.map((account) => ({
|
|
124
183
|
...account,
|
|
@@ -157,6 +216,9 @@ function mergeAccountRecords(existing, incoming) {
|
|
|
157
216
|
if (!updated.plan && candidate.plan) {
|
|
158
217
|
updated.plan = candidate.plan;
|
|
159
218
|
}
|
|
219
|
+
if (typeof candidate.enabled === "boolean" && candidate.enabled !== updated.enabled) {
|
|
220
|
+
updated.enabled = candidate.enabled;
|
|
221
|
+
}
|
|
160
222
|
if (typeof candidate.addedAt === "number" &&
|
|
161
223
|
Number.isFinite(candidate.addedAt) &&
|
|
162
224
|
(typeof updated.addedAt !== "number" || candidate.addedAt < updated.addedAt)) {
|
|
@@ -217,40 +279,28 @@ export class AccountManager {
|
|
|
217
279
|
};
|
|
218
280
|
lastToastAccountIndex = -1;
|
|
219
281
|
lastToastTime = 0;
|
|
282
|
+
refreshInFlight = new Map();
|
|
283
|
+
lastHydrationAttemptAt = null;
|
|
220
284
|
static async loadFromDisk(authFallback) {
|
|
221
285
|
const stored = await loadAccounts();
|
|
222
|
-
|
|
286
|
+
const migrated = stored ? await migrateLegacyAccounts(stored) : stored;
|
|
287
|
+
return new AccountManager(authFallback, migrated);
|
|
223
288
|
}
|
|
224
289
|
constructor(authFallback, stored) {
|
|
225
290
|
const fallbackAccountId = extractAccountId(authFallback?.access);
|
|
226
291
|
const fallbackEmail = sanitizeEmail(extractAccountEmail(authFallback?.access));
|
|
227
292
|
const fallbackPlan = extractAccountPlan(authFallback?.access);
|
|
293
|
+
const hasFallbackIdentity = Boolean(fallbackAccountId && fallbackEmail && fallbackPlan);
|
|
228
294
|
if (stored && stored.accounts.length > 0) {
|
|
229
295
|
const baseNow = nowMs();
|
|
230
296
|
const fallbackMatchIndex = (() => {
|
|
231
|
-
if (!authFallback)
|
|
297
|
+
if (!authFallback || !hasFallbackIdentity)
|
|
232
298
|
return -1;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
});
|
|
239
|
-
if (exact >= 0)
|
|
240
|
-
return exact;
|
|
241
|
-
}
|
|
242
|
-
if (authFallback.refresh) {
|
|
243
|
-
const refreshIndex = stored.accounts.findIndex((record) => record.refreshToken === authFallback.refresh);
|
|
244
|
-
if (refreshIndex >= 0)
|
|
245
|
-
return refreshIndex;
|
|
246
|
-
}
|
|
247
|
-
if (fallbackAccountId) {
|
|
248
|
-
const matches = stored.accounts.filter((record) => record.accountId === fallbackAccountId);
|
|
249
|
-
if (matches.length === 1) {
|
|
250
|
-
return stored.accounts.findIndex((record) => record.accountId === fallbackAccountId);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
return -1;
|
|
299
|
+
return findAccountMatchIndex(stored.accounts, {
|
|
300
|
+
accountId: fallbackAccountId,
|
|
301
|
+
plan: fallbackPlan,
|
|
302
|
+
email: fallbackEmail,
|
|
303
|
+
});
|
|
254
304
|
})();
|
|
255
305
|
this.accounts = stored.accounts
|
|
256
306
|
.map((record, index) => {
|
|
@@ -262,6 +312,7 @@ export class AccountManager {
|
|
|
262
312
|
accountId: matchesFallback ? fallbackAccountId ?? record.accountId : record.accountId,
|
|
263
313
|
email: matchesFallback ? fallbackEmail ?? record.email : sanitizeEmail(record.email),
|
|
264
314
|
plan: matchesFallback ? fallbackPlan ?? record.plan : record.plan,
|
|
315
|
+
enabled: record.enabled !== false,
|
|
265
316
|
refreshToken: matchesFallback && authFallback ? authFallback.refresh : record.refreshToken,
|
|
266
317
|
access: matchesFallback && authFallback ? authFallback.access : undefined,
|
|
267
318
|
expires: matchesFallback && authFallback ? authFallback.expires : undefined,
|
|
@@ -275,13 +326,14 @@ export class AccountManager {
|
|
|
275
326
|
})
|
|
276
327
|
.filter((a) => a !== null);
|
|
277
328
|
const hasMatchingFallback = !!authFallback && fallbackMatchIndex >= 0;
|
|
278
|
-
if (authFallback && !hasMatchingFallback) {
|
|
329
|
+
if (authFallback && hasFallbackIdentity && !hasMatchingFallback) {
|
|
279
330
|
const now = nowMs();
|
|
280
331
|
this.accounts.push({
|
|
281
332
|
index: this.accounts.length,
|
|
282
333
|
accountId: fallbackAccountId,
|
|
283
334
|
email: fallbackEmail,
|
|
284
335
|
plan: fallbackPlan,
|
|
336
|
+
enabled: true,
|
|
285
337
|
refreshToken: authFallback.refresh,
|
|
286
338
|
access: authFallback.access,
|
|
287
339
|
expires: authFallback.expires,
|
|
@@ -302,7 +354,7 @@ export class AccountManager {
|
|
|
302
354
|
}
|
|
303
355
|
return;
|
|
304
356
|
}
|
|
305
|
-
if (authFallback) {
|
|
357
|
+
if (authFallback && hasFallbackIdentity) {
|
|
306
358
|
const now = nowMs();
|
|
307
359
|
this.accounts = [
|
|
308
360
|
{
|
|
@@ -310,6 +362,7 @@ export class AccountManager {
|
|
|
310
362
|
accountId: fallbackAccountId,
|
|
311
363
|
email: fallbackEmail,
|
|
312
364
|
plan: fallbackPlan,
|
|
365
|
+
enabled: true,
|
|
313
366
|
refreshToken: authFallback.refresh,
|
|
314
367
|
access: authFallback.access,
|
|
315
368
|
expires: authFallback.expires,
|
|
@@ -326,11 +379,49 @@ export class AccountManager {
|
|
|
326
379
|
}
|
|
327
380
|
}
|
|
328
381
|
getAccountCount() {
|
|
329
|
-
return this.accounts.length;
|
|
382
|
+
return this.accounts.filter((account) => hasCompleteIdentity(account) && isAccountEnabled(account)).length;
|
|
383
|
+
}
|
|
384
|
+
getLegacyAccounts() {
|
|
385
|
+
return this.accounts.filter((account) => {
|
|
386
|
+
if (account.enabled === false)
|
|
387
|
+
return false;
|
|
388
|
+
if (account.enabled === undefined)
|
|
389
|
+
account.enabled = true;
|
|
390
|
+
return !hasCompleteIdentity(account);
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
removeAccountsByRefreshToken(tokens) {
|
|
394
|
+
if (tokens.size === 0)
|
|
395
|
+
return 0;
|
|
396
|
+
const indexMap = new Map();
|
|
397
|
+
const remaining = [];
|
|
398
|
+
for (const account of this.accounts) {
|
|
399
|
+
if (tokens.has(account.refreshToken))
|
|
400
|
+
continue;
|
|
401
|
+
const newIndex = remaining.length;
|
|
402
|
+
indexMap.set(account.index, newIndex);
|
|
403
|
+
remaining.push({ ...account, index: newIndex });
|
|
404
|
+
}
|
|
405
|
+
const removedCount = this.accounts.length - remaining.length;
|
|
406
|
+
this.accounts = remaining;
|
|
407
|
+
const fallbackIndex = this.accounts.length > 0 ? 0 : -1;
|
|
408
|
+
this.cursor = indexMap.get(this.cursor) ?? Math.max(0, fallbackIndex);
|
|
409
|
+
for (const family of MODEL_FAMILIES) {
|
|
410
|
+
const mapped = indexMap.get(this.currentAccountIndexByFamily[family]);
|
|
411
|
+
this.currentAccountIndexByFamily[family] = mapped ?? fallbackIndex;
|
|
412
|
+
if (mapped === undefined)
|
|
413
|
+
this.sessionOffsetApplied[family] = false;
|
|
414
|
+
}
|
|
415
|
+
return removedCount;
|
|
330
416
|
}
|
|
331
417
|
getAccountsSnapshot() {
|
|
332
418
|
return this.accounts.map((a) => ({ ...a, rateLimitResetTimes: { ...a.rateLimitResetTimes } }));
|
|
333
419
|
}
|
|
420
|
+
getAccountByIndex(index) {
|
|
421
|
+
if (!Number.isFinite(index))
|
|
422
|
+
return null;
|
|
423
|
+
return this.accounts[index] ?? null;
|
|
424
|
+
}
|
|
334
425
|
getActiveIndexForFamily(family) {
|
|
335
426
|
const idx = this.currentAccountIndexByFamily[family];
|
|
336
427
|
if (idx < 0 || idx >= this.accounts.length)
|
|
@@ -381,7 +472,8 @@ export class AccountManager {
|
|
|
381
472
|
if (strategy === "hybrid") {
|
|
382
473
|
const healthTracker = getHealthTracker();
|
|
383
474
|
const tokenTracker = getTokenTracker();
|
|
384
|
-
const
|
|
475
|
+
const eligibleAccounts = this.accounts.filter((acc) => hasCompleteIdentity(acc) && isAccountEnabled(acc));
|
|
476
|
+
const accountsWithMetrics = eligibleAccounts.map((acc) => {
|
|
385
477
|
clearExpiredRateLimits(acc);
|
|
386
478
|
return {
|
|
387
479
|
index: acc.index,
|
|
@@ -391,11 +483,13 @@ export class AccountManager {
|
|
|
391
483
|
isCoolingDown: this.isAccountCoolingDown(acc),
|
|
392
484
|
};
|
|
393
485
|
});
|
|
394
|
-
const
|
|
486
|
+
const currentIndex = this.currentAccountIndexByFamily[family] >= 0
|
|
487
|
+
? this.currentAccountIndexByFamily[family]
|
|
488
|
+
: null;
|
|
489
|
+
const selectedIndex = selectHybridAccount(accountsWithMetrics, tokenTracker, currentIndex);
|
|
395
490
|
if (selectedIndex !== null) {
|
|
396
491
|
const selected = this.accounts[selectedIndex];
|
|
397
492
|
if (selected) {
|
|
398
|
-
selected.lastUsed = nowMs();
|
|
399
493
|
this.currentAccountIndexByFamily[family] = selected.index;
|
|
400
494
|
return selected;
|
|
401
495
|
}
|
|
@@ -411,10 +505,9 @@ export class AccountManager {
|
|
|
411
505
|
return next;
|
|
412
506
|
}
|
|
413
507
|
const current = this.getCurrentAccountForFamily(family);
|
|
414
|
-
if (current) {
|
|
508
|
+
if (current && hasCompleteIdentity(current) && isAccountEnabled(current)) {
|
|
415
509
|
clearExpiredRateLimits(current);
|
|
416
510
|
if (!isRateLimitedForFamily(current, family, model) && !this.isAccountCoolingDown(current)) {
|
|
417
|
-
current.lastUsed = nowMs();
|
|
418
511
|
return current;
|
|
419
512
|
}
|
|
420
513
|
}
|
|
@@ -426,7 +519,10 @@ export class AccountManager {
|
|
|
426
519
|
getNextForFamily(family, model) {
|
|
427
520
|
const available = this.accounts.filter((a) => {
|
|
428
521
|
clearExpiredRateLimits(a);
|
|
429
|
-
return
|
|
522
|
+
return (hasCompleteIdentity(a) &&
|
|
523
|
+
isAccountEnabled(a) &&
|
|
524
|
+
!isRateLimitedForFamily(a, family, model) &&
|
|
525
|
+
!this.isAccountCoolingDown(a));
|
|
430
526
|
});
|
|
431
527
|
if (available.length === 0)
|
|
432
528
|
return null;
|
|
@@ -434,7 +530,6 @@ export class AccountManager {
|
|
|
434
530
|
if (!account)
|
|
435
531
|
return null;
|
|
436
532
|
this.cursor += 1;
|
|
437
|
-
account.lastUsed = nowMs();
|
|
438
533
|
return account;
|
|
439
534
|
}
|
|
440
535
|
markSwitched(account, reason, family) {
|
|
@@ -477,6 +572,12 @@ export class AccountManager {
|
|
|
477
572
|
this.lastToastAccountIndex = accountIndex;
|
|
478
573
|
this.lastToastTime = nowMs();
|
|
479
574
|
}
|
|
575
|
+
markAccountUsed(accountIndex) {
|
|
576
|
+
const account = this.accounts.find((a) => a.index === accountIndex);
|
|
577
|
+
if (!account)
|
|
578
|
+
return;
|
|
579
|
+
account.lastUsed = nowMs();
|
|
580
|
+
}
|
|
480
581
|
updateFromAuth(account, auth) {
|
|
481
582
|
account.refreshToken = auth.refresh;
|
|
482
583
|
account.access = auth.access;
|
|
@@ -495,17 +596,33 @@ export class AccountManager {
|
|
|
495
596
|
}
|
|
496
597
|
async hydrateMissingEmails() {
|
|
497
598
|
// Best-effort: refresh tokens to decode emails/accountId.
|
|
599
|
+
try {
|
|
600
|
+
await backupAccountsFile();
|
|
601
|
+
}
|
|
602
|
+
catch {
|
|
603
|
+
// ignore backup failures
|
|
604
|
+
}
|
|
498
605
|
for (const account of this.accounts) {
|
|
499
|
-
if (account.
|
|
606
|
+
if (account.enabled === false)
|
|
607
|
+
continue;
|
|
608
|
+
if (account.enabled === undefined)
|
|
609
|
+
account.enabled = true;
|
|
610
|
+
if (hasCompleteIdentity(account))
|
|
500
611
|
continue;
|
|
501
612
|
try {
|
|
502
|
-
const refreshed = await
|
|
613
|
+
const refreshed = await this.refreshAccountWithLock(account);
|
|
503
614
|
if (refreshed.type !== "success")
|
|
504
615
|
continue;
|
|
505
|
-
const
|
|
506
|
-
|
|
507
|
-
account.
|
|
508
|
-
|
|
616
|
+
const idToken = refreshed.idToken;
|
|
617
|
+
const accessToken = refreshed.access;
|
|
618
|
+
account.accountId =
|
|
619
|
+
extractAccountId(idToken) ?? extractAccountId(accessToken) ?? account.accountId;
|
|
620
|
+
account.email =
|
|
621
|
+
sanitizeEmail(extractAccountEmail(idToken)) ??
|
|
622
|
+
sanitizeEmail(extractAccountEmail(accessToken)) ??
|
|
623
|
+
account.email;
|
|
624
|
+
account.plan =
|
|
625
|
+
extractAccountPlan(idToken) ?? extractAccountPlan(accessToken) ?? account.plan;
|
|
509
626
|
account.refreshToken = refreshed.refresh;
|
|
510
627
|
}
|
|
511
628
|
catch {
|
|
@@ -513,9 +630,71 @@ export class AccountManager {
|
|
|
513
630
|
}
|
|
514
631
|
}
|
|
515
632
|
}
|
|
633
|
+
async repairLegacyAccounts() {
|
|
634
|
+
const repaired = [];
|
|
635
|
+
const quarantined = [];
|
|
636
|
+
for (const account of this.accounts) {
|
|
637
|
+
if (account.enabled === false)
|
|
638
|
+
continue;
|
|
639
|
+
if (account.enabled === undefined)
|
|
640
|
+
account.enabled = true;
|
|
641
|
+
if (hasCompleteIdentity(account))
|
|
642
|
+
continue;
|
|
643
|
+
try {
|
|
644
|
+
const refreshed = await this.refreshAccountWithLock(account);
|
|
645
|
+
if (refreshed.type !== "success") {
|
|
646
|
+
quarantined.push(account);
|
|
647
|
+
continue;
|
|
648
|
+
}
|
|
649
|
+
const idToken = refreshed.idToken;
|
|
650
|
+
const accessToken = refreshed.access;
|
|
651
|
+
const extractedAccountId = extractAccountId(idToken) ?? extractAccountId(accessToken) ?? null;
|
|
652
|
+
if (account.accountId && extractedAccountId && account.accountId !== extractedAccountId) {
|
|
653
|
+
quarantined.push(account);
|
|
654
|
+
continue;
|
|
655
|
+
}
|
|
656
|
+
const accountId = extractedAccountId ?? account.accountId;
|
|
657
|
+
const email = sanitizeEmail(extractAccountEmail(idToken)) ??
|
|
658
|
+
sanitizeEmail(extractAccountEmail(accessToken)) ??
|
|
659
|
+
account.email;
|
|
660
|
+
const plan = extractAccountPlan(idToken) ?? extractAccountPlan(accessToken) ?? account.plan;
|
|
661
|
+
if (!accountId || !email || !plan) {
|
|
662
|
+
quarantined.push(account);
|
|
663
|
+
continue;
|
|
664
|
+
}
|
|
665
|
+
account.accountId = accountId;
|
|
666
|
+
account.email = email;
|
|
667
|
+
account.plan = plan;
|
|
668
|
+
account.refreshToken = refreshed.refresh;
|
|
669
|
+
repaired.push(account);
|
|
670
|
+
}
|
|
671
|
+
catch {
|
|
672
|
+
quarantined.push(account);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
return { repaired, quarantined };
|
|
676
|
+
}
|
|
677
|
+
async getMinWaitTimeForFamilyWithHydration(family, model) {
|
|
678
|
+
const now = nowMs();
|
|
679
|
+
const needsHydration = this.accounts.some((account) => account.enabled !== false && !hasCompleteIdentity(account));
|
|
680
|
+
const shouldAttemptHydration = this.lastHydrationAttemptAt === null ||
|
|
681
|
+
now - this.lastHydrationAttemptAt >= HYDRATION_ATTEMPT_COOLDOWN_MS;
|
|
682
|
+
if (needsHydration && shouldAttemptHydration) {
|
|
683
|
+
this.lastHydrationAttemptAt = now;
|
|
684
|
+
try {
|
|
685
|
+
await this.hydrateMissingEmails();
|
|
686
|
+
await this.saveToDisk();
|
|
687
|
+
}
|
|
688
|
+
catch {
|
|
689
|
+
// Best-effort; ignore hydration failures here.
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
return this.getMinWaitTimeForFamily(family, model);
|
|
693
|
+
}
|
|
516
694
|
getMinWaitTimeForFamily(family, model) {
|
|
517
695
|
const now = nowMs();
|
|
518
|
-
const
|
|
696
|
+
const eligible = this.accounts.filter((a) => hasCompleteIdentity(a) && isAccountEnabled(a));
|
|
697
|
+
const available = eligible.filter((a) => {
|
|
519
698
|
clearExpiredRateLimits(a);
|
|
520
699
|
return !isRateLimitedForFamily(a, family, model) && !this.isAccountCoolingDown(a);
|
|
521
700
|
});
|
|
@@ -524,7 +703,7 @@ export class AccountManager {
|
|
|
524
703
|
const waitTimes = [];
|
|
525
704
|
const baseKey = getQuotaKey(family);
|
|
526
705
|
const modelKey = model ? getQuotaKey(family, model) : null;
|
|
527
|
-
for (const account of
|
|
706
|
+
for (const account of eligible) {
|
|
528
707
|
const baseReset = account.rateLimitResetTimes[baseKey];
|
|
529
708
|
if (typeof baseReset === "number")
|
|
530
709
|
waitTimes.push(Math.max(0, baseReset - now));
|
|
@@ -539,7 +718,73 @@ export class AccountManager {
|
|
|
539
718
|
}
|
|
540
719
|
return waitTimes.length > 0 ? Math.min(...waitTimes) : 0;
|
|
541
720
|
}
|
|
721
|
+
async refreshAccountWithLock(account, refreshFn = refreshAccessToken) {
|
|
722
|
+
if (account.enabled === false)
|
|
723
|
+
return { type: "failed" };
|
|
724
|
+
const existing = this.refreshInFlight.get(account.index);
|
|
725
|
+
if (existing)
|
|
726
|
+
return existing;
|
|
727
|
+
const refreshPromise = (async () => {
|
|
728
|
+
try {
|
|
729
|
+
return await refreshFn(account.refreshToken);
|
|
730
|
+
}
|
|
731
|
+
finally {
|
|
732
|
+
this.refreshInFlight.delete(account.index);
|
|
733
|
+
}
|
|
734
|
+
})();
|
|
735
|
+
this.refreshInFlight.set(account.index, refreshPromise);
|
|
736
|
+
return refreshPromise;
|
|
737
|
+
}
|
|
738
|
+
async refreshAccountWithFallback(account, refreshFn = refreshAccessToken) {
|
|
739
|
+
if (account.enabled === false)
|
|
740
|
+
return { type: "failed" };
|
|
741
|
+
const first = await this.refreshAccountWithLock(account, refreshFn);
|
|
742
|
+
if (first.type === "success")
|
|
743
|
+
return first;
|
|
744
|
+
const latest = await loadAccounts().catch(() => null);
|
|
745
|
+
if (!latest?.accounts || latest.accounts.length === 0)
|
|
746
|
+
return first;
|
|
747
|
+
const matchIndex = findAccountMatchIndex(latest.accounts, {
|
|
748
|
+
accountId: account.accountId,
|
|
749
|
+
plan: account.plan,
|
|
750
|
+
email: account.email,
|
|
751
|
+
});
|
|
752
|
+
if (matchIndex < 0)
|
|
753
|
+
return first;
|
|
754
|
+
const latestRecord = latest.accounts[matchIndex];
|
|
755
|
+
if (!latestRecord?.refreshToken || latestRecord.refreshToken === account.refreshToken) {
|
|
756
|
+
return first;
|
|
757
|
+
}
|
|
758
|
+
account.refreshToken = latestRecord.refreshToken;
|
|
759
|
+
if (!account.accountId && latestRecord.accountId)
|
|
760
|
+
account.accountId = latestRecord.accountId;
|
|
761
|
+
if (!account.email && latestRecord.email)
|
|
762
|
+
account.email = latestRecord.email;
|
|
763
|
+
if (!account.plan && latestRecord.plan)
|
|
764
|
+
account.plan = latestRecord.plan;
|
|
765
|
+
return this.refreshAccountWithLock(account, refreshFn);
|
|
766
|
+
}
|
|
542
767
|
async saveToDisk() {
|
|
768
|
+
const snapshot = this.getStorageSnapshot();
|
|
769
|
+
let accountsToSave = snapshot.accounts;
|
|
770
|
+
try {
|
|
771
|
+
const latest = await loadAccounts();
|
|
772
|
+
if (latest?.accounts && latest.accounts.length > 0) {
|
|
773
|
+
accountsToSave = mergeAccountRecords(latest.accounts, snapshot.accounts);
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
catch {
|
|
777
|
+
accountsToSave = snapshot.accounts;
|
|
778
|
+
}
|
|
779
|
+
const storage = {
|
|
780
|
+
version: 3,
|
|
781
|
+
accounts: accountsToSave,
|
|
782
|
+
activeIndex: Math.min(snapshot.activeIndex, Math.max(0, accountsToSave.length - 1)),
|
|
783
|
+
activeIndexByFamily: snapshot.activeIndexByFamily,
|
|
784
|
+
};
|
|
785
|
+
await saveAccounts(storage);
|
|
786
|
+
}
|
|
787
|
+
getStorageSnapshot() {
|
|
543
788
|
const activeIndexByFamily = {};
|
|
544
789
|
for (const family of MODEL_FAMILIES) {
|
|
545
790
|
activeIndexByFamily[family] = clampNonNegativeInt(this.currentAccountIndexByFamily[family], 0);
|
|
@@ -550,6 +795,7 @@ export class AccountManager {
|
|
|
550
795
|
accountId: a.accountId,
|
|
551
796
|
email: a.email,
|
|
552
797
|
plan: a.plan,
|
|
798
|
+
enabled: a.enabled !== false,
|
|
553
799
|
addedAt: a.addedAt,
|
|
554
800
|
lastUsed: a.lastUsed,
|
|
555
801
|
lastSwitchReason: a.lastSwitchReason,
|
|
@@ -557,23 +803,12 @@ export class AccountManager {
|
|
|
557
803
|
coolingDownUntil: a.coolingDownUntil,
|
|
558
804
|
cooldownReason: a.cooldownReason,
|
|
559
805
|
}));
|
|
560
|
-
|
|
561
|
-
try {
|
|
562
|
-
const latest = await loadAccounts();
|
|
563
|
-
if (latest?.accounts && latest.accounts.length > 0) {
|
|
564
|
-
accountsToSave = mergeAccountRecords(latest.accounts, snapshot);
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
catch {
|
|
568
|
-
accountsToSave = snapshot;
|
|
569
|
-
}
|
|
570
|
-
const storage = {
|
|
806
|
+
return {
|
|
571
807
|
version: 3,
|
|
572
|
-
accounts:
|
|
573
|
-
activeIndex: Math.min(activeIndex, Math.max(0,
|
|
808
|
+
accounts: snapshot,
|
|
809
|
+
activeIndex: Math.min(activeIndex, Math.max(0, snapshot.length - 1)),
|
|
574
810
|
activeIndexByFamily,
|
|
575
811
|
};
|
|
576
|
-
await saveAccounts(storage);
|
|
577
812
|
}
|
|
578
813
|
}
|
|
579
814
|
export function isOAuthAuth(auth) {
|
package/dist/lib/accounts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../lib/accounts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../lib/accounts.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/auth/auth.d.ts
CHANGED
|
@@ -15,6 +15,11 @@ export declare function createState(): string;
|
|
|
15
15
|
* @returns Parsed authorization data
|
|
16
16
|
*/
|
|
17
17
|
export declare function parseAuthorizationInput(input: string): ParsedAuthInput;
|
|
18
|
+
export type OAuthStateValidation = "match" | "missing" | "mismatch";
|
|
19
|
+
export declare function validateOAuthState(expectedState: string, receivedState?: string): OAuthStateValidation;
|
|
20
|
+
export declare function parseAuthorizationInputForFlow(input: string, expectedState: string): ParsedAuthInput & {
|
|
21
|
+
stateStatus: OAuthStateValidation;
|
|
22
|
+
};
|
|
18
23
|
/**
|
|
19
24
|
* Exchange authorization code for access and refresh tokens
|
|
20
25
|
* @param code - Authorization code from OAuth flow
|