@bitkyc08/opencodex 2.26.0 → 2.27.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/gui/dist/assets/{index-RL6b1bTV.js → index-7jlKgmJd.js} +14 -14
- package/gui/dist/index.html +1 -1
- package/package.json +1 -1
- package/src/adapters/anthropic.ts +1 -1
- package/src/adapters/base.ts +14 -2
- package/src/adapters/command-code.ts +4 -3
- package/src/adapters/cursor/cursor-errors.ts +15 -0
- package/src/adapters/cursor/live-transport.ts +14 -1
- package/src/adapters/google.ts +1 -1
- package/src/adapters/openai-chat.ts +38 -6
- package/src/adapters/tool-catalog-nudge.ts +1 -1
- package/src/bridge.ts +11 -5
- package/src/cli/doctor.ts +76 -0
- package/src/cli/help.ts +2 -0
- package/src/cli/models.ts +13 -6
- package/src/codex/app-server-processes.ts +269 -37
- package/src/codex/auth-context.ts +53 -1
- package/src/codex/catalog/aggregation.ts +3 -0
- package/src/codex/catalog/parsing.ts +20 -3
- package/src/codex/catalog/provider-fetch.ts +8 -0
- package/src/codex/catalog/sync.ts +6 -4
- package/src/codex/log-guard/path-safety.ts +52 -3
- package/src/codex/native-profile-startup.ts +100 -2
- package/src/codex/user-identity.ts +21 -1
- package/src/config/provider-name.ts +24 -0
- package/src/config.ts +11 -24
- package/src/generated/compatibility-version.json +73 -45
- package/src/images/loop.ts +11 -4
- package/src/lib/state-store-registrations.ts +8 -2
- package/src/providers/antigravity-models.ts +70 -5
- package/src/providers/derive.ts +12 -2
- package/src/providers/registry.ts +46 -1
- package/src/providers/service-tier.ts +34 -7
- package/src/responses/parser.ts +56 -2
- package/src/responses/state.ts +162 -5
- package/src/router.ts +10 -3
- package/src/routing/compatibility/behavior.ts +3 -3
- package/src/routing/profile.ts +1 -1
- package/src/server/index.ts +5 -0
- package/src/server/management/shared.ts +3 -1
- package/src/server/responses/collaboration.ts +34 -9
- package/src/server/responses/core.ts +13 -4
- package/src/server/responses/input-admission.ts +7 -2
- package/src/service-manager-probe.ts +99 -0
- package/src/service.ts +86 -6
- package/src/tray/windows.ts +25 -5
- package/src/types/accounts.ts +37 -0
- package/src/types/config.ts +818 -0
- package/src/types/provider.ts +521 -0
- package/src/types/request.ts +358 -0
- package/src/types/tools.ts +131 -0
- package/src/types/wire.ts +80 -0
- package/src/types.ts +103 -1883
- package/src/usage/cost.ts +37 -1
- package/src/web-search/loop.ts +11 -4
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"path": "package.json",
|
|
13
|
-
"sha256": "
|
|
13
|
+
"sha256": "f51abeea3f3868735b479d9b97b58e7cbdc452e9e5cc4937dfa794a40d9e10c7"
|
|
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": "1d332a1ca8a265bd1e2f534fafed109c5fffc0b60fabd721b52e374c36482230"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
"path": "src/adapters/azure.ts",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
"path": "src/adapters/base.ts",
|
|
45
|
-
"sha256": "
|
|
45
|
+
"sha256": "e3371fb84f8af57cc772bb3b79b1b5af08a6158cb7bdb815b4c8fafb5eaf91e5"
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"path": "src/adapters/client-fingerprint.ts",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
"path": "src/adapters/command-code.ts",
|
|
57
|
-
"sha256": "
|
|
57
|
+
"sha256": "de5e96d0c8d15ae11c7db6332b73387fe56d12ea38b87e8f2a9d8b805c3dc94d"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
"path": "src/adapters/cursor.ts",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
"path": "src/adapters/cursor/cursor-errors.ts",
|
|
73
|
-
"sha256": "
|
|
73
|
+
"sha256": "0b84e2a511c90a66d68b6a995cdc8c6a1fdcfe3a0337b06cd14b93d2e18d66c9"
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
"path": "src/adapters/cursor/discovery.ts",
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
},
|
|
111
111
|
{
|
|
112
112
|
"path": "src/adapters/cursor/live-transport.ts",
|
|
113
|
-
"sha256": "
|
|
113
|
+
"sha256": "ec9d1312299bdf29460813effa8871e52d51a2ebf803f54820031952b693b806"
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
116
|
"path": "src/adapters/cursor/mcp-config.ts",
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
224
|
"path": "src/adapters/google.ts",
|
|
225
|
-
"sha256": "
|
|
225
|
+
"sha256": "e773b9fc6481ad14b075ceebf4fa950405fe9d775454408d8df37044b17a5aaf"
|
|
226
226
|
},
|
|
227
227
|
{
|
|
228
228
|
"path": "src/adapters/identity.ts",
|
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
},
|
|
287
287
|
{
|
|
288
288
|
"path": "src/adapters/openai-chat.ts",
|
|
289
|
-
"sha256": "
|
|
289
|
+
"sha256": "da14137945b5df7764ef9c40e24b0ebce284bf2d91acf620921041eeff61e7cb"
|
|
290
290
|
},
|
|
291
291
|
{
|
|
292
292
|
"path": "src/adapters/openai-responses-url.ts",
|
|
@@ -314,7 +314,7 @@
|
|
|
314
314
|
},
|
|
315
315
|
{
|
|
316
316
|
"path": "src/adapters/tool-catalog-nudge.ts",
|
|
317
|
-
"sha256": "
|
|
317
|
+
"sha256": "1958bac97f4072669e398ca123f7e035fde883fc583aa63b7104c8a7c38f5250"
|
|
318
318
|
},
|
|
319
319
|
{
|
|
320
320
|
"path": "src/adapters/upstream-http-error.ts",
|
|
@@ -322,7 +322,7 @@
|
|
|
322
322
|
},
|
|
323
323
|
{
|
|
324
324
|
"path": "src/bridge.ts",
|
|
325
|
-
"sha256": "
|
|
325
|
+
"sha256": "0397dbcf209d86d074223cd81b3d66c900a76f1d482713b67c08acc88b077a0e"
|
|
326
326
|
},
|
|
327
327
|
{
|
|
328
328
|
"path": "src/chat/inbound.ts",
|
|
@@ -478,7 +478,7 @@
|
|
|
478
478
|
},
|
|
479
479
|
{
|
|
480
480
|
"path": "src/cli/doctor.ts",
|
|
481
|
-
"sha256": "
|
|
481
|
+
"sha256": "ce42bf3a086291ff48d4456f16b77cfc77100e0996cff32983ef137235a4b7cb"
|
|
482
482
|
},
|
|
483
483
|
{
|
|
484
484
|
"path": "src/cli/export-command.ts",
|
|
@@ -486,7 +486,7 @@
|
|
|
486
486
|
},
|
|
487
487
|
{
|
|
488
488
|
"path": "src/cli/help.ts",
|
|
489
|
-
"sha256": "
|
|
489
|
+
"sha256": "70385569ae5922bdbff7a3bb2bca81fbb5c913a54440fc30ad19433151764517"
|
|
490
490
|
},
|
|
491
491
|
{
|
|
492
492
|
"path": "src/cli/index.ts",
|
|
@@ -522,7 +522,7 @@
|
|
|
522
522
|
},
|
|
523
523
|
{
|
|
524
524
|
"path": "src/cli/models.ts",
|
|
525
|
-
"sha256": "
|
|
525
|
+
"sha256": "2fc87036bf9fcce60d90a55dfcf5f91487a038cfb3bad8956ead28ec9058c858"
|
|
526
526
|
},
|
|
527
527
|
{
|
|
528
528
|
"path": "src/cli/observe.ts",
|
|
@@ -638,7 +638,7 @@
|
|
|
638
638
|
},
|
|
639
639
|
{
|
|
640
640
|
"path": "src/codex/app-server-processes.ts",
|
|
641
|
-
"sha256": "
|
|
641
|
+
"sha256": "74d7a0e50b11a977270faffd481b9996abaea3d1239bc09e477b85d3c13b83c5"
|
|
642
642
|
},
|
|
643
643
|
{
|
|
644
644
|
"path": "src/codex/app-server-restart-service.ts",
|
|
@@ -654,7 +654,7 @@
|
|
|
654
654
|
},
|
|
655
655
|
{
|
|
656
656
|
"path": "src/codex/auth-context.ts",
|
|
657
|
-
"sha256": "
|
|
657
|
+
"sha256": "4ee0af8ad36c280e74055ed0b6a4652e3f56f1aa76b97d95d97ddd67e9f91465"
|
|
658
658
|
},
|
|
659
659
|
{
|
|
660
660
|
"path": "src/codex/autostart-health.ts",
|
|
@@ -682,7 +682,7 @@
|
|
|
682
682
|
},
|
|
683
683
|
{
|
|
684
684
|
"path": "src/codex/catalog/aggregation.ts",
|
|
685
|
-
"sha256": "
|
|
685
|
+
"sha256": "4c3ee463d05c005b0127926d756f81e7d01adbbd68be3130724410c428bda6f7"
|
|
686
686
|
},
|
|
687
687
|
{
|
|
688
688
|
"path": "src/codex/catalog/bundled.ts",
|
|
@@ -710,15 +710,15 @@
|
|
|
710
710
|
},
|
|
711
711
|
{
|
|
712
712
|
"path": "src/codex/catalog/parsing.ts",
|
|
713
|
-
"sha256": "
|
|
713
|
+
"sha256": "fcc5e9dd4a6d8bffcc1aa30f5ffb4f1808c6aac986d1a5542305b946e44546e7"
|
|
714
714
|
},
|
|
715
715
|
{
|
|
716
716
|
"path": "src/codex/catalog/provider-fetch.ts",
|
|
717
|
-
"sha256": "
|
|
717
|
+
"sha256": "2f79fd574e5bbd1da13b42d68013c0137a0718fa2234ad877e3ca3118494cd46"
|
|
718
718
|
},
|
|
719
719
|
{
|
|
720
720
|
"path": "src/codex/catalog/sync.ts",
|
|
721
|
-
"sha256": "
|
|
721
|
+
"sha256": "c0fa454b88d4efa4109039a33510cbdc0e547499d6d521debb2f7f2f614c0dfe"
|
|
722
722
|
},
|
|
723
723
|
{
|
|
724
724
|
"path": "src/codex/codex-write-lock.ts",
|
|
@@ -826,7 +826,7 @@
|
|
|
826
826
|
},
|
|
827
827
|
{
|
|
828
828
|
"path": "src/codex/log-guard/path-safety.ts",
|
|
829
|
-
"sha256": "
|
|
829
|
+
"sha256": "4c967fe1e04202d44d2e23df99d0f8935350025c3c28e7d23546821218616e9a"
|
|
830
830
|
},
|
|
831
831
|
{
|
|
832
832
|
"path": "src/codex/log-guard/policy.ts",
|
|
@@ -902,7 +902,7 @@
|
|
|
902
902
|
},
|
|
903
903
|
{
|
|
904
904
|
"path": "src/codex/native-profile-startup.ts",
|
|
905
|
-
"sha256": "
|
|
905
|
+
"sha256": "2a21187577eb53bb818c5170ba49aa7ba43df203c700fbb435deb5a7ac8c413b"
|
|
906
906
|
},
|
|
907
907
|
{
|
|
908
908
|
"path": "src/codex/native-profile-store.ts",
|
|
@@ -1002,7 +1002,7 @@
|
|
|
1002
1002
|
},
|
|
1003
1003
|
{
|
|
1004
1004
|
"path": "src/codex/user-identity.ts",
|
|
1005
|
-
"sha256": "
|
|
1005
|
+
"sha256": "ada727e575a421b2571bd4af616a5707042d686e2a36b3847c35c6c128d122b6"
|
|
1006
1006
|
},
|
|
1007
1007
|
{
|
|
1008
1008
|
"path": "src/codex/warmup.ts",
|
|
@@ -1038,7 +1038,11 @@
|
|
|
1038
1038
|
},
|
|
1039
1039
|
{
|
|
1040
1040
|
"path": "src/config.ts",
|
|
1041
|
-
"sha256": "
|
|
1041
|
+
"sha256": "503fa58079502d808a568a1f11ac757208efae01307f7ac55783493cbc4ab7c8"
|
|
1042
|
+
},
|
|
1043
|
+
{
|
|
1044
|
+
"path": "src/config/provider-name.ts",
|
|
1045
|
+
"sha256": "3b19ad53e350808174a5e40fc1c873054e8b869c3ae463d984ee608e9d5bbcb3"
|
|
1042
1046
|
},
|
|
1043
1047
|
{
|
|
1044
1048
|
"path": "src/generated/model-metadata.ts",
|
|
@@ -1082,7 +1086,7 @@
|
|
|
1082
1086
|
},
|
|
1083
1087
|
{
|
|
1084
1088
|
"path": "src/images/loop.ts",
|
|
1085
|
-
"sha256": "
|
|
1089
|
+
"sha256": "c5b684bfd9aea1553cdb84e66af89d61fa5eee02bc45ae19996a071fca5c3892"
|
|
1086
1090
|
},
|
|
1087
1091
|
{
|
|
1088
1092
|
"path": "src/images/plan.ts",
|
|
@@ -1826,7 +1830,7 @@
|
|
|
1826
1830
|
},
|
|
1827
1831
|
{
|
|
1828
1832
|
"path": "src/lib/state-store-registrations.ts",
|
|
1829
|
-
"sha256": "
|
|
1833
|
+
"sha256": "3bfa6dd9ce8e2211ad65db0957d0767fddce95567ac531a2b5c0d9659fe7b26f"
|
|
1830
1834
|
},
|
|
1831
1835
|
{
|
|
1832
1836
|
"path": "src/lib/state-store-sweeper.ts",
|
|
@@ -2030,7 +2034,7 @@
|
|
|
2030
2034
|
},
|
|
2031
2035
|
{
|
|
2032
2036
|
"path": "src/providers/antigravity-models.ts",
|
|
2033
|
-
"sha256": "
|
|
2037
|
+
"sha256": "81535ac49237b29eac0197350a3e11b09006dec8b7a20c03cf582b201f8b0350"
|
|
2034
2038
|
},
|
|
2035
2039
|
{
|
|
2036
2040
|
"path": "src/providers/api-keys.ts",
|
|
@@ -2054,7 +2058,7 @@
|
|
|
2054
2058
|
},
|
|
2055
2059
|
{
|
|
2056
2060
|
"path": "src/providers/derive.ts",
|
|
2057
|
-
"sha256": "
|
|
2061
|
+
"sha256": "62ba3d34ca466b56fa5dc9c8efa911ac7e02f0f2d65863bafda5a5b778b94653"
|
|
2058
2062
|
},
|
|
2059
2063
|
{
|
|
2060
2064
|
"path": "src/providers/fastwire.ts",
|
|
@@ -2134,7 +2138,7 @@
|
|
|
2134
2138
|
},
|
|
2135
2139
|
{
|
|
2136
2140
|
"path": "src/providers/registry.ts",
|
|
2137
|
-
"sha256": "
|
|
2141
|
+
"sha256": "336fd0d6d81354a69b8c577e162dd73dd69e196b13ef82d51720897fc16d9fa5"
|
|
2138
2142
|
},
|
|
2139
2143
|
{
|
|
2140
2144
|
"path": "src/providers/request-pacing.ts",
|
|
@@ -2142,7 +2146,7 @@
|
|
|
2142
2146
|
},
|
|
2143
2147
|
{
|
|
2144
2148
|
"path": "src/providers/service-tier.ts",
|
|
2145
|
-
"sha256": "
|
|
2149
|
+
"sha256": "ebfb65e1e4983d60504a91ed4c97bb5df541b6307bbec1436f9999e2ff524545"
|
|
2146
2150
|
},
|
|
2147
2151
|
{
|
|
2148
2152
|
"path": "src/providers/slug-codec.ts",
|
|
@@ -2174,7 +2178,7 @@
|
|
|
2174
2178
|
},
|
|
2175
2179
|
{
|
|
2176
2180
|
"path": "src/responses/parser.ts",
|
|
2177
|
-
"sha256": "
|
|
2181
|
+
"sha256": "ad950568ee4f921b33a94acfaf214ddabe31c9701f6e7d4d73923f34a1b466e3"
|
|
2178
2182
|
},
|
|
2179
2183
|
{
|
|
2180
2184
|
"path": "src/responses/provider-opaque-metadata.ts",
|
|
@@ -2198,7 +2202,7 @@
|
|
|
2198
2202
|
},
|
|
2199
2203
|
{
|
|
2200
2204
|
"path": "src/responses/state.ts",
|
|
2201
|
-
"sha256": "
|
|
2205
|
+
"sha256": "701ce7f64b4e647bb2b1ebf79620addab5eaf1284855e9c5c50d446144d455fa"
|
|
2202
2206
|
},
|
|
2203
2207
|
{
|
|
2204
2208
|
"path": "src/responses/thought-signature-replay.ts",
|
|
@@ -2214,7 +2218,7 @@
|
|
|
2214
2218
|
},
|
|
2215
2219
|
{
|
|
2216
2220
|
"path": "src/router.ts",
|
|
2217
|
-
"sha256": "
|
|
2221
|
+
"sha256": "9eb5c0ea04fcb51150d91308138d3fab25dd19a85bc7bb273295c7924e1b128e"
|
|
2218
2222
|
},
|
|
2219
2223
|
{
|
|
2220
2224
|
"path": "src/routing/analytics.ts",
|
|
@@ -2230,7 +2234,7 @@
|
|
|
2230
2234
|
},
|
|
2231
2235
|
{
|
|
2232
2236
|
"path": "src/routing/compatibility/behavior.ts",
|
|
2233
|
-
"sha256": "
|
|
2237
|
+
"sha256": "e7006c3aebe1d36b6d7a9cd97f287599fc231ba0ddb7163c7a502ac67ad6d84f"
|
|
2234
2238
|
},
|
|
2235
2239
|
{
|
|
2236
2240
|
"path": "src/routing/compatibility/catalog.ts",
|
|
@@ -2298,7 +2302,7 @@
|
|
|
2298
2302
|
},
|
|
2299
2303
|
{
|
|
2300
2304
|
"path": "src/routing/profile.ts",
|
|
2301
|
-
"sha256": "
|
|
2305
|
+
"sha256": "3ce7c68aff2b8b646d48c5c14b10336f0cf699df46ccd7abe0bbaf97fb939e06"
|
|
2302
2306
|
},
|
|
2303
2307
|
{
|
|
2304
2308
|
"path": "src/routing/quota.ts",
|
|
@@ -2366,7 +2370,7 @@
|
|
|
2366
2370
|
},
|
|
2367
2371
|
{
|
|
2368
2372
|
"path": "src/server/index.ts",
|
|
2369
|
-
"sha256": "
|
|
2373
|
+
"sha256": "a7276cdfd8dd11936c52c5235378d2ea7bc8d47ee64ba8ef07a5738cb34bcb28"
|
|
2370
2374
|
},
|
|
2371
2375
|
{
|
|
2372
2376
|
"path": "src/server/lifecycle.ts",
|
|
@@ -2474,7 +2478,7 @@
|
|
|
2474
2478
|
},
|
|
2475
2479
|
{
|
|
2476
2480
|
"path": "src/server/management/shared.ts",
|
|
2477
|
-
"sha256": "
|
|
2481
|
+
"sha256": "20d037194bf445da81fc3e266885344c5c3f8e252cabe46d11c4de68a71748ab"
|
|
2478
2482
|
},
|
|
2479
2483
|
{
|
|
2480
2484
|
"path": "src/server/management/sidebar-routes.ts",
|
|
@@ -2598,7 +2602,7 @@
|
|
|
2598
2602
|
},
|
|
2599
2603
|
{
|
|
2600
2604
|
"path": "src/server/responses/collaboration.ts",
|
|
2601
|
-
"sha256": "
|
|
2605
|
+
"sha256": "415d0d0f754e8cf5c511628d2801fb3ca7b31e68356d0b6a2832d5582d555dda"
|
|
2602
2606
|
},
|
|
2603
2607
|
{
|
|
2604
2608
|
"path": "src/server/responses/compact.ts",
|
|
@@ -2606,7 +2610,7 @@
|
|
|
2606
2610
|
},
|
|
2607
2611
|
{
|
|
2608
2612
|
"path": "src/server/responses/core.ts",
|
|
2609
|
-
"sha256": "
|
|
2613
|
+
"sha256": "1d3e6811caa5bd45bc89673102a53663308f9dea7d8054ff1f7aaa65428e5840"
|
|
2610
2614
|
},
|
|
2611
2615
|
{
|
|
2612
2616
|
"path": "src/server/responses/empty-completion-guard.ts",
|
|
@@ -2622,7 +2626,7 @@
|
|
|
2622
2626
|
},
|
|
2623
2627
|
{
|
|
2624
2628
|
"path": "src/server/responses/input-admission.ts",
|
|
2625
|
-
"sha256": "
|
|
2629
|
+
"sha256": "b1f22e78cc089c5f950807f7ffc4b669e1d84ddfced448421ab1539dda749e55"
|
|
2626
2630
|
},
|
|
2627
2631
|
{
|
|
2628
2632
|
"path": "src/server/responses/pacing-overload.ts",
|
|
@@ -2690,11 +2694,11 @@
|
|
|
2690
2694
|
},
|
|
2691
2695
|
{
|
|
2692
2696
|
"path": "src/service-manager-probe.ts",
|
|
2693
|
-
"sha256": "
|
|
2697
|
+
"sha256": "72531f30feb9d9979758b39d90092c5589c541d85b1b0e858d3644d59303aade"
|
|
2694
2698
|
},
|
|
2695
2699
|
{
|
|
2696
2700
|
"path": "src/service.ts",
|
|
2697
|
-
"sha256": "
|
|
2701
|
+
"sha256": "a9babc47b0d3fd5e3f1fcd31f9be8438071ebad6d86fa716f52cecfc4d4a14e3"
|
|
2698
2702
|
},
|
|
2699
2703
|
{
|
|
2700
2704
|
"path": "src/stall-timeout.ts",
|
|
@@ -2766,11 +2770,35 @@
|
|
|
2766
2770
|
},
|
|
2767
2771
|
{
|
|
2768
2772
|
"path": "src/tray/windows.ts",
|
|
2769
|
-
"sha256": "
|
|
2773
|
+
"sha256": "710652e095d176bdfef69d8926949dcba8b652e7eb3e008376d90375af6ccc26"
|
|
2770
2774
|
},
|
|
2771
2775
|
{
|
|
2772
2776
|
"path": "src/types.ts",
|
|
2773
|
-
"sha256": "
|
|
2777
|
+
"sha256": "080ba71673e40c75d7b83d99a59b19ef3309cf7089f0f6888db01e99b52c6afb"
|
|
2778
|
+
},
|
|
2779
|
+
{
|
|
2780
|
+
"path": "src/types/accounts.ts",
|
|
2781
|
+
"sha256": "8037e50f3e8660279b085e3cf252a757ae01269925f96144ae972c5ac514bff0"
|
|
2782
|
+
},
|
|
2783
|
+
{
|
|
2784
|
+
"path": "src/types/config.ts",
|
|
2785
|
+
"sha256": "99feba50e45494608d13af6affb5db2389480ebbf02376e0cd324f7a493a3f6b"
|
|
2786
|
+
},
|
|
2787
|
+
{
|
|
2788
|
+
"path": "src/types/provider.ts",
|
|
2789
|
+
"sha256": "f164d467b022826f1ce73ee9e2809d7bb79fcd1257742296a41b9472a7af6424"
|
|
2790
|
+
},
|
|
2791
|
+
{
|
|
2792
|
+
"path": "src/types/request.ts",
|
|
2793
|
+
"sha256": "1f690d581676005a86a280dc80104687c41c58f1639f9770fd4d26f6c9ba7781"
|
|
2794
|
+
},
|
|
2795
|
+
{
|
|
2796
|
+
"path": "src/types/tools.ts",
|
|
2797
|
+
"sha256": "eb4b0526fcdf2ce220d731ed0eb4da539681262d13f6b3fec06e0d80a0429e8b"
|
|
2798
|
+
},
|
|
2799
|
+
{
|
|
2800
|
+
"path": "src/types/wire.ts",
|
|
2801
|
+
"sha256": "ce5d1a7fabef76c800b469bea4a08db0e45259e54e19b60b7b00fbfb85d28973"
|
|
2774
2802
|
},
|
|
2775
2803
|
{
|
|
2776
2804
|
"path": "src/update/badge.ts",
|
|
@@ -2822,7 +2850,7 @@
|
|
|
2822
2850
|
},
|
|
2823
2851
|
{
|
|
2824
2852
|
"path": "src/usage/cost.ts",
|
|
2825
|
-
"sha256": "
|
|
2853
|
+
"sha256": "ccd83889f7cbed904d70c01fc37ea86e0d9761571d7e5bcda4f17c9093800883"
|
|
2826
2854
|
},
|
|
2827
2855
|
{
|
|
2828
2856
|
"path": "src/usage/debug.ts",
|
|
@@ -2894,7 +2922,7 @@
|
|
|
2894
2922
|
},
|
|
2895
2923
|
{
|
|
2896
2924
|
"path": "src/web-search/loop.ts",
|
|
2897
|
-
"sha256": "
|
|
2925
|
+
"sha256": "bac74547ac57eff8b4b9b4e5a9880f4371f59f72827d6f182ceeef68b23a5a9d"
|
|
2898
2926
|
},
|
|
2899
2927
|
{
|
|
2900
2928
|
"path": "src/web-search/parse.ts",
|
package/src/images/loop.ts
CHANGED
|
@@ -676,13 +676,20 @@ export async function runWithImageBridge(deps: ImageBridgeDeps): Promise<Respons
|
|
|
676
676
|
}
|
|
677
677
|
}
|
|
678
678
|
|
|
679
|
-
const toolNsMap = new Map<string, { namespace: string; name: string }>();
|
|
679
|
+
const toolNsMap = new Map<string, { namespace: string; name: string; freeform?: true }>();
|
|
680
680
|
const freeform = new Set<string>();
|
|
681
681
|
const toolSearch = new Set<string>();
|
|
682
|
-
const
|
|
683
|
-
|
|
682
|
+
const requestedTools = parsed.context.tools ?? [];
|
|
683
|
+
const toolAllowed = toolChoiceToolPredicate(parsed.options.toolChoice, requestedTools);
|
|
684
|
+
for (const t of requestedTools) {
|
|
684
685
|
if (!toolAllowed(t)) continue;
|
|
685
|
-
if (t.namespace)
|
|
686
|
+
if (t.namespace) {
|
|
687
|
+
toolNsMap.set(namespacedToolName(t.namespace, t.name), {
|
|
688
|
+
namespace: t.namespace,
|
|
689
|
+
name: t.name,
|
|
690
|
+
...(t.freeform ? { freeform: true } : {}),
|
|
691
|
+
});
|
|
692
|
+
}
|
|
686
693
|
if (t.freeform) freeform.add(t.name);
|
|
687
694
|
if (t.toolSearch) toolSearch.add(t.name);
|
|
688
695
|
}
|
|
@@ -35,7 +35,7 @@ import { listLiveOAuthAccountKeys, reconcileOAuthReauthState } from "../oauth/st
|
|
|
35
35
|
import { reconcileGuardianBackoff } from "../oauth/token-guardian";
|
|
36
36
|
import { sweepExpiredApiKeyCooldowns } from "../providers/key-failover";
|
|
37
37
|
import { reconcileProviderRequestPacing } from "../providers/request-pacing";
|
|
38
|
-
import { sweepExpiredResponseStates } from "../responses/state";
|
|
38
|
+
import { sweepAbandonedResponseStateTemps, sweepExpiredResponseStates } from "../responses/state";
|
|
39
39
|
import { sweepExpiredAntigravityReplay } from "../adapters/google-antigravity-replay";
|
|
40
40
|
import { reconcileProviderAccountQuotaRows } from "../providers/quota";
|
|
41
41
|
import { reconcileRouterWarningMemos } from "../router";
|
|
@@ -84,7 +84,13 @@ export const STATE_STORE_REGISTRATIONS = [
|
|
|
84
84
|
},
|
|
85
85
|
{ name: "anthropic-routing-health", sweepExpired: sweepExpiredAnthropicRoutingHealth },
|
|
86
86
|
{ name: "xai-refresh-verdicts", sweepExpired: sweepExpiredXaiPermanentFailureVerdicts },
|
|
87
|
-
{
|
|
87
|
+
{
|
|
88
|
+
name: "responses-continuation",
|
|
89
|
+
sweepExpired: sweepExpiredResponseStates,
|
|
90
|
+
// Disk reclaim rides the liveness tick, not the TTL tick: sweepExpiredOnWrite puts
|
|
91
|
+
// sweepExpired on hot write paths, where a directory scan does not belong.
|
|
92
|
+
sweepLiveness: sweepAbandonedResponseStateTemps,
|
|
93
|
+
},
|
|
88
94
|
{ name: "antigravity-replay", sweepExpired: sweepExpiredAntigravityReplay },
|
|
89
95
|
{ name: "config-warning-memos", reconcileGeneration: (context: GenerationContext) => reconcileConfigWarningMemos(context.generation) },
|
|
90
96
|
{ name: "catalog-warning-memos", reconcileGeneration: (context: GenerationContext) => reconcileCatalogWarningMemos(context.generation) },
|
|
@@ -72,6 +72,12 @@ const ANTIGRAVITY_WIRE_IDS_BY_PICKER_MODEL: Record<string, string[]> = Object.en
|
|
|
72
72
|
}, {});
|
|
73
73
|
|
|
74
74
|
const ANTIGRAVITY_DISCOVERY_EFFORTS = ["low", "medium", "high"] as const;
|
|
75
|
+
type AntigravityDiscoveryEffort = typeof ANTIGRAVITY_DISCOVERY_EFFORTS[number];
|
|
76
|
+
type AntigravityEffortWireModelIds = Partial<Record<AntigravityDiscoveryEffort, string>>;
|
|
77
|
+
|
|
78
|
+
function isAntigravityDiscoveryEffort(value: string): value is AntigravityDiscoveryEffort {
|
|
79
|
+
return (ANTIGRAVITY_DISCOVERY_EFFORTS as readonly string[]).includes(value);
|
|
80
|
+
}
|
|
75
81
|
|
|
76
82
|
function pickerModelIdForDiscoveredWireId(
|
|
77
83
|
wireId: string,
|
|
@@ -151,6 +157,25 @@ const ANTIGRAVITY_EFFORT_WIRE_MAP: Record<string, Record<string, string>> = {
|
|
|
151
157
|
},
|
|
152
158
|
};
|
|
153
159
|
|
|
160
|
+
function completeDiscoveredEffortWireModelIds(
|
|
161
|
+
pickerId: string,
|
|
162
|
+
available: ReadonlyMap<string, Record<string, unknown>>,
|
|
163
|
+
): AntigravityEffortWireModelIds | undefined {
|
|
164
|
+
const explicitEffortMap = ANTIGRAVITY_EFFORT_WIRE_MAP[pickerId];
|
|
165
|
+
if (explicitEffortMap && Object.values(explicitEffortMap).every(wireId => available.has(wireId))) {
|
|
166
|
+
return { ...explicitEffortMap };
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (!isKnownAntigravityPickerModelId(pickerId)) return undefined;
|
|
170
|
+
const suffixEffortMap: AntigravityEffortWireModelIds = {};
|
|
171
|
+
for (const effort of ANTIGRAVITY_DISCOVERY_EFFORTS) {
|
|
172
|
+
const wireId = `${pickerId}-${effort}`;
|
|
173
|
+
if (!available.has(wireId)) return undefined;
|
|
174
|
+
suffixEffortMap[effort] = wireId;
|
|
175
|
+
}
|
|
176
|
+
return suffixEffortMap;
|
|
177
|
+
}
|
|
178
|
+
|
|
154
179
|
// ── Default effort per Gemini base model ──
|
|
155
180
|
const ANTIGRAVITY_DEFAULT_EFFORT: Record<string, string> = {
|
|
156
181
|
"gemini-3.1-pro": "high",
|
|
@@ -270,6 +295,8 @@ export interface AntigravityAvailableModel {
|
|
|
270
295
|
id: string;
|
|
271
296
|
/** CCA model id used by the agent envelope when `id` comes from display metadata. */
|
|
272
297
|
wireModelId: string;
|
|
298
|
+
/** Complete effort-to-wire mapping retained for collapsed discovered tier sets. */
|
|
299
|
+
effortWireModelIds?: AntigravityEffortWireModelIds;
|
|
273
300
|
contextWindow?: number;
|
|
274
301
|
inputModalities?: string[];
|
|
275
302
|
}
|
|
@@ -286,6 +313,7 @@ function antigravityPositiveInteger(value: unknown): number | undefined {
|
|
|
286
313
|
|
|
287
314
|
interface DiscoveredWireModelMapping {
|
|
288
315
|
readonly models: ReadonlyMap<string, string>;
|
|
316
|
+
readonly effortModels: ReadonlyMap<string, AntigravityEffortWireModelIds>;
|
|
289
317
|
readonly generation?: { provider: string; cacheGeneration: string };
|
|
290
318
|
}
|
|
291
319
|
|
|
@@ -327,17 +355,21 @@ export function registerAntigravityDiscoveredWireModels(
|
|
|
327
355
|
const key = antigravityBaseUrlKey(baseUrl);
|
|
328
356
|
if (!key) return;
|
|
329
357
|
const wireModels = new Map<string, string>();
|
|
330
|
-
|
|
358
|
+
const effortModels = new Map<string, AntigravityEffortWireModelIds>();
|
|
359
|
+
for (const model of models) {
|
|
360
|
+
wireModels.set(model.id, model.wireModelId);
|
|
361
|
+
if (model.effortWireModelIds) effortModels.set(model.id, { ...model.effortWireModelIds });
|
|
362
|
+
}
|
|
331
363
|
discoveredWireModelsByBaseUrl.set(key, {
|
|
332
364
|
models: wireModels,
|
|
365
|
+
effortModels,
|
|
333
366
|
...(generation ? { generation } : {}),
|
|
334
367
|
});
|
|
335
368
|
}
|
|
336
369
|
|
|
337
|
-
function
|
|
338
|
-
modelId: string,
|
|
370
|
+
function discoveredAntigravityMapping(
|
|
339
371
|
baseUrl: string | undefined,
|
|
340
|
-
):
|
|
372
|
+
): DiscoveredWireModelMapping | undefined {
|
|
341
373
|
const key = antigravityBaseUrlKey(baseUrl);
|
|
342
374
|
if (!key) return undefined;
|
|
343
375
|
const mapping = discoveredWireModelsByBaseUrl.get(key);
|
|
@@ -347,7 +379,35 @@ function discoveredAntigravityWireModelId(
|
|
|
347
379
|
discoveredWireModelsByBaseUrl.delete(key);
|
|
348
380
|
return undefined;
|
|
349
381
|
}
|
|
350
|
-
return mapping
|
|
382
|
+
return mapping;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
function discoveredAntigravityWireModelId(
|
|
386
|
+
modelId: string,
|
|
387
|
+
baseUrl: string | undefined,
|
|
388
|
+
): string | undefined {
|
|
389
|
+
return discoveredAntigravityMapping(baseUrl)?.models.get(modelId);
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
function discoveredAntigravityEffortWireModelId(
|
|
393
|
+
modelId: string,
|
|
394
|
+
effort: string | undefined,
|
|
395
|
+
baseUrl: string | undefined,
|
|
396
|
+
): string | undefined {
|
|
397
|
+
const effortMap = discoveredAntigravityMapping(baseUrl)?.effortModels.get(modelId);
|
|
398
|
+
if (!effortMap) return undefined;
|
|
399
|
+
|
|
400
|
+
const requestedEffort = effort ? resolveAntigravityThinkingLevel(effort) : undefined;
|
|
401
|
+
if (requestedEffort && isAntigravityDiscoveryEffort(requestedEffort) && effortMap[requestedEffort]) {
|
|
402
|
+
return effortMap[requestedEffort];
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
const defaultEffort = ANTIGRAVITY_DEFAULT_EFFORT[modelId]
|
|
406
|
+
?? ANTIGRAVITY_THINKING_LEVEL_MODELS[modelId];
|
|
407
|
+
if (defaultEffort && isAntigravityDiscoveryEffort(defaultEffort) && effortMap[defaultEffort]) {
|
|
408
|
+
return effortMap[defaultEffort];
|
|
409
|
+
}
|
|
410
|
+
return Object.values(effortMap)[0];
|
|
351
411
|
}
|
|
352
412
|
|
|
353
413
|
/**
|
|
@@ -465,9 +525,11 @@ export function parseAntigravityAvailableModels(
|
|
|
465
525
|
const id = pickerModelIdForDiscoveredWireId(wireId, info, available);
|
|
466
526
|
if (seen.has(id)) continue;
|
|
467
527
|
seen.add(id);
|
|
528
|
+
const effortWireModelIds = completeDiscoveredEffortWireModelIds(id, available);
|
|
468
529
|
out.push({
|
|
469
530
|
id,
|
|
470
531
|
wireModelId: wireId,
|
|
532
|
+
...(effortWireModelIds ? { effortWireModelIds } : {}),
|
|
471
533
|
...(antigravityPositiveInteger(info.maxTokens) ? { contextWindow: antigravityPositiveInteger(info.maxTokens) } : {}),
|
|
472
534
|
// Tri-state, deliberately not a ternary: `true` asserts image support,
|
|
473
535
|
// `false` asserts against it, and ABSENT is unknown. Collapsing absent into
|
|
@@ -522,6 +584,9 @@ export function resolveAntigravityEffortWireModel(
|
|
|
522
584
|
effort?: string,
|
|
523
585
|
baseUrl?: string,
|
|
524
586
|
): { wireModelId: string; thinkingLevel?: string } {
|
|
587
|
+
const discoveredEffortWireModelId = discoveredAntigravityEffortWireModelId(modelId, effort, baseUrl);
|
|
588
|
+
if (discoveredEffortWireModelId) return { wireModelId: discoveredEffortWireModelId };
|
|
589
|
+
|
|
525
590
|
// A collapsed picker row reports ONE representative wire id (whichever tier CCA
|
|
526
591
|
// listed first), so live discovery cannot describe a ladder — it can only name a
|
|
527
592
|
// single rung. Letting it answer for a base model we already have a ladder for
|
package/src/providers/derive.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { cloneFastWire } from "./fastwire";
|
|
|
3
3
|
import {
|
|
4
4
|
PROVIDER_REGISTRY,
|
|
5
5
|
registryEntryForProviderDestination,
|
|
6
|
+
registryModelServiceTierCapabilityApplies,
|
|
6
7
|
type ProviderRegistryEntry,
|
|
7
8
|
} from "./registry";
|
|
8
9
|
import {
|
|
@@ -377,6 +378,15 @@ function applyServiceTierModelDefaults(
|
|
|
377
378
|
};
|
|
378
379
|
}
|
|
379
380
|
|
|
381
|
+
function serviceTierModelDefaultsFor(
|
|
382
|
+
entry: ProviderRegistryEntry | undefined,
|
|
383
|
+
prov: OcxProviderConfig,
|
|
384
|
+
): Readonly<Record<string, boolean>> | undefined {
|
|
385
|
+
return entry && registryModelServiceTierCapabilityApplies(entry, prov)
|
|
386
|
+
? entry.modelSupportsServiceTier
|
|
387
|
+
: undefined;
|
|
388
|
+
}
|
|
389
|
+
|
|
380
390
|
/**
|
|
381
391
|
* Last-resort enrichment for a provider whose NAME matches no registry id.
|
|
382
392
|
*
|
|
@@ -412,7 +422,7 @@ export function enrichProviderFromRegistry(name: string, prov: OcxProviderConfig
|
|
|
412
422
|
// which vendor endpoint is this row talking to — and is already restricted to fixed key
|
|
413
423
|
// destinations, so a templated or overridable base URL cannot be claimed by it.
|
|
414
424
|
enrichReasoningSummariesByDestination(prov);
|
|
415
|
-
applyServiceTierModelDefaults(prov, registryEntryForProviderDestination(prov)
|
|
425
|
+
applyServiceTierModelDefaults(prov, serviceTierModelDefaultsFor(registryEntryForProviderDestination(prov), prov));
|
|
416
426
|
return;
|
|
417
427
|
}
|
|
418
428
|
const explicitDirectReasoning: DirectReasoningEffortOverrides = {
|
|
@@ -466,7 +476,7 @@ export function enrichProviderFromRegistry(name: string, prov: OcxProviderConfig
|
|
|
466
476
|
if (prov.supportsServiceTier === undefined && entry.supportsServiceTier !== undefined) prov.supportsServiceTier = entry.supportsServiceTier;
|
|
467
477
|
if (prov.preserveResponsesReasoningContent === undefined && entry.preserveResponsesReasoningContent !== undefined) prov.preserveResponsesReasoningContent = entry.preserveResponsesReasoningContent;
|
|
468
478
|
applyReasoningSummaryDefaults(prov, entry.modelSupportsReasoningSummaries);
|
|
469
|
-
applyServiceTierModelDefaults(prov, entry
|
|
479
|
+
applyServiceTierModelDefaults(prov, serviceTierModelDefaultsFor(entry, prov));
|
|
470
480
|
// Registry-only repair policy (#938): fill only when the runtime provider has
|
|
471
481
|
// no explicit policy, and deep-clone so saved/user values never alias the
|
|
472
482
|
// registry constant.
|