codex-multi-auth 1.2.2 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +3 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +36 -13
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/accounts.d.ts +1 -0
  6. package/dist/lib/accounts.d.ts.map +1 -1
  7. package/dist/lib/accounts.js +11 -4
  8. package/dist/lib/accounts.js.map +1 -1
  9. package/dist/lib/codex-manager/commands/report.d.ts +2 -1
  10. package/dist/lib/codex-manager/commands/report.d.ts.map +1 -1
  11. package/dist/lib/codex-manager/commands/report.js +54 -49
  12. package/dist/lib/codex-manager/commands/report.js.map +1 -1
  13. package/dist/lib/codex-manager.d.ts.map +1 -1
  14. package/dist/lib/codex-manager.js +48 -40
  15. package/dist/lib/codex-manager.js.map +1 -1
  16. package/dist/lib/config.d.ts.map +1 -1
  17. package/dist/lib/config.js +172 -17
  18. package/dist/lib/config.js.map +1 -1
  19. package/dist/lib/forecast.d.ts.map +1 -1
  20. package/dist/lib/forecast.js +1 -19
  21. package/dist/lib/forecast.js.map +1 -1
  22. package/dist/lib/preemptive-quota-scheduler.d.ts.map +1 -1
  23. package/dist/lib/preemptive-quota-scheduler.js +6 -3
  24. package/dist/lib/preemptive-quota-scheduler.js.map +1 -1
  25. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  26. package/dist/lib/request/fetch-helpers.js +116 -30
  27. package/dist/lib/request/fetch-helpers.js.map +1 -1
  28. package/dist/lib/runtime/account-check.d.ts +4 -0
  29. package/dist/lib/runtime/account-check.d.ts.map +1 -1
  30. package/dist/lib/runtime/account-check.js +15 -10
  31. package/dist/lib/runtime/account-check.js.map +1 -1
  32. package/dist/lib/runtime/account-state.d.ts +1 -12
  33. package/dist/lib/runtime/account-state.d.ts.map +1 -1
  34. package/dist/lib/runtime/account-state.js +1 -37
  35. package/dist/lib/runtime/account-state.js.map +1 -1
  36. package/dist/lib/runtime/verify-flagged.d.ts +4 -0
  37. package/dist/lib/runtime/verify-flagged.d.ts.map +1 -1
  38. package/dist/lib/runtime/verify-flagged.js +32 -23
  39. package/dist/lib/runtime/verify-flagged.js.map +1 -1
  40. package/dist/lib/storage/flagged-load-entry.d.ts +2 -0
  41. package/dist/lib/storage/flagged-load-entry.d.ts.map +1 -1
  42. package/dist/lib/storage/flagged-load-entry.js +1 -0
  43. package/dist/lib/storage/flagged-load-entry.js.map +1 -1
  44. package/dist/lib/storage/flagged-storage-file.d.ts +4 -0
  45. package/dist/lib/storage/flagged-storage-file.d.ts.map +1 -1
  46. package/dist/lib/storage/flagged-storage-file.js +1 -1
  47. package/dist/lib/storage/flagged-storage-file.js.map +1 -1
  48. package/dist/lib/storage/flagged-storage-io.d.ts +1 -0
  49. package/dist/lib/storage/flagged-storage-io.d.ts.map +1 -1
  50. package/dist/lib/storage/flagged-storage-io.js +130 -5
  51. package/dist/lib/storage/flagged-storage-io.js.map +1 -1
  52. package/dist/lib/storage/path-state.d.ts +1 -0
  53. package/dist/lib/storage/path-state.d.ts.map +1 -1
  54. package/dist/lib/storage/path-state.js +3 -0
  55. package/dist/lib/storage/path-state.js.map +1 -1
  56. package/dist/lib/storage/paths.d.ts.map +1 -1
  57. package/dist/lib/storage/paths.js +3 -2
  58. package/dist/lib/storage/paths.js.map +1 -1
  59. package/dist/lib/storage.d.ts.map +1 -1
  60. package/dist/lib/storage.js +7 -0
  61. package/dist/lib/storage.js.map +1 -1
  62. package/dist/lib/unified-settings.d.ts.map +1 -1
  63. package/dist/lib/unified-settings.js +226 -28
  64. package/dist/lib/unified-settings.js.map +1 -1
  65. package/package.json +8 -3
  66. package/scripts/codex-bin-resolver.js +99 -0
  67. package/scripts/codex.js +709 -81
@@ -0,0 +1,99 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { createRequire } from "node:module";
4
+ import { dirname, join } from "node:path";
5
+ import process from "node:process";
6
+ import { fileURLToPath } from "node:url";
7
+
8
+ function defaultResolvePackageBin(moduleUrl) {
9
+ try {
10
+ const require = createRequire(moduleUrl);
11
+ return require.resolve("@openai/codex/bin/codex.js");
12
+ } catch {
13
+ return null;
14
+ }
15
+ }
16
+
17
+ function resolveWindowsCmdPath(env) {
18
+ const comSpec = (env.ComSpec ?? env.COMSPEC ?? "").trim();
19
+ if (comSpec.length > 0) return comSpec;
20
+
21
+ const systemRoot = (env.SystemRoot ?? env.SYSTEMROOT ?? "").trim();
22
+ if (systemRoot.length > 0) {
23
+ return `${systemRoot.replace(/[\\/]+$/, "")}\\System32\\cmd.exe`;
24
+ }
25
+
26
+ return "cmd.exe";
27
+ }
28
+
29
+ export function resolveRealCodexBin(options = {}) {
30
+ const {
31
+ env = process.env,
32
+ argv = process.argv,
33
+ platform = process.platform,
34
+ moduleUrl = import.meta.url,
35
+ existsSyncImpl = existsSync,
36
+ spawnSyncImpl = spawnSync,
37
+ resolvePackageBin = defaultResolvePackageBin,
38
+ } = options;
39
+
40
+ const override = (env.CODEX_MULTI_AUTH_REAL_CODEX_BIN ?? "").trim();
41
+ if (override.length > 0) {
42
+ if (existsSyncImpl(override)) return override;
43
+ return null;
44
+ }
45
+
46
+ const resolved = resolvePackageBin(moduleUrl);
47
+ if (typeof resolved === "string" && resolved.length > 0 && existsSyncImpl(resolved)) {
48
+ return resolved;
49
+ }
50
+
51
+ const searchRoots = [];
52
+ const scriptDir = dirname(fileURLToPath(moduleUrl));
53
+ searchRoots.push(join(scriptDir, "..", ".."));
54
+
55
+ const invokedScript = argv[1];
56
+ if (typeof invokedScript === "string" && invokedScript.length > 0) {
57
+ searchRoots.push(join(dirname(invokedScript), "..", ".."));
58
+ }
59
+
60
+ const npmPrefix = (env.npm_config_prefix ?? env.PREFIX ?? "").trim();
61
+ if (npmPrefix.length > 0) {
62
+ searchRoots.push(join(npmPrefix, "node_modules"));
63
+ searchRoots.push(join(npmPrefix, "lib", "node_modules"));
64
+ }
65
+
66
+ for (const root of searchRoots) {
67
+ const candidate = join(root, "@openai", "codex", "bin", "codex.js");
68
+ if (existsSyncImpl(candidate)) return candidate;
69
+ }
70
+
71
+ try {
72
+ const rootResult =
73
+ platform === "win32"
74
+ ? spawnSyncImpl(resolveWindowsCmdPath(env), ["/d", "/s", "/c", "npm root -g"], {
75
+ encoding: "utf8",
76
+ env,
77
+ stdio: ["ignore", "pipe", "ignore"],
78
+ timeout: 5000,
79
+ windowsHide: true,
80
+ })
81
+ : spawnSyncImpl("npm", ["root", "-g"], {
82
+ encoding: "utf8",
83
+ env,
84
+ stdio: ["ignore", "pipe", "ignore"],
85
+ timeout: 5000,
86
+ });
87
+ if (rootResult.status === 0) {
88
+ const globalRoot = rootResult.stdout.trim();
89
+ if (globalRoot.length > 0) {
90
+ const globalBin = join(globalRoot, "@openai", "codex", "bin", "codex.js");
91
+ if (existsSyncImpl(globalBin)) return globalBin;
92
+ }
93
+ }
94
+ } catch {
95
+ // Ignore and fall through to null.
96
+ }
97
+
98
+ return null;
99
+ }