codex-multi-auth 2.5.0 → 2.6.1

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 (37) hide show
  1. package/.codex-plugin/plugin.json +9 -9
  2. package/README.md +4 -1
  3. package/config/codex-legacy.json +425 -0
  4. package/dist/lib/auth/browser.d.ts +4 -0
  5. package/dist/lib/auth/browser.d.ts.map +1 -1
  6. package/dist/lib/auth/browser.js +73 -19
  7. package/dist/lib/auth/callback-guidance.d.ts +39 -0
  8. package/dist/lib/auth/callback-guidance.d.ts.map +1 -0
  9. package/dist/lib/auth/callback-guidance.js +106 -0
  10. package/dist/lib/auth/server.d.ts.map +1 -1
  11. package/dist/lib/auth/server.js +1 -0
  12. package/dist/lib/codex-manager/commands/best.js +2 -2
  13. package/dist/lib/codex-manager/commands/forecast.js +4 -4
  14. package/dist/lib/codex-manager/commands/report.js +4 -4
  15. package/dist/lib/codex-manager/help.js +2 -2
  16. package/dist/lib/codex-manager/login-oauth.d.ts.map +1 -1
  17. package/dist/lib/codex-manager/login-oauth.js +11 -0
  18. package/dist/lib/codex-manager/quota-cache-helpers.d.ts +1 -1
  19. package/dist/lib/codex-manager/quota-cache-helpers.d.ts.map +1 -1
  20. package/dist/lib/codex-manager/quota-cache-helpers.js +2 -2
  21. package/dist/lib/codex-manager/repair-commands.js +4 -4
  22. package/dist/lib/config.d.ts.map +1 -1
  23. package/dist/lib/config.js +5 -1
  24. package/dist/lib/quota-probe.d.ts.map +1 -1
  25. package/dist/lib/quota-probe.js +5 -2
  26. package/dist/lib/request/helpers/model-map.d.ts +15 -1
  27. package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
  28. package/dist/lib/request/helpers/model-map.js +45 -1
  29. package/dist/lib/runtime/quota-probe.d.ts.map +1 -1
  30. package/dist/lib/runtime/quota-probe.js +5 -2
  31. package/dist/lib/types.d.ts +6 -0
  32. package/dist/lib/types.d.ts.map +1 -1
  33. package/dist/lib/wsl.d.ts +28 -0
  34. package/dist/lib/wsl.d.ts.map +1 -0
  35. package/dist/lib/wsl.js +57 -0
  36. package/package.json +1 -1
  37. package/scripts/codex.js +129 -15
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Operator-facing guidance for OAuth callback failures on the fixed callback port.
3
+ *
4
+ * The redirect URI is registered with the provider, so the port cannot be
5
+ * negotiated away when it is contended. The best the CLI can do is name the
6
+ * likely conflict and point at a flow that does not need the port at all.
7
+ *
8
+ * Windows and WSL contend for that port as far as a browser running on the
9
+ * Windows host is concerned, so a listener on either side can swallow a callback
10
+ * intended for the other. From inside the distro this is invisible: the WSL
11
+ * listener binds cleanly and simply never receives the redirect.
12
+ */
13
+ import { AUTH_REDIRECT } from "./auth.js";
14
+ import { getWslDistroName, isWsl } from "../wsl.js";
15
+ const INSPECT_WINDOWS = ` Windows (PowerShell): Get-NetTCPConnection -LocalPort ${AUTH_REDIRECT.port}`;
16
+ const INSPECT_LINUX = ` Linux / WSL: ss -lptn 'sport = :${AUTH_REDIRECT.port}'`;
17
+ const INSPECT_DARWIN = ` macOS: lsof -nP -iTCP:${AUTH_REDIRECT.port} -sTCP:LISTEN`;
18
+ const USE_DEVICE_AUTH = " Or sign in without the callback port: codex-multi-auth login --device-auth";
19
+ /**
20
+ * The commands that would reveal a listener on the callback port here.
21
+ *
22
+ * Inside WSL both sides of the boundary are worth checking, because the
23
+ * offending listener is usually the one on the Windows host.
24
+ */
25
+ function inspectCommands() {
26
+ if (isWsl())
27
+ return [INSPECT_WINDOWS, INSPECT_LINUX];
28
+ if (process.platform === "win32")
29
+ return [INSPECT_WINDOWS];
30
+ if (process.platform === "darwin")
31
+ return [INSPECT_DARWIN];
32
+ return [INSPECT_LINUX];
33
+ }
34
+ /**
35
+ * Why a listener on the other side of the Windows/WSL boundary may be at fault.
36
+ *
37
+ * @returns Explanatory lines, or an empty array when no WSL boundary is in play.
38
+ */
39
+ function crossBoundaryNote() {
40
+ if (isWsl()) {
41
+ const distro = getWslDistroName();
42
+ const where = distro ? `WSL (${distro})` : "WSL";
43
+ return [
44
+ `You are running inside ${where}, but the browser opens on the Windows host.`,
45
+ `Windows and ${where} contend for localhost:${AUTH_REDIRECT.port}, so a codex-multi-auth`,
46
+ "or Codex login or proxy on the Windows side can take the callback meant for this one.",
47
+ ];
48
+ }
49
+ if (process.platform === "win32") {
50
+ return [
51
+ `A codex-multi-auth login or proxy running inside WSL can also hold port ${AUTH_REDIRECT.port}.`,
52
+ ];
53
+ }
54
+ return [];
55
+ }
56
+ /**
57
+ * Build the lines shown to the user when a browser OAuth callback fails.
58
+ *
59
+ * Contention is only *asserted* when it was actually observed — that is, the
60
+ * listen failed with `EADDRINUSE`. A callback that never arrives is far more
61
+ * often a cancelled or abandoned sign-in than a stolen redirect, so that case
62
+ * is phrased as a conditional ("if you completed sign-in and still landed
63
+ * here") rather than a diagnosis.
64
+ *
65
+ * @param reason - Which half of the callback flow broke.
66
+ * @param context - Extra detail from the failed bind, when available.
67
+ * @returns Guidance lines. Empty strings are intentional blank separators.
68
+ */
69
+ export function describeCallbackFailure(reason, context = {}) {
70
+ const port = AUTH_REDIRECT.port;
71
+ if (reason === "bind-failed") {
72
+ // A failed listen is hard evidence: something is on the port right now.
73
+ if (context.bindErrorCode === "EADDRINUSE") {
74
+ return [
75
+ `Could not listen on port ${port} for the OAuth callback — another process already holds it.`,
76
+ ...crossBoundaryNote(),
77
+ "",
78
+ `Find the listener:`,
79
+ ...inspectCommands(),
80
+ "",
81
+ "Close it, then retry.",
82
+ USE_DEVICE_AUTH,
83
+ ];
84
+ }
85
+ return [
86
+ `Could not listen on port ${port} for the OAuth callback${context.bindErrorCode ? ` (${context.bindErrorCode})` : ""}.`,
87
+ "",
88
+ "The callback port is fixed by the provider and cannot be changed.",
89
+ USE_DEVICE_AUTH,
90
+ ];
91
+ }
92
+ // The listener bound cleanly and nothing arrived. Usually the sign-in was
93
+ // simply cancelled or abandoned — say so first, and do not misdiagnose it.
94
+ return [
95
+ `No OAuth callback arrived on port ${port} before the sign-in window closed.`,
96
+ "",
97
+ "If you closed or cancelled the browser sign-in, just run login again.",
98
+ "",
99
+ "If you completed sign-in in the browser and still landed here, something else",
100
+ `may have taken the callback on port ${port}:`,
101
+ ...crossBoundaryNote(),
102
+ ...inspectCommands(),
103
+ "",
104
+ USE_DEVICE_AUTH,
105
+ ];
106
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/auth/server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAWnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,EACrC,KAAK,GACL,EAAE;IACF,KAAK,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,eAAe,CAAC,CAgH3B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/auth/server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAWnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,EACrC,KAAK,GACL,EAAE;IACF,KAAK,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,eAAe,CAAC,CAiH3B"}
@@ -112,6 +112,7 @@ export function startLocalOAuthServer({ state, }) {
112
112
  resolve({
113
113
  port: AUTH_REDIRECT.port,
114
114
  ready: false,
115
+ bindErrorCode: err?.code,
115
116
  close: () => {
116
117
  pollAborted = true;
117
118
  try {
@@ -1,5 +1,5 @@
1
1
  import { describeCodexProbeFailure } from "../../quota-probe.js";
2
- import { DEFAULT_MODEL, resolveNormalizedModel } from "../../request/helpers/model-map.js";
2
+ import { resolveNormalizedModel } from "../../request/helpers/model-map.js";
3
3
  import { DEFAULT_LIVE_PROBE_MODEL } from "../quota-cache-helpers.js";
4
4
  /**
5
5
  * Usage text and argument parsing for `best`. Previously module-private in
@@ -79,7 +79,7 @@ export async function runBestCommand(args, deps) {
79
79
  return 1;
80
80
  }
81
81
  const options = parsedArgs.options;
82
- const probeModel = resolveNormalizedModel(options.model?.trim() || DEFAULT_MODEL);
82
+ const probeModel = resolveNormalizedModel(options.model?.trim() || DEFAULT_LIVE_PROBE_MODEL);
83
83
  if (options.modelProvided && !options.live) {
84
84
  logError("--model requires --live for codex-multi-auth best");
85
85
  deps.printBestUsage();
@@ -2,7 +2,7 @@ import { extractAccountEmail, sanitizeEmail } from "../../accounts.js";
2
2
  import { buildForecastExplanation, } from "../../forecast.js";
3
3
  import { applyRefreshedAccountPatch, persistRefreshedAccountPatch, serializeForecastResults, } from "../forecast-report-shared.js";
4
4
  import { describeCodexProbeFailure } from "../../quota-probe.js";
5
- import { DEFAULT_MODEL, resolveNormalizedModel } from "../../request/helpers/model-map.js";
5
+ import { DEFAULT_PROBE_MODEL, resolveNormalizedModel } from "../../request/helpers/model-map.js";
6
6
  function joinStyledSegments(parts, styleText) {
7
7
  if (parts.length === 0)
8
8
  return "";
@@ -17,7 +17,7 @@ function printForecastUsage(logInfo) {
17
17
  " --live, -l Probe live quota headers via Codex backend",
18
18
  " --json, -j Print machine-readable JSON output",
19
19
  " --explain Include structured recommendation reasoning",
20
- ` --model, -m Probe model for live mode (default: ${DEFAULT_MODEL})`,
20
+ ` --model, -m Probe model for live mode (default: ${DEFAULT_PROBE_MODEL})`,
21
21
  " --no-runtime-overlay Ignore persisted runtime skip diagnostics",
22
22
  ].join("\n"));
23
23
  }
@@ -26,7 +26,7 @@ function parseForecastArgs(args) {
26
26
  live: false,
27
27
  json: false,
28
28
  explain: false,
29
- model: DEFAULT_MODEL,
29
+ model: DEFAULT_PROBE_MODEL,
30
30
  runtimeOverlay: true,
31
31
  };
32
32
  for (let i = 0; i < args.length; i += 1) {
@@ -84,7 +84,7 @@ export async function runForecastCommand(args, deps) {
84
84
  return 1;
85
85
  }
86
86
  const options = parsedArgs.options;
87
- const requestedModel = options.model?.trim() || DEFAULT_MODEL;
87
+ const requestedModel = options.model?.trim() || DEFAULT_PROBE_MODEL;
88
88
  const probeModel = resolveNormalizedModel(requestedModel);
89
89
  const display = deps.loadDashboardDisplaySettings
90
90
  ? (await deps.loadDashboardDisplaySettings().catch(() => null)) ??
@@ -4,7 +4,7 @@ import { extractAccountEmail, extractAccountId, formatAccountLabel, sanitizeEmai
4
4
  import { evaluateForecastAccounts, recommendForecastAccount, summarizeForecast, } from "../../forecast.js";
5
5
  import { applyRefreshedAccountPatch, persistRefreshedAccountPatch, serializeForecastResults, } from "../forecast-report-shared.js";
6
6
  import { formatQuotaSnapshotLine, describeCodexProbeFailure, } from "../../quota-probe.js";
7
- import { DEFAULT_MODEL, getModelCapabilities, getModelProfile, resolveNormalizedModel, } from "../../request/helpers/model-map.js";
7
+ import { DEFAULT_PROBE_MODEL, getModelCapabilities, getModelProfile, resolveNormalizedModel, } from "../../request/helpers/model-map.js";
8
8
  import { sleep } from "../../utils.js";
9
9
  import { tempPathFor } from "../../temp-path.js";
10
10
  function parsePositiveIntegerOption(rawValue) {
@@ -31,7 +31,7 @@ function printReportUsage(logInfo) {
31
31
  " --live, -l Probe live quota headers via Codex backend",
32
32
  " --json, -j Print machine-readable JSON output",
33
33
  " --explain Print per-account reasoning in text mode",
34
- ` --model, -m Probe model for live mode (default: ${DEFAULT_MODEL})`,
34
+ ` --model, -m Probe model for live mode (default: ${DEFAULT_PROBE_MODEL})`,
35
35
  " --max-accounts N Limit how many enabled accounts live mode can consider",
36
36
  " --max-probes N Limit how many live quota probes can run",
37
37
  " --cached-only Skip refreshes and only use already-usable access tokens",
@@ -43,7 +43,7 @@ function parseReportArgs(args) {
43
43
  live: false,
44
44
  json: false,
45
45
  explain: false,
46
- model: DEFAULT_MODEL,
46
+ model: DEFAULT_PROBE_MODEL,
47
47
  cachedOnly: false,
48
48
  };
49
49
  for (let i = 0; i < args.length; i += 1) {
@@ -209,7 +209,7 @@ export async function runReportCommand(args, deps) {
209
209
  return 1;
210
210
  }
211
211
  const options = parsedArgs.options;
212
- const requestedModel = options.model?.trim() || DEFAULT_MODEL;
212
+ const requestedModel = options.model?.trim() || DEFAULT_PROBE_MODEL;
213
213
  const modelInspection = inspectRequestedModel(requestedModel);
214
214
  deps.setStoragePath(null);
215
215
  const storagePath = deps.getStoragePath();
@@ -1,5 +1,5 @@
1
- import { DEFAULT_MODEL } from "../request/helpers/model-map.js";
2
- const DEFAULT_LIVE_PROBE_MODEL = DEFAULT_MODEL;
1
+ import { DEFAULT_PROBE_MODEL } from "../request/helpers/model-map.js";
2
+ const DEFAULT_LIVE_PROBE_MODEL = DEFAULT_PROBE_MODEL;
3
3
  export function printUsage() {
4
4
  console.log([
5
5
  "Codex Multi-Auth CLI",
@@ -1 +1 @@
1
- {"version":3,"file":"login-oauth.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/login-oauth.ts"],"names":[],"mappings":"AAEA,OAAO,EAON,KAAK,SAAS,EACd,MAAM,gBAAgB,CAAC;AAqBxB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACN,KAAK,uBAAuB,EAG5B,MAAM,yBAAyB,CAAC;AAOjC;;;;;GAKG;AAEH,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACrE,gBAAgB;AAChB,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC;AAIF,gBAAgB;AAChB,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,GAC/C,OAAO,CAGT;AAED,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,YAAY,EACpB,WAAW,CAAC,EAAE,MAAM,GAClB,uBAAuB,CA+DzB;AA0FD,gBAAgB;AAChB,MAAM,MAAM,eAAe,GACxB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,gBAAgB,GAChB,QAAQ,CAAC;AACZ,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,gBAAgB;AAChB,wBAAsB,YAAY,CACjC,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,GAAG,QAAQ,CAAC,GACxD,OAAO,CAAC,WAAW,CAAC,CAwHtB;AAED,gBAAgB;AAChB,wBAAsB,aAAa,CAClC,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC,EACrE,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAetB;AAED,gBAAgB;AAChB,MAAM,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAEhE,gBAAgB;AAChB,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,uBAAuB,EAAE,EAClC,UAAU,EAAE,OAAO,GACjB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAuD3C;AAED,gBAAgB;AAChB,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,uBAAuB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkBf"}
1
+ {"version":3,"file":"login-oauth.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/login-oauth.ts"],"names":[],"mappings":"AAEA,OAAO,EAON,KAAK,SAAS,EACd,MAAM,gBAAgB,CAAC;AAsBxB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACN,KAAK,uBAAuB,EAG5B,MAAM,yBAAyB,CAAC;AAOjC;;;;;GAKG;AAEH,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACrE,gBAAgB;AAChB,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC;AAIF,gBAAgB;AAChB,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,GAC/C,OAAO,CAGT;AAED,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,YAAY,EACpB,WAAW,CAAC,EAAE,MAAM,GAClB,uBAAuB,CA+DzB;AA0FD,gBAAgB;AAChB,MAAM,MAAM,eAAe,GACxB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,gBAAgB,GAChB,QAAQ,CAAC;AACZ,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,gBAAgB;AAChB,wBAAsB,YAAY,CACjC,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,GAAG,QAAQ,CAAC,GACxD,OAAO,CAAC,WAAW,CAAC,CAsItB;AAED,gBAAgB;AAChB,wBAAsB,aAAa,CAClC,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC,EACrE,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAetB;AAED,gBAAgB;AAChB,MAAM,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAEhE,gBAAgB;AAChB,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,uBAAuB,EAAE,EAClC,UAAU,EAAE,OAAO,GACjB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAuD3C;AAED,gBAAgB;AAChB,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,uBAAuB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkBf"}
@@ -6,6 +6,7 @@ import { copyTextToClipboard, openBrowserUrl, } from "../auth/browser.js";
6
6
  import { runDeviceAuthFlow } from "../auth/device-auth.js";
7
7
  import { resolveOrgOverride } from "../auth/org-override.js";
8
8
  import { startLocalOAuthServer } from "../auth/server.js";
9
+ import { describeCallbackFailure } from "../auth/callback-guidance.js";
9
10
  import { setCodexCliActiveSelection } from "../codex-cli/writer.js";
10
11
  import { createLogger } from "../logger.js";
11
12
  import { MODEL_FAMILIES } from "../prompts/codex.js";
@@ -230,6 +231,16 @@ export async function runOAuthFlow(forceNewLogin, signInMode) {
230
231
  : signInMode === "manual"
231
232
  ? UI_COPY.oauth.callbackBypassed
232
233
  : UI_COPY.oauth.callbackUnavailable, "warning"));
234
+ // Explain *why* the callback failed before dropping the user into the
235
+ // manual-paste prompt. A contended port 1455 — most often a Windows
236
+ // listener shadowing a WSL one, or vice versa — otherwise presents as
237
+ // an unexplained broken login.
238
+ if (signInMode === "browser") {
239
+ const failureLines = describeCallbackFailure(waitingForCallback ? "callback-timeout" : "bind-failed", { bindErrorCode: oauthServer?.bindErrorCode });
240
+ for (const line of failureLines) {
241
+ console.log(line.length > 0 ? stylePromptText(line, "muted") : "");
242
+ }
243
+ }
233
244
  const manualResult = await promptManualCallback(state, {
234
245
  allowNonTty: signInMode === "manual",
235
246
  });
@@ -10,7 +10,7 @@ import type { AccountMetadataV3 } from "../storage.js";
10
10
  * implementation.
11
11
  */
12
12
  /** Default model used for live quota probes across manager commands. */
13
- export declare const DEFAULT_LIVE_PROBE_MODEL = "gpt-5.5";
13
+ export declare const DEFAULT_LIVE_PROBE_MODEL = "gpt-5.6-sol";
14
14
  export declare function getPersistedQuotaViewForAccount(cache: QuotaCacheData | null, account: Pick<AccountMetadataV3, "accountId" | "email" | "rateLimitResetTimes">, accounts: readonly Pick<AccountMetadataV3, "accountId" | "email">[], now: number, emailFallbackState?: ReadonlyMap<string, import("../quota-readiness.js").QuotaEmailFallbackState>): QuotaCacheEntry | null;
15
15
  export declare function updateQuotaCacheForAccount(cache: QuotaCacheData, account: Pick<AccountMetadataV3, "accountId" | "email">, snapshot: CodexQuotaSnapshot, accounts: readonly Pick<AccountMetadataV3, "accountId" | "email">[], emailFallbackState?: ReadonlyMap<string, import("../quota-readiness.js").QuotaEmailFallbackState>): boolean;
16
16
  export declare function cloneQuotaCacheData(cache: QuotaCacheData): QuotaCacheData;
@@ -1 +1 @@
1
- {"version":3,"file":"quota-cache-helpers.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/quota-cache-helpers.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;;;GAOG;AAEH,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,YAAgB,CAAC;AA2BtD,wBAAgB,+BAA+B,CAC9C,KAAK,EAAE,cAAc,GAAG,IAAI,EAC5B,OAAO,EAAE,IAAI,CACZ,iBAAiB,EACjB,WAAW,GAAG,OAAO,GAAG,qBAAqB,CAC7C,EACD,QAAQ,EAAE,SAAS,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EACnE,GAAG,EAAE,MAAM,EACX,kBAAkB,+EAAyC,GACzD,eAAe,GAAG,IAAI,CA+BxB;AAED,wBAAgB,0BAA0B,CACzC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,EACvD,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,SAAS,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EACnE,kBAAkB,+EAAyC,GACzD,OAAO,CAuCT;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAOzE;AAED,wBAAgB,+BAA+B,CAC9C,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,SAAS,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EACnE,kBAAkB,+EAAyC,GACzD,OAAO,CAeT"}
1
+ {"version":3,"file":"quota-cache-helpers.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/quota-cache-helpers.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAM5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;;;GAOG;AAEH,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,gBAAsB,CAAC;AA2B5D,wBAAgB,+BAA+B,CAC9C,KAAK,EAAE,cAAc,GAAG,IAAI,EAC5B,OAAO,EAAE,IAAI,CACZ,iBAAiB,EACjB,WAAW,GAAG,OAAO,GAAG,qBAAqB,CAC7C,EACD,QAAQ,EAAE,SAAS,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EACnE,GAAG,EAAE,MAAM,EACX,kBAAkB,+EAAyC,GACzD,eAAe,GAAG,IAAI,CA+BxB;AAED,wBAAgB,0BAA0B,CACzC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,EACvD,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,SAAS,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EACnE,kBAAkB,+EAAyC,GACzD,OAAO,CAuCT;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAOzE;AAED,wBAAgB,+BAA+B,CAC9C,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,SAAS,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,EACnE,kBAAkB,+EAAyC,GACzD,OAAO,CAeT"}
@@ -1,5 +1,5 @@
1
1
  import { buildQuotaEmailFallbackState, hasSafeQuotaEmailFallback, hasUniqueQuotaAccountId, normalizeQuotaAccountId, normalizeQuotaEmail, } from "../quota-readiness.js";
2
- import { DEFAULT_MODEL } from "../request/helpers/model-map.js";
2
+ import { DEFAULT_MODEL, DEFAULT_PROBE_MODEL, } from "../request/helpers/model-map.js";
3
3
  import { getRateLimitResetTimeForFamily } from "../runtime/account-status.js";
4
4
  /**
5
5
  * Quota-cache lookup/update helpers shared by the manager CLI commands (audit
@@ -10,7 +10,7 @@ import { getRateLimitResetTimeForFamily } from "../runtime/account-status.js";
10
10
  * implementation.
11
11
  */
12
12
  /** Default model used for live quota probes across manager commands. */
13
- export const DEFAULT_LIVE_PROBE_MODEL = DEFAULT_MODEL;
13
+ export const DEFAULT_LIVE_PROBE_MODEL = DEFAULT_PROBE_MODEL;
14
14
  function getQuotaCacheEntryForAccount(cache, account, accounts, emailFallbackState = buildQuotaEmailFallbackState(accounts)) {
15
15
  const accountId = normalizeQuotaAccountId(account.accountId);
16
16
  if (accountId &&
@@ -11,7 +11,7 @@ import { findMatchingAccountIndex, getStoragePath, loadAccounts, loadFlaggedAcco
11
11
  import { getCodexCliAuthPath, getCodexCliConfigPath, loadCodexCliState, } from "../codex-cli/state.js";
12
12
  import { setCodexCliActiveSelection } from "../codex-cli/writer.js";
13
13
  import { MODEL_FAMILIES } from "../prompts/codex.js";
14
- import { DEFAULT_MODEL, resolveNormalizedModel } from "../request/helpers/model-map.js";
14
+ import { DEFAULT_PROBE_MODEL, resolveNormalizedModel } from "../request/helpers/model-map.js";
15
15
  import { loadPersistedRuntimeObservabilitySnapshot } from "../runtime/runtime-observability.js";
16
16
  function printFixUsage() {
17
17
  console.log([
@@ -22,7 +22,7 @@ function printFixUsage() {
22
22
  " --dry-run, -n Preview changes without writing storage",
23
23
  " --json, -j Print machine-readable JSON output",
24
24
  " --live, -l Run live session probe before deciding health",
25
- ` --model, -m Probe model for live mode (default: ${DEFAULT_MODEL})`,
25
+ ` --model, -m Probe model for live mode (default: ${DEFAULT_PROBE_MODEL})`,
26
26
  "",
27
27
  "Behavior:",
28
28
  " - Refreshes tokens for enabled accounts",
@@ -66,7 +66,7 @@ export function parseFixArgs(args) {
66
66
  dryRun: false,
67
67
  json: false,
68
68
  live: false,
69
- model: DEFAULT_MODEL,
69
+ model: DEFAULT_PROBE_MODEL,
70
70
  };
71
71
  for (let i = 0; i < args.length; i += 1) {
72
72
  const argValue = args[i];
@@ -822,7 +822,7 @@ export async function runFix(args, deps) {
822
822
  return 1;
823
823
  }
824
824
  const options = parsedArgs.options;
825
- const probeModel = resolveNormalizedModel(options.model.trim() || DEFAULT_MODEL);
825
+ const probeModel = resolveNormalizedModel(options.model.trim() || DEFAULT_PROBE_MODEL);
826
826
  const display = DEFAULT_DASHBOARD_DISPLAY_SETTINGS;
827
827
  const quotaCache = options.live ? await loadQuotaCache() : null;
828
828
  const workingQuotaCache = quotaCache ? deps.cloneQuotaCacheData(quotaCache) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
@@ -144,7 +144,11 @@ export const DEFAULT_PLUGIN_CONFIG = {
144
144
  rateLimitStateResetMs: 120_000,
145
145
  rateLimitMaxBackoffMs: 60_000,
146
146
  rateLimitShortRetryThresholdMs: 5_000,
147
- pidOffsetEnabled: false,
147
+ // Default-on so parallel `codex-multi-auth-codex` processes (e.g. many agents
148
+ // run concurrently) each bias toward a different account, reducing cascading
149
+ // 429s under high parallelism (#628). No-op for single-account pools; a manual
150
+ // pin and health/quota scoring still take precedence over the small offset.
151
+ pidOffsetEnabled: true,
148
152
  fetchTimeoutMs: 60_000,
149
153
  streamStallTimeoutMs: 45_000,
150
154
  liveAccountSync: true,
@@ -1 +1 @@
1
- {"version":3,"file":"quota-probe.d.ts","sourceRoot":"","sources":["../../lib/quota-probe.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AAEnF;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GACrC,MAAM,CAMR;AAED,MAAM,WAAW,gBAAgB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd;AAiQD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAa5E;AAED,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAyG7B"}
1
+ {"version":3,"file":"quota-probe.d.ts","sourceRoot":"","sources":["../../lib/quota-probe.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AAEnF;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GACrC,MAAM,CAMR;AAED,MAAM,WAAW,gBAAgB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd;AAiQD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAa5E;AAED,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA4G7B"}
@@ -1,6 +1,6 @@
1
1
  import { CODEX_BASE_URL } from "./constants.js";
2
2
  import { createCodexHeaders, getUnsupportedCodexModelInfo } from "./request/fetch-helpers.js";
3
- import { QUOTA_PROBE_MODEL_CHAIN } from "./request/helpers/model-map.js";
3
+ import { QUOTA_PROBE_MODEL_CHAIN, resolveProbeReasoningEffort, } from "./request/helpers/model-map.js";
4
4
  import { CodexUnavailableError, isCodexUnavailableError } from "./errors.js";
5
5
  import { getCodexInstructions } from "./prompts/codex.js";
6
6
  import { mutateRuntimeObservabilitySnapshot } from "./runtime/runtime-observability.js";
@@ -338,7 +338,10 @@ export async function fetchCodexQuotaSnapshot(options) {
338
338
  content: [{ type: "input_text", text: "quota ping" }],
339
339
  },
340
340
  ],
341
- reasoning: { effort: "none", summary: "auto" },
341
+ // Send the cheapest effort each probe model actually declares (the
342
+ // GPT-5.6 tiers and codex models do not list `none`), keeping the
343
+ // probe consistent with normal request routing (issue #627).
344
+ reasoning: { effort: resolveProbeReasoningEffort(model), summary: "auto" },
342
345
  text: { verbosity: "low" },
343
346
  };
344
347
  const headers = createCodexHeaders(undefined, options.accountId, options.accessToken, {
@@ -33,7 +33,8 @@ export interface ModelProfile {
33
33
  }
34
34
  export declare const CURRENT_CODEX_MODEL = "gpt-5.3-codex";
35
35
  export declare const DEFAULT_MODEL = "gpt-5.5";
36
- export declare const QUOTA_PROBE_MODEL_CHAIN: readonly ["gpt-5.5", "gpt-5.4", "gpt-5.3-codex", "gpt-5.2-codex", "gpt-5-codex"];
36
+ export declare const DEFAULT_PROBE_MODEL = "gpt-5.6-sol";
37
+ export declare const QUOTA_PROBE_MODEL_CHAIN: readonly ["gpt-5.6-sol", "gpt-5.5", "gpt-5.4", "gpt-5.3-codex", "gpt-5.2-codex", "gpt-5-codex"];
37
38
  /**
38
39
  * Effective model profiles keyed by canonical model name.
39
40
  *
@@ -68,6 +69,19 @@ export declare function getModelProfile(model: string | undefined): ModelProfile
68
69
  * Expose current tool-surface metadata for diagnostics and capability checks.
69
70
  */
70
71
  export declare function getModelCapabilities(model: string | undefined): ModelCapabilities;
72
+ /**
73
+ * Resolve the cheapest reasoning effort a probe model actually supports.
74
+ *
75
+ * A quota probe only needs the response's quota headers, so it wants the
76
+ * lowest-cost effort. Rather than hardcoding `none`, it sends the cheapest
77
+ * effort the probe model actually declares support for, mirroring how
78
+ * `getReasoningConfig` coerces a real request: the GPT-5.6 tiers and the codex
79
+ * models do not list `none`/`minimal` in the upstream catalog, so the probe
80
+ * sends `low` for them and `none` for the pre-5.6 general models that do
81
+ * (issue #627). Keeps the probe's effort consistent with normal routing and
82
+ * within each model's declared range. Never returns `ultra`.
83
+ */
84
+ export declare function resolveProbeReasoningEffort(model: string | undefined): WireReasoningEffort;
71
85
  /**
72
86
  * Check if a model ID is in the explicit model map.
73
87
  *
@@ -1 +1 @@
1
- {"version":3,"file":"model-map.d.ts","sourceRoot":"","sources":["../../../../lib/request/helpers/model-map.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAC1B,aAAa,GACb,WAAW,GACX,OAAO,GACP,SAAS,GACT,SAAS,CAAC;AAEb;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAMvC,CAAC;AAEX,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,sBAAsB,EAAE,oBAAoB,CAAC;IAC7C,yBAAyB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3D,YAAY,EAAE,iBAAiB,CAAC;CAChC;AA6CD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,aAAa,YAAY,CAAC;AAKvC,eAAO,MAAM,uBAAuB,kFAM1B,CAAC;AA4EX;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA6G9C,CAAC;AAEX,QAAA,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC;AAqG7C,OAAO,EAAE,SAAS,EAAE,CAAC;AAoKrB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQtE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CA2BxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAavE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAEjF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD"}
1
+ {"version":3,"file":"model-map.d.ts","sourceRoot":"","sources":["../../../../lib/request/helpers/model-map.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAC1B,aAAa,GACb,WAAW,GACX,OAAO,GACP,SAAS,GACT,SAAS,CAAC;AAEb;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAMvC,CAAC;AAEX,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,sBAAsB,EAAE,oBAAoB,CAAC;IAC7C,yBAAyB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3D,YAAY,EAAE,iBAAiB,CAAC;CAChC;AA6CD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,aAAa,YAAY,CAAC;AAQvC,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAOjD,eAAO,MAAM,uBAAuB,iGAO1B,CAAC;AA4EX;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA6G9C,CAAC;AAEX,QAAA,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC;AAqG7C,OAAO,EAAE,SAAS,EAAE,CAAC;AAoKrB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQtE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CA2BxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAavE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAEjF;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,mBAAmB,CASrB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -54,10 +54,20 @@ const TOOL_CAPABILITIES = {
54
54
  };
55
55
  export const CURRENT_CODEX_MODEL = "gpt-5.3-codex";
56
56
  export const DEFAULT_MODEL = "gpt-5.5";
57
+ // Model used for diagnostic live/quota probes (`check`, `report`, `best`).
58
+ // Deliberately distinct from DEFAULT_MODEL: GPT-5.6 is the latest general family
59
+ // (issue #627), so the probe leads with it, while DEFAULT_MODEL stays on 5.5 so
60
+ // actual request routing and the legacy `gpt-5` alias remain opt-in per 2.5.0.
61
+ // Bare `gpt-5.6` aliases to Sol; we pin the canonical id so the probe display
62
+ // and report `modelSelection` read `gpt-5.6-sol` without a remap arrow.
63
+ export const DEFAULT_PROBE_MODEL = "gpt-5.6-sol";
57
64
  // Single source of truth for the live/quota probe fallback chain. Both the
58
65
  // manager probe (lib/quota-probe.ts) and the runtime probe (lib/runtime/quota-probe.ts)
59
- // import this so the ordered candidate list cannot drift between them.
66
+ // import this so the ordered candidate list cannot drift between them. It leads
67
+ // with GPT-5.6 and steps down so accounts without 5.6 entitlement still resolve
68
+ // a working probe model.
60
69
  export const QUOTA_PROBE_MODEL_CHAIN = [
70
+ DEFAULT_PROBE_MODEL,
61
71
  DEFAULT_MODEL,
62
72
  "gpt-5.4",
63
73
  "gpt-5.3-codex",
@@ -501,6 +511,40 @@ export function getModelProfile(model) {
501
511
  export function getModelCapabilities(model) {
502
512
  return getModelProfile(model).capabilities;
503
513
  }
514
+ // Cheapest-first ordering used to pick a quota-probe reasoning effort. `ultra`
515
+ // is intentionally absent: it never reaches the wire (upstream rewrites it to
516
+ // `max`) and would only ever be a more expensive choice than `max` anyway.
517
+ const PROBE_REASONING_EFFORT_PREFERENCE = [
518
+ "none",
519
+ "minimal",
520
+ "low",
521
+ "medium",
522
+ "high",
523
+ "xhigh",
524
+ "max",
525
+ ];
526
+ /**
527
+ * Resolve the cheapest reasoning effort a probe model actually supports.
528
+ *
529
+ * A quota probe only needs the response's quota headers, so it wants the
530
+ * lowest-cost effort. Rather than hardcoding `none`, it sends the cheapest
531
+ * effort the probe model actually declares support for, mirroring how
532
+ * `getReasoningConfig` coerces a real request: the GPT-5.6 tiers and the codex
533
+ * models do not list `none`/`minimal` in the upstream catalog, so the probe
534
+ * sends `low` for them and `none` for the pre-5.6 general models that do
535
+ * (issue #627). Keeps the probe's effort consistent with normal routing and
536
+ * within each model's declared range. Never returns `ultra`.
537
+ */
538
+ export function resolveProbeReasoningEffort(model) {
539
+ const profile = getModelProfile(model);
540
+ for (const effort of PROBE_REASONING_EFFORT_PREFERENCE) {
541
+ if (profile.supportedReasoningEfforts.includes(effort)) {
542
+ return effort;
543
+ }
544
+ }
545
+ const fallback = profile.defaultReasoningEffort;
546
+ return fallback === "ultra" ? "max" : fallback;
547
+ }
504
548
  /**
505
549
  * Check if a model ID is in the explicit model map.
506
550
  *
@@ -1 +1 @@
1
- {"version":3,"file":"quota-probe.d.ts","sourceRoot":"","sources":["../../../lib/runtime/quota-probe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAKnE,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,kBAAkB,EAAE,CACnB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KACnB,OAAO,CAAC;IACb,uBAAuB,EAAE,CACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,wBAAwB,GAAG,IAAI,CAAC;IACrC,4BAA4B,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;QACrD,aAAa,EAAE,OAAO,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACF,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2F9B"}
1
+ {"version":3,"file":"quota-probe.d.ts","sourceRoot":"","sources":["../../../lib/runtime/quota-probe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAQnE,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,kBAAkB,EAAE,CACnB,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KACnB,OAAO,CAAC;IACb,uBAAuB,EAAE,CACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,wBAAwB,GAAG,IAAI,CAAC;IACrC,4BAA4B,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;QACrD,aAAa,EAAE,OAAO,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACF,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8F9B"}
@@ -1,4 +1,4 @@
1
- import { QUOTA_PROBE_MODEL_CHAIN } from "../request/helpers/model-map.js";
1
+ import { QUOTA_PROBE_MODEL_CHAIN, resolveProbeReasoningEffort, } from "../request/helpers/model-map.js";
2
2
  const QUOTA_PROBE_MODELS = QUOTA_PROBE_MODEL_CHAIN;
3
3
  export async function fetchRuntimeCodexQuotaSnapshot(params) {
4
4
  let lastError = null;
@@ -18,7 +18,10 @@ export async function fetchRuntimeCodexQuotaSnapshot(params) {
18
18
  content: [{ type: "input_text", text: "quota ping" }],
19
19
  },
20
20
  ],
21
- reasoning: { effort: "none", summary: "auto" },
21
+ // Send the cheapest effort each probe model actually declares (the
22
+ // GPT-5.6 tiers and codex models do not list `none`), keeping the
23
+ // probe consistent with normal request routing (issue #627).
24
+ reasoning: { effort: resolveProbeReasoningEffort(model), summary: "auto" },
22
25
  text: { verbosity: "low" },
23
26
  };
24
27
  const headers = params.createCodexHeaders(undefined, params.accountId, params.accessToken, { model });
@@ -104,6 +104,12 @@ export type TextFormatConfig = {
104
104
  export interface OAuthServerInfo {
105
105
  port: number;
106
106
  ready: boolean;
107
+ /**
108
+ * The `errno` code from a failed listen (for example `EADDRINUSE`) when
109
+ * `ready` is `false`. Lets callers distinguish a contended callback port
110
+ * from other bind failures. Absent when `ready` is `true`.
111
+ */
112
+ bindErrorCode?: string;
107
113
  close: () => void;
108
114
  waitForCode: (state: string) => Promise<{
109
115
  code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * WSL (Windows Subsystem for Linux) detection.
3
+ *
4
+ * WSL reports `process.platform === "linux"`, so every platform switch in this
5
+ * package treats it as a native Linux host. That is wrong for anything crossing
6
+ * the Windows boundary: the default browser, the clipboard, and the loopback
7
+ * interface that receives the OAuth callback all belong to the Windows host
8
+ * rather than to the distro.
9
+ */
10
+ /**
11
+ * Whether the current process is running inside WSL.
12
+ *
13
+ * The result is cached because it cannot change within a process lifetime.
14
+ */
15
+ export declare function isWsl(): boolean;
16
+ /**
17
+ * The WSL distro name (for example `Debian`), when WSL exposes it.
18
+ *
19
+ * @returns The distro name, or `undefined` outside WSL or when unset.
20
+ */
21
+ export declare function getWslDistroName(): string | undefined;
22
+ /**
23
+ * Clear the memoized {@link isWsl} result.
24
+ *
25
+ * @internal Test seam — production code must not call this.
26
+ */
27
+ export declare function resetWslDetectionCacheForTests(): void;
28
+ //# sourceMappingURL=wsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsl.d.ts","sourceRoot":"","sources":["../../lib/wsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyBH;;;;GAIG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAK/B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAIrD;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}