codex-multi-auth 2.23.0 → 2.24.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.
Files changed (84) hide show
  1. package/.codex-plugin/plugin.json +9 -9
  2. package/LICENSE +21 -21
  3. package/README.md +159 -152
  4. package/assets/codex-multi-auth-icon.svg +39 -39
  5. package/assets/readme-hero.svg +31 -31
  6. package/config/README.md +31 -31
  7. package/config/codex-legacy.json +1021 -1021
  8. package/config/codex-modern.json +347 -347
  9. package/config/minimal-codex.json +15 -15
  10. package/dist/index.js +33 -10
  11. package/dist/lib/account-policy.d.ts +2 -0
  12. package/dist/lib/account-policy.js +3 -1
  13. package/dist/lib/accounts/rate-limits.d.ts +6 -0
  14. package/dist/lib/accounts/rate-limits.js +14 -1
  15. package/dist/lib/accounts.d.ts +6 -1
  16. package/dist/lib/accounts.js +33 -8
  17. package/dist/lib/auth/token-utils.d.ts +5 -0
  18. package/dist/lib/auth/token-utils.js +10 -0
  19. package/dist/lib/codex-manager/commands/account.js +15 -0
  20. package/dist/lib/codex-manager/commands/resets.js +18 -5
  21. package/dist/lib/codex-manager/commands/workspace.d.ts +4 -2
  22. package/dist/lib/codex-manager/commands/workspace.js +33 -2
  23. package/dist/lib/codex-manager/help.js +2 -2
  24. package/dist/lib/codex-manager.js +14 -1
  25. package/dist/lib/constants.d.ts +2 -0
  26. package/dist/lib/constants.js +2 -0
  27. package/dist/lib/context-budget-response.js +8 -8
  28. package/dist/lib/context-overflow.js +10 -10
  29. package/dist/lib/oauth-success.html +125 -125
  30. package/dist/lib/policy/runtime-policy-cache.js +1 -1
  31. package/dist/lib/policy/runtime-policy.d.ts +1 -0
  32. package/dist/lib/policy/runtime-policy.js +4 -0
  33. package/dist/lib/preemptive-quota-scheduler.js +12 -3
  34. package/dist/lib/prompts/codex-host-bridge.js +138 -138
  35. package/dist/lib/prompts/codex.js +79 -79
  36. package/dist/lib/quota-cache.d.ts +4 -0
  37. package/dist/lib/quota-readiness.d.ts +1 -1
  38. package/dist/lib/quota-readiness.js +9 -2
  39. package/dist/lib/request/rate-limit-decision.js +1 -1
  40. package/dist/lib/runtime/account-reset-credits.d.ts +11 -2
  41. package/dist/lib/runtime/account-reset-credits.js +35 -12
  42. package/dist/lib/runtime/automatic-account-checks.js +6 -5
  43. package/dist/lib/runtime/automatic-subscription-checks.js +4 -3
  44. package/dist/lib/runtime/model-discovery-status.js +2 -2
  45. package/dist/lib/runtime/reset-credit-routing.d.ts +11 -3
  46. package/dist/lib/runtime/reset-credit-routing.js +66 -21
  47. package/dist/lib/runtime/reset-credits.d.ts +31 -7
  48. package/dist/lib/runtime/reset-credits.js +135 -28
  49. package/dist/lib/runtime/rotation-proxy-state.d.ts +3 -0
  50. package/dist/lib/runtime/subscription-quota-order.d.ts +1 -0
  51. package/dist/lib/runtime/subscription-quota-order.js +7 -3
  52. package/dist/lib/runtime/workspace-model-scopes.d.ts +2 -0
  53. package/dist/lib/runtime/workspace-model-scopes.js +14 -4
  54. package/dist/lib/runtime-rotation-proxy.js +108 -29
  55. package/dist/lib/storage/snapshot-merge.js +15 -4
  56. package/dist/lib/web-dashboard-html.js +53 -53
  57. package/node_modules/@codex-ai/plugin/dist/index.d.ts +2 -2
  58. package/node_modules/@codex-ai/plugin/dist/index.js +2 -2
  59. package/node_modules/@codex-ai/plugin/dist/tool.d.ts +42 -42
  60. package/node_modules/@codex-ai/plugin/dist/tool.js +29 -29
  61. package/node_modules/@codex-ai/plugin/package.json +9 -9
  62. package/node_modules/@codex-ai/sdk/dist/index.d.ts +4 -4
  63. package/node_modules/@codex-ai/sdk/dist/index.js +2 -2
  64. package/node_modules/@codex-ai/sdk/package.json +8 -8
  65. package/package.json +209 -209
  66. package/scripts/codex-app-launcher.js +653 -653
  67. package/scripts/codex-app-router.js +446 -446
  68. package/scripts/codex-bin-resolver.js +332 -332
  69. package/scripts/codex-multi-auth.js +65 -65
  70. package/scripts/codex-routing.js +63 -63
  71. package/scripts/codex.js +7143 -7143
  72. package/scripts/install-codex-auth-utils.js +213 -213
  73. package/scripts/mcodex.js +367 -367
  74. package/scripts/postinstall.js +114 -114
  75. package/scripts/preuninstall.js +265 -265
  76. package/skills/codex-auth-setup/SKILL.md +73 -73
  77. package/vendor/codex-ai-plugin/dist/index.d.ts +2 -2
  78. package/vendor/codex-ai-plugin/dist/index.js +2 -2
  79. package/vendor/codex-ai-plugin/dist/tool.d.ts +42 -42
  80. package/vendor/codex-ai-plugin/dist/tool.js +29 -29
  81. package/vendor/codex-ai-plugin/package.json +9 -9
  82. package/vendor/codex-ai-sdk/dist/index.d.ts +4 -4
  83. package/vendor/codex-ai-sdk/dist/index.js +2 -2
  84. package/vendor/codex-ai-sdk/package.json +8 -8
@@ -1,42 +1,42 @@
1
- export interface ToolContext {
2
- [key: string]: any;
3
- directory: string;
4
- worktree: string;
5
- ask: (request: any) => Promise<any> | any;
6
- }
7
-
8
- export interface ToolDefinition<TArgs = any, TResult = any> {
9
- description?: string;
10
- args?: Record<string, any>;
11
- parameters?: unknown;
12
- execute: (args: TArgs, context: ToolContext) => Promise<TResult> | TResult;
13
- [key: string]: any;
14
- }
15
-
16
- export interface SchemaNode {
17
- optional: () => SchemaNode;
18
- describe: (_text: string) => SchemaNode;
19
- min: (_value: number) => SchemaNode;
20
- max: (_value: number) => SchemaNode;
21
- default: (_value: unknown) => SchemaNode;
22
- int: () => SchemaNode;
23
- array: (_node?: unknown) => SchemaNode;
24
- [key: string]: any;
25
- }
26
-
27
- export interface ToolFactory {
28
- <TArgs = any, TResult = any>(definition: ToolDefinition<TArgs, TResult>): ToolDefinition<TArgs, TResult>;
29
- schema: {
30
- string: () => SchemaNode;
31
- number: () => SchemaNode;
32
- boolean: () => SchemaNode;
33
- object: (shape: Record<string, unknown>) => SchemaNode;
34
- enum: (values: readonly unknown[]) => SchemaNode;
35
- literal: (value: unknown) => SchemaNode;
36
- array: (node: unknown) => SchemaNode;
37
- any: () => SchemaNode;
38
- unknown: () => SchemaNode;
39
- };
40
- }
41
-
42
- export declare const tool: ToolFactory;
1
+ export interface ToolContext {
2
+ [key: string]: any;
3
+ directory: string;
4
+ worktree: string;
5
+ ask: (request: any) => Promise<any> | any;
6
+ }
7
+
8
+ export interface ToolDefinition<TArgs = any, TResult = any> {
9
+ description?: string;
10
+ args?: Record<string, any>;
11
+ parameters?: unknown;
12
+ execute: (args: TArgs, context: ToolContext) => Promise<TResult> | TResult;
13
+ [key: string]: any;
14
+ }
15
+
16
+ export interface SchemaNode {
17
+ optional: () => SchemaNode;
18
+ describe: (_text: string) => SchemaNode;
19
+ min: (_value: number) => SchemaNode;
20
+ max: (_value: number) => SchemaNode;
21
+ default: (_value: unknown) => SchemaNode;
22
+ int: () => SchemaNode;
23
+ array: (_node?: unknown) => SchemaNode;
24
+ [key: string]: any;
25
+ }
26
+
27
+ export interface ToolFactory {
28
+ <TArgs = any, TResult = any>(definition: ToolDefinition<TArgs, TResult>): ToolDefinition<TArgs, TResult>;
29
+ schema: {
30
+ string: () => SchemaNode;
31
+ number: () => SchemaNode;
32
+ boolean: () => SchemaNode;
33
+ object: (shape: Record<string, unknown>) => SchemaNode;
34
+ enum: (values: readonly unknown[]) => SchemaNode;
35
+ literal: (value: unknown) => SchemaNode;
36
+ array: (node: unknown) => SchemaNode;
37
+ any: () => SchemaNode;
38
+ unknown: () => SchemaNode;
39
+ };
40
+ }
41
+
42
+ export declare const tool: ToolFactory;
@@ -1,29 +1,29 @@
1
- const chain = {
2
- optional() { return this; },
3
- describe() { return this; },
4
- min() { return this; },
5
- max() { return this; },
6
- default() { return this; },
7
- int() { return this; },
8
- array() { return this; },
9
- };
10
-
11
- function node() {
12
- return Object.create(chain);
13
- }
14
-
15
- export function tool(definition) {
16
- return definition;
17
- }
18
-
19
- tool.schema = {
20
- string: () => node(),
21
- number: () => node(),
22
- boolean: () => node(),
23
- object: () => node(),
24
- enum: () => node(),
25
- literal: () => node(),
26
- array: () => node(),
27
- any: () => node(),
28
- unknown: () => node(),
29
- };
1
+ const chain = {
2
+ optional() { return this; },
3
+ describe() { return this; },
4
+ min() { return this; },
5
+ max() { return this; },
6
+ default() { return this; },
7
+ int() { return this; },
8
+ array() { return this; },
9
+ };
10
+
11
+ function node() {
12
+ return Object.create(chain);
13
+ }
14
+
15
+ export function tool(definition) {
16
+ return definition;
17
+ }
18
+
19
+ tool.schema = {
20
+ string: () => node(),
21
+ number: () => node(),
22
+ boolean: () => node(),
23
+ object: () => node(),
24
+ enum: () => node(),
25
+ literal: () => node(),
26
+ array: () => node(),
27
+ any: () => node(),
28
+ unknown: () => node(),
29
+ };
@@ -1,9 +1,9 @@
1
- {
2
- "name": "@codex-ai/plugin",
3
- "version": "1.2.10-codex.1",
4
- "type": "module",
5
- "exports": {
6
- ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" },
7
- "./tool": { "import": "./dist/tool.js", "types": "./dist/tool.d.ts" }
8
- }
9
- }
1
+ {
2
+ "name": "@codex-ai/plugin",
3
+ "version": "1.2.10-codex.1",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" },
7
+ "./tool": { "import": "./dist/tool.js", "types": "./dist/tool.d.ts" }
8
+ }
9
+ }
@@ -1,4 +1,4 @@
1
- export type Auth = any;
2
- export type Provider = any;
3
- export type Model = any;
4
- export type CodexClient = any;
1
+ export type Auth = any;
2
+ export type Provider = any;
3
+ export type Model = any;
4
+ export type CodexClient = any;
@@ -1,2 +1,2 @@
1
- export {};
2
-
1
+ export {};
2
+
@@ -1,8 +1,8 @@
1
- {
2
- "name": "@codex-ai/sdk",
3
- "version": "1.2.10-codex.1",
4
- "type": "module",
5
- "exports": {
6
- ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" }
7
- }
8
- }
1
+ {
2
+ "name": "@codex-ai/sdk",
3
+ "version": "1.2.10-codex.1",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" }
7
+ }
8
+ }
package/package.json CHANGED
@@ -1,209 +1,209 @@
1
- {
2
- "name": "codex-multi-auth",
3
- "version": "2.23.0",
4
- "description": "Codex CLI multi-account OAuth manager with account switching, health checks, runtime rotation, diagnostics, and recovery tools for @openai/codex",
5
- "main": "./dist/index.js",
6
- "types": "./dist/index.d.ts",
7
- "exports": {
8
- ".": {
9
- "types": "./dist/index.d.ts",
10
- "import": "./dist/index.js",
11
- "default": "./dist/index.js"
12
- },
13
- "./auth": {
14
- "types": "./dist/lib/auth/index.d.ts",
15
- "import": "./dist/lib/auth/index.js",
16
- "default": "./dist/lib/auth/index.js"
17
- },
18
- "./storage": {
19
- "types": "./dist/lib/storage.d.ts",
20
- "import": "./dist/lib/storage.js",
21
- "default": "./dist/lib/storage.js"
22
- },
23
- "./config": {
24
- "types": "./dist/lib/config.d.ts",
25
- "import": "./dist/lib/config.js",
26
- "default": "./dist/lib/config.js"
27
- },
28
- "./request": {
29
- "types": "./dist/lib/request/index.d.ts",
30
- "import": "./dist/lib/request/index.js",
31
- "default": "./dist/lib/request/index.js"
32
- },
33
- "./cli": {
34
- "types": "./dist/lib/codex-cli/index.d.ts",
35
- "import": "./dist/lib/codex-cli/index.js",
36
- "default": "./dist/lib/codex-cli/index.js"
37
- },
38
- "./package.json": "./package.json"
39
- },
40
- "type": "module",
41
- "license": "MIT",
42
- "author": "ndycode",
43
- "repository": {
44
- "type": "git",
45
- "url": "git+https://github.com/ndycode/codex-multi-auth.git"
46
- },
47
- "keywords": [
48
- "openai",
49
- "codex",
50
- "codex-cli",
51
- "codex-auth",
52
- "codex-multi-account",
53
- "chatgpt",
54
- "oauth",
55
- "oauth2",
56
- "pkce",
57
- "multi-account",
58
- "account-switching",
59
- "oauth-manager",
60
- "runtime-rotation",
61
- "responses-api",
62
- "local-proxy",
63
- "quota-management",
64
- "diagnostics",
65
- "fault-tolerance",
66
- "terminal-ui",
67
- "cli-tool",
68
- "typescript",
69
- "nodejs",
70
- "developer-tools",
71
- "authentication",
72
- "account-health",
73
- "recovery-tools",
74
- "project-scoped-storage"
75
- ],
76
- "homepage": "https://github.com/ndycode/codex-multi-auth#readme",
77
- "bugs": {
78
- "url": "https://github.com/ndycode/codex-multi-auth/issues"
79
- },
80
- "scripts": {
81
- "build": "node node_modules/tsgo/bin/tsc && node scripts/copy-oauth-success.js",
82
- "generate:schema": "npm run build && node scripts/generate-config-schema.mjs",
83
- "typecheck": "node node_modules/tsgo/bin/tsc --noEmit",
84
- "typecheck:scripts": "node node_modules/tsgo/bin/tsc -p tsconfig.scripts.json",
85
- "lint": "npm run lint:ts && npm run lint:scripts",
86
- "lint:ts": "eslint . --ext .ts",
87
- "lint:scripts": "eslint scripts --ext .js,.mjs",
88
- "lint:fix": "npm run lint:ts:fix && npm run lint:scripts:fix",
89
- "lint:ts:fix": "eslint . --ext .ts --fix",
90
- "lint:scripts:fix": "eslint scripts --ext .js,.mjs --fix",
91
- "test": "vitest run --maxWorkers=1",
92
- "test:watch": "vitest",
93
- "test:ui": "vitest --ui",
94
- "test:model-matrix": "node scripts/test-model-matrix.js",
95
- "test:model-matrix:smoke": "node scripts/test-model-matrix.js --smoke",
96
- "test:model-matrix:report": "node scripts/test-model-matrix.js --smoke --report-json=.tmp/model-matrix-report.json",
97
- "clean:repo": "node scripts/repo-hygiene.js clean --mode aggressive",
98
- "clean:repo:check": "node scripts/repo-hygiene.js check",
99
- "pack:check": "npm run build && node scripts/check-pack-budget.mjs",
100
- "bench:edit-formats": "node scripts/benchmark-edit-formats.mjs --preset=codex-core",
101
- "bench:edit-formats:smoke": "node scripts/benchmark-edit-formats.mjs --smoke --preset=codex-core",
102
- "bench:edit-formats:render": "node scripts/benchmark-render-dashboard.mjs",
103
- "bench:runtime-path": "npm run build && node scripts/benchmark-runtime-path.mjs",
104
- "bench:runtime-path:quick": "node scripts/benchmark-runtime-path.mjs",
105
- "test:coverage": "vitest run --coverage --maxWorkers=1",
106
- "coverage": "npm run build && vitest run --coverage --maxWorkers=1",
107
- "audit:prod": "npm audit --omit=dev --audit-level=high",
108
- "audit:all": "npm audit --audit-level=high",
109
- "audit:dev:allowlist": "node scripts/audit-dev-allowlist.js",
110
- "audit:ci": "npm run audit:prod && npm run audit:dev:allowlist",
111
- "vendor:verify": "node scripts/verify-vendor-provenance.mjs",
112
- "vendor:update-manifest": "node scripts/update-vendor-provenance.mjs",
113
- "postinstall": "node scripts/postinstall.js",
114
- "prepublishOnly": "npm run build",
115
- "prepare": "husky"
116
- },
117
- "bin": {
118
- "mcodex": "scripts/mcodex.js",
119
- "codex-ma": "scripts/codex-multi-auth.js",
120
- "codex-multi-auth-codex": "scripts/codex.js",
121
- "codex-multi-auth-app-launcher": "scripts/codex-app-launcher.js",
122
- "codex-multi-auth": "scripts/codex-multi-auth.js"
123
- },
124
- "files": [
125
- ".codex-plugin/plugin.json",
126
- "dist/",
127
- "assets/",
128
- "config/",
129
- "skills/",
130
- "scripts/codex.js",
131
- "scripts/codex-app-launcher.js",
132
- "scripts/codex-app-router.js",
133
- "scripts/codex-bin-resolver.js",
134
- "scripts/codex-multi-auth.js",
135
- "scripts/codex-routing.js",
136
- "scripts/mcodex.js",
137
- "scripts/install-codex-auth-utils.js",
138
- "scripts/postinstall.js",
139
- "scripts/preuninstall.js",
140
- "vendor/codex-ai-plugin/",
141
- "vendor/codex-ai-sdk/",
142
- "README.md",
143
- "LICENSE"
144
- ],
145
- "bundleDependencies": [
146
- "@codex-ai/plugin",
147
- "@codex-ai/sdk"
148
- ],
149
- "lint-staged": {
150
- "*.ts": [
151
- "eslint --max-warnings=0 --fix --no-warn-ignored"
152
- ],
153
- "scripts/**/*.{js,mjs}": [
154
- "eslint --max-warnings=0 --fix --no-warn-ignored"
155
- ]
156
- },
157
- "engines": {
158
- "node": ">=22.19.0"
159
- },
160
- "devDependencies": {
161
- "@types/node": "^26.6.3",
162
- "@types/ws": "8.18.2",
163
- "@typescript-eslint/eslint-plugin": "^8.71.1",
164
- "@typescript-eslint/parser": "^8.71.1",
165
- "@vitest/coverage-v8": "^5.0.2",
166
- "@vitest/ui": "^5.0.2",
167
- "eslint": "^10.12.0",
168
- "eslint-import-resolver-typescript": "^4.4.5",
169
- "eslint-plugin-import-x": "^4.17.1",
170
- "fast-check": "^4.10.2",
171
- "husky": "^9.1.7",
172
- "lint-staged": "^17.6.0",
173
- "playwright": "^1.64.1",
174
- "tsgo": "npm:typescript@^7.0.2",
175
- "typescript": "^6.0.3",
176
- "typescript-language-server": "^6.0.1",
177
- "vitest": "^5.0.2"
178
- },
179
- "dependencies": {
180
- "@codex-ai/plugin": "file:vendor/codex-ai-plugin",
181
- "@codex-ai/sdk": "file:vendor/codex-ai-sdk",
182
- "hono": "4.13.13",
183
- "undici": "8.11.2",
184
- "ws": "8.22.0",
185
- "zod": "4.6.5"
186
- },
187
- "overrides": {
188
- "hono": "4.13.13",
189
- "flatted": "3.4.2",
190
- "minimatch": {
191
- ".": "10.2.4",
192
- "brace-expansion": "5.0.12"
193
- },
194
- "picomatch": "4.0.4",
195
- "rollup": "4.59.0",
196
- "vite": "^7.3.2",
197
- "micromatch": {
198
- "picomatch": "2.3.2"
199
- },
200
- "@typescript-eslint/typescript-estree": {
201
- "minimatch": {
202
- ".": "9.0.9",
203
- "brace-expansion": "2.1.7"
204
- }
205
- },
206
- "postcss": "8.5.25",
207
- "nanoid": "3.3.18"
208
- }
209
- }
1
+ {
2
+ "name": "codex-multi-auth",
3
+ "version": "2.24.0",
4
+ "description": "Codex CLI multi-account OAuth manager with account switching, health checks, runtime rotation, diagnostics, and recovery tools for @openai/codex",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./auth": {
14
+ "types": "./dist/lib/auth/index.d.ts",
15
+ "import": "./dist/lib/auth/index.js",
16
+ "default": "./dist/lib/auth/index.js"
17
+ },
18
+ "./storage": {
19
+ "types": "./dist/lib/storage.d.ts",
20
+ "import": "./dist/lib/storage.js",
21
+ "default": "./dist/lib/storage.js"
22
+ },
23
+ "./config": {
24
+ "types": "./dist/lib/config.d.ts",
25
+ "import": "./dist/lib/config.js",
26
+ "default": "./dist/lib/config.js"
27
+ },
28
+ "./request": {
29
+ "types": "./dist/lib/request/index.d.ts",
30
+ "import": "./dist/lib/request/index.js",
31
+ "default": "./dist/lib/request/index.js"
32
+ },
33
+ "./cli": {
34
+ "types": "./dist/lib/codex-cli/index.d.ts",
35
+ "import": "./dist/lib/codex-cli/index.js",
36
+ "default": "./dist/lib/codex-cli/index.js"
37
+ },
38
+ "./package.json": "./package.json"
39
+ },
40
+ "type": "module",
41
+ "license": "MIT",
42
+ "author": "ndycode",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "git+https://github.com/ndycode/codex-multi-auth.git"
46
+ },
47
+ "keywords": [
48
+ "openai",
49
+ "codex",
50
+ "codex-cli",
51
+ "codex-auth",
52
+ "codex-multi-account",
53
+ "chatgpt",
54
+ "oauth",
55
+ "oauth2",
56
+ "pkce",
57
+ "multi-account",
58
+ "account-switching",
59
+ "oauth-manager",
60
+ "runtime-rotation",
61
+ "responses-api",
62
+ "local-proxy",
63
+ "quota-management",
64
+ "diagnostics",
65
+ "fault-tolerance",
66
+ "terminal-ui",
67
+ "cli-tool",
68
+ "typescript",
69
+ "nodejs",
70
+ "developer-tools",
71
+ "authentication",
72
+ "account-health",
73
+ "recovery-tools",
74
+ "project-scoped-storage"
75
+ ],
76
+ "homepage": "https://github.com/ndycode/codex-multi-auth#readme",
77
+ "bugs": {
78
+ "url": "https://github.com/ndycode/codex-multi-auth/issues"
79
+ },
80
+ "scripts": {
81
+ "build": "node node_modules/tsgo/bin/tsc && node scripts/copy-oauth-success.js",
82
+ "generate:schema": "npm run build && node scripts/generate-config-schema.mjs",
83
+ "typecheck": "node node_modules/tsgo/bin/tsc --noEmit",
84
+ "typecheck:scripts": "node node_modules/tsgo/bin/tsc -p tsconfig.scripts.json",
85
+ "lint": "npm run lint:ts && npm run lint:scripts",
86
+ "lint:ts": "eslint . --ext .ts",
87
+ "lint:scripts": "eslint scripts --ext .js,.mjs",
88
+ "lint:fix": "npm run lint:ts:fix && npm run lint:scripts:fix",
89
+ "lint:ts:fix": "eslint . --ext .ts --fix",
90
+ "lint:scripts:fix": "eslint scripts --ext .js,.mjs --fix",
91
+ "test": "vitest run --maxWorkers=1",
92
+ "test:watch": "vitest",
93
+ "test:ui": "vitest --ui",
94
+ "test:model-matrix": "node scripts/test-model-matrix.js",
95
+ "test:model-matrix:smoke": "node scripts/test-model-matrix.js --smoke",
96
+ "test:model-matrix:report": "node scripts/test-model-matrix.js --smoke --report-json=.tmp/model-matrix-report.json",
97
+ "clean:repo": "node scripts/repo-hygiene.js clean --mode aggressive",
98
+ "clean:repo:check": "node scripts/repo-hygiene.js check",
99
+ "pack:check": "npm run build && node scripts/check-pack-budget.mjs",
100
+ "bench:edit-formats": "node scripts/benchmark-edit-formats.mjs --preset=codex-core",
101
+ "bench:edit-formats:smoke": "node scripts/benchmark-edit-formats.mjs --smoke --preset=codex-core",
102
+ "bench:edit-formats:render": "node scripts/benchmark-render-dashboard.mjs",
103
+ "bench:runtime-path": "npm run build && node scripts/benchmark-runtime-path.mjs",
104
+ "bench:runtime-path:quick": "node scripts/benchmark-runtime-path.mjs",
105
+ "test:coverage": "vitest run --coverage --maxWorkers=1",
106
+ "coverage": "npm run build && vitest run --coverage --maxWorkers=1",
107
+ "audit:prod": "npm audit --omit=dev --audit-level=high",
108
+ "audit:all": "npm audit --audit-level=high",
109
+ "audit:dev:allowlist": "node scripts/audit-dev-allowlist.js",
110
+ "audit:ci": "npm run audit:prod && npm run audit:dev:allowlist",
111
+ "vendor:verify": "node scripts/verify-vendor-provenance.mjs",
112
+ "vendor:update-manifest": "node scripts/update-vendor-provenance.mjs",
113
+ "postinstall": "node scripts/postinstall.js",
114
+ "prepublishOnly": "npm run build",
115
+ "prepare": "husky"
116
+ },
117
+ "bin": {
118
+ "mcodex": "scripts/mcodex.js",
119
+ "codex-ma": "scripts/codex-multi-auth.js",
120
+ "codex-multi-auth-codex": "scripts/codex.js",
121
+ "codex-multi-auth-app-launcher": "scripts/codex-app-launcher.js",
122
+ "codex-multi-auth": "scripts/codex-multi-auth.js"
123
+ },
124
+ "files": [
125
+ ".codex-plugin/plugin.json",
126
+ "dist/",
127
+ "assets/",
128
+ "config/",
129
+ "skills/",
130
+ "scripts/codex.js",
131
+ "scripts/codex-app-launcher.js",
132
+ "scripts/codex-app-router.js",
133
+ "scripts/codex-bin-resolver.js",
134
+ "scripts/codex-multi-auth.js",
135
+ "scripts/codex-routing.js",
136
+ "scripts/mcodex.js",
137
+ "scripts/install-codex-auth-utils.js",
138
+ "scripts/postinstall.js",
139
+ "scripts/preuninstall.js",
140
+ "vendor/codex-ai-plugin/",
141
+ "vendor/codex-ai-sdk/",
142
+ "README.md",
143
+ "LICENSE"
144
+ ],
145
+ "bundleDependencies": [
146
+ "@codex-ai/plugin",
147
+ "@codex-ai/sdk"
148
+ ],
149
+ "lint-staged": {
150
+ "*.ts": [
151
+ "eslint --max-warnings=0 --fix --no-warn-ignored"
152
+ ],
153
+ "scripts/**/*.{js,mjs}": [
154
+ "eslint --max-warnings=0 --fix --no-warn-ignored"
155
+ ]
156
+ },
157
+ "engines": {
158
+ "node": ">=22.19.0"
159
+ },
160
+ "devDependencies": {
161
+ "@types/node": "^26.6.3",
162
+ "@types/ws": "8.18.2",
163
+ "@typescript-eslint/eslint-plugin": "^8.71.1",
164
+ "@typescript-eslint/parser": "^8.71.1",
165
+ "@vitest/coverage-v8": "^5.0.2",
166
+ "@vitest/ui": "^5.0.2",
167
+ "eslint": "^10.12.0",
168
+ "eslint-import-resolver-typescript": "^4.4.5",
169
+ "eslint-plugin-import-x": "^4.17.1",
170
+ "fast-check": "^4.10.2",
171
+ "husky": "^9.1.7",
172
+ "lint-staged": "^17.6.0",
173
+ "playwright": "^1.64.1",
174
+ "tsgo": "npm:typescript@^7.0.2",
175
+ "typescript": "^6.0.3",
176
+ "typescript-language-server": "^6.0.1",
177
+ "vitest": "^5.0.2"
178
+ },
179
+ "dependencies": {
180
+ "@codex-ai/plugin": "file:vendor/codex-ai-plugin",
181
+ "@codex-ai/sdk": "file:vendor/codex-ai-sdk",
182
+ "hono": "4.13.13",
183
+ "undici": "8.11.2",
184
+ "ws": "8.22.0",
185
+ "zod": "4.6.5"
186
+ },
187
+ "overrides": {
188
+ "hono": "4.13.13",
189
+ "flatted": "3.4.2",
190
+ "minimatch": {
191
+ ".": "10.2.4",
192
+ "brace-expansion": "5.0.12"
193
+ },
194
+ "picomatch": "4.0.4",
195
+ "rollup": "4.59.0",
196
+ "vite": "^7.3.2",
197
+ "micromatch": {
198
+ "picomatch": "2.3.2"
199
+ },
200
+ "@typescript-eslint/typescript-estree": {
201
+ "minimatch": {
202
+ ".": "9.0.9",
203
+ "brace-expansion": "2.1.7"
204
+ }
205
+ },
206
+ "postcss": "8.5.25",
207
+ "nanoid": "3.3.18"
208
+ }
209
+ }