codex-multi-auth 2.1.13-beta.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +30 -1
- package/dist/lib/accounts.js.map +1 -1
- package/dist/lib/auth/org-override.d.ts +19 -0
- package/dist/lib/auth/org-override.d.ts.map +1 -0
- package/dist/lib/auth/org-override.js +23 -0
- package/dist/lib/auth/org-override.js.map +1 -0
- package/dist/lib/circuit-breaker.d.ts +6 -0
- package/dist/lib/circuit-breaker.d.ts.map +1 -1
- package/dist/lib/circuit-breaker.js +8 -0
- package/dist/lib/circuit-breaker.js.map +1 -1
- package/dist/lib/codex-manager/account-manager-commands.d.ts +14 -0
- package/dist/lib/codex-manager/account-manager-commands.d.ts.map +1 -0
- package/dist/lib/codex-manager/account-manager-commands.js +43 -0
- package/dist/lib/codex-manager/account-manager-commands.js.map +1 -0
- package/dist/lib/codex-manager/commands/best.d.ts +1 -1
- package/dist/lib/codex-manager/commands/best.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/best.js +2 -1
- package/dist/lib/codex-manager/commands/best.js.map +1 -1
- package/dist/lib/codex-manager/commands/debug-bundle.d.ts +16 -0
- package/dist/lib/codex-manager/commands/debug-bundle.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/debug-bundle.js +80 -5
- package/dist/lib/codex-manager/commands/debug-bundle.js.map +1 -1
- package/dist/lib/codex-manager/commands/forecast.d.ts +1 -1
- package/dist/lib/codex-manager/commands/forecast.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/forecast.js +2 -1
- package/dist/lib/codex-manager/commands/forecast.js.map +1 -1
- package/dist/lib/codex-manager/commands/report.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/report.js +2 -2
- package/dist/lib/codex-manager/commands/report.js.map +1 -1
- package/dist/lib/codex-manager/commands/status.d.ts +2 -0
- package/dist/lib/codex-manager/commands/status.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/status.js +84 -25
- package/dist/lib/codex-manager/commands/status.js.map +1 -1
- package/dist/lib/codex-manager/commands/switch.d.ts.map +1 -1
- package/dist/lib/codex-manager/commands/switch.js +7 -0
- package/dist/lib/codex-manager/commands/switch.js.map +1 -1
- package/dist/lib/codex-manager/experimental-settings-prompt.d.ts.map +1 -1
- package/dist/lib/codex-manager/experimental-settings-prompt.js +13 -3
- package/dist/lib/codex-manager/experimental-settings-prompt.js.map +1 -1
- package/dist/lib/codex-manager/forecast-report-commands.d.ts.map +1 -1
- package/dist/lib/codex-manager/forecast-report-commands.js +3 -3
- package/dist/lib/codex-manager/forecast-report-commands.js.map +1 -1
- package/dist/lib/codex-manager/repair-commands.d.ts.map +1 -1
- package/dist/lib/codex-manager/repair-commands.js +11 -1
- package/dist/lib/codex-manager/repair-commands.js.map +1 -1
- package/dist/lib/codex-manager/settings-hub/experimental.d.ts.map +1 -1
- package/dist/lib/codex-manager/settings-hub/experimental.js +8 -0
- package/dist/lib/codex-manager/settings-hub/experimental.js.map +1 -1
- package/dist/lib/codex-manager.d.ts +3 -0
- package/dist/lib/codex-manager.d.ts.map +1 -1
- package/dist/lib/codex-manager.js +53 -65
- package/dist/lib/codex-manager.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +110 -5
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/context-overflow.d.ts +7 -2
- package/dist/lib/context-overflow.d.ts.map +1 -1
- package/dist/lib/context-overflow.js +55 -37
- package/dist/lib/context-overflow.js.map +1 -1
- package/dist/lib/errors.d.ts +16 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +23 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/local-bridge.d.ts +8 -0
- package/dist/lib/local-bridge.d.ts.map +1 -1
- package/dist/lib/local-bridge.js +81 -7
- package/dist/lib/local-bridge.js.map +1 -1
- package/dist/lib/logger.d.ts +9 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +104 -19
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/oc-chatgpt-orchestrator.d.ts +7 -1
- package/dist/lib/oc-chatgpt-orchestrator.d.ts.map +1 -1
- package/dist/lib/oc-chatgpt-orchestrator.js +68 -9
- package/dist/lib/oc-chatgpt-orchestrator.js.map +1 -1
- package/dist/lib/policy/runtime-policy.d.ts.map +1 -1
- package/dist/lib/policy/runtime-policy.js +15 -1
- package/dist/lib/policy/runtime-policy.js.map +1 -1
- package/dist/lib/prompts/codex.d.ts.map +1 -1
- package/dist/lib/prompts/codex.js +124 -29
- package/dist/lib/prompts/codex.js.map +1 -1
- package/dist/lib/prompts/fetch-utils.d.ts +72 -0
- package/dist/lib/prompts/fetch-utils.d.ts.map +1 -0
- package/dist/lib/prompts/fetch-utils.js +165 -0
- package/dist/lib/prompts/fetch-utils.js.map +1 -0
- package/dist/lib/prompts/host-codex-prompt.d.ts.map +1 -1
- package/dist/lib/prompts/host-codex-prompt.js +24 -10
- package/dist/lib/prompts/host-codex-prompt.js.map +1 -1
- package/dist/lib/quota-cache.d.ts.map +1 -1
- package/dist/lib/quota-cache.js +10 -1
- package/dist/lib/quota-cache.js.map +1 -1
- package/dist/lib/quota-probe.d.ts +21 -0
- package/dist/lib/quota-probe.d.ts.map +1 -1
- package/dist/lib/quota-probe.js +39 -0
- package/dist/lib/quota-probe.js.map +1 -1
- package/dist/lib/quota-readiness.d.ts +3 -1
- package/dist/lib/quota-readiness.d.ts.map +1 -1
- package/dist/lib/quota-readiness.js +16 -3
- package/dist/lib/quota-readiness.js.map +1 -1
- package/dist/lib/recovery/storage.d.ts +7 -0
- package/dist/lib/recovery/storage.d.ts.map +1 -1
- package/dist/lib/recovery/storage.js +178 -10
- package/dist/lib/recovery/storage.js.map +1 -1
- package/dist/lib/refresh-lease.d.ts +1 -1
- package/dist/lib/refresh-lease.d.ts.map +1 -1
- package/dist/lib/refresh-lease.js +25 -3
- package/dist/lib/refresh-lease.js.map +1 -1
- package/dist/lib/refresh-queue.d.ts.map +1 -1
- package/dist/lib/refresh-queue.js +31 -17
- package/dist/lib/refresh-queue.js.map +1 -1
- package/dist/lib/request/fetch-helpers.d.ts +0 -5
- package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
- package/dist/lib/request/fetch-helpers.js +36 -7
- package/dist/lib/request/fetch-helpers.js.map +1 -1
- package/dist/lib/rotation.d.ts +12 -0
- package/dist/lib/rotation.d.ts.map +1 -1
- package/dist/lib/rotation.js +36 -0
- package/dist/lib/rotation.js.map +1 -1
- package/dist/lib/runtime/account-check-types.d.ts +1 -0
- package/dist/lib/runtime/account-check-types.d.ts.map +1 -1
- package/dist/lib/runtime/account-check-types.js +1 -0
- package/dist/lib/runtime/account-check-types.js.map +1 -1
- package/dist/lib/runtime/account-check.d.ts.map +1 -1
- package/dist/lib/runtime/account-check.js +15 -4
- package/dist/lib/runtime/account-check.js.map +1 -1
- package/dist/lib/runtime/runtime-observability.d.ts.map +1 -1
- package/dist/lib/runtime/runtime-observability.js +24 -2
- package/dist/lib/runtime/runtime-observability.js.map +1 -1
- package/dist/lib/runtime-rotation-proxy.d.ts +1 -0
- package/dist/lib/runtime-rotation-proxy.d.ts.map +1 -1
- package/dist/lib/runtime-rotation-proxy.js +163 -16
- package/dist/lib/runtime-rotation-proxy.js.map +1 -1
- package/dist/lib/storage/account-clear.d.ts.map +1 -1
- package/dist/lib/storage/account-clear.js +4 -2
- package/dist/lib/storage/account-clear.js.map +1 -1
- package/dist/lib/storage/flagged-storage-io.d.ts.map +1 -1
- package/dist/lib/storage/flagged-storage-io.js +4 -1
- package/dist/lib/storage/flagged-storage-io.js.map +1 -1
- package/dist/lib/storage/import-export.d.ts.map +1 -1
- package/dist/lib/storage/import-export.js +29 -9
- package/dist/lib/storage/import-export.js.map +1 -1
- package/dist/lib/storage/paths.d.ts.map +1 -1
- package/dist/lib/storage/paths.js +93 -0
- package/dist/lib/storage/paths.js.map +1 -1
- package/dist/lib/storage/storage-parser.d.ts.map +1 -1
- package/dist/lib/storage/storage-parser.js +7 -1
- package/dist/lib/storage/storage-parser.js.map +1 -1
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +13 -9
- package/dist/lib/storage.js.map +1 -1
- package/dist/lib/table-formatter.d.ts.map +1 -1
- package/dist/lib/table-formatter.js +20 -2
- package/dist/lib/table-formatter.js.map +1 -1
- package/dist/lib/types.d.ts +7 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/ui/auth-menu.d.ts.map +1 -1
- package/dist/lib/ui/auth-menu.js +8 -2
- package/dist/lib/ui/auth-menu.js.map +1 -1
- package/dist/lib/ui/display-width.d.ts +27 -0
- package/dist/lib/ui/display-width.d.ts.map +1 -0
- package/dist/lib/ui/display-width.js +194 -0
- package/dist/lib/ui/display-width.js.map +1 -0
- package/dist/lib/ui/select.d.ts +23 -0
- package/dist/lib/ui/select.d.ts.map +1 -1
- package/dist/lib/ui/select.js +64 -16
- package/dist/lib/ui/select.js.map +1 -1
- package/dist/lib/ui/theme.d.ts +13 -0
- package/dist/lib/ui/theme.d.ts.map +1 -1
- package/dist/lib/ui/theme.js +34 -1
- package/dist/lib/ui/theme.js.map +1 -1
- package/node_modules/@codex-ai/sdk/dist/index.d.ts +4 -0
- package/node_modules/@codex-ai/sdk/dist/index.js +2 -0
- package/node_modules/@codex-ai/sdk/package.json +8 -0
- package/package.json +9 -6
- package/scripts/codex-routing.js +3 -0
- package/scripts/codex.js +508 -1
- package/scripts/mcodex +117 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-check.js","sourceRoot":"","sources":["../../../lib/runtime/account-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"account-check.js","sourceRoot":"","sources":["../../../lib/runtime/account-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-observability.d.ts","sourceRoot":"","sources":["../../../lib/runtime/runtime-observability.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,+BAA+B,EAAE,MAAM,CAAC;IACxC,+BAA+B,EAAE,MAAM,CAAC;IACxC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kCAAkC,EAAE,MAAM,CAAC;IAC3C,gCAAgC,EAAE,MAAM,CAAC;IACzC,wBAAwB,EAAE,MAAM,CAAC;IACjC,oCAAoC,EAAE,MAAM,CAAC;IAC7C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,6BAA6B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,cAAc,EAAE,sBAAsB,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"runtime-observability.d.ts","sourceRoot":"","sources":["../../../lib/runtime/runtime-observability.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,13 +124,35 @@ function ensureSnapshotState() {
|
|
|
124
124
|
async function writeSnapshot(snapshot) {
|
|
125
125
|
const dir = getCodexMultiAuthDir();
|
|
126
126
|
const path = getSnapshotPath();
|
|
127
|
-
|
|
127
|
+
// The snapshot persists account identifiers (lastAccountId/label/index), so
|
|
128
|
+
// keep it owner-only on POSIX like the other sensitive writers (logger,
|
|
129
|
+
// local-client-tokens). mode is a no-op on win32 (ACL-based).
|
|
130
|
+
await fs.mkdir(dir, { recursive: true, mode: 0o700 });
|
|
131
|
+
// mkdir's mode only applies to a freshly-created dir; an upgrade path with a
|
|
132
|
+
// pre-existing multi-auth dir keeps its old (possibly permissive) perms, so
|
|
133
|
+
// re-assert 0o700 on POSIX. Only ENOENT is swallowed (the dir was removed by a
|
|
134
|
+
// concurrent process — the snapshot write below will recreate/fail as needed);
|
|
135
|
+
// any other chmod failure is surfaced rather than silently leaving a
|
|
136
|
+
// world-readable dir to hold account ids/labels.
|
|
137
|
+
if (process.platform !== "win32") {
|
|
138
|
+
try {
|
|
139
|
+
await fs.chmod(dir, 0o700);
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
if (error?.code !== "ENOENT") {
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
128
147
|
let lastError = null;
|
|
129
148
|
for (let attempt = 0; attempt < 3; attempt += 1) {
|
|
130
149
|
const tempPath = `${path}.${process.pid}.${Date.now()}.${attempt}.tmp`;
|
|
131
150
|
let moved = false;
|
|
132
151
|
try {
|
|
133
|
-
await fs.writeFile(tempPath, JSON.stringify(snapshot, null, 2),
|
|
152
|
+
await fs.writeFile(tempPath, JSON.stringify(snapshot, null, 2), {
|
|
153
|
+
encoding: "utf-8",
|
|
154
|
+
mode: 0o600,
|
|
155
|
+
});
|
|
134
156
|
await fs.rename(tempPath, path);
|
|
135
157
|
moved = true;
|
|
136
158
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-observability.js","sourceRoot":"","sources":["../../../lib/runtime/runtime-observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AA4D3D,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AACxD,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;AAC/D,MAAM,sCAAsC,GAAG,CAAC,CAAC;AACjD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9D,IAAI,aAAa,GAAwC,IAAI,CAAC;AAC9D,IAAI,YAAY,GAAyB,IAAI,CAAC;AAE9C,SAAS,eAAe;IACvB,OAAO,IAAI,CAAC,oBAAoB,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,qBAAqB;IAC7B,OAAO;QACN,OAAO,EAAE,sCAAsC;QAC/C,SAAS,EAAE,CAAC;QACZ,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,CAAC;QACtB,uBAAuB,EAAE,CAAC;QAC1B,2BAA2B,EAAE,IAAI;QACjC,wBAAwB,EAAE,IAAI;QAC9B,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;QACnB,oBAAoB,EAAE,IAAI;QAC1B,wBAAwB,EAAE,IAAI;QAC9B,8BAA8B,EAAE,IAAI;QACpC,6BAA6B,EAAE,EAAE;QACjC,kBAAkB,EAAE,IAAI;QACxB,sBAAsB,EAAE,IAAI;QAC5B,mBAAmB,EAAE,IAAI;QACzB,uBAAuB,EAAE,IAAI;QAC7B,kBAAkB,EAAE,EAAE;QACtB,oBAAoB,EAAE,EAAE;QACxB,oBAAoB,EAAE,EAAE;QACxB,cAAc,EAAE;YACf,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,CAAC;YACrB,cAAc,EAAE,CAAC;YACjB,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,CAAC;YACtB,uBAAuB,EAAE,CAAC;YAC1B,4BAA4B,EAAE,IAAI;YAClC,+BAA+B,EAAE,CAAC;YAClC,+BAA+B,EAAE,CAAC;YAClC,uBAAuB,EAAE,CAAC;YAC1B,oBAAoB,EAAE,CAAC;YACvB,oBAAoB,EAAE,CAAC;YACvB,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC;YACb,mBAAmB,EAAE,CAAC;YACtB,oBAAoB,EAAE,CAAC;YACvB,gBAAgB,EAAE,CAAC;YACnB,kBAAkB,EAAE,CAAC;YACrB,sBAAsB,EAAE,CAAC;YACzB,kCAAkC,EAAE,CAAC;YACrC,gCAAgC,EAAE,CAAC;YACnC,wBAAwB,EAAE,CAAC;YAC3B,oCAAoC,EAAE,CAAC;YACvC,mBAAmB,EAAE,CAAC;YACtB,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,IAAI;SACf;KACD,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAClC,MAAoD;IAEpD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IACC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAClC,MAAM,CAAC,OAAO,KAAK,sCAAsC,EACxD,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,OAAO;QACN,GAAG,IAAI;QACP,GAAG,MAAM;QACT,OAAO,EAAE,sCAAsC;QAC/C,cAAc,EAAE;YACf,GAAG,IAAI,CAAC,cAAc;YACtB,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;SAChC;QACD,6BAA6B,EAAE;YAC9B,GAAG,CAAC,MAAM,CAAC,6BAA6B,IAAI,EAAE,CAAC;SAC/C;QACD,kBAAkB,EAAE;YACnB,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC;SACpC;QACD,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC/D,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAC9D,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CACvB;YACF,CAAC,CAAC,EAAE;QACL,oBAAoB,EAAE;YACrB,GAAG,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC;SACtC;KACD,CAAC;AACH,CAAC;AAED,SAAS,6CAA6C;IACrD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiD,CAAC;QAC/E,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB;IAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,aAAa;YACZ,CAAC,wBAAwB;gBACxB,CAAC,CAAC,6CAA6C,EAAE;gBACjD,CAAC,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAsC;IAClE,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-observability.js","sourceRoot":"","sources":["../../../lib/runtime/runtime-observability.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,7 @@ export declare function chooseAccount(params: {
|
|
|
82
82
|
pinnedIndex: number | null;
|
|
83
83
|
skipReasons?: Map<number, string>;
|
|
84
84
|
stickyBoostByAccount?: Record<number, number>;
|
|
85
|
+
pidOffsetEnabled?: boolean;
|
|
85
86
|
}): ManagedAccount | null;
|
|
86
87
|
/**
|
|
87
88
|
* Build the JSON `error` body for a pinned-account 503 response. Extracted so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-rotation-proxy.d.ts","sourceRoot":"","sources":["../../lib/runtime-rotation-proxy.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,cAAc,EAEd,KAAK,cAAc,EACnB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-rotation-proxy.d.ts","sourceRoot":"","sources":["../../lib/runtime-rotation-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,56 @@
|
|
|
1
|
-
import { createHash, timingSafeEqual } from "node:crypto";
|
|
1
|
+
import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
|
|
2
2
|
import { existsSync, readFileSync } from "node:fs";
|
|
3
3
|
import { createServer } from "node:http";
|
|
4
4
|
import { AccountManager, extractAccountId, } from "./accounts.js";
|
|
5
5
|
import { getStoragePath } from "./storage.js";
|
|
6
|
-
import { getFetchTimeoutMs, getNetworkErrorCooldownMs, getRetryAllAccountsMaxRetries, getServerErrorCooldownMs, getSessionAffinity, getSessionAffinityMaxEntries, getSessionAffinityTtlMs, getStreamStallTimeoutMs, getMinRotationIntervalMs, getTokenInvalidationCooldownMs, getTokenRefreshSkewMs, loadPluginConfig, } from "./config.js";
|
|
6
|
+
import { getFetchTimeoutMs, getNetworkErrorCooldownMs, getRetryAllAccountsMaxRetries, getServerErrorCooldownMs, getSessionAffinity, getSessionAffinityMaxEntries, getSessionAffinityTtlMs, getStreamStallTimeoutMs, getMinRotationIntervalMs, getTokenInvalidationCooldownMs, getTokenRefreshSkewMs, getPidOffsetEnabled, getRoutingMutexMode, loadPluginConfig, } from "./config.js";
|
|
7
7
|
import { CODEX_BASE_URL, HTTP_STATUS, OPENAI_HEADERS, OPENAI_HEADER_VALUES, URL_PATHS, } from "./constants.js";
|
|
8
8
|
import { getModelFamily } from "./prompts/codex.js";
|
|
9
9
|
import { queuedRefresh } from "./refresh-queue.js";
|
|
10
10
|
import { mutateRuntimeObservabilitySnapshot, recordRuntimePoolExhaustion, recordRuntimeReload, recordRuntimeReset, } from "./runtime/runtime-observability.js";
|
|
11
11
|
import { createRuntimeUsageRecorder, evaluateRuntimePolicy, loadRuntimePolicyState, } from "./policy/runtime-policy.js";
|
|
12
12
|
import { isWorkspaceDisabledError } from "./request/fetch-helpers.js";
|
|
13
|
+
import { createLogger, maskString, runWithCorrelationId } from "./logger.js";
|
|
13
14
|
import { SessionAffinityStore } from "./session-affinity.js";
|
|
14
15
|
import { isRecord } from "./utils.js";
|
|
15
16
|
const DEFAULT_HOST = "127.0.0.1";
|
|
17
|
+
function isLoopbackHost(host) {
|
|
18
|
+
const normalized = host.trim().toLowerCase();
|
|
19
|
+
return (normalized === "127.0.0.1" ||
|
|
20
|
+
normalized === "localhost" ||
|
|
21
|
+
normalized === "::1" ||
|
|
22
|
+
normalized === "[::1]");
|
|
23
|
+
}
|
|
24
|
+
// IPv6 literals must be presented in two distinct forms and the proxy
|
|
25
|
+
// previously conflated them (runtime-proxy IPv6 bug). Node's
|
|
26
|
+
// net.Server.listen(port, host) requires the RAW literal ("::1"); a bracketed
|
|
27
|
+
// literal ("[::1]") makes the bind fail or behave wrong. Conversely a URL
|
|
28
|
+
// authority requires the BRACKETED literal ("[::1]") so "http://[::1]:port"
|
|
29
|
+
// parses unambiguously — the raw form yields the unparseable "http://::1:port".
|
|
30
|
+
// Normalize each form ONCE at startup so concurrent rotation paths never race
|
|
31
|
+
// on inconsistent host string representations.
|
|
32
|
+
function stripIpv6Brackets(host) {
|
|
33
|
+
const trimmed = host.trim();
|
|
34
|
+
if (trimmed.startsWith("[") && trimmed.endsWith("]")) {
|
|
35
|
+
return trimmed.slice(1, -1);
|
|
36
|
+
}
|
|
37
|
+
return trimmed;
|
|
38
|
+
}
|
|
39
|
+
// Raw literal suitable for server.listen: "[::1]" -> "::1", others unchanged.
|
|
40
|
+
function toBindHost(host) {
|
|
41
|
+
return stripIpv6Brackets(host);
|
|
42
|
+
}
|
|
43
|
+
// URL authority host: IPv6 literals are bracketed ("::1" -> "[::1]") while
|
|
44
|
+
// IPv4 addresses and hostnames (no embedded colon) pass through unchanged.
|
|
45
|
+
function toUrlHost(host) {
|
|
46
|
+
const bare = stripIpv6Brackets(host);
|
|
47
|
+
return bare.includes(":") ? `[${bare}]` : bare;
|
|
48
|
+
}
|
|
49
|
+
// Structured logger for the default-on runtime proxy (errors-logging-01,
|
|
50
|
+
// runtime-proxy-04). Previously the 1900-LOC proxy had zero logger integration;
|
|
51
|
+
// failures surfaced only as a last-write-wins status.lastError string. Logs are
|
|
52
|
+
// level-gated and carry the per-request correlation id set in handleRequest.
|
|
53
|
+
const proxyLog = createLogger("runtime-proxy");
|
|
16
54
|
const DEFAULT_QUOTA_REMAINING_THRESHOLD = 10;
|
|
17
55
|
const DEFAULT_AUTH_FAILURE_COOLDOWN_MS = 30_000;
|
|
18
56
|
const DEFAULT_MAX_RUNTIME_ACCOUNT_ATTEMPTS = 4;
|
|
@@ -105,6 +143,10 @@ function createOutboundHeaders(incoming, account, accessToken, accountId) {
|
|
|
105
143
|
}
|
|
106
144
|
headers.delete("host");
|
|
107
145
|
headers.delete("x-api-key");
|
|
146
|
+
// Never forward inbound client credentials upstream: a Cookie / proxy-auth
|
|
147
|
+
// header would ride along with the managed OAuth Bearer to OpenAI.
|
|
148
|
+
headers.delete("cookie");
|
|
149
|
+
headers.delete("proxy-authorization");
|
|
108
150
|
headers.set("authorization", `Bearer ${accessToken}`);
|
|
109
151
|
headers.set(OPENAI_HEADERS.ACCOUNT_ID, accountId);
|
|
110
152
|
headers.set(OPENAI_HEADERS.BETA, OPENAI_HEADER_VALUES.BETA_RESPONSES);
|
|
@@ -264,7 +306,12 @@ async function persistRuntimeActiveAccount(accountManager, account, family, isPi
|
|
|
264
306
|
return;
|
|
265
307
|
}
|
|
266
308
|
try {
|
|
267
|
-
|
|
309
|
+
// accounts-01/08: serialize the cursor mutation through the routing mutex
|
|
310
|
+
// (when routingMutex="enabled") because this commit spans an await
|
|
311
|
+
// (syncCodexCliActiveSelectionForIndex), which is the lost-update window the
|
|
312
|
+
// mutex exists to close. In legacy mode markSwitchedLocked runs inline, so
|
|
313
|
+
// behavior is unchanged by default.
|
|
314
|
+
await accountManager.markSwitchedLocked(account, "rotation", family);
|
|
268
315
|
accountManager.saveToDiskDebounced();
|
|
269
316
|
await accountManager.syncCodexCliActiveSelectionForIndex(account.index);
|
|
270
317
|
}
|
|
@@ -583,9 +630,57 @@ function parseRetryAfterBodyMs(bodyText, now) {
|
|
|
583
630
|
}
|
|
584
631
|
return null;
|
|
585
632
|
}
|
|
586
|
-
async function readErrorBody(response) {
|
|
633
|
+
async function readErrorBody(response, timeoutMs, maxBytes = 1024 * 1024) {
|
|
634
|
+
// The outbound fetch's abort timer is cleared once headers arrive, so a
|
|
635
|
+
// stalled error body would otherwise hang this handler forever (the success
|
|
636
|
+
// path is per-chunk stall-bounded; the error path was not). Read the body via
|
|
637
|
+
// a reader, bound it by an idle timeout AND a size cap, and cancel the stream
|
|
638
|
+
// on timeout/overflow so the socket is released.
|
|
639
|
+
const body = response.body;
|
|
640
|
+
if (!body || typeof body.getReader !== "function") {
|
|
641
|
+
// Fallback for impls without a streamable body: race text() against a timer.
|
|
642
|
+
try {
|
|
643
|
+
return await withTimeout(response.text(), timeoutMs, () => undefined, "error body stalled");
|
|
644
|
+
}
|
|
645
|
+
catch {
|
|
646
|
+
return "";
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
const reader = body.getReader();
|
|
650
|
+
const chunks = [];
|
|
651
|
+
let total = 0;
|
|
652
|
+
try {
|
|
653
|
+
for (;;) {
|
|
654
|
+
let idleTimer;
|
|
655
|
+
const idle = new Promise((_resolve, reject) => {
|
|
656
|
+
idleTimer = setTimeout(() => reject(new Error("error body stalled")), Math.max(1, timeoutMs));
|
|
657
|
+
});
|
|
658
|
+
let result;
|
|
659
|
+
try {
|
|
660
|
+
result = await Promise.race([reader.read(), idle]);
|
|
661
|
+
}
|
|
662
|
+
finally {
|
|
663
|
+
if (idleTimer)
|
|
664
|
+
clearTimeout(idleTimer);
|
|
665
|
+
}
|
|
666
|
+
if (result.done)
|
|
667
|
+
break;
|
|
668
|
+
if (result.value) {
|
|
669
|
+
total += result.value.byteLength;
|
|
670
|
+
if (total > maxBytes)
|
|
671
|
+
break; // cap: enough for diagnostics, no OOM
|
|
672
|
+
chunks.push(result.value);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
catch {
|
|
677
|
+
// stalled or errored — fall through with whatever we have
|
|
678
|
+
}
|
|
679
|
+
finally {
|
|
680
|
+
await reader.cancel().catch(() => undefined);
|
|
681
|
+
}
|
|
587
682
|
try {
|
|
588
|
-
return
|
|
683
|
+
return Buffer.concat(chunks).toString("utf8");
|
|
589
684
|
}
|
|
590
685
|
catch {
|
|
591
686
|
return "";
|
|
@@ -685,7 +780,7 @@ function getQuotaNearExhaustionWaitMs(headers, remainingThreshold, now) {
|
|
|
685
780
|
return candidates.length > 0 ? Math.max(...candidates) : 0;
|
|
686
781
|
}
|
|
687
782
|
export function chooseAccount(params) {
|
|
688
|
-
const { accountManager, sessionAffinityStore, sessionKey, family, model, attemptedIndexes, now, policy, pinnedIndex, skipReasons, stickyBoostByAccount, } = params;
|
|
783
|
+
const { accountManager, sessionAffinityStore, sessionKey, family, model, attemptedIndexes, now, policy, pinnedIndex, skipReasons, stickyBoostByAccount, pidOffsetEnabled, } = params;
|
|
689
784
|
// Manual pin (from `codex-multi-auth switch <n>`) overrides every other
|
|
690
785
|
// selection signal. We do NOT call markSwitched here — the proxy must not
|
|
691
786
|
// clobber the pin set by the CLI. See issue #474.
|
|
@@ -735,6 +830,10 @@ export function chooseAccount(params) {
|
|
|
735
830
|
...(policy?.scoreBoostByAccount ?? {}),
|
|
736
831
|
...(stickyBoostByAccount ?? {}),
|
|
737
832
|
},
|
|
833
|
+
// accounts-05: carry the PID-offset distribution into the default-on proxy
|
|
834
|
+
// path too (index.ts already does). Without it, parallel proxy processes can
|
|
835
|
+
// stampede the same account instead of spreading across the pool.
|
|
836
|
+
pidOffsetEnabled,
|
|
738
837
|
});
|
|
739
838
|
if (selected &&
|
|
740
839
|
!attemptedIndexes.has(selected.index) &&
|
|
@@ -888,8 +987,27 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
888
987
|
const pluginConfig = loadPluginConfig();
|
|
889
988
|
let activeAccountManager = options.accountManager ?? (await AccountManager.loadFromDisk());
|
|
890
989
|
const knownAccountManagers = new Set([activeAccountManager]);
|
|
990
|
+
// accounts-01/08: apply the configured routing-mutex mode so the proxy's
|
|
991
|
+
// async select->commit path (persistRuntimeActiveAccount) can serialize cursor
|
|
992
|
+
// mutations when routingMutex="enabled". Legacy mode keeps the inline fast path.
|
|
993
|
+
const routingMutexMode = getRoutingMutexMode(pluginConfig);
|
|
994
|
+
activeAccountManager.setRoutingMutexMode(routingMutexMode);
|
|
891
995
|
const fetchImpl = options.fetchImpl ?? fetch;
|
|
892
996
|
const host = options.host ?? DEFAULT_HOST;
|
|
997
|
+
// Defense in depth (runtime-proxy-01): the proxy presents managed OAuth tokens
|
|
998
|
+
// and must never be reachable off-box. It is loopback-only with NO opt-out —
|
|
999
|
+
// binding a non-loopback host would expose every managed account to the
|
|
1000
|
+
// network, so it is refused unconditionally.
|
|
1001
|
+
if (!isLoopbackHost(host)) {
|
|
1002
|
+
throw new Error(`Runtime rotation proxy refuses to bind non-loopback host "${host}". ` +
|
|
1003
|
+
"It forwards managed OAuth tokens and is loopback-only.");
|
|
1004
|
+
}
|
|
1005
|
+
// Normalize the validated host into its two representations exactly once so the
|
|
1006
|
+
// listen() bind and the emitted baseUrl can never disagree under concurrent
|
|
1007
|
+
// rotation: bindHost is the raw literal Node's listen() expects ("[::1]"->"::1"),
|
|
1008
|
+
// urlHost is the bracketed form a URL authority requires ("::1"->"[::1]").
|
|
1009
|
+
const bindHost = toBindHost(host);
|
|
1010
|
+
const urlHost = toUrlHost(host);
|
|
893
1011
|
const port = options.port ?? 0;
|
|
894
1012
|
const upstreamBaseUrl = options.upstreamBaseUrl ?? CODEX_BASE_URL;
|
|
895
1013
|
const clientApiKey = typeof options.clientApiKey === "string" &&
|
|
@@ -905,6 +1023,7 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
905
1023
|
const serverErrorCooldownMs = getServerErrorCooldownMs(pluginConfig);
|
|
906
1024
|
const tokenInvalidationCooldownMs = getTokenInvalidationCooldownMs(pluginConfig);
|
|
907
1025
|
const minRotationIntervalMs = getMinRotationIntervalMs(pluginConfig);
|
|
1026
|
+
const pidOffsetEnabled = getPidOffsetEnabled(pluginConfig);
|
|
908
1027
|
let lastGlobalAccountIndex = null;
|
|
909
1028
|
let lastGlobalSwitchAt = 0;
|
|
910
1029
|
const fetchTimeoutMs = options.fetchTimeoutMs ?? getFetchTimeoutMs(pluginConfig);
|
|
@@ -953,6 +1072,7 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
953
1072
|
AccountManager.resetVolatileRuntimeState();
|
|
954
1073
|
recordRuntimeReset("pool-exhausted-no-account");
|
|
955
1074
|
const reloaded = await AccountManager.loadFromDisk();
|
|
1075
|
+
reloaded.setRoutingMutexMode(routingMutexMode);
|
|
956
1076
|
activeAccountManager = reloaded;
|
|
957
1077
|
knownAccountManagers.add(reloaded);
|
|
958
1078
|
lastStaleRuntimeReloadAt = Date.now();
|
|
@@ -969,6 +1089,13 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
969
1089
|
return staleRuntimeReloadPromise;
|
|
970
1090
|
};
|
|
971
1091
|
const handleRequest = async (req, res) => {
|
|
1092
|
+
// Per-request trace id (errors-logging-03): distinct from sessionKey, which
|
|
1093
|
+
// is shared across a thread's requests. Bound to this request's async context
|
|
1094
|
+
// so every proxyLog line and usage row can be correlated to one request.
|
|
1095
|
+
const traceId = randomUUID();
|
|
1096
|
+
return runWithCorrelationId(traceId, () => handleRequestInner(req, res, traceId));
|
|
1097
|
+
};
|
|
1098
|
+
const handleRequestInner = async (req, res, traceId) => {
|
|
972
1099
|
let usageRecorder = null;
|
|
973
1100
|
let accountManager = activeAccountManager;
|
|
974
1101
|
try {
|
|
@@ -1028,7 +1155,7 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
1028
1155
|
: "responses",
|
|
1029
1156
|
model: context.model,
|
|
1030
1157
|
projectKey,
|
|
1031
|
-
requestId:
|
|
1158
|
+
requestId: traceId,
|
|
1032
1159
|
startedAt: requestStartedAt,
|
|
1033
1160
|
});
|
|
1034
1161
|
if (policyError) {
|
|
@@ -1103,6 +1230,7 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
1103
1230
|
pinnedIndex,
|
|
1104
1231
|
skipReasons: accountSkipReasons,
|
|
1105
1232
|
stickyBoostByAccount: rotationStickyBoost,
|
|
1233
|
+
pidOffsetEnabled,
|
|
1106
1234
|
});
|
|
1107
1235
|
if (!selected) {
|
|
1108
1236
|
if (!reloadedAfterNoAccount &&
|
|
@@ -1212,7 +1340,7 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
1212
1340
|
continue;
|
|
1213
1341
|
}
|
|
1214
1342
|
if (upstream.status === HTTP_STATUS.TOO_MANY_REQUESTS) {
|
|
1215
|
-
const bodyText = await readErrorBody(upstream);
|
|
1343
|
+
const bodyText = await readErrorBody(upstream, streamStallTimeoutMs);
|
|
1216
1344
|
const retryAfterMs = parseRetryAfterHeaderMs(upstream.headers, now()) ??
|
|
1217
1345
|
parseRetryAfterBodyMs(bodyText, now()) ??
|
|
1218
1346
|
60_000;
|
|
@@ -1229,7 +1357,7 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
1229
1357
|
continue;
|
|
1230
1358
|
}
|
|
1231
1359
|
if (upstream.status === 402 || upstream.status === HTTP_STATUS.FORBIDDEN) {
|
|
1232
|
-
const bodyText = await readErrorBody(upstream);
|
|
1360
|
+
const bodyText = await readErrorBody(upstream, streamStallTimeoutMs);
|
|
1233
1361
|
const errorCode = extractErrorCodeFromBody(bodyText);
|
|
1234
1362
|
if (isWorkspaceDisabledError(upstream.status, errorCode, bodyText)) {
|
|
1235
1363
|
const accountWasEnabled = accountManager.getAccountByIndex(refreshed.account.index)?.enabled !==
|
|
@@ -1312,7 +1440,7 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
1312
1440
|
return;
|
|
1313
1441
|
}
|
|
1314
1442
|
if (upstream.status === HTTP_STATUS.UNAUTHORIZED) {
|
|
1315
|
-
const bodyText = await readErrorBody(upstream);
|
|
1443
|
+
const bodyText = await readErrorBody(upstream, streamStallTimeoutMs);
|
|
1316
1444
|
accountManager.refundToken(refreshed.account, context.family, context.model);
|
|
1317
1445
|
accountManager.recordFailure(refreshed.account, context.family, context.model);
|
|
1318
1446
|
if (isTokenInvalidationError(bodyText)) {
|
|
@@ -1349,7 +1477,7 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
1349
1477
|
continue;
|
|
1350
1478
|
}
|
|
1351
1479
|
if (upstream.status >= 500) {
|
|
1352
|
-
await readErrorBody(upstream);
|
|
1480
|
+
await readErrorBody(upstream, streamStallTimeoutMs);
|
|
1353
1481
|
accountManager.refundToken(refreshed.account, context.family, context.model);
|
|
1354
1482
|
accountManager.recordFailure(refreshed.account, context.family, context.model);
|
|
1355
1483
|
accountManager.markAccountCoolingDown(refreshed.account, serverErrorCooldownMs, "server-error");
|
|
@@ -1462,7 +1590,20 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
1462
1590
|
}
|
|
1463
1591
|
}
|
|
1464
1592
|
catch (error) {
|
|
1465
|
-
|
|
1593
|
+
const rawErrorMessage = error instanceof Error ? error.message : String(error);
|
|
1594
|
+
// errors-logging-08: redact any email/token material that leaked into a
|
|
1595
|
+
// raw upstream or refresh error string before it reaches status consumers
|
|
1596
|
+
// or the structured log. maskString is a no-op for clean diagnostic text.
|
|
1597
|
+
const maskedErrorMessage = maskString(rawErrorMessage);
|
|
1598
|
+
status.lastError = maskedErrorMessage;
|
|
1599
|
+
// errors-logging-01: surface the failure through the structured logger
|
|
1600
|
+
// (redaction-safe) with the request trace id, instead of only stashing a
|
|
1601
|
+
// last-write-wins status string.
|
|
1602
|
+
proxyLog.error("runtime proxy request failed", {
|
|
1603
|
+
traceId,
|
|
1604
|
+
code: isRuntimeProxyHttpError(error) ? error.code : "codex_runtime_rotation_proxy_error",
|
|
1605
|
+
error: maskedErrorMessage,
|
|
1606
|
+
});
|
|
1466
1607
|
if (!res.headersSent) {
|
|
1467
1608
|
if (isRuntimeProxyHttpError(error)) {
|
|
1468
1609
|
await usageRecorder?.record({
|
|
@@ -1519,20 +1660,26 @@ export async function startRuntimeRotationProxy(options) {
|
|
|
1519
1660
|
};
|
|
1520
1661
|
server.once("error", onError);
|
|
1521
1662
|
server.once("listening", onListening);
|
|
1522
|
-
server.listen(port,
|
|
1663
|
+
server.listen(port, bindHost);
|
|
1523
1664
|
});
|
|
1524
1665
|
server.on("error", onPostStartupServerError);
|
|
1525
1666
|
const address = server.address();
|
|
1526
1667
|
const resolvedPort = typeof address === "object" && address ? address.port : port;
|
|
1527
1668
|
return {
|
|
1528
|
-
host,
|
|
1669
|
+
host: bindHost,
|
|
1529
1670
|
port: resolvedPort,
|
|
1530
|
-
baseUrl: `http://${
|
|
1671
|
+
baseUrl: `http://${urlHost}:${resolvedPort}`,
|
|
1531
1672
|
close: async () => {
|
|
1532
1673
|
await closeServer(server, sockets);
|
|
1533
1674
|
await activeAccountManager.flushPendingSave();
|
|
1534
1675
|
},
|
|
1535
|
-
getStatus: () => ({
|
|
1676
|
+
getStatus: () => ({
|
|
1677
|
+
...status,
|
|
1678
|
+
// Redact any email/token material that leaked into a raw upstream or
|
|
1679
|
+
// refresh error string before exposing it to status/report consumers
|
|
1680
|
+
// (errors-logging-08). maskString is a no-op for clean diagnostic text.
|
|
1681
|
+
lastError: status.lastError === null ? null : maskString(status.lastError),
|
|
1682
|
+
}),
|
|
1536
1683
|
};
|
|
1537
1684
|
}
|
|
1538
1685
|
async function closeServer(server, sockets) {
|