codex-multi-auth 2.0.1 → 2.1.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.
Files changed (143) hide show
  1. package/README.md +22 -8
  2. package/config/README.md +4 -4
  3. package/config/codex-legacy.json +571 -571
  4. package/config/codex-modern.json +258 -258
  5. package/config/minimal-codex.json +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +91 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/account-policy.d.ts +22 -0
  10. package/dist/lib/account-policy.d.ts.map +1 -0
  11. package/dist/lib/account-policy.js +159 -0
  12. package/dist/lib/account-policy.js.map +1 -0
  13. package/dist/lib/accounts.d.ts.map +1 -1
  14. package/dist/lib/accounts.js +2 -1
  15. package/dist/lib/accounts.js.map +1 -1
  16. package/dist/lib/auth/device-auth.d.ts +46 -0
  17. package/dist/lib/auth/device-auth.d.ts.map +1 -0
  18. package/dist/lib/auth/device-auth.js +325 -0
  19. package/dist/lib/auth/device-auth.js.map +1 -0
  20. package/dist/lib/auth/index.d.ts +2 -0
  21. package/dist/lib/auth/index.d.ts.map +1 -1
  22. package/dist/lib/auth/index.js +1 -0
  23. package/dist/lib/auth/index.js.map +1 -1
  24. package/dist/lib/budget-guard.d.ts +39 -0
  25. package/dist/lib/budget-guard.d.ts.map +1 -0
  26. package/dist/lib/budget-guard.js +201 -0
  27. package/dist/lib/budget-guard.js.map +1 -0
  28. package/dist/lib/codex-manager/commands/account.d.ts +13 -0
  29. package/dist/lib/codex-manager/commands/account.d.ts.map +1 -0
  30. package/dist/lib/codex-manager/commands/account.js +156 -0
  31. package/dist/lib/codex-manager/commands/account.js.map +1 -0
  32. package/dist/lib/codex-manager/commands/bridge.d.ts +6 -0
  33. package/dist/lib/codex-manager/commands/bridge.d.ts.map +1 -0
  34. package/dist/lib/codex-manager/commands/bridge.js +100 -0
  35. package/dist/lib/codex-manager/commands/bridge.js.map +1 -0
  36. package/dist/lib/codex-manager/commands/budget.d.ts +12 -0
  37. package/dist/lib/codex-manager/commands/budget.d.ts.map +1 -0
  38. package/dist/lib/codex-manager/commands/budget.js +123 -0
  39. package/dist/lib/codex-manager/commands/budget.js.map +1 -0
  40. package/dist/lib/codex-manager/commands/integrations.d.ts +6 -0
  41. package/dist/lib/codex-manager/commands/integrations.d.ts.map +1 -0
  42. package/dist/lib/codex-manager/commands/integrations.js +78 -0
  43. package/dist/lib/codex-manager/commands/integrations.js.map +1 -0
  44. package/dist/lib/codex-manager/commands/models.d.ts +14 -0
  45. package/dist/lib/codex-manager/commands/models.d.ts.map +1 -0
  46. package/dist/lib/codex-manager/commands/models.js +74 -0
  47. package/dist/lib/codex-manager/commands/models.js.map +1 -0
  48. package/dist/lib/codex-manager/commands/monitor.d.ts +22 -0
  49. package/dist/lib/codex-manager/commands/monitor.d.ts.map +1 -0
  50. package/dist/lib/codex-manager/commands/monitor.js +94 -0
  51. package/dist/lib/codex-manager/commands/monitor.js.map +1 -0
  52. package/dist/lib/codex-manager/commands/rotation.d.ts +1 -0
  53. package/dist/lib/codex-manager/commands/rotation.d.ts.map +1 -1
  54. package/dist/lib/codex-manager/commands/rotation.js +293 -10
  55. package/dist/lib/codex-manager/commands/rotation.js.map +1 -1
  56. package/dist/lib/codex-manager/commands/usage.d.ts +13 -0
  57. package/dist/lib/codex-manager/commands/usage.d.ts.map +1 -0
  58. package/dist/lib/codex-manager/commands/usage.js +347 -0
  59. package/dist/lib/codex-manager/commands/usage.js.map +1 -0
  60. package/dist/lib/codex-manager/help.d.ts +1 -0
  61. package/dist/lib/codex-manager/help.d.ts.map +1 -1
  62. package/dist/lib/codex-manager/help.js +26 -1
  63. package/dist/lib/codex-manager/help.js.map +1 -1
  64. package/dist/lib/codex-manager.d.ts.map +1 -1
  65. package/dist/lib/codex-manager.js +64 -7
  66. package/dist/lib/codex-manager.js.map +1 -1
  67. package/dist/lib/config.d.ts.map +1 -1
  68. package/dist/lib/config.js +2 -22
  69. package/dist/lib/config.js.map +1 -1
  70. package/dist/lib/constants.d.ts +1 -0
  71. package/dist/lib/constants.d.ts.map +1 -1
  72. package/dist/lib/constants.js +1 -0
  73. package/dist/lib/constants.js.map +1 -1
  74. package/dist/lib/env-parsing.d.ts +21 -0
  75. package/dist/lib/env-parsing.d.ts.map +1 -0
  76. package/dist/lib/env-parsing.js +34 -0
  77. package/dist/lib/env-parsing.js.map +1 -0
  78. package/dist/lib/index.d.ts +9 -0
  79. package/dist/lib/index.d.ts.map +1 -1
  80. package/dist/lib/index.js +9 -0
  81. package/dist/lib/index.js.map +1 -1
  82. package/dist/lib/integration-generators.d.ts +14 -0
  83. package/dist/lib/integration-generators.d.ts.map +1 -0
  84. package/dist/lib/integration-generators.js +93 -0
  85. package/dist/lib/integration-generators.js.map +1 -0
  86. package/dist/lib/local-bridge.d.ts +17 -0
  87. package/dist/lib/local-bridge.d.ts.map +1 -0
  88. package/dist/lib/local-bridge.js +249 -0
  89. package/dist/lib/local-bridge.js.map +1 -0
  90. package/dist/lib/local-client-tokens.d.ts +37 -0
  91. package/dist/lib/local-client-tokens.d.ts.map +1 -0
  92. package/dist/lib/local-client-tokens.js +200 -0
  93. package/dist/lib/local-client-tokens.js.map +1 -0
  94. package/dist/lib/model-capability-matrix.d.ts +38 -0
  95. package/dist/lib/model-capability-matrix.d.ts.map +1 -0
  96. package/dist/lib/model-capability-matrix.js +89 -0
  97. package/dist/lib/model-capability-matrix.js.map +1 -0
  98. package/dist/lib/policy/runtime-policy.d.ts +59 -0
  99. package/dist/lib/policy/runtime-policy.d.ts.map +1 -0
  100. package/dist/lib/policy/runtime-policy.js +156 -0
  101. package/dist/lib/policy/runtime-policy.js.map +1 -0
  102. package/dist/lib/proactive-refresh.js +4 -4
  103. package/dist/lib/proactive-refresh.js.map +1 -1
  104. package/dist/lib/refresh-lease.d.ts.map +1 -1
  105. package/dist/lib/refresh-lease.js +1 -10
  106. package/dist/lib/refresh-lease.js.map +1 -1
  107. package/dist/lib/routing-profiles.d.ts +36 -0
  108. package/dist/lib/routing-profiles.d.ts.map +1 -0
  109. package/dist/lib/routing-profiles.js +203 -0
  110. package/dist/lib/routing-profiles.js.map +1 -0
  111. package/dist/lib/runtime-rotation-proxy.d.ts.map +1 -1
  112. package/dist/lib/runtime-rotation-proxy.js +96 -6
  113. package/dist/lib/runtime-rotation-proxy.js.map +1 -1
  114. package/dist/lib/schemas.d.ts +3 -0
  115. package/dist/lib/schemas.d.ts.map +1 -1
  116. package/dist/lib/schemas.js +1 -0
  117. package/dist/lib/schemas.js.map +1 -1
  118. package/dist/lib/usage/index.d.ts +5 -0
  119. package/dist/lib/usage/index.d.ts.map +1 -0
  120. package/dist/lib/usage/index.js +5 -0
  121. package/dist/lib/usage/index.js.map +1 -0
  122. package/dist/lib/usage/ledger.d.ts +12 -0
  123. package/dist/lib/usage/ledger.d.ts.map +1 -0
  124. package/dist/lib/usage/ledger.js +493 -0
  125. package/dist/lib/usage/ledger.js.map +1 -0
  126. package/dist/lib/usage/pricing.d.ts +11 -0
  127. package/dist/lib/usage/pricing.d.ts.map +1 -0
  128. package/dist/lib/usage/pricing.js +67 -0
  129. package/dist/lib/usage/pricing.js.map +1 -0
  130. package/dist/lib/usage/redaction.d.ts +10 -0
  131. package/dist/lib/usage/redaction.d.ts.map +1 -0
  132. package/dist/lib/usage/redaction.js +129 -0
  133. package/dist/lib/usage/redaction.js.map +1 -0
  134. package/dist/lib/usage/types.d.ts +89 -0
  135. package/dist/lib/usage/types.d.ts.map +1 -0
  136. package/dist/lib/usage/types.js +2 -0
  137. package/dist/lib/usage/types.js.map +1 -0
  138. package/package.json +1 -1
  139. package/scripts/bench-format/codex-host.mjs +142 -142
  140. package/scripts/bench-format/models.mjs +23 -23
  141. package/scripts/benchmark-edit-formats.mjs +9 -9
  142. package/scripts/codex-app-router.js +121 -121
  143. package/scripts/codex.js +165 -165
@@ -0,0 +1,22 @@
1
+ import { loadAccountPolicyStore } from "../../account-policy.js";
2
+ import { loadBudgetGuardStore } from "../../budget-guard.js";
3
+ import { loadQuotaCache } from "../../quota-cache.js";
4
+ import { resolveProjectRoutingProfile } from "../../routing-profiles.js";
5
+ import { loadPersistedRuntimeObservabilitySnapshot } from "../../runtime/runtime-observability.js";
6
+ import type { AccountStorageV3 } from "../../storage.js";
7
+ import { summarizeUsageLedger } from "../../usage/index.js";
8
+ export interface MonitorCommandDeps {
9
+ setStoragePath: (path: string | null) => void;
10
+ loadAccounts: () => Promise<AccountStorageV3 | null>;
11
+ loadRuntimeObservabilitySnapshot?: typeof loadPersistedRuntimeObservabilitySnapshot;
12
+ loadQuotaCache?: typeof loadQuotaCache;
13
+ loadAccountPolicyStore?: typeof loadAccountPolicyStore;
14
+ loadBudgetGuardStore?: typeof loadBudgetGuardStore;
15
+ resolveProjectRoutingProfile?: typeof resolveProjectRoutingProfile;
16
+ summarizeUsageLedger?: typeof summarizeUsageLedger;
17
+ logInfo?: (message: string) => void;
18
+ logError?: (message: string) => void;
19
+ getNow?: () => number;
20
+ }
21
+ export declare function runMonitorCommand(args: string[], deps: MonitorCommandDeps): Promise<number>;
22
+ //# sourceMappingURL=monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,yCAAyC,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IAClC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,YAAY,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACrD,gCAAgC,CAAC,EAAE,OAAO,yCAAyC,CAAC;IACpF,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACvD,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACnD,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;IACnE,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAaD,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,kBAAkB,GACtB,OAAO,CAAC,MAAM,CAAC,CA+FjB"}
@@ -0,0 +1,94 @@
1
+ import { loadAccountPolicyStore } from "../../account-policy.js";
2
+ import { loadBudgetGuardStore } from "../../budget-guard.js";
3
+ import { buildModelCapabilityMatrix } from "../../model-capability-matrix.js";
4
+ import { loadQuotaCache } from "../../quota-cache.js";
5
+ import { resolveProjectRoutingProfile } from "../../routing-profiles.js";
6
+ import { loadPersistedRuntimeObservabilitySnapshot } from "../../runtime/runtime-observability.js";
7
+ import { summarizeUsageLedger } from "../../usage/index.js";
8
+ function printMonitorUsage(logInfo) {
9
+ logInfo([
10
+ "Usage:",
11
+ " codex auth monitor [--json]",
12
+ "",
13
+ "Aggregates local runtime, usage, policy, profile, model, quota, and project context.",
14
+ ].join("\n"));
15
+ }
16
+ export async function runMonitorCommand(args, deps) {
17
+ const logInfo = deps.logInfo ?? console.log;
18
+ const logError = deps.logError ?? console.error;
19
+ if (args.includes("--help") || args.includes("-h")) {
20
+ printMonitorUsage(logInfo);
21
+ return 0;
22
+ }
23
+ let json = false;
24
+ for (const arg of args) {
25
+ if (arg === "--json" || arg === "-j") {
26
+ json = true;
27
+ continue;
28
+ }
29
+ logError(`Unknown monitor option: ${arg}`);
30
+ return 1;
31
+ }
32
+ deps.setStoragePath(null);
33
+ const [storage, runtime, quotaCache, accountPolicies, budgetGuards, project, usage,] = await Promise.all([
34
+ deps.loadAccounts(),
35
+ (deps.loadRuntimeObservabilitySnapshot ??
36
+ loadPersistedRuntimeObservabilitySnapshot)(),
37
+ (deps.loadQuotaCache ?? loadQuotaCache)(),
38
+ (deps.loadAccountPolicyStore ?? loadAccountPolicyStore)(),
39
+ (deps.loadBudgetGuardStore ?? loadBudgetGuardStore)(),
40
+ (deps.resolveProjectRoutingProfile ?? resolveProjectRoutingProfile)(),
41
+ (deps.summarizeUsageLedger ?? summarizeUsageLedger)({ by: "outcome" }),
42
+ ]);
43
+ const matrix = buildModelCapabilityMatrix({
44
+ storage,
45
+ quotaCache,
46
+ now: deps.getNow?.() ?? Date.now(),
47
+ });
48
+ const payload = {
49
+ command: "monitor",
50
+ project: {
51
+ projectKey: project.projectKey,
52
+ projectRoot: project.projectRoot,
53
+ hasProfile: project.profile !== null,
54
+ budgetKey: project.profile?.budgetKey ?? null,
55
+ },
56
+ accounts: {
57
+ count: storage?.accounts.length ?? 0,
58
+ policyCount: Object.keys(accountPolicies.accounts).length,
59
+ },
60
+ runtime,
61
+ usage,
62
+ budgetGuardCount: Object.keys(budgetGuards.limits).length,
63
+ routingProfile: project.profile,
64
+ modelMatrix: {
65
+ models: matrix.models,
66
+ entries: matrix.entries.length,
67
+ available: matrix.entries.filter((entry) => entry.available).length,
68
+ unavailable: matrix.entries.filter((entry) => !entry.available).length,
69
+ },
70
+ quotaCache: {
71
+ byAccountId: Object.keys(quotaCache.byAccountId).length,
72
+ byEmail: Object.keys(quotaCache.byEmail).length,
73
+ },
74
+ };
75
+ if (json) {
76
+ logInfo(JSON.stringify(payload, null, 2));
77
+ return 0;
78
+ }
79
+ logInfo("Local governance monitor");
80
+ logInfo(`Project: ${payload.project.projectKey ?? "none"}`);
81
+ logInfo(`Accounts: ${payload.accounts.count} (${payload.accounts.policyCount} policies)`);
82
+ logInfo(`Usage: ${usage.totals.requests} requests, ${usage.totals.totalTokens} tokens, $${usage.totals.costUsd.toFixed(6)}`);
83
+ logInfo(`Budgets: ${payload.budgetGuardCount}`);
84
+ logInfo(`Models: ${payload.modelMatrix.available}/${payload.modelMatrix.entries} available`);
85
+ logInfo(`Quota cache: ${payload.quotaCache.byAccountId} account ids, ${payload.quotaCache.byEmail} emails`);
86
+ if (runtime) {
87
+ logInfo(`Runtime: responses=${runtime.responsesRequests}, refresh=${runtime.authRefreshRequests}, failures=${runtime.runtimeMetrics.failedRequests}`);
88
+ }
89
+ else {
90
+ logInfo("Runtime: no persisted snapshot");
91
+ }
92
+ return 0;
93
+ }
94
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/monitor.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export interface RotationCommandDeps {
9
9
  savePluginConfig: (config: Partial<PluginConfig>) => Promise<void>;
10
10
  getCodexRuntimeRotationProxy: (config: PluginConfig) => boolean;
11
11
  loadAccounts: () => Promise<LoadedStorage>;
12
+ saveAccounts?: (storage: AccountStorageV3) => Promise<void>;
12
13
  resolveActiveIndex: (storage: AccountStorageV3) => number;
13
14
  getStoragePath: () => string | null;
14
15
  setStoragePath: (path: string | null) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/rotation.ts"],"names":[],"mappings":"AAIA,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAO3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,KAAK,aAAa,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAiB7C,MAAM,WAAW,mBAAmB;IACnC,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,4BAA4B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC;IAChE,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,kBAAkB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC1D,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACrD,gCAAgC,CAAC,EAAE,MAAM,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;IACtF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAuPD,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,mBAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,CA4EjB"}
1
+ {"version":3,"file":"rotation.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/rotation.ts"],"names":[],"mappings":"AAuBA,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAO3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAqB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,KAAK,aAAa,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAiB7C,MAAM,WAAW,mBAAmB;IACnC,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,4BAA4B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC;IAChE,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,kBAAkB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC1D,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACrD,gCAAgC,CAAC,EAAE,MAAM,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;IACtF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AA2iBD,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,mBAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,CA+EjB"}
@@ -1,7 +1,22 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { formatAccountLabel, formatCooldown, formatWaitTime } from "../../accounts.js";
4
+ import { parseBooleanEnv } from "../../env-parsing.js";
4
5
  import { getCodexMultiAuthDir } from "../../runtime-paths.js";
6
+ import { saveAccountsWithRetry } from "../forecast-report-shared.js";
7
+ /**
8
+ * Build a privacy-safe label for {@link runResetRateLimits} change reports.
9
+ *
10
+ * `formatAccountLabel` includes the raw email, which leaks PII into JSON output
11
+ * that can be ingested by automation. This helper keeps just the 1-based index
12
+ * and a tail-only fragment of the accountId so a human can still tell which
13
+ * pool entry was affected.
14
+ */
15
+ function redactedResetRateLimitsLabel(account, index) {
16
+ const id = typeof account.accountId === "string" ? account.accountId : "";
17
+ const tail = id.length > 4 ? `***${id.slice(-4)}` : "***";
18
+ return `account ${index + 1} (id:${tail})`;
19
+ }
5
20
  import { formatAppBindStatus, } from "../../runtime/app-bind.js";
6
21
  import { APP_RUNTIME_HELPER_STATUS_FILE } from "../../runtime-constants.js";
7
22
  import { findQuotaCacheEntryForAccount, isQuotaCacheEntryExhausted, } from "../../quota-readiness.js";
@@ -15,31 +30,296 @@ function printRotationUsage(logInfo) {
15
30
  " codex auth rotation status",
16
31
  " codex auth rotation bind-app",
17
32
  " codex auth rotation unbind-app",
33
+ " codex auth rotation reset-rate-limits [--all | --account <idx>] [--dry-run] [--json]",
18
34
  "",
19
35
  "Behavior:",
20
36
  " - Runtime rotation is enabled by default for request-bearing Codex sessions",
21
37
  " - Binds the packaged Codex desktop app to the same localhost router when enabled or repaired",
22
38
  " - Use CODEX_MULTI_AUTH_RUNTIME_ROTATION_PROXY=0 to disable the proxy for the current process without changing persistent settings",
39
+ " - reset-rate-limits clears stored rateLimitResetTimes and active coolingDownUntil entries; use when `fix --live` confirms quota is available but the proxy still returns 503 pool-exhausted",
23
40
  ].join("\n"));
24
41
  }
25
- function parseBooleanEnv(value) {
26
- if (value === undefined || value.trim().length === 0)
27
- return null;
28
- const normalized = value.trim().toLowerCase();
29
- if (normalized === "1" || normalized === "true" || normalized === "yes") {
30
- return true;
42
+ /**
43
+ * Parse argv tokens into a {@link ResetRateLimitsOptions} bag (or an error / help signal).
44
+ *
45
+ * Accepts `--all`, `--account <1-based-int>`, `--dry-run`, `--json` / `-j`, and `--help` /
46
+ * `-h` / `help`. Rejects fractional or non-numeric account indexes and combinations of
47
+ * `--all` with `--account`. Returns a discriminated union so callers can route help and
48
+ * error paths without parsing twice.
49
+ */
50
+ function parseResetRateLimitsArgs(args) {
51
+ let scope = "all";
52
+ let scopeExplicit = false;
53
+ let accountIndex = null;
54
+ let dryRun = false;
55
+ let json = false;
56
+ for (let i = 0; i < args.length; i += 1) {
57
+ const arg = args[i];
58
+ if (arg === "--help" || arg === "-h" || arg === "help") {
59
+ return { ok: true, help: true };
60
+ }
61
+ if (arg === "--all") {
62
+ if (scopeExplicit && scope !== "all") {
63
+ return { ok: false, error: "--all and --account are mutually exclusive" };
64
+ }
65
+ scope = "all";
66
+ scopeExplicit = true;
67
+ continue;
68
+ }
69
+ if (arg === "--account") {
70
+ if (scopeExplicit && scope === "all") {
71
+ return { ok: false, error: "--all and --account are mutually exclusive" };
72
+ }
73
+ const next = args[i + 1];
74
+ if (!next) {
75
+ return { ok: false, error: "--account requires a 1-based index" };
76
+ }
77
+ if (!/^[0-9]+$/.test(next)) {
78
+ return {
79
+ ok: false,
80
+ error: `--account expects a positive 1-based integer, got: ${next}`,
81
+ };
82
+ }
83
+ const parsed = Number.parseInt(next, 10);
84
+ if (!Number.isInteger(parsed) || parsed < 1) {
85
+ return {
86
+ ok: false,
87
+ error: `--account expects a positive 1-based integer, got: ${next}`,
88
+ };
89
+ }
90
+ scope = "account";
91
+ scopeExplicit = true;
92
+ accountIndex = parsed - 1;
93
+ i += 1;
94
+ continue;
95
+ }
96
+ if (arg === "--dry-run") {
97
+ dryRun = true;
98
+ continue;
99
+ }
100
+ if (arg === "--json" || arg === "-j") {
101
+ json = true;
102
+ continue;
103
+ }
104
+ return { ok: false, error: `Unknown reset-rate-limits option: ${arg}` };
31
105
  }
32
- if (normalized === "0" || normalized === "false" || normalized === "no") {
33
- return false;
106
+ return { ok: true, help: false, options: { scope, accountIndex, dryRun, json } };
107
+ }
108
+ /**
109
+ * Print the focused `codex auth rotation reset-rate-limits` help block, including the
110
+ * proxy-restart guidance users need to run after a successful clear.
111
+ */
112
+ function printResetRateLimitsUsage(logInfo) {
113
+ logInfo([
114
+ "Usage:",
115
+ " codex auth rotation reset-rate-limits [--all | --account <idx>] [--dry-run] [--json]",
116
+ "",
117
+ "Options:",
118
+ " --all Clear timers for every account (default)",
119
+ " --account <idx> Clear timers for a single 1-based account index",
120
+ " --dry-run Report what would change without writing",
121
+ " --json, -j Print machine-readable JSON output",
122
+ "",
123
+ "Notes:",
124
+ " - Clears stored rateLimitResetTimes entries with reset times still in the future",
125
+ " and any active coolingDownUntil entries.",
126
+ " - Use when `codex auth fix --live` confirms upstream quota is available but the",
127
+ " runtime rotation proxy still returns 503 pool-exhausted.",
128
+ " - If a runtime rotation proxy is currently running it may re-persist its in-memory",
129
+ " timers and revert these changes. After clearing, run `codex auth rotation disable`",
130
+ " then `codex auth rotation enable` (or restart the Codex app) to flush in-memory",
131
+ " state and reload from disk.",
132
+ ].join("\n"));
133
+ }
134
+ const RESET_RATE_LIMITS_RESTART_HINT = "If a runtime rotation proxy is currently running it may re-persist its in-memory timers and revert these changes. Run `codex auth rotation disable` then `codex auth rotation enable` (or restart the Codex app) to flush in-memory state and reload from disk.";
135
+ /**
136
+ * Implement `codex auth rotation reset-rate-limits`: load the shared (non-project-scoped)
137
+ * account pool, scan for currently-blocking `rateLimitResetTimes` and `coolingDownUntil`
138
+ * entries, optionally clear them, and persist via {@link saveAccountsWithRetry}.
139
+ *
140
+ * The shared-path scope is held across both load and save so the write lands on the
141
+ * pool file even when the CLI was invoked from a project-scoped working directory.
142
+ *
143
+ * @returns 0 on success (including no-op runs and dry-runs), 1 on parse errors,
144
+ * missing accounts, out-of-range index, missing writable `saveAccounts` for a real
145
+ * write, or persistent save failures (e.g. Windows EBUSY exhaustion).
146
+ */
147
+ async function runResetRateLimits(args, deps) {
148
+ const logInfo = deps.logInfo ?? console.log;
149
+ const logError = deps.logError ?? console.error;
150
+ const now = deps.getNow?.() ?? Date.now();
151
+ const parsed = parseResetRateLimitsArgs(args);
152
+ if (!parsed.ok) {
153
+ logError(parsed.error);
154
+ return 1;
155
+ }
156
+ if (parsed.help) {
157
+ printResetRateLimitsUsage(logInfo);
158
+ return 0;
159
+ }
160
+ const { scope, accountIndex, dryRun, json } = parsed.options;
161
+ // Defer the saveAccounts check to the actual write branch so a non-dry-run scan that
162
+ // finds nothing to clear can still succeed without writable storage.
163
+ // Keep the shared (non-project-scoped) path scope active across both load AND save so that
164
+ // `saveAccounts` writes to the same file we loaded from, even when the CLI was invoked from
165
+ // a project directory with a non-null project-scoped path. Restoring the previous path
166
+ // between load and save would silently route the write to the project storage file.
167
+ const previousStoragePath = deps.getStoragePath();
168
+ deps.setStoragePath(null);
169
+ try {
170
+ const storage = await deps.loadAccounts();
171
+ const storagePath = deps.getStoragePath();
172
+ if (!storage || storage.accounts.length === 0) {
173
+ const payload = {
174
+ ok: false,
175
+ error: "no accounts configured",
176
+ storagePath,
177
+ };
178
+ if (json)
179
+ logInfo(JSON.stringify(payload));
180
+ else
181
+ logError("No accounts configured.");
182
+ return 1;
183
+ }
184
+ if (scope === "account") {
185
+ if (accountIndex === null) {
186
+ logError("internal: account scope without index");
187
+ return 1;
188
+ }
189
+ if (accountIndex < 0 || accountIndex >= storage.accounts.length) {
190
+ const message = `Account index out of range (1..${storage.accounts.length}): ${accountIndex + 1}`;
191
+ if (json) {
192
+ logInfo(JSON.stringify({ ok: false, error: message, storagePath }));
193
+ }
194
+ else {
195
+ logError(message);
196
+ }
197
+ return 1;
198
+ }
199
+ }
200
+ const targetIndexes = scope === "all"
201
+ ? storage.accounts.map((_, i) => i)
202
+ : accountIndex !== null
203
+ ? [accountIndex]
204
+ : [];
205
+ const changes = [];
206
+ for (const index of targetIndexes) {
207
+ const account = storage.accounts[index];
208
+ if (!account)
209
+ continue;
210
+ const clearedRateLimitKeys = [];
211
+ if (account.rateLimitResetTimes) {
212
+ for (const [key, value] of Object.entries(account.rateLimitResetTimes)) {
213
+ if (typeof value === "number" && value > now) {
214
+ clearedRateLimitKeys.push(key);
215
+ }
216
+ }
217
+ }
218
+ const clearedCoolingDown = typeof account.coolingDownUntil === "number" && account.coolingDownUntil > now;
219
+ if (clearedRateLimitKeys.length === 0 && !clearedCoolingDown)
220
+ continue;
221
+ changes.push({
222
+ index,
223
+ label: redactedResetRateLimitsLabel(account, index),
224
+ clearedRateLimitKeys,
225
+ clearedCoolingDown,
226
+ });
227
+ if (!dryRun) {
228
+ // Only delete the keys we reported (future-active resets) so callers who inspect
229
+ // the JSON output can trust the report matches the action exactly. Past entries are
230
+ // no-ops for `getMinWaitTimeForFamily` and are pruned naturally by
231
+ // `clearExpiredRateLimits`.
232
+ if (account.rateLimitResetTimes) {
233
+ for (const key of clearedRateLimitKeys) {
234
+ delete account.rateLimitResetTimes[key];
235
+ }
236
+ }
237
+ if (clearedCoolingDown) {
238
+ delete account.coolingDownUntil;
239
+ }
240
+ }
241
+ }
242
+ if (!dryRun && changes.length > 0) {
243
+ if (!deps.saveAccounts) {
244
+ const message = "reset-rate-limits requires writable account storage but saveAccounts dep was not provided";
245
+ if (json) {
246
+ logInfo(JSON.stringify({ ok: false, error: message, storagePath }));
247
+ }
248
+ else {
249
+ logError(message);
250
+ }
251
+ return 1;
252
+ }
253
+ try {
254
+ // Use saveAccountsWithRetry to absorb transient Windows EBUSY/EPERM contention,
255
+ // matching every other saveAccounts call site in the codebase.
256
+ await saveAccountsWithRetry(storage, deps.saveAccounts);
257
+ }
258
+ catch (error) {
259
+ const code = error && typeof error === "object" && "code" in error
260
+ ? String(error.code ?? "")
261
+ : "";
262
+ const message = code
263
+ ? `Failed to persist reset-rate-limits (${code}); rate-limit timers were not cleared.`
264
+ : `Failed to persist reset-rate-limits: ${error instanceof Error ? error.message : String(error)}`;
265
+ if (json) {
266
+ logInfo(JSON.stringify({ ok: false, error: message, storagePath }));
267
+ }
268
+ else {
269
+ logError(message);
270
+ }
271
+ return 1;
272
+ }
273
+ }
274
+ if (json) {
275
+ logInfo(JSON.stringify({
276
+ ok: true,
277
+ dryRun,
278
+ scope,
279
+ storagePath,
280
+ accountsScanned: targetIndexes.length,
281
+ accountsChanged: changes.length,
282
+ changes,
283
+ ...(changes.length > 0 && !dryRun
284
+ ? { restartHint: RESET_RATE_LIMITS_RESTART_HINT }
285
+ : {}),
286
+ }));
287
+ return 0;
288
+ }
289
+ if (changes.length === 0) {
290
+ logInfo(scope === "all"
291
+ ? "No accounts had active rate-limit or cooldown timers to clear."
292
+ : `Account ${(accountIndex ?? 0) + 1} had no active rate-limit or cooldown timers to clear.`);
293
+ return 0;
294
+ }
295
+ logInfo(`${dryRun ? "Would clear" : "Cleared"} ${changes.length}/${targetIndexes.length} account(s):`);
296
+ for (const change of changes) {
297
+ const parts = [];
298
+ if (change.clearedRateLimitKeys.length > 0) {
299
+ parts.push(`rate-limit keys: ${change.clearedRateLimitKeys.join(", ")}`);
300
+ }
301
+ if (change.clearedCoolingDown)
302
+ parts.push("cooldown");
303
+ logInfo(` ${change.index + 1}. ${change.label} | ${parts.join(" | ")}`);
304
+ }
305
+ if (dryRun) {
306
+ logInfo("(dry-run; no changes written)");
307
+ }
308
+ else {
309
+ logInfo(`Note: ${RESET_RATE_LIMITS_RESTART_HINT}`);
310
+ }
311
+ return 0;
312
+ }
313
+ finally {
314
+ deps.setStoragePath(previousStoragePath);
34
315
  }
35
- return null;
36
316
  }
37
317
  function formatEnvOverride() {
38
318
  const raw = process.env.CODEX_MULTI_AUTH_RUNTIME_ROTATION_PROXY;
39
319
  if (raw === undefined || raw.trim().length === 0)
40
320
  return "none";
41
321
  const parsed = parseBooleanEnv(raw);
42
- if (parsed === null)
322
+ if (parsed === undefined)
43
323
  return `invalid (${raw})`;
44
324
  return parsed ? "enabled" : "disabled";
45
325
  }
@@ -247,6 +527,9 @@ export async function runRotationCommand(args, deps) {
247
527
  printRotationUsage(logInfo);
248
528
  return 0;
249
529
  }
530
+ if (subcommand === "reset-rate-limits") {
531
+ return runResetRateLimits(rest, deps);
532
+ }
250
533
  if (rest.length > 0) {
251
534
  logError(`Unknown rotation option: ${rest[0]}`);
252
535
  return 1;
@@ -1 +1 @@
1
- {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/rotation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rotation.js","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/rotation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { readUsageLedgerRows, rotateUsageLedger, summarizeUsageRows, summarizeUsageLedger } from "../../usage/index.js";
2
+ export interface UsageCommandDeps {
3
+ summarizeUsage?: typeof summarizeUsageLedger;
4
+ summarizeRows?: typeof summarizeUsageRows;
5
+ readRows?: typeof readUsageLedgerRows;
6
+ rotateLedger?: typeof rotateUsageLedger;
7
+ logInfo?: (message: string) => void;
8
+ logError?: (message: string) => void;
9
+ getCwd?: () => string;
10
+ writeFile?: (path: string, contents: string) => Promise<void>;
11
+ }
12
+ export declare function runUsageCommand(args: string[], deps?: UsageCommandDeps): Promise<number>;
13
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../../lib/codex-manager/commands/usage.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EAKpB,MAAM,sBAAsB,CAAC;AAmB9B,MAAM,WAAW,gBAAgB;IAChC,cAAc,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAC7C,aAAa,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,mBAAmB,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAoRD,wBAAsB,eAAe,CACpC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,gBAAqB,GACzB,OAAO,CAAC,MAAM,CAAC,CAiGjB"}