@codexapi/codexclaude 2.0.30 → 2.0.32
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/CUSTOMIZATIONS.md +10 -10
- package/README.md +5 -5
- package/bin/codexclaude.js +42 -24
- package/codexclaude.md +36 -22
- package/package.json +2 -2
package/CUSTOMIZATIONS.md
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
## Runtime
|
|
6
6
|
|
|
7
7
|
- Customer-facing app name: `MagnetAPI.org Codex CLI`
|
|
8
|
-
- Local launcher version: `2.0.
|
|
9
|
-
- Bundled official runtime dependency: `@openai/codex@0.
|
|
8
|
+
- Local launcher version: `2.0.32`
|
|
9
|
+
- Bundled official runtime dependency: `@openai/codex@0.148.0-alpha.6`
|
|
10
10
|
- Required install command: `npm install -g @codexapi/codexclaude@latest`
|
|
11
|
-
- Hosted fallback: `npm install -g https://codexapi.pro/downloads/codexapi-codexclaude-2.0.
|
|
11
|
+
- Hosted fallback: `npm install -g https://codexapi.pro/downloads/codexapi-codexclaude-2.0.32.tgz`
|
|
12
12
|
- Bundled runtime version is managed internally and must not be used for customer update prompts.
|
|
13
13
|
- Launcher update checks may call the CodexAPI.pro version endpoint and `@codexapi/codexclaude` npm metadata only.
|
|
14
14
|
- The launcher must never check `@openai/codex` npm metadata or OpenAI GitHub releases for update notices.
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
- Passes unknown commands directly to the bundled runtime after config is applied.
|
|
26
26
|
- Provides `codexclaude changelog` using the managed version endpoint.
|
|
27
27
|
- Does not expose separate `codexclaude status` or `codexclaude usage` commands; wallet information remains a compact pre-launch line.
|
|
28
|
-
- Version `2.0.
|
|
29
|
-
- Mandatory updates present `Upgrade Now` in an interactive terminal, invoke npm with an argument array and no shell interpolation, then relaunch the requested action automatically.
|
|
28
|
+
- Version `2.0.32` is forced by the backend minimum version and older clients must show an update-required message.
|
|
29
|
+
- Mandatory updates present a press-Enter `Upgrade Now` action in an interactive terminal, invoke npm with an argument array and no shell interpolation, try the hosted release if the registry install fails, then relaunch the requested action automatically.
|
|
30
30
|
- The npm package manifest exposes only `codexclaude`, preventing npm from colliding with a native `codex` or `claude` command before postinstall runs.
|
|
31
31
|
- Global installation creates optional `codex` and `claude` aliases only when no existing command is present in the npm prefix or anywhere on `PATH`; native clients must never be overwritten.
|
|
32
32
|
|
|
@@ -45,10 +45,10 @@ The launcher writes a model provider named `codexapi`:
|
|
|
45
45
|
|
|
46
46
|
## Runtime Defaults
|
|
47
47
|
|
|
48
|
-
- Default model: `gpt-5.6` displayed as `GPT-5.6`
|
|
48
|
+
- Default model: `gpt-5.6-sol` displayed as `GPT-5.6 SOL`
|
|
49
49
|
- Supported launcher choices: `gpt-5.6`, `gpt-5.6-sol-max`, `gpt-5.6-sol-ultra`, `gpt-5.6-sol`, `gpt-5.5`, `claude-opus-5`, `claude-opus-4-8`, `claude-sonnet-5`, `claude-fable-5`, and `gpt-5.6-terra`
|
|
50
|
-
- Default reasoning effort displayed locally: `xhigh`; SOL Max and SOL Ultra retain their explicit premium labels.
|
|
51
|
-
- Reasoning hint
|
|
50
|
+
- Default reasoning effort displayed locally: `Extra High`, stored as `xhigh`; SOL Max and SOL Ultra retain their explicit premium labels.
|
|
51
|
+
- Reasoning hint written to managed runtime config: model-specific
|
|
52
52
|
- Approval policy: `never`
|
|
53
53
|
- Sandbox mode: `danger-full-access`
|
|
54
54
|
- Display wording for permissions: `Full Access` in launcher-owned copy
|
|
@@ -65,7 +65,7 @@ Before launching the runtime, the launcher calls `/api/v1/wallet/status`, then `
|
|
|
65
65
|
Expected status line:
|
|
66
66
|
|
|
67
67
|
```text
|
|
68
|
-
MagnetAPI.org Codex CLI v2.0.
|
|
68
|
+
MagnetAPI.org Codex CLI v2.0.32 · GPT-5.6 SOL Extra High · ~/project · Wallet $20.00
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
## Upgrade Checklist
|
|
@@ -76,7 +76,7 @@ When updating the bundled runtime:
|
|
|
76
76
|
2. Update `@openai/codex` in `package.json` and `package-lock.json`.
|
|
77
77
|
3. Bump the launcher package version.
|
|
78
78
|
4. Keep `APP_DISPLAY_NAME = "MagnetAPI.org Codex CLI"`.
|
|
79
|
-
5. Keep `DEFAULT_MODEL_ID = "gpt-5.6"
|
|
79
|
+
5. Keep `DEFAULT_MODEL_ID = "gpt-5.6-sol"` unless product explicitly changes the first-run default.
|
|
80
80
|
6. Keep `reasoningEffortForModel()` and model-specific visible reasoning.
|
|
81
81
|
7. Keep Full Access defaults: `approval_policy = "never"` and `sandbox_mode = "danger-full-access"`.
|
|
82
82
|
8. Keep `check_for_update_on_startup = false`.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
`codexclaude` installs the MagnetAPI.org Codex CLI for customers who want one coding CLI that can use GPT-5.6, GPT-5.6 Terra, GPT-5.6 SOL, GPT-5.6 SOL Max, GPT-5.6 SOL Ultra, ChatGPT-5.5, Opus 5, Opus 4.8, Sonnet 5, or Fable 5 against the same Token Wallet.
|
|
4
4
|
|
|
5
|
-
Version `2.0.
|
|
5
|
+
Version `2.0.32` bundles the official Codex runtime dependency `@openai/codex@0.148.0-alpha.6` and makes GPT-5.6 SOL with visible Extra High reasoning the default for new or invalid configurations. Existing valid model selections remain unchanged. It preserves the collision-safe updater, platform-native runtime launch, managed account and wallet integration, Full Access defaults, upstream update suppression, and complete model metadata.
|
|
6
6
|
|
|
7
7
|
## Install Or Update
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ This does not delete local session history. The update replaces the `codexclaude
|
|
|
16
16
|
|
|
17
17
|
The launcher checks CodexAPI.pro's managed version endpoint and the `@codexapi/codexclaude` npm package metadata only. It must never check `@openai/codex` npm metadata or OpenAI GitHub releases for customer update prompts.
|
|
18
18
|
|
|
19
|
-
Version `2.0.
|
|
19
|
+
Version `2.0.32` is enforced as the minimum supported version. A compatible older launcher presents `Upgrade Now`; pressing Enter installs `@codexapi/codexclaude@latest` and relaunches the requested action automatically. If the npm registry install fails, the updater tries the hosted release before asking the user to intervene. Non-interactive terminals print the same npm command instead of hanging for input.
|
|
20
20
|
|
|
21
21
|
## First Login
|
|
22
22
|
|
|
@@ -24,7 +24,7 @@ Version `2.0.30` is enforced as the minimum supported version. A compatible olde
|
|
|
24
24
|
codexclaude login
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
Enter the Dashboard Username or Email Address and password. The launcher can log in to CodexAPI.pro, ChatPlus.chat, MyAPI.world, or MagnetAPI.org, then saves the correct System Token locally, writes `~/.codex/config.toml`, sets Full Access defaults, and lets the customer choose the coding model. If the customer presses Enter at the model prompt, GPT-5.6 with
|
|
27
|
+
Enter the Dashboard Username or Email Address and password. The launcher can log in to CodexAPI.pro, ChatPlus.chat, MyAPI.world, or MagnetAPI.org, then saves the correct System Token locally, writes `~/.codex/config.toml`, sets Full Access defaults, and lets the customer choose the coding model. If the customer presses Enter at the model prompt, GPT-5.6 SOL with Extra High reasoning is selected by default.
|
|
28
28
|
|
|
29
29
|
## Start Coding
|
|
30
30
|
|
|
@@ -67,13 +67,13 @@ codexclaude changelog
|
|
|
67
67
|
Before launching the coding runtime, the app prints a compact status line like:
|
|
68
68
|
|
|
69
69
|
```text
|
|
70
|
-
MagnetAPI.org Codex CLI v2.0.
|
|
70
|
+
MagnetAPI.org Codex CLI v2.0.32 · GPT-5.6 SOL Extra High · ~/project · Wallet $20.00
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
## Preserved Customizations
|
|
74
74
|
|
|
75
75
|
- Dashboard Username or Email Address plus password login for CodexAPI.pro, ChatPlus.chat, MyAPI.world, and MagnetAPI.org.
|
|
76
|
-
- GPT-5.6, GPT-5.6 Terra, GPT-5.6 SOL Max, GPT-5.6 SOL Ultra, GPT-5.6 SOL, ChatGPT-5.5, Opus
|
|
76
|
+
- Opus 5, GPT-5.6, GPT-5.6 Terra, GPT-5.6 SOL Max, GPT-5.6 SOL Ultra, GPT-5.6 SOL, ChatGPT-5.5, Opus 4.8, Sonnet 5, or Fable 5 model selection, with GPT-5.6 SOL/Extra High as the default.
|
|
77
77
|
- Service-specific Responses-compatible provider for the dashboard account that logged in.
|
|
78
78
|
- Full Access defaults: approval policy `never` and sandbox mode `danger-full-access`.
|
|
79
79
|
- Model-specific visible reasoning in the local UI while the API server keeps upstream runtime effort server-managed.
|
package/bin/codexclaude.js
CHANGED
|
@@ -12,10 +12,10 @@ import { installSafeCommandAliases } from "../scripts/install-safe-aliases.js";
|
|
|
12
12
|
|
|
13
13
|
const require = createRequire(import.meta.url);
|
|
14
14
|
|
|
15
|
-
const APP_VERSION = "2.0.
|
|
16
|
-
const CODEX_VERSION = "0.
|
|
15
|
+
const APP_VERSION = "2.0.32";
|
|
16
|
+
const CODEX_VERSION = "0.148.0-alpha.6";
|
|
17
17
|
const APP_DISPLAY_NAME = "MagnetAPI.org Codex CLI";
|
|
18
|
-
const DEFAULT_MODEL_ID = "gpt-5.6";
|
|
18
|
+
const DEFAULT_MODEL_ID = "gpt-5.6-sol";
|
|
19
19
|
const DEFAULT_DISPLAY_REASONING_EFFORT = "xhigh";
|
|
20
20
|
const DEFAULT_SERVER_REASONING_EFFORT = "xhigh";
|
|
21
21
|
const API_ORIGIN = (process.env.CODEXCLAUDE_API_ORIGIN || "https://codexapi.pro").replace(/\/+$/, "");
|
|
@@ -77,39 +77,39 @@ const SUPPORTED_REASONING_LEVELS = [
|
|
|
77
77
|
];
|
|
78
78
|
|
|
79
79
|
const MODELS = {
|
|
80
|
+
"claude-opus-5": {
|
|
81
|
+
id: "claude-opus-5",
|
|
82
|
+
label: "Opus 5",
|
|
83
|
+
aliases: ["1", "opus", "opus-5", "claude", "claude-opus-5"],
|
|
84
|
+
},
|
|
80
85
|
"gpt-5.6": {
|
|
81
86
|
id: "gpt-5.6",
|
|
82
87
|
label: "GPT-5.6",
|
|
83
|
-
aliases: ["
|
|
88
|
+
aliases: ["2", "gpt", "gpt-5.6", "chatgpt", "chatgpt-5.6", "gpt56"],
|
|
84
89
|
reasoningEffort: "xhigh",
|
|
85
90
|
},
|
|
86
91
|
"gpt-5.6-sol-max": {
|
|
87
92
|
id: "gpt-5.6-sol-max",
|
|
88
93
|
label: "GPT-5.6 SOL Max",
|
|
89
|
-
aliases: ["
|
|
94
|
+
aliases: ["3", "gpt-5.6-sol-max", "gpt-5.6-max", "gpt56-max", "sol-max", "max"],
|
|
90
95
|
reasoningEffort: "max",
|
|
91
96
|
},
|
|
92
97
|
"gpt-5.6-sol-ultra": {
|
|
93
98
|
id: "gpt-5.6-sol-ultra",
|
|
94
99
|
label: "GPT-5.6 SOL Ultra",
|
|
95
|
-
aliases: ["
|
|
100
|
+
aliases: ["4", "gpt-5.6-sol-ultra", "gpt-5.6-ultra", "gpt56-ultra", "sol-ultra", "ultra"],
|
|
96
101
|
reasoningEffort: "ultra",
|
|
97
102
|
},
|
|
98
103
|
"gpt-5.6-sol": {
|
|
99
104
|
id: "gpt-5.6-sol",
|
|
100
105
|
label: "GPT-5.6 SOL",
|
|
101
|
-
aliases: ["
|
|
106
|
+
aliases: ["5", "gpt-5.6-sol", "sol"],
|
|
102
107
|
reasoningEffort: "xhigh",
|
|
103
108
|
},
|
|
104
109
|
"gpt-5.5": {
|
|
105
110
|
id: "gpt-5.5",
|
|
106
111
|
label: "ChatGPT-5.5",
|
|
107
|
-
aliases: ["
|
|
108
|
-
},
|
|
109
|
-
"claude-opus-5": {
|
|
110
|
-
id: "claude-opus-5",
|
|
111
|
-
label: "Opus 5",
|
|
112
|
-
aliases: ["6", "opus", "opus-5", "claude", "claude-opus-5"],
|
|
112
|
+
aliases: ["6", "gpt-5.5", "chatgpt-5.5"],
|
|
113
113
|
},
|
|
114
114
|
"claude-opus-4-8": {
|
|
115
115
|
id: "claude-opus-4-8",
|
|
@@ -191,7 +191,7 @@ ${APP_DISPLAY_NAME} v${APP_VERSION}
|
|
|
191
191
|
|
|
192
192
|
Commands:
|
|
193
193
|
codexclaude login Login with dashboard username/email and password
|
|
194
|
-
codexclaude model Select GPT-5.6, Terra, SOL modes, Opus
|
|
194
|
+
codexclaude model Select GPT-5.6 SOL, Opus 5, GPT-5.6, Terra, SOL modes, Opus 4.8, Sonnet 5, or Fable 5
|
|
195
195
|
codexclaude changelog Show the latest CodexAPI.pro launcher changes
|
|
196
196
|
codexclaude setup Rewrite ~/.codex/config.toml with Full Access defaults
|
|
197
197
|
codexclaude start Start ${APP_DISPLAY_NAME} with --search
|
|
@@ -371,7 +371,8 @@ async function modelFlow() {
|
|
|
371
371
|
}
|
|
372
372
|
|
|
373
373
|
async function setupFlow() {
|
|
374
|
-
const config = requireConfig();
|
|
374
|
+
const config = normalizeConfig(requireConfig());
|
|
375
|
+
saveConfig(config);
|
|
375
376
|
writeCodexConfig(config);
|
|
376
377
|
console.log(`Configured ${CODEX_CONFIG_FILE} for ${MODELS[config.model].label} with Full Access, model-specific visible reasoning, and server-managed routing.`);
|
|
377
378
|
}
|
|
@@ -469,9 +470,9 @@ async function runMandatoryUpgrade(metadata) {
|
|
|
469
470
|
}
|
|
470
471
|
const rl = readline.createInterface({ input, output });
|
|
471
472
|
try {
|
|
472
|
-
console.log("
|
|
473
|
-
console.log("
|
|
474
|
-
const answer = (await rl.question("
|
|
473
|
+
console.log(" Press Enter to Upgrade Now");
|
|
474
|
+
console.log(" Press Ctrl+C to exit without updating");
|
|
475
|
+
const answer = (await rl.question("Upgrade Now [Enter]: ")).trim().toLowerCase();
|
|
475
476
|
shouldUpgrade = ["", "1", "upgrade", "upgrade now", "yes", "y"].includes(answer);
|
|
476
477
|
} finally {
|
|
477
478
|
rl.close();
|
|
@@ -483,11 +484,15 @@ async function runMandatoryUpgrade(metadata) {
|
|
|
483
484
|
|
|
484
485
|
console.log(`\nDownloading and installing ${NPM_PACKAGE_NAME}@latest...`);
|
|
485
486
|
const npmCommand = process.platform === "win32" ? "npm.cmd" : "npm";
|
|
486
|
-
|
|
487
|
+
let exitCode = await spawnAndWait(npmCommand, ["install", "-g", `${NPM_PACKAGE_NAME}@latest`]);
|
|
488
|
+
if (exitCode !== 0) {
|
|
489
|
+
console.log("\nThe npm registry install did not complete. Trying the hosted release automatically...");
|
|
490
|
+
exitCode = await spawnAndWait(npmCommand, ["install", "-g", HOSTED_TARBALL_URL]);
|
|
491
|
+
}
|
|
487
492
|
if (exitCode !== 0) {
|
|
488
493
|
throw new Error(
|
|
489
494
|
`Automatic upgrade failed with exit code ${exitCode}. Run ${UPDATE_COMMAND}. ` +
|
|
490
|
-
`
|
|
495
|
+
`If npm is unavailable, use: ${HOSTED_UPDATE_COMMAND}`,
|
|
491
496
|
);
|
|
492
497
|
}
|
|
493
498
|
console.log(`\nUpgrade complete. Restarting ${APP_DISPLAY_NAME} now...`);
|
|
@@ -861,7 +866,6 @@ async function runCodex(args) {
|
|
|
861
866
|
const env = {
|
|
862
867
|
...process.env,
|
|
863
868
|
CODEXAPI_CODEX_API_KEY: config.username,
|
|
864
|
-
CODEXCLAUDE_CODEX_VERSION: CODEX_VERSION,
|
|
865
869
|
CODEXCLAUDE_MODEL_ID: config.model,
|
|
866
870
|
CODEXCLAUDE_MODEL_LABEL: MODELS[config.model]?.label || config.model,
|
|
867
871
|
CODEXCLAUDE_MODEL_API_BASE_URL: providerBaseUrlForConfig(config),
|
|
@@ -1018,7 +1022,7 @@ function numericWalletValue(value) {
|
|
|
1018
1022
|
function formatStatusLine(config, wallet, cwd) {
|
|
1019
1023
|
const model = modelStatusName(config.model);
|
|
1020
1024
|
const walletText = wallet ? `Wallet ${formatUsd(wallet.balance)}` : "Wallet unavailable";
|
|
1021
|
-
return `${APP_DISPLAY_NAME} v${APP_VERSION} · ${model} ${
|
|
1025
|
+
return `${APP_DISPLAY_NAME} v${APP_VERSION} · ${model} ${displayReasoningEffortForModel(config.model)} · ${formatCwd(cwd)} · ${walletText}`;
|
|
1022
1026
|
}
|
|
1023
1027
|
|
|
1024
1028
|
function modelStatusName(model) {
|
|
@@ -1032,13 +1036,13 @@ function modelStatusName(model) {
|
|
|
1032
1036
|
return "gpt-5.6-sol ultra";
|
|
1033
1037
|
}
|
|
1034
1038
|
if (model === "gpt-5.6-sol") {
|
|
1035
|
-
return "
|
|
1039
|
+
return "GPT-5.6 SOL";
|
|
1036
1040
|
}
|
|
1037
1041
|
if (model === "gpt-5.6-terra") {
|
|
1038
1042
|
return "gpt-5.6-terra";
|
|
1039
1043
|
}
|
|
1040
1044
|
if (model === "claude-opus-5") {
|
|
1041
|
-
return "
|
|
1045
|
+
return "Opus 5";
|
|
1042
1046
|
}
|
|
1043
1047
|
if (model === "claude-opus-4-8") {
|
|
1044
1048
|
return "opus-4.8";
|
|
@@ -1056,6 +1060,20 @@ function reasoningEffortForModel(model) {
|
|
|
1056
1060
|
return MODELS[model]?.reasoningEffort || DEFAULT_DISPLAY_REASONING_EFFORT;
|
|
1057
1061
|
}
|
|
1058
1062
|
|
|
1063
|
+
function displayReasoningEffortForModel(model) {
|
|
1064
|
+
const effort = reasoningEffortForModel(model);
|
|
1065
|
+
if (effort === "xhigh") {
|
|
1066
|
+
return "Extra High";
|
|
1067
|
+
}
|
|
1068
|
+
if (effort === "max") {
|
|
1069
|
+
return "Max";
|
|
1070
|
+
}
|
|
1071
|
+
if (effort === "ultra") {
|
|
1072
|
+
return "Ultra";
|
|
1073
|
+
}
|
|
1074
|
+
return effort.charAt(0).toUpperCase() + effort.slice(1);
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1059
1077
|
function normalizeConfig(config) {
|
|
1060
1078
|
if (!config || typeof config !== "object") {
|
|
1061
1079
|
return config;
|
package/codexclaude.md
CHANGED
|
@@ -5,15 +5,15 @@ This file is the durable handoff for the `@codexapi/codexclaude` package in `/ro
|
|
|
5
5
|
## Current Release
|
|
6
6
|
|
|
7
7
|
- Package name: `@codexapi/codexclaude`
|
|
8
|
-
- Launcher version: `2.0.
|
|
8
|
+
- Launcher version: `2.0.32`
|
|
9
9
|
- Customer-facing app name: `MagnetAPI.org Codex CLI`
|
|
10
|
-
- Bundled runtime dependency: `@openai/codex@0.
|
|
10
|
+
- Bundled runtime dependency: `@openai/codex@0.148.0-alpha.6`
|
|
11
11
|
- Required install command: `npm install -g @codexapi/codexclaude@latest`
|
|
12
|
-
- Hosted fallback: `npm install -g https://codexapi.pro/downloads/codexapi-codexclaude-2.0.
|
|
13
|
-
- Backend minimum version: `2.0.
|
|
14
|
-
- Default visible model: `GPT-5.6`
|
|
15
|
-
- Default model slug: `gpt-5.6`
|
|
16
|
-
- Default visible reasoning effort: `xhigh`; premium SOL Max and SOL Ultra retain their explicit `max` and `ultra` labels.
|
|
12
|
+
- Hosted fallback: `npm install -g https://codexapi.pro/downloads/codexapi-codexclaude-2.0.32.tgz`
|
|
13
|
+
- Backend minimum version: `2.0.32`
|
|
14
|
+
- Default visible model: `GPT-5.6 SOL`
|
|
15
|
+
- Default model slug: `gpt-5.6-sol`
|
|
16
|
+
- Default visible reasoning effort: `Extra High`, stored as `xhigh`; premium SOL Max and SOL Ultra retain their explicit `max` and `ultra` labels.
|
|
17
17
|
- Local permissions: Full Access, implemented as `approval_policy = "never"` and `sandbox_mode = "danger-full-access"`
|
|
18
18
|
- Local launcher state: `~/.codexclaude/config.json`
|
|
19
19
|
- Generated runtime config: `~/.codex/config.toml`
|
|
@@ -25,31 +25,31 @@ This file is the durable handoff for the `@codexapi/codexclaude` package in `/ro
|
|
|
25
25
|
The launcher must present itself as:
|
|
26
26
|
|
|
27
27
|
```text
|
|
28
|
-
MagnetAPI.org Codex CLI v2.0.
|
|
28
|
+
MagnetAPI.org Codex CLI v2.0.32
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Normal pre-launch status should look like:
|
|
32
32
|
|
|
33
33
|
```text
|
|
34
|
-
MagnetAPI.org Codex CLI v2.0.
|
|
34
|
+
MagnetAPI.org Codex CLI v2.0.32 · GPT-5.6 SOL Extra High · ~/project · Wallet $20.00
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Do not show OpenAI update notices, OpenAI npm install commands, OpenAI release links, or the upstream runtime version in launcher-owned output. The package still depends on the official runtime internally, but the customer update surface is ours.
|
|
38
38
|
|
|
39
39
|
The launcher command `codexclaude model` must list these customer-visible models:
|
|
40
40
|
|
|
41
|
-
- `
|
|
41
|
+
- `claude-opus-5` displayed as `Opus 5`
|
|
42
|
+
- `gpt-5.6` displayed as `GPT-5.6`
|
|
42
43
|
- `gpt-5.6-sol-max` displayed as `GPT-5.6 SOL Max`
|
|
43
44
|
- `gpt-5.6-sol-ultra` displayed as `GPT-5.6 SOL Ultra`
|
|
44
|
-
- `gpt-5.6-sol` displayed as `GPT-5.6 SOL
|
|
45
|
+
- `gpt-5.6-sol` displayed as `GPT-5.6 SOL`, selected by default for new and invalid configurations
|
|
45
46
|
- `gpt-5.5` displayed as `ChatGPT-5.5`
|
|
46
|
-
- `claude-opus-5` displayed as `Opus 5`
|
|
47
47
|
- `claude-opus-4-8` displayed as `Opus 4.8`
|
|
48
48
|
- `claude-sonnet-5` displayed as `Sonnet 5`
|
|
49
49
|
- `claude-fable-5` displayed as `Fable 5`
|
|
50
50
|
- `gpt-5.6-terra` displayed as `GPT-5.6 Terra`
|
|
51
51
|
|
|
52
|
-
GPT-5.6 must be the default when a new config is created or a legacy config contains an unsupported
|
|
52
|
+
GPT-5.6 SOL must be the default when a new config is created or a legacy config contains an unsupported model value. It is displayed as Extra High while the generated runtime config stores `xhigh`. A valid existing customer selection must remain unchanged across upgrades. The selected model slug must stay in `~/.codex/config.toml`; do not rewrite customer-facing model selections locally. `gpt-5.6-sol-max` and `gpt-5.6-sol-ultra` remain distinct for customer choice, usage display, and wallet billing.
|
|
53
53
|
|
|
54
54
|
## Update Policy
|
|
55
55
|
|
|
@@ -58,7 +58,7 @@ GPT-5.6 must be the default when a new config is created or a legacy config cont
|
|
|
58
58
|
- `https://codexapi.pro/api/v1/codexclaude/version`
|
|
59
59
|
- `https://registry.npmjs.org/@codexapi%2Fcodexclaude/latest`
|
|
60
60
|
|
|
61
|
-
It must not check `@openai/codex` npm metadata, OpenAI GitHub releases, or any upstream OpenAI update endpoint. Version `2.0.
|
|
61
|
+
It must not check `@openai/codex` npm metadata, OpenAI GitHub releases, or any upstream OpenAI update endpoint. Version `2.0.32` is both the enforced minimum and current latest release. Compatible older launchers offer an interactive `Upgrade Now` action; pressing Enter invokes `npm install -g @codexapi/codexclaude@latest` without shell interpolation. If that registry install fails, the launcher automatically tries the hosted tarball. Non-interactive terminals print the exact update command and exit instead of waiting for input. After a successful interactive update, the launcher starts the requested action again automatically.
|
|
62
62
|
|
|
63
63
|
The npm package manifest owns only `codexclaude`. This is deliberate: npm creates manifest binaries before postinstall, so claiming `codex` there causes an `EEXIST` upgrade failure on machines with native Codex CLI. During a global installation, postinstall may create optional `codex` and `claude` aliases only when neither the target npm prefix nor any directory on `PATH` already contains the command. Existing native clients are preserved and no install path requires `--force`.
|
|
64
64
|
|
|
@@ -66,12 +66,18 @@ The launcher writes `check_for_update_on_startup = false` and removes `~/.codex/
|
|
|
66
66
|
|
|
67
67
|
The optional platform-native runtime packages can still contain upstream README files and hardcoded native strings inside the binary. Launcher-owned output must say `MagnetAPI.org Codex CLI`; replacing native binary text itself requires a maintained forked native runtime build for every supported platform. Until such a fork exists, do not re-enable the upstream npm wrapper and do not present upstream update notices to customers.
|
|
68
68
|
|
|
69
|
+
## macOS Setup Contract
|
|
70
|
+
|
|
71
|
+
Customer macOS setup generators on CodexAPI.pro, ChatPlus.chat, MyAPI.world, MagnetAPI.org, and the Frankfurt VIP pages must support both Apple Silicon Homebrew at `/opt/homebrew` and Intel Homebrew at `/usr/local`. When npm or Git is missing, the generated script waits for an active `brew install`, `brew update`, or `brew upgrade` process for at most ten minutes. It then installs Node and Git independently, with three bounded attempts per missing formula.
|
|
72
|
+
|
|
73
|
+
Never work around a Homebrew lock by deleting files under `Cellar`, removing Homebrew lock files, or terminating another Homebrew process. Those actions can corrupt a customer installation. Keep the shared implementation and white-label copies aligned, and preserve the simulated lock regression in `/root/codexapi/tests/test_setup_standardization.py` whenever setup generators are changed.
|
|
74
|
+
|
|
69
75
|
## Generated Config Contract
|
|
70
76
|
|
|
71
77
|
`bin/codexclaude.js` must rewrite `~/.codex/config.toml` before every coding session. Preserve this top-level shape:
|
|
72
78
|
|
|
73
79
|
```toml
|
|
74
|
-
model = "gpt-5.6"
|
|
80
|
+
model = "gpt-5.6-sol"
|
|
75
81
|
model_catalog_json = "<absolute path to ~/.codexclaude/model_catalog.json>"
|
|
76
82
|
preferred_auth_method = "apikey"
|
|
77
83
|
model_provider = "codexapi"
|
|
@@ -88,7 +94,7 @@ base_url = "<service Responses URL>"
|
|
|
88
94
|
experimental_bearer_token = "<customer System Token/API username>"
|
|
89
95
|
wire_api = "responses"
|
|
90
96
|
supports_websockets = false
|
|
91
|
-
http_headers = { "X-CodexAPI-Client" = "codexclaude", "X-CodexAPI-Client-Version" = "2.0.
|
|
97
|
+
http_headers = { "X-CodexAPI-Client" = "codexclaude", "X-CodexAPI-Client-Version" = "2.0.32", "X-CodexAPI-Selected-Model" = "<selected model>" }
|
|
92
98
|
|
|
93
99
|
[tui]
|
|
94
100
|
status_line = ["model-with-reasoning", "fast-mode", "current-dir"]
|
|
@@ -131,7 +137,7 @@ When updating the bundled runtime dependency:
|
|
|
131
137
|
3. Bump `package.json` and `package-lock.json` to a new `@codexapi/codexclaude` version.
|
|
132
138
|
4. Update `APP_VERSION` and `CODEX_VERSION` in `bin/codexclaude.js`.
|
|
133
139
|
5. Preserve `APP_DISPLAY_NAME = "MagnetAPI.org Codex CLI"`.
|
|
134
|
-
6. Preserve `DEFAULT_MODEL_ID = "gpt-5.6"
|
|
140
|
+
6. Preserve `DEFAULT_MODEL_ID = "gpt-5.6-sol"` unless product explicitly changes the first-run default.
|
|
135
141
|
7. Preserve `DISPLAY_REASONING_EFFORT = "xhigh"` and `SERVER_REASONING_EFFORT = "xhigh"` unless operations explicitly changes the launcher-visible contract.
|
|
136
142
|
8. Preserve Full Access defaults and the local model catalog.
|
|
137
143
|
9. Preserve direct platform-native binary launch.
|
|
@@ -160,13 +166,13 @@ tmp_home="$(mktemp -d)"
|
|
|
160
166
|
mkdir -p "$tmp_home/.codexclaude"
|
|
161
167
|
cat > "$tmp_home/.codexclaude/config.json" <<'JSON'
|
|
162
168
|
{
|
|
163
|
-
"version": "2.0.
|
|
169
|
+
"version": "2.0.32",
|
|
164
170
|
"serviceId": "codexapi",
|
|
165
171
|
"serviceLabel": "CodexAPI.pro",
|
|
166
172
|
"apiOrigin": "https://codexapi.pro",
|
|
167
173
|
"username": "test-token",
|
|
168
174
|
"dashboardEmail": null,
|
|
169
|
-
"model": "
|
|
175
|
+
"model": "gpt-5.6-sol",
|
|
170
176
|
"loggedInAt": "2026-07-10T00:00:00.000Z"
|
|
171
177
|
}
|
|
172
178
|
JSON
|
|
@@ -175,7 +181,7 @@ HOME="$tmp_home" CODEXCLAUDE_DISABLE_UPDATE_CHECK=1 CODEXCLAUDE_QUIET_STATUS=1 n
|
|
|
175
181
|
|
|
176
182
|
Verify the generated config contains:
|
|
177
183
|
|
|
178
|
-
- `model = "gpt-5.6"`
|
|
184
|
+
- `model = "gpt-5.6-sol"`
|
|
179
185
|
- `model_reasoning_effort = "xhigh"`
|
|
180
186
|
- `check_for_update_on_startup = false`
|
|
181
187
|
- `approval_policy = "never"`
|
|
@@ -199,10 +205,18 @@ After packaging, copy the tarball to the public downloads directories, restart t
|
|
|
199
205
|
|
|
200
206
|
```bash
|
|
201
207
|
curl -fsS "https://codexapi.pro/api/v1/codexclaude/version?current=2.0.17"
|
|
202
|
-
curl -fsSI "https://codexapi.pro/downloads/codexapi-codexclaude-2.0.
|
|
208
|
+
curl -fsSI "https://codexapi.pro/downloads/codexapi-codexclaude-2.0.32.tgz"
|
|
203
209
|
```
|
|
204
210
|
|
|
205
|
-
The version endpoint must report `latestVersion = 2.0.
|
|
211
|
+
The version endpoint must report `latestVersion = 2.0.32`, `minimumVersion = 2.0.32`, and `updateRequired = true` for every older client.
|
|
212
|
+
|
|
213
|
+
## Version 2.0.32 Changes
|
|
214
|
+
|
|
215
|
+
- Updated the bundled coding runtime to `@openai/codex@0.148.0-alpha.6`.
|
|
216
|
+
- Made GPT-5.6 SOL with visible Extra High reasoning the default for new and invalid configurations.
|
|
217
|
+
- Made mandatory updates a press-Enter action with automatic hosted-package fallback and automatic relaunch.
|
|
218
|
+
- Preserved valid existing model selections, Full Access, local tools, managed login, safe command aliases, and customer-only update checks.
|
|
219
|
+
- Made `2.0.32` mandatory so setup scripts and installed clients use the same runtime and model catalog.
|
|
206
220
|
|
|
207
221
|
## Version 2.0.30 Changes
|
|
208
222
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codexapi/codexclaude",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.32",
|
|
4
4
|
"description": "MagnetAPI.org Codex CLI for GPT-5.6, Opus 5, Opus 4.8, Sonnet 5, and Fable 5.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"node": ">=20"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@openai/codex": "0.
|
|
25
|
+
"@openai/codex": "0.148.0-alpha.6"
|
|
26
26
|
},
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"access": "public"
|