oc-codex-multi-auth 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +162 -0
- package/assets/opencode-logo-ornate-dark.svg +18 -0
- package/assets/readme-hero.svg +31 -0
- package/config/README.md +96 -0
- package/config/minimal-opencode.json +13 -0
- package/config/opencode-legacy.json +871 -0
- package/config/opencode-modern.json +358 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5008 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/accounts/rate-limits.d.ts +22 -0
- package/dist/lib/accounts/rate-limits.d.ts.map +1 -0
- package/dist/lib/accounts/rate-limits.js +63 -0
- package/dist/lib/accounts/rate-limits.js.map +1 -0
- package/dist/lib/accounts.d.ts +134 -0
- package/dist/lib/accounts.d.ts.map +1 -0
- package/dist/lib/accounts.js +795 -0
- package/dist/lib/accounts.js.map +1 -0
- package/dist/lib/audit.d.ts +45 -0
- package/dist/lib/audit.d.ts.map +1 -0
- package/dist/lib/audit.js +154 -0
- package/dist/lib/audit.js.map +1 -0
- package/dist/lib/auth/auth.d.ts +51 -0
- package/dist/lib/auth/auth.d.ts.map +1 -0
- package/dist/lib/auth/auth.js +191 -0
- package/dist/lib/auth/auth.js.map +1 -0
- package/dist/lib/auth/browser.d.ts +17 -0
- package/dist/lib/auth/browser.d.ts.map +1 -0
- package/dist/lib/auth/browser.js +90 -0
- package/dist/lib/auth/browser.js.map +1 -0
- package/dist/lib/auth/device-code.d.ts +28 -0
- package/dist/lib/auth/device-code.d.ts.map +1 -0
- package/dist/lib/auth/device-code.js +215 -0
- package/dist/lib/auth/device-code.js.map +1 -0
- package/dist/lib/auth/login-runner.d.ts +55 -0
- package/dist/lib/auth/login-runner.d.ts.map +1 -0
- package/dist/lib/auth/login-runner.js +631 -0
- package/dist/lib/auth/login-runner.js.map +1 -0
- package/dist/lib/auth/server.d.ts +10 -0
- package/dist/lib/auth/server.d.ts.map +1 -0
- package/dist/lib/auth/server.js +98 -0
- package/dist/lib/auth/server.js.map +1 -0
- package/dist/lib/auth/token-utils.d.ts +60 -0
- package/dist/lib/auth/token-utils.d.ts.map +1 -0
- package/dist/lib/auth/token-utils.js +416 -0
- package/dist/lib/auth/token-utils.js.map +1 -0
- package/dist/lib/auth-rate-limit.d.ts +20 -0
- package/dist/lib/auth-rate-limit.d.ts.map +1 -0
- package/dist/lib/auth-rate-limit.js +91 -0
- package/dist/lib/auth-rate-limit.js.map +1 -0
- package/dist/lib/auto-update-checker.d.ts +10 -0
- package/dist/lib/auto-update-checker.d.ts.map +1 -0
- package/dist/lib/auto-update-checker.js +129 -0
- package/dist/lib/auto-update-checker.js.map +1 -0
- package/dist/lib/circuit-breaker.d.ts +34 -0
- package/dist/lib/circuit-breaker.d.ts.map +1 -0
- package/dist/lib/circuit-breaker.js +124 -0
- package/dist/lib/circuit-breaker.js.map +1 -0
- package/dist/lib/cli.d.ts +46 -0
- package/dist/lib/cli.d.ts.map +1 -0
- package/dist/lib/cli.js +192 -0
- package/dist/lib/cli.js.map +1 -0
- package/dist/lib/config.d.ts +42 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +314 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/constants.d.ts +90 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +90 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/context-overflow.d.ts +27 -0
- package/dist/lib/context-overflow.d.ts.map +1 -0
- package/dist/lib/context-overflow.js +124 -0
- package/dist/lib/context-overflow.js.map +1 -0
- package/dist/lib/errors.d.ts +113 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +103 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/health.d.ts +33 -0
- package/dist/lib/health.d.ts.map +1 -0
- package/dist/lib/health.js +70 -0
- package/dist/lib/health.js.map +1 -0
- package/dist/lib/index.d.ts +20 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +20 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/logger.d.ts +40 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +337 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/oauth-success.html +712 -0
- package/dist/lib/parallel-probe.d.ts +28 -0
- package/dist/lib/parallel-probe.d.ts.map +1 -0
- package/dist/lib/parallel-probe.js +97 -0
- package/dist/lib/parallel-probe.js.map +1 -0
- package/dist/lib/proactive-refresh.d.ts +67 -0
- package/dist/lib/proactive-refresh.d.ts.map +1 -0
- package/dist/lib/proactive-refresh.js +161 -0
- package/dist/lib/proactive-refresh.js.map +1 -0
- package/dist/lib/prompts/codex-opencode-bridge.d.ts +20 -0
- package/dist/lib/prompts/codex-opencode-bridge.d.ts.map +1 -0
- package/dist/lib/prompts/codex-opencode-bridge.js +126 -0
- package/dist/lib/prompts/codex-opencode-bridge.js.map +1 -0
- package/dist/lib/prompts/codex.d.ts +41 -0
- package/dist/lib/prompts/codex.d.ts.map +1 -0
- package/dist/lib/prompts/codex.js +400 -0
- package/dist/lib/prompts/codex.js.map +1 -0
- package/dist/lib/prompts/opencode-codex.d.ts +25 -0
- package/dist/lib/prompts/opencode-codex.d.ts.map +1 -0
- package/dist/lib/prompts/opencode-codex.js +223 -0
- package/dist/lib/prompts/opencode-codex.js.map +1 -0
- package/dist/lib/recovery/constants.d.ts +12 -0
- package/dist/lib/recovery/constants.d.ts.map +1 -0
- package/dist/lib/recovery/constants.js +25 -0
- package/dist/lib/recovery/constants.js.map +1 -0
- package/dist/lib/recovery/index.d.ts +12 -0
- package/dist/lib/recovery/index.d.ts.map +1 -0
- package/dist/lib/recovery/index.js +12 -0
- package/dist/lib/recovery/index.js.map +1 -0
- package/dist/lib/recovery/storage.d.ts +24 -0
- package/dist/lib/recovery/storage.d.ts.map +1 -0
- package/dist/lib/recovery/storage.js +362 -0
- package/dist/lib/recovery/storage.js.map +1 -0
- package/dist/lib/recovery/types.d.ts +116 -0
- package/dist/lib/recovery/types.d.ts.map +1 -0
- package/dist/lib/recovery/types.js +7 -0
- package/dist/lib/recovery/types.js.map +1 -0
- package/dist/lib/recovery.d.ts +31 -0
- package/dist/lib/recovery.d.ts.map +1 -0
- package/dist/lib/recovery.js +313 -0
- package/dist/lib/recovery.js.map +1 -0
- package/dist/lib/refresh-queue.d.ts +131 -0
- package/dist/lib/refresh-queue.d.ts.map +1 -0
- package/dist/lib/refresh-queue.js +297 -0
- package/dist/lib/refresh-queue.js.map +1 -0
- package/dist/lib/request/fetch-helpers.d.ts +142 -0
- package/dist/lib/request/fetch-helpers.d.ts.map +1 -0
- package/dist/lib/request/fetch-helpers.js +749 -0
- package/dist/lib/request/fetch-helpers.js.map +1 -0
- package/dist/lib/request/helpers/input-utils.d.ts +7 -0
- package/dist/lib/request/helpers/input-utils.d.ts.map +1 -0
- package/dist/lib/request/helpers/input-utils.js +214 -0
- package/dist/lib/request/helpers/input-utils.js.map +1 -0
- package/dist/lib/request/helpers/model-map.d.ts +22 -0
- package/dist/lib/request/helpers/model-map.d.ts.map +1 -0
- package/dist/lib/request/helpers/model-map.js +183 -0
- package/dist/lib/request/helpers/model-map.js.map +1 -0
- package/dist/lib/request/helpers/tool-utils.d.ts +29 -0
- package/dist/lib/request/helpers/tool-utils.d.ts.map +1 -0
- package/dist/lib/request/helpers/tool-utils.js +117 -0
- package/dist/lib/request/helpers/tool-utils.js.map +1 -0
- package/dist/lib/request/rate-limit-backoff.d.ts +17 -0
- package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -0
- package/dist/lib/request/rate-limit-backoff.js +83 -0
- package/dist/lib/request/rate-limit-backoff.js.map +1 -0
- package/dist/lib/request/request-transformer.d.ts +107 -0
- package/dist/lib/request/request-transformer.d.ts.map +1 -0
- package/dist/lib/request/request-transformer.js +930 -0
- package/dist/lib/request/request-transformer.js.map +1 -0
- package/dist/lib/request/response-handler.d.ts +23 -0
- package/dist/lib/request/response-handler.d.ts.map +1 -0
- package/dist/lib/request/response-handler.js +245 -0
- package/dist/lib/request/response-handler.js.map +1 -0
- package/dist/lib/request/retry-budget.d.ts +19 -0
- package/dist/lib/request/retry-budget.d.ts.map +1 -0
- package/dist/lib/request/retry-budget.js +99 -0
- package/dist/lib/request/retry-budget.js.map +1 -0
- package/dist/lib/rotation.d.ts +130 -0
- package/dist/lib/rotation.d.ts.map +1 -0
- package/dist/lib/rotation.js +301 -0
- package/dist/lib/rotation.js.map +1 -0
- package/dist/lib/runtime-contracts.d.ts +16 -0
- package/dist/lib/runtime-contracts.d.ts.map +1 -0
- package/dist/lib/runtime-contracts.js +24 -0
- package/dist/lib/runtime-contracts.js.map +1 -0
- package/dist/lib/schemas.d.ts +457 -0
- package/dist/lib/schemas.d.ts.map +1 -0
- package/dist/lib/schemas.js +283 -0
- package/dist/lib/schemas.js.map +1 -0
- package/dist/lib/shutdown.d.ts +7 -0
- package/dist/lib/shutdown.d.ts.map +1 -0
- package/dist/lib/shutdown.js +43 -0
- package/dist/lib/shutdown.js.map +1 -0
- package/dist/lib/storage/migrations.d.ts +65 -0
- package/dist/lib/storage/migrations.d.ts.map +1 -0
- package/dist/lib/storage/migrations.js +44 -0
- package/dist/lib/storage/migrations.js.map +1 -0
- package/dist/lib/storage/paths.d.ts +16 -0
- package/dist/lib/storage/paths.d.ts.map +1 -0
- package/dist/lib/storage/paths.js +92 -0
- package/dist/lib/storage/paths.js.map +1 -0
- package/dist/lib/storage.d.ts +157 -0
- package/dist/lib/storage.d.ts.map +1 -0
- package/dist/lib/storage.js +1169 -0
- package/dist/lib/storage.js.map +1 -0
- package/dist/lib/table-formatter.d.ts +32 -0
- package/dist/lib/table-formatter.d.ts.map +1 -0
- package/dist/lib/table-formatter.js +44 -0
- package/dist/lib/table-formatter.js.map +1 -0
- package/dist/lib/types.d.ts +131 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/ui/ansi.d.ts +22 -0
- package/dist/lib/ui/ansi.d.ts.map +1 -0
- package/dist/lib/ui/ansi.js +38 -0
- package/dist/lib/ui/ansi.js.map +1 -0
- package/dist/lib/ui/auth-menu.d.ts +39 -0
- package/dist/lib/ui/auth-menu.d.ts.map +1 -0
- package/dist/lib/ui/auth-menu.js +186 -0
- package/dist/lib/ui/auth-menu.js.map +1 -0
- package/dist/lib/ui/beginner.d.ts +62 -0
- package/dist/lib/ui/beginner.d.ts.map +1 -0
- package/dist/lib/ui/beginner.js +259 -0
- package/dist/lib/ui/beginner.js.map +1 -0
- package/dist/lib/ui/confirm.d.ts +2 -0
- package/dist/lib/ui/confirm.d.ts.map +1 -0
- package/dist/lib/ui/confirm.js +21 -0
- package/dist/lib/ui/confirm.js.map +1 -0
- package/dist/lib/ui/format.d.ts +9 -0
- package/dist/lib/ui/format.d.ts.map +1 -0
- package/dist/lib/ui/format.js +49 -0
- package/dist/lib/ui/format.js.map +1 -0
- package/dist/lib/ui/runtime.d.ts +11 -0
- package/dist/lib/ui/runtime.d.ts.map +1 -0
- package/dist/lib/ui/runtime.js +31 -0
- package/dist/lib/ui/runtime.js.map +1 -0
- package/dist/lib/ui/select.d.ts +20 -0
- package/dist/lib/ui/select.d.ts.map +1 -0
- package/dist/lib/ui/select.js +343 -0
- package/dist/lib/ui/select.js.map +1 -0
- package/dist/lib/ui/theme.d.ts +34 -0
- package/dist/lib/ui/theme.d.ts.map +1 -0
- package/dist/lib/ui/theme.js +84 -0
- package/dist/lib/ui/theme.js.map +1 -0
- package/dist/lib/utils.d.ts +29 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +54 -0
- package/dist/lib/utils.js.map +1 -0
- package/package.json +113 -0
- package/scripts/audit-dev-allowlist.js +114 -0
- package/scripts/copy-oauth-success.js +37 -0
- package/scripts/install-oc-codex-multi-auth-core.js +381 -0
- package/scripts/install-oc-codex-multi-auth.js +15 -0
- package/scripts/test-all-models.sh +260 -0
- package/scripts/validate-model-map.sh +97 -0
package/dist/lib/cli.js
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { createInterface } from "node:readline/promises";
|
|
2
|
+
import { stdin as input, stdout as output } from "node:process";
|
|
3
|
+
import { showAuthMenu, showAccountDetails, isTTY, } from "./ui/auth-menu.js";
|
|
4
|
+
/**
|
|
5
|
+
* Detect if running in OpenCode Desktop/TUI mode where readline prompts don't work.
|
|
6
|
+
* In TUI mode, stdin/stdout are controlled by the TUI renderer, so readline breaks.
|
|
7
|
+
* Exported for testing purposes.
|
|
8
|
+
*/
|
|
9
|
+
export function isNonInteractiveMode() {
|
|
10
|
+
if (process.env.FORCE_INTERACTIVE_MODE === "1")
|
|
11
|
+
return false;
|
|
12
|
+
if (!input.isTTY || !output.isTTY)
|
|
13
|
+
return true;
|
|
14
|
+
if (process.env.OPENCODE_TUI === "1")
|
|
15
|
+
return true;
|
|
16
|
+
if (process.env.OPENCODE_DESKTOP === "1")
|
|
17
|
+
return true;
|
|
18
|
+
if (process.env.TERM_PROGRAM === "opencode")
|
|
19
|
+
return true;
|
|
20
|
+
if (process.env.ELECTRON_RUN_AS_NODE === "1")
|
|
21
|
+
return true;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
export async function promptAddAnotherAccount(currentCount) {
|
|
25
|
+
if (isNonInteractiveMode()) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
const rl = createInterface({ input, output });
|
|
29
|
+
try {
|
|
30
|
+
console.log("\nTIP: use private browsing or sign out before adding another account.\n");
|
|
31
|
+
const answer = await rl.question(`Add another account? (${currentCount} added) (y/n): `);
|
|
32
|
+
const normalized = answer.trim().toLowerCase();
|
|
33
|
+
return normalized === "y" || normalized === "yes";
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
rl.close();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function formatAccountLabel(account, index) {
|
|
40
|
+
const num = index + 1;
|
|
41
|
+
const label = account.accountLabel?.trim();
|
|
42
|
+
const email = account.email?.trim();
|
|
43
|
+
const accountId = account.accountId?.trim();
|
|
44
|
+
const accountIdDisplay = accountId && accountId.length > 14
|
|
45
|
+
? `${accountId.slice(0, 8)}...${accountId.slice(-6)}`
|
|
46
|
+
: accountId;
|
|
47
|
+
const details = [];
|
|
48
|
+
if (email)
|
|
49
|
+
details.push(email);
|
|
50
|
+
if (label)
|
|
51
|
+
details.push(`workspace:${label}`);
|
|
52
|
+
if (accountIdDisplay)
|
|
53
|
+
details.push(`id:${accountIdDisplay}`);
|
|
54
|
+
if (details.length > 0) {
|
|
55
|
+
return `${num}. ${details.join(" | ")}`;
|
|
56
|
+
}
|
|
57
|
+
return `${num}. Account`;
|
|
58
|
+
}
|
|
59
|
+
async function promptDeleteAllTypedConfirm() {
|
|
60
|
+
const rl = createInterface({ input, output });
|
|
61
|
+
try {
|
|
62
|
+
const answer = await rl.question("Type DELETE to confirm removing all accounts: ");
|
|
63
|
+
return answer.trim() === "DELETE";
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
rl.close();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async function promptLoginModeFallback(existingAccounts) {
|
|
70
|
+
const rl = createInterface({ input, output });
|
|
71
|
+
try {
|
|
72
|
+
if (existingAccounts.length > 0) {
|
|
73
|
+
console.log(`\n${existingAccounts.length} account(s) saved:`);
|
|
74
|
+
for (const account of existingAccounts) {
|
|
75
|
+
console.log(` ${formatAccountLabel(account, account.index)}`);
|
|
76
|
+
}
|
|
77
|
+
console.log("");
|
|
78
|
+
}
|
|
79
|
+
while (true) {
|
|
80
|
+
const answer = await rl.question("(a)dd, (f)resh, (c)heck, (d)eep, (v)erify flagged, or (q)uit? [a/f/c/d/v/q]: ");
|
|
81
|
+
const normalized = answer.trim().toLowerCase();
|
|
82
|
+
if (normalized === "a" || normalized === "add")
|
|
83
|
+
return { mode: "add" };
|
|
84
|
+
if (normalized === "f" || normalized === "fresh")
|
|
85
|
+
return { mode: "fresh", deleteAll: true };
|
|
86
|
+
if (normalized === "c" || normalized === "check")
|
|
87
|
+
return { mode: "check" };
|
|
88
|
+
if (normalized === "d" || normalized === "deep")
|
|
89
|
+
return { mode: "deep-check" };
|
|
90
|
+
if (normalized === "v" || normalized === "verify")
|
|
91
|
+
return { mode: "verify-flagged" };
|
|
92
|
+
if (normalized === "q" || normalized === "quit")
|
|
93
|
+
return { mode: "cancel" };
|
|
94
|
+
console.log("Please enter one of: a, f, c, d, v, q.");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
finally {
|
|
98
|
+
rl.close();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export async function promptLoginMode(existingAccounts, options = {}) {
|
|
102
|
+
if (isNonInteractiveMode()) {
|
|
103
|
+
return { mode: "add" };
|
|
104
|
+
}
|
|
105
|
+
if (!isTTY()) {
|
|
106
|
+
return promptLoginModeFallback(existingAccounts);
|
|
107
|
+
}
|
|
108
|
+
while (true) {
|
|
109
|
+
const action = await showAuthMenu(existingAccounts, {
|
|
110
|
+
flaggedCount: options.flaggedCount ?? 0,
|
|
111
|
+
});
|
|
112
|
+
switch (action.type) {
|
|
113
|
+
case "add":
|
|
114
|
+
return { mode: "add" };
|
|
115
|
+
case "fresh":
|
|
116
|
+
if (!(await promptDeleteAllTypedConfirm())) {
|
|
117
|
+
console.log("\nDelete-all cancelled.\n");
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
return { mode: "fresh", deleteAll: true };
|
|
121
|
+
case "check":
|
|
122
|
+
return { mode: "check" };
|
|
123
|
+
case "deep-check":
|
|
124
|
+
return { mode: "deep-check" };
|
|
125
|
+
case "verify-flagged":
|
|
126
|
+
return { mode: "verify-flagged" };
|
|
127
|
+
case "select-account": {
|
|
128
|
+
const accountAction = await showAccountDetails(action.account);
|
|
129
|
+
if (accountAction === "delete") {
|
|
130
|
+
return { mode: "manage", deleteAccountIndex: action.account.index };
|
|
131
|
+
}
|
|
132
|
+
if (accountAction === "refresh") {
|
|
133
|
+
return { mode: "manage", refreshAccountIndex: action.account.index };
|
|
134
|
+
}
|
|
135
|
+
if (accountAction === "toggle") {
|
|
136
|
+
return { mode: "manage", toggleAccountIndex: action.account.index };
|
|
137
|
+
}
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
case "delete-all":
|
|
141
|
+
if (!(await promptDeleteAllTypedConfirm())) {
|
|
142
|
+
console.log("\nDelete-all cancelled.\n");
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
return { mode: "fresh", deleteAll: true };
|
|
146
|
+
case "cancel":
|
|
147
|
+
return { mode: "cancel" };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export async function promptAccountSelection(candidates, options = {}) {
|
|
152
|
+
if (candidates.length === 0)
|
|
153
|
+
return null;
|
|
154
|
+
const defaultIndex = typeof options.defaultIndex === "number" && Number.isFinite(options.defaultIndex)
|
|
155
|
+
? Math.max(0, Math.min(options.defaultIndex, candidates.length - 1))
|
|
156
|
+
: 0;
|
|
157
|
+
if (isNonInteractiveMode()) {
|
|
158
|
+
return candidates[defaultIndex] ?? candidates[0] ?? null;
|
|
159
|
+
}
|
|
160
|
+
const rl = createInterface({ input, output });
|
|
161
|
+
try {
|
|
162
|
+
console.log(`\n${options.title ?? "Multiple workspaces detected for this account:"}`);
|
|
163
|
+
candidates.forEach((candidate, index) => {
|
|
164
|
+
const isDefault = candidate.isDefault ? " (default)" : "";
|
|
165
|
+
console.log(` ${index + 1}. ${candidate.label}${isDefault}`);
|
|
166
|
+
});
|
|
167
|
+
console.log("");
|
|
168
|
+
while (true) {
|
|
169
|
+
const answer = await rl.question(`Select workspace [${defaultIndex + 1}]: `);
|
|
170
|
+
const normalized = answer.trim().toLowerCase();
|
|
171
|
+
if (!normalized) {
|
|
172
|
+
return candidates[defaultIndex] ?? candidates[0] ?? null;
|
|
173
|
+
}
|
|
174
|
+
if (normalized === "q" || normalized === "quit") {
|
|
175
|
+
return candidates[defaultIndex] ?? candidates[0] ?? null;
|
|
176
|
+
}
|
|
177
|
+
const parsed = Number.parseInt(normalized, 10);
|
|
178
|
+
if (Number.isFinite(parsed)) {
|
|
179
|
+
const idx = parsed - 1;
|
|
180
|
+
if (idx >= 0 && idx < candidates.length) {
|
|
181
|
+
return candidates[idx] ?? null;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
console.log(`Please enter a number between 1 and ${candidates.length}.`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
finally {
|
|
188
|
+
rl.close();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
export { isTTY };
|
|
192
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../lib/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { PluginConfig } from "./types.js";
|
|
2
|
+
import { type RetryBudgetOverrides, type RetryProfile } from "./request/retry-budget.js";
|
|
3
|
+
export type UnsupportedCodexPolicy = "strict" | "fallback";
|
|
4
|
+
/**
|
|
5
|
+
* Load plugin configuration from ~/.opencode/openai-codex-auth-config.json
|
|
6
|
+
* Falls back to defaults if file doesn't exist or is invalid
|
|
7
|
+
*
|
|
8
|
+
* @returns Plugin configuration
|
|
9
|
+
*/
|
|
10
|
+
export declare function loadPluginConfig(): PluginConfig;
|
|
11
|
+
export declare function getCodexMode(pluginConfig: PluginConfig): boolean;
|
|
12
|
+
export declare function getRequestTransformMode(pluginConfig: PluginConfig): "native" | "legacy";
|
|
13
|
+
export declare function getCodexTuiV2(pluginConfig: PluginConfig): boolean;
|
|
14
|
+
export declare function getCodexTuiColorProfile(pluginConfig: PluginConfig): "truecolor" | "ansi16" | "ansi256";
|
|
15
|
+
export declare function getCodexTuiGlyphMode(pluginConfig: PluginConfig): "ascii" | "unicode" | "auto";
|
|
16
|
+
export declare function getFastSession(pluginConfig: PluginConfig): boolean;
|
|
17
|
+
export declare function getBeginnerSafeMode(pluginConfig: PluginConfig): boolean;
|
|
18
|
+
export declare function getFastSessionStrategy(pluginConfig: PluginConfig): "hybrid" | "always";
|
|
19
|
+
export declare function getFastSessionMaxInputItems(pluginConfig: PluginConfig): number;
|
|
20
|
+
export declare function getRetryProfile(pluginConfig: PluginConfig): RetryProfile;
|
|
21
|
+
export declare function getRetryBudgetOverrides(pluginConfig: PluginConfig): RetryBudgetOverrides;
|
|
22
|
+
export declare function getRetryAllAccountsRateLimited(pluginConfig: PluginConfig): boolean;
|
|
23
|
+
export declare function getRetryAllAccountsMaxWaitMs(pluginConfig: PluginConfig): number;
|
|
24
|
+
export declare function getRetryAllAccountsMaxRetries(pluginConfig: PluginConfig): number;
|
|
25
|
+
export declare function getUnsupportedCodexPolicy(pluginConfig: PluginConfig): UnsupportedCodexPolicy;
|
|
26
|
+
export declare function getFallbackOnUnsupportedCodexModel(pluginConfig: PluginConfig): boolean;
|
|
27
|
+
export declare function getFallbackToGpt52OnUnsupportedGpt53(pluginConfig: PluginConfig): boolean;
|
|
28
|
+
export declare function getUnsupportedCodexFallbackChain(pluginConfig: PluginConfig): Record<string, string[]>;
|
|
29
|
+
export declare function getTokenRefreshSkewMs(pluginConfig: PluginConfig): number;
|
|
30
|
+
export declare function getRateLimitToastDebounceMs(pluginConfig: PluginConfig): number;
|
|
31
|
+
export declare function getSessionRecovery(pluginConfig: PluginConfig): boolean;
|
|
32
|
+
export declare function getAutoResume(pluginConfig: PluginConfig): boolean;
|
|
33
|
+
export declare function getToastDurationMs(pluginConfig: PluginConfig): number;
|
|
34
|
+
export declare function getPerProjectAccounts(pluginConfig: PluginConfig): boolean;
|
|
35
|
+
export declare function getParallelProbing(pluginConfig: PluginConfig): boolean;
|
|
36
|
+
export declare function getParallelProbingMaxConcurrency(pluginConfig: PluginConfig): number;
|
|
37
|
+
export declare function getEmptyResponseMaxRetries(pluginConfig: PluginConfig): number;
|
|
38
|
+
export declare function getEmptyResponseRetryDelayMs(pluginConfig: PluginConfig): number;
|
|
39
|
+
export declare function getPidOffsetEnabled(pluginConfig: PluginConfig): boolean;
|
|
40
|
+
export declare function getFetchTimeoutMs(pluginConfig: PluginConfig): number;
|
|
41
|
+
export declare function getStreamStallTimeoutMs(pluginConfig: PluginConfig): number;
|
|
42
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { normalizeRetryBudgetValue, } from "./request/retry-budget.js";
|
|
5
|
+
import { logWarn } from "./logger.js";
|
|
6
|
+
import { PluginConfigSchema, getValidationErrors } from "./schemas.js";
|
|
7
|
+
const CONFIG_PATH = join(homedir(), ".opencode", "openai-codex-auth-config.json");
|
|
8
|
+
const TUI_COLOR_PROFILES = new Set(["truecolor", "ansi16", "ansi256"]);
|
|
9
|
+
const TUI_GLYPH_MODES = new Set(["ascii", "unicode", "auto"]);
|
|
10
|
+
const REQUEST_TRANSFORM_MODES = new Set(["native", "legacy"]);
|
|
11
|
+
const UNSUPPORTED_CODEX_POLICIES = new Set(["strict", "fallback"]);
|
|
12
|
+
const RETRY_PROFILES = new Set(["conservative", "balanced", "aggressive"]);
|
|
13
|
+
/**
|
|
14
|
+
* Default plugin configuration
|
|
15
|
+
* CODEX_MODE is enabled by default for better Codex CLI parity
|
|
16
|
+
*/
|
|
17
|
+
const DEFAULT_CONFIG = {
|
|
18
|
+
codexMode: true,
|
|
19
|
+
requestTransformMode: "native",
|
|
20
|
+
codexTuiV2: true,
|
|
21
|
+
codexTuiColorProfile: "truecolor",
|
|
22
|
+
codexTuiGlyphMode: "ascii",
|
|
23
|
+
beginnerSafeMode: false,
|
|
24
|
+
fastSession: false,
|
|
25
|
+
fastSessionStrategy: "hybrid",
|
|
26
|
+
fastSessionMaxInputItems: 30,
|
|
27
|
+
retryProfile: "balanced",
|
|
28
|
+
retryBudgetOverrides: {},
|
|
29
|
+
retryAllAccountsRateLimited: true,
|
|
30
|
+
retryAllAccountsMaxWaitMs: 0,
|
|
31
|
+
retryAllAccountsMaxRetries: Infinity,
|
|
32
|
+
unsupportedCodexPolicy: "strict",
|
|
33
|
+
fallbackOnUnsupportedCodexModel: false,
|
|
34
|
+
fallbackToGpt52OnUnsupportedGpt53: true,
|
|
35
|
+
unsupportedCodexFallbackChain: {},
|
|
36
|
+
tokenRefreshSkewMs: 60_000,
|
|
37
|
+
rateLimitToastDebounceMs: 60_000,
|
|
38
|
+
toastDurationMs: 5_000,
|
|
39
|
+
perProjectAccounts: true,
|
|
40
|
+
sessionRecovery: true,
|
|
41
|
+
autoResume: true,
|
|
42
|
+
parallelProbing: false,
|
|
43
|
+
parallelProbingMaxConcurrency: 2,
|
|
44
|
+
emptyResponseMaxRetries: 2,
|
|
45
|
+
emptyResponseRetryDelayMs: 1_000,
|
|
46
|
+
pidOffsetEnabled: false,
|
|
47
|
+
fetchTimeoutMs: 60_000,
|
|
48
|
+
streamStallTimeoutMs: 45_000,
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Load plugin configuration from ~/.opencode/openai-codex-auth-config.json
|
|
52
|
+
* Falls back to defaults if file doesn't exist or is invalid
|
|
53
|
+
*
|
|
54
|
+
* @returns Plugin configuration
|
|
55
|
+
*/
|
|
56
|
+
export function loadPluginConfig() {
|
|
57
|
+
try {
|
|
58
|
+
if (!existsSync(CONFIG_PATH)) {
|
|
59
|
+
return DEFAULT_CONFIG;
|
|
60
|
+
}
|
|
61
|
+
const fileContent = readFileSync(CONFIG_PATH, "utf-8");
|
|
62
|
+
const normalizedFileContent = stripUtf8Bom(fileContent);
|
|
63
|
+
const userConfig = JSON.parse(normalizedFileContent);
|
|
64
|
+
const hasFallbackEnvOverride = process.env.CODEX_AUTH_FALLBACK_UNSUPPORTED_MODEL !== undefined ||
|
|
65
|
+
process.env.CODEX_AUTH_FALLBACK_GPT53_TO_GPT52 !== undefined;
|
|
66
|
+
if (isRecord(userConfig)) {
|
|
67
|
+
const hasPolicyKey = Object.hasOwn(userConfig, "unsupportedCodexPolicy");
|
|
68
|
+
const hasLegacyFallbackKey = Object.hasOwn(userConfig, "fallbackOnUnsupportedCodexModel") ||
|
|
69
|
+
Object.hasOwn(userConfig, "fallbackToGpt52OnUnsupportedGpt53") ||
|
|
70
|
+
Object.hasOwn(userConfig, "unsupportedCodexFallbackChain");
|
|
71
|
+
if (!hasPolicyKey && (hasLegacyFallbackKey || hasFallbackEnvOverride)) {
|
|
72
|
+
logWarn("Legacy unsupported-model fallback settings detected without unsupportedCodexPolicy. " +
|
|
73
|
+
'Using backward-compat behavior; prefer unsupportedCodexPolicy: "strict" | "fallback".');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const schemaErrors = getValidationErrors(PluginConfigSchema, userConfig);
|
|
77
|
+
if (schemaErrors.length > 0) {
|
|
78
|
+
logWarn(`Plugin config validation warnings: ${schemaErrors.slice(0, 3).join(", ")}`);
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
...DEFAULT_CONFIG,
|
|
82
|
+
...userConfig,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
logWarn(`Failed to load config from ${CONFIG_PATH}: ${error.message}`);
|
|
87
|
+
return DEFAULT_CONFIG;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function stripUtf8Bom(content) {
|
|
91
|
+
return content.charCodeAt(0) === 0xfeff ? content.slice(1) : content;
|
|
92
|
+
}
|
|
93
|
+
function isRecord(value) {
|
|
94
|
+
return value !== null && typeof value === "object";
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get the effective CODEX_MODE setting
|
|
98
|
+
* Priority: environment variable > config file > default (true)
|
|
99
|
+
*
|
|
100
|
+
* @param pluginConfig - Plugin configuration from file
|
|
101
|
+
* @returns True if CODEX_MODE should be enabled
|
|
102
|
+
*/
|
|
103
|
+
function parseBooleanEnv(value) {
|
|
104
|
+
if (value === undefined)
|
|
105
|
+
return undefined;
|
|
106
|
+
return value === "1";
|
|
107
|
+
}
|
|
108
|
+
function parseNumberEnv(value) {
|
|
109
|
+
if (value === undefined)
|
|
110
|
+
return undefined;
|
|
111
|
+
const parsed = Number(value);
|
|
112
|
+
if (!Number.isFinite(parsed))
|
|
113
|
+
return undefined;
|
|
114
|
+
return parsed;
|
|
115
|
+
}
|
|
116
|
+
function parseStringEnv(value) {
|
|
117
|
+
if (value === undefined)
|
|
118
|
+
return undefined;
|
|
119
|
+
const trimmed = value.trim().toLowerCase();
|
|
120
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
121
|
+
}
|
|
122
|
+
function resolveBooleanSetting(envName, configValue, defaultValue) {
|
|
123
|
+
const envValue = parseBooleanEnv(process.env[envName]);
|
|
124
|
+
if (envValue !== undefined)
|
|
125
|
+
return envValue;
|
|
126
|
+
return configValue ?? defaultValue;
|
|
127
|
+
}
|
|
128
|
+
function resolveNumberSetting(envName, configValue, defaultValue, options) {
|
|
129
|
+
const envValue = parseNumberEnv(process.env[envName]);
|
|
130
|
+
const candidate = envValue ?? configValue ?? defaultValue;
|
|
131
|
+
const min = options?.min;
|
|
132
|
+
if (min !== undefined) {
|
|
133
|
+
return Math.max(min, candidate);
|
|
134
|
+
}
|
|
135
|
+
// istanbul ignore next -- dead code: all callers pass { min: ... }
|
|
136
|
+
return candidate;
|
|
137
|
+
}
|
|
138
|
+
function resolveStringSetting(envName, configValue, defaultValue, allowedValues) {
|
|
139
|
+
const envValue = parseStringEnv(process.env[envName]);
|
|
140
|
+
if (envValue && allowedValues.has(envValue)) {
|
|
141
|
+
return envValue;
|
|
142
|
+
}
|
|
143
|
+
if (configValue && allowedValues.has(configValue)) {
|
|
144
|
+
return configValue;
|
|
145
|
+
}
|
|
146
|
+
return defaultValue;
|
|
147
|
+
}
|
|
148
|
+
export function getCodexMode(pluginConfig) {
|
|
149
|
+
return resolveBooleanSetting("CODEX_MODE", pluginConfig.codexMode, true);
|
|
150
|
+
}
|
|
151
|
+
export function getRequestTransformMode(pluginConfig) {
|
|
152
|
+
return resolveStringSetting("CODEX_AUTH_REQUEST_TRANSFORM_MODE", pluginConfig.requestTransformMode, "native", REQUEST_TRANSFORM_MODES);
|
|
153
|
+
}
|
|
154
|
+
export function getCodexTuiV2(pluginConfig) {
|
|
155
|
+
return resolveBooleanSetting("CODEX_TUI_V2", pluginConfig.codexTuiV2, true);
|
|
156
|
+
}
|
|
157
|
+
export function getCodexTuiColorProfile(pluginConfig) {
|
|
158
|
+
return resolveStringSetting("CODEX_TUI_COLOR_PROFILE", pluginConfig.codexTuiColorProfile, "truecolor", TUI_COLOR_PROFILES);
|
|
159
|
+
}
|
|
160
|
+
export function getCodexTuiGlyphMode(pluginConfig) {
|
|
161
|
+
return resolveStringSetting("CODEX_TUI_GLYPHS", pluginConfig.codexTuiGlyphMode, "ascii", TUI_GLYPH_MODES);
|
|
162
|
+
}
|
|
163
|
+
export function getFastSession(pluginConfig) {
|
|
164
|
+
return resolveBooleanSetting("CODEX_AUTH_FAST_SESSION", pluginConfig.fastSession, false);
|
|
165
|
+
}
|
|
166
|
+
export function getBeginnerSafeMode(pluginConfig) {
|
|
167
|
+
return resolveBooleanSetting("CODEX_AUTH_BEGINNER_SAFE_MODE", pluginConfig.beginnerSafeMode, false);
|
|
168
|
+
}
|
|
169
|
+
export function getFastSessionStrategy(pluginConfig) {
|
|
170
|
+
const env = (process.env.CODEX_AUTH_FAST_SESSION_STRATEGY ?? "").trim().toLowerCase();
|
|
171
|
+
if (env === "always")
|
|
172
|
+
return "always";
|
|
173
|
+
if (env === "hybrid")
|
|
174
|
+
return "hybrid";
|
|
175
|
+
return pluginConfig.fastSessionStrategy === "always" ? "always" : "hybrid";
|
|
176
|
+
}
|
|
177
|
+
export function getFastSessionMaxInputItems(pluginConfig) {
|
|
178
|
+
return resolveNumberSetting("CODEX_AUTH_FAST_SESSION_MAX_INPUT_ITEMS", pluginConfig.fastSessionMaxInputItems, 30, { min: 8 });
|
|
179
|
+
}
|
|
180
|
+
export function getRetryProfile(pluginConfig) {
|
|
181
|
+
return resolveStringSetting("CODEX_AUTH_RETRY_PROFILE", pluginConfig.retryProfile, "balanced", RETRY_PROFILES);
|
|
182
|
+
}
|
|
183
|
+
export function getRetryBudgetOverrides(pluginConfig) {
|
|
184
|
+
const source = pluginConfig.retryBudgetOverrides;
|
|
185
|
+
if (!isRecord(source))
|
|
186
|
+
return {};
|
|
187
|
+
const normalized = {};
|
|
188
|
+
const authRefresh = normalizeRetryBudgetValue(source.authRefresh);
|
|
189
|
+
const network = normalizeRetryBudgetValue(source.network);
|
|
190
|
+
const server = normalizeRetryBudgetValue(source.server);
|
|
191
|
+
const rateLimitShort = normalizeRetryBudgetValue(source.rateLimitShort);
|
|
192
|
+
const rateLimitGlobal = normalizeRetryBudgetValue(source.rateLimitGlobal);
|
|
193
|
+
const emptyResponse = normalizeRetryBudgetValue(source.emptyResponse);
|
|
194
|
+
if (authRefresh !== undefined)
|
|
195
|
+
normalized.authRefresh = authRefresh;
|
|
196
|
+
if (network !== undefined)
|
|
197
|
+
normalized.network = network;
|
|
198
|
+
if (server !== undefined)
|
|
199
|
+
normalized.server = server;
|
|
200
|
+
if (rateLimitShort !== undefined)
|
|
201
|
+
normalized.rateLimitShort = rateLimitShort;
|
|
202
|
+
if (rateLimitGlobal !== undefined)
|
|
203
|
+
normalized.rateLimitGlobal = rateLimitGlobal;
|
|
204
|
+
if (emptyResponse !== undefined)
|
|
205
|
+
normalized.emptyResponse = emptyResponse;
|
|
206
|
+
return normalized;
|
|
207
|
+
}
|
|
208
|
+
export function getRetryAllAccountsRateLimited(pluginConfig) {
|
|
209
|
+
return resolveBooleanSetting("CODEX_AUTH_RETRY_ALL_RATE_LIMITED", pluginConfig.retryAllAccountsRateLimited, true);
|
|
210
|
+
}
|
|
211
|
+
export function getRetryAllAccountsMaxWaitMs(pluginConfig) {
|
|
212
|
+
return resolveNumberSetting("CODEX_AUTH_RETRY_ALL_MAX_WAIT_MS", pluginConfig.retryAllAccountsMaxWaitMs, 0, { min: 0 });
|
|
213
|
+
}
|
|
214
|
+
export function getRetryAllAccountsMaxRetries(pluginConfig) {
|
|
215
|
+
return resolveNumberSetting("CODEX_AUTH_RETRY_ALL_MAX_RETRIES", pluginConfig.retryAllAccountsMaxRetries, Infinity, { min: 0 });
|
|
216
|
+
}
|
|
217
|
+
export function getUnsupportedCodexPolicy(pluginConfig) {
|
|
218
|
+
const envPolicy = parseStringEnv(process.env.CODEX_AUTH_UNSUPPORTED_MODEL_POLICY);
|
|
219
|
+
if (envPolicy && UNSUPPORTED_CODEX_POLICIES.has(envPolicy)) {
|
|
220
|
+
return envPolicy;
|
|
221
|
+
}
|
|
222
|
+
const configPolicy = typeof pluginConfig.unsupportedCodexPolicy === "string"
|
|
223
|
+
? pluginConfig.unsupportedCodexPolicy.toLowerCase()
|
|
224
|
+
: undefined;
|
|
225
|
+
if (configPolicy && UNSUPPORTED_CODEX_POLICIES.has(configPolicy)) {
|
|
226
|
+
return configPolicy;
|
|
227
|
+
}
|
|
228
|
+
const legacyEnvFallback = parseBooleanEnv(process.env.CODEX_AUTH_FALLBACK_UNSUPPORTED_MODEL);
|
|
229
|
+
if (legacyEnvFallback !== undefined) {
|
|
230
|
+
return legacyEnvFallback ? "fallback" : "strict";
|
|
231
|
+
}
|
|
232
|
+
if (typeof pluginConfig.fallbackOnUnsupportedCodexModel === "boolean") {
|
|
233
|
+
return pluginConfig.fallbackOnUnsupportedCodexModel
|
|
234
|
+
? "fallback"
|
|
235
|
+
: "strict";
|
|
236
|
+
}
|
|
237
|
+
return "strict";
|
|
238
|
+
}
|
|
239
|
+
export function getFallbackOnUnsupportedCodexModel(pluginConfig) {
|
|
240
|
+
return getUnsupportedCodexPolicy(pluginConfig) === "fallback";
|
|
241
|
+
}
|
|
242
|
+
export function getFallbackToGpt52OnUnsupportedGpt53(pluginConfig) {
|
|
243
|
+
return resolveBooleanSetting("CODEX_AUTH_FALLBACK_GPT53_TO_GPT52", pluginConfig.fallbackToGpt52OnUnsupportedGpt53, true);
|
|
244
|
+
}
|
|
245
|
+
export function getUnsupportedCodexFallbackChain(pluginConfig) {
|
|
246
|
+
const chain = pluginConfig.unsupportedCodexFallbackChain;
|
|
247
|
+
if (!chain || typeof chain !== "object") {
|
|
248
|
+
return {};
|
|
249
|
+
}
|
|
250
|
+
const normalizeModel = (value) => {
|
|
251
|
+
const trimmed = value.trim().toLowerCase();
|
|
252
|
+
if (!trimmed)
|
|
253
|
+
return "";
|
|
254
|
+
const stripped = trimmed.includes("/")
|
|
255
|
+
? (trimmed.split("/").pop() ?? trimmed)
|
|
256
|
+
: trimmed;
|
|
257
|
+
return stripped.replace(/-(none|minimal|low|medium|high|xhigh)$/i, "");
|
|
258
|
+
};
|
|
259
|
+
const normalized = {};
|
|
260
|
+
for (const [key, value] of Object.entries(chain)) {
|
|
261
|
+
if (typeof key !== "string" || !Array.isArray(value))
|
|
262
|
+
continue;
|
|
263
|
+
const normalizedKey = normalizeModel(key);
|
|
264
|
+
if (!normalizedKey)
|
|
265
|
+
continue;
|
|
266
|
+
const targets = value
|
|
267
|
+
.map((target) => (typeof target === "string" ? normalizeModel(target) : ""))
|
|
268
|
+
.filter((target) => target.length > 0);
|
|
269
|
+
if (targets.length > 0) {
|
|
270
|
+
normalized[normalizedKey] = targets;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return normalized;
|
|
274
|
+
}
|
|
275
|
+
export function getTokenRefreshSkewMs(pluginConfig) {
|
|
276
|
+
return resolveNumberSetting("CODEX_AUTH_TOKEN_REFRESH_SKEW_MS", pluginConfig.tokenRefreshSkewMs, 60_000, { min: 0 });
|
|
277
|
+
}
|
|
278
|
+
export function getRateLimitToastDebounceMs(pluginConfig) {
|
|
279
|
+
return resolveNumberSetting("CODEX_AUTH_RATE_LIMIT_TOAST_DEBOUNCE_MS", pluginConfig.rateLimitToastDebounceMs, 60_000, { min: 0 });
|
|
280
|
+
}
|
|
281
|
+
export function getSessionRecovery(pluginConfig) {
|
|
282
|
+
return resolveBooleanSetting("CODEX_AUTH_SESSION_RECOVERY", pluginConfig.sessionRecovery, true);
|
|
283
|
+
}
|
|
284
|
+
export function getAutoResume(pluginConfig) {
|
|
285
|
+
return resolveBooleanSetting("CODEX_AUTH_AUTO_RESUME", pluginConfig.autoResume, true);
|
|
286
|
+
}
|
|
287
|
+
export function getToastDurationMs(pluginConfig) {
|
|
288
|
+
return resolveNumberSetting("CODEX_AUTH_TOAST_DURATION_MS", pluginConfig.toastDurationMs, 5_000, { min: 1_000 });
|
|
289
|
+
}
|
|
290
|
+
export function getPerProjectAccounts(pluginConfig) {
|
|
291
|
+
return resolveBooleanSetting("CODEX_AUTH_PER_PROJECT_ACCOUNTS", pluginConfig.perProjectAccounts, true);
|
|
292
|
+
}
|
|
293
|
+
export function getParallelProbing(pluginConfig) {
|
|
294
|
+
return resolveBooleanSetting("CODEX_AUTH_PARALLEL_PROBING", pluginConfig.parallelProbing, false);
|
|
295
|
+
}
|
|
296
|
+
export function getParallelProbingMaxConcurrency(pluginConfig) {
|
|
297
|
+
return resolveNumberSetting("CODEX_AUTH_PARALLEL_PROBING_MAX_CONCURRENCY", pluginConfig.parallelProbingMaxConcurrency, 2, { min: 1 });
|
|
298
|
+
}
|
|
299
|
+
export function getEmptyResponseMaxRetries(pluginConfig) {
|
|
300
|
+
return resolveNumberSetting("CODEX_AUTH_EMPTY_RESPONSE_MAX_RETRIES", pluginConfig.emptyResponseMaxRetries, 2, { min: 0 });
|
|
301
|
+
}
|
|
302
|
+
export function getEmptyResponseRetryDelayMs(pluginConfig) {
|
|
303
|
+
return resolveNumberSetting("CODEX_AUTH_EMPTY_RESPONSE_RETRY_DELAY_MS", pluginConfig.emptyResponseRetryDelayMs, 1_000, { min: 0 });
|
|
304
|
+
}
|
|
305
|
+
export function getPidOffsetEnabled(pluginConfig) {
|
|
306
|
+
return resolveBooleanSetting("CODEX_AUTH_PID_OFFSET_ENABLED", pluginConfig.pidOffsetEnabled, false);
|
|
307
|
+
}
|
|
308
|
+
export function getFetchTimeoutMs(pluginConfig) {
|
|
309
|
+
return resolveNumberSetting("CODEX_AUTH_FETCH_TIMEOUT_MS", pluginConfig.fetchTimeoutMs, 60_000, { min: 1_000 });
|
|
310
|
+
}
|
|
311
|
+
export function getStreamStallTimeoutMs(pluginConfig) {
|
|
312
|
+
return resolveNumberSetting("CODEX_AUTH_STREAM_STALL_TIMEOUT_MS", pluginConfig.streamStallTimeoutMs, 45_000, { min: 1_000 });
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
|