@bitkyc08/opencodex 2.24.1 → 2.25.0-preview.20260818
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/gui/dist/assets/{index-C3FiAveG.js → index-TFd4xi1L.js} +8 -8
- package/gui/dist/index.html +1 -1
- package/package.json +1 -1
- package/src/adapters/anthropic.ts +42 -0
- package/src/adapters/client-fingerprint.ts +9 -5
- package/src/adapters/cline-pass-deepseek-v4-tool-replay.ts +69 -0
- package/src/adapters/command-code.ts +17 -0
- package/src/adapters/cursor/cursor-errors.ts +49 -0
- package/src/adapters/cursor/live-models.ts +36 -2
- package/src/adapters/cursor/live-transport.ts +55 -4
- package/src/adapters/cursor/native-exec.ts +9 -0
- package/src/adapters/cursor/protobuf-request.ts +160 -9
- package/src/adapters/cursor/request-builder.ts +9 -1
- package/src/adapters/cursor/tool-definitions.ts +7 -2
- package/src/adapters/google-antigravity-wire.ts +1 -1
- package/src/adapters/google.ts +30 -12
- package/src/adapters/openai-responses-url.ts +5 -3
- package/src/adapters/registry.ts +3 -1
- package/src/adapters/tool-catalog-nudge.ts +76 -9
- package/src/bridge.ts +53 -9
- package/src/claude/context-windows.ts +2 -2
- package/src/claude/desktop-3p.ts +6 -6
- package/src/claude/model-info.ts +2 -2
- package/src/cli/claude-desktop.ts +2 -3
- package/src/codex/app-server-processes.ts +69 -35
- package/src/codex/catalog/metadata.ts +29 -10
- package/src/codex/catalog/provider-fetch.ts +21 -11
- package/src/codex/catalog.ts +1 -1
- package/src/codex/injected-marker.ts +9 -3
- package/src/codex/user-identity.ts +88 -6
- package/src/config.ts +1 -0
- package/src/generated/compatibility-version.json +61 -53
- package/src/grok/sync.ts +2 -4
- package/src/lab/projection/rebuild.ts +36 -18
- package/src/lib/windows-elevation.ts +18 -3
- package/src/lib/windows-secret-acl.ts +49 -19
- package/src/oauth/google-antigravity.ts +7 -2
- package/src/providers/antigravity-models.ts +126 -17
- package/src/providers/derive.ts +11 -1
- package/src/responses/parser.ts +4 -0
- package/src/responses/reasoning-replay-cache.ts +16 -1
- package/src/responses/thought-signature-replay.ts +17 -1
- package/src/responses/truncated-stop-reason.ts +60 -0
- package/src/router.ts +2 -10
- package/src/routing/capability.ts +5 -6
- package/src/server/index.ts +3 -4
- package/src/server/management/agent-settings-routes.ts +5 -5
- package/src/server/management/config-routes.ts +2 -2
- package/src/server/management/context.ts +2 -0
- package/src/server/management/native-integration-routes.ts +3 -3
- package/src/server/management/provider-routes.ts +22 -0
- package/src/server/management/shared.ts +4 -4
- package/src/server/management-api.ts +2 -2
- package/src/server/request-log.ts +11 -3
- package/src/server/responses/core.ts +4 -1
- package/src/server/responses/input-admission.ts +13 -10
- package/src/server/system-env.ts +3 -3
- package/src/types.ts +13 -1
|
@@ -39,6 +39,31 @@ const SID_PATTERN = /^S-1-(?:\d+-)+\d+$/i;
|
|
|
39
39
|
*/
|
|
40
40
|
const WINDOWS_POWERSHELL_LOOKUP_TIMEOUT_MS = 8_000;
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* FOLDERID_LocalAppData, and the flag that makes the lookup ignore the caller's
|
|
44
|
+
* environment.
|
|
45
|
+
*
|
|
46
|
+
* The obvious spelling, .NET's
|
|
47
|
+
* `GetFolderPath(SpecialFolder.LocalApplicationData)`, is unusable here: on
|
|
48
|
+
* Windows it resolves through `USERPROFILE`, and when the profile named there has
|
|
49
|
+
* no local AppData directory on disk it returns an EMPTY STRING rather than an
|
|
50
|
+
* error. Any
|
|
51
|
+
* caller that redirected `USERPROFILE` (the test sandbox does, and so does a
|
|
52
|
+
* service account whose profile has not been materialized) therefore refused every
|
|
53
|
+
* coordinator lookup with "returned an empty value", which is the exact
|
|
54
|
+
* environment dependence this module exists to eliminate.
|
|
55
|
+
*
|
|
56
|
+
* `SHGetKnownFolderPath` with a null token and `KF_FLAG_DEFAULT_PATH` reads the
|
|
57
|
+
* known-folder registration for the effective token instead: it returns the real
|
|
58
|
+
* per-user path whether or not the directory exists, and it is unaffected by
|
|
59
|
+
* `USERPROFILE`, `LOCALAPPDATA`, `HOMEDRIVE`, or `HOMEPATH`. A non-null token argument
|
|
60
|
+
* is NOT equivalent: passing (HANDLE)-1 resolves the DEFAULT USER profile
|
|
61
|
+
* (the built-in "Default" profile), which would key coordination to a namespace
|
|
62
|
+
* no real account writes to.
|
|
63
|
+
*/
|
|
64
|
+
const WINDOWS_LOCAL_APPDATA_FOLDER_ID = "F1B32785-6FBA-4FCF-9D55-7B8E7F157091";
|
|
65
|
+
const WINDOWS_KF_FLAG_DEFAULT_PATH = "0x00000400";
|
|
66
|
+
|
|
42
67
|
export class CodexUserIdentityRefusal extends Error {
|
|
43
68
|
readonly code = "CODEX_USER_IDENTITY_REFUSED";
|
|
44
69
|
|
|
@@ -93,6 +118,42 @@ export function windowsIdentityPowerShellCommandForTests(expression: string): st
|
|
|
93
118
|
return windowsIdentityPowerShellCommand(expression);
|
|
94
119
|
}
|
|
95
120
|
|
|
121
|
+
/**
|
|
122
|
+
* PowerShell expression yielding the effective account's local AppData path.
|
|
123
|
+
*
|
|
124
|
+
* P/Invoke rather than a .NET convenience wrapper, for the reason recorded on
|
|
125
|
+
* WINDOWS_LOCAL_APPDATA_FOLDER_ID: the wrapper follows `USERPROFILE` and answers
|
|
126
|
+
* an empty string for a profile whose directory is absent, which is precisely
|
|
127
|
+
* the environment dependence this module refuses to inherit. The type is added
|
|
128
|
+
* under a unique name per process because `Add-Type` cannot redefine one.
|
|
129
|
+
*
|
|
130
|
+
* The whole sequence is wrapped in one `$(...)` subexpression because the caller
|
|
131
|
+
* substitutes this text into `[string](<expression>)`; several statements
|
|
132
|
+
* spliced in bare would close that cast's parenthesis early and fail to parse.
|
|
133
|
+
*/
|
|
134
|
+
function windowsLocalAppDataExpression(): string {
|
|
135
|
+
const signature =
|
|
136
|
+
'[DllImport("shell32.dll", CharSet = CharSet.Unicode)] public static extern int '
|
|
137
|
+
+ 'SHGetKnownFolderPath(ref System.Guid id, uint flags, System.IntPtr token, out System.IntPtr path);';
|
|
138
|
+
const statements = [
|
|
139
|
+
`$ocxShell = Add-Type -MemberDefinition '${signature}'`
|
|
140
|
+
+ " -Name OcxKnownFolder -Namespace OcxIdentity -PassThru",
|
|
141
|
+
`$ocxFolderId = [System.Guid]'${WINDOWS_LOCAL_APPDATA_FOLDER_ID}'`,
|
|
142
|
+
"$ocxPathPtr = [System.IntPtr]::Zero",
|
|
143
|
+
"$ocxHr = $ocxShell::SHGetKnownFolderPath([ref]$ocxFolderId, "
|
|
144
|
+
+ `${WINDOWS_KF_FLAG_DEFAULT_PATH}, [System.IntPtr]::Zero, [ref]$ocxPathPtr)`,
|
|
145
|
+
"if ($ocxHr -ne 0) { throw 'SHGetKnownFolderPath failed' }",
|
|
146
|
+
"try { [System.Runtime.InteropServices.Marshal]::PtrToStringUni($ocxPathPtr) }"
|
|
147
|
+
+ " finally { [System.Runtime.InteropServices.Marshal]::FreeCoTaskMem($ocxPathPtr) }",
|
|
148
|
+
];
|
|
149
|
+
return `$(${statements.join("; ")})`;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** Test-only readback of the environment-independent known-folder expression. */
|
|
153
|
+
export function windowsLocalAppDataExpressionForTests(): string {
|
|
154
|
+
return windowsLocalAppDataExpression();
|
|
155
|
+
}
|
|
156
|
+
|
|
96
157
|
/** Test-only readback of the spawn options shared by the identity lookups (#1278). */
|
|
97
158
|
export function windowsIdentityPowerShellSpawnOptionsForTests(): ReturnType<
|
|
98
159
|
typeof windowsIdentityPowerShellSpawnOptions
|
|
@@ -122,7 +183,31 @@ export function decodeWindowsIdentityPowerShellOutputForTests(output: Uint8Array
|
|
|
122
183
|
return decodeWindowsIdentityPowerShellOutput(output);
|
|
123
184
|
}
|
|
124
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Per-process memo for the Windows lookups.
|
|
188
|
+
*
|
|
189
|
+
* Both values -- the effective token's SID and its known-folder local AppData --
|
|
190
|
+
* are fixed for the lifetime of a process: neither can change without a new logon
|
|
191
|
+
* token, and the lookups deliberately ignore the environment, so nothing a caller
|
|
192
|
+
* does between two calls can alter the answer. Each call otherwise spawns a fresh
|
|
193
|
+
* PowerShell, roughly 150ms for the SID and 310ms for the folder, and the
|
|
194
|
+
* coordinator asks for both on every config write and lock acquisition. That cost
|
|
195
|
+
* pushed real multi-process injection tests past their budget while proving
|
|
196
|
+
* nothing: the second spawn re-derives what the first already established.
|
|
197
|
+
*
|
|
198
|
+
* Only successful lookups are memoized, so a transient failure cannot pin the
|
|
199
|
+
* process into a permanently refusing state.
|
|
200
|
+
*/
|
|
201
|
+
const windowsIdentityValueCache = new Map<string, string>();
|
|
202
|
+
|
|
203
|
+
/** Test-only reset so a suite can force a fresh lookup. */
|
|
204
|
+
export function resetWindowsIdentityValueCacheForTests(): void {
|
|
205
|
+
windowsIdentityValueCache.clear();
|
|
206
|
+
}
|
|
207
|
+
|
|
125
208
|
function powershellValue(expression: string): string {
|
|
209
|
+
const memoized = windowsIdentityValueCache.get(expression);
|
|
210
|
+
if (memoized !== undefined) return memoized;
|
|
126
211
|
let command: string[];
|
|
127
212
|
try {
|
|
128
213
|
command = windowsIdentityPowerShellCommand(expression);
|
|
@@ -145,6 +230,7 @@ function powershellValue(expression: string): string {
|
|
|
145
230
|
if (result.exitCode !== 0) refuse("Windows effective-account lookup failed.");
|
|
146
231
|
const value = decodeWindowsIdentityPowerShellOutput(result.stdout ?? Buffer.alloc(0));
|
|
147
232
|
if (!value) refuse("Windows effective-account lookup returned an empty value.");
|
|
233
|
+
windowsIdentityValueCache.set(expression, value);
|
|
148
234
|
return value;
|
|
149
235
|
}
|
|
150
236
|
|
|
@@ -265,9 +351,7 @@ export function probeCodexCoordinatorNamespace(identity: UserIdentity): Coordina
|
|
|
265
351
|
}
|
|
266
352
|
|
|
267
353
|
if (!SID_PATTERN.test(identity.sid)) refuse("The coordinator identity contains an invalid SID.");
|
|
268
|
-
const localAppData = powershellValue(
|
|
269
|
-
"[Environment]::GetFolderPath([Environment+SpecialFolder]::LocalApplicationData)",
|
|
270
|
-
);
|
|
354
|
+
const localAppData = powershellValue(windowsLocalAppDataExpression());
|
|
271
355
|
if (!isAbsolute(localAppData)) refuse("Windows LocalAppData resolution returned a relative path.");
|
|
272
356
|
const root = resolve(localAppData, "OpenCodex", "Runtime", "v1", identity.sid.toUpperCase());
|
|
273
357
|
let entry;
|
|
@@ -297,9 +381,7 @@ export function probeCodexCoordinatorNamespace(identity: UserIdentity): Coordina
|
|
|
297
381
|
|
|
298
382
|
function resolveWindowsRuntimeRoot(identity: Extract<UserIdentity, { platform: "win32" }>): string {
|
|
299
383
|
if (!SID_PATTERN.test(identity.sid)) refuse("The coordinator identity contains an invalid SID.");
|
|
300
|
-
const localAppData = powershellValue(
|
|
301
|
-
"[Environment]::GetFolderPath([Environment+SpecialFolder]::LocalApplicationData)",
|
|
302
|
-
);
|
|
384
|
+
const localAppData = powershellValue(windowsLocalAppDataExpression());
|
|
303
385
|
if (!isAbsolute(localAppData)) refuse("Windows LocalAppData resolution returned a relative path.");
|
|
304
386
|
|
|
305
387
|
// The SID and known-folder values come from the effective token/.NET OS APIs,
|
package/src/config.ts
CHANGED
|
@@ -741,6 +741,7 @@ const providerConfigSchema = z.object({
|
|
|
741
741
|
upstreamHttpVersion: z.enum(UPSTREAM_HTTP_VERSION_VALUES)
|
|
742
742
|
.nullish()
|
|
743
743
|
.transform(value => value ?? undefined),
|
|
744
|
+
directGeminiWireRenames: z.boolean().optional(),
|
|
744
745
|
noStructuredOutputModels: z.array(z.string().min(1))
|
|
745
746
|
.transform(normalizeNonBlankStringArray)
|
|
746
747
|
.optional(),
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"path": "package.json",
|
|
13
|
-
"sha256": "
|
|
13
|
+
"sha256": "5518c7d4c2c58ae41036421c3ad06ac7cb84ca2857a881b6616d817299b48b3e"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
"path": "scripts/model-metadata.source.json",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
"path": "src/adapters/anthropic.ts",
|
|
37
|
-
"sha256": "
|
|
37
|
+
"sha256": "afd6f5ef9fab45811c67067bdb6731fc8efa3abb7bc2a7bee109445ca9c06467"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
"path": "src/adapters/azure.ts",
|
|
@@ -46,11 +46,15 @@
|
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"path": "src/adapters/client-fingerprint.ts",
|
|
49
|
-
"sha256": "
|
|
49
|
+
"sha256": "70c6e0bf49d942e352396bd6c2983a1456b6ee96497537f4175674e99627223b"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"path": "src/adapters/cline-pass-deepseek-v4-tool-replay.ts",
|
|
53
|
+
"sha256": "da664327db4e0bae8ab689230deec415ad3f6d0f18c596dcc5b94c8a8d08a345"
|
|
50
54
|
},
|
|
51
55
|
{
|
|
52
56
|
"path": "src/adapters/command-code.ts",
|
|
53
|
-
"sha256": "
|
|
57
|
+
"sha256": "9b4a9eb9ab8c37541d0478ee50d28ea94b9dee127f75fbc85004ca264af67aaa"
|
|
54
58
|
},
|
|
55
59
|
{
|
|
56
60
|
"path": "src/adapters/cursor.ts",
|
|
@@ -66,7 +70,7 @@
|
|
|
66
70
|
},
|
|
67
71
|
{
|
|
68
72
|
"path": "src/adapters/cursor/cursor-errors.ts",
|
|
69
|
-
"sha256": "
|
|
73
|
+
"sha256": "aa27cf53056f48c4ed4ccc2262d5a84c0b96b79a3a77db5be7ca27256dfba9c4"
|
|
70
74
|
},
|
|
71
75
|
{
|
|
72
76
|
"path": "src/adapters/cursor/discovery.ts",
|
|
@@ -94,7 +98,7 @@
|
|
|
94
98
|
},
|
|
95
99
|
{
|
|
96
100
|
"path": "src/adapters/cursor/live-models.ts",
|
|
97
|
-
"sha256": "
|
|
101
|
+
"sha256": "d1ded09df979a490d7b4fb2afb87829561fbc021bdc6f67ad0d122febd9b21e4"
|
|
98
102
|
},
|
|
99
103
|
{
|
|
100
104
|
"path": "src/adapters/cursor/live-smoke-gate.ts",
|
|
@@ -102,7 +106,7 @@
|
|
|
102
106
|
},
|
|
103
107
|
{
|
|
104
108
|
"path": "src/adapters/cursor/live-transport.ts",
|
|
105
|
-
"sha256": "
|
|
109
|
+
"sha256": "c614a08f47c3a71d443484002a978a67afb2169a2eeae540291fcc383ff2a969"
|
|
106
110
|
},
|
|
107
111
|
{
|
|
108
112
|
"path": "src/adapters/cursor/mcp-config.ts",
|
|
@@ -146,7 +150,7 @@
|
|
|
146
150
|
},
|
|
147
151
|
{
|
|
148
152
|
"path": "src/adapters/cursor/native-exec.ts",
|
|
149
|
-
"sha256": "
|
|
153
|
+
"sha256": "3824d4ad75f039019fff8749900cc0b2daff6de0c41bb7a64f76eb5e57dd25a6"
|
|
150
154
|
},
|
|
151
155
|
{
|
|
152
156
|
"path": "src/adapters/cursor/protobuf-events.ts",
|
|
@@ -154,11 +158,11 @@
|
|
|
154
158
|
},
|
|
155
159
|
{
|
|
156
160
|
"path": "src/adapters/cursor/protobuf-request.ts",
|
|
157
|
-
"sha256": "
|
|
161
|
+
"sha256": "28e352e4b0080fc09508bf87cce884ecbecb9d1f414e343a9068145affd223d9"
|
|
158
162
|
},
|
|
159
163
|
{
|
|
160
164
|
"path": "src/adapters/cursor/request-builder.ts",
|
|
161
|
-
"sha256": "
|
|
165
|
+
"sha256": "ecfed9de726cd21126f3a90dac958bd8bba6d9feee5cb48966d3c3cf274b31fd"
|
|
162
166
|
},
|
|
163
167
|
{
|
|
164
168
|
"path": "src/adapters/cursor/thread-continuity.ts",
|
|
@@ -166,7 +170,7 @@
|
|
|
166
170
|
},
|
|
167
171
|
{
|
|
168
172
|
"path": "src/adapters/cursor/tool-definitions.ts",
|
|
169
|
-
"sha256": "
|
|
173
|
+
"sha256": "632535cff0fb7f893b76631344129d13e45aa40c8e3e062ab0010c57e24448e9"
|
|
170
174
|
},
|
|
171
175
|
{
|
|
172
176
|
"path": "src/adapters/cursor/transport-retry.ts",
|
|
@@ -186,7 +190,7 @@
|
|
|
186
190
|
},
|
|
187
191
|
{
|
|
188
192
|
"path": "src/adapters/google-antigravity-wire.ts",
|
|
189
|
-
"sha256": "
|
|
193
|
+
"sha256": "671fc197b9ab46800b64a4d51dec8b80c82e9cf841bb2c244f1087a8de592009"
|
|
190
194
|
},
|
|
191
195
|
{
|
|
192
196
|
"path": "src/adapters/google-errors.ts",
|
|
@@ -210,7 +214,7 @@
|
|
|
210
214
|
},
|
|
211
215
|
{
|
|
212
216
|
"path": "src/adapters/google.ts",
|
|
213
|
-
"sha256": "
|
|
217
|
+
"sha256": "e87a1a968d8cb8e2d20e2ca27a6168f4e97b215ca1c9ef3ac46d907c78e760b5"
|
|
214
218
|
},
|
|
215
219
|
{
|
|
216
220
|
"path": "src/adapters/identity.ts",
|
|
@@ -278,7 +282,7 @@
|
|
|
278
282
|
},
|
|
279
283
|
{
|
|
280
284
|
"path": "src/adapters/openai-responses-url.ts",
|
|
281
|
-
"sha256": "
|
|
285
|
+
"sha256": "ff38228d2033b9f73dbb011b1d5eb3ac09795519ae8b57958d7d8f6253b4d5e4"
|
|
282
286
|
},
|
|
283
287
|
{
|
|
284
288
|
"path": "src/adapters/openai-responses.ts",
|
|
@@ -286,7 +290,7 @@
|
|
|
286
290
|
},
|
|
287
291
|
{
|
|
288
292
|
"path": "src/adapters/registry.ts",
|
|
289
|
-
"sha256": "
|
|
293
|
+
"sha256": "74cef1012f4b481109d1ec5119d49c7634237166f5e73424399feada3d03c963"
|
|
290
294
|
},
|
|
291
295
|
{
|
|
292
296
|
"path": "src/adapters/responses-tool-schema.ts",
|
|
@@ -302,7 +306,7 @@
|
|
|
302
306
|
},
|
|
303
307
|
{
|
|
304
308
|
"path": "src/adapters/tool-catalog-nudge.ts",
|
|
305
|
-
"sha256": "
|
|
309
|
+
"sha256": "9750e8b4ce000ac452482141bfe27add3577341cc30d1403c05a509bee11044c"
|
|
306
310
|
},
|
|
307
311
|
{
|
|
308
312
|
"path": "src/adapters/upstream-http-error.ts",
|
|
@@ -310,7 +314,7 @@
|
|
|
310
314
|
},
|
|
311
315
|
{
|
|
312
316
|
"path": "src/bridge.ts",
|
|
313
|
-
"sha256": "
|
|
317
|
+
"sha256": "5bbfd25c2778989f47c422e57d550b46a6570f9d599e8eee8b189c86fd0cb70c"
|
|
314
318
|
},
|
|
315
319
|
{
|
|
316
320
|
"path": "src/chat/inbound.ts",
|
|
@@ -342,7 +346,7 @@
|
|
|
342
346
|
},
|
|
343
347
|
{
|
|
344
348
|
"path": "src/claude/context-windows.ts",
|
|
345
|
-
"sha256": "
|
|
349
|
+
"sha256": "4c49d8efeec1d1060e9e61201370d4dce268b7826ca3fcff773d1d53c4c548b4"
|
|
346
350
|
},
|
|
347
351
|
{
|
|
348
352
|
"path": "src/claude/desktop-3p-guard.ts",
|
|
@@ -354,7 +358,7 @@
|
|
|
354
358
|
},
|
|
355
359
|
{
|
|
356
360
|
"path": "src/claude/desktop-3p.ts",
|
|
357
|
-
"sha256": "
|
|
361
|
+
"sha256": "2218e3b4ba35dab0bf53e6b400468daf6a59e886f06afe96dd083b755e6beed0"
|
|
358
362
|
},
|
|
359
363
|
{
|
|
360
364
|
"path": "src/claude/desktop-health.ts",
|
|
@@ -378,7 +382,7 @@
|
|
|
378
382
|
},
|
|
379
383
|
{
|
|
380
384
|
"path": "src/claude/model-info.ts",
|
|
381
|
-
"sha256": "
|
|
385
|
+
"sha256": "8b087c12684e3e43100047227f04536321be5d2af3ca6e989693d09836fbf74f"
|
|
382
386
|
},
|
|
383
387
|
{
|
|
384
388
|
"path": "src/claude/outbound.ts",
|
|
@@ -430,7 +434,7 @@
|
|
|
430
434
|
},
|
|
431
435
|
{
|
|
432
436
|
"path": "src/cli/claude-desktop.ts",
|
|
433
|
-
"sha256": "
|
|
437
|
+
"sha256": "edc5fcaf62acdeaafac905bbe84fb5527cbe38d4729d4e94cff29cb7b2b4bf2f"
|
|
434
438
|
},
|
|
435
439
|
{
|
|
436
440
|
"path": "src/cli/claude.ts",
|
|
@@ -626,7 +630,7 @@
|
|
|
626
630
|
},
|
|
627
631
|
{
|
|
628
632
|
"path": "src/codex/app-server-processes.ts",
|
|
629
|
-
"sha256": "
|
|
633
|
+
"sha256": "0218c4e432ad02a814d818e04fc5ba8c36864f8fcfd592ef674f9c476e56cb77"
|
|
630
634
|
},
|
|
631
635
|
{
|
|
632
636
|
"path": "src/codex/app-server-restart-service.ts",
|
|
@@ -662,7 +666,7 @@
|
|
|
662
666
|
},
|
|
663
667
|
{
|
|
664
668
|
"path": "src/codex/catalog.ts",
|
|
665
|
-
"sha256": "
|
|
669
|
+
"sha256": "879afc5613a39b758e6e8f6f63d23cef0918ffb38e6f68dff1bc3f638278bd1a"
|
|
666
670
|
},
|
|
667
671
|
{
|
|
668
672
|
"path": "src/codex/catalog/account-models.ts",
|
|
@@ -690,7 +694,7 @@
|
|
|
690
694
|
},
|
|
691
695
|
{
|
|
692
696
|
"path": "src/codex/catalog/metadata.ts",
|
|
693
|
-
"sha256": "
|
|
697
|
+
"sha256": "fc1cce8854a517f6c80ce137a02fb183c6710899f2a1d7536707c00ad56b4de6"
|
|
694
698
|
},
|
|
695
699
|
{
|
|
696
700
|
"path": "src/codex/catalog/native-models.ts",
|
|
@@ -702,7 +706,7 @@
|
|
|
702
706
|
},
|
|
703
707
|
{
|
|
704
708
|
"path": "src/codex/catalog/provider-fetch.ts",
|
|
705
|
-
"sha256": "
|
|
709
|
+
"sha256": "d800963913619d3e02db4fb616795cac93c336ac18a18c6e24e873e71a6d2255"
|
|
706
710
|
},
|
|
707
711
|
{
|
|
708
712
|
"path": "src/codex/catalog/sync.ts",
|
|
@@ -782,7 +786,7 @@
|
|
|
782
786
|
},
|
|
783
787
|
{
|
|
784
788
|
"path": "src/codex/injected-marker.ts",
|
|
785
|
-
"sha256": "
|
|
789
|
+
"sha256": "b59a1864bc2a71dae6d0349386c137ad18ce402981f09f19fb881777fcc1556f"
|
|
786
790
|
},
|
|
787
791
|
{
|
|
788
792
|
"path": "src/codex/integration-record.ts",
|
|
@@ -986,7 +990,7 @@
|
|
|
986
990
|
},
|
|
987
991
|
{
|
|
988
992
|
"path": "src/codex/user-identity.ts",
|
|
989
|
-
"sha256": "
|
|
993
|
+
"sha256": "9641f00a7213ea6cb85cdc38adcbab1615815ca1eda878d5bfc3513e023243c7"
|
|
990
994
|
},
|
|
991
995
|
{
|
|
992
996
|
"path": "src/codex/warmup.ts",
|
|
@@ -1022,7 +1026,7 @@
|
|
|
1022
1026
|
},
|
|
1023
1027
|
{
|
|
1024
1028
|
"path": "src/config.ts",
|
|
1025
|
-
"sha256": "
|
|
1029
|
+
"sha256": "2297577079aed2e89e4603050402629fea2df094978ff24c0db5102ca8da91ae"
|
|
1026
1030
|
},
|
|
1027
1031
|
{
|
|
1028
1032
|
"path": "src/generated/model-metadata.ts",
|
|
@@ -1046,7 +1050,7 @@
|
|
|
1046
1050
|
},
|
|
1047
1051
|
{
|
|
1048
1052
|
"path": "src/grok/sync.ts",
|
|
1049
|
-
"sha256": "
|
|
1053
|
+
"sha256": "a2afb3599a789276726867b559273d047b7e55a64f088ca81e4af49629e14d74"
|
|
1050
1054
|
},
|
|
1051
1055
|
{
|
|
1052
1056
|
"path": "src/images/artifacts.ts",
|
|
@@ -1442,7 +1446,7 @@
|
|
|
1442
1446
|
},
|
|
1443
1447
|
{
|
|
1444
1448
|
"path": "src/lab/projection/rebuild.ts",
|
|
1445
|
-
"sha256": "
|
|
1449
|
+
"sha256": "9de9cfcd613634b5afa7ba8bbea7fc24327ff1fb103ae2c70c6f5475e70695c3"
|
|
1446
1450
|
},
|
|
1447
1451
|
{
|
|
1448
1452
|
"path": "src/lab/projection/schema.ts",
|
|
@@ -1854,11 +1858,11 @@
|
|
|
1854
1858
|
},
|
|
1855
1859
|
{
|
|
1856
1860
|
"path": "src/lib/windows-elevation.ts",
|
|
1857
|
-
"sha256": "
|
|
1861
|
+
"sha256": "168ec95934c25036ec9056f83f89427a82ee2bcd83d098bd4419fcb27051e4ec"
|
|
1858
1862
|
},
|
|
1859
1863
|
{
|
|
1860
1864
|
"path": "src/lib/windows-secret-acl.ts",
|
|
1861
|
-
"sha256": "
|
|
1865
|
+
"sha256": "1e3d7e199fa0433ca778ba3ffae2c610bf2d1850ead39c8fa1d1a1b64881bc1c"
|
|
1862
1866
|
},
|
|
1863
1867
|
{
|
|
1864
1868
|
"path": "src/lib/windows-text.ts",
|
|
@@ -1926,7 +1930,7 @@
|
|
|
1926
1930
|
},
|
|
1927
1931
|
{
|
|
1928
1932
|
"path": "src/oauth/google-antigravity.ts",
|
|
1929
|
-
"sha256": "
|
|
1933
|
+
"sha256": "ca475ef54f4ed2a36734b560fd29686a33dd11aa45643fe36a9fd3c92c1a6678"
|
|
1930
1934
|
},
|
|
1931
1935
|
{
|
|
1932
1936
|
"path": "src/oauth/health.ts",
|
|
@@ -2002,7 +2006,7 @@
|
|
|
2002
2006
|
},
|
|
2003
2007
|
{
|
|
2004
2008
|
"path": "src/providers/antigravity-models.ts",
|
|
2005
|
-
"sha256": "
|
|
2009
|
+
"sha256": "3b70505caffbf4b42a1574f8824aa3250d3caee5db820f45b45945381dd0298d"
|
|
2006
2010
|
},
|
|
2007
2011
|
{
|
|
2008
2012
|
"path": "src/providers/api-keys.ts",
|
|
@@ -2026,7 +2030,7 @@
|
|
|
2026
2030
|
},
|
|
2027
2031
|
{
|
|
2028
2032
|
"path": "src/providers/derive.ts",
|
|
2029
|
-
"sha256": "
|
|
2033
|
+
"sha256": "babec953990d4045c3861c102a4ed3e2c4654b03b6d707d179bfeefeefd5e9c8"
|
|
2030
2034
|
},
|
|
2031
2035
|
{
|
|
2032
2036
|
"path": "src/providers/free-directory.ts",
|
|
@@ -2142,7 +2146,7 @@
|
|
|
2142
2146
|
},
|
|
2143
2147
|
{
|
|
2144
2148
|
"path": "src/responses/parser.ts",
|
|
2145
|
-
"sha256": "
|
|
2149
|
+
"sha256": "f84fcb37def007781eb71081d3148f4b0f72eca6aebcea7e7a1a67808d014d69"
|
|
2146
2150
|
},
|
|
2147
2151
|
{
|
|
2148
2152
|
"path": "src/responses/provider-opaque-metadata.ts",
|
|
@@ -2154,7 +2158,7 @@
|
|
|
2154
2158
|
},
|
|
2155
2159
|
{
|
|
2156
2160
|
"path": "src/responses/reasoning-replay-cache.ts",
|
|
2157
|
-
"sha256": "
|
|
2161
|
+
"sha256": "c81d1e2173c4c48215468989dafa4ec74a9a01ab1bbbb4556d5d25ccf63739d3"
|
|
2158
2162
|
},
|
|
2159
2163
|
{
|
|
2160
2164
|
"path": "src/responses/schema.ts",
|
|
@@ -2170,15 +2174,19 @@
|
|
|
2170
2174
|
},
|
|
2171
2175
|
{
|
|
2172
2176
|
"path": "src/responses/thought-signature-replay.ts",
|
|
2173
|
-
"sha256": "
|
|
2177
|
+
"sha256": "dc2464036c9d0c78764ac7b2e97e86b77449dd31e9f98cf0c29b5a7d60134976"
|
|
2174
2178
|
},
|
|
2175
2179
|
{
|
|
2176
2180
|
"path": "src/responses/tool-groups.ts",
|
|
2177
2181
|
"sha256": "b2750b33ec7bb5a7f76f27584bf99372fac4f253dd287849b2f3f9821db574cd"
|
|
2178
2182
|
},
|
|
2183
|
+
{
|
|
2184
|
+
"path": "src/responses/truncated-stop-reason.ts",
|
|
2185
|
+
"sha256": "44a1876c045a63f9275410fb9169d2c47ce0c1de309e9cc00a0f51c72698a6dd"
|
|
2186
|
+
},
|
|
2179
2187
|
{
|
|
2180
2188
|
"path": "src/router.ts",
|
|
2181
|
-
"sha256": "
|
|
2189
|
+
"sha256": "26a672d4df978dd7c9764d7533ccc54a9bded6daf4a90fa3ebf41e126d106f67"
|
|
2182
2190
|
},
|
|
2183
2191
|
{
|
|
2184
2192
|
"path": "src/routing/analytics.ts",
|
|
@@ -2186,7 +2194,7 @@
|
|
|
2186
2194
|
},
|
|
2187
2195
|
{
|
|
2188
2196
|
"path": "src/routing/capability.ts",
|
|
2189
|
-
"sha256": "
|
|
2197
|
+
"sha256": "e4c7da723d461ac41b18cdf5d80085887a0b0e46917bcb4e012f52fc431475d0"
|
|
2190
2198
|
},
|
|
2191
2199
|
{
|
|
2192
2200
|
"path": "src/routing/compatibility/assemble.ts",
|
|
@@ -2330,7 +2338,7 @@
|
|
|
2330
2338
|
},
|
|
2331
2339
|
{
|
|
2332
2340
|
"path": "src/server/index.ts",
|
|
2333
|
-
"sha256": "
|
|
2341
|
+
"sha256": "1ceb408f13a9700fcdd78e112fe56c35956a0e1c3207f14477ca7f18358fa3b7"
|
|
2334
2342
|
},
|
|
2335
2343
|
{
|
|
2336
2344
|
"path": "src/server/lifecycle.ts",
|
|
@@ -2350,7 +2358,7 @@
|
|
|
2350
2358
|
},
|
|
2351
2359
|
{
|
|
2352
2360
|
"path": "src/server/management-api.ts",
|
|
2353
|
-
"sha256": "
|
|
2361
|
+
"sha256": "b3e94bff1762950449552b416de10cbed72f12362dfa3c7c1f9bf043177ae1fc"
|
|
2354
2362
|
},
|
|
2355
2363
|
{
|
|
2356
2364
|
"path": "src/server/management-auth.ts",
|
|
@@ -2358,7 +2366,7 @@
|
|
|
2358
2366
|
},
|
|
2359
2367
|
{
|
|
2360
2368
|
"path": "src/server/management/agent-settings-routes.ts",
|
|
2361
|
-
"sha256": "
|
|
2369
|
+
"sha256": "97487f7dadf5abae969085b6058f430fce0d309e8882eaeeedae078ccc6cafc9"
|
|
2362
2370
|
},
|
|
2363
2371
|
{
|
|
2364
2372
|
"path": "src/server/management/api-access.ts",
|
|
@@ -2378,11 +2386,11 @@
|
|
|
2378
2386
|
},
|
|
2379
2387
|
{
|
|
2380
2388
|
"path": "src/server/management/config-routes.ts",
|
|
2381
|
-
"sha256": "
|
|
2389
|
+
"sha256": "3a56198dbd3884707cd385a9c6b62a3c910741a0d7c576d9b30de3d7a8f86ddf"
|
|
2382
2390
|
},
|
|
2383
2391
|
{
|
|
2384
2392
|
"path": "src/server/management/context.ts",
|
|
2385
|
-
"sha256": "
|
|
2393
|
+
"sha256": "1b5d01755283307260fb942f35bc23b2d22bb6108e00b3c4d75a56ec13780dff"
|
|
2386
2394
|
},
|
|
2387
2395
|
{
|
|
2388
2396
|
"path": "src/server/management/integration-routes.ts",
|
|
@@ -2410,7 +2418,7 @@
|
|
|
2410
2418
|
},
|
|
2411
2419
|
{
|
|
2412
2420
|
"path": "src/server/management/native-integration-routes.ts",
|
|
2413
|
-
"sha256": "
|
|
2421
|
+
"sha256": "6c01497f98bc583ec2d76fe90e99f61076287c7a69f9dee67477ba60853e38e7"
|
|
2414
2422
|
},
|
|
2415
2423
|
{
|
|
2416
2424
|
"path": "src/server/management/oauth-account-routes.ts",
|
|
@@ -2422,7 +2430,7 @@
|
|
|
2422
2430
|
},
|
|
2423
2431
|
{
|
|
2424
2432
|
"path": "src/server/management/provider-routes.ts",
|
|
2425
|
-
"sha256": "
|
|
2433
|
+
"sha256": "1a2217a7cdaee6945ef90221f7b9344fc6d3a04e7750092b6c716bb2acbcef47"
|
|
2426
2434
|
},
|
|
2427
2435
|
{
|
|
2428
2436
|
"path": "src/server/management/request-history-routes.ts",
|
|
@@ -2438,7 +2446,7 @@
|
|
|
2438
2446
|
},
|
|
2439
2447
|
{
|
|
2440
2448
|
"path": "src/server/management/shared.ts",
|
|
2441
|
-
"sha256": "
|
|
2449
|
+
"sha256": "2ec68a5b6d334898762c729b07eb3b98a350a4cf52d3f4debe25eb359162e863"
|
|
2442
2450
|
},
|
|
2443
2451
|
{
|
|
2444
2452
|
"path": "src/server/management/sidebar-routes.ts",
|
|
@@ -2510,7 +2518,7 @@
|
|
|
2510
2518
|
},
|
|
2511
2519
|
{
|
|
2512
2520
|
"path": "src/server/request-log.ts",
|
|
2513
|
-
"sha256": "
|
|
2521
|
+
"sha256": "17c4594009bbacdd95465933ab48b0a5a31e85d80e16de86a1fd1638b2c46510"
|
|
2514
2522
|
},
|
|
2515
2523
|
{
|
|
2516
2524
|
"path": "src/server/responses-custom-tool-repair.ts",
|
|
@@ -2566,7 +2574,7 @@
|
|
|
2566
2574
|
},
|
|
2567
2575
|
{
|
|
2568
2576
|
"path": "src/server/responses/core.ts",
|
|
2569
|
-
"sha256": "
|
|
2577
|
+
"sha256": "1a2fd4ea5e0b1f9b2208cd0365986a465039f262bfd43f9dca56dc43780e6e8a"
|
|
2570
2578
|
},
|
|
2571
2579
|
{
|
|
2572
2580
|
"path": "src/server/responses/empty-completion-guard.ts",
|
|
@@ -2582,7 +2590,7 @@
|
|
|
2582
2590
|
},
|
|
2583
2591
|
{
|
|
2584
2592
|
"path": "src/server/responses/input-admission.ts",
|
|
2585
|
-
"sha256": "
|
|
2593
|
+
"sha256": "cb04a5dea34d8e997c842626bad39d02baf1c64e6bcf614227bf3d49a2270131"
|
|
2586
2594
|
},
|
|
2587
2595
|
{
|
|
2588
2596
|
"path": "src/server/responses/pacing-overload.ts",
|
|
@@ -2630,7 +2638,7 @@
|
|
|
2630
2638
|
},
|
|
2631
2639
|
{
|
|
2632
2640
|
"path": "src/server/system-env.ts",
|
|
2633
|
-
"sha256": "
|
|
2641
|
+
"sha256": "b068365c21dbc6c92de920f9ebb3c771b9f82ecff0dfa315618923d748a93025"
|
|
2634
2642
|
},
|
|
2635
2643
|
{
|
|
2636
2644
|
"path": "src/server/windows-tcp-drop.ts",
|
|
@@ -2726,7 +2734,7 @@
|
|
|
2726
2734
|
},
|
|
2727
2735
|
{
|
|
2728
2736
|
"path": "src/types.ts",
|
|
2729
|
-
"sha256": "
|
|
2737
|
+
"sha256": "d740769ad835349fbc1d92d1c4186be92d2dca5d9902d0f9bc3eac251644655e"
|
|
2730
2738
|
},
|
|
2731
2739
|
{
|
|
2732
2740
|
"path": "src/update/badge.ts",
|
package/src/grok/sync.ts
CHANGED
|
@@ -6,9 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Deps are injectable (mirrors src/codex/sync.ts) so tests can run without a live proxy.
|
|
8
8
|
*/
|
|
9
|
-
import { visibleNativeSlugs, filterCatalogVisibleModels, nativeOpenAiContextWindow, type CatalogModel } from "../codex/catalog";
|
|
10
|
-
import { providerContextCap } from "../providers/context-cap";
|
|
11
|
-
import { OPENAI_CODEX_PROVIDER_ID } from "../providers/openai-tiers";
|
|
9
|
+
import { visibleNativeSlugs, filterCatalogVisibleModels, nativeContextLimits, nativeOpenAiContextWindow, type CatalogModel } from "../codex/catalog";
|
|
12
10
|
import type { OcxConfig } from "../types";
|
|
13
11
|
import { injectGrokConfig, type GrokInjectModel, type GrokInjectResult } from "./inject";
|
|
14
12
|
|
|
@@ -42,7 +40,7 @@ export async function syncGrokConfig(
|
|
|
42
40
|
// default (200k) and understates models like gpt-5.6-sol, which is 372k. This is the same
|
|
43
41
|
// accessor the dashboard's native rows use, so the two cannot disagree.
|
|
44
42
|
...visibleNativeSlugs(config).map(id => {
|
|
45
|
-
const contextWindow = nativeOpenAiContextWindow(id,
|
|
43
|
+
const contextWindow = nativeOpenAiContextWindow(id, nativeContextLimits(config));
|
|
46
44
|
return { id, ...(contextWindow !== undefined ? { contextWindow } : {}) };
|
|
47
45
|
}),
|
|
48
46
|
...routed.map(m => ({
|