opencode-openai-codex-auth-multi 4.3.0-multiaccount.1 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +37 -37
- package/README.md +463 -80
- package/assets/opencode-logo-ornate-dark.svg +18 -18
- package/assets/readme-hero.svg +31 -31
- package/config/README.md +98 -98
- package/config/minimal-opencode.json +11 -11
- package/config/opencode-legacy.json +568 -568
- package/config/opencode-modern.json +236 -236
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +391 -135
- package/dist/index.js.map +1 -1
- package/dist/lib/accounts.d.ts +85 -11
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +352 -62
- package/dist/lib/accounts.js.map +1 -1
- package/dist/lib/auth/auth.d.ts +9 -1
- package/dist/lib/auth/auth.d.ts.map +1 -1
- package/dist/lib/auth/auth.js +26 -13
- package/dist/lib/auth/auth.js.map +1 -1
- package/dist/lib/auth/browser.d.ts.map +1 -1
- package/dist/lib/auth/browser.js +9 -2
- package/dist/lib/auth/browser.js.map +1 -1
- package/dist/lib/auth/server.d.ts.map +1 -1
- package/dist/lib/auth/server.js +11 -4
- package/dist/lib/auth/server.js.map +1 -1
- package/dist/lib/auto-update-checker.d.ts +10 -0
- package/dist/lib/auto-update-checker.d.ts.map +1 -0
- package/dist/lib/auto-update-checker.js +129 -0
- package/dist/lib/auto-update-checker.js.map +1 -0
- package/dist/lib/cli.d.ts +1 -0
- package/dist/lib/cli.d.ts.map +1 -1
- package/dist/lib/cli.js +11 -6
- package/dist/lib/cli.js.map +1 -1
- package/dist/lib/config.d.ts +5 -7
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +49 -6
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +7 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +7 -0
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/index.d.ts +13 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +13 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/logger.d.ts +13 -17
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +89 -24
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/oauth-success.html +712 -712
- package/dist/lib/prompts/codex-opencode-bridge.js +121 -121
- package/dist/lib/prompts/codex.d.ts +5 -0
- package/dist/lib/prompts/codex.d.ts.map +1 -1
- package/dist/lib/prompts/codex.js +114 -93
- package/dist/lib/prompts/codex.js.map +1 -1
- package/dist/lib/refresh-queue.d.ts +100 -0
- package/dist/lib/refresh-queue.d.ts.map +1 -0
- package/dist/lib/refresh-queue.js +196 -0
- package/dist/lib/refresh-queue.js.map +1 -0
- package/dist/lib/request/fetch-helpers.d.ts +2 -3
- package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
- package/dist/lib/request/fetch-helpers.js +26 -29
- package/dist/lib/request/fetch-helpers.js.map +1 -1
- package/dist/lib/request/rate-limit-backoff.d.ts +17 -0
- package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -0
- package/dist/lib/request/rate-limit-backoff.js +74 -0
- package/dist/lib/request/rate-limit-backoff.js.map +1 -0
- package/dist/lib/request/request-transformer.d.ts.map +1 -1
- package/dist/lib/request/request-transformer.js +3 -2
- package/dist/lib/request/request-transformer.js.map +1 -1
- package/dist/lib/request/response-handler.js +1 -1
- package/dist/lib/request/response-handler.js.map +1 -1
- package/dist/lib/rotation.d.ts +121 -0
- package/dist/lib/rotation.d.ts.map +1 -0
- package/dist/lib/rotation.js +248 -0
- package/dist/lib/rotation.js.map +1 -0
- package/dist/lib/storage.d.ts +72 -4
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +189 -19
- package/dist/lib/storage.js.map +1 -1
- package/dist/lib/types.d.ts +37 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +85 -71
- package/scripts/install-opencode-codex-auth.js +191 -191
- package/scripts/test-all-models.sh +258 -258
- package/scripts/validate-model-map.sh +97 -97
package/dist/lib/accounts.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { decodeJWT } from "./auth/auth.js";
|
|
2
2
|
import { JWT_CLAIM_PATH } from "./constants.js";
|
|
3
3
|
import { loadAccounts, saveAccounts, } from "./storage.js";
|
|
4
|
+
import { MODEL_FAMILIES } from "./prompts/codex.js";
|
|
5
|
+
import { getHealthTracker, getTokenTracker, selectHybridAccount, } from "./rotation.js";
|
|
4
6
|
function nowMs() {
|
|
5
7
|
return Date.now();
|
|
6
8
|
}
|
|
@@ -10,6 +12,17 @@ function clampNonNegativeInt(value, fallback) {
|
|
|
10
12
|
}
|
|
11
13
|
return value < 0 ? 0 : Math.floor(value);
|
|
12
14
|
}
|
|
15
|
+
function getQuotaKey(family, model) {
|
|
16
|
+
if (model) {
|
|
17
|
+
return `${family}:${model}`;
|
|
18
|
+
}
|
|
19
|
+
return family;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Extracts the ChatGPT account ID from a JWT access token.
|
|
23
|
+
* @param accessToken - JWT access token from OAuth flow
|
|
24
|
+
* @returns Account ID string or undefined if not found
|
|
25
|
+
*/
|
|
13
26
|
export function extractAccountId(accessToken) {
|
|
14
27
|
if (!accessToken)
|
|
15
28
|
return undefined;
|
|
@@ -17,30 +30,104 @@ export function extractAccountId(accessToken) {
|
|
|
17
30
|
const accountId = decoded?.[JWT_CLAIM_PATH]?.chatgpt_account_id;
|
|
18
31
|
return typeof accountId === "string" && accountId.trim() ? accountId : undefined;
|
|
19
32
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Extracts the email address from a JWT access token.
|
|
35
|
+
* Checks multiple claim paths for compatibility.
|
|
36
|
+
* @param accessToken - JWT access token from OAuth flow
|
|
37
|
+
* @returns Email string or undefined if not found
|
|
38
|
+
*/
|
|
39
|
+
export function extractAccountEmail(accessToken) {
|
|
40
|
+
if (!accessToken)
|
|
41
|
+
return undefined;
|
|
42
|
+
const decoded = decodeJWT(accessToken);
|
|
43
|
+
const nested = decoded?.[JWT_CLAIM_PATH];
|
|
44
|
+
const candidate = nested?.email ??
|
|
45
|
+
nested?.chatgpt_user_email ??
|
|
46
|
+
decoded?.email ??
|
|
47
|
+
decoded?.preferred_username;
|
|
48
|
+
if (typeof candidate === "string" && candidate.includes("@") && candidate.trim()) {
|
|
49
|
+
return candidate;
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
24
52
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Sanitizes an email address by trimming whitespace and lowercasing.
|
|
55
|
+
* @param email - Email string to sanitize
|
|
56
|
+
* @returns Sanitized email or undefined if invalid
|
|
57
|
+
*/
|
|
58
|
+
export function sanitizeEmail(email) {
|
|
59
|
+
if (!email)
|
|
60
|
+
return undefined;
|
|
61
|
+
const trimmed = email.trim();
|
|
62
|
+
if (!trimmed || !trimmed.includes("@"))
|
|
63
|
+
return undefined;
|
|
64
|
+
return trimmed.toLowerCase();
|
|
65
|
+
}
|
|
66
|
+
function clearExpiredRateLimits(account) {
|
|
67
|
+
const now = nowMs();
|
|
68
|
+
const keys = Object.keys(account.rateLimitResetTimes);
|
|
69
|
+
for (const key of keys) {
|
|
70
|
+
const resetTime = account.rateLimitResetTimes[key];
|
|
71
|
+
if (resetTime !== undefined && now >= resetTime) {
|
|
72
|
+
delete account.rateLimitResetTimes[key];
|
|
73
|
+
}
|
|
30
74
|
}
|
|
31
75
|
}
|
|
76
|
+
function isRateLimitedForQuotaKey(account, key) {
|
|
77
|
+
const resetTime = account.rateLimitResetTimes[key];
|
|
78
|
+
return resetTime !== undefined && nowMs() < resetTime;
|
|
79
|
+
}
|
|
80
|
+
function isRateLimitedForFamily(account, family, model) {
|
|
81
|
+
clearExpiredRateLimits(account);
|
|
82
|
+
if (model) {
|
|
83
|
+
const modelKey = getQuotaKey(family, model);
|
|
84
|
+
if (isRateLimitedForQuotaKey(account, modelKey)) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const baseKey = getQuotaKey(family);
|
|
89
|
+
return isRateLimitedForQuotaKey(account, baseKey);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Manages multiple OAuth accounts with automatic rotation on rate limits.
|
|
93
|
+
* Tracks per-family active indices, rate limit reset times, and cooldowns.
|
|
94
|
+
*/
|
|
32
95
|
export class AccountManager {
|
|
33
96
|
accounts = [];
|
|
34
|
-
|
|
35
|
-
|
|
97
|
+
// Per-family cursors for true round-robin rotation
|
|
98
|
+
cursorByFamily = {
|
|
99
|
+
"gpt-5.2-codex": 0,
|
|
100
|
+
"codex-max": 0,
|
|
101
|
+
codex: 0,
|
|
102
|
+
"gpt-5.2": 0,
|
|
103
|
+
"gpt-5.1": 0,
|
|
104
|
+
};
|
|
105
|
+
currentAccountIndexByFamily = {
|
|
106
|
+
"gpt-5.2-codex": -1,
|
|
107
|
+
"codex-max": -1,
|
|
108
|
+
codex: -1,
|
|
109
|
+
"gpt-5.2": -1,
|
|
110
|
+
"gpt-5.1": -1,
|
|
111
|
+
};
|
|
36
112
|
lastToastAccountIndex = -1;
|
|
37
113
|
lastToastTime = 0;
|
|
114
|
+
saveDebounceTimer = null;
|
|
115
|
+
pendingSave = null;
|
|
116
|
+
/**
|
|
117
|
+
* Loads account manager from disk storage with optional auth fallback.
|
|
118
|
+
* @param authFallback - Current OAuth auth to use if storage is empty
|
|
119
|
+
* @returns New AccountManager instance
|
|
120
|
+
*/
|
|
38
121
|
static async loadFromDisk(authFallback) {
|
|
39
122
|
const stored = await loadAccounts();
|
|
40
123
|
return new AccountManager(authFallback, stored);
|
|
41
124
|
}
|
|
125
|
+
hasRefreshToken(refreshToken) {
|
|
126
|
+
return this.accounts.some((account) => account.refreshToken === refreshToken);
|
|
127
|
+
}
|
|
42
128
|
constructor(authFallback, stored) {
|
|
43
129
|
const fallbackAccountId = extractAccountId(authFallback?.access);
|
|
130
|
+
const fallbackAccountEmail = extractAccountEmail(authFallback?.access);
|
|
44
131
|
if (stored && stored.accounts.length > 0) {
|
|
45
132
|
const baseNow = nowMs();
|
|
46
133
|
this.accounts = stored.accounts
|
|
@@ -51,19 +138,20 @@ export class AccountManager {
|
|
|
51
138
|
const matchesFallback = !!authFallback &&
|
|
52
139
|
((fallbackAccountId && account.accountId === fallbackAccountId) ||
|
|
53
140
|
account.refreshToken === authFallback.refresh);
|
|
54
|
-
const refreshToken = matchesFallback
|
|
55
|
-
? authFallback.refresh
|
|
56
|
-
: account.refreshToken;
|
|
141
|
+
const refreshToken = matchesFallback && authFallback ? authFallback.refresh : account.refreshToken;
|
|
57
142
|
return {
|
|
58
143
|
index,
|
|
59
144
|
accountId: matchesFallback ? fallbackAccountId ?? account.accountId : account.accountId,
|
|
145
|
+
email: matchesFallback
|
|
146
|
+
? sanitizeEmail(fallbackAccountEmail) ?? sanitizeEmail(account.email)
|
|
147
|
+
: sanitizeEmail(account.email),
|
|
60
148
|
refreshToken,
|
|
61
|
-
access: matchesFallback ? authFallback.access : undefined,
|
|
62
|
-
expires: matchesFallback ? authFallback.expires : undefined,
|
|
149
|
+
access: matchesFallback && authFallback ? authFallback.access : undefined,
|
|
150
|
+
expires: matchesFallback && authFallback ? authFallback.expires : undefined,
|
|
63
151
|
addedAt: clampNonNegativeInt(account.addedAt, baseNow),
|
|
64
152
|
lastUsed: clampNonNegativeInt(account.lastUsed, 0),
|
|
65
153
|
lastSwitchReason: account.lastSwitchReason,
|
|
66
|
-
|
|
154
|
+
rateLimitResetTimes: account.rateLimitResetTimes ?? {},
|
|
67
155
|
coolingDownUntil: account.coolingDownUntil,
|
|
68
156
|
cooldownReason: account.cooldownReason,
|
|
69
157
|
};
|
|
@@ -77,18 +165,24 @@ export class AccountManager {
|
|
|
77
165
|
this.accounts.push({
|
|
78
166
|
index: this.accounts.length,
|
|
79
167
|
accountId: fallbackAccountId,
|
|
168
|
+
email: sanitizeEmail(fallbackAccountEmail),
|
|
80
169
|
refreshToken: authFallback.refresh,
|
|
81
170
|
access: authFallback.access,
|
|
82
171
|
expires: authFallback.expires,
|
|
83
172
|
addedAt: now,
|
|
84
173
|
lastUsed: now,
|
|
85
174
|
lastSwitchReason: "initial",
|
|
175
|
+
rateLimitResetTimes: {},
|
|
86
176
|
});
|
|
87
177
|
}
|
|
88
178
|
if (this.accounts.length > 0) {
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
179
|
+
const defaultIndex = clampNonNegativeInt(stored.activeIndex, 0) % this.accounts.length;
|
|
180
|
+
for (const family of MODEL_FAMILIES) {
|
|
181
|
+
const rawIndex = stored.activeIndexByFamily?.[family];
|
|
182
|
+
const nextIndex = clampNonNegativeInt(rawIndex, defaultIndex) % this.accounts.length;
|
|
183
|
+
this.currentAccountIndexByFamily[family] = nextIndex;
|
|
184
|
+
this.cursorByFamily[family] = nextIndex;
|
|
185
|
+
}
|
|
92
186
|
}
|
|
93
187
|
return;
|
|
94
188
|
}
|
|
@@ -98,26 +192,40 @@ export class AccountManager {
|
|
|
98
192
|
{
|
|
99
193
|
index: 0,
|
|
100
194
|
accountId: fallbackAccountId,
|
|
195
|
+
email: sanitizeEmail(fallbackAccountEmail),
|
|
101
196
|
refreshToken: authFallback.refresh,
|
|
102
197
|
access: authFallback.access,
|
|
103
198
|
expires: authFallback.expires,
|
|
104
199
|
addedAt: now,
|
|
105
200
|
lastUsed: 0,
|
|
106
201
|
lastSwitchReason: "initial",
|
|
202
|
+
rateLimitResetTimes: {},
|
|
107
203
|
},
|
|
108
204
|
];
|
|
109
|
-
|
|
110
|
-
|
|
205
|
+
for (const family of MODEL_FAMILIES) {
|
|
206
|
+
this.currentAccountIndexByFamily[family] = 0;
|
|
207
|
+
this.cursorByFamily[family] = 0;
|
|
208
|
+
}
|
|
111
209
|
}
|
|
112
210
|
}
|
|
113
211
|
getAccountCount() {
|
|
114
212
|
return this.accounts.length;
|
|
115
213
|
}
|
|
116
214
|
getActiveIndex() {
|
|
117
|
-
return this.
|
|
215
|
+
return this.getActiveIndexForFamily("codex");
|
|
216
|
+
}
|
|
217
|
+
getActiveIndexForFamily(family) {
|
|
218
|
+
const index = this.currentAccountIndexByFamily[family];
|
|
219
|
+
if (index < 0 || index >= this.accounts.length) {
|
|
220
|
+
return this.accounts.length > 0 ? 0 : -1;
|
|
221
|
+
}
|
|
222
|
+
return index;
|
|
118
223
|
}
|
|
119
224
|
getAccountsSnapshot() {
|
|
120
|
-
return this.accounts.map((account) => ({
|
|
225
|
+
return this.accounts.map((account) => ({
|
|
226
|
+
...account,
|
|
227
|
+
rateLimitResetTimes: { ...account.rateLimitResetTimes },
|
|
228
|
+
}));
|
|
121
229
|
}
|
|
122
230
|
setActiveIndex(index) {
|
|
123
231
|
if (!Number.isFinite(index))
|
|
@@ -127,54 +235,136 @@ export class AccountManager {
|
|
|
127
235
|
const account = this.accounts[index];
|
|
128
236
|
if (!account)
|
|
129
237
|
return null;
|
|
130
|
-
|
|
238
|
+
for (const family of MODEL_FAMILIES) {
|
|
239
|
+
this.currentAccountIndexByFamily[family] = index;
|
|
240
|
+
this.cursorByFamily[family] = index;
|
|
241
|
+
}
|
|
131
242
|
account.lastUsed = nowMs();
|
|
132
243
|
account.lastSwitchReason = "rotation";
|
|
133
244
|
return account;
|
|
134
245
|
}
|
|
135
246
|
getCurrentAccount() {
|
|
136
|
-
|
|
247
|
+
return this.getCurrentAccountForFamily("codex");
|
|
248
|
+
}
|
|
249
|
+
getCurrentAccountForFamily(family) {
|
|
250
|
+
const index = this.currentAccountIndexByFamily[family];
|
|
251
|
+
if (index < 0 || index >= this.accounts.length) {
|
|
137
252
|
return null;
|
|
138
253
|
}
|
|
139
|
-
return this.accounts[
|
|
254
|
+
return this.accounts[index] ?? null;
|
|
140
255
|
}
|
|
141
256
|
getCurrentOrNext() {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
257
|
+
return this.getCurrentOrNextForFamily("codex");
|
|
258
|
+
}
|
|
259
|
+
getCurrentOrNextForFamily(family, model) {
|
|
260
|
+
const count = this.accounts.length;
|
|
261
|
+
if (count === 0)
|
|
262
|
+
return null;
|
|
263
|
+
// True round-robin: always advance cursor and pick next available account
|
|
264
|
+
const cursor = this.cursorByFamily[family];
|
|
265
|
+
for (let i = 0; i < count; i++) {
|
|
266
|
+
const idx = (cursor + i) % count;
|
|
267
|
+
const account = this.accounts[idx];
|
|
268
|
+
if (!account)
|
|
269
|
+
continue;
|
|
270
|
+
clearExpiredRateLimits(account);
|
|
271
|
+
if (isRateLimitedForFamily(account, family, model) || this.isAccountCoolingDown(account)) {
|
|
272
|
+
continue;
|
|
148
273
|
}
|
|
274
|
+
// Found available account - advance cursor for next request
|
|
275
|
+
this.cursorByFamily[family] = (idx + 1) % count;
|
|
276
|
+
this.currentAccountIndexByFamily[family] = idx;
|
|
277
|
+
account.lastUsed = nowMs();
|
|
278
|
+
return account;
|
|
149
279
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
this.activeIndex = next.index;
|
|
153
|
-
}
|
|
154
|
-
return next;
|
|
280
|
+
// All accounts blocked
|
|
281
|
+
return null;
|
|
155
282
|
}
|
|
156
|
-
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
return !isRateLimited(account) && !this.isAccountCoolingDown(account);
|
|
160
|
-
});
|
|
161
|
-
if (available.length === 0) {
|
|
283
|
+
getNextForFamily(family, model) {
|
|
284
|
+
const count = this.accounts.length;
|
|
285
|
+
if (count === 0)
|
|
162
286
|
return null;
|
|
287
|
+
const cursor = this.cursorByFamily[family];
|
|
288
|
+
for (let i = 0; i < count; i++) {
|
|
289
|
+
const idx = (cursor + i) % count;
|
|
290
|
+
const account = this.accounts[idx];
|
|
291
|
+
if (!account)
|
|
292
|
+
continue;
|
|
293
|
+
clearExpiredRateLimits(account);
|
|
294
|
+
if (isRateLimitedForFamily(account, family, model) || this.isAccountCoolingDown(account)) {
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
this.cursorByFamily[family] = (idx + 1) % count;
|
|
298
|
+
account.lastUsed = nowMs();
|
|
299
|
+
return account;
|
|
163
300
|
}
|
|
164
|
-
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
getCurrentOrNextForFamilyHybrid(family, model) {
|
|
304
|
+
const count = this.accounts.length;
|
|
305
|
+
if (count === 0)
|
|
306
|
+
return null;
|
|
307
|
+
const quotaKey = model ? `${family}:${model}` : family;
|
|
308
|
+
const healthTracker = getHealthTracker();
|
|
309
|
+
const tokenTracker = getTokenTracker();
|
|
310
|
+
const accountsWithMetrics = this.accounts
|
|
311
|
+
.map((account) => {
|
|
312
|
+
if (!account)
|
|
313
|
+
return null;
|
|
314
|
+
clearExpiredRateLimits(account);
|
|
315
|
+
const isAvailable = !isRateLimitedForFamily(account, family, model) && !this.isAccountCoolingDown(account);
|
|
316
|
+
return {
|
|
317
|
+
index: account.index,
|
|
318
|
+
isAvailable,
|
|
319
|
+
lastUsed: account.lastUsed,
|
|
320
|
+
};
|
|
321
|
+
})
|
|
322
|
+
.filter((a) => a !== null);
|
|
323
|
+
const selected = selectHybridAccount(accountsWithMetrics, healthTracker, tokenTracker, quotaKey);
|
|
324
|
+
if (!selected)
|
|
325
|
+
return null;
|
|
326
|
+
const account = this.accounts[selected.index];
|
|
165
327
|
if (!account)
|
|
166
328
|
return null;
|
|
167
|
-
this.
|
|
329
|
+
this.currentAccountIndexByFamily[family] = account.index;
|
|
330
|
+
this.cursorByFamily[family] = (account.index + 1) % count;
|
|
168
331
|
account.lastUsed = nowMs();
|
|
169
332
|
return account;
|
|
170
333
|
}
|
|
171
|
-
|
|
334
|
+
recordSuccess(account, family, model) {
|
|
335
|
+
const quotaKey = model ? `${family}:${model}` : family;
|
|
336
|
+
const healthTracker = getHealthTracker();
|
|
337
|
+
healthTracker.recordSuccess(account.index, quotaKey);
|
|
338
|
+
}
|
|
339
|
+
recordRateLimit(account, family, model) {
|
|
340
|
+
const quotaKey = model ? `${family}:${model}` : family;
|
|
341
|
+
const healthTracker = getHealthTracker();
|
|
342
|
+
const tokenTracker = getTokenTracker();
|
|
343
|
+
healthTracker.recordRateLimit(account.index, quotaKey);
|
|
344
|
+
tokenTracker.drain(account.index, quotaKey);
|
|
345
|
+
}
|
|
346
|
+
recordFailure(account, family, model) {
|
|
347
|
+
const quotaKey = model ? `${family}:${model}` : family;
|
|
348
|
+
const healthTracker = getHealthTracker();
|
|
349
|
+
healthTracker.recordFailure(account.index, quotaKey);
|
|
350
|
+
}
|
|
351
|
+
markSwitched(account, reason, family) {
|
|
172
352
|
account.lastSwitchReason = reason;
|
|
173
|
-
this.
|
|
353
|
+
this.currentAccountIndexByFamily[family] = account.index;
|
|
174
354
|
}
|
|
175
|
-
markRateLimited(account, retryAfterMs) {
|
|
355
|
+
markRateLimited(account, retryAfterMs, family, model) {
|
|
356
|
+
this.markRateLimitedWithReason(account, retryAfterMs, family, "unknown", model);
|
|
357
|
+
}
|
|
358
|
+
markRateLimitedWithReason(account, retryAfterMs, family, reason, model) {
|
|
176
359
|
const retryMs = Math.max(0, Math.floor(retryAfterMs));
|
|
177
|
-
|
|
360
|
+
const resetAt = nowMs() + retryMs;
|
|
361
|
+
const baseKey = getQuotaKey(family);
|
|
362
|
+
account.rateLimitResetTimes[baseKey] = resetAt;
|
|
363
|
+
if (model) {
|
|
364
|
+
const modelKey = getQuotaKey(family, model);
|
|
365
|
+
account.rateLimitResetTimes[modelKey] = resetAt;
|
|
366
|
+
}
|
|
367
|
+
account.lastRateLimitReason = reason;
|
|
178
368
|
}
|
|
179
369
|
markAccountCoolingDown(account, cooldownMs, reason) {
|
|
180
370
|
const ms = Math.max(0, Math.floor(cooldownMs));
|
|
@@ -210,6 +400,7 @@ export class AccountManager {
|
|
|
210
400
|
account.access = auth.access;
|
|
211
401
|
account.expires = auth.expires;
|
|
212
402
|
account.accountId = extractAccountId(auth.access) ?? account.accountId;
|
|
403
|
+
account.email = sanitizeEmail(extractAccountEmail(auth.access)) ?? account.email;
|
|
213
404
|
}
|
|
214
405
|
toAuthDetails(account) {
|
|
215
406
|
return {
|
|
@@ -220,17 +411,29 @@ export class AccountManager {
|
|
|
220
411
|
};
|
|
221
412
|
}
|
|
222
413
|
getMinWaitTime() {
|
|
414
|
+
return this.getMinWaitTimeForFamily("codex");
|
|
415
|
+
}
|
|
416
|
+
getMinWaitTimeForFamily(family, model) {
|
|
223
417
|
const now = nowMs();
|
|
224
418
|
const available = this.accounts.filter((account) => {
|
|
225
|
-
|
|
226
|
-
return !
|
|
419
|
+
clearExpiredRateLimits(account);
|
|
420
|
+
return !isRateLimitedForFamily(account, family, model) && !this.isAccountCoolingDown(account);
|
|
227
421
|
});
|
|
228
422
|
if (available.length > 0)
|
|
229
423
|
return 0;
|
|
230
424
|
const waitTimes = [];
|
|
425
|
+
const baseKey = getQuotaKey(family);
|
|
426
|
+
const modelKey = model ? getQuotaKey(family, model) : null;
|
|
231
427
|
for (const account of this.accounts) {
|
|
232
|
-
|
|
233
|
-
|
|
428
|
+
const baseResetAt = account.rateLimitResetTimes[baseKey];
|
|
429
|
+
if (typeof baseResetAt === "number") {
|
|
430
|
+
waitTimes.push(Math.max(0, baseResetAt - now));
|
|
431
|
+
}
|
|
432
|
+
if (modelKey) {
|
|
433
|
+
const modelResetAt = account.rateLimitResetTimes[modelKey];
|
|
434
|
+
if (typeof modelResetAt === "number") {
|
|
435
|
+
waitTimes.push(Math.max(0, modelResetAt - now));
|
|
436
|
+
}
|
|
234
437
|
}
|
|
235
438
|
if (typeof account.coolingDownUntil === "number") {
|
|
236
439
|
waitTimes.push(Math.max(0, account.coolingDownUntil - now));
|
|
@@ -238,30 +441,111 @@ export class AccountManager {
|
|
|
238
441
|
}
|
|
239
442
|
return waitTimes.length > 0 ? Math.min(...waitTimes) : 0;
|
|
240
443
|
}
|
|
444
|
+
removeAccount(account) {
|
|
445
|
+
const idx = this.accounts.indexOf(account);
|
|
446
|
+
if (idx < 0) {
|
|
447
|
+
return false;
|
|
448
|
+
}
|
|
449
|
+
this.accounts.splice(idx, 1);
|
|
450
|
+
this.accounts.forEach((acc, index) => {
|
|
451
|
+
acc.index = index;
|
|
452
|
+
});
|
|
453
|
+
if (this.accounts.length === 0) {
|
|
454
|
+
for (const family of MODEL_FAMILIES) {
|
|
455
|
+
this.cursorByFamily[family] = 0;
|
|
456
|
+
this.currentAccountIndexByFamily[family] = -1;
|
|
457
|
+
}
|
|
458
|
+
return true;
|
|
459
|
+
}
|
|
460
|
+
const cursor = this.cursorByFamily["codex"];
|
|
461
|
+
if (cursor > idx) {
|
|
462
|
+
for (const family of MODEL_FAMILIES) {
|
|
463
|
+
this.cursorByFamily[family] = Math.max(0, this.cursorByFamily[family] - 1);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
for (const family of MODEL_FAMILIES) {
|
|
467
|
+
this.cursorByFamily[family] = this.cursorByFamily[family] % this.accounts.length;
|
|
468
|
+
}
|
|
469
|
+
for (const family of MODEL_FAMILIES) {
|
|
470
|
+
if (this.currentAccountIndexByFamily[family] > idx) {
|
|
471
|
+
this.currentAccountIndexByFamily[family] -= 1;
|
|
472
|
+
}
|
|
473
|
+
if (this.currentAccountIndexByFamily[family] >= this.accounts.length) {
|
|
474
|
+
this.currentAccountIndexByFamily[family] = -1;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
return true;
|
|
478
|
+
}
|
|
241
479
|
async saveToDisk() {
|
|
480
|
+
const activeIndexByFamily = {};
|
|
481
|
+
for (const family of MODEL_FAMILIES) {
|
|
482
|
+
const raw = this.currentAccountIndexByFamily[family];
|
|
483
|
+
activeIndexByFamily[family] = clampNonNegativeInt(raw, 0);
|
|
484
|
+
}
|
|
485
|
+
const activeIndex = clampNonNegativeInt(activeIndexByFamily.codex, 0);
|
|
242
486
|
const storage = {
|
|
243
|
-
version:
|
|
487
|
+
version: 3,
|
|
244
488
|
accounts: this.accounts.map((account) => ({
|
|
245
489
|
accountId: account.accountId,
|
|
490
|
+
email: account.email,
|
|
246
491
|
refreshToken: account.refreshToken,
|
|
247
492
|
addedAt: account.addedAt,
|
|
248
493
|
lastUsed: account.lastUsed,
|
|
249
494
|
lastSwitchReason: account.lastSwitchReason,
|
|
250
|
-
|
|
495
|
+
rateLimitResetTimes: Object.keys(account.rateLimitResetTimes).length > 0 ? account.rateLimitResetTimes : undefined,
|
|
251
496
|
coolingDownUntil: account.coolingDownUntil,
|
|
252
497
|
cooldownReason: account.cooldownReason,
|
|
253
498
|
})),
|
|
254
|
-
activeIndex
|
|
499
|
+
activeIndex,
|
|
500
|
+
activeIndexByFamily,
|
|
255
501
|
};
|
|
256
502
|
await saveAccounts(storage);
|
|
257
503
|
}
|
|
504
|
+
saveToDiskDebounced(delayMs = 500) {
|
|
505
|
+
if (this.saveDebounceTimer) {
|
|
506
|
+
clearTimeout(this.saveDebounceTimer);
|
|
507
|
+
}
|
|
508
|
+
this.saveDebounceTimer = setTimeout(() => {
|
|
509
|
+
this.saveDebounceTimer = null;
|
|
510
|
+
this.pendingSave = this.saveToDisk().finally(() => {
|
|
511
|
+
this.pendingSave = null;
|
|
512
|
+
});
|
|
513
|
+
}, delayMs);
|
|
514
|
+
}
|
|
515
|
+
async flushPendingSave() {
|
|
516
|
+
if (this.saveDebounceTimer) {
|
|
517
|
+
clearTimeout(this.saveDebounceTimer);
|
|
518
|
+
this.saveDebounceTimer = null;
|
|
519
|
+
await this.saveToDisk();
|
|
520
|
+
}
|
|
521
|
+
if (this.pendingSave) {
|
|
522
|
+
await this.pendingSave;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
258
525
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
526
|
+
/**
|
|
527
|
+
* Formats a human-readable label for an account (e.g., "Account 1 (user@email.com)").
|
|
528
|
+
* @param account - Account with optional email and accountId
|
|
529
|
+
* @param index - Zero-based account index
|
|
530
|
+
* @returns Formatted label string
|
|
531
|
+
*/
|
|
532
|
+
export function formatAccountLabel(account, index) {
|
|
533
|
+
const email = account?.email?.trim();
|
|
534
|
+
const accountId = account?.accountId?.trim();
|
|
535
|
+
const idSuffix = accountId ? (accountId.length > 6 ? accountId.slice(-6) : accountId) : null;
|
|
536
|
+
if (email && idSuffix)
|
|
537
|
+
return `Account ${index + 1} (${email}, id:${idSuffix})`;
|
|
538
|
+
if (email)
|
|
539
|
+
return `Account ${index + 1} (${email})`;
|
|
540
|
+
if (idSuffix)
|
|
541
|
+
return `Account ${index + 1} (${idSuffix})`;
|
|
542
|
+
return `Account ${index + 1}`;
|
|
264
543
|
}
|
|
544
|
+
/**
|
|
545
|
+
* Formats milliseconds as a human-readable wait time (e.g., "2m 30s").
|
|
546
|
+
* @param ms - Duration in milliseconds
|
|
547
|
+
* @returns Formatted string like "2m 30s" or "45s"
|
|
548
|
+
*/
|
|
265
549
|
export function formatWaitTime(ms) {
|
|
266
550
|
const totalSeconds = Math.max(0, Math.floor(ms / 1000));
|
|
267
551
|
const minutes = Math.floor(totalSeconds / 60);
|
|
@@ -270,6 +554,12 @@ export function formatWaitTime(ms) {
|
|
|
270
554
|
return `${minutes}m ${seconds}s`;
|
|
271
555
|
return `${seconds}s`;
|
|
272
556
|
}
|
|
557
|
+
/**
|
|
558
|
+
* Formats cooldown status for an account if currently cooling down.
|
|
559
|
+
* @param account - Account with optional cooldown state
|
|
560
|
+
* @param now - Current timestamp (defaults to Date.now())
|
|
561
|
+
* @returns Formatted cooldown string or null if not cooling down
|
|
562
|
+
*/
|
|
273
563
|
export function formatCooldown(account, now = nowMs()) {
|
|
274
564
|
if (typeof account.coolingDownUntil !== "number")
|
|
275
565
|
return null;
|
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
|
@@ -35,9 +35,17 @@ export declare function decodeJWT(token: string): JWTPayload | null;
|
|
|
35
35
|
* @returns Token result
|
|
36
36
|
*/
|
|
37
37
|
export declare function refreshAccessToken(refreshToken: string): Promise<TokenResult>;
|
|
38
|
+
export interface AuthorizationFlowOptions {
|
|
39
|
+
/**
|
|
40
|
+
* Force a fresh login screen instead of using cached browser session.
|
|
41
|
+
* Use when adding multiple accounts to ensure different credentials.
|
|
42
|
+
*/
|
|
43
|
+
forceNewLogin?: boolean;
|
|
44
|
+
}
|
|
38
45
|
/**
|
|
39
46
|
* Create OAuth authorization flow
|
|
47
|
+
* @param options - Optional configuration for the flow
|
|
40
48
|
* @returns Authorization flow details
|
|
41
49
|
*/
|
|
42
|
-
export declare function createAuthorizationFlow(): Promise<AuthorizationFlow>;
|
|
50
|
+
export declare function createAuthorizationFlow(options?: AuthorizationFlowOptions): Promise<AuthorizationFlow>;
|
|
43
51
|
//# sourceMappingURL=auth.d.ts.map
|