@bitkyc08/opencodex 2.29.0 → 2.31.0-preview.20260822
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 +5 -5
- package/gui/dist/assets/index-DyWYnr-t.js +102 -0
- package/gui/dist/index.html +1 -1
- package/package.json +3 -3
- package/src/adapters/cursor/cursor-errors.ts +65 -6
- package/src/adapters/cursor/discovery.ts +29 -2
- package/src/adapters/cursor/effort-map.ts +6 -0
- package/src/adapters/cursor/h2-pool.ts +123 -0
- package/src/adapters/cursor/images.ts +704 -0
- package/src/adapters/cursor/live-models.ts +21 -26
- package/src/adapters/cursor/live-transport.ts +239 -8
- package/src/adapters/cursor/native-exec-common.ts +17 -0
- package/src/adapters/cursor/native-exec.ts +9 -4
- package/src/adapters/cursor/protobuf-events.ts +5 -1
- package/src/adapters/cursor/protobuf-request.ts +46 -9
- package/src/adapters/cursor/request-builder.ts +29 -14
- package/src/adapters/cursor/tool-definitions.ts +20 -0
- package/src/adapters/cursor/transport.ts +10 -0
- package/src/adapters/cursor/types.ts +8 -1
- package/src/adapters/cursor.ts +23 -5
- package/src/adapters/google.ts +16 -3
- package/src/adapters/openai-responses.ts +66 -20
- package/src/adapters/xai-web-search.ts +185 -0
- package/src/cli/agent.ts +2 -1
- package/src/cli/dispatch.ts +2 -2
- package/src/cli/doctor.ts +89 -0
- package/src/cli/help.ts +2 -0
- package/src/cli/registry.ts +7 -2
- package/src/codex/auth-context.ts +41 -2
- package/src/codex/catalog/effort.ts +1 -1
- package/src/codex/catalog/parsing.ts +2 -0
- package/src/codex/catalog/provider-fetch.ts +20 -5
- package/src/codex/coordinator-doctor.ts +332 -0
- package/src/codex/features.ts +58 -0
- package/src/codex/inject-coordination.ts +39 -6
- package/src/codex/transition-state.ts +12 -12
- package/src/generated/compatibility-version.json +86 -58
- package/src/lib/bun-stream-caps.ts +7 -4
- package/src/lib/errors.ts +8 -2
- package/src/oauth/cursor.ts +21 -0
- package/src/providers/command-code-efforts.ts +7 -0
- package/src/providers/cursor-pool.ts +72 -0
- package/src/providers/derive.ts +3 -0
- package/src/providers/fastwire.ts +12 -1
- package/src/providers/openai-sidecar.ts +1 -0
- package/src/providers/quota.ts +98 -25
- package/src/providers/registry.ts +115 -10
- package/src/providers/service-tier.ts +22 -7
- package/src/responses/custom-tool-compat.ts +24 -8
- package/src/responses/namespace-tool-compat.ts +2 -3
- package/src/router.ts +3 -0
- package/src/server/chat-completions.ts +4 -0
- package/src/server/chat-native.ts +20 -0
- package/src/server/management/agent-settings-routes.ts +16 -5
- package/src/server/management/config-routes.ts +25 -5
- package/src/server/management/vision-sidecar-options.ts +54 -19
- package/src/server/responses/compact.ts +1 -2
- package/src/server/responses/core.ts +54 -13
- package/src/service.ts +122 -14
- package/src/types/config.ts +9 -3
- package/src/types/provider.ts +6 -0
- package/src/usage/cost.ts +52 -38
- package/src/usage/expected-prices.ts +79 -9
- package/src/vision/backends.ts +97 -0
- package/src/vision/eligibility.ts +43 -22
- package/src/vision/index.ts +73 -5
- package/src/vision/routed-describe.ts +175 -0
- package/gui/dist/assets/index-BNESwCzn.js +0 -102
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"assertionDslVersion": "1.0.0",
|
|
4
4
|
"evidenceSchemaVersion": "1.0.0",
|
|
5
|
-
"bunRuntimeVersion": "1.
|
|
5
|
+
"bunRuntimeVersion": "1.4.0",
|
|
6
6
|
"files": [
|
|
7
7
|
{
|
|
8
8
|
"path": "bun.lock",
|
|
9
|
-
"sha256": "
|
|
9
|
+
"sha256": "29a6cf6ad4c475b5ec0fbcc104b032fbdb293fed12eb17d803ce626481e7e2f5"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"path": "package.json",
|
|
13
|
-
"sha256": "
|
|
13
|
+
"sha256": "4900f62186bb7e8ca8fd5a8ea66490064e7d6e23e7ec99f110e7fc82c190d49f"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
"path": "scripts/model-metadata.source.json",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
"path": "src/adapters/cursor.ts",
|
|
61
|
-
"sha256": "
|
|
61
|
+
"sha256": "2648737b4e9216f6cf09fc4edf83da4fedaa483220f1716c6f66b6a7c6d15286"
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
"path": "src/adapters/cursor/arg-codec.ts",
|
|
@@ -74,15 +74,15 @@
|
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
"path": "src/adapters/cursor/cursor-errors.ts",
|
|
77
|
-
"sha256": "
|
|
77
|
+
"sha256": "b5fb1069d88bf53b4f6de84017646c99452681c22a1bf4abbf6f4b2465a13be4"
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
"path": "src/adapters/cursor/discovery.ts",
|
|
81
|
-
"sha256": "
|
|
81
|
+
"sha256": "8a7275b3280e9629c0b7d0c25ee9d35d723f598bc18dea6bd2633e865ed0c43e"
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
"path": "src/adapters/cursor/effort-map.ts",
|
|
85
|
-
"sha256": "
|
|
85
|
+
"sha256": "495b443a1aabdec8358975f76f03b8f40c9981c9ec6120407d8027128e1a027f"
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
"path": "src/adapters/cursor/exec-policy.ts",
|
|
@@ -96,17 +96,25 @@
|
|
|
96
96
|
"path": "src/adapters/cursor/gen/agent_pb.ts",
|
|
97
97
|
"sha256": "819da889962a89f5b761cb14e76786f6e455e85bb49f59fdaf6778474b106012"
|
|
98
98
|
},
|
|
99
|
+
{
|
|
100
|
+
"path": "src/adapters/cursor/h2-pool.ts",
|
|
101
|
+
"sha256": "53bab2c504350ce2a985553e6e391a61bba900bb0b58d6c99675eea1e0c1c84e"
|
|
102
|
+
},
|
|
99
103
|
{
|
|
100
104
|
"path": "src/adapters/cursor/http1-bidi.ts",
|
|
101
105
|
"sha256": "351a05fa5bab54709c5fcb1bbbaaae2974f041ea6033283b854812d97df53c7d"
|
|
102
106
|
},
|
|
107
|
+
{
|
|
108
|
+
"path": "src/adapters/cursor/images.ts",
|
|
109
|
+
"sha256": "3fe4ef5a79540055ec57b896fe5df73c3b0a532cc9d9031e29e1921d52969c89"
|
|
110
|
+
},
|
|
103
111
|
{
|
|
104
112
|
"path": "src/adapters/cursor/kv-store.ts",
|
|
105
113
|
"sha256": "9699c3b4bf5c61f42f2a6653755dc46d662513b728e0e284ca2b46a1006c57ed"
|
|
106
114
|
},
|
|
107
115
|
{
|
|
108
116
|
"path": "src/adapters/cursor/live-models.ts",
|
|
109
|
-
"sha256": "
|
|
117
|
+
"sha256": "a66d29f26e225cc49330bcf25aecb5a82b658ef631310843c4221fa2cfb9451f"
|
|
110
118
|
},
|
|
111
119
|
{
|
|
112
120
|
"path": "src/adapters/cursor/live-smoke-gate.ts",
|
|
@@ -114,7 +122,7 @@
|
|
|
114
122
|
},
|
|
115
123
|
{
|
|
116
124
|
"path": "src/adapters/cursor/live-transport.ts",
|
|
117
|
-
"sha256": "
|
|
125
|
+
"sha256": "cc994819e61adca9fdf7ed22a84c726e02b61db93abdd7dd4eb21051f633c08e"
|
|
118
126
|
},
|
|
119
127
|
{
|
|
120
128
|
"path": "src/adapters/cursor/mcp-config.ts",
|
|
@@ -130,7 +138,7 @@
|
|
|
130
138
|
},
|
|
131
139
|
{
|
|
132
140
|
"path": "src/adapters/cursor/native-exec-common.ts",
|
|
133
|
-
"sha256": "
|
|
141
|
+
"sha256": "4682a899e9e626fc7fe7a481bf565468c44641d30414d2e3de560c703ce090b8"
|
|
134
142
|
},
|
|
135
143
|
{
|
|
136
144
|
"path": "src/adapters/cursor/native-exec-desktop.ts",
|
|
@@ -158,19 +166,19 @@
|
|
|
158
166
|
},
|
|
159
167
|
{
|
|
160
168
|
"path": "src/adapters/cursor/native-exec.ts",
|
|
161
|
-
"sha256": "
|
|
169
|
+
"sha256": "ac362545a8f421bd650e6ad12c1312172e3b8f27a388223f3578df13a9da438a"
|
|
162
170
|
},
|
|
163
171
|
{
|
|
164
172
|
"path": "src/adapters/cursor/protobuf-events.ts",
|
|
165
|
-
"sha256": "
|
|
173
|
+
"sha256": "e6b77507b05bc21880dbb4fb158f53dd8ae81af67d4aa6af15f94f98f5208eac"
|
|
166
174
|
},
|
|
167
175
|
{
|
|
168
176
|
"path": "src/adapters/cursor/protobuf-request.ts",
|
|
169
|
-
"sha256": "
|
|
177
|
+
"sha256": "56078daf901cd00fc05efd90cbc57e82ff516ee8eb5ebfa64aaf543638e67a59"
|
|
170
178
|
},
|
|
171
179
|
{
|
|
172
180
|
"path": "src/adapters/cursor/request-builder.ts",
|
|
173
|
-
"sha256": "
|
|
181
|
+
"sha256": "0d73c142a173ee52aefb90038f99667915c8def79e009bcf5044571d4f44cb0b"
|
|
174
182
|
},
|
|
175
183
|
{
|
|
176
184
|
"path": "src/adapters/cursor/thread-continuity.ts",
|
|
@@ -178,7 +186,7 @@
|
|
|
178
186
|
},
|
|
179
187
|
{
|
|
180
188
|
"path": "src/adapters/cursor/tool-definitions.ts",
|
|
181
|
-
"sha256": "
|
|
189
|
+
"sha256": "8544f4ce80f5dde32e2d7890542eaeaae966f222cb497e3c0ebf57bdc623c5d6"
|
|
182
190
|
},
|
|
183
191
|
{
|
|
184
192
|
"path": "src/adapters/cursor/tool-result-normalize.ts",
|
|
@@ -190,11 +198,11 @@
|
|
|
190
198
|
},
|
|
191
199
|
{
|
|
192
200
|
"path": "src/adapters/cursor/transport.ts",
|
|
193
|
-
"sha256": "
|
|
201
|
+
"sha256": "91d5379a51e358becf030d2946cb6ebfb8f3ad775da53ce29986e25f2e11f309"
|
|
194
202
|
},
|
|
195
203
|
{
|
|
196
204
|
"path": "src/adapters/cursor/types.ts",
|
|
197
|
-
"sha256": "
|
|
205
|
+
"sha256": "afbcb4770747dd3287c3f9069805c4f9a2cb675f3e124bad8295b672a678b3ad"
|
|
198
206
|
},
|
|
199
207
|
{
|
|
200
208
|
"path": "src/adapters/google-antigravity-replay.ts",
|
|
@@ -226,7 +234,7 @@
|
|
|
226
234
|
},
|
|
227
235
|
{
|
|
228
236
|
"path": "src/adapters/google.ts",
|
|
229
|
-
"sha256": "
|
|
237
|
+
"sha256": "e6f8bd41b77ff65b54d7c81bee461ad4f7e12173dda83abc672599277b8df4e4"
|
|
230
238
|
},
|
|
231
239
|
{
|
|
232
240
|
"path": "src/adapters/identity.ts",
|
|
@@ -298,7 +306,7 @@
|
|
|
298
306
|
},
|
|
299
307
|
{
|
|
300
308
|
"path": "src/adapters/openai-responses.ts",
|
|
301
|
-
"sha256": "
|
|
309
|
+
"sha256": "1ed5a3a018aa61b6a52c646aa9ee6985c5543ce5f21b8bac458cf69622a4e6d7"
|
|
302
310
|
},
|
|
303
311
|
{
|
|
304
312
|
"path": "src/adapters/registry.ts",
|
|
@@ -324,6 +332,10 @@
|
|
|
324
332
|
"path": "src/adapters/upstream-http-error.ts",
|
|
325
333
|
"sha256": "4875e77e46d96131e7a3e6c0feb15a54ffcb3901efceac2360abe28b7a0f414b"
|
|
326
334
|
},
|
|
335
|
+
{
|
|
336
|
+
"path": "src/adapters/xai-web-search.ts",
|
|
337
|
+
"sha256": "a9f760d3a1be552ceb74898dc8c00f6e6d3b35a38440030cc95f672e75049e81"
|
|
338
|
+
},
|
|
327
339
|
{
|
|
328
340
|
"path": "src/bridge.ts",
|
|
329
341
|
"sha256": "8cd99bc0e94a97a54393b693f4d8a5aeb46124591b61f8c8eeedd3e5e05230fa"
|
|
@@ -438,7 +450,7 @@
|
|
|
438
450
|
},
|
|
439
451
|
{
|
|
440
452
|
"path": "src/cli/agent.ts",
|
|
441
|
-
"sha256": "
|
|
453
|
+
"sha256": "c3286d93182fd523bb09337431e2224c96c9c5a345029cc1dff76519842d5f06"
|
|
442
454
|
},
|
|
443
455
|
{
|
|
444
456
|
"path": "src/cli/catalog-prewarm.ts",
|
|
@@ -482,11 +494,11 @@
|
|
|
482
494
|
},
|
|
483
495
|
{
|
|
484
496
|
"path": "src/cli/dispatch.ts",
|
|
485
|
-
"sha256": "
|
|
497
|
+
"sha256": "d98532573083b4df82216bca592818b1946847f9cc472335eaf949ea1bcf1e22"
|
|
486
498
|
},
|
|
487
499
|
{
|
|
488
500
|
"path": "src/cli/doctor.ts",
|
|
489
|
-
"sha256": "
|
|
501
|
+
"sha256": "f785624daa2881093a9d696ed92a0e3bc1b97f7d680a75ec52f9d3eaee835e82"
|
|
490
502
|
},
|
|
491
503
|
{
|
|
492
504
|
"path": "src/cli/ensure-desired-integrations.ts",
|
|
@@ -498,7 +510,7 @@
|
|
|
498
510
|
},
|
|
499
511
|
{
|
|
500
512
|
"path": "src/cli/help.ts",
|
|
501
|
-
"sha256": "
|
|
513
|
+
"sha256": "20433b67768897debb68132fee8964bfff100f9bd1736e7d71412bf7a1d267fb"
|
|
502
514
|
},
|
|
503
515
|
{
|
|
504
516
|
"path": "src/cli/index.ts",
|
|
@@ -558,7 +570,7 @@
|
|
|
558
570
|
},
|
|
559
571
|
{
|
|
560
572
|
"path": "src/cli/registry.ts",
|
|
561
|
-
"sha256": "
|
|
573
|
+
"sha256": "4160286114b94ce7ada218a9456e30167ac1b6de9781d9c9a04799f8f244ed17"
|
|
562
574
|
},
|
|
563
575
|
{
|
|
564
576
|
"path": "src/cli/root.ts",
|
|
@@ -670,7 +682,7 @@
|
|
|
670
682
|
},
|
|
671
683
|
{
|
|
672
684
|
"path": "src/codex/auth-context.ts",
|
|
673
|
-
"sha256": "
|
|
685
|
+
"sha256": "9703472fb40c9c2fc8876945646aa4d591de96cb3604da7ef8a0c21699a135cf"
|
|
674
686
|
},
|
|
675
687
|
{
|
|
676
688
|
"path": "src/codex/autostart-health.ts",
|
|
@@ -706,7 +718,7 @@
|
|
|
706
718
|
},
|
|
707
719
|
{
|
|
708
720
|
"path": "src/codex/catalog/effort.ts",
|
|
709
|
-
"sha256": "
|
|
721
|
+
"sha256": "e9efbb137522a8952150a75cc04061af43e161203f57b2d02650973119e2316c"
|
|
710
722
|
},
|
|
711
723
|
{
|
|
712
724
|
"path": "src/codex/catalog/filesystem-evidence.ts",
|
|
@@ -726,11 +738,11 @@
|
|
|
726
738
|
},
|
|
727
739
|
{
|
|
728
740
|
"path": "src/codex/catalog/parsing.ts",
|
|
729
|
-
"sha256": "
|
|
741
|
+
"sha256": "a687cae14fdd365ed6eaba53e963022278ac1cbe35ce9ab8b25b7f9e868e6ac7"
|
|
730
742
|
},
|
|
731
743
|
{
|
|
732
744
|
"path": "src/codex/catalog/provider-fetch.ts",
|
|
733
|
-
"sha256": "
|
|
745
|
+
"sha256": "fabaf7f7bc0de27dee84daf05eb5708ffc71d1492ab82c071e6dd83227bd8e2b"
|
|
734
746
|
},
|
|
735
747
|
{
|
|
736
748
|
"path": "src/codex/catalog/sync.ts",
|
|
@@ -748,6 +760,10 @@
|
|
|
748
760
|
"path": "src/codex/convergence.ts",
|
|
749
761
|
"sha256": "4ab2e8828a32a1b6235528d0b9be18b24c7457c485972a00492a4a1675bb9c0a"
|
|
750
762
|
},
|
|
763
|
+
{
|
|
764
|
+
"path": "src/codex/coordinator-doctor.ts",
|
|
765
|
+
"sha256": "8b96fccfcebec924abf6b1c03bb8ef17f6e89469fb6f556c1f0d517654eaf941"
|
|
766
|
+
},
|
|
751
767
|
{
|
|
752
768
|
"path": "src/codex/custom-model-catalog-migration.ts",
|
|
753
769
|
"sha256": "eb6c1420bc61b27c67772255a20192cb94605c988f6b597608e69b6346464c77"
|
|
@@ -766,7 +782,7 @@
|
|
|
766
782
|
},
|
|
767
783
|
{
|
|
768
784
|
"path": "src/codex/features.ts",
|
|
769
|
-
"sha256": "
|
|
785
|
+
"sha256": "a42c3891a7978d27b974d68a3b5abecc7c3650e7d4d6f17c9e96ff52536f0a1e"
|
|
770
786
|
},
|
|
771
787
|
{
|
|
772
788
|
"path": "src/codex/generation.ts",
|
|
@@ -802,7 +818,7 @@
|
|
|
802
818
|
},
|
|
803
819
|
{
|
|
804
820
|
"path": "src/codex/inject-coordination.ts",
|
|
805
|
-
"sha256": "
|
|
821
|
+
"sha256": "3bdb01051c45223920fc57580b2303290a9b405fe36bbefada2b8e61f6d4b637"
|
|
806
822
|
},
|
|
807
823
|
{
|
|
808
824
|
"path": "src/codex/inject.ts",
|
|
@@ -1014,7 +1030,7 @@
|
|
|
1014
1030
|
},
|
|
1015
1031
|
{
|
|
1016
1032
|
"path": "src/codex/transition-state.ts",
|
|
1017
|
-
"sha256": "
|
|
1033
|
+
"sha256": "774a8323d5dd36a9e7235018daf8fc0d6c2898f053d33e0a9d1da6b1964b71ac"
|
|
1018
1034
|
},
|
|
1019
1035
|
{
|
|
1020
1036
|
"path": "src/codex/upstream-host-health.ts",
|
|
@@ -1702,7 +1718,7 @@
|
|
|
1702
1718
|
},
|
|
1703
1719
|
{
|
|
1704
1720
|
"path": "src/lib/bun-stream-caps.ts",
|
|
1705
|
-
"sha256": "
|
|
1721
|
+
"sha256": "d2255a860bc9ea451abc7913cca76779c41656d35965d80ce10c63ad94e032aa"
|
|
1706
1722
|
},
|
|
1707
1723
|
{
|
|
1708
1724
|
"path": "src/lib/codex-restart-contract.ts",
|
|
@@ -1734,7 +1750,7 @@
|
|
|
1734
1750
|
},
|
|
1735
1751
|
{
|
|
1736
1752
|
"path": "src/lib/errors.ts",
|
|
1737
|
-
"sha256": "
|
|
1753
|
+
"sha256": "460d877ce68799cc64129940a11deeb14de97d60851fe8c3e3ff09b1ab3e4e55"
|
|
1738
1754
|
},
|
|
1739
1755
|
{
|
|
1740
1756
|
"path": "src/lib/eventstream-decoder.ts",
|
|
@@ -1978,7 +1994,7 @@
|
|
|
1978
1994
|
},
|
|
1979
1995
|
{
|
|
1980
1996
|
"path": "src/oauth/cursor.ts",
|
|
1981
|
-
"sha256": "
|
|
1997
|
+
"sha256": "afc515c357f5bc9f788c07e40a0a1fce6ef3d9887759906e5a48113a720d5673"
|
|
1982
1998
|
},
|
|
1983
1999
|
{
|
|
1984
2000
|
"path": "src/oauth/github-copilot.ts",
|
|
@@ -2078,19 +2094,23 @@
|
|
|
2078
2094
|
},
|
|
2079
2095
|
{
|
|
2080
2096
|
"path": "src/providers/command-code-efforts.ts",
|
|
2081
|
-
"sha256": "
|
|
2097
|
+
"sha256": "1f1e616bc6179d729f582142d854406be626d3900a978383c7fdc33a291476d8"
|
|
2082
2098
|
},
|
|
2083
2099
|
{
|
|
2084
2100
|
"path": "src/providers/context-cap.ts",
|
|
2085
2101
|
"sha256": "153189b3a96f92081b5d401bbfa463e080bfead24c8d8c3ef8cd57f4a17dc421"
|
|
2086
2102
|
},
|
|
2103
|
+
{
|
|
2104
|
+
"path": "src/providers/cursor-pool.ts",
|
|
2105
|
+
"sha256": "26c8cb42be69a3089577ed9907673d12705f5496ede163baaf288fc2c288bfcd"
|
|
2106
|
+
},
|
|
2087
2107
|
{
|
|
2088
2108
|
"path": "src/providers/derive.ts",
|
|
2089
|
-
"sha256": "
|
|
2109
|
+
"sha256": "c4abf56b32203d353dbdab3f5485768f859098ae35f2463ed5b939e3d3edce58"
|
|
2090
2110
|
},
|
|
2091
2111
|
{
|
|
2092
2112
|
"path": "src/providers/fastwire.ts",
|
|
2093
|
-
"sha256": "
|
|
2113
|
+
"sha256": "b6609c8e6ec285074ea93cfaec0c997aed30adb2f52ef22b48129347e7525493"
|
|
2094
2114
|
},
|
|
2095
2115
|
{
|
|
2096
2116
|
"path": "src/providers/free-directory.ts",
|
|
@@ -2134,7 +2154,7 @@
|
|
|
2134
2154
|
},
|
|
2135
2155
|
{
|
|
2136
2156
|
"path": "src/providers/openai-sidecar.ts",
|
|
2137
|
-
"sha256": "
|
|
2157
|
+
"sha256": "c555cf015441e53c7054ea627c84a2f8a7ab6982c7e065371088125ec0757d6d"
|
|
2138
2158
|
},
|
|
2139
2159
|
{
|
|
2140
2160
|
"path": "src/providers/openai-tier-startup.ts",
|
|
@@ -2162,11 +2182,11 @@
|
|
|
2162
2182
|
},
|
|
2163
2183
|
{
|
|
2164
2184
|
"path": "src/providers/quota.ts",
|
|
2165
|
-
"sha256": "
|
|
2185
|
+
"sha256": "940224c87ba91f249b04e7088e71a151914d186f43cb48abcb636bc306e00d7e"
|
|
2166
2186
|
},
|
|
2167
2187
|
{
|
|
2168
2188
|
"path": "src/providers/registry.ts",
|
|
2169
|
-
"sha256": "
|
|
2189
|
+
"sha256": "7e674f4503f43248e68b94a657b233fe3194aa560f7ff7deacb820996148900a"
|
|
2170
2190
|
},
|
|
2171
2191
|
{
|
|
2172
2192
|
"path": "src/providers/request-pacing.ts",
|
|
@@ -2174,7 +2194,7 @@
|
|
|
2174
2194
|
},
|
|
2175
2195
|
{
|
|
2176
2196
|
"path": "src/providers/service-tier.ts",
|
|
2177
|
-
"sha256": "
|
|
2197
|
+
"sha256": "657fc25f91b481b8300bd260e464ac31ba96f287192392e4187e6b7f74f5b890"
|
|
2178
2198
|
},
|
|
2179
2199
|
{
|
|
2180
2200
|
"path": "src/providers/slug-codec.ts",
|
|
@@ -2202,7 +2222,7 @@
|
|
|
2202
2222
|
},
|
|
2203
2223
|
{
|
|
2204
2224
|
"path": "src/responses/custom-tool-compat.ts",
|
|
2205
|
-
"sha256": "
|
|
2225
|
+
"sha256": "fbda1f4416df46f6102fce0ac061793c9038f0739ab8b919534b1cca857e1b98"
|
|
2206
2226
|
},
|
|
2207
2227
|
{
|
|
2208
2228
|
"path": "src/responses/hosted-tool-policy.ts",
|
|
@@ -2210,7 +2230,7 @@
|
|
|
2210
2230
|
},
|
|
2211
2231
|
{
|
|
2212
2232
|
"path": "src/responses/namespace-tool-compat.ts",
|
|
2213
|
-
"sha256": "
|
|
2233
|
+
"sha256": "2094a2d9a7356e1c159a6a19ebf2947f0a1a78d1588caebfde02084c242aa4f6"
|
|
2214
2234
|
},
|
|
2215
2235
|
{
|
|
2216
2236
|
"path": "src/responses/parser.ts",
|
|
@@ -2262,7 +2282,7 @@
|
|
|
2262
2282
|
},
|
|
2263
2283
|
{
|
|
2264
2284
|
"path": "src/router.ts",
|
|
2265
|
-
"sha256": "
|
|
2285
|
+
"sha256": "44f5eebeb8894345edf51120ce1c6b091fa0f81be5bac875bd944af0c9c9b2de"
|
|
2266
2286
|
},
|
|
2267
2287
|
{
|
|
2268
2288
|
"path": "src/routing/analytics.ts",
|
|
@@ -2374,7 +2394,7 @@
|
|
|
2374
2394
|
},
|
|
2375
2395
|
{
|
|
2376
2396
|
"path": "src/server/chat-completions.ts",
|
|
2377
|
-
"sha256": "
|
|
2397
|
+
"sha256": "47403128f764b59654a5579c42297f07a393ee6fb365435d8cb950675d4f6990"
|
|
2378
2398
|
},
|
|
2379
2399
|
{
|
|
2380
2400
|
"path": "src/server/chat-native-sse.ts",
|
|
@@ -2382,7 +2402,7 @@
|
|
|
2382
2402
|
},
|
|
2383
2403
|
{
|
|
2384
2404
|
"path": "src/server/chat-native.ts",
|
|
2385
|
-
"sha256": "
|
|
2405
|
+
"sha256": "4ed4eddc8cfb62631feccc1ae57e0ac35b0baeeab861bca220debee5e9a8c8a8"
|
|
2386
2406
|
},
|
|
2387
2407
|
{
|
|
2388
2408
|
"path": "src/server/claude-messages.ts",
|
|
@@ -2442,7 +2462,7 @@
|
|
|
2442
2462
|
},
|
|
2443
2463
|
{
|
|
2444
2464
|
"path": "src/server/management/agent-settings-routes.ts",
|
|
2445
|
-
"sha256": "
|
|
2465
|
+
"sha256": "da00cb3480c4c48313c869e0cd264b49fcc9de9edf2b1e8b9fe90d16b25689ae"
|
|
2446
2466
|
},
|
|
2447
2467
|
{
|
|
2448
2468
|
"path": "src/server/management/api-access.ts",
|
|
@@ -2462,7 +2482,7 @@
|
|
|
2462
2482
|
},
|
|
2463
2483
|
{
|
|
2464
2484
|
"path": "src/server/management/config-routes.ts",
|
|
2465
|
-
"sha256": "
|
|
2485
|
+
"sha256": "63aa2f28e3659d42805df08ca2bbdce98575b55a88ea15cb8fad756fbab5cec2"
|
|
2466
2486
|
},
|
|
2467
2487
|
{
|
|
2468
2488
|
"path": "src/server/management/context.ts",
|
|
@@ -2550,7 +2570,7 @@
|
|
|
2550
2570
|
},
|
|
2551
2571
|
{
|
|
2552
2572
|
"path": "src/server/management/vision-sidecar-options.ts",
|
|
2553
|
-
"sha256": "
|
|
2573
|
+
"sha256": "797f8328eff1a0eedc3a3c4345ab00bda62c39af7c141c60b1f3d8c7f7f0a798"
|
|
2554
2574
|
},
|
|
2555
2575
|
{
|
|
2556
2576
|
"path": "src/server/management/web-search-sidecar-options.ts",
|
|
@@ -2658,11 +2678,11 @@
|
|
|
2658
2678
|
},
|
|
2659
2679
|
{
|
|
2660
2680
|
"path": "src/server/responses/compact.ts",
|
|
2661
|
-
"sha256": "
|
|
2681
|
+
"sha256": "8dcd6b33d2c0b9cc77649ee260e2769e400cfc05e4237ae7a547362257dba862"
|
|
2662
2682
|
},
|
|
2663
2683
|
{
|
|
2664
2684
|
"path": "src/server/responses/core.ts",
|
|
2665
|
-
"sha256": "
|
|
2685
|
+
"sha256": "4aa38a520acc867f483393d8b013fca055bbdfefdda83a12b01148b08f36caac"
|
|
2666
2686
|
},
|
|
2667
2687
|
{
|
|
2668
2688
|
"path": "src/server/responses/empty-completion-guard.ts",
|
|
@@ -2750,7 +2770,7 @@
|
|
|
2750
2770
|
},
|
|
2751
2771
|
{
|
|
2752
2772
|
"path": "src/service.ts",
|
|
2753
|
-
"sha256": "
|
|
2773
|
+
"sha256": "3c1198b34fbef2f69f0a8dff1ca3f604bb16e7bdbf96b0d59e9eac0bc29f848b"
|
|
2754
2774
|
},
|
|
2755
2775
|
{
|
|
2756
2776
|
"path": "src/sidecar/auth.ts",
|
|
@@ -2842,11 +2862,11 @@
|
|
|
2842
2862
|
},
|
|
2843
2863
|
{
|
|
2844
2864
|
"path": "src/types/config.ts",
|
|
2845
|
-
"sha256": "
|
|
2865
|
+
"sha256": "473fde6d5b11a71b4e7712b3bc2863841d0ecb327f335c3979328850afa0700f"
|
|
2846
2866
|
},
|
|
2847
2867
|
{
|
|
2848
2868
|
"path": "src/types/provider.ts",
|
|
2849
|
-
"sha256": "
|
|
2869
|
+
"sha256": "6a37ade0ad24851f61705584e0c67f1c64335541ffcd5f337465ddd618249f39"
|
|
2850
2870
|
},
|
|
2851
2871
|
{
|
|
2852
2872
|
"path": "src/types/request.ts",
|
|
@@ -2910,7 +2930,7 @@
|
|
|
2910
2930
|
},
|
|
2911
2931
|
{
|
|
2912
2932
|
"path": "src/usage/cost.ts",
|
|
2913
|
-
"sha256": "
|
|
2933
|
+
"sha256": "c5fb9b72d23943f47941d35ad628d230c48560e7c98a16f6c5afa2361dffb52c"
|
|
2914
2934
|
},
|
|
2915
2935
|
{
|
|
2916
2936
|
"path": "src/usage/debug.ts",
|
|
@@ -2918,7 +2938,7 @@
|
|
|
2918
2938
|
},
|
|
2919
2939
|
{
|
|
2920
2940
|
"path": "src/usage/expected-prices.ts",
|
|
2921
|
-
"sha256": "
|
|
2941
|
+
"sha256": "5d2b69ac87cee1e7acdf5e54bf56e5de309b7c4d1fb79b8d0333f9c88c08e24e"
|
|
2922
2942
|
},
|
|
2923
2943
|
{
|
|
2924
2944
|
"path": "src/usage/log.ts",
|
|
@@ -2944,22 +2964,30 @@
|
|
|
2944
2964
|
"path": "src/vision/anthropic-describe.ts",
|
|
2945
2965
|
"sha256": "f71189755b7b4093646a4bfa9622f9cbafa4d85f5a49d510bbcd9ac74b1ca026"
|
|
2946
2966
|
},
|
|
2967
|
+
{
|
|
2968
|
+
"path": "src/vision/backends.ts",
|
|
2969
|
+
"sha256": "f330298c7effd21e26fa200858b44742a97cc64100be2f84964faceb35a59eaa"
|
|
2970
|
+
},
|
|
2947
2971
|
{
|
|
2948
2972
|
"path": "src/vision/describe.ts",
|
|
2949
2973
|
"sha256": "04673cb73b34adb94a450a07abcd14a8b80c80e3dad17584dbe344260f49984e"
|
|
2950
2974
|
},
|
|
2951
2975
|
{
|
|
2952
2976
|
"path": "src/vision/eligibility.ts",
|
|
2953
|
-
"sha256": "
|
|
2977
|
+
"sha256": "0cf9d282723759f9b85e2ee563e7492878d8fd0c5de0e50688d404ef6632f288"
|
|
2954
2978
|
},
|
|
2955
2979
|
{
|
|
2956
2980
|
"path": "src/vision/index.ts",
|
|
2957
|
-
"sha256": "
|
|
2981
|
+
"sha256": "8b46ba96b3c1cc5d4a57eb3b3edcc9d3f6c791fc6a5e5e26d4adc89afbcae116"
|
|
2958
2982
|
},
|
|
2959
2983
|
{
|
|
2960
2984
|
"path": "src/vision/reasoning.ts",
|
|
2961
2985
|
"sha256": "7b5ba571d9e727304f9cc053baaf82a5023fd2dad92f7fbf01af7edb8cfca21a"
|
|
2962
2986
|
},
|
|
2987
|
+
{
|
|
2988
|
+
"path": "src/vision/routed-describe.ts",
|
|
2989
|
+
"sha256": "270bf4204b10a46611c9f978f26a68e45b567cdf38deb81f1ed762d4c76398f0"
|
|
2990
|
+
},
|
|
2963
2991
|
{
|
|
2964
2992
|
"path": "src/vision/timeout-bounds.ts",
|
|
2965
2993
|
"sha256": "65a3124c6817cda51eb529520652576ffb1e92db433112162c0065104954eaba"
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The eager bounded relay (src/server/relay-eager.ts) uses a JS async producer
|
|
5
5
|
* loop — the exact shape of the Bun#32111 use-after-free (fixed upstream by Bun
|
|
6
|
-
* PR #32120, merged 2026-06-21).
|
|
7
|
-
* that fix
|
|
8
|
-
* "known-bad"
|
|
6
|
+
* PR #32120, merged 2026-06-21). Bun 1.4.0 is the first RELEASED version proven
|
|
7
|
+
* to carry that fix, so `MIN_FIXED_BUN_VERSION` is "1.4.0": older runtimes stay
|
|
8
|
+
* "known-bad". Windows no-rewrite traffic
|
|
9
9
|
* follows this runtime/config decision, preserving the explicit legacy-tee
|
|
10
10
|
* safety pin. Darwin no-rewrite traffic stays on tee
|
|
11
11
|
* for `auto` regardless of runtime capability and reaches eager relay only via
|
|
@@ -21,8 +21,11 @@
|
|
|
21
21
|
/**
|
|
22
22
|
* Bump in the SAME commit that bumps package.json's bundled Bun to a version
|
|
23
23
|
* verified to include Bun PR #32120. null = no released version is known-fixed.
|
|
24
|
+
* Bun 1.4.0 (npm stable, bundled by this package.json) carries the fix: PR
|
|
25
|
+
* #32120 merged 2026-06-21, well before the 1.4.0 cut, and the full suite ran
|
|
26
|
+
* green under the 1.4 line on every supported OS (devlog/260814_bun14-preview-dev).
|
|
24
27
|
*/
|
|
25
|
-
export const MIN_FIXED_BUN_VERSION: string | null =
|
|
28
|
+
export const MIN_FIXED_BUN_VERSION: string | null = "1.4.0";
|
|
26
29
|
|
|
27
30
|
export type StreamMode = "auto" | "legacy-tee" | "eager-relay";
|
|
28
31
|
|
package/src/lib/errors.ts
CHANGED
|
@@ -162,11 +162,16 @@ export function classifyError(status: number, type: string, message: string): Oc
|
|
|
162
162
|
return { message, type: "invalid_request_error", code: "context_length_exceeded" };
|
|
163
163
|
}
|
|
164
164
|
// "Cursor resource limit exceeded" is emitted only for explicit request-size overflow
|
|
165
|
-
// details (isCursorRequestTooLargeDetail in cursor-errors.ts);
|
|
166
|
-
//
|
|
165
|
+
// details (isCursorRequestTooLargeDetail in cursor-errors.ts); "Cursor context limit
|
|
166
|
+
// exceeded" is the bare payload-overflow shape (isCursorZeroTokenResourceExhausted);
|
|
167
|
+
// quota-style resource exhaustion arrives as "Cursor rate limit exceeded" and falls
|
|
168
|
+
// through to 429 below.
|
|
167
169
|
if (text.includes("cursor resource limit exceeded")) {
|
|
168
170
|
return { message, type: "invalid_request_error", code: "tool_catalog_too_large" };
|
|
169
171
|
}
|
|
172
|
+
if (text.includes("cursor context limit exceeded")) {
|
|
173
|
+
return { message, type: "invalid_request_error", code: "context_length_exceeded" };
|
|
174
|
+
}
|
|
170
175
|
// The Cursor adapter's classified rate-limit prefix is authoritative: its DETAIL may echo
|
|
171
176
|
// quota wording ("... quota exhausted") that would otherwise hit the insufficient_quota
|
|
172
177
|
// branch below and break the planned retry-with-backoff contract (WP3 review blocker 1).
|
|
@@ -306,6 +311,7 @@ export function inferHttpStatusFromAdapterMessage(message: string): number {
|
|
|
306
311
|
// See classifyError: this prefix now only means explicit request-size overflow (400);
|
|
307
312
|
// quota-style Cursor resource exhaustion carries the rate-limit prefix and maps to 429.
|
|
308
313
|
if (lower.includes("cursor resource limit exceeded")) return 400;
|
|
314
|
+
if (lower.includes("cursor context limit exceeded")) return 400;
|
|
309
315
|
if (
|
|
310
316
|
lower.includes("resource_exhausted") ||
|
|
311
317
|
lower.includes("resource exhausted") ||
|
package/src/oauth/cursor.ts
CHANGED
|
@@ -101,6 +101,19 @@ function sleep(ms: number, signal?: AbortSignal): Promise<void> {
|
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
/** Terminal poll statuses (T07, senpi PR #905): the login is denied/expired — retrying cannot succeed. */
|
|
105
|
+
const POLL_TERMINAL_STATUSES = new Set([400, 401, 403, 410]);
|
|
106
|
+
|
|
107
|
+
export class CursorAuthTerminalError extends Error {
|
|
108
|
+
readonly status: number;
|
|
109
|
+
|
|
110
|
+
constructor(status: number) {
|
|
111
|
+
super(`Cursor login rejected by the auth server (HTTP ${status}); start a new login`);
|
|
112
|
+
this.name = "CursorAuthTerminalError";
|
|
113
|
+
this.status = status;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
104
117
|
/**
|
|
105
118
|
* Poll cursor.com for login completion. 404 = still pending (back off), 200 = tokens.
|
|
106
119
|
* `baseDelayMs` is injectable so tests can avoid the real 1s cadence; production uses the default.
|
|
@@ -135,9 +148,17 @@ export async function pollCursorAuth(
|
|
|
135
148
|
return { accessToken: data.accessToken, refreshToken: data.refreshToken };
|
|
136
149
|
}
|
|
137
150
|
|
|
151
|
+
// T07: a terminal auth status means the login attempt itself is dead (denied,
|
|
152
|
+
// expired, revoked). Fail on the FIRST such response instead of burning the
|
|
153
|
+
// 3-strike retry budget and masking the reason behind a generic error.
|
|
154
|
+
if (POLL_TERMINAL_STATUSES.has(response.status)) {
|
|
155
|
+
throw new CursorAuthTerminalError(response.status);
|
|
156
|
+
}
|
|
157
|
+
|
|
138
158
|
throw new Error(`Cursor auth poll failed: ${response.status}`);
|
|
139
159
|
} catch (err) {
|
|
140
160
|
if (signal?.aborted) throw err instanceof Error ? err : new Error("Cursor login cancelled");
|
|
161
|
+
if (err instanceof CursorAuthTerminalError) throw err;
|
|
141
162
|
consecutiveErrors++;
|
|
142
163
|
if (consecutiveErrors >= 3) {
|
|
143
164
|
throw new Error("Too many consecutive errors during Cursor auth polling");
|
|
@@ -9,6 +9,13 @@ const COMMAND_CODE_MODEL_EFFORTS = {
|
|
|
9
9
|
efforts: ["high", "max"],
|
|
10
10
|
profileUrl: "https://commandcode.ai/models/deepseek-v4-flash",
|
|
11
11
|
},
|
|
12
|
+
// Ox Alpha (stealth preview, added in Command Code v1.31.0): free 1M-context
|
|
13
|
+
// reasoning model on every plan. The profile does not publish an effort ladder,
|
|
14
|
+
// so mirror the OpenRouter contract (reasoning mandatory; max/high/low).
|
|
15
|
+
"stealth/ox-alpha": {
|
|
16
|
+
efforts: ["low", "high", "max"],
|
|
17
|
+
profileUrl: "https://commandcode.ai/models/ox-alpha",
|
|
18
|
+
},
|
|
12
19
|
// Keys must match the EXACT upstream /provider/v1/models ids (GLM ships as
|
|
13
20
|
// `zai-org/GLM-5.3`, not `zai-org/glm-5.3`). The table doubles as the router's
|
|
14
21
|
// known-ids decode source (via `knownModelIdsForProvider`), so a case mismatch
|