codex-multi-auth 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +1 -2
- package/config/README.md +1 -1
- package/config/codex-modern.json +139 -0
- package/dist/lib/constants.d.ts +19 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +19 -0
- package/dist/lib/request/helpers/model-map.d.ts +2 -1
- package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
- package/dist/lib/request/helpers/model-map.js +96 -0
- package/dist/lib/request/request-transformer.d.ts.map +1 -1
- package/dist/lib/request/request-transformer.js +26 -13
- package/dist/lib/types.d.ts +8 -2
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/usage/pricing.d.ts.map +1 -1
- package/dist/lib/usage/pricing.js +18 -0
- package/package.json +1 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-multi-auth",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Install and operate codex-multi-auth for the official @openai/codex CLI with multi-account OAuth rotation, switching, health checks, and recovery tools.",
|
|
5
5
|
"interface": {
|
|
6
6
|
"composerIcon": "./assets/codex-multi-auth-icon.svg"
|
|
7
7
|
},
|
|
8
8
|
"skills": "./skills/"
|
|
9
9
|
}
|
|
10
|
-
|
package/config/README.md
CHANGED
|
@@ -17,7 +17,7 @@ These files are optional model/provider templates for host/plugin configurations
|
|
|
17
17
|
|
|
18
18
|
## Defaults Included
|
|
19
19
|
|
|
20
|
-
- Current documented OpenAI/Codex model families (`gpt-5.5`, `gpt-5.4`, and `gpt-5.3-codex`)
|
|
20
|
+
- Current documented OpenAI/Codex model families (`gpt-5.6-sol`/`terra`/`luna`, `gpt-5.5`, `gpt-5.4`, and `gpt-5.3-codex`)
|
|
21
21
|
- `store: false`
|
|
22
22
|
- `include: ["reasoning.encrypted_content"]`
|
|
23
23
|
- Sensible fallback behavior for unsupported model entitlements
|
package/config/codex-modern.json
CHANGED
|
@@ -15,6 +15,145 @@
|
|
|
15
15
|
"store": false
|
|
16
16
|
},
|
|
17
17
|
"models": {
|
|
18
|
+
"gpt-5.6-sol": {
|
|
19
|
+
"name": "GPT 5.6 Sol (OAuth)",
|
|
20
|
+
"limit": {
|
|
21
|
+
"context": 372000,
|
|
22
|
+
"output": 128000
|
|
23
|
+
},
|
|
24
|
+
"modalities": {
|
|
25
|
+
"input": [
|
|
26
|
+
"text",
|
|
27
|
+
"image"
|
|
28
|
+
],
|
|
29
|
+
"output": [
|
|
30
|
+
"text"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"variants": {
|
|
34
|
+
"low": {
|
|
35
|
+
"reasoningEffort": "low",
|
|
36
|
+
"reasoningSummary": "auto",
|
|
37
|
+
"textVerbosity": "medium"
|
|
38
|
+
},
|
|
39
|
+
"medium": {
|
|
40
|
+
"reasoningEffort": "medium",
|
|
41
|
+
"reasoningSummary": "auto",
|
|
42
|
+
"textVerbosity": "medium"
|
|
43
|
+
},
|
|
44
|
+
"high": {
|
|
45
|
+
"reasoningEffort": "high",
|
|
46
|
+
"reasoningSummary": "detailed",
|
|
47
|
+
"textVerbosity": "medium"
|
|
48
|
+
},
|
|
49
|
+
"xhigh": {
|
|
50
|
+
"reasoningEffort": "xhigh",
|
|
51
|
+
"reasoningSummary": "detailed",
|
|
52
|
+
"textVerbosity": "medium"
|
|
53
|
+
},
|
|
54
|
+
"max": {
|
|
55
|
+
"reasoningEffort": "max",
|
|
56
|
+
"reasoningSummary": "detailed",
|
|
57
|
+
"textVerbosity": "medium"
|
|
58
|
+
},
|
|
59
|
+
"ultra": {
|
|
60
|
+
"reasoningEffort": "ultra",
|
|
61
|
+
"reasoningSummary": "detailed",
|
|
62
|
+
"textVerbosity": "medium"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"gpt-5.6-terra": {
|
|
67
|
+
"name": "GPT 5.6 Terra (OAuth)",
|
|
68
|
+
"limit": {
|
|
69
|
+
"context": 372000,
|
|
70
|
+
"output": 128000
|
|
71
|
+
},
|
|
72
|
+
"modalities": {
|
|
73
|
+
"input": [
|
|
74
|
+
"text",
|
|
75
|
+
"image"
|
|
76
|
+
],
|
|
77
|
+
"output": [
|
|
78
|
+
"text"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"variants": {
|
|
82
|
+
"low": {
|
|
83
|
+
"reasoningEffort": "low",
|
|
84
|
+
"reasoningSummary": "auto",
|
|
85
|
+
"textVerbosity": "medium"
|
|
86
|
+
},
|
|
87
|
+
"medium": {
|
|
88
|
+
"reasoningEffort": "medium",
|
|
89
|
+
"reasoningSummary": "auto",
|
|
90
|
+
"textVerbosity": "medium"
|
|
91
|
+
},
|
|
92
|
+
"high": {
|
|
93
|
+
"reasoningEffort": "high",
|
|
94
|
+
"reasoningSummary": "detailed",
|
|
95
|
+
"textVerbosity": "medium"
|
|
96
|
+
},
|
|
97
|
+
"xhigh": {
|
|
98
|
+
"reasoningEffort": "xhigh",
|
|
99
|
+
"reasoningSummary": "detailed",
|
|
100
|
+
"textVerbosity": "medium"
|
|
101
|
+
},
|
|
102
|
+
"max": {
|
|
103
|
+
"reasoningEffort": "max",
|
|
104
|
+
"reasoningSummary": "detailed",
|
|
105
|
+
"textVerbosity": "medium"
|
|
106
|
+
},
|
|
107
|
+
"ultra": {
|
|
108
|
+
"reasoningEffort": "ultra",
|
|
109
|
+
"reasoningSummary": "detailed",
|
|
110
|
+
"textVerbosity": "medium"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"gpt-5.6-luna": {
|
|
115
|
+
"name": "GPT 5.6 Luna (OAuth)",
|
|
116
|
+
"limit": {
|
|
117
|
+
"context": 372000,
|
|
118
|
+
"output": 128000
|
|
119
|
+
},
|
|
120
|
+
"modalities": {
|
|
121
|
+
"input": [
|
|
122
|
+
"text",
|
|
123
|
+
"image"
|
|
124
|
+
],
|
|
125
|
+
"output": [
|
|
126
|
+
"text"
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
"variants": {
|
|
130
|
+
"low": {
|
|
131
|
+
"reasoningEffort": "low",
|
|
132
|
+
"reasoningSummary": "auto",
|
|
133
|
+
"textVerbosity": "medium"
|
|
134
|
+
},
|
|
135
|
+
"medium": {
|
|
136
|
+
"reasoningEffort": "medium",
|
|
137
|
+
"reasoningSummary": "auto",
|
|
138
|
+
"textVerbosity": "medium"
|
|
139
|
+
},
|
|
140
|
+
"high": {
|
|
141
|
+
"reasoningEffort": "high",
|
|
142
|
+
"reasoningSummary": "detailed",
|
|
143
|
+
"textVerbosity": "medium"
|
|
144
|
+
},
|
|
145
|
+
"xhigh": {
|
|
146
|
+
"reasoningEffort": "xhigh",
|
|
147
|
+
"reasoningSummary": "detailed",
|
|
148
|
+
"textVerbosity": "medium"
|
|
149
|
+
},
|
|
150
|
+
"max": {
|
|
151
|
+
"reasoningEffort": "max",
|
|
152
|
+
"reasoningSummary": "detailed",
|
|
153
|
+
"textVerbosity": "medium"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
18
157
|
"gpt-5.5": {
|
|
19
158
|
"name": "GPT 5.5 (OAuth)",
|
|
20
159
|
"limit": {
|
package/dist/lib/constants.d.ts
CHANGED
|
@@ -85,4 +85,23 @@ export declare const ACCOUNT_LIMITS: {
|
|
|
85
85
|
/** Number of consecutive auth failures before auto-removing account */
|
|
86
86
|
readonly MAX_AUTH_FAILURES_BEFORE_REMOVAL: 3;
|
|
87
87
|
};
|
|
88
|
+
/**
|
|
89
|
+
* Every reasoning-effort level, weakest first.
|
|
90
|
+
*
|
|
91
|
+
* Single source of truth: the effort union and the model-id suffix pattern in
|
|
92
|
+
* `lib/request/request-transformer.ts` are both derived from this, so a new
|
|
93
|
+
* tier cannot be added to one and forgotten in the other.
|
|
94
|
+
*
|
|
95
|
+
* `max` and `ultra` arrived with GPT-5.6.
|
|
96
|
+
*/
|
|
97
|
+
export declare const REASONING_EFFORTS: readonly ["none", "minimal", "low", "medium", "high", "xhigh", "max", "ultra"];
|
|
98
|
+
/**
|
|
99
|
+
* `ultra` is selectable but never reaches the wire: Codex rewrites it to `max`
|
|
100
|
+
* before the request is sent (see `reasoning_effort_for_request` in
|
|
101
|
+
* codex-rs/core/src/client.rs). It denotes automatic subagent delegation on the
|
|
102
|
+
* client, not a distinct backend effort level.
|
|
103
|
+
*/
|
|
104
|
+
export type ModelReasoningEffort = (typeof REASONING_EFFORTS)[number];
|
|
105
|
+
/** Effort levels the Responses API actually accepts. */
|
|
106
|
+
export type WireReasoningEffort = Exclude<ModelReasoningEffort, "ultra">;
|
|
88
107
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,uDAAuD;AACvD,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,uCAAuC;AACvC,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE,gEAAgE;AAChE,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,yEAAyE;AACzE,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAA0B,CAAC;AAE/D,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;;;;;;;;CAUd,CAAC;AAEX,8BAA8B;AAC9B,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX,oCAAoC;AACpC,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX,wBAAwB;AACxB,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,cAAc,EAAG,6BAAsC,CAAC;AAErE,qBAAqB;AACrB,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,qCAAqC;AACrC,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,iCAAiC;AACjC,eAAO,MAAM,WAAW;;;;;;CAQd,CAAC;AAEX,kCAAkC;AAClC,eAAO,MAAM,cAAc;IAC1B,8DAA8D;;IAE9D,sEAAsE;;IAEtE,uEAAuE;;CAE9D,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,uDAAuD;AACvD,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,uCAAuC;AACvC,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE,gEAAgE;AAChE,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,yEAAyE;AACzE,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAA0B,CAAC;AAE/D,wBAAwB;AACxB,eAAO,MAAM,WAAW;;;;;;;;;;CAUd,CAAC;AAEX,8BAA8B;AAC9B,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX,oCAAoC;AACpC,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX,wBAAwB;AACxB,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,cAAc,EAAG,6BAAsC,CAAC;AAErE,qBAAqB;AACrB,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,qCAAqC;AACrC,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,iCAAiC;AACjC,eAAO,MAAM,WAAW;;;;;;CAQd,CAAC;AAEX,kCAAkC;AAClC,eAAO,MAAM,cAAc;IAC1B,8DAA8D;;IAE9D,sEAAsE;;IAEtE,uEAAuE;;CAE9D,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,gFASpB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,wDAAwD;AACxD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC"}
|
package/dist/lib/constants.js
CHANGED
|
@@ -85,3 +85,22 @@ export const ACCOUNT_LIMITS = {
|
|
|
85
85
|
/** Number of consecutive auth failures before auto-removing account */
|
|
86
86
|
MAX_AUTH_FAILURES_BEFORE_REMOVAL: 3,
|
|
87
87
|
};
|
|
88
|
+
/**
|
|
89
|
+
* Every reasoning-effort level, weakest first.
|
|
90
|
+
*
|
|
91
|
+
* Single source of truth: the effort union and the model-id suffix pattern in
|
|
92
|
+
* `lib/request/request-transformer.ts` are both derived from this, so a new
|
|
93
|
+
* tier cannot be added to one and forgotten in the other.
|
|
94
|
+
*
|
|
95
|
+
* `max` and `ultra` arrived with GPT-5.6.
|
|
96
|
+
*/
|
|
97
|
+
export const REASONING_EFFORTS = [
|
|
98
|
+
"none",
|
|
99
|
+
"minimal",
|
|
100
|
+
"low",
|
|
101
|
+
"medium",
|
|
102
|
+
"high",
|
|
103
|
+
"xhigh",
|
|
104
|
+
"max",
|
|
105
|
+
"ultra",
|
|
106
|
+
];
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* tool-surface metadata so routing logic stays consistent across the request
|
|
7
7
|
* transformer, prompt selection, and CLI diagnostics.
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
import type { ModelReasoningEffort, WireReasoningEffort } from "../../constants.js";
|
|
10
|
+
export type { ModelReasoningEffort, WireReasoningEffort };
|
|
10
11
|
export type PromptModelFamily = "gpt-5-codex" | "codex-max" | "codex" | "gpt-5.2" | "gpt-5.1";
|
|
11
12
|
/**
|
|
12
13
|
* Model family type for prompt selection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-map.d.ts","sourceRoot":"","sources":["../../../../lib/request/helpers/model-map.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"model-map.d.ts","sourceRoot":"","sources":["../../../../lib/request/helpers/model-map.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAC1B,aAAa,GACb,WAAW,GACX,OAAO,GACP,SAAS,GACT,SAAS,CAAC;AAEb;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAMvC,CAAC;AAEX,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAChC,sBAAsB,EAAE,oBAAoB,CAAC;IAC7C,yBAAyB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3D,YAAY,EAAE,iBAAiB,CAAC;CAChC;AA6CD,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,aAAa,YAAY,CAAC;AAKvC,eAAO,MAAM,uBAAuB,kFAM1B,CAAC;AA4EX;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA6G9C,CAAC;AAEX,QAAA,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAC;AAqG7C,OAAO,EAAE,SAAS,EAAE,CAAC;AAoKrB;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQtE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CA2BxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAavE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAEjF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD"}
|
|
@@ -65,6 +65,33 @@ export const QUOTA_PROBE_MODEL_CHAIN = [
|
|
|
65
65
|
"gpt-5-codex",
|
|
66
66
|
];
|
|
67
67
|
const LEGACY_CODEX_MODEL = "gpt-5-codex";
|
|
68
|
+
/**
|
|
69
|
+
* GPT-5.6 tiers, per the upstream Codex catalog
|
|
70
|
+
* (openai/codex `codex-rs/models-manager/models.json`).
|
|
71
|
+
*
|
|
72
|
+
* Sol and Terra expose `ultra`; Luna stops at `max`. No tier accepts `none` or
|
|
73
|
+
* `minimal`, so those aliases are deliberately never generated for them.
|
|
74
|
+
*/
|
|
75
|
+
const GPT_5_6_SOL_MODEL = "gpt-5.6-sol";
|
|
76
|
+
const GPT_5_6_TERRA_MODEL = "gpt-5.6-terra";
|
|
77
|
+
const GPT_5_6_LUNA_MODEL = "gpt-5.6-luna";
|
|
78
|
+
/** Bare `gpt-5.6` is OpenAI's documented alias for the flagship (Sol) tier. */
|
|
79
|
+
const GPT_5_6_FLAGSHIP_ALIAS = "gpt-5.6";
|
|
80
|
+
const GPT_5_6_SOL_TERRA_EFFORTS = [
|
|
81
|
+
"low",
|
|
82
|
+
"medium",
|
|
83
|
+
"high",
|
|
84
|
+
"xhigh",
|
|
85
|
+
"max",
|
|
86
|
+
"ultra",
|
|
87
|
+
];
|
|
88
|
+
const GPT_5_6_LUNA_EFFORTS = [
|
|
89
|
+
"low",
|
|
90
|
+
"medium",
|
|
91
|
+
"high",
|
|
92
|
+
"xhigh",
|
|
93
|
+
"max",
|
|
94
|
+
];
|
|
68
95
|
const GPT_5_5_CANONICAL_MODEL = "gpt-5.5";
|
|
69
96
|
const GPT_5_5_PRO_CANONICAL_MODEL = "gpt-5.5-pro";
|
|
70
97
|
const GPT_5_5_RELEASE_MODEL = "gpt-5.5-2026-04-23";
|
|
@@ -143,6 +170,30 @@ export const MODEL_PROFILES = {
|
|
|
143
170
|
supportedReasoningEfforts: ["medium"],
|
|
144
171
|
capabilities: TOOL_CAPABILITIES.compactOnly,
|
|
145
172
|
},
|
|
173
|
+
// GPT-5.6 ships its base instructions inline in the upstream model catalog
|
|
174
|
+
// rather than as a `gpt_5_6_prompt.md`, so these stay on the GPT-5.2 prompt
|
|
175
|
+
// family alongside the other post-5.2 general models.
|
|
176
|
+
[GPT_5_6_SOL_MODEL]: {
|
|
177
|
+
normalizedModel: GPT_5_6_SOL_MODEL,
|
|
178
|
+
promptFamily: "gpt-5.2",
|
|
179
|
+
defaultReasoningEffort: "low",
|
|
180
|
+
supportedReasoningEfforts: GPT_5_6_SOL_TERRA_EFFORTS,
|
|
181
|
+
capabilities: TOOL_CAPABILITIES.full,
|
|
182
|
+
},
|
|
183
|
+
[GPT_5_6_TERRA_MODEL]: {
|
|
184
|
+
normalizedModel: GPT_5_6_TERRA_MODEL,
|
|
185
|
+
promptFamily: "gpt-5.2",
|
|
186
|
+
defaultReasoningEffort: "medium",
|
|
187
|
+
supportedReasoningEfforts: GPT_5_6_SOL_TERRA_EFFORTS,
|
|
188
|
+
capabilities: TOOL_CAPABILITIES.full,
|
|
189
|
+
},
|
|
190
|
+
[GPT_5_6_LUNA_MODEL]: {
|
|
191
|
+
normalizedModel: GPT_5_6_LUNA_MODEL,
|
|
192
|
+
promptFamily: "gpt-5.2",
|
|
193
|
+
defaultReasoningEffort: "medium",
|
|
194
|
+
supportedReasoningEfforts: GPT_5_6_LUNA_EFFORTS,
|
|
195
|
+
capabilities: TOOL_CAPABILITIES.full,
|
|
196
|
+
},
|
|
146
197
|
[GPT_5_5_CANONICAL_MODEL]: {
|
|
147
198
|
normalizedModel: GPT_5_5_CANONICAL_MODEL,
|
|
148
199
|
promptFamily: "gpt-5.2",
|
|
@@ -203,6 +254,24 @@ function addReasoningAliases(alias, normalizedModel) {
|
|
|
203
254
|
addAlias(`${alias}-${variant}`, normalizedModel);
|
|
204
255
|
}
|
|
205
256
|
}
|
|
257
|
+
/**
|
|
258
|
+
* Register a model plus one alias per effort it actually supports.
|
|
259
|
+
*
|
|
260
|
+
* Unlike `addReasoningAliases`, this does not assume the global variant list:
|
|
261
|
+
* GPT-5.6 rejects `none`/`minimal` and only Sol/Terra accept `ultra`.
|
|
262
|
+
*/
|
|
263
|
+
function addEffortAliases(alias, normalizedModel, efforts) {
|
|
264
|
+
addAlias(alias, normalizedModel);
|
|
265
|
+
for (const effort of efforts) {
|
|
266
|
+
addAlias(`${alias}-${effort}`, normalizedModel);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
function addGpt56Aliases() {
|
|
270
|
+
addEffortAliases(GPT_5_6_SOL_MODEL, GPT_5_6_SOL_MODEL, GPT_5_6_SOL_TERRA_EFFORTS);
|
|
271
|
+
addEffortAliases(GPT_5_6_TERRA_MODEL, GPT_5_6_TERRA_MODEL, GPT_5_6_SOL_TERRA_EFFORTS);
|
|
272
|
+
addEffortAliases(GPT_5_6_LUNA_MODEL, GPT_5_6_LUNA_MODEL, GPT_5_6_LUNA_EFFORTS);
|
|
273
|
+
addEffortAliases(GPT_5_6_FLAGSHIP_ALIAS, GPT_5_6_SOL_MODEL, GPT_5_6_SOL_TERRA_EFFORTS);
|
|
274
|
+
}
|
|
206
275
|
function addGeneralAliases() {
|
|
207
276
|
addReasoningAliases(GPT_5_5_CANONICAL_MODEL, GPT_5_5_CANONICAL_MODEL);
|
|
208
277
|
addReasoningAliases(GPT_5_5_RELEASE_MODEL, GPT_5_5_CANONICAL_MODEL);
|
|
@@ -240,6 +309,7 @@ function addCodexAliases() {
|
|
|
240
309
|
}
|
|
241
310
|
addCodexAliases();
|
|
242
311
|
addGeneralAliases();
|
|
312
|
+
addGpt56Aliases();
|
|
243
313
|
export { MODEL_MAP };
|
|
244
314
|
function stripProviderPrefix(modelId) {
|
|
245
315
|
return modelId.includes("/") ? (modelId.split("/").pop() ?? modelId) : modelId;
|
|
@@ -306,6 +376,28 @@ function resolveCodexCatalogModel(modelId) {
|
|
|
306
376
|
}
|
|
307
377
|
return undefined;
|
|
308
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Resolve GPT-5.6 identifiers that are not exact aliases (for example a future
|
|
381
|
+
* `gpt-5.6-terra-fast`).
|
|
382
|
+
*
|
|
383
|
+
* Without this, the general GPT-5 resolver sees minor `6`, finds no catalog
|
|
384
|
+
* entry, and silently falls back to the stable 5.5 model — running a different
|
|
385
|
+
* model than the caller asked for. Unrecognised tiers resolve to Sol, matching
|
|
386
|
+
* OpenAI's bare `gpt-5.6` alias.
|
|
387
|
+
*/
|
|
388
|
+
function resolveGpt56CatalogModel(modelId) {
|
|
389
|
+
const tokens = tokenizeModelId(modelId);
|
|
390
|
+
const gptIndex = tokens.indexOf("gpt");
|
|
391
|
+
const isGpt56 = gptIndex !== -1 && tokens[gptIndex + 1] === "5" && tokens[gptIndex + 2] === "6";
|
|
392
|
+
if (!isGpt56 || tokens.includes("codex")) {
|
|
393
|
+
return undefined;
|
|
394
|
+
}
|
|
395
|
+
if (tokens.includes("terra"))
|
|
396
|
+
return GPT_5_6_TERRA_MODEL;
|
|
397
|
+
if (tokens.includes("luna"))
|
|
398
|
+
return GPT_5_6_LUNA_MODEL;
|
|
399
|
+
return GPT_5_6_SOL_MODEL;
|
|
400
|
+
}
|
|
309
401
|
function resolveGeneralGpt5CatalogModel(modelId) {
|
|
310
402
|
const tokens = tokenizeModelId(modelId);
|
|
311
403
|
const gptIndex = tokens.indexOf("gpt");
|
|
@@ -378,6 +470,10 @@ export function resolveNormalizedModel(model) {
|
|
|
378
470
|
if (codexCatalogModel) {
|
|
379
471
|
return codexCatalogModel;
|
|
380
472
|
}
|
|
473
|
+
const gpt56CatalogModel = resolveGpt56CatalogModel(modelId);
|
|
474
|
+
if (gpt56CatalogModel) {
|
|
475
|
+
return gpt56CatalogModel;
|
|
476
|
+
}
|
|
381
477
|
const generalGpt5CatalogModel = resolveGeneralGpt5CatalogModel(modelId);
|
|
382
478
|
if (generalGpt5CatalogModel) {
|
|
383
479
|
return generalGpt5CatalogModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-transformer.d.ts","sourceRoot":"","sources":["../../../lib/request/request-transformer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request-transformer.d.ts","sourceRoot":"","sources":["../../../lib/request/request-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { logDebug, logWarn } from "../logger.js";
|
|
|
2
2
|
import { TOOL_REMAP_MESSAGE } from "../prompts/codex.js";
|
|
3
3
|
import { CODEX_HOST_BRIDGE } from "../prompts/codex-host-bridge.js";
|
|
4
4
|
import { getHostCodexPrompt } from "../prompts/host-codex-prompt.js";
|
|
5
|
+
import { REASONING_EFFORTS, } from "../constants.js";
|
|
5
6
|
import { getModelCapabilities, getModelProfile, resolveNormalizedModel, } from "./helpers/model-map.js";
|
|
6
7
|
import { filterHostSystemPromptsWithCachedPrompt, normalizeOrphanedToolOutputs, injectMissingToolOutputs, } from "./helpers/input-utils.js";
|
|
7
8
|
import { cleanupToolDefinitions } from "./helpers/tool-utils.js";
|
|
@@ -19,6 +20,18 @@ export { isHostSystemPrompt, filterHostSystemPromptsWithCachedPrompt, } from "./
|
|
|
19
20
|
export function normalizeModel(model) {
|
|
20
21
|
return resolveNormalizedModel(model);
|
|
21
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Matches a trailing reasoning-effort suffix on a model id.
|
|
25
|
+
*
|
|
26
|
+
* The alternation is derived from `REASONING_EFFORTS` so a new tier cannot be
|
|
27
|
+
* added to the union and silently forgotten here.
|
|
28
|
+
*
|
|
29
|
+
* `max` is split into its own alternative because it needs a lookbehind:
|
|
30
|
+
* `gpt-5.1-codex-max` is a model id that ends in `-max`, not Codex at `max`
|
|
31
|
+
* effort, and stripping it would reroute the request. The guard cannot wrap the
|
|
32
|
+
* whole group -- `gpt-5-codex-low` must still parse `low`.
|
|
33
|
+
*/
|
|
34
|
+
const VARIANT_SUFFIX_PATTERN = new RegExp(`(?:-(${REASONING_EFFORTS.filter((effort) => effort !== "max").join("|")})|(?<!codex)-(max))$`, "i");
|
|
22
35
|
/**
|
|
23
36
|
* Extract configuration for a specific model
|
|
24
37
|
* Merges global options with model-specific options (model-specific takes precedence)
|
|
@@ -32,21 +45,13 @@ export function getModelConfig(modelName, userConfig = { global: {}, models: {}
|
|
|
32
45
|
const stripProviderPrefix = (name) => name.includes("/") ? (name.split("/").pop() ?? name) : name;
|
|
33
46
|
const getVariantFromModelName = (name) => {
|
|
34
47
|
const stripped = stripProviderPrefix(name).toLowerCase();
|
|
35
|
-
const match = stripped.match(
|
|
48
|
+
const match = stripped.match(VARIANT_SUFFIX_PATTERN);
|
|
36
49
|
if (!match)
|
|
37
50
|
return undefined;
|
|
38
|
-
const variant = match[1];
|
|
39
|
-
|
|
40
|
-
variant === "minimal" ||
|
|
41
|
-
variant === "low" ||
|
|
42
|
-
variant === "medium" ||
|
|
43
|
-
variant === "high" ||
|
|
44
|
-
variant === "xhigh") {
|
|
45
|
-
return variant;
|
|
46
|
-
}
|
|
47
|
-
return undefined;
|
|
51
|
+
const variant = match[1] ?? match[2];
|
|
52
|
+
return REASONING_EFFORTS.find((effort) => effort === variant);
|
|
48
53
|
};
|
|
49
|
-
const removeVariantSuffix = (name) => stripProviderPrefix(name).replace(
|
|
54
|
+
const removeVariantSuffix = (name) => stripProviderPrefix(name).replace(VARIANT_SUFFIX_PATTERN, "");
|
|
50
55
|
const findModelEntry = (candidates) => {
|
|
51
56
|
for (const key of candidates) {
|
|
52
57
|
const entry = modelMap[key];
|
|
@@ -324,7 +329,11 @@ export function getReasoningConfig(modelName, userConfig = {}) {
|
|
|
324
329
|
const profile = getModelProfile(modelName);
|
|
325
330
|
const defaultEffort = profile.defaultReasoningEffort;
|
|
326
331
|
const requestedEffort = userConfig.reasoningEffort ?? defaultEffort;
|
|
327
|
-
const
|
|
332
|
+
const coercedEffort = coerceReasoningEffort(profile.normalizedModel, requestedEffort, profile.supportedReasoningEfforts, defaultEffort);
|
|
333
|
+
// `ultra` is a client-side tier: upstream Codex rewrites Ultra -> Max in
|
|
334
|
+
// `reasoning_effort_for_request` before the request leaves the client, so the
|
|
335
|
+
// API never sees it. Mirror that here rather than sending a value it rejects.
|
|
336
|
+
const effort = coercedEffort === "ultra" ? "max" : coercedEffort;
|
|
328
337
|
const summary = sanitizeReasoningSummary(userConfig.reasoningSummary);
|
|
329
338
|
return {
|
|
330
339
|
effort,
|
|
@@ -338,6 +347,10 @@ const REASONING_FALLBACKS = {
|
|
|
338
347
|
medium: ["medium", "low", "high", "minimal", "none", "xhigh"],
|
|
339
348
|
high: ["high", "medium", "xhigh", "low", "minimal", "none"],
|
|
340
349
|
xhigh: ["xhigh", "high", "medium", "low", "minimal", "none"],
|
|
350
|
+
// `max` and `ultra` only exist on GPT-5.6. Step down one rung at a time so a
|
|
351
|
+
// request against a pre-5.6 model lands on that model's strongest tier.
|
|
352
|
+
max: ["max", "xhigh", "high", "medium", "low", "minimal", "none"],
|
|
353
|
+
ultra: ["ultra", "max", "xhigh", "high", "medium", "low", "minimal", "none"],
|
|
341
354
|
};
|
|
342
355
|
function coerceReasoningEffort(modelName, effort, supportedEfforts, defaultEffort) {
|
|
343
356
|
if (supportedEfforts.includes(effort)) {
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Auth, Provider, Model } from "@codex-ai/sdk";
|
|
2
|
+
import type { ModelReasoningEffort, WireReasoningEffort } from "./constants.js";
|
|
2
3
|
export type { PluginConfigFromSchema as PluginConfig, AccountIdSourceFromSchema as AccountIdSource, TokenSuccessFromSchema as TokenSuccess, TokenFailureFromSchema as TokenFailure, TokenResultFromSchema as TokenResult, TokenFailureReasonFromSchema as TokenFailureReason, } from "./schemas.js";
|
|
3
4
|
export interface UserConfig {
|
|
4
5
|
global: ConfigOptions;
|
|
@@ -13,7 +14,8 @@ export interface UserConfig {
|
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
export interface ConfigOptions {
|
|
16
|
-
|
|
17
|
+
/** `ultra` is accepted here but always resolves to `max` before the request. */
|
|
18
|
+
reasoningEffort?: ModelReasoningEffort;
|
|
17
19
|
reasoningSummary?: "auto" | "concise" | "detailed" | "off" | "on";
|
|
18
20
|
textVerbosity?: "low" | "medium" | "high";
|
|
19
21
|
promptCacheRetention?: PromptCacheRetention;
|
|
@@ -21,7 +23,11 @@ export interface ConfigOptions {
|
|
|
21
23
|
}
|
|
22
24
|
export type PromptCacheRetention = "5m" | "1h" | "24h" | "7d" | (string & {});
|
|
23
25
|
export interface ReasoningConfig {
|
|
24
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Effort as sent to the API. `ultra` is absent by construction: it is a
|
|
28
|
+
* client-side tier that always resolves to `max` before the request is built.
|
|
29
|
+
*/
|
|
30
|
+
effort: WireReasoningEffort;
|
|
25
31
|
summary: "auto" | "concise" | "detailed";
|
|
26
32
|
}
|
|
27
33
|
export interface ToolParametersSchema {
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../lib/usage/pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../lib/usage/pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAgED,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,iBAAiB,GAAG,IAAI,CAM1B;AAED,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,MAAM,EAAE,gBAAgB,GACtB,MAAM,GAAG,IAAI,CAqBf;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEzE"}
|
|
@@ -35,6 +35,24 @@ const MODEL_PRICING = {
|
|
|
35
35
|
cachedInputUsdPerMillion: 0.2,
|
|
36
36
|
reasoningUsdPerMillion: 12,
|
|
37
37
|
},
|
|
38
|
+
"gpt-5.6-sol": {
|
|
39
|
+
inputUsdPerMillion: 5,
|
|
40
|
+
outputUsdPerMillion: 30,
|
|
41
|
+
cachedInputUsdPerMillion: 0.5,
|
|
42
|
+
reasoningUsdPerMillion: 30,
|
|
43
|
+
},
|
|
44
|
+
"gpt-5.6-terra": {
|
|
45
|
+
inputUsdPerMillion: 2.5,
|
|
46
|
+
outputUsdPerMillion: 15,
|
|
47
|
+
cachedInputUsdPerMillion: 0.25,
|
|
48
|
+
reasoningUsdPerMillion: 15,
|
|
49
|
+
},
|
|
50
|
+
"gpt-5.6-luna": {
|
|
51
|
+
inputUsdPerMillion: 1,
|
|
52
|
+
outputUsdPerMillion: 6,
|
|
53
|
+
cachedInputUsdPerMillion: 0.1,
|
|
54
|
+
reasoningUsdPerMillion: 6,
|
|
55
|
+
},
|
|
38
56
|
};
|
|
39
57
|
function normalizeModelName(model) {
|
|
40
58
|
const trimmed = model?.trim().toLowerCase();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-multi-auth",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Codex CLI multi-account OAuth manager with account switching, health checks, runtime rotation, diagnostics, and recovery tools for @openai/codex",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|