@bitkyc08/opencodex 2.46.0-preview.20260907 → 2.47.0-preview.20260908
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/README.md +22 -0
- package/SPONSORS.md +105 -0
- package/gui/dist/assets/index-B8ZZ0ivI.css +1 -0
- package/gui/dist/assets/{index-NcAVXkST.js → index-CNTWhC5F.js} +21 -21
- package/gui/dist/index.html +2 -2
- package/package.json +2 -1
- package/src/adapters/cursor/protobuf-request.ts +34 -21
- package/src/adapters/cursor/tool-guidance.ts +2 -2
- package/src/adapters/cursor/tool-result-normalize.ts +22 -2
- package/src/adapters/exec-tool-result-normalize.ts +87 -0
- package/src/adapters/kiro.ts +29 -18
- package/src/adapters/responses-code-mode.ts +14 -4
- package/src/adapters/tool-catalog-nudge.ts +2 -2
- package/src/bridge.ts +40 -24
- package/src/claude/inbound.ts +21 -6
- package/src/claude/outbound.ts +43 -26
- package/src/cli/capabilities.ts +27 -0
- package/src/cli/integrations.ts +1 -1
- package/src/cli/models-runtime-subcommands.ts +2 -0
- package/src/cli/models-runtime.ts +108 -1
- package/src/cli/observe.ts +18 -3
- package/src/cli/usage-report.ts +6 -1
- package/src/clients/config-export.ts +5 -3
- package/src/codex/auth-api.ts +36 -0
- package/src/codex/catalog/provider-fetch.ts +2 -1
- package/src/codex/quota-auto-refresh-state.ts +8 -0
- package/src/codex/quota-auto-refresh.ts +157 -27
- package/src/codex/warmup.ts +5 -0
- package/src/config/provider-validation.ts +70 -1
- package/src/config.ts +73 -1
- package/src/generated/compatibility-version.json +67 -55
- package/src/lib/json-byte-size.ts +61 -0
- package/src/lib/provider-outbound.ts +11 -10
- package/src/oauth/index.ts +42 -8
- package/src/oauth/orcarouter.ts +200 -0
- package/src/providers/key-store.ts +22 -0
- package/src/providers/registry.ts +78 -29
- package/src/responses/citation-markers.ts +56 -24
- package/src/responses/reasoning-envelope.ts +53 -19
- package/src/server/auth-cors.ts +8 -0
- package/src/server/chat-completions.ts +7 -0
- package/src/server/chat-native.ts +65 -3
- package/src/server/claude-messages.ts +30 -10
- package/src/server/effort-policy.ts +183 -1
- package/src/server/management/agent-settings-routes.ts +50 -9
- package/src/server/management/config-routes.ts +2 -0
- package/src/server/management/logs-usage-routes.ts +11 -3
- package/src/server/management/model-routes.ts +65 -1
- package/src/server/management/model-rows.ts +5 -0
- package/src/server/management/provider-routes.ts +99 -6
- package/src/server/management/route-registry.ts +2 -0
- package/src/server/management/usage-aggregate-cache.ts +14 -7
- package/src/server/responses/compact.ts +3 -2
- package/src/server/responses/core.ts +16 -2
- package/src/server/startup-health-cache.ts +31 -9
- package/src/types/config.ts +5 -0
- package/src/types/provider.ts +4 -0
- package/src/usage/cost.ts +27 -31
- package/src/usage/summary.ts +52 -9
- package/src/usage/time-range.ts +48 -0
- package/src/usage/user-cost-overlays.ts +35 -3
- package/src/vision/anthropic-describe.ts +46 -2
- package/src/web-search/anthropic-executor.ts +49 -3
- package/src/web-search/parse.ts +1 -1
- package/gui/dist/assets/index-BFgUC17B.css +0 -1
package/src/config.ts
CHANGED
|
@@ -9,6 +9,9 @@ export { DEFAULT_SUBAGENT_MODELS } from "./config/subagent-models";
|
|
|
9
9
|
import {
|
|
10
10
|
apiKeyTransportConfigError,
|
|
11
11
|
booleanRecordConfigError,
|
|
12
|
+
configReasoningPinsConfigError,
|
|
13
|
+
modelPinnedEffortsConfigError,
|
|
14
|
+
pinnedReasoningEffortConfigError,
|
|
12
15
|
modelAdapterRecordConfigError,
|
|
13
16
|
modelDisplayNamesConfigError,
|
|
14
17
|
nonBlankStringArrayConfigError,
|
|
@@ -515,11 +518,25 @@ const modelDisplayNamesSchema = z.unknown().superRefine((value, ctx) => {
|
|
|
515
518
|
return labels;
|
|
516
519
|
});
|
|
517
520
|
|
|
521
|
+
const pinnedReasoningEffortSchema = z.unknown().superRefine((value, ctx) => {
|
|
522
|
+
const error = pinnedReasoningEffortConfigError(value);
|
|
523
|
+
if (error) ctx.addIssue({ code: "custom", message: error });
|
|
524
|
+
}).transform(value => value as string);
|
|
525
|
+
|
|
526
|
+
const modelPinnedEffortsSchema = z.unknown().superRefine((value, ctx) => {
|
|
527
|
+
const error = modelPinnedEffortsConfigError(value);
|
|
528
|
+
if (error) ctx.addIssue({ code: "custom", message: error });
|
|
529
|
+
}).transform(value => Object.fromEntries(
|
|
530
|
+
Object.entries(value as Record<string, string>).map(([key, effort]) => [key.trim(), effort]),
|
|
531
|
+
));
|
|
532
|
+
|
|
518
533
|
/**
|
|
519
534
|
* Zod schema for one provider entry: known fields are validated strictly while unknown
|
|
520
535
|
* fields pass through (preserved for runtime extensions).
|
|
521
536
|
*/
|
|
522
537
|
const providerConfigSchema = z.object({
|
|
538
|
+
pinnedReasoningEffort: pinnedReasoningEffortSchema.optional(),
|
|
539
|
+
modelPinnedReasoningEfforts: modelPinnedEffortsSchema.optional(),
|
|
523
540
|
adapter: z.string().min(1),
|
|
524
541
|
baseUrl: z.string().min(1),
|
|
525
542
|
alias: z.string().optional(),
|
|
@@ -856,6 +873,8 @@ const codexQuotaAutoRefreshEntrySchema = z.object({
|
|
|
856
873
|
weekly: z.boolean().optional(),
|
|
857
874
|
lastFiveHourResetAt: z.number().finite().nonnegative().optional(),
|
|
858
875
|
lastWeeklyResetAt: z.number().finite().nonnegative().optional(),
|
|
876
|
+
nextFiveHourResetAt: z.number().finite().nonnegative().optional(),
|
|
877
|
+
nextWeeklyResetAt: z.number().finite().nonnegative().optional(),
|
|
859
878
|
}).strict();
|
|
860
879
|
const CODEX_QUOTA_AUTO_REFRESH_KEY_ERROR =
|
|
861
880
|
"quota auto-refresh keys must be a Codex pool-account id or the main Codex account and cannot be reserved JavaScript object keys";
|
|
@@ -1120,6 +1139,7 @@ const configSchema = z.object({
|
|
|
1120
1139
|
z.object({ enabled: z.literal(true), port: z.number().int().min(1).max(65535) }),
|
|
1121
1140
|
]).optional().catch(undefined),
|
|
1122
1141
|
providers: z.record(z.string(), providerConfigSchema),
|
|
1142
|
+
modelPinnedEfforts: modelPinnedEffortsSchema.optional(),
|
|
1123
1143
|
defaultProvider: z.string().min(1).default("openai"),
|
|
1124
1144
|
defaultModelAliases: z.boolean().optional(),
|
|
1125
1145
|
// Malformed hand edits disable this opt-in projection without rejecting providers.
|
|
@@ -1610,6 +1630,49 @@ export function hardenExistingSecret(path: string): void {
|
|
|
1610
1630
|
}
|
|
1611
1631
|
}
|
|
1612
1632
|
}
|
|
1633
|
+
/** Load only: discard invalid optional pins without rewriting the file or losing providers. */
|
|
1634
|
+
function sanitizeReasoningPinsForLoad(parsed: unknown): void {
|
|
1635
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return;
|
|
1636
|
+
const root = parsed as Record<string, unknown>;
|
|
1637
|
+
let degraded = false;
|
|
1638
|
+
const sanitizeMap = (owner: Record<string, unknown>, field: string) => {
|
|
1639
|
+
const value = owner[field];
|
|
1640
|
+
if (value === undefined) return;
|
|
1641
|
+
if (!value || typeof value !== "object" || Array.isArray(value)
|
|
1642
|
+
|| ![Object.prototype, null].includes(Object.getPrototypeOf(value))) {
|
|
1643
|
+
delete owner[field];
|
|
1644
|
+
degraded = true;
|
|
1645
|
+
return;
|
|
1646
|
+
}
|
|
1647
|
+
const counts = new Map<string, number>();
|
|
1648
|
+
for (const key of Object.keys(value)) counts.set(key.trim(), (counts.get(key.trim()) ?? 0) + 1);
|
|
1649
|
+
const valid: Record<string, string> = Object.create(null);
|
|
1650
|
+
for (const [key, effort] of Object.entries(value)) {
|
|
1651
|
+
if (counts.get(key.trim()) !== 1 || modelPinnedEffortsConfigError({ [key]: effort }) !== null) {
|
|
1652
|
+
degraded = true;
|
|
1653
|
+
continue;
|
|
1654
|
+
}
|
|
1655
|
+
valid[key.trim()] = effort as string;
|
|
1656
|
+
}
|
|
1657
|
+
if (Object.keys(valid).length) owner[field] = valid;
|
|
1658
|
+
else delete owner[field];
|
|
1659
|
+
};
|
|
1660
|
+
sanitizeMap(root, "modelPinnedEfforts");
|
|
1661
|
+
if (root.providers && typeof root.providers === "object" && !Array.isArray(root.providers)) {
|
|
1662
|
+
for (const value of Object.values(root.providers)) {
|
|
1663
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) continue;
|
|
1664
|
+
const provider = value as Record<string, unknown>;
|
|
1665
|
+
if (pinnedReasoningEffortConfigError(provider.pinnedReasoningEffort)) {
|
|
1666
|
+
delete provider.pinnedReasoningEffort;
|
|
1667
|
+
degraded = true;
|
|
1668
|
+
}
|
|
1669
|
+
sanitizeMap(provider, "modelPinnedReasoningEfforts");
|
|
1670
|
+
}
|
|
1671
|
+
}
|
|
1672
|
+
// Never include a provider/model name or value: malformed pins can contain secrets.
|
|
1673
|
+
if (degraded) console.warn("config.json contains invalid optional reasoning pins — ignoring invalid fields or entries");
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1613
1676
|
/**
|
|
1614
1677
|
* The schema's `.catch(undefined)` silently degrades an invalid persisted
|
|
1615
1678
|
* `streamMode` to "auto"; surface that once so a hand-edited typo (e.g.
|
|
@@ -2188,6 +2251,7 @@ export function loadConfig(): OcxConfig {
|
|
|
2188
2251
|
const raw = readFileSync(configPath, "utf-8").replace(/^\uFEFF/, "");
|
|
2189
2252
|
const parsed = JSON.parse(raw);
|
|
2190
2253
|
sanitizeAliasesForLoad(parsed);
|
|
2254
|
+
sanitizeReasoningPinsForLoad(parsed);
|
|
2191
2255
|
sanitizeModelDisplayNamesForLoad(parsed);
|
|
2192
2256
|
sanitizeRetryOn429ForLoad(parsed);
|
|
2193
2257
|
sanitizeModelCostsForLoad(parsed);
|
|
@@ -2720,7 +2784,8 @@ function managementIngressConfigError(value: unknown): string | null {
|
|
|
2720
2784
|
}
|
|
2721
2785
|
|
|
2722
2786
|
export function validateConfigCandidate(value: unknown): { ok: true; config: OcxConfig } | { ok: false; error: string } {
|
|
2723
|
-
const boundaryError =
|
|
2787
|
+
const boundaryError = configReasoningPinsConfigError(value)
|
|
2788
|
+
?? blankHostnameError(value)
|
|
2724
2789
|
?? claudeSubagentEffortError(value)
|
|
2725
2790
|
?? appOwnedMemoryBudgetError(value)
|
|
2726
2791
|
?? upstreamHostCircuitThresholdError(value)
|
|
@@ -2750,6 +2815,7 @@ export function validateConfigCandidate(value: unknown): { ok: true; config: Ocx
|
|
|
2750
2815
|
function configDiagnosticsFromRaw(raw: string): ConfigDiagnostics {
|
|
2751
2816
|
try {
|
|
2752
2817
|
const parsed = JSON.parse(raw.replace(/^\uFEFF/, ""));
|
|
2818
|
+
sanitizeReasoningPinsForLoad(parsed);
|
|
2753
2819
|
// Same degradation as loadConfig: a hand-edited invalid retryOn429 must not trip the
|
|
2754
2820
|
// schema and send the caller a default-config fallback (the config command could then
|
|
2755
2821
|
// persist that fallback over the user's providers/keys).
|
|
@@ -3099,6 +3165,8 @@ export const withExpectedConfigGenerationSync: WithExpectedConfigGenerationSync
|
|
|
3099
3165
|
* every save path.
|
|
3100
3166
|
*/
|
|
3101
3167
|
function persistConfigUnlocked(config: OcxConfig): boolean {
|
|
3168
|
+
const pinError = configReasoningPinsConfigError(config);
|
|
3169
|
+
if (pinError) throw new Error(pinError);
|
|
3102
3170
|
const configPath = getConfigPath();
|
|
3103
3171
|
const rawBeforeWrite = readRawConfigJson();
|
|
3104
3172
|
const clientPersistenceError = failClosedClientPersistenceError(rawBeforeWrite, config);
|
|
@@ -3174,6 +3242,8 @@ export function initializePersistedConfigIfMissing(
|
|
|
3174
3242
|
|
|
3175
3243
|
/** Persist `config` to config.json under the config-mutation lock. */
|
|
3176
3244
|
export function saveConfig(config: OcxConfig): void {
|
|
3245
|
+
const pinError = configReasoningPinsConfigError(config);
|
|
3246
|
+
if (pinError) throw new Error(pinError);
|
|
3177
3247
|
// Keep the real-home assertion ahead of even lock-directory preparation.
|
|
3178
3248
|
assertNotRealHomeUnderTest(getConfigDir());
|
|
3179
3249
|
withConfigMutationLockSync(() => {
|
|
@@ -3631,6 +3701,8 @@ function readPersistedServerBinding(
|
|
|
3631
3701
|
* edits and deletions across stale whole-config saves.
|
|
3632
3702
|
*/
|
|
3633
3703
|
export function saveConfigPreservingClaudeCode(config: OcxConfig): void {
|
|
3704
|
+
const pinError = configReasoningPinsConfigError(config);
|
|
3705
|
+
if (pinError) throw new Error(pinError);
|
|
3634
3706
|
withConfigMutationLockSync(() => {
|
|
3635
3707
|
const bindingBaseline = persistedLiveServerBinding.get(config);
|
|
3636
3708
|
// One authoritative pre-write read feeds both the live-config reconciliation and
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"path": "package.json",
|
|
13
|
-
"sha256": "
|
|
13
|
+
"sha256": "a1340dbefaa4fd38480e8a85ed62cd3ecce3aa624cc8ea1e336d83dc62107470"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
"path": "scripts/model-metadata.source.json",
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
},
|
|
203
203
|
{
|
|
204
204
|
"path": "src/adapters/cursor/protobuf-request.ts",
|
|
205
|
-
"sha256": "
|
|
205
|
+
"sha256": "c5d009802d7b1154697ac6a3823cff3cf70e07db2afbffde484bead322af3e74"
|
|
206
206
|
},
|
|
207
207
|
{
|
|
208
208
|
"path": "src/adapters/cursor/request-builder.ts",
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
},
|
|
219
219
|
{
|
|
220
220
|
"path": "src/adapters/cursor/tool-guidance.ts",
|
|
221
|
-
"sha256": "
|
|
221
|
+
"sha256": "9da31c647045af018fac2601b378be902665613bf17e3f91fc45794367ec15fe"
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
224
|
"path": "src/adapters/cursor/tool-naming.ts",
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
},
|
|
227
227
|
{
|
|
228
228
|
"path": "src/adapters/cursor/tool-result-normalize.ts",
|
|
229
|
-
"sha256": "
|
|
229
|
+
"sha256": "751e8cd8da026ff7bb4cf92552573ec7563e7acd063719ceeec73898ee4eb31c"
|
|
230
230
|
},
|
|
231
231
|
{
|
|
232
232
|
"path": "src/adapters/cursor/tool-schemas.ts",
|
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
},
|
|
251
251
|
{
|
|
252
252
|
"path": "src/adapters/exec-tool-result-normalize.ts",
|
|
253
|
-
"sha256": "
|
|
253
|
+
"sha256": "1db5452bb42c5ba4ca1379ba82686b80b56a1611dfab6531576c6b151aae217b"
|
|
254
254
|
},
|
|
255
255
|
{
|
|
256
256
|
"path": "src/adapters/google-antigravity-replay.ts",
|
|
@@ -338,7 +338,7 @@
|
|
|
338
338
|
},
|
|
339
339
|
{
|
|
340
340
|
"path": "src/adapters/kiro.ts",
|
|
341
|
-
"sha256": "
|
|
341
|
+
"sha256": "8ff6fa8a255eef161b927f56ec41d45cf8998fddd997010b1ef06f412aec1b97"
|
|
342
342
|
},
|
|
343
343
|
{
|
|
344
344
|
"path": "src/adapters/mimo-free.ts",
|
|
@@ -378,7 +378,7 @@
|
|
|
378
378
|
},
|
|
379
379
|
{
|
|
380
380
|
"path": "src/adapters/responses-code-mode.ts",
|
|
381
|
-
"sha256": "
|
|
381
|
+
"sha256": "40f4a75071c5eefcdbc1070811f99b29bff24bcfc5a1bfb709f6c302a5899cf1"
|
|
382
382
|
},
|
|
383
383
|
{
|
|
384
384
|
"path": "src/adapters/responses-tool-schema.ts",
|
|
@@ -394,7 +394,7 @@
|
|
|
394
394
|
},
|
|
395
395
|
{
|
|
396
396
|
"path": "src/adapters/tool-catalog-nudge.ts",
|
|
397
|
-
"sha256": "
|
|
397
|
+
"sha256": "aae87888360b7a8cb03bd13ba6a286ec8fe9277c6418b05321027e57f97f4745"
|
|
398
398
|
},
|
|
399
399
|
{
|
|
400
400
|
"path": "src/adapters/upstream-http-error.ts",
|
|
@@ -414,7 +414,7 @@
|
|
|
414
414
|
},
|
|
415
415
|
{
|
|
416
416
|
"path": "src/bridge.ts",
|
|
417
|
-
"sha256": "
|
|
417
|
+
"sha256": "b42e66e07ca87deabc7711aa4272009c4dd1dfe9e9d065430e43e2fa14fc90c9"
|
|
418
418
|
},
|
|
419
419
|
{
|
|
420
420
|
"path": "src/chat/inbound.ts",
|
|
@@ -522,7 +522,7 @@
|
|
|
522
522
|
},
|
|
523
523
|
{
|
|
524
524
|
"path": "src/claude/inbound.ts",
|
|
525
|
-
"sha256": "
|
|
525
|
+
"sha256": "a580142aa40f8465c7bfa431e6a50f5f32109220c4ca3f9106305951ae66eca1"
|
|
526
526
|
},
|
|
527
527
|
{
|
|
528
528
|
"path": "src/claude/model-info.ts",
|
|
@@ -530,7 +530,7 @@
|
|
|
530
530
|
},
|
|
531
531
|
{
|
|
532
532
|
"path": "src/claude/outbound.ts",
|
|
533
|
-
"sha256": "
|
|
533
|
+
"sha256": "363bce625cf0933bc0cb12b6352a15fd13cb5c8420e7f01e5e9d3ba4b4500486"
|
|
534
534
|
},
|
|
535
535
|
{
|
|
536
536
|
"path": "src/cli.ts",
|
|
@@ -586,7 +586,7 @@
|
|
|
586
586
|
},
|
|
587
587
|
{
|
|
588
588
|
"path": "src/cli/capabilities.ts",
|
|
589
|
-
"sha256": "
|
|
589
|
+
"sha256": "2235718ab012e8fbf362cc3fbeee57362a57ee8dc547d50781d470249c3ea19d"
|
|
590
590
|
},
|
|
591
591
|
{
|
|
592
592
|
"path": "src/cli/catalog-prewarm.ts",
|
|
@@ -682,7 +682,7 @@
|
|
|
682
682
|
},
|
|
683
683
|
{
|
|
684
684
|
"path": "src/cli/integrations.ts",
|
|
685
|
-
"sha256": "
|
|
685
|
+
"sha256": "391860b07788176406ec78e7e4824e8b31113b1222bb3ebc73f358e3d6870321"
|
|
686
686
|
},
|
|
687
687
|
{
|
|
688
688
|
"path": "src/cli/interactive-confirm.ts",
|
|
@@ -706,11 +706,11 @@
|
|
|
706
706
|
},
|
|
707
707
|
{
|
|
708
708
|
"path": "src/cli/models-runtime-subcommands.ts",
|
|
709
|
-
"sha256": "
|
|
709
|
+
"sha256": "53bc90b785f6a1d3ae61f0f35112eb585d5dc59eacfd797b382d0f81edba479e"
|
|
710
710
|
},
|
|
711
711
|
{
|
|
712
712
|
"path": "src/cli/models-runtime.ts",
|
|
713
|
-
"sha256": "
|
|
713
|
+
"sha256": "ba7546ee6eae0aaabb730e4c2206364476fc42cf19c176a10c48a00f0537c2b6"
|
|
714
714
|
},
|
|
715
715
|
{
|
|
716
716
|
"path": "src/cli/models.ts",
|
|
@@ -718,7 +718,7 @@
|
|
|
718
718
|
},
|
|
719
719
|
{
|
|
720
720
|
"path": "src/cli/observe.ts",
|
|
721
|
-
"sha256": "
|
|
721
|
+
"sha256": "b76f55fe9e1074bcf7cf74b5d97502c95ebf05a8b966834cc51d715f4a2e7383"
|
|
722
722
|
},
|
|
723
723
|
{
|
|
724
724
|
"path": "src/cli/opencode.ts",
|
|
@@ -794,7 +794,7 @@
|
|
|
794
794
|
},
|
|
795
795
|
{
|
|
796
796
|
"path": "src/cli/usage-report.ts",
|
|
797
|
-
"sha256": "
|
|
797
|
+
"sha256": "88d3805290f96eadd10895b9ba6af9ece3ca3e4b2eafad41d9e4d54ed6767009"
|
|
798
798
|
},
|
|
799
799
|
{
|
|
800
800
|
"path": "src/cli/v2.ts",
|
|
@@ -846,7 +846,7 @@
|
|
|
846
846
|
},
|
|
847
847
|
{
|
|
848
848
|
"path": "src/clients/config-export.ts",
|
|
849
|
-
"sha256": "
|
|
849
|
+
"sha256": "8cfffac81b2efc1e97f80d161cd98452730510528b635154400310f3541c8291"
|
|
850
850
|
},
|
|
851
851
|
{
|
|
852
852
|
"path": "src/clients/config-export/constants.ts",
|
|
@@ -946,7 +946,7 @@
|
|
|
946
946
|
},
|
|
947
947
|
{
|
|
948
948
|
"path": "src/codex/auth-api.ts",
|
|
949
|
-
"sha256": "
|
|
949
|
+
"sha256": "626192f1207e2721c78c181b2a436411577520126ae14ec324ec23e08cd5a0e7"
|
|
950
950
|
},
|
|
951
951
|
{
|
|
952
952
|
"path": "src/codex/auth-collision.ts",
|
|
@@ -1014,7 +1014,7 @@
|
|
|
1014
1014
|
},
|
|
1015
1015
|
{
|
|
1016
1016
|
"path": "src/codex/catalog/provider-fetch.ts",
|
|
1017
|
-
"sha256": "
|
|
1017
|
+
"sha256": "889001d1eaf74bf95515fd8fa760182e113d9f09a322130950ea8d7f88ea01f2"
|
|
1018
1018
|
},
|
|
1019
1019
|
{
|
|
1020
1020
|
"path": "src/codex/catalog/reserve.ts",
|
|
@@ -1330,11 +1330,11 @@
|
|
|
1330
1330
|
},
|
|
1331
1331
|
{
|
|
1332
1332
|
"path": "src/codex/quota-auto-refresh-state.ts",
|
|
1333
|
-
"sha256": "
|
|
1333
|
+
"sha256": "d589db1aaba036749ed07e182ad6030f4f7a7f0280f8b8600e417df444be45fb"
|
|
1334
1334
|
},
|
|
1335
1335
|
{
|
|
1336
1336
|
"path": "src/codex/quota-auto-refresh.ts",
|
|
1337
|
-
"sha256": "
|
|
1337
|
+
"sha256": "4dd542d41e1b7e7a764ee6971f44f273b1d3177df5320f5a0fa61ea47fe1bc52"
|
|
1338
1338
|
},
|
|
1339
1339
|
{
|
|
1340
1340
|
"path": "src/codex/quota-recovery-timing.ts",
|
|
@@ -1414,7 +1414,7 @@
|
|
|
1414
1414
|
},
|
|
1415
1415
|
{
|
|
1416
1416
|
"path": "src/codex/warmup.ts",
|
|
1417
|
-
"sha256": "
|
|
1417
|
+
"sha256": "a6ade4ee27a65795b3b2dc45b4e2c851fd47c26bc3461bea9cceb85a0607111e"
|
|
1418
1418
|
},
|
|
1419
1419
|
{
|
|
1420
1420
|
"path": "src/codex/websocket-registry.ts",
|
|
@@ -1466,7 +1466,7 @@
|
|
|
1466
1466
|
},
|
|
1467
1467
|
{
|
|
1468
1468
|
"path": "src/config.ts",
|
|
1469
|
-
"sha256": "
|
|
1469
|
+
"sha256": "b6d433bd76839026ba7feb04327a8ce1230cfd4e8da91d3921bf15394dcc45f4"
|
|
1470
1470
|
},
|
|
1471
1471
|
{
|
|
1472
1472
|
"path": "src/config/atomic-write.ts",
|
|
@@ -1502,7 +1502,7 @@
|
|
|
1502
1502
|
},
|
|
1503
1503
|
{
|
|
1504
1504
|
"path": "src/config/provider-validation.ts",
|
|
1505
|
-
"sha256": "
|
|
1505
|
+
"sha256": "47b410a0c1e47c4fb21483654293991197d5d850cf04e4ff72ae1a47d7a6fd2f"
|
|
1506
1506
|
},
|
|
1507
1507
|
{
|
|
1508
1508
|
"path": "src/config/rebase-provenance.ts",
|
|
@@ -2264,6 +2264,10 @@
|
|
|
2264
2264
|
"path": "src/lib/injection-debug-log.ts",
|
|
2265
2265
|
"sha256": "ab3b8e53c546c0ff43dc129d29c0b11c2d258f86e9d12475d87bf55510eb02c9"
|
|
2266
2266
|
},
|
|
2267
|
+
{
|
|
2268
|
+
"path": "src/lib/json-byte-size.ts",
|
|
2269
|
+
"sha256": "e4c31eb29bc21baef7c1994abec3393fe608626871087ed84d5df0dd847b3152"
|
|
2270
|
+
},
|
|
2267
2271
|
{
|
|
2268
2272
|
"path": "src/lib/lab-activation.ts",
|
|
2269
2273
|
"sha256": "d1345dc867095f90b9ec2f4e911cc7d2e9bcd4e4a24265f58a2768e7181a1ba0"
|
|
@@ -2326,7 +2330,7 @@
|
|
|
2326
2330
|
},
|
|
2327
2331
|
{
|
|
2328
2332
|
"path": "src/lib/provider-outbound.ts",
|
|
2329
|
-
"sha256": "
|
|
2333
|
+
"sha256": "ec930f168efee41e6c7c4d24205281b3268eab3c2b4dc30af53158ea5cd3db93"
|
|
2330
2334
|
},
|
|
2331
2335
|
{
|
|
2332
2336
|
"path": "src/lib/provider-url.ts",
|
|
@@ -2534,7 +2538,7 @@
|
|
|
2534
2538
|
},
|
|
2535
2539
|
{
|
|
2536
2540
|
"path": "src/oauth/index.ts",
|
|
2537
|
-
"sha256": "
|
|
2541
|
+
"sha256": "c92e0a97f8de467d2ea570a8654fa53053ae4627d02d41e199d130e0961ac464"
|
|
2538
2542
|
},
|
|
2539
2543
|
{
|
|
2540
2544
|
"path": "src/oauth/key-providers.ts",
|
|
@@ -2576,6 +2580,10 @@
|
|
|
2576
2580
|
"path": "src/oauth/open-browser-choice.ts",
|
|
2577
2581
|
"sha256": "f4ef3a89b0df0db5d5ae853378029e4983cd3a239cc97a36535350d939066bbb"
|
|
2578
2582
|
},
|
|
2583
|
+
{
|
|
2584
|
+
"path": "src/oauth/orcarouter.ts",
|
|
2585
|
+
"sha256": "8bee94d25263e5ddf792a35839772c6927ff9c0ef15d44246d1c90fdbbb61fc1"
|
|
2586
|
+
},
|
|
2579
2587
|
{
|
|
2580
2588
|
"path": "src/oauth/pkce.ts",
|
|
2581
2589
|
"sha256": "8e2798e44de278bc4db99ceaeded806e4d80a141f4d81bd81e4ab6fd22189509"
|
|
@@ -2690,7 +2698,7 @@
|
|
|
2690
2698
|
},
|
|
2691
2699
|
{
|
|
2692
2700
|
"path": "src/providers/key-store.ts",
|
|
2693
|
-
"sha256": "
|
|
2701
|
+
"sha256": "505246208f9fa354edd27ac25f458409ee11d302df8d54f3a91fd0372e0edfc3"
|
|
2694
2702
|
},
|
|
2695
2703
|
{
|
|
2696
2704
|
"path": "src/providers/kiro-models.ts",
|
|
@@ -2794,7 +2802,7 @@
|
|
|
2794
2802
|
},
|
|
2795
2803
|
{
|
|
2796
2804
|
"path": "src/providers/registry.ts",
|
|
2797
|
-
"sha256": "
|
|
2805
|
+
"sha256": "a77a52f5f62617b17a3a9dbbdbf06a8bfe4c8fc05bf1947e65d1b38ddb1607ea"
|
|
2798
2806
|
},
|
|
2799
2807
|
{
|
|
2800
2808
|
"path": "src/providers/request-pacing.ts",
|
|
@@ -2870,7 +2878,7 @@
|
|
|
2870
2878
|
},
|
|
2871
2879
|
{
|
|
2872
2880
|
"path": "src/responses/citation-markers.ts",
|
|
2873
|
-
"sha256": "
|
|
2881
|
+
"sha256": "95b0e17d99bab39e25aa599381839417c10702471c7af8cbfb0b587301c7f131"
|
|
2874
2882
|
},
|
|
2875
2883
|
{
|
|
2876
2884
|
"path": "src/responses/code-mode-helper-compat.ts",
|
|
@@ -2922,7 +2930,7 @@
|
|
|
2922
2930
|
},
|
|
2923
2931
|
{
|
|
2924
2932
|
"path": "src/responses/reasoning-envelope.ts",
|
|
2925
|
-
"sha256": "
|
|
2933
|
+
"sha256": "854af4fda4a4a6d15a1b9df5a4a73ebe010f9f372c5c3df9e887e3354e4fccda"
|
|
2926
2934
|
},
|
|
2927
2935
|
{
|
|
2928
2936
|
"path": "src/responses/reasoning-replay-cache.ts",
|
|
@@ -3074,7 +3082,7 @@
|
|
|
3074
3082
|
},
|
|
3075
3083
|
{
|
|
3076
3084
|
"path": "src/server/auth-cors.ts",
|
|
3077
|
-
"sha256": "
|
|
3085
|
+
"sha256": "4207131722b016c0ebe72b748030c52793d999b0c1d95d89afbed78b8e2a33a1"
|
|
3078
3086
|
},
|
|
3079
3087
|
{
|
|
3080
3088
|
"path": "src/server/background-lifecycle.ts",
|
|
@@ -3086,7 +3094,7 @@
|
|
|
3086
3094
|
},
|
|
3087
3095
|
{
|
|
3088
3096
|
"path": "src/server/chat-completions.ts",
|
|
3089
|
-
"sha256": "
|
|
3097
|
+
"sha256": "eeaf69bb40979dfe63bd764285d8fcbee2ee9694ad68938f0a0f56997a4862d6"
|
|
3090
3098
|
},
|
|
3091
3099
|
{
|
|
3092
3100
|
"path": "src/server/chat-native-sse.ts",
|
|
@@ -3094,11 +3102,11 @@
|
|
|
3094
3102
|
},
|
|
3095
3103
|
{
|
|
3096
3104
|
"path": "src/server/chat-native.ts",
|
|
3097
|
-
"sha256": "
|
|
3105
|
+
"sha256": "fdbbfd53a75ad52d19b8e76f7629c7f42009d5ab46f0924bd72444bab566d740"
|
|
3098
3106
|
},
|
|
3099
3107
|
{
|
|
3100
3108
|
"path": "src/server/claude-messages.ts",
|
|
3101
|
-
"sha256": "
|
|
3109
|
+
"sha256": "53dfb51007f96c1a3d037e7c6fe850fe726d5507d68d222b326427505111152c"
|
|
3102
3110
|
},
|
|
3103
3111
|
{
|
|
3104
3112
|
"path": "src/server/direct-local-http.ts",
|
|
@@ -3106,7 +3114,7 @@
|
|
|
3106
3114
|
},
|
|
3107
3115
|
{
|
|
3108
3116
|
"path": "src/server/effort-policy.ts",
|
|
3109
|
-
"sha256": "
|
|
3117
|
+
"sha256": "7245e9b3546d554a282af47f80d06b84cb61ab6197704f5a287b06b1838839a0"
|
|
3110
3118
|
},
|
|
3111
3119
|
{
|
|
3112
3120
|
"path": "src/server/effort-row.ts",
|
|
@@ -3178,7 +3186,7 @@
|
|
|
3178
3186
|
},
|
|
3179
3187
|
{
|
|
3180
3188
|
"path": "src/server/management/agent-settings-routes.ts",
|
|
3181
|
-
"sha256": "
|
|
3189
|
+
"sha256": "1d91b0c0e58fde53bfe17b581d0fae125f86afbdad436b8a9c2ec9e4fff45a1c"
|
|
3182
3190
|
},
|
|
3183
3191
|
{
|
|
3184
3192
|
"path": "src/server/management/api-access.ts",
|
|
@@ -3210,7 +3218,7 @@
|
|
|
3210
3218
|
},
|
|
3211
3219
|
{
|
|
3212
3220
|
"path": "src/server/management/config-routes.ts",
|
|
3213
|
-
"sha256": "
|
|
3221
|
+
"sha256": "585907194bd35d7531ba7085ee20507fcd8c7c8e748ba785e75ef3d9776bded6"
|
|
3214
3222
|
},
|
|
3215
3223
|
{
|
|
3216
3224
|
"path": "src/server/management/context.ts",
|
|
@@ -3234,15 +3242,15 @@
|
|
|
3234
3242
|
},
|
|
3235
3243
|
{
|
|
3236
3244
|
"path": "src/server/management/logs-usage-routes.ts",
|
|
3237
|
-
"sha256": "
|
|
3245
|
+
"sha256": "daf70c0c0f4c4811d9a8c9ebe215bde05c12d2a713a18ca2ff7aa3594e8218f9"
|
|
3238
3246
|
},
|
|
3239
3247
|
{
|
|
3240
3248
|
"path": "src/server/management/model-routes.ts",
|
|
3241
|
-
"sha256": "
|
|
3249
|
+
"sha256": "758e3a528375331c180ff3a3287dfc7d03593877362551dda80f4f7148531ab8"
|
|
3242
3250
|
},
|
|
3243
3251
|
{
|
|
3244
3252
|
"path": "src/server/management/model-rows.ts",
|
|
3245
|
-
"sha256": "
|
|
3253
|
+
"sha256": "8ec60364236862e4ad6f6a5f81abc6981b482663989d7b9aec3c14d0a524751f"
|
|
3246
3254
|
},
|
|
3247
3255
|
{
|
|
3248
3256
|
"path": "src/server/management/native-integration-routes.ts",
|
|
@@ -3258,7 +3266,7 @@
|
|
|
3258
3266
|
},
|
|
3259
3267
|
{
|
|
3260
3268
|
"path": "src/server/management/provider-routes.ts",
|
|
3261
|
-
"sha256": "
|
|
3269
|
+
"sha256": "f0b8a12927a1ef6be3247134d4d62746cb67badba1f39dfbd814df1833a24a51"
|
|
3262
3270
|
},
|
|
3263
3271
|
{
|
|
3264
3272
|
"path": "src/server/management/quota-reset-routes.ts",
|
|
@@ -3270,7 +3278,7 @@
|
|
|
3270
3278
|
},
|
|
3271
3279
|
{
|
|
3272
3280
|
"path": "src/server/management/route-registry.ts",
|
|
3273
|
-
"sha256": "
|
|
3281
|
+
"sha256": "29358c978e83323ec6ad2b464befe3b039b1852b57beab97cdab851bef9a9662"
|
|
3274
3282
|
},
|
|
3275
3283
|
{
|
|
3276
3284
|
"path": "src/server/management/routing-analytics-routes.ts",
|
|
@@ -3314,7 +3322,7 @@
|
|
|
3314
3322
|
},
|
|
3315
3323
|
{
|
|
3316
3324
|
"path": "src/server/management/usage-aggregate-cache.ts",
|
|
3317
|
-
"sha256": "
|
|
3325
|
+
"sha256": "7663d6a1584cabb450e728d812bf7da0825c8071ab69523eb05a350363baec77"
|
|
3318
3326
|
},
|
|
3319
3327
|
{
|
|
3320
3328
|
"path": "src/server/management/usage-summary-cache.ts",
|
|
@@ -3486,7 +3494,7 @@
|
|
|
3486
3494
|
},
|
|
3487
3495
|
{
|
|
3488
3496
|
"path": "src/server/responses/compact.ts",
|
|
3489
|
-
"sha256": "
|
|
3497
|
+
"sha256": "7a154e9c46cb6ebe31ca2b5d9a649cc4b6b120925e6e8b4844d16635be276938"
|
|
3490
3498
|
},
|
|
3491
3499
|
{
|
|
3492
3500
|
"path": "src/server/responses/context-overflow.ts",
|
|
@@ -3494,7 +3502,7 @@
|
|
|
3494
3502
|
},
|
|
3495
3503
|
{
|
|
3496
3504
|
"path": "src/server/responses/core.ts",
|
|
3497
|
-
"sha256": "
|
|
3505
|
+
"sha256": "1e3f30886b003f96c3e1ca47de0a1196c55a46a9d1b2fc65f0090d2d0655af9c"
|
|
3498
3506
|
},
|
|
3499
3507
|
{
|
|
3500
3508
|
"path": "src/server/responses/empty-completion-guard.ts",
|
|
@@ -3566,7 +3574,7 @@
|
|
|
3566
3574
|
},
|
|
3567
3575
|
{
|
|
3568
3576
|
"path": "src/server/startup-health-cache.ts",
|
|
3569
|
-
"sha256": "
|
|
3577
|
+
"sha256": "af752edc08b6c0b973c0abb03dbbb8f494d894716d5f437c1ec3c7504531324b"
|
|
3570
3578
|
},
|
|
3571
3579
|
{
|
|
3572
3580
|
"path": "src/server/stop-teardown.ts",
|
|
@@ -3698,11 +3706,11 @@
|
|
|
3698
3706
|
},
|
|
3699
3707
|
{
|
|
3700
3708
|
"path": "src/types/config.ts",
|
|
3701
|
-
"sha256": "
|
|
3709
|
+
"sha256": "aa4ac106c1be6312e328be2b61d77a0c5ba6de969814a189f5a994bda662c301"
|
|
3702
3710
|
},
|
|
3703
3711
|
{
|
|
3704
3712
|
"path": "src/types/provider.ts",
|
|
3705
|
-
"sha256": "
|
|
3713
|
+
"sha256": "6980e7b217040922d053cad623838436598c3d8387a5aad8d520a907c19e18ac"
|
|
3706
3714
|
},
|
|
3707
3715
|
{
|
|
3708
3716
|
"path": "src/types/request.ts",
|
|
@@ -3798,7 +3806,7 @@
|
|
|
3798
3806
|
},
|
|
3799
3807
|
{
|
|
3800
3808
|
"path": "src/usage/cost.ts",
|
|
3801
|
-
"sha256": "
|
|
3809
|
+
"sha256": "c48f6f846584d62242a24f6431c6dd379b7bdf785abfb0e1b1183d0ceb99e06a"
|
|
3802
3810
|
},
|
|
3803
3811
|
{
|
|
3804
3812
|
"path": "src/usage/debug.ts",
|
|
@@ -3822,7 +3830,11 @@
|
|
|
3822
3830
|
},
|
|
3823
3831
|
{
|
|
3824
3832
|
"path": "src/usage/summary.ts",
|
|
3825
|
-
"sha256": "
|
|
3833
|
+
"sha256": "ef0c5645c34087a5855cb364cc3e3b46184a109b1a77f56147db275cb19fcf54"
|
|
3834
|
+
},
|
|
3835
|
+
{
|
|
3836
|
+
"path": "src/usage/time-range.ts",
|
|
3837
|
+
"sha256": "77155f4bd28faca0d53ec68e78c4d281e2a1ebf05297fba145bf5f8da04d65c1"
|
|
3826
3838
|
},
|
|
3827
3839
|
{
|
|
3828
3840
|
"path": "src/usage/totals.ts",
|
|
@@ -3834,11 +3846,11 @@
|
|
|
3834
3846
|
},
|
|
3835
3847
|
{
|
|
3836
3848
|
"path": "src/usage/user-cost-overlays.ts",
|
|
3837
|
-
"sha256": "
|
|
3849
|
+
"sha256": "3f7da5c041838f7cf33ed91b335cc20aed9ba6277efbece92a55e0dd2b47fe6d"
|
|
3838
3850
|
},
|
|
3839
3851
|
{
|
|
3840
3852
|
"path": "src/vision/anthropic-describe.ts",
|
|
3841
|
-
"sha256": "
|
|
3853
|
+
"sha256": "117c8da692bf1e2667afc19118946815c69970a87aaad40666225c02c0c0aef4"
|
|
3842
3854
|
},
|
|
3843
3855
|
{
|
|
3844
3856
|
"path": "src/vision/backends.ts",
|
|
@@ -3878,7 +3890,7 @@
|
|
|
3878
3890
|
},
|
|
3879
3891
|
{
|
|
3880
3892
|
"path": "src/web-search/anthropic-executor.ts",
|
|
3881
|
-
"sha256": "
|
|
3893
|
+
"sha256": "b5df46da2b4a1d4a0bb715d38256536219f71608c3c3d6af466c5a9bd8ae1ea4"
|
|
3882
3894
|
},
|
|
3883
3895
|
{
|
|
3884
3896
|
"path": "src/web-search/backends.ts",
|
|
@@ -3910,7 +3922,7 @@
|
|
|
3910
3922
|
},
|
|
3911
3923
|
{
|
|
3912
3924
|
"path": "src/web-search/parse.ts",
|
|
3913
|
-
"sha256": "
|
|
3925
|
+
"sha256": "d2511ca70abfdee209323c577c26c987aff791a1bf54d6615fe35916f4c44eca"
|
|
3914
3926
|
},
|
|
3915
3927
|
{
|
|
3916
3928
|
"path": "src/web-search/progress-stream.ts",
|