@bitkyc08/opencodex 2.66.0 → 2.67.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/bin/ocx.mjs +24 -11
- package/gui/dist/assets/{App-gkoJIEOV.css → App-BJsT8Icc.css} +1 -1
- package/gui/dist/assets/{App-DyHlFeNB.js → App-D3pNGiN4.js} +15 -15
- package/gui/dist/assets/{Tray-CI8cVKWu.js → Tray-yb05wCjb.js} +1 -1
- package/gui/dist/assets/index-CouvvtMV.js +86 -0
- package/gui/dist/assets/index-DtNmX7hW.css +1 -0
- package/gui/dist/assets/{tray-data-_WyYzbMt.js → tray-data-CYGdjCJ7.js} +1 -1
- package/gui/dist/index.html +2 -2
- package/package.json +1 -1
- package/src/chat/inbound.ts +82 -3
- package/src/chat/outbound.ts +5 -3
- package/src/claude/desktop-first-party.ts +12 -3
- package/src/claude/first-party-settings.ts +97 -0
- package/src/claude/intercept/client-class.ts +18 -0
- package/src/claude/intercept/listener.ts +5 -0
- package/src/claude/intercept/runtime.ts +6 -0
- package/src/cli/capabilities.ts +12 -0
- package/src/cli/claude-desktop.ts +11 -6
- package/src/cli/claude.ts +25 -1
- package/src/cli/ensure-desired-integrations.ts +14 -1
- package/src/cli/integrations.ts +9 -1
- package/src/cli/uninstall-client-state.ts +6 -0
- package/src/cli/uninstall-integrations.ts +115 -0
- package/src/codex/history-job.ts +2 -1
- package/src/codex/main-account-hard-lock.ts +36 -19
- package/src/codex/quota.ts +11 -1
- package/src/combos/resolve.ts +11 -3
- package/src/config/load-degrade.ts +4 -0
- package/src/generated/compatibility-version.json +67 -43
- package/src/generated/worker-bundles.gen.ts +4 -0
- package/src/images/loop.ts +10 -3
- package/src/integrations/aside-profile-context.ts +17 -0
- package/src/lab/fabric/executor.ts +25 -3
- package/src/lab/fabric/producer-isolate.ts +199 -32
- package/src/lab/fabric/scratch.ts +9 -2
- package/src/lib/shadow-call.ts +11 -4
- package/src/lib/worker-embed.ts +33 -0
- package/src/oauth/generic-account-failover.ts +5 -3
- package/src/oauth/index.ts +19 -29
- package/src/oauth/store.ts +106 -34
- package/src/remote-control/workspace-rpc.ts +114 -19
- package/src/router.ts +7 -1
- package/src/server/chat-completions.ts +2 -1
- package/src/server/index/claude-intercept-lifecycle.ts +13 -0
- package/src/server/management/agent-settings-routes.ts +123 -5
- package/src/server/management/context.ts +4 -0
- package/src/server/management/native-integration-routes.ts +19 -8
- package/src/server/responses/core-normalize.ts +13 -1
- package/src/server/responses/request-prepare.ts +5 -3
- package/src/server/responses/sidecar-execution.ts +9 -2
- package/src/server/search.ts +28 -7
- package/src/storage/policy-job.ts +2 -1
- package/src/storage/restore-job.ts +2 -1
- package/src/types/config.ts +11 -5
- package/src/update/transactional-install.mjs +5 -1
- package/src/web-search/alpha-search.ts +71 -0
- package/src/web-search/devin-executor.ts +192 -0
- package/src/web-search/loop.ts +10 -3
- package/gui/dist/assets/index-BiwnVAUm.js +0 -86
- package/gui/dist/assets/index-ComVsdSk.css +0 -1
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"path": "package.json",
|
|
13
|
-
"sha256": "
|
|
13
|
+
"sha256": "8ba1a91d14b2cc6dbeae4ef2b23e55422532a92a7e082923687a8156bfc38ba6"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
"path": "scripts/model-metadata.source.json",
|
|
@@ -702,11 +702,11 @@
|
|
|
702
702
|
},
|
|
703
703
|
{
|
|
704
704
|
"path": "src/chat/inbound.ts",
|
|
705
|
-
"sha256": "
|
|
705
|
+
"sha256": "de18f1857e23a17ef4319c37f12677a1a0d9c3d5d6df4f656360c54a0f878739"
|
|
706
706
|
},
|
|
707
707
|
{
|
|
708
708
|
"path": "src/chat/outbound.ts",
|
|
709
|
-
"sha256": "
|
|
709
|
+
"sha256": "1dfaa36a3ffee9e23c6016010440db60ac6f8b8b4e320de8992edaa152b71c53"
|
|
710
710
|
},
|
|
711
711
|
{
|
|
712
712
|
"path": "src/claude/agents-inject.ts",
|
|
@@ -766,7 +766,7 @@
|
|
|
766
766
|
},
|
|
767
767
|
{
|
|
768
768
|
"path": "src/claude/desktop-first-party.ts",
|
|
769
|
-
"sha256": "
|
|
769
|
+
"sha256": "00fab67c7be4ae5f2d30597dba49fb3cffe419171a35906bee6ff4914fe470a5"
|
|
770
770
|
},
|
|
771
771
|
{
|
|
772
772
|
"path": "src/claude/desktop-gateway-state.ts",
|
|
@@ -812,6 +812,10 @@
|
|
|
812
812
|
"path": "src/claude/desktop-risk.ts",
|
|
813
813
|
"sha256": "0d4cb675a683fc912b9553dec3e83696b44ed6bee7555064b169fee4eebf1955"
|
|
814
814
|
},
|
|
815
|
+
{
|
|
816
|
+
"path": "src/claude/first-party-settings.ts",
|
|
817
|
+
"sha256": "6bb66606a4a9ce1e9e7a4a716c08b604fa2bef80c070ec0594dc235ce4ce681e"
|
|
818
|
+
},
|
|
815
819
|
{
|
|
816
820
|
"path": "src/claude/gateway-cache.ts",
|
|
817
821
|
"sha256": "0f27d36b7807033440ff0abdd64696ff093eee955eb968c02fe129897ac0aebe"
|
|
@@ -840,13 +844,17 @@
|
|
|
840
844
|
"path": "src/claude/inbound.ts",
|
|
841
845
|
"sha256": "41f6ddd50e2085a53be1e043d29ab9a51ff8ab20a870068fb717216e258538a9"
|
|
842
846
|
},
|
|
847
|
+
{
|
|
848
|
+
"path": "src/claude/intercept/client-class.ts",
|
|
849
|
+
"sha256": "fa3da19537cedeaa402cf1d352090d0a464b48b3641a4512b6dcce0cf0be90e0"
|
|
850
|
+
},
|
|
843
851
|
{
|
|
844
852
|
"path": "src/claude/intercept/connect-proxy.ts",
|
|
845
853
|
"sha256": "bf0a1be67f7682b1a43b2dee2af4ef65a9e3b45bc88722f6a59dccad214bd308"
|
|
846
854
|
},
|
|
847
855
|
{
|
|
848
856
|
"path": "src/claude/intercept/listener.ts",
|
|
849
|
-
"sha256": "
|
|
857
|
+
"sha256": "2c7958e2d32bbe938b5ff030824bc925427fd67b011a5d3d71add3164657afe8"
|
|
850
858
|
},
|
|
851
859
|
{
|
|
852
860
|
"path": "src/claude/intercept/local-ca.ts",
|
|
@@ -886,7 +894,7 @@
|
|
|
886
894
|
},
|
|
887
895
|
{
|
|
888
896
|
"path": "src/claude/intercept/runtime.ts",
|
|
889
|
-
"sha256": "
|
|
897
|
+
"sha256": "dcb66f1ca0ab15decaa50971981acbd4668261341975d5d130f3c73e754aca6e"
|
|
890
898
|
},
|
|
891
899
|
{
|
|
892
900
|
"path": "src/claude/intercept/settings.ts",
|
|
@@ -970,7 +978,7 @@
|
|
|
970
978
|
},
|
|
971
979
|
{
|
|
972
980
|
"path": "src/cli/capabilities.ts",
|
|
973
|
-
"sha256": "
|
|
981
|
+
"sha256": "0ef018063668e7628285fc3573e0581772a594d2b46fa5fa9772fa95abf1aae5"
|
|
974
982
|
},
|
|
975
983
|
{
|
|
976
984
|
"path": "src/cli/catalog-prewarm.ts",
|
|
@@ -986,11 +994,11 @@
|
|
|
986
994
|
},
|
|
987
995
|
{
|
|
988
996
|
"path": "src/cli/claude-desktop.ts",
|
|
989
|
-
"sha256": "
|
|
997
|
+
"sha256": "14e42ac1aa8bc5f95ed7e7a721513dfe82888d1ad35b9ff70aaa51d8c1146523"
|
|
990
998
|
},
|
|
991
999
|
{
|
|
992
1000
|
"path": "src/cli/claude.ts",
|
|
993
|
-
"sha256": "
|
|
1001
|
+
"sha256": "30860912b1588406899a85dfd2a89c148ed374a33425fe0f506ec462b1f477de"
|
|
994
1002
|
},
|
|
995
1003
|
{
|
|
996
1004
|
"path": "src/cli/codex-cli-update.ts",
|
|
@@ -1042,7 +1050,7 @@
|
|
|
1042
1050
|
},
|
|
1043
1051
|
{
|
|
1044
1052
|
"path": "src/cli/ensure-desired-integrations.ts",
|
|
1045
|
-
"sha256": "
|
|
1053
|
+
"sha256": "71f41f444b7bfcf52f196750dbd9fed1661711751104a888b59f49a83152a4d4"
|
|
1046
1054
|
},
|
|
1047
1055
|
{
|
|
1048
1056
|
"path": "src/cli/export-command.ts",
|
|
@@ -1078,7 +1086,7 @@
|
|
|
1078
1086
|
},
|
|
1079
1087
|
{
|
|
1080
1088
|
"path": "src/cli/integrations.ts",
|
|
1081
|
-
"sha256": "
|
|
1089
|
+
"sha256": "6c432f40a7a9a7d2ad6e44e126570f8b04b78470a4933b80094f58cb362595cf"
|
|
1082
1090
|
},
|
|
1083
1091
|
{
|
|
1084
1092
|
"path": "src/cli/interactive-confirm.ts",
|
|
@@ -1218,7 +1226,11 @@
|
|
|
1218
1226
|
},
|
|
1219
1227
|
{
|
|
1220
1228
|
"path": "src/cli/uninstall-client-state.ts",
|
|
1221
|
-
"sha256": "
|
|
1229
|
+
"sha256": "ce28b78d78bb46d1cd2454b76a7b71b09257da6f5458d5e4e8ebf9ef8880a567"
|
|
1230
|
+
},
|
|
1231
|
+
{
|
|
1232
|
+
"path": "src/cli/uninstall-integrations.ts",
|
|
1233
|
+
"sha256": "128d76a30a7748dc6bd2fa3e5edc0a5f72e66f4d895e6e8e194b42cdd04acfe2"
|
|
1222
1234
|
},
|
|
1223
1235
|
{
|
|
1224
1236
|
"path": "src/cli/uninstall-plan.ts",
|
|
@@ -1710,7 +1722,7 @@
|
|
|
1710
1722
|
},
|
|
1711
1723
|
{
|
|
1712
1724
|
"path": "src/codex/history-job.ts",
|
|
1713
|
-
"sha256": "
|
|
1725
|
+
"sha256": "10d657f145189973a46a01aef7ea7546f4e134921e9ebd8d174f01edb83d3aa6"
|
|
1714
1726
|
},
|
|
1715
1727
|
{
|
|
1716
1728
|
"path": "src/codex/history-lock.ts",
|
|
@@ -1866,7 +1878,7 @@
|
|
|
1866
1878
|
},
|
|
1867
1879
|
{
|
|
1868
1880
|
"path": "src/codex/main-account-hard-lock.ts",
|
|
1869
|
-
"sha256": "
|
|
1881
|
+
"sha256": "adb74b84cfcf77641d9bbddb66e0ee8b2c72c619a18b25c778f4f4b390d57f18"
|
|
1870
1882
|
},
|
|
1871
1883
|
{
|
|
1872
1884
|
"path": "src/codex/main-account-policy-wait.ts",
|
|
@@ -2082,7 +2094,7 @@
|
|
|
2082
2094
|
},
|
|
2083
2095
|
{
|
|
2084
2096
|
"path": "src/codex/quota.ts",
|
|
2085
|
-
"sha256": "
|
|
2097
|
+
"sha256": "1807f418299c8853a04c148e79ef17de7267e8fa2a57c9affba4d685cd8476dc"
|
|
2086
2098
|
},
|
|
2087
2099
|
{
|
|
2088
2100
|
"path": "src/codex/refresh.ts",
|
|
@@ -2254,7 +2266,7 @@
|
|
|
2254
2266
|
},
|
|
2255
2267
|
{
|
|
2256
2268
|
"path": "src/combos/resolve.ts",
|
|
2257
|
-
"sha256": "
|
|
2269
|
+
"sha256": "b5b811cde3c386b15cc16008f51176993d060a38a109d142d44899e2abce5788"
|
|
2258
2270
|
},
|
|
2259
2271
|
{
|
|
2260
2272
|
"path": "src/combos/types.ts",
|
|
@@ -2310,7 +2322,7 @@
|
|
|
2310
2322
|
},
|
|
2311
2323
|
{
|
|
2312
2324
|
"path": "src/config/load-degrade.ts",
|
|
2313
|
-
"sha256": "
|
|
2325
|
+
"sha256": "a0048c0001df310b6af9971da385e0da203141c8a79f912ea191653ec02af64b"
|
|
2314
2326
|
},
|
|
2315
2327
|
{
|
|
2316
2328
|
"path": "src/config/multi-agent-surface.ts",
|
|
@@ -2400,6 +2412,10 @@
|
|
|
2400
2412
|
"path": "src/generated/model-metadata.ts",
|
|
2401
2413
|
"sha256": "0cd6ade32196ee0adbe598564622a95f7313bd05f358ccff1ba114aae454c0c8"
|
|
2402
2414
|
},
|
|
2415
|
+
{
|
|
2416
|
+
"path": "src/generated/worker-bundles.gen.ts",
|
|
2417
|
+
"sha256": "736f1ee23b6b6c76e58135830a6c1910eca41c9bf8e791825b7efe05bca3727b"
|
|
2418
|
+
},
|
|
2403
2419
|
{
|
|
2404
2420
|
"path": "src/github/star-state.ts",
|
|
2405
2421
|
"sha256": "bc07f465b1b0386b0aac1015e871a32041609986f392394f9019d6d5168a9fb6"
|
|
@@ -2462,7 +2478,7 @@
|
|
|
2462
2478
|
},
|
|
2463
2479
|
{
|
|
2464
2480
|
"path": "src/images/loop.ts",
|
|
2465
|
-
"sha256": "
|
|
2481
|
+
"sha256": "40a95b33b99d03d499625fd2a2c3c2948420e412d05bc90a94b7325c9f2d7f13"
|
|
2466
2482
|
},
|
|
2467
2483
|
{
|
|
2468
2484
|
"path": "src/images/plan.ts",
|
|
@@ -2490,7 +2506,7 @@
|
|
|
2490
2506
|
},
|
|
2491
2507
|
{
|
|
2492
2508
|
"path": "src/integrations/aside-profile-context.ts",
|
|
2493
|
-
"sha256": "
|
|
2509
|
+
"sha256": "da5ab655da49e4f8bc25d25f6cbdbc19a30dd43cfc14f2f37ba3717f7ce4b4b2"
|
|
2494
2510
|
},
|
|
2495
2511
|
{
|
|
2496
2512
|
"path": "src/integrations/aside-profile-journal.ts",
|
|
@@ -2778,7 +2794,7 @@
|
|
|
2778
2794
|
},
|
|
2779
2795
|
{
|
|
2780
2796
|
"path": "src/lab/fabric/executor.ts",
|
|
2781
|
-
"sha256": "
|
|
2797
|
+
"sha256": "bc0e5136d9d1fe8c2d4af3c3e9727234e039b22c3a4467a00b9f569dab7c0c14"
|
|
2782
2798
|
},
|
|
2783
2799
|
{
|
|
2784
2800
|
"path": "src/lab/fabric/index.ts",
|
|
@@ -2802,7 +2818,7 @@
|
|
|
2802
2818
|
},
|
|
2803
2819
|
{
|
|
2804
2820
|
"path": "src/lab/fabric/producer-isolate.ts",
|
|
2805
|
-
"sha256": "
|
|
2821
|
+
"sha256": "84e44416a63d717610aa58f92a87cb510c6142bb3310fad4a6acec037bc496b8"
|
|
2806
2822
|
},
|
|
2807
2823
|
{
|
|
2808
2824
|
"path": "src/lab/fabric/producer-protocol.ts",
|
|
@@ -2810,7 +2826,7 @@
|
|
|
2810
2826
|
},
|
|
2811
2827
|
{
|
|
2812
2828
|
"path": "src/lab/fabric/scratch.ts",
|
|
2813
|
-
"sha256": "
|
|
2829
|
+
"sha256": "52c7030b0771d7d653fcf8c7d335af7522807be52b2abb73741b6083617b0692"
|
|
2814
2830
|
},
|
|
2815
2831
|
{
|
|
2816
2832
|
"path": "src/lab/fabric/subject.ts",
|
|
@@ -3338,7 +3354,7 @@
|
|
|
3338
3354
|
},
|
|
3339
3355
|
{
|
|
3340
3356
|
"path": "src/lib/shadow-call.ts",
|
|
3341
|
-
"sha256": "
|
|
3357
|
+
"sha256": "c3f6a297abbcb44220ece75242c3c88e7ffa5d34a656e6d2d7ac439aaf23b556"
|
|
3342
3358
|
},
|
|
3343
3359
|
{
|
|
3344
3360
|
"path": "src/lib/sidecar-tracker.ts",
|
|
@@ -3456,6 +3472,10 @@
|
|
|
3456
3472
|
"path": "src/lib/winsw.ts",
|
|
3457
3473
|
"sha256": "18a4e6e11f00daf0952ddcdbe858a1461504f185ee55e4443a2d72271a4a270b"
|
|
3458
3474
|
},
|
|
3475
|
+
{
|
|
3476
|
+
"path": "src/lib/worker-embed.ts",
|
|
3477
|
+
"sha256": "add44e4628cee81e86d91169f34489b4cdb598ae5099ba439da83d9e3d7b5900"
|
|
3478
|
+
},
|
|
3459
3479
|
{
|
|
3460
3480
|
"path": "src/lib/workflow-budget.ts",
|
|
3461
3481
|
"sha256": "f9af21a46313ca4f7d9bb60a3bf79636a844d5726a2ecf3211c3cf947ee59dbf"
|
|
@@ -3594,7 +3614,7 @@
|
|
|
3594
3614
|
},
|
|
3595
3615
|
{
|
|
3596
3616
|
"path": "src/oauth/generic-account-failover.ts",
|
|
3597
|
-
"sha256": "
|
|
3617
|
+
"sha256": "49a755015c0b8605b3d909356ce450bac7e406546b147a89971f4b6a14af0e8c"
|
|
3598
3618
|
},
|
|
3599
3619
|
{
|
|
3600
3620
|
"path": "src/oauth/github-copilot.ts",
|
|
@@ -3610,7 +3630,7 @@
|
|
|
3610
3630
|
},
|
|
3611
3631
|
{
|
|
3612
3632
|
"path": "src/oauth/index.ts",
|
|
3613
|
-
"sha256": "
|
|
3633
|
+
"sha256": "ac37c447ab24a4573682e866990bbae4d732c755aca071908c7383c038b3681b"
|
|
3614
3634
|
},
|
|
3615
3635
|
{
|
|
3616
3636
|
"path": "src/oauth/key-providers.ts",
|
|
@@ -3678,7 +3698,7 @@
|
|
|
3678
3698
|
},
|
|
3679
3699
|
{
|
|
3680
3700
|
"path": "src/oauth/store.ts",
|
|
3681
|
-
"sha256": "
|
|
3701
|
+
"sha256": "883da45cd9804ecdb9c4c4da1a3a9b23f04bb8234ec3d0a919e5009c6dc94537"
|
|
3682
3702
|
},
|
|
3683
3703
|
{
|
|
3684
3704
|
"path": "src/oauth/token-guardian.ts",
|
|
@@ -4242,7 +4262,7 @@
|
|
|
4242
4262
|
},
|
|
4243
4263
|
{
|
|
4244
4264
|
"path": "src/remote-control/workspace-rpc.ts",
|
|
4245
|
-
"sha256": "
|
|
4265
|
+
"sha256": "60b4b631165664eead9bbc50c371fb50fba4aad5af1b1f7781da813753970eef"
|
|
4246
4266
|
},
|
|
4247
4267
|
{
|
|
4248
4268
|
"path": "src/remote-control/workspace-runtime.ts",
|
|
@@ -4458,7 +4478,7 @@
|
|
|
4458
4478
|
},
|
|
4459
4479
|
{
|
|
4460
4480
|
"path": "src/router.ts",
|
|
4461
|
-
"sha256": "
|
|
4481
|
+
"sha256": "dc29a6f1def3f86344e168ad2ccb2ed344c2107c854b6512894be0a4c04599ae"
|
|
4462
4482
|
},
|
|
4463
4483
|
{
|
|
4464
4484
|
"path": "src/routing/analytics.ts",
|
|
@@ -4606,7 +4626,7 @@
|
|
|
4606
4626
|
},
|
|
4607
4627
|
{
|
|
4608
4628
|
"path": "src/server/chat-completions.ts",
|
|
4609
|
-
"sha256": "
|
|
4629
|
+
"sha256": "8ade0c4a2a329ea87bcbd66e9bad4efdd10105703de776afe93be8ae2560cdce"
|
|
4610
4630
|
},
|
|
4611
4631
|
{
|
|
4612
4632
|
"path": "src/server/chat-native-eligibility.ts",
|
|
@@ -4702,7 +4722,7 @@
|
|
|
4702
4722
|
},
|
|
4703
4723
|
{
|
|
4704
4724
|
"path": "src/server/index/claude-intercept-lifecycle.ts",
|
|
4705
|
-
"sha256": "
|
|
4725
|
+
"sha256": "f58d9aada850502eff4def4f7abde0fd90e46afcfa00c9a3447d8774a4202188"
|
|
4706
4726
|
},
|
|
4707
4727
|
{
|
|
4708
4728
|
"path": "src/server/index/link-listener.ts",
|
|
@@ -4802,7 +4822,7 @@
|
|
|
4802
4822
|
},
|
|
4803
4823
|
{
|
|
4804
4824
|
"path": "src/server/management/agent-settings-routes.ts",
|
|
4805
|
-
"sha256": "
|
|
4825
|
+
"sha256": "3bb3827a99635a5a1dadf1307a720975ae4c713b20c98a814d3cf3a04ffb9d4c"
|
|
4806
4826
|
},
|
|
4807
4827
|
{
|
|
4808
4828
|
"path": "src/server/management/anthropic-reset-grant-routes.ts",
|
|
@@ -4850,7 +4870,7 @@
|
|
|
4850
4870
|
},
|
|
4851
4871
|
{
|
|
4852
4872
|
"path": "src/server/management/context.ts",
|
|
4853
|
-
"sha256": "
|
|
4873
|
+
"sha256": "5d1a1e7e891b021501e6c7eb5be1376cb93ee1ab4b3605b5270776b8b68720cc"
|
|
4854
4874
|
},
|
|
4855
4875
|
{
|
|
4856
4876
|
"path": "src/server/management/cursor-integration-routes.ts",
|
|
@@ -4894,7 +4914,7 @@
|
|
|
4894
4914
|
},
|
|
4895
4915
|
{
|
|
4896
4916
|
"path": "src/server/management/native-integration-routes.ts",
|
|
4897
|
-
"sha256": "
|
|
4917
|
+
"sha256": "685735156a43446202cdb6c7ec015f29fccce0af9b458545324ad99723f11816"
|
|
4898
4918
|
},
|
|
4899
4919
|
{
|
|
4900
4920
|
"path": "src/server/management/oauth-account-routes.ts",
|
|
@@ -5258,7 +5278,7 @@
|
|
|
5258
5278
|
},
|
|
5259
5279
|
{
|
|
5260
5280
|
"path": "src/server/responses/core-normalize.ts",
|
|
5261
|
-
"sha256": "
|
|
5281
|
+
"sha256": "f16d82353e6d0dd45e1881e57ec85fa01791d541925ef5c7e2531a7673948e57"
|
|
5262
5282
|
},
|
|
5263
5283
|
{
|
|
5264
5284
|
"path": "src/server/responses/core-opaque-recovery.ts",
|
|
@@ -5374,7 +5394,7 @@
|
|
|
5374
5394
|
},
|
|
5375
5395
|
{
|
|
5376
5396
|
"path": "src/server/responses/request-prepare.ts",
|
|
5377
|
-
"sha256": "
|
|
5397
|
+
"sha256": "9352f56106801fd5eb1b35c2158c16cbe5bb2a4995822aa57bab4a4901774e21"
|
|
5378
5398
|
},
|
|
5379
5399
|
{
|
|
5380
5400
|
"path": "src/server/responses/request-send-budget.ts",
|
|
@@ -5414,7 +5434,7 @@
|
|
|
5414
5434
|
},
|
|
5415
5435
|
{
|
|
5416
5436
|
"path": "src/server/responses/sidecar-execution.ts",
|
|
5417
|
-
"sha256": "
|
|
5437
|
+
"sha256": "ed49d956243f0a6249d84f962ab6d70b175bc9b929045d502f2a488e1e20c6b8"
|
|
5418
5438
|
},
|
|
5419
5439
|
{
|
|
5420
5440
|
"path": "src/server/responses/terminal-guard.ts",
|
|
@@ -5434,7 +5454,7 @@
|
|
|
5434
5454
|
},
|
|
5435
5455
|
{
|
|
5436
5456
|
"path": "src/server/search.ts",
|
|
5437
|
-
"sha256": "
|
|
5457
|
+
"sha256": "174938cdca7cc912033fea075223dab9e1e18ed6fc71210dc93513733277c6d0"
|
|
5438
5458
|
},
|
|
5439
5459
|
{
|
|
5440
5460
|
"path": "src/server/sse-frame-buffer.ts",
|
|
@@ -5658,7 +5678,7 @@
|
|
|
5658
5678
|
},
|
|
5659
5679
|
{
|
|
5660
5680
|
"path": "src/storage/policy-job.ts",
|
|
5661
|
-
"sha256": "
|
|
5681
|
+
"sha256": "2c666e2f806f11850e7cb0b60b1a8d350b27b5c5c510d7c30f8cb9a5d9abfd6e"
|
|
5662
5682
|
},
|
|
5663
5683
|
{
|
|
5664
5684
|
"path": "src/storage/policy-scheduler.ts",
|
|
@@ -5674,7 +5694,7 @@
|
|
|
5674
5694
|
},
|
|
5675
5695
|
{
|
|
5676
5696
|
"path": "src/storage/restore-job.ts",
|
|
5677
|
-
"sha256": "
|
|
5697
|
+
"sha256": "b86105451682fd4687d52b3487d026c0bb6b91c7fec8f7735e8013b561571e4a"
|
|
5678
5698
|
},
|
|
5679
5699
|
{
|
|
5680
5700
|
"path": "src/storage/restore-worker.ts",
|
|
@@ -5738,7 +5758,7 @@
|
|
|
5738
5758
|
},
|
|
5739
5759
|
{
|
|
5740
5760
|
"path": "src/types/config.ts",
|
|
5741
|
-
"sha256": "
|
|
5761
|
+
"sha256": "a5326aa2dd5a023eb54b25d379c8251a119fbeab7538a0521dd2d8e86fa8fd45"
|
|
5742
5762
|
},
|
|
5743
5763
|
{
|
|
5744
5764
|
"path": "src/types/provider.ts",
|
|
@@ -5894,7 +5914,7 @@
|
|
|
5894
5914
|
},
|
|
5895
5915
|
{
|
|
5896
5916
|
"path": "src/update/transactional-install.mjs",
|
|
5897
|
-
"sha256": "
|
|
5917
|
+
"sha256": "d136edda5f71b08c4d9bd0b120c929ca74299f45baa92a8a0a935811aa0d3fef"
|
|
5898
5918
|
},
|
|
5899
5919
|
{
|
|
5900
5920
|
"path": "src/update/tray-update-plan.d.mts",
|
|
@@ -6042,7 +6062,7 @@
|
|
|
6042
6062
|
},
|
|
6043
6063
|
{
|
|
6044
6064
|
"path": "src/web-search/alpha-search.ts",
|
|
6045
|
-
"sha256": "
|
|
6065
|
+
"sha256": "e33ad1f93a11d48d71c576ea566208fb88a70e4e6e1edd8926f2c9d9e30210b7"
|
|
6046
6066
|
},
|
|
6047
6067
|
{
|
|
6048
6068
|
"path": "src/web-search/anthropic-executor.ts",
|
|
@@ -6052,6 +6072,10 @@
|
|
|
6052
6072
|
"path": "src/web-search/backends.ts",
|
|
6053
6073
|
"sha256": "f9bd7647eb9d45c07c6fbbb36546a14652a2f611da53eda68e91bb35890fb40a"
|
|
6054
6074
|
},
|
|
6075
|
+
{
|
|
6076
|
+
"path": "src/web-search/devin-executor.ts",
|
|
6077
|
+
"sha256": "45ff3df096d9ef9fe8211c7a9c401d3581950ae7c4e8b78bfdcb90423a1217a0"
|
|
6078
|
+
},
|
|
6055
6079
|
{
|
|
6056
6080
|
"path": "src/web-search/exa-executor.ts",
|
|
6057
6081
|
"sha256": "f3613c1db2259023c62cdeaa998c1dce40eae63ebcdef10e81cb8ddb3df30167"
|
|
@@ -6074,7 +6098,7 @@
|
|
|
6074
6098
|
},
|
|
6075
6099
|
{
|
|
6076
6100
|
"path": "src/web-search/loop.ts",
|
|
6077
|
-
"sha256": "
|
|
6101
|
+
"sha256": "f103cb3f4a8f5e11b0217809818f95f3cf9a756c48695ff07294e34a5ea7762b"
|
|
6078
6102
|
},
|
|
6079
6103
|
{
|
|
6080
6104
|
"path": "src/web-search/ollama-executor.ts",
|
package/src/images/loop.ts
CHANGED
|
@@ -325,12 +325,19 @@ export interface ImageBridgeDeps {
|
|
|
325
325
|
* `retryParsed` is the exact iteration-local request the retry will be built from. The loop
|
|
326
326
|
* sends a shallow copy of the outer parsed request, so a rotation that rebinds only the outer
|
|
327
327
|
* object never reaches the wire. Optional so existing callers keep compiling.
|
|
328
|
+
*
|
|
329
|
+
* A rotation may cross ACCOUNTS, not just keys, and the attempt row is where an operator reads
|
|
330
|
+
* which one happened. A rotator that knows which kind it performed returns it alongside the
|
|
331
|
+
* adapter -- the same `{ adapter, recoveryKind }` shape `onCredentialError` already uses below.
|
|
328
332
|
*/
|
|
329
333
|
on429?: (
|
|
330
334
|
retryAfterHeader: string | null,
|
|
331
335
|
responseHeaders?: Headers,
|
|
332
336
|
retryParsed?: OcxParsedRequest,
|
|
333
|
-
) =>
|
|
337
|
+
) =>
|
|
338
|
+
| { adapter: ProviderAdapter; recoveryKind: AttemptRecoveryKind }
|
|
339
|
+
| null
|
|
340
|
+
| Promise<{ adapter: ProviderAdapter; recoveryKind: AttemptRecoveryKind } | null>;
|
|
334
341
|
/** Opt-in same-target 429 policy (key-auth providers). When present, 429 replays on the SAME key before on429 rotation. */
|
|
335
342
|
retryOn429Policy?: Required<RateLimitRetryPolicy> | null;
|
|
336
343
|
/** Called when the bridged Responses stream completes (parity with runTurn / routed paths). */
|
|
@@ -668,9 +675,9 @@ export async function runWithImageBridge(deps: ImageBridgeDeps): Promise<Respons
|
|
|
668
675
|
const rotated = await deps.on429(prepared.response.headers.get("retry-after"), prepared.response.headers, iterParsed);
|
|
669
676
|
if (!rotated) break;
|
|
670
677
|
try { void prepared.response.body?.cancel().catch(() => {}); } catch { /* already closed */ }
|
|
671
|
-
adapter = rotated;
|
|
678
|
+
adapter = rotated.adapter;
|
|
672
679
|
yield { type: "heartbeat" };
|
|
673
|
-
prepared = await fetchOnce(adapter,
|
|
680
|
+
prepared = await fetchOnce(adapter, rotated.recoveryKind);
|
|
674
681
|
}
|
|
675
682
|
|
|
676
683
|
// Final headers have arrived. Clear only the deadline timer before ANY body read.
|
|
@@ -131,6 +131,23 @@ export function asideRootStore(input: AsideProfilesInput): IntegrationStateStore
|
|
|
131
131
|
return guardedStore(raw, raw.root);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
/** Enumerate persisted owners, not desired/current profiles: uninstall must retain orphaned proof. */
|
|
135
|
+
export function listAsideProfileStores(rootStore: IntegrationStateStore): Array<{ profileId: number; store: IntegrationStateStore }> {
|
|
136
|
+
const directory = join(rootStore.root, "aside-profiles");
|
|
137
|
+
storeGuard(rootStore.root, directory)();
|
|
138
|
+
let names: string[];
|
|
139
|
+
try { names = readdirSync(directory); }
|
|
140
|
+
catch (error) {
|
|
141
|
+
if ((error as NodeJS.ErrnoException).code === "ENOENT") return [];
|
|
142
|
+
return storeUnsafe();
|
|
143
|
+
}
|
|
144
|
+
return names.sort().map(name => {
|
|
145
|
+
const profileId = Number(name);
|
|
146
|
+
if (!Number.isSafeInteger(profileId) || profileId < 0 || String(profileId) !== name) storeUnsafe();
|
|
147
|
+
return { profileId, store: guardedStore(createIntegrationStateStore(join(directory, name)), rootStore.root) };
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
134
151
|
export function assertAsideSnapshotEntry(entry: JournalEntry): void {
|
|
135
152
|
if (!entry || entry.clientId !== "aside" || typeof entry.opId !== "string" || !/^[A-Za-z0-9_-]{1,128}$/.test(entry.opId) || !entry.snapshot
|
|
136
153
|
|| !["none", "stored", "expired"].includes(entry.snapshot.kind)
|
|
@@ -15,8 +15,16 @@ import {
|
|
|
15
15
|
SYNTHETIC_VALUE_PATH,
|
|
16
16
|
} from "./constants";
|
|
17
17
|
import { applySyntheticPatch, parseSyntheticPatchV1 } from "./patch";
|
|
18
|
-
import {
|
|
19
|
-
|
|
18
|
+
import {
|
|
19
|
+
fabricProducerIsolationLimits,
|
|
20
|
+
isUnconfirmedProducerTermination,
|
|
21
|
+
runIsolatedFabricProducer,
|
|
22
|
+
} from "./producer-isolate";
|
|
23
|
+
import {
|
|
24
|
+
assertNotUnderUserRepo,
|
|
25
|
+
createSyntheticScratch,
|
|
26
|
+
type ScratchTree,
|
|
27
|
+
} from "./scratch";
|
|
20
28
|
import {
|
|
21
29
|
buildTaskSubjectV1,
|
|
22
30
|
sandboxProfileDigest,
|
|
@@ -24,6 +32,7 @@ import {
|
|
|
24
32
|
taskSubjectId,
|
|
25
33
|
verifierManifestDigest,
|
|
26
34
|
} from "./subject";
|
|
35
|
+
|
|
27
36
|
import type {
|
|
28
37
|
FabricExecutionAuthority,
|
|
29
38
|
FabricHarnessProducerKind,
|
|
@@ -183,6 +192,9 @@ async function runFabricSyntheticPatchTaskInternal(input: {
|
|
|
183
192
|
let scratch: ScratchTree | undefined;
|
|
184
193
|
let producerCompletedAt = startedAt;
|
|
185
194
|
let lastActivityAt = startedAt;
|
|
195
|
+
// Rejected while the producer child might still be running: scratch must not
|
|
196
|
+
// be removed under it; absence of a termination proof requires manual review.
|
|
197
|
+
let producerTerminationUnconfirmed = false;
|
|
186
198
|
|
|
187
199
|
try {
|
|
188
200
|
scratch = createSyntheticScratch(input.configDir);
|
|
@@ -236,6 +248,7 @@ async function runFabricSyntheticPatchTaskInternal(input: {
|
|
|
236
248
|
const completedAt = input.now?.() ?? Date.now();
|
|
237
249
|
usage.elapsedMs = completedAt - startedAt;
|
|
238
250
|
usage.inactiveMs = Math.max(0, completedAt - lastActivityAt);
|
|
251
|
+
producerTerminationUnconfirmed = isUnconfirmedProducerTermination(error);
|
|
239
252
|
if (error instanceof FabricTaskError) {
|
|
240
253
|
const failure = failureFromError(error);
|
|
241
254
|
return {
|
|
@@ -418,7 +431,16 @@ async function runFabricSyntheticPatchTaskInternal(input: {
|
|
|
418
431
|
}),
|
|
419
432
|
};
|
|
420
433
|
} finally {
|
|
421
|
-
scratch
|
|
434
|
+
if (scratch) {
|
|
435
|
+
if (producerTerminationUnconfirmed) {
|
|
436
|
+
// No writes into producer-controlled scratch after uncertain termination.
|
|
437
|
+
// Age and later pipe closure cannot prove every descendant has exited.
|
|
438
|
+
// Retain the tree, including across parent exit and later task creation.
|
|
439
|
+
console.warn("[lab] Producer termination unconfirmed; scratch retained for manual review.");
|
|
440
|
+
} else {
|
|
441
|
+
scratch.cleanup();
|
|
442
|
+
}
|
|
443
|
+
}
|
|
422
444
|
}
|
|
423
445
|
}
|
|
424
446
|
|