opencode-openai-codex-multi-auth 4.4.2 → 4.4.6

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.
@@ -0,0 +1,36 @@
1
+ # Third-Party Notices
2
+
3
+ This project is a fork of `numman-ali/opencode-openai-codex-auth`.
4
+
5
+ In addition, portions of this repository are derived from or heavily inspired by the following project.
6
+
7
+ ## NoeFabris/opencode-antigravity-auth
8
+
9
+ Portions of the multi-account rotation implementation and documentation structure were adapted from:
10
+
11
+ - Repository: https://github.com/NoeFabris/opencode-antigravity-auth
12
+ - License: MIT
13
+
14
+ Included below is the MIT license text from that repository.
15
+
16
+ MIT License
17
+
18
+ Copyright (c) 2025 Jens
19
+
20
+ Permission is hereby granted, free of charge, to any person obtaining a copy
21
+ of this software and associated documentation files (the "Software"), to deal
22
+ in the Software without restriction, including without limitation the rights
23
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24
+ copies of the Software, and to permit persons to whom the Software is
25
+ furnished to do so, subject to the following conditions:
26
+
27
+ The above copyright notice and this permission notice shall be included in all
28
+ copies or substantial portions of the Software.
29
+
30
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
31
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
32
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
33
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
34
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
35
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
36
+ SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AA+E1E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAkoB9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAsF1E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAwuB9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -30,13 +30,20 @@ import { AUTH_LABELS, CODEX_BASE_URL, DUMMY_API_KEY, HTTP_STATUS, LOG_STAGES, PL
30
30
  import { logRequest, logDebug } from "./lib/logger.js";
31
31
  import { createCodexHeaders, extractRequestUrl, handleErrorResponse, handleSuccessResponse, rewriteUrlForCodex, transformRequestForCodex, } from "./lib/request/fetch-helpers.js";
32
32
  import { AccountManager, extractAccountEmail, extractAccountId, formatAccountLabel, formatWaitTime, isOAuthAuth, sanitizeEmail, } from "./lib/accounts.js";
33
- import { promptAddAnotherAccount, promptLoginMode } from "./lib/cli.js";
33
+ import { promptAddAnotherAccount, promptLoginMode, promptOAuthCallbackValue } from "./lib/cli.js";
34
+ import { withTerminalModeRestored } from "./lib/terminal.js";
34
35
  import { getStoragePath, loadAccounts, saveAccounts } from "./lib/storage.js";
35
36
  import { getModelFamily, MODEL_FAMILIES } from "./lib/prompts/codex.js";
36
37
  import { getHealthTracker, getTokenTracker } from "./lib/rotation.js";
37
38
  const RATE_LIMIT_SHORT_RETRY_THRESHOLD_MS = 5_000;
38
39
  const AUTH_FAILURE_COOLDOWN_MS = 60_000;
39
40
  const MAX_ACCOUNTS = 10;
41
+ const AUTH_DEBUG_ENABLED = process.env.OPENCODE_OPENAI_AUTH_DEBUG === "1";
42
+ const debugAuth = (...args) => {
43
+ if (!AUTH_DEBUG_ENABLED)
44
+ return;
45
+ console.debug(...args);
46
+ };
40
47
  function shouldRefreshToken(auth, skewMs) {
41
48
  return !auth.access || auth.expires <= Date.now() + Math.max(0, Math.floor(skewMs));
42
49
  }
@@ -99,11 +106,13 @@ export const OpenAIAuthPlugin = async ({ client }) => {
99
106
  },
100
107
  });
101
108
  const persistAccount = async (token) => {
109
+ debugAuth("[PersistAccount] Starting account persistence");
102
110
  const now = Date.now();
103
111
  const stored = await loadAccounts();
104
112
  const accounts = stored?.accounts ? [...stored.accounts] : [];
105
113
  const accountId = extractAccountId(token.access);
106
114
  const email = sanitizeEmail(extractAccountEmail(token.access));
115
+ debugAuth(`[PersistAccount] Account details - accountId: ${accountId}, email: ${email}, existing accounts: ${accounts.length}`);
107
116
  const matchIndex = (accountId ? accounts.findIndex((a) => a.accountId === accountId) : -1) ?? -1;
108
117
  const matchIndexByEmail = email ? accounts.findIndex((a) => a.email === email) : -1;
109
118
  const matchIndexByToken = accounts.findIndex((a) => a.refreshToken === token.refresh);
@@ -112,7 +121,9 @@ export const OpenAIAuthPlugin = async ({ client }) => {
112
121
  : matchIndexByEmail >= 0
113
122
  ? matchIndexByEmail
114
123
  : matchIndexByToken;
124
+ debugAuth(`[PersistAccount] Match indices - byId: ${matchIndex}, byEmail: ${matchIndexByEmail}, byToken: ${matchIndexByToken}, final: ${existingIndex}`);
115
125
  if (existingIndex === -1) {
126
+ debugAuth("[PersistAccount] Adding new account");
116
127
  accounts.push({
117
128
  refreshToken: token.refresh,
118
129
  accountId,
@@ -122,6 +133,7 @@ export const OpenAIAuthPlugin = async ({ client }) => {
122
133
  });
123
134
  }
124
135
  else {
136
+ debugAuth(`[PersistAccount] Updating existing account at index ${existingIndex}`);
125
137
  const existing = accounts[existingIndex];
126
138
  if (existing) {
127
139
  existing.refreshToken = token.refresh;
@@ -131,12 +143,15 @@ export const OpenAIAuthPlugin = async ({ client }) => {
131
143
  }
132
144
  }
133
145
  const activeIndex = stored?.activeIndex ?? 0;
134
- await saveAccounts({
146
+ const storageToSave = {
135
147
  version: 3,
136
148
  accounts,
137
149
  activeIndex: Math.max(0, Math.min(activeIndex, accounts.length - 1)),
138
150
  activeIndexByFamily: stored?.activeIndexByFamily ?? {},
139
- });
151
+ };
152
+ debugAuth(`[PersistAccount] Saving storage with ${accounts.length} accounts`);
153
+ await saveAccounts(storageToSave);
154
+ debugAuth("[PersistAccount] Account persistence completed");
140
155
  };
141
156
  return {
142
157
  auth: {
@@ -391,110 +406,178 @@ export const OpenAIAuthPlugin = async ({ client }) => {
391
406
  authorize: async (inputs) => {
392
407
  const pluginConfig = loadPluginConfig();
393
408
  const quietMode = getQuietMode(pluginConfig);
394
- const noBrowser = inputs?.noBrowser === "true" ||
395
- inputs?.["no-browser"] === "true" ||
396
- process.env.OPENCODE_NO_BROWSER === "1";
397
- const promptOAuthCallbackValue = async (message) => {
398
- const { createInterface } = await import("node:readline/promises");
399
- const { stdin, stdout } = await import("node:process");
400
- const rl = createInterface({ input: stdin, output: stdout });
401
- try {
402
- return (await rl.question(message)).trim();
403
- }
404
- finally {
405
- rl.close();
406
- }
407
- };
408
- const runOAuthFlow = async () => {
409
- const { pkce, state, url } = await createAuthorizationFlow();
410
- console.log("\nOAuth URL:\n" + url + "\n");
411
- if (noBrowser) {
412
- const callbackInput = await promptOAuthCallbackValue("Paste the redirect URL (or just the code) here: ");
413
- const parsed = parseAuthorizationInput(callbackInput);
414
- if (!parsed.code)
415
- return { type: "failed" };
416
- return await exchangeAuthorizationCode(parsed.code, pkce.verifier, REDIRECT_URI);
417
- }
418
- let serverInfo = null;
419
- try {
420
- serverInfo = await startLocalOAuthServer({ state });
421
- }
422
- catch {
423
- serverInfo = null;
424
- }
425
- openBrowserUrl(url);
426
- if (!serverInfo || !serverInfo.ready) {
427
- serverInfo?.close();
428
- const callbackInput = await promptOAuthCallbackValue("Paste the redirect URL (or just the code) here: ");
429
- const parsed = parseAuthorizationInput(callbackInput);
430
- if (!parsed.code)
431
- return { type: "failed" };
432
- return await exchangeAuthorizationCode(parsed.code, pkce.verifier, REDIRECT_URI);
433
- }
434
- const result = await serverInfo.waitForCode(state);
435
- serverInfo.close();
436
- if (!result)
437
- return { type: "failed" };
438
- return await exchangeAuthorizationCode(result.code, pkce.verifier, REDIRECT_URI);
439
- };
440
- const authenticated = [];
441
- let startFresh = true;
442
- const existingStorage = await loadAccounts();
443
- if (existingStorage && existingStorage.accounts.length > 0) {
444
- const existingLabels = existingStorage.accounts.map((a, index) => ({
445
- index,
446
- email: a.email,
447
- accountId: a.accountId,
448
- }));
449
- const mode = await promptLoginMode(existingLabels);
450
- startFresh = mode === "fresh";
451
- }
452
- if (startFresh) {
453
- await saveAccounts({
454
- version: 3,
455
- accounts: [],
456
- activeIndex: 0,
457
- activeIndexByFamily: {},
458
- });
459
- }
460
- while (authenticated.length < MAX_ACCOUNTS) {
461
- console.log(`\n=== OpenAI OAuth (Account ${authenticated.length + 1}) ===`);
462
- const result = await runOAuthFlow();
463
- if (result.type !== "success") {
464
- if (authenticated.length === 0) {
409
+ const isCliFlow = Boolean(inputs);
410
+ // CLI flow (`opencode auth login`) passes inputs; TUI does not.
411
+ if (isCliFlow) {
412
+ debugAuth("[OAuthAuthorize] Starting OAuth flow in CLI mode");
413
+ return await withTerminalModeRestored(async () => {
414
+ const noBrowser = inputs?.noBrowser === "true" ||
415
+ inputs?.["no-browser"] === "true" ||
416
+ process.env.OPENCODE_NO_BROWSER === "1";
417
+ const runOAuthFlow = async () => {
418
+ const { pkce, state, url } = await createAuthorizationFlow();
419
+ console.log("\nOAuth URL:\n" + url + "\n");
420
+ if (noBrowser) {
421
+ const callbackInput = await promptOAuthCallbackValue("Paste the redirect URL (or just the code) here: ");
422
+ const parsed = parseAuthorizationInput(callbackInput);
423
+ if (!parsed.code)
424
+ return { type: "failed" };
425
+ return await exchangeAuthorizationCode(parsed.code, pkce.verifier, REDIRECT_URI);
426
+ }
427
+ let serverInfo = null;
428
+ try {
429
+ serverInfo = await startLocalOAuthServer({ state });
430
+ }
431
+ catch {
432
+ serverInfo = null;
433
+ }
434
+ openBrowserUrl(url);
435
+ if (!serverInfo || !serverInfo.ready) {
436
+ serverInfo?.close();
437
+ const callbackInput = await promptOAuthCallbackValue("Paste the redirect URL (or just the code) here: ");
438
+ const parsed = parseAuthorizationInput(callbackInput);
439
+ if (!parsed.code)
440
+ return { type: "failed" };
441
+ return await exchangeAuthorizationCode(parsed.code, pkce.verifier, REDIRECT_URI);
442
+ }
443
+ const result = await serverInfo.waitForCode(state);
444
+ serverInfo.close();
445
+ if (!result)
446
+ return { type: "failed" };
447
+ return await exchangeAuthorizationCode(result.code, pkce.verifier, REDIRECT_URI);
448
+ };
449
+ const authenticated = [];
450
+ let startFresh = true;
451
+ const existingStorage = await loadAccounts();
452
+ if (existingStorage && existingStorage.accounts.length > 0) {
453
+ const existingLabels = existingStorage.accounts.map((a, index) => ({
454
+ index,
455
+ email: a.email,
456
+ accountId: a.accountId,
457
+ }));
458
+ const mode = await promptLoginMode(existingLabels);
459
+ startFresh = mode === "fresh";
460
+ }
461
+ if (startFresh) {
462
+ await saveAccounts({
463
+ version: 3,
464
+ accounts: [],
465
+ activeIndex: 0,
466
+ activeIndexByFamily: {},
467
+ });
468
+ }
469
+ while (authenticated.length < MAX_ACCOUNTS) {
470
+ console.log(`\n=== OpenAI OAuth (Account ${authenticated.length + 1}) ===`);
471
+ const result = await runOAuthFlow();
472
+ if (result.type !== "success") {
473
+ if (authenticated.length === 0) {
474
+ return {
475
+ url: "",
476
+ instructions: "Authentication failed.",
477
+ method: "auto",
478
+ callback: async () => ({ type: "failed" }),
479
+ };
480
+ }
481
+ break;
482
+ }
483
+ authenticated.push(result);
484
+ await persistAccount(result);
485
+ await showToast(`Account ${authenticated.length} authenticated`, "success", quietMode);
486
+ const currentStorage = await loadAccounts();
487
+ const count = currentStorage?.accounts.length ?? authenticated.length;
488
+ if (!(await promptAddAnotherAccount(count, MAX_ACCOUNTS)))
489
+ break;
490
+ }
491
+ const primary = authenticated[0];
492
+ if (!primary) {
465
493
  return {
466
494
  url: "",
467
- instructions: "Authentication failed.",
495
+ instructions: "Authentication cancelled",
468
496
  method: "auto",
469
497
  callback: async () => ({ type: "failed" }),
470
498
  };
471
499
  }
472
- break;
500
+ const finalStorage = await loadAccounts();
501
+ const finalCount = finalStorage?.accounts.length ?? authenticated.length;
502
+ debugAuth(`[OAuthAuthorize] OAuth flow completed with ${finalCount} accounts`);
503
+ return {
504
+ url: "",
505
+ instructions: `Multi-account setup complete (${finalCount} account(s)).\nStorage: ${getStoragePath()}`,
506
+ method: "auto",
507
+ callback: async () => primary,
508
+ };
509
+ });
510
+ }
511
+ debugAuth("[OAuthAuthorize] Starting OAuth flow in TUI mode");
512
+ const isHeadless = Boolean(process.env.SSH_CONNECTION ||
513
+ process.env.SSH_CLIENT ||
514
+ process.env.SSH_TTY ||
515
+ process.env.OPENCODE_HEADLESS);
516
+ const useManualFlow = isHeadless || process.env.OPENCODE_NO_BROWSER === "1";
517
+ const existingStorage = await loadAccounts();
518
+ const existingCount = existingStorage?.accounts.length ?? 0;
519
+ const { pkce, state, url } = await createAuthorizationFlow();
520
+ let serverInfo = null;
521
+ if (!useManualFlow) {
522
+ try {
523
+ serverInfo = await startLocalOAuthServer({ state });
524
+ }
525
+ catch {
526
+ serverInfo = null;
473
527
  }
474
- authenticated.push(result);
475
- await persistAccount(result);
476
- await showToast(`Account ${authenticated.length} authenticated`, "success", quietMode);
477
- const currentStorage = await loadAccounts();
478
- const count = currentStorage?.accounts.length ?? authenticated.length;
479
- if (!(await promptAddAnotherAccount(count, MAX_ACCOUNTS)))
480
- break;
481
528
  }
482
- const primary = authenticated[0];
483
- if (!primary) {
529
+ if (!useManualFlow) {
530
+ openBrowserUrl(url);
531
+ }
532
+ if (serverInfo && serverInfo.ready) {
484
533
  return {
485
- url: "",
486
- instructions: "Authentication cancelled",
534
+ url,
535
+ instructions: "Complete sign-in in your browser. We'll automatically detect the redirect back to localhost.",
487
536
  method: "auto",
488
- callback: async () => ({ type: "failed" }),
537
+ callback: async () => {
538
+ const result = await serverInfo.waitForCode(state);
539
+ serverInfo.close();
540
+ if (!result)
541
+ return { type: "failed" };
542
+ const tokens = await exchangeAuthorizationCode(result.code, pkce.verifier, REDIRECT_URI);
543
+ if (tokens?.type === "success") {
544
+ await persistAccount(tokens);
545
+ const email = sanitizeEmail(extractAccountEmail(tokens.access));
546
+ const newTotal = existingCount + 1;
547
+ const toastMessage = existingCount > 0
548
+ ? `Added account${email ? ` (${email})` : ""} - ${newTotal} total`
549
+ : `Authenticated${email ? ` (${email})` : ""}`;
550
+ await showToast(toastMessage, "success", quietMode);
551
+ }
552
+ return tokens?.type === "success"
553
+ ? tokens
554
+ : { type: "failed" };
555
+ },
489
556
  };
490
557
  }
491
- const finalStorage = await loadAccounts();
492
- const finalCount = finalStorage?.accounts.length ?? authenticated.length;
558
+ serverInfo?.close();
493
559
  return {
494
- url: "",
495
- instructions: `Multi-account setup complete (${finalCount} account(s)).\nStorage: ${getStoragePath()}`,
496
- method: "auto",
497
- callback: async () => primary,
560
+ url,
561
+ instructions: "Visit the URL above, complete OAuth, then paste either the full redirect URL or the authorization code.",
562
+ method: "code",
563
+ callback: async (input) => {
564
+ const parsed = parseAuthorizationInput(input);
565
+ if (!parsed.code)
566
+ return { type: "failed" };
567
+ const tokens = await exchangeAuthorizationCode(parsed.code, pkce.verifier, REDIRECT_URI);
568
+ if (tokens?.type === "success") {
569
+ await persistAccount(tokens);
570
+ const email = sanitizeEmail(extractAccountEmail(tokens.access));
571
+ const newTotal = existingCount + 1;
572
+ const toastMessage = existingCount > 0
573
+ ? `Added account${email ? ` (${email})` : ""} - ${newTotal} total`
574
+ : `Authenticated${email ? ` (${email})` : ""}`;
575
+ await showToast(toastMessage, "success", quietMode);
576
+ }
577
+ return tokens?.type === "success"
578
+ ? tokens
579
+ : { type: "failed" };
580
+ },
498
581
  };
499
582
  },
500
583
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/lib/cli.d.ts CHANGED
@@ -5,4 +5,5 @@ export interface ExistingAccountLabel {
5
5
  }
6
6
  export declare function promptLoginMode(existing: ExistingAccountLabel[]): Promise<"add" | "fresh">;
7
7
  export declare function promptAddAnotherAccount(currentCount: number, maxAccounts: number): Promise<boolean>;
8
+ export declare function promptOAuthCallbackValue(message: string): Promise<string>;
8
9
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../lib/cli.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,eAAe,CACpC,QAAQ,EAAE,oBAAoB,EAAE,GAC9B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAoB1B;AAED,wBAAsB,uBAAuB,CAC5C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAWlB"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../lib/cli.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,eAAe,CACpC,QAAQ,EAAE,oBAAoB,EAAE,GAC9B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAsB1B;AAED,wBAAsB,uBAAuB,CAC5C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAalB;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/E"}
package/dist/lib/cli.js CHANGED
@@ -1,36 +1,52 @@
1
1
  import { createInterface } from "node:readline/promises";
2
2
  import { stdin, stdout } from "node:process";
3
+ import { withTerminalModeRestored } from "./terminal.js";
3
4
  export async function promptLoginMode(existing) {
4
- const rl = createInterface({ input: stdin, output: stdout });
5
- try {
6
- const lines = [];
7
- lines.push("\nExisting accounts:\n");
8
- for (const account of existing) {
9
- const label = account.email ??
10
- (account.accountId ? `id:${account.accountId}` : "(unknown)");
11
- lines.push(` ${account.index + 1}. ${label}`);
5
+ return await withTerminalModeRestored(async () => {
6
+ const rl = createInterface({ input: stdin, output: stdout });
7
+ try {
8
+ const lines = [];
9
+ lines.push("\nExisting accounts:\n");
10
+ for (const account of existing) {
11
+ const label = account.email ??
12
+ (account.accountId ? `id:${account.accountId}` : "(unknown)");
13
+ lines.push(` ${account.index + 1}. ${label}`);
14
+ }
15
+ lines.push("");
16
+ lines.push("(a)dd new account(s) or (f)resh start? [a/f]: ");
17
+ const answer = (await rl.question(lines.join("\n"))).trim().toLowerCase();
18
+ if (answer.startsWith("f"))
19
+ return "fresh";
20
+ return "add";
12
21
  }
13
- lines.push("");
14
- lines.push("(a)dd new account(s) or (f)resh start? [a/f]: ");
15
- const answer = (await rl.question(lines.join("\n"))).trim().toLowerCase();
16
- if (answer.startsWith("f"))
17
- return "fresh";
18
- return "add";
19
- }
20
- finally {
21
- rl.close();
22
- }
22
+ finally {
23
+ rl.close();
24
+ }
25
+ });
23
26
  }
24
27
  export async function promptAddAnotherAccount(currentCount, maxAccounts) {
25
28
  if (currentCount >= maxAccounts)
26
29
  return false;
27
- const rl = createInterface({ input: stdin, output: stdout });
28
- try {
29
- const answer = await rl.question(`\nYou have ${currentCount} account(s). Add another? [y/N]: `);
30
- return answer.trim().toLowerCase().startsWith("y");
31
- }
32
- finally {
33
- rl.close();
34
- }
30
+ return await withTerminalModeRestored(async () => {
31
+ const rl = createInterface({ input: stdin, output: stdout });
32
+ try {
33
+ const answer = await rl.question(`\nYou have ${currentCount} account(s). Add another? [y/N]: `);
34
+ return answer.trim().toLowerCase().startsWith("y");
35
+ }
36
+ finally {
37
+ rl.close();
38
+ }
39
+ });
40
+ }
41
+ export async function promptOAuthCallbackValue(message) {
42
+ return await withTerminalModeRestored(async () => {
43
+ const rl = createInterface({ input: stdin, output: stdout });
44
+ try {
45
+ return (await rl.question(message)).trim();
46
+ }
47
+ finally {
48
+ rl.close();
49
+ }
50
+ });
35
51
  }
36
52
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../lib/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQ7C,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,QAAgC;IAEhC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACJ,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GACV,OAAO,CAAC,KAAK;gBACb,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1E,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;QAC3C,OAAO,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACV,EAAE,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,YAAoB,EACpB,WAAmB;IAEnB,IAAI,YAAY,IAAI,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC/B,cAAc,YAAY,mCAAmC,CAC7D,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QACV,EAAE,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../lib/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAQzD,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,QAAgC;IAEhC,OAAO,MAAM,wBAAwB,CAAC,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC;YACJ,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAChC,MAAM,KAAK,GACV,OAAO,CAAC,KAAK;oBACb,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBAC/D,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAE7D,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1E,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,OAAO,CAAC;YAC3C,OAAO,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACV,EAAE,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,YAAoB,EACpB,WAAmB;IAEnB,IAAI,YAAY,IAAI,WAAW;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,MAAM,wBAAwB,CAAC,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC/B,cAAc,YAAY,mCAAmC,CAC7D,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;gBAAS,CAAC;YACV,EAAE,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAe;IAC7D,OAAO,MAAM,wBAAwB,CAAC,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC;YACJ,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACV,EAAE,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { PluginConfig } from "./types.js";
2
2
  /**
3
- * Load plugin configuration from ~/.opencode/openai-codex-auth-config.json
3
+ * Load plugin configuration from ~/.config/opencode/openai-codex-auth-config.json
4
4
  * Falls back to defaults if file doesn't exist or is invalid
5
5
  *
6
6
  * @returns Plugin configuration
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoB/C;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAqB/C;AAuCD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,YAAY,GACnE,QAAQ,GACR,aAAa,GACb,QAAQ,CAIV;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAMvE;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAOxE;AAED,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAO9E;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAMlF;AAED,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAO/E;AAED,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAOhF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAiD/C;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAsB/C;AAuCD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,YAAY,GACnE,QAAQ,GACR,aAAa,GACb,QAAQ,CAIV;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAMvE;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAOxE;AAED,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAO9E;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAMlF;AAED,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAO/E;AAED,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAOhF"}
@@ -1,7 +1,36 @@
1
- import { readFileSync, existsSync } from "node:fs";
2
- import { join } from "node:path";
1
+ import { copyFileSync, existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
3
  import { homedir } from "node:os";
4
- const CONFIG_PATH = join(homedir(), ".opencode", "openai-codex-auth-config.json");
4
+ const CONFIG_FILE = "openai-codex-auth-config.json";
5
+ function getOpencodeConfigDir() {
6
+ const xdgConfigHome = process.env.XDG_CONFIG_HOME;
7
+ if (xdgConfigHome && xdgConfigHome.trim()) {
8
+ return join(xdgConfigHome, "opencode");
9
+ }
10
+ return join(homedir(), ".config", "opencode");
11
+ }
12
+ const CONFIG_PATH = join(getOpencodeConfigDir(), CONFIG_FILE);
13
+ const LEGACY_CONFIG_PATH = join(homedir(), ".opencode", CONFIG_FILE);
14
+ function migrateLegacyConfigIfNeeded() {
15
+ if (existsSync(CONFIG_PATH))
16
+ return;
17
+ if (!existsSync(LEGACY_CONFIG_PATH))
18
+ return;
19
+ try {
20
+ mkdirSync(dirname(CONFIG_PATH), { recursive: true });
21
+ try {
22
+ renameSync(LEGACY_CONFIG_PATH, CONFIG_PATH);
23
+ return;
24
+ }
25
+ catch {
26
+ copyFileSync(LEGACY_CONFIG_PATH, CONFIG_PATH);
27
+ unlinkSync(LEGACY_CONFIG_PATH);
28
+ }
29
+ }
30
+ catch {
31
+ // Best-effort migration; ignore.
32
+ }
33
+ }
5
34
  /**
6
35
  * Default plugin configuration
7
36
  * CODEX_MODE is enabled by default for better Codex CLI parity
@@ -18,13 +47,14 @@ const DEFAULT_CONFIG = {
18
47
  rateLimitToastDebounceMs: 60_000,
19
48
  };
20
49
  /**
21
- * Load plugin configuration from ~/.opencode/openai-codex-auth-config.json
50
+ * Load plugin configuration from ~/.config/opencode/openai-codex-auth-config.json
22
51
  * Falls back to defaults if file doesn't exist or is invalid
23
52
  *
24
53
  * @returns Plugin configuration
25
54
  */
26
55
  export function loadPluginConfig() {
27
56
  try {
57
+ migrateLegacyConfigIfNeeded();
28
58
  if (!existsSync(CONFIG_PATH)) {
29
59
  return DEFAULT_CONFIG;
30
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
@@ -548,7 +548,7 @@
548
548
  <div class="terminal-button red"></div>
549
549
  <div class="terminal-button yellow"></div>
550
550
  <div class="terminal-button green"></div>
551
- <div class="terminal-title">opencode-openai-codex-multi-auth@4.4.2 — OAuth Authentication</div>
551
+ <div class="terminal-title">opencode-openai-codex-multi-auth@4.4.6 — OAuth Authentication</div>
552
552
  </div>
553
553
 
554
554
  <div class="status-box">
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../lib/storage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA8BrE;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../lib/storage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA0BnD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAkPD,wBAAsB,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAerE;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB3E"}
@@ -2,37 +2,240 @@ import { existsSync } from "node:fs";
2
2
  import { promises as fs } from "node:fs";
3
3
  import { homedir } from "node:os";
4
4
  import { dirname, join } from "node:path";
5
- const STORAGE_DIR = join(homedir(), ".opencode");
6
5
  const STORAGE_FILE = "openai-codex-accounts.json";
6
+ const AUTH_DEBUG_ENABLED = process.env.OPENCODE_OPENAI_AUTH_DEBUG === "1";
7
+ function debug(...args) {
8
+ if (!AUTH_DEBUG_ENABLED)
9
+ return;
10
+ console.debug(...args);
11
+ }
12
+ function getOpencodeConfigDir() {
13
+ const xdgConfigHome = process.env.XDG_CONFIG_HOME;
14
+ if (xdgConfigHome && xdgConfigHome.trim()) {
15
+ return join(xdgConfigHome, "opencode");
16
+ }
17
+ return join(homedir(), ".config", "opencode");
18
+ }
19
+ function getLegacyOpencodeDir() {
20
+ return join(homedir(), ".opencode");
21
+ }
7
22
  export function getStoragePath() {
8
- return join(STORAGE_DIR, STORAGE_FILE);
23
+ return join(getOpencodeConfigDir(), STORAGE_FILE);
24
+ }
25
+ function getLegacyStoragePath() {
26
+ return join(getLegacyOpencodeDir(), STORAGE_FILE);
27
+ }
28
+ function normalizeStorage(parsed) {
29
+ if (!parsed || typeof parsed !== "object")
30
+ return null;
31
+ const storage = parsed;
32
+ if (storage.version !== 3)
33
+ return null;
34
+ if (!Array.isArray(storage.accounts))
35
+ return null;
36
+ const activeIndex = typeof storage.activeIndex === "number" && Number.isFinite(storage.activeIndex)
37
+ ? Math.max(0, Math.floor(storage.activeIndex))
38
+ : 0;
39
+ const clampedActiveIndex = storage.accounts.length > 0
40
+ ? Math.min(activeIndex, storage.accounts.length - 1)
41
+ : 0;
42
+ return {
43
+ version: 3,
44
+ accounts: storage.accounts,
45
+ activeIndex: clampedActiveIndex,
46
+ activeIndexByFamily: storage.activeIndexByFamily ?? {},
47
+ };
48
+ }
49
+ function areRateLimitStatesEqual(left, right) {
50
+ const leftKeys = Object.keys(left);
51
+ const rightKeys = Object.keys(right);
52
+ if (leftKeys.length !== rightKeys.length)
53
+ return false;
54
+ for (const key of leftKeys) {
55
+ if (left[key] !== right[key])
56
+ return false;
57
+ }
58
+ return true;
59
+ }
60
+ function findAccountMatchIndex(accounts, candidate) {
61
+ if (candidate.accountId) {
62
+ const matchIndex = accounts.findIndex((account) => account.accountId === candidate.accountId);
63
+ if (matchIndex >= 0)
64
+ return matchIndex;
65
+ }
66
+ if (candidate.email) {
67
+ const matchIndex = accounts.findIndex((account) => account.email === candidate.email);
68
+ if (matchIndex >= 0)
69
+ return matchIndex;
70
+ }
71
+ if (candidate.refreshToken) {
72
+ return accounts.findIndex((account) => account.refreshToken === candidate.refreshToken);
73
+ }
74
+ return -1;
75
+ }
76
+ function mergeAccounts(existing, incoming) {
77
+ const merged = existing.map((account) => ({ ...account }));
78
+ let changed = false;
79
+ for (const candidate of incoming) {
80
+ const matchIndex = findAccountMatchIndex(merged, candidate);
81
+ if (matchIndex < 0) {
82
+ merged.push({ ...candidate });
83
+ changed = true;
84
+ continue;
85
+ }
86
+ const current = merged[matchIndex];
87
+ const updated = { ...current };
88
+ let didUpdate = false;
89
+ if (!updated.refreshToken && candidate.refreshToken) {
90
+ updated.refreshToken = candidate.refreshToken;
91
+ didUpdate = true;
92
+ }
93
+ if (!updated.accountId && candidate.accountId) {
94
+ updated.accountId = candidate.accountId;
95
+ didUpdate = true;
96
+ }
97
+ if (!updated.email && candidate.email) {
98
+ updated.email = candidate.email;
99
+ didUpdate = true;
100
+ }
101
+ const candidateAddedAt = typeof candidate.addedAt === "number" && Number.isFinite(candidate.addedAt)
102
+ ? candidate.addedAt
103
+ : undefined;
104
+ const currentAddedAt = typeof updated.addedAt === "number" && Number.isFinite(updated.addedAt)
105
+ ? updated.addedAt
106
+ : undefined;
107
+ if (typeof candidateAddedAt === "number" &&
108
+ (typeof currentAddedAt !== "number" || candidateAddedAt < currentAddedAt)) {
109
+ updated.addedAt = candidateAddedAt;
110
+ didUpdate = true;
111
+ }
112
+ const candidateLastUsed = typeof candidate.lastUsed === "number" && Number.isFinite(candidate.lastUsed)
113
+ ? candidate.lastUsed
114
+ : undefined;
115
+ const currentLastUsed = typeof updated.lastUsed === "number" && Number.isFinite(updated.lastUsed)
116
+ ? updated.lastUsed
117
+ : undefined;
118
+ if (typeof candidateLastUsed === "number" &&
119
+ (typeof currentLastUsed !== "number" || candidateLastUsed > currentLastUsed)) {
120
+ updated.lastUsed = candidateLastUsed;
121
+ didUpdate = true;
122
+ }
123
+ if (candidate.lastSwitchReason && !updated.lastSwitchReason) {
124
+ updated.lastSwitchReason = candidate.lastSwitchReason;
125
+ didUpdate = true;
126
+ }
127
+ if (candidate.rateLimitResetTimes) {
128
+ const mergedRateLimits = {
129
+ ...candidate.rateLimitResetTimes,
130
+ ...updated.rateLimitResetTimes,
131
+ };
132
+ const currentRateLimits = updated.rateLimitResetTimes ?? {};
133
+ if (!areRateLimitStatesEqual(currentRateLimits, mergedRateLimits)) {
134
+ updated.rateLimitResetTimes = mergedRateLimits;
135
+ didUpdate = true;
136
+ }
137
+ }
138
+ if (typeof candidate.coolingDownUntil === "number") {
139
+ const currentCooldown = typeof updated.coolingDownUntil === "number" &&
140
+ Number.isFinite(updated.coolingDownUntil)
141
+ ? updated.coolingDownUntil
142
+ : undefined;
143
+ if (typeof currentCooldown !== "number" ||
144
+ candidate.coolingDownUntil > currentCooldown) {
145
+ updated.coolingDownUntil = candidate.coolingDownUntil;
146
+ didUpdate = true;
147
+ }
148
+ }
149
+ if (candidate.cooldownReason && !updated.cooldownReason) {
150
+ updated.cooldownReason = candidate.cooldownReason;
151
+ didUpdate = true;
152
+ }
153
+ if (didUpdate) {
154
+ merged[matchIndex] = updated;
155
+ changed = true;
156
+ }
157
+ }
158
+ return { accounts: merged, changed };
159
+ }
160
+ async function migrateLegacyAccountsFileIfNeeded() {
161
+ const newPath = getStoragePath();
162
+ const legacyPath = getLegacyStoragePath();
163
+ const newExists = existsSync(newPath);
164
+ const legacyExists = existsSync(legacyPath);
165
+ if (!legacyExists)
166
+ return;
167
+ if (!newExists) {
168
+ await fs.mkdir(dirname(newPath), { recursive: true });
169
+ try {
170
+ await fs.rename(legacyPath, newPath);
171
+ }
172
+ catch {
173
+ try {
174
+ await fs.copyFile(legacyPath, newPath);
175
+ await fs.unlink(legacyPath);
176
+ }
177
+ catch {
178
+ // Best-effort; ignore.
179
+ }
180
+ }
181
+ return;
182
+ }
183
+ try {
184
+ const [newRaw, legacyRaw] = await Promise.all([
185
+ fs.readFile(newPath, "utf-8"),
186
+ fs.readFile(legacyPath, "utf-8"),
187
+ ]);
188
+ const newStorage = normalizeStorage(JSON.parse(newRaw));
189
+ const legacyStorage = normalizeStorage(JSON.parse(legacyRaw));
190
+ if (!legacyStorage || legacyStorage.accounts.length === 0)
191
+ return;
192
+ if (!newStorage) {
193
+ debug("[StorageMigration] New storage invalid, adopting legacy accounts");
194
+ await fs.writeFile(newPath, JSON.stringify(legacyStorage, null, 2), "utf-8");
195
+ return;
196
+ }
197
+ const { accounts: mergedAccounts, changed } = mergeAccounts(newStorage.accounts, legacyStorage.accounts);
198
+ if (!changed)
199
+ return;
200
+ const baseActiveIndex = newStorage.accounts.length > 0 ? newStorage.activeIndex : legacyStorage.activeIndex;
201
+ const activeIndex = mergedAccounts.length > 0
202
+ ? Math.min(Math.max(0, baseActiveIndex), mergedAccounts.length - 1)
203
+ : 0;
204
+ const activeIndexByFamily = {
205
+ ...legacyStorage.activeIndexByFamily,
206
+ ...newStorage.activeIndexByFamily,
207
+ };
208
+ const mergedStorage = {
209
+ version: 3,
210
+ accounts: mergedAccounts,
211
+ activeIndex,
212
+ activeIndexByFamily,
213
+ };
214
+ debug(`[StorageMigration] Merged legacy accounts (new: ${newStorage.accounts.length}, legacy: ${legacyStorage.accounts.length}, merged: ${mergedAccounts.length})`);
215
+ await fs.writeFile(newPath, JSON.stringify(mergedStorage, null, 2), "utf-8");
216
+ try {
217
+ await fs.unlink(legacyPath);
218
+ }
219
+ catch {
220
+ // Best-effort; ignore.
221
+ }
222
+ }
223
+ catch {
224
+ // Best-effort; ignore.
225
+ }
9
226
  }
10
227
  export async function loadAccounts() {
228
+ await migrateLegacyAccountsFileIfNeeded();
11
229
  const filePath = getStoragePath();
230
+ debug(`[LoadAccounts] Loading from: ${filePath}`);
12
231
  try {
13
- if (!existsSync(filePath))
232
+ if (!existsSync(filePath)) {
233
+ debug(`[LoadAccounts] File does not exist: ${filePath}`);
14
234
  return null;
235
+ }
15
236
  const raw = await fs.readFile(filePath, "utf-8");
16
237
  const parsed = JSON.parse(raw);
17
- if (!parsed || typeof parsed !== "object")
18
- return null;
19
- const storage = parsed;
20
- if (storage.version !== 3)
21
- return null;
22
- if (!Array.isArray(storage.accounts))
23
- return null;
24
- const activeIndex = typeof storage.activeIndex === "number" && Number.isFinite(storage.activeIndex)
25
- ? Math.max(0, Math.floor(storage.activeIndex))
26
- : 0;
27
- const clampedActiveIndex = storage.accounts.length > 0
28
- ? Math.min(activeIndex, storage.accounts.length - 1)
29
- : 0;
30
- return {
31
- version: 3,
32
- accounts: storage.accounts,
33
- activeIndex: clampedActiveIndex,
34
- activeIndexByFamily: storage.activeIndexByFamily ?? {},
35
- };
238
+ return normalizeStorage(parsed);
36
239
  }
37
240
  catch {
38
241
  return null;
@@ -40,7 +243,26 @@ export async function loadAccounts() {
40
243
  }
41
244
  export async function saveAccounts(storage) {
42
245
  const filePath = getStoragePath();
43
- await fs.mkdir(dirname(filePath), { recursive: true });
44
- await fs.writeFile(filePath, JSON.stringify(storage, null, 2), "utf-8");
246
+ debug(`[SaveAccounts] Saving to ${filePath} with ${storage.accounts.length} accounts`);
247
+ try {
248
+ await fs.mkdir(dirname(filePath), { recursive: true });
249
+ const jsonContent = JSON.stringify(storage, null, 2);
250
+ debug(`[SaveAccounts] Writing ${jsonContent.length} bytes`);
251
+ await fs.writeFile(filePath, jsonContent, "utf-8");
252
+ if (AUTH_DEBUG_ENABLED) {
253
+ const verifyContent = await fs.readFile(filePath, "utf-8");
254
+ const verifyStorage = normalizeStorage(JSON.parse(verifyContent));
255
+ if (verifyStorage) {
256
+ debug(`[SaveAccounts] Verification successful - ${verifyStorage.accounts.length} accounts in file`);
257
+ }
258
+ else {
259
+ debug("[SaveAccounts] Verification failed - invalid storage format");
260
+ }
261
+ }
262
+ }
263
+ catch (error) {
264
+ console.error("[SaveAccounts] Error saving accounts:", error);
265
+ throw error;
266
+ }
45
267
  }
46
268
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../lib/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAI1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AACjD,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAElD,MAAM,UAAU,cAAc;IAC7B,OAAO,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IACjC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,CAAC;QACJ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAE1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACvD,MAAM,OAAO,GAAG,MAAmC,CAAC;QACpD,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,WAAW,GAChB,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;YAC9E,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,kBAAkB,GACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC,CAAC;QAEN,OAAO;YACN,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,OAAO,CAAC,QAAwC;YAC1D,WAAW,EAAE,kBAAkB;YAC/B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,EAAE;SACtD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC3D,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../lib/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Run an interactive prompt without breaking OpenCode's TUI.
3
+ *
4
+ * OpenCode enables raw mode and mouse tracking for its UI. Node's readline can
5
+ * toggle raw mode on close, which can leave mouse tracking enabled but raw mode
6
+ * disabled — causing mouse movements to appear as garbage input (e.g. "M2^J").
7
+ */
8
+ export declare function withTerminalModeRestored<T>(fn: () => Promise<T>): Promise<T>;
9
+ //# sourceMappingURL=terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../lib/terminal.ts"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA8BlF"}
@@ -0,0 +1,56 @@
1
+ import { stdin as input, stdout as output } from "node:process";
2
+ const AUTH_DEBUG_ENABLED = process.env.OPENCODE_OPENAI_AUTH_DEBUG === "1";
3
+ function debug(...args) {
4
+ if (!AUTH_DEBUG_ENABLED)
5
+ return;
6
+ console.debug(...args);
7
+ }
8
+ function disableMouseTracking() {
9
+ if (!output.isTTY)
10
+ return;
11
+ // Disable common xterm mouse tracking modes.
12
+ output.write("\x1b[?1000l\x1b[?1002l\x1b[?1003l\x1b[?1006l");
13
+ }
14
+ function enableMouseTracking() {
15
+ if (!output.isTTY)
16
+ return;
17
+ output.write("\x1b[?1000h\x1b[?1002h\x1b[?1003h\x1b[?1006h");
18
+ }
19
+ /**
20
+ * Run an interactive prompt without breaking OpenCode's TUI.
21
+ *
22
+ * OpenCode enables raw mode and mouse tracking for its UI. Node's readline can
23
+ * toggle raw mode on close, which can leave mouse tracking enabled but raw mode
24
+ * disabled — causing mouse movements to appear as garbage input (e.g. "M2^J").
25
+ */
26
+ export async function withTerminalModeRestored(fn) {
27
+ if (!input.isTTY) {
28
+ debug("[TerminalGuard] No TTY detected, skipping terminal guard");
29
+ return await fn();
30
+ }
31
+ const wasRaw = input.isRaw;
32
+ debug(`[TerminalGuard] Starting guard - wasRaw: ${wasRaw}, isTTY: ${input.isTTY}`);
33
+ try {
34
+ debug("[TerminalGuard] Disabling mouse tracking");
35
+ disableMouseTracking();
36
+ // Ensure we can accept normal line input during prompts.
37
+ if (typeof input.setRawMode === "function") {
38
+ debug("[TerminalGuard] Setting raw mode to false");
39
+ input.setRawMode(false);
40
+ }
41
+ return await fn();
42
+ }
43
+ finally {
44
+ debug(`[TerminalGuard] Restoring terminal state - wasRaw: ${wasRaw}`);
45
+ if (typeof wasRaw === "boolean" && typeof input.setRawMode === "function") {
46
+ input.setRawMode(wasRaw);
47
+ }
48
+ // If OpenCode was previously in raw mode, re-enable mouse tracking so the UI
49
+ // doesn't get stuck in a non-mouse state.
50
+ if (wasRaw) {
51
+ debug("[TerminalGuard] Re-enabling mouse tracking");
52
+ enableMouseTracking();
53
+ }
54
+ }
55
+ }
56
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../lib/terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,GAAG,CAAC;AAE1E,SAAS,KAAK,CAAC,GAAG,IAAe;IAChC,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAChC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,oBAAoB;IAC5B,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAC1B,6CAA6C;IAC7C,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,mBAAmB;IAC3B,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAC1B,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAI,EAAoB;IACrE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAClE,OAAO,MAAM,EAAE,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAI,KAAwC,CAAC,KAAK,CAAC;IAC/D,KAAK,CAAC,4CAA4C,MAAM,YAAY,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAEnF,IAAI,CAAC;QACJ,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClD,oBAAoB,EAAE,CAAC;QACvB,yDAAyD;QACzD,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC5C,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACnD,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,MAAM,EAAE,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACV,KAAK,CAAC,sDAAsD,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,OAAO,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC3E,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,6EAA6E;QAC7E,0CAA0C;QAC1C,IAAI,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACpD,mBAAmB,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { Auth, Provider, Model } from "@opencode-ai/sdk";
2
2
  /**
3
- * Plugin configuration from ~/.opencode/openai-codex-auth-config.json
3
+ * Plugin configuration from ~/.config/opencode/openai-codex-auth-config.json
4
4
  */
5
5
  export interface PluginConfig {
6
6
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-openai-codex-multi-auth",
3
- "version": "4.4.2",
3
+ "version": "4.4.6",
4
4
  "description": "OpenAI ChatGPT (Codex backend) OAuth auth plugin for opencode - use your ChatGPT Plus/Pro subscription instead of API credits",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -49,7 +49,8 @@
49
49
  "config/",
50
50
  "scripts/",
51
51
  "README.md",
52
- "LICENSE"
52
+ "LICENSE",
53
+ "THIRD_PARTY_NOTICES.md"
53
54
  ],
54
55
  "engines": {
55
56
  "node": ">=20.0.0"
@@ -61,11 +61,10 @@ const cacheNodeModulesLegacyGitHub = join(cacheDir, "node_modules", LEGACY_GITHU
61
61
  const cacheBunLock = join(cacheDir, "bun.lock");
62
62
  const cachePackageJson = join(cacheDir, "package.json");
63
63
  const opencodeAuthPath = join(homedir(), ".opencode", "auth", "openai.json");
64
- const pluginConfigPath = join(
65
- homedir(),
66
- ".opencode",
67
- "openai-codex-auth-config.json",
68
- );
64
+ const pluginConfigPath = join(configDir, "openai-codex-auth-config.json");
65
+ const legacyPluginConfigPath = join(homedir(), ".opencode", "openai-codex-auth-config.json");
66
+ const legacyAccountsPath = join(homedir(), ".opencode", "openai-codex-accounts.json");
67
+ const accountsPath = join(configDir, "openai-codex-accounts.json");
69
68
  const pluginLogDir = join(homedir(), ".opencode", "logs", "codex-plugin");
70
69
  const opencodeCacheDir = join(homedir(), ".opencode", "cache");
71
70
 
@@ -272,10 +271,16 @@ async function clearPluginArtifacts() {
272
271
  if (dryRun) {
273
272
  log(`[dry-run] Would remove ${opencodeAuthPath}`);
274
273
  log(`[dry-run] Would remove ${pluginConfigPath}`);
274
+ log(`[dry-run] Would remove ${legacyPluginConfigPath}`);
275
+ log(`[dry-run] Would remove ${accountsPath}`);
276
+ log(`[dry-run] Would remove ${legacyAccountsPath}`);
275
277
  log(`[dry-run] Would remove ${pluginLogDir}`);
276
278
  } else {
277
279
  await rm(opencodeAuthPath, { force: true });
278
280
  await rm(pluginConfigPath, { force: true });
281
+ await rm(legacyPluginConfigPath, { force: true });
282
+ await rm(accountsPath, { force: true });
283
+ await rm(legacyAccountsPath, { force: true });
279
284
  await rm(pluginLogDir, { recursive: true, force: true });
280
285
  }
281
286