codex-multi-auth 1.2.1 → 1.2.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.
- package/README.md +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -21
- package/dist/index.js.map +1 -1
- package/dist/lib/accounts.d.ts +11 -0
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +320 -70
- package/dist/lib/accounts.js.map +1 -1
- package/dist/lib/circuit-breaker.d.ts +4 -0
- package/dist/lib/circuit-breaker.d.ts.map +1 -1
- package/dist/lib/circuit-breaker.js +33 -1
- package/dist/lib/circuit-breaker.js.map +1 -1
- package/dist/lib/codex-manager/commands/forecast.d.ts +2 -1
- package/dist/lib/codex-manager/commands/forecast.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/forecast.js +92 -2
- package/dist/lib/codex-manager/commands/forecast.js.map +1 -1
- package/dist/lib/codex-manager/commands/report.d.ts +3 -1
- package/dist/lib/codex-manager/commands/report.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/report.js +102 -12
- package/dist/lib/codex-manager/commands/report.js.map +1 -1
- package/dist/lib/codex-manager.d.ts.map +1 -1
- package/dist/lib/codex-manager.js +50 -40
- package/dist/lib/codex-manager.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +172 -17
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/forecast.d.ts.map +1 -1
- package/dist/lib/forecast.js +1 -19
- package/dist/lib/forecast.js.map +1 -1
- package/dist/lib/health.d.ts +1 -0
- package/dist/lib/health.d.ts.map +1 -1
- package/dist/lib/health.js +6 -2
- package/dist/lib/health.js.map +1 -1
- package/dist/lib/parallel-probe.d.ts +1 -1
- package/dist/lib/parallel-probe.d.ts.map +1 -1
- package/dist/lib/parallel-probe.js +5 -2
- package/dist/lib/parallel-probe.js.map +1 -1
- package/dist/lib/preemptive-quota-scheduler.d.ts.map +1 -1
- package/dist/lib/preemptive-quota-scheduler.js +6 -3
- package/dist/lib/preemptive-quota-scheduler.js.map +1 -1
- package/dist/lib/proactive-refresh.d.ts +1 -1
- package/dist/lib/proactive-refresh.d.ts.map +1 -1
- package/dist/lib/proactive-refresh.js +14 -5
- package/dist/lib/proactive-refresh.js.map +1 -1
- package/dist/lib/refresh-guardian.d.ts +3 -0
- package/dist/lib/refresh-guardian.d.ts.map +1 -1
- package/dist/lib/refresh-guardian.js +142 -52
- package/dist/lib/refresh-guardian.js.map +1 -1
- package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
- package/dist/lib/request/fetch-helpers.js +180 -43
- package/dist/lib/request/fetch-helpers.js.map +1 -1
- package/dist/lib/rotation.d.ts +14 -11
- package/dist/lib/rotation.d.ts.map +1 -1
- package/dist/lib/rotation.js +36 -30
- package/dist/lib/rotation.js.map +1 -1
- package/dist/lib/runtime/account-check.d.ts +4 -0
- package/dist/lib/runtime/account-check.d.ts.map +1 -1
- package/dist/lib/runtime/account-check.js +15 -10
- package/dist/lib/runtime/account-check.js.map +1 -1
- package/dist/lib/runtime/account-state.d.ts +1 -12
- package/dist/lib/runtime/account-state.d.ts.map +1 -1
- package/dist/lib/runtime/account-state.js +1 -37
- package/dist/lib/runtime/account-state.js.map +1 -1
- package/dist/lib/runtime/verify-flagged.d.ts +4 -0
- package/dist/lib/runtime/verify-flagged.d.ts.map +1 -1
- package/dist/lib/runtime/verify-flagged.js +32 -23
- package/dist/lib/runtime/verify-flagged.js.map +1 -1
- package/dist/lib/storage/flagged-load-entry.d.ts +2 -0
- package/dist/lib/storage/flagged-load-entry.d.ts.map +1 -1
- package/dist/lib/storage/flagged-load-entry.js +1 -0
- package/dist/lib/storage/flagged-load-entry.js.map +1 -1
- package/dist/lib/storage/flagged-storage-file.d.ts +4 -0
- package/dist/lib/storage/flagged-storage-file.d.ts.map +1 -1
- package/dist/lib/storage/flagged-storage-file.js +1 -1
- package/dist/lib/storage/flagged-storage-file.js.map +1 -1
- package/dist/lib/storage/flagged-storage-io.d.ts +1 -0
- package/dist/lib/storage/flagged-storage-io.d.ts.map +1 -1
- package/dist/lib/storage/flagged-storage-io.js +130 -5
- package/dist/lib/storage/flagged-storage-io.js.map +1 -1
- package/dist/lib/storage/identity.d.ts +6 -0
- package/dist/lib/storage/identity.d.ts.map +1 -1
- package/dist/lib/storage/identity.js +14 -3
- package/dist/lib/storage/identity.js.map +1 -1
- package/dist/lib/storage/path-state.d.ts +1 -0
- package/dist/lib/storage/path-state.d.ts.map +1 -1
- package/dist/lib/storage/path-state.js +3 -0
- package/dist/lib/storage/path-state.js.map +1 -1
- package/dist/lib/storage/paths.d.ts.map +1 -1
- package/dist/lib/storage/paths.js +3 -2
- package/dist/lib/storage/paths.js.map +1 -1
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +7 -0
- package/dist/lib/storage.js.map +1 -1
- package/dist/lib/unified-settings.d.ts.map +1 -1
- package/dist/lib/unified-settings.js +226 -28
- package/dist/lib/unified-settings.js.map +1 -1
- package/package.json +8 -3
- package/scripts/codex-bin-resolver.js +99 -0
- package/scripts/codex.js +709 -81
- package/dist/lib/codex-manager/best.d.ts +0 -26
- package/dist/lib/codex-manager/best.d.ts.map +0 -1
- package/dist/lib/codex-manager/best.js +0 -249
- package/dist/lib/codex-manager/best.js.map +0 -1
- package/dist/lib/codex-manager/config-explain.d.ts +0 -2
- package/dist/lib/codex-manager/config-explain.d.ts.map +0 -1
- package/dist/lib/codex-manager/config-explain.js +0 -62
- package/dist/lib/codex-manager/config-explain.js.map +0 -1
- package/dist/lib/codex-manager/config-template.d.ts +0 -2
- package/dist/lib/codex-manager/config-template.d.ts.map +0 -1
- package/dist/lib/codex-manager/config-template.js +0 -112
- package/dist/lib/codex-manager/config-template.js.map +0 -1
- package/dist/lib/codex-manager/debug-bundle.d.ts +0 -2
- package/dist/lib/codex-manager/debug-bundle.d.ts.map +0 -1
- package/dist/lib/codex-manager/debug-bundle.js +0 -128
- package/dist/lib/codex-manager/debug-bundle.js.map +0 -1
- package/dist/lib/codex-manager/doctor.d.ts +0 -20
- package/dist/lib/codex-manager/doctor.d.ts.map +0 -1
- package/dist/lib/codex-manager/doctor.js +0 -546
- package/dist/lib/codex-manager/doctor.js.map +0 -1
- package/dist/lib/codex-manager/fix.d.ts +0 -26
- package/dist/lib/codex-manager/fix.d.ts.map +0 -1
- package/dist/lib/codex-manager/fix.js +0 -366
- package/dist/lib/codex-manager/fix.js.map +0 -1
- package/dist/lib/codex-manager/forecast.d.ts +0 -26
- package/dist/lib/codex-manager/forecast.d.ts.map +0 -1
- package/dist/lib/codex-manager/forecast.js +0 -218
- package/dist/lib/codex-manager/forecast.js.map +0 -1
- package/dist/lib/codex-manager/info.d.ts +0 -11
- package/dist/lib/codex-manager/info.d.ts.map +0 -1
- package/dist/lib/codex-manager/info.js +0 -91
- package/dist/lib/codex-manager/info.js.map +0 -1
- package/dist/lib/codex-manager/login.d.ts +0 -40
- package/dist/lib/codex-manager/login.d.ts.map +0 -1
- package/dist/lib/codex-manager/login.js +0 -1041
- package/dist/lib/codex-manager/login.js.map +0 -1
- package/dist/lib/codex-manager/report.d.ts +0 -39
- package/dist/lib/codex-manager/report.d.ts.map +0 -1
- package/dist/lib/codex-manager/report.js +0 -243
- package/dist/lib/codex-manager/report.js.map +0 -1
- package/dist/lib/codex-manager/switch.d.ts +0 -31
- package/dist/lib/codex-manager/switch.d.ts.map +0 -1
- package/dist/lib/codex-manager/switch.js +0 -103
- package/dist/lib/codex-manager/switch.js.map +0 -1
- package/dist/lib/codex-manager/verify-flagged.d.ts +0 -20
- package/dist/lib/codex-manager/verify-flagged.d.ts.map +0 -1
- package/dist/lib/codex-manager/verify-flagged.js +0 -316
- package/dist/lib/codex-manager/verify-flagged.js.map +0 -1
- package/dist/lib/request/trace-mode.d.ts +0 -9
- package/dist/lib/request/trace-mode.d.ts.map +0 -1
- package/dist/lib/request/trace-mode.js +0 -14
- package/dist/lib/request/trace-mode.js.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { promises as fs } from "node:fs";
|
|
2
2
|
import { dirname, resolve } from "node:path";
|
|
3
|
-
import { extractAccountId, formatAccountLabel } from "../../accounts.js";
|
|
3
|
+
import { extractAccountEmail, extractAccountId, formatAccountLabel, sanitizeEmail, } from "../../accounts.js";
|
|
4
4
|
import { evaluateForecastAccounts, recommendForecastAccount, summarizeForecast, } from "../../forecast.js";
|
|
5
5
|
import { formatQuotaSnapshotLine, } from "../../quota-probe.js";
|
|
6
6
|
import { getModelCapabilities, getModelProfile, resolveNormalizedModel, } from "../../request/helpers/model-map.js";
|
|
7
|
+
import { findMatchingAccountIndex, } from "../../storage.js";
|
|
7
8
|
import { sleep } from "../../utils.js";
|
|
8
9
|
const RETRYABLE_WRITE_CODES = new Set(["EBUSY", "EPERM"]);
|
|
9
10
|
function isRetryableWriteError(error) {
|
|
@@ -157,6 +158,50 @@ async function defaultWriteFile(path, contents) {
|
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
160
|
}
|
|
161
|
+
async function saveAccountsWithRetry(storage, saveAccounts) {
|
|
162
|
+
for (let attempt = 0;; attempt += 1) {
|
|
163
|
+
try {
|
|
164
|
+
await saveAccounts(storage);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
if (!isRetryableWriteError(error) || attempt >= 3) {
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
await sleep(10 * 2 ** attempt);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function applyRefreshedAccountPatch(account, patch) {
|
|
176
|
+
account.refreshToken = patch.refreshToken;
|
|
177
|
+
account.accessToken = patch.accessToken;
|
|
178
|
+
account.expiresAt = patch.expiresAt;
|
|
179
|
+
if (patch.email)
|
|
180
|
+
account.email = patch.email;
|
|
181
|
+
if (patch.accountId) {
|
|
182
|
+
account.accountId = patch.accountId;
|
|
183
|
+
account.accountIdSource = patch.accountIdSource;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
async function persistRefreshedAccountPatch(storage, accountMatch, patch, loadAccounts, saveAccounts) {
|
|
187
|
+
const latestStorage = (await loadAccounts()) ?? storage;
|
|
188
|
+
const nextStorage = structuredClone(latestStorage);
|
|
189
|
+
const targetIndex = findMatchingAccountIndex(nextStorage.accounts, accountMatch, {
|
|
190
|
+
allowUniqueAccountIdFallbackWithoutEmail: true,
|
|
191
|
+
}) ??
|
|
192
|
+
findMatchingAccountIndex(nextStorage.accounts, patch, {
|
|
193
|
+
allowUniqueAccountIdFallbackWithoutEmail: true,
|
|
194
|
+
});
|
|
195
|
+
if (targetIndex === undefined) {
|
|
196
|
+
throw new Error("Unable to resolve refreshed account for persistence");
|
|
197
|
+
}
|
|
198
|
+
const targetAccount = nextStorage.accounts[targetIndex];
|
|
199
|
+
if (!targetAccount) {
|
|
200
|
+
throw new Error("Unable to resolve refreshed account for persistence");
|
|
201
|
+
}
|
|
202
|
+
applyRefreshedAccountPatch(targetAccount, patch);
|
|
203
|
+
await saveAccountsWithRetry(nextStorage, saveAccounts);
|
|
204
|
+
}
|
|
160
205
|
export async function runReportCommand(args, deps) {
|
|
161
206
|
const logInfo = deps.logInfo ?? console.log;
|
|
162
207
|
const logError = deps.logError ?? console.error;
|
|
@@ -187,23 +232,68 @@ export async function runReportCommand(args, deps) {
|
|
|
187
232
|
const account = storage.accounts[i];
|
|
188
233
|
if (!account || account.enabled === false)
|
|
189
234
|
continue;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
235
|
+
let probeAccessToken = account.accessToken;
|
|
236
|
+
let probeAccountId = account.accountId ?? extractAccountId(account.accessToken);
|
|
237
|
+
if (!deps.hasUsableAccessToken(account, now)) {
|
|
238
|
+
const refreshResult = await deps.queuedRefresh(account.refreshToken);
|
|
239
|
+
if (refreshResult.type !== "success") {
|
|
240
|
+
refreshFailures.set(i, {
|
|
241
|
+
...refreshResult,
|
|
242
|
+
message: deps.normalizeFailureDetail(refreshResult.message, refreshResult.reason),
|
|
243
|
+
});
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
const refreshedEmail = sanitizeEmail(extractAccountEmail(refreshResult.access, refreshResult.idToken));
|
|
247
|
+
const tokenDerivedAccountId = extractAccountId(refreshResult.access);
|
|
248
|
+
const refreshedAccountId = account.accountId ?? tokenDerivedAccountId;
|
|
249
|
+
const previousRefreshToken = account.refreshToken;
|
|
250
|
+
const previousAccessToken = account.accessToken;
|
|
251
|
+
const previousExpiresAt = account.expiresAt;
|
|
252
|
+
const previousEmail = account.email;
|
|
253
|
+
const previousAccountId = account.accountId;
|
|
254
|
+
const refreshPatch = {
|
|
255
|
+
refreshToken: refreshResult.refresh,
|
|
256
|
+
accessToken: refreshResult.access,
|
|
257
|
+
expiresAt: refreshResult.expires,
|
|
258
|
+
};
|
|
259
|
+
if (refreshedEmail) {
|
|
260
|
+
refreshPatch.email = refreshedEmail;
|
|
261
|
+
}
|
|
262
|
+
if (tokenDerivedAccountId) {
|
|
263
|
+
refreshPatch.accountId = tokenDerivedAccountId;
|
|
264
|
+
refreshPatch.accountIdSource = "token";
|
|
265
|
+
}
|
|
266
|
+
const accountMatch = {
|
|
267
|
+
refreshToken: previousRefreshToken,
|
|
268
|
+
email: previousEmail,
|
|
269
|
+
accountId: previousAccountId,
|
|
270
|
+
};
|
|
271
|
+
applyRefreshedAccountPatch(account, refreshPatch);
|
|
272
|
+
probeAccessToken = refreshResult.access;
|
|
273
|
+
probeAccountId = account.accountId ?? refreshedAccountId;
|
|
274
|
+
if (previousRefreshToken !== refreshPatch.refreshToken ||
|
|
275
|
+
previousAccessToken !== refreshPatch.accessToken ||
|
|
276
|
+
previousExpiresAt !== refreshPatch.expiresAt ||
|
|
277
|
+
previousEmail !== account.email ||
|
|
278
|
+
previousAccountId !== account.accountId) {
|
|
279
|
+
try {
|
|
280
|
+
await persistRefreshedAccountPatch(storage, accountMatch, refreshPatch, deps.loadAccounts, deps.saveAccounts);
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
const message = deps.normalizeFailureDetail(error instanceof Error ? error.message : String(error), undefined);
|
|
284
|
+
probeErrors.push(`${formatAccountLabel(account, i)}: ${message}`);
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
197
288
|
}
|
|
198
|
-
|
|
199
|
-
if (!accountId) {
|
|
289
|
+
if (!probeAccessToken || !probeAccountId) {
|
|
200
290
|
probeErrors.push(`${formatAccountLabel(account, i)}: missing accountId for live probe`);
|
|
201
291
|
continue;
|
|
202
292
|
}
|
|
203
293
|
try {
|
|
204
294
|
const liveQuota = await deps.fetchCodexQuotaSnapshot({
|
|
205
|
-
accountId,
|
|
206
|
-
accessToken:
|
|
295
|
+
accountId: probeAccountId,
|
|
296
|
+
accessToken: probeAccessToken,
|
|
207
297
|
model: modelInspection.normalized,
|
|
208
298
|
});
|
|
209
299
|
liveQuotaByIndex.set(i, liveQuota);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-manager.d.ts","sourceRoot":"","sources":["../../lib/codex-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex-manager.d.ts","sourceRoot":"","sources":["../../lib/codex-manager.ts"],"names":[],"mappings":"AAuyCA,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ3D;AA6sDD,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CAuGrE;AACD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAkH7E"}
|
|
@@ -26,6 +26,7 @@ import { evaluateForecastAccounts, recommendForecastAccount, summarizeForecast,
|
|
|
26
26
|
import { createLogger } from "./logger.js";
|
|
27
27
|
import { MODEL_FAMILIES } from "./prompts/codex.js";
|
|
28
28
|
import { getModelCapabilities, getModelProfile, resolveNormalizedModel, } from "./request/helpers/model-map.js";
|
|
29
|
+
import { formatRateLimitEntry as formatAccountRateLimitEntry, resolveActiveIndex, } from "./runtime/account-status.js";
|
|
29
30
|
import { loadQuotaCache, saveQuotaCache, } from "./quota-cache.js";
|
|
30
31
|
import { fetchCodexQuotaSnapshot, formatQuotaSnapshotLine, } from "./quota-probe.js";
|
|
31
32
|
import { queuedRefresh } from "./refresh-queue.js";
|
|
@@ -307,41 +308,8 @@ const IMPLEMENTED_FEATURES = [
|
|
|
307
308
|
{ id: 40, name: "OAuth browser-first flow with manual callback fallback" },
|
|
308
309
|
{ id: 41, name: "Auto-switch to best account command" },
|
|
309
310
|
];
|
|
310
|
-
function resolveActiveIndex(storage, family = "codex") {
|
|
311
|
-
const total = storage.accounts.length;
|
|
312
|
-
if (total === 0)
|
|
313
|
-
return 0;
|
|
314
|
-
const rawCandidate = storage.activeIndexByFamily?.[family] ?? storage.activeIndex;
|
|
315
|
-
const raw = Number.isFinite(rawCandidate) ? rawCandidate : 0;
|
|
316
|
-
return Math.max(0, Math.min(raw, total - 1));
|
|
317
|
-
}
|
|
318
|
-
function getRateLimitResetTimeForFamily(account, now, family) {
|
|
319
|
-
const times = account.rateLimitResetTimes;
|
|
320
|
-
if (!times)
|
|
321
|
-
return null;
|
|
322
|
-
let minReset = null;
|
|
323
|
-
const prefix = `${family}:`;
|
|
324
|
-
for (const [key, value] of Object.entries(times)) {
|
|
325
|
-
if (typeof value !== "number")
|
|
326
|
-
continue;
|
|
327
|
-
if (value <= now)
|
|
328
|
-
continue;
|
|
329
|
-
if (key !== family && !key.startsWith(prefix))
|
|
330
|
-
continue;
|
|
331
|
-
if (minReset === null || value < minReset) {
|
|
332
|
-
minReset = value;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
return minReset;
|
|
336
|
-
}
|
|
337
311
|
function formatRateLimitEntry(account, now, family = "codex") {
|
|
338
|
-
|
|
339
|
-
if (typeof resetAt !== "number")
|
|
340
|
-
return null;
|
|
341
|
-
const remaining = resetAt - now;
|
|
342
|
-
if (remaining <= 0)
|
|
343
|
-
return null;
|
|
344
|
-
return `resets in ${formatWaitTime(remaining)}`;
|
|
312
|
+
return formatAccountRateLimitEntry(account, now, formatWaitTime, family);
|
|
345
313
|
}
|
|
346
314
|
function normalizeQuotaEmail(email) {
|
|
347
315
|
const normalized = sanitizeEmail(email);
|
|
@@ -682,6 +650,9 @@ function readQuotaLeftPercent(account, windowLabel) {
|
|
|
682
650
|
}
|
|
683
651
|
return parseLeftPercentFromQuotaSummary(account.quotaSummary, windowLabel);
|
|
684
652
|
}
|
|
653
|
+
function readQuotaFloorPercent(account) {
|
|
654
|
+
return Math.min(readQuotaLeftPercent(account, "5h"), readQuotaLeftPercent(account, "7d"));
|
|
655
|
+
}
|
|
685
656
|
function accountStatusSortBucket(status) {
|
|
686
657
|
switch (status) {
|
|
687
658
|
case "active":
|
|
@@ -700,7 +671,21 @@ function accountStatusSortBucket(status) {
|
|
|
700
671
|
return 1;
|
|
701
672
|
}
|
|
702
673
|
}
|
|
674
|
+
function accountReadinessSortBucket(account) {
|
|
675
|
+
const statusBucket = accountStatusSortBucket(account.status);
|
|
676
|
+
if (statusBucket >= 2)
|
|
677
|
+
return statusBucket;
|
|
678
|
+
return account.quotaRateLimited ? 2 : statusBucket;
|
|
679
|
+
}
|
|
703
680
|
function compareReadyFirstAccounts(left, right) {
|
|
681
|
+
const bucketDelta = accountReadinessSortBucket(left) -
|
|
682
|
+
accountReadinessSortBucket(right);
|
|
683
|
+
if (bucketDelta !== 0)
|
|
684
|
+
return bucketDelta;
|
|
685
|
+
const leftFloor = readQuotaFloorPercent(left);
|
|
686
|
+
const rightFloor = readQuotaFloorPercent(right);
|
|
687
|
+
if (leftFloor !== rightFloor)
|
|
688
|
+
return rightFloor - leftFloor;
|
|
704
689
|
const left5h = readQuotaLeftPercent(left, "5h");
|
|
705
690
|
const right5h = readQuotaLeftPercent(right, "5h");
|
|
706
691
|
if (left5h !== right5h)
|
|
@@ -709,10 +694,6 @@ function compareReadyFirstAccounts(left, right) {
|
|
|
709
694
|
const right7d = readQuotaLeftPercent(right, "7d");
|
|
710
695
|
if (left7d !== right7d)
|
|
711
696
|
return right7d - left7d;
|
|
712
|
-
const bucketDelta = accountStatusSortBucket(left.status) -
|
|
713
|
-
accountStatusSortBucket(right.status);
|
|
714
|
-
if (bucketDelta !== 0)
|
|
715
|
-
return bucketDelta;
|
|
716
697
|
const leftLastUsed = left.lastUsed ?? 0;
|
|
717
698
|
const rightLastUsed = right.lastUsed ?? 0;
|
|
718
699
|
if (leftLastUsed !== rightLastUsed)
|
|
@@ -1781,6 +1762,7 @@ async function runForecast(args) {
|
|
|
1781
1762
|
return runForecastCommand(args, {
|
|
1782
1763
|
setStoragePath,
|
|
1783
1764
|
loadAccounts,
|
|
1765
|
+
saveAccounts,
|
|
1784
1766
|
loadDashboardDisplaySettings,
|
|
1785
1767
|
resolveActiveIndex,
|
|
1786
1768
|
loadQuotaCache,
|
|
@@ -1985,6 +1967,12 @@ async function runAuthLogin(args) {
|
|
|
1985
1967
|
setStoragePath(null);
|
|
1986
1968
|
let pendingMenuQuotaRefresh = null;
|
|
1987
1969
|
let menuQuotaRefreshStatus;
|
|
1970
|
+
let skipNextMenuQuotaAutoRefresh = false;
|
|
1971
|
+
let menuQuotaRefreshGeneration = 0;
|
|
1972
|
+
const clearMenuQuotaAutoRefreshSkip = () => {
|
|
1973
|
+
skipNextMenuQuotaAutoRefresh = false;
|
|
1974
|
+
menuQuotaRefreshGeneration += 1;
|
|
1975
|
+
};
|
|
1988
1976
|
loginFlow: while (true) {
|
|
1989
1977
|
let existingStorage = await loadAccounts();
|
|
1990
1978
|
if (existingStorage && existingStorage.accounts.length > 0) {
|
|
@@ -2000,18 +1988,30 @@ async function runAuthLogin(args) {
|
|
|
2000
1988
|
const shouldAutoFetchLimits = displaySettings.menuAutoFetchLimits ?? true;
|
|
2001
1989
|
const showFetchStatus = displaySettings.menuShowFetchStatus ?? true;
|
|
2002
1990
|
const quotaTtlMs = displaySettings.menuQuotaTtlMs ?? DEFAULT_MENU_QUOTA_REFRESH_TTL_MS;
|
|
2003
|
-
|
|
1991
|
+
const shouldSkipAutoFetchThisPass = !pendingMenuQuotaRefresh && skipNextMenuQuotaAutoRefresh;
|
|
1992
|
+
if (shouldSkipAutoFetchThisPass) {
|
|
1993
|
+
skipNextMenuQuotaAutoRefresh = false;
|
|
1994
|
+
}
|
|
1995
|
+
if (shouldAutoFetchLimits
|
|
1996
|
+
&& !pendingMenuQuotaRefresh
|
|
1997
|
+
&& !shouldSkipAutoFetchThisPass) {
|
|
2004
1998
|
const staleCount = countMenuQuotaRefreshTargets(currentStorage, quotaCache, quotaTtlMs);
|
|
2005
1999
|
if (staleCount > 0) {
|
|
2006
2000
|
if (showFetchStatus) {
|
|
2007
2001
|
menuQuotaRefreshStatus = `${UI_COPY.mainMenu.loadingLimits} [0/${staleCount}]`;
|
|
2008
2002
|
}
|
|
2003
|
+
const refreshGeneration = menuQuotaRefreshGeneration;
|
|
2009
2004
|
pendingMenuQuotaRefresh = refreshQuotaCacheForMenu(currentStorage, quotaCache, quotaTtlMs, (current, total) => {
|
|
2010
2005
|
if (!showFetchStatus)
|
|
2011
2006
|
return;
|
|
2012
2007
|
menuQuotaRefreshStatus = `${UI_COPY.mainMenu.loadingLimits} [${current}/${total}]`;
|
|
2013
2008
|
})
|
|
2014
|
-
.then(() =>
|
|
2009
|
+
.then(() => {
|
|
2010
|
+
if (refreshGeneration === menuQuotaRefreshGeneration) {
|
|
2011
|
+
skipNextMenuQuotaAutoRefresh = true;
|
|
2012
|
+
}
|
|
2013
|
+
return undefined;
|
|
2014
|
+
})
|
|
2015
2015
|
.catch(() => undefined)
|
|
2016
2016
|
.finally(() => {
|
|
2017
2017
|
menuQuotaRefreshStatus = undefined;
|
|
@@ -2031,40 +2031,47 @@ async function runAuthLogin(args) {
|
|
|
2031
2031
|
return 0;
|
|
2032
2032
|
}
|
|
2033
2033
|
if (menuResult.mode === "check") {
|
|
2034
|
+
clearMenuQuotaAutoRefreshSkip();
|
|
2034
2035
|
await runActionPanel("Quick Check", "Checking local session + live status", async () => {
|
|
2035
2036
|
await runHealthCheck({ forceRefresh: false, liveProbe: true });
|
|
2036
2037
|
}, displaySettings);
|
|
2037
2038
|
continue;
|
|
2038
2039
|
}
|
|
2039
2040
|
if (menuResult.mode === "deep-check") {
|
|
2041
|
+
clearMenuQuotaAutoRefreshSkip();
|
|
2040
2042
|
await runActionPanel("Deep Check", "Refreshing and testing all accounts", async () => {
|
|
2041
2043
|
await runHealthCheck({ forceRefresh: true, liveProbe: true });
|
|
2042
2044
|
}, displaySettings);
|
|
2043
2045
|
continue;
|
|
2044
2046
|
}
|
|
2045
2047
|
if (menuResult.mode === "forecast") {
|
|
2048
|
+
clearMenuQuotaAutoRefreshSkip();
|
|
2046
2049
|
await runActionPanel("Best Account", "Comparing accounts", async () => {
|
|
2047
2050
|
await runForecast(["--live"]);
|
|
2048
2051
|
}, displaySettings);
|
|
2049
2052
|
continue;
|
|
2050
2053
|
}
|
|
2051
2054
|
if (menuResult.mode === "fix") {
|
|
2055
|
+
clearMenuQuotaAutoRefreshSkip();
|
|
2052
2056
|
await runActionPanel("Auto-Fix", "Checking and fixing common issues", async () => {
|
|
2053
2057
|
await runRepairFix(["--live"], createRepairCommandDeps());
|
|
2054
2058
|
}, displaySettings);
|
|
2055
2059
|
continue;
|
|
2056
2060
|
}
|
|
2057
2061
|
if (menuResult.mode === "settings") {
|
|
2062
|
+
clearMenuQuotaAutoRefreshSkip();
|
|
2058
2063
|
await configureUnifiedSettings(displaySettings);
|
|
2059
2064
|
continue;
|
|
2060
2065
|
}
|
|
2061
2066
|
if (menuResult.mode === "verify-flagged") {
|
|
2067
|
+
clearMenuQuotaAutoRefreshSkip();
|
|
2062
2068
|
await runActionPanel("Problem Account Check", "Checking problem accounts", async () => {
|
|
2063
2069
|
await runRepairVerifyFlagged([], createRepairCommandDeps());
|
|
2064
2070
|
}, displaySettings);
|
|
2065
2071
|
continue;
|
|
2066
2072
|
}
|
|
2067
2073
|
if (menuResult.mode === "fresh" && menuResult.deleteAll) {
|
|
2074
|
+
clearMenuQuotaAutoRefreshSkip();
|
|
2068
2075
|
await runActionPanel("Reset Accounts", "Deleting all saved accounts", async () => {
|
|
2069
2076
|
await clearAccountsAndReset();
|
|
2070
2077
|
console.log("Cleared saved accounts from active storage. Recovery snapshots remain available.");
|
|
@@ -2072,6 +2079,7 @@ async function runAuthLogin(args) {
|
|
|
2072
2079
|
continue;
|
|
2073
2080
|
}
|
|
2074
2081
|
if (menuResult.mode === "manage") {
|
|
2082
|
+
clearMenuQuotaAutoRefreshSkip();
|
|
2075
2083
|
const requiresInteractiveOAuth = typeof menuResult.refreshAccountIndex === "number";
|
|
2076
2084
|
if (requiresInteractiveOAuth) {
|
|
2077
2085
|
await handleManageAction(currentStorage, menuResult);
|
|
@@ -2482,7 +2490,9 @@ export async function runCodexMultiAuthCli(rawArgs) {
|
|
|
2482
2490
|
setStoragePath,
|
|
2483
2491
|
getStoragePath,
|
|
2484
2492
|
loadAccounts,
|
|
2493
|
+
saveAccounts,
|
|
2485
2494
|
resolveActiveIndex,
|
|
2495
|
+
hasUsableAccessToken,
|
|
2486
2496
|
queuedRefresh,
|
|
2487
2497
|
fetchCodexQuotaSnapshot,
|
|
2488
2498
|
formatRateLimitEntry,
|