tianshu-harness 3.36.1 → 3.37.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.
Files changed (246) hide show
  1. package/README.en.md +18 -0
  2. package/README.ja.md +2 -2
  3. package/README.ko.md +2 -2
  4. package/README.md +14 -0
  5. package/dist/{account-SIZF2YV5.js → account-Q54MGORC.js} +2 -2
  6. package/dist/{account-login-T7LTLQXS.js → account-login-7X53AED6.js} +4 -4
  7. package/dist/{account-status-YCVLHU6B.js → account-status-I4TDW3ZM.js} +6 -6
  8. package/dist/agent/worker-process/child.js +147 -171
  9. package/dist/benchmark/recovery-cli.js +369 -0
  10. package/dist/bootstrap-LREPLPLO.js +216 -0
  11. package/dist/{chain-PZAH5ATB.js → chain-QDPX6C6L.js} +3 -3
  12. package/dist/{checkpoint-CD4PCJLL.js → checkpoint-ZWQFPXAB.js} +1 -1
  13. package/dist/chunk-2KAEEQVR.js +88 -0
  14. package/dist/{chunk-ZPRSF7HW.js → chunk-2LDUB2HU.js} +126 -18
  15. package/dist/{chunk-2T6QGCBS.js → chunk-2QHQMGCI.js} +10 -9
  16. package/dist/{chunk-VL3A4BXF.js → chunk-34JQ6NBQ.js} +3 -8
  17. package/dist/{chunk-ARCZHV33.js → chunk-34U7X6AW.js} +3 -3
  18. package/dist/{chunk-U3W76LNL.js → chunk-3D7ZTHOU.js} +1 -1
  19. package/dist/{chunk-36UFT42V.js → chunk-3DZ5UT3I.js} +1 -1
  20. package/dist/{chunk-2AD65B4B.js → chunk-4TBV3NBW.js} +2 -0
  21. package/dist/{chunk-XZY2LSCD.js → chunk-4WQEPVJE.js} +1 -1
  22. package/dist/{chunk-JT23MFRM.js → chunk-52C2QC5X.js} +1 -1
  23. package/dist/{chunk-CVDQE7VZ.js → chunk-5VZWXY7D.js} +2 -2
  24. package/dist/{chunk-IVK574U7.js → chunk-6FBIQDPE.js} +3 -3
  25. package/dist/{chunk-C6JA6N5E.js → chunk-6G4FHROQ.js} +3 -3
  26. package/dist/{chunk-ALC2MQJ6.js → chunk-6I2YCDUJ.js} +1 -1
  27. package/dist/chunk-6PBIFODH.js +40 -0
  28. package/dist/{chunk-HRBOGKQE.js → chunk-7I7QVVKE.js} +376 -175
  29. package/dist/{chunk-GA4EMIJN.js → chunk-7LVPOOJY.js} +140 -62
  30. package/dist/{chunk-FL2MLWSP.js → chunk-7NHSPDU3.js} +423 -9
  31. package/dist/{chunk-OJLE4CBF.js → chunk-A7IV2AX3.js} +905 -809
  32. package/dist/{chunk-CEK53KER.js → chunk-AAXTDLIV.js} +1 -1
  33. package/dist/{chunk-V3GFYVH6.js → chunk-ADETW3LK.js} +48 -29
  34. package/dist/{chunk-645YHSAB.js → chunk-APX6IEHB.js} +1 -1
  35. package/dist/{chunk-C7QEDSTS.js → chunk-B3RCV4YJ.js} +3 -3
  36. package/dist/{chunk-HIWSMYVF.js → chunk-BNLDMXLO.js} +3 -3
  37. package/dist/{chunk-MN2ADYQX.js → chunk-BUPAWHNU.js} +1 -26
  38. package/dist/chunk-C2G4F4QA.js +25 -0
  39. package/dist/{chunk-Y7QDHNZK.js → chunk-C7TCIN7O.js} +21 -8
  40. package/dist/chunk-CABETIHP.js +468 -0
  41. package/dist/{chunk-AQEVLMZQ.js → chunk-CAGVAJGD.js} +1 -1
  42. package/dist/{chunk-TZCG6QH5.js → chunk-D2EW4FEW.js} +4 -4
  43. package/dist/{chunk-ZQGG2YK5.js → chunk-D2ZGK7SK.js} +1550 -354
  44. package/dist/{chunk-OPDYSVSZ.js → chunk-D56A673F.js} +2 -0
  45. package/dist/{chunk-VOGUJOPO.js → chunk-DZZIOMDJ.js} +1 -1
  46. package/dist/chunk-EXAFVT2W.js +17233 -0
  47. package/dist/{chunk-ORFLZHKT.js → chunk-FPHXJIXM.js} +2 -2
  48. package/dist/{chunk-FMXB56CJ.js → chunk-FYZIVIVJ.js} +243 -1
  49. package/dist/{chunk-KD5KEXRO.js → chunk-G2YHK7QR.js} +490 -118
  50. package/dist/{chunk-ZST3KYP4.js → chunk-GK5AOL2S.js} +1 -1
  51. package/dist/{chunk-RIK3MRMJ.js → chunk-GOIHBCOH.js} +1 -1
  52. package/dist/{chunk-R44ENUT2.js → chunk-GP37UWT4.js} +800 -16
  53. package/dist/chunk-GU6QDIUX.js +1654 -0
  54. package/dist/{chunk-IR65K2FN.js → chunk-HL7V4MMW.js} +81 -8
  55. package/dist/{chunk-TQ3HB536.js → chunk-HQATVZF4.js} +2 -2
  56. package/dist/chunk-HVO25CQO.js +1254 -0
  57. package/dist/{chunk-HQMIE6FJ.js → chunk-IHS675GQ.js} +6 -6
  58. package/dist/{chunk-JJNUYCOB.js → chunk-IJBBCKR3.js} +192 -470
  59. package/dist/{chunk-HRDPNWRY.js → chunk-IZL52GRN.js} +1 -1
  60. package/dist/{chunk-VUL2J36P.js → chunk-J4BX3L5F.js} +956 -69
  61. package/dist/{chunk-SOLY4KGP.js → chunk-JYP7C5V2.js} +1 -1
  62. package/dist/{chunk-K52NICQT.js → chunk-KDFVDY6Z.js} +3 -2
  63. package/dist/{chunk-RNXGGWRF.js → chunk-KJ7QRUYA.js} +317 -133
  64. package/dist/{chunk-2ZCSBEI7.js → chunk-KRLFV7NR.js} +1 -1
  65. package/dist/{chunk-RULFNJCE.js → chunk-LCZ7ENRJ.js} +3 -5
  66. package/dist/{chunk-3CKJKF4L.js → chunk-LE3INURI.js} +1 -1
  67. package/dist/{chunk-VIWFOB4C.js → chunk-LQXUGBRV.js} +1380 -76
  68. package/dist/{chunk-6DAVD4U2.js → chunk-LXHOYEYS.js} +1 -1
  69. package/dist/{chunk-UUWE62CS.js → chunk-LZ7F5WDW.js} +1 -1
  70. package/dist/{chunk-X7HIEUZM.js → chunk-MCTISTXO.js} +263 -26
  71. package/dist/{chunk-Q34EIPRA.js → chunk-MFCVPVMI.js} +1 -1
  72. package/dist/{chunk-WYKBLVEL.js → chunk-MFYCJYC7.js} +66 -71
  73. package/dist/chunk-MHWHJU5B.js +146 -0
  74. package/dist/{chunk-Q22ELIY4.js → chunk-MUQCFAJO.js} +158 -153
  75. package/dist/{chunk-SUEDYIAK.js → chunk-NBCW3AJZ.js} +3 -3
  76. package/dist/{chunk-RB7WBLDT.js → chunk-NDRKUGUX.js} +1 -1
  77. package/dist/chunk-NKIJHIE3.js +147 -0
  78. package/dist/{chunk-6ZJOBWNV.js → chunk-OBC4NBM2.js} +7 -6
  79. package/dist/{chunk-Z2NJXTYR.js → chunk-ODFVU622.js} +5 -0
  80. package/dist/{chunk-6MTSQPMR.js → chunk-ODKXIMCN.js} +361 -292
  81. package/dist/chunk-OPVUYCEC.js +98 -0
  82. package/dist/{chunk-7N6UJSK4.js → chunk-OUTLAAYF.js} +7 -5
  83. package/dist/{chunk-LEX6ZH5U.js → chunk-OZFPXNC4.js} +7 -7
  84. package/dist/{chunk-SVE4Z7TF.js → chunk-P2Q7HUMW.js} +25 -10
  85. package/dist/chunk-Q24C4C2R.js +97 -0
  86. package/dist/{chunk-DVF6RX5I.js → chunk-Q56A5NIH.js} +10 -7
  87. package/dist/{chunk-MWKOP5AK.js → chunk-QVGXSRL7.js} +932 -662
  88. package/dist/{chunk-5IKCONT3.js → chunk-R36PVJTU.js} +1 -1
  89. package/dist/{chunk-XCH7RSLH.js → chunk-R3CQ7UTA.js} +31 -21
  90. package/dist/{chunk-GW2SDBVZ.js → chunk-RB4SJIHS.js} +4815 -1583
  91. package/dist/{chunk-XL4CI5K6.js → chunk-ROSAMY53.js} +1 -1
  92. package/dist/{chunk-YFZ5J3UX.js → chunk-RTAQVDQX.js} +2 -2
  93. package/dist/{chunk-TKRUQYW6.js → chunk-S3JLCMYK.js} +45 -3
  94. package/dist/chunk-SMDLQNCI.js +16 -0
  95. package/dist/chunk-SMMWTH2X.js +573 -0
  96. package/dist/{chunk-ZYAU4MKG.js → chunk-SUDK4Q5C.js} +15 -13
  97. package/dist/{chunk-S7363SKC.js → chunk-SX7PINGN.js} +8 -6
  98. package/dist/{chunk-NBDJGCTF.js → chunk-SYOZGHP2.js} +3 -3
  99. package/dist/chunk-T2B6Z67Y.js +61 -0
  100. package/dist/chunk-TCGSJDYV.js +283 -0
  101. package/dist/{chunk-QHCUYAEQ.js → chunk-TKSE3QAY.js} +12 -10
  102. package/dist/{chunk-MJ4JVZ7A.js → chunk-TM2TI5PE.js} +4 -0
  103. package/dist/{chunk-LPE4KYBS.js → chunk-TPC63AAU.js} +101 -4
  104. package/dist/{chunk-AWGONZQC.js → chunk-TUNCS72D.js} +1 -1
  105. package/dist/chunk-UCMP5W4Q.js +19 -0
  106. package/dist/{chunk-UCTBCMPM.js → chunk-ULTZP5EM.js} +228 -14
  107. package/dist/{chunk-WOAL25MT.js → chunk-USRIG5QU.js} +570 -3
  108. package/dist/{chunk-RXDPUON5.js → chunk-UYR23YAR.js} +108 -2
  109. package/dist/{chunk-IANUGRZB.js → chunk-V3ZSAVGZ.js} +1 -1
  110. package/dist/{chunk-ZC7EJUYB.js → chunk-VLASZ54H.js} +1 -1
  111. package/dist/{chunk-Q2A7U3WW.js → chunk-VPEKB6KY.js} +16 -52
  112. package/dist/chunk-WZWOG6SI.js +355 -0
  113. package/dist/{chunk-OTSVEM2O.js → chunk-X2RBFXWQ.js} +3 -1
  114. package/dist/{chunk-PZITOYRJ.js → chunk-X4QGMGT4.js} +95 -46
  115. package/dist/{chunk-TINEGYMH.js → chunk-XMSZJCNB.js} +3 -3
  116. package/dist/{chunk-IZJGDYPF.js → chunk-YFHN7546.js} +4 -2
  117. package/dist/{chunk-GOHETQWB.js → chunk-YPZQTLII.js} +1748 -195
  118. package/dist/{chunk-VQYUHD7Y.js → chunk-YQ4HK5BP.js} +9 -2
  119. package/dist/{chunk-BN5EAOHH.js → chunk-YQGZAYSV.js} +8 -8
  120. package/dist/{chunk-7KB4JBTK.js → chunk-Z5KHHDKO.js} +1 -1
  121. package/dist/{chunk-WM7U2HDR.js → chunk-ZCYZYEYL.js} +141 -26
  122. package/dist/{chunk-B6QROCL3.js → chunk-ZGYMTR24.js} +2 -0
  123. package/dist/cli/entry.js +1 -1
  124. package/dist/{client-FV3Z36C7.js → client-JBHRMBCB.js} +2 -2
  125. package/dist/{context-QN22HZVA.js → context-5JRGI3LA.js} +26 -24
  126. package/dist/{create-agent-config-JP6LEUHA.js → create-agent-config-F44IKYBF.js} +42 -41
  127. package/dist/{cvm-ledger-5J2CF2IH.js → cvm-ledger-DDC5JQZ2.js} +9 -7
  128. package/dist/default-registry-GYHLKCGK.js +117 -0
  129. package/dist/{chunk-UP3N22RQ.js → delivery-readonly-3IUPEUTE.js} +29 -29
  130. package/dist/{chunk-T655CBZ3.js → delivery-verification-plan-STL6TCES.js} +29 -9
  131. package/dist/{fetch-core-362HGGEL.js → fetch-core-3YTLMQ63.js} +4 -4
  132. package/dist/{git-command-I6L2QQNT.js → git-command-BTVV2CP4.js} +11 -11
  133. package/dist/{goal-criteria-HNJIU7VM.js → goal-criteria-VL7QKBMY.js} +31 -28
  134. package/dist/{headless-HUUABOXI.js → headless-WO73L3K4.js} +12 -1
  135. package/dist/headless-coordinator-EJIXOU25.js +135 -0
  136. package/dist/headless-tool-registry-K7O3GSGA.js +202 -0
  137. package/dist/hook-runtime/manifest.json +18 -0
  138. package/dist/hook-runtime/win32-arm64/job-launch.exe +0 -0
  139. package/dist/hook-runtime/win32-x64/job-launch.exe +0 -0
  140. package/dist/{login-flow-HZHRWDMP.js → login-flow-WBIW4TPG.js} +9 -9
  141. package/dist/logs-cli-FGSA6MA5.js +1 -1
  142. package/dist/loop-UQ6PK42N.js +116 -0
  143. package/dist/main.js +4545 -4183
  144. package/dist/{manager-DFUQAKQ4.js → manager-F6PNE2IQ.js} +8 -8
  145. package/dist/{manager-UOSQDLDE.js → manager-R252IV36.js} +9 -9
  146. package/dist/{meridian-indexer-3GQGU6N3.js → meridian-indexer-YNTUHKGP.js} +13 -14
  147. package/dist/package.json +1 -1
  148. package/dist/{path-grants-YZCKXR7U.js → path-grants-PFC4Y6RO.js} +2 -2
  149. package/dist/plan-approval-X7KVK3SG.js +60 -0
  150. package/dist/{plugin-loader-7VPMGSID.js → plugin-loader-XZHDEVKK.js} +7 -7
  151. package/dist/plugin-session-cache-QVAXYF5F.js +23 -0
  152. package/dist/{provider-cli-GPKJDTIG.js → provider-cli-NOIL54AY.js} +32 -29
  153. package/dist/{ownership-ledger-M2YWMNCN.js → provider-health-5JISR3GL.js} +3 -3
  154. package/dist/{recovery-cli-CKBZTKYX.js → recovery-cli-ZKTGF6AF.js} +16 -14
  155. package/dist/{serve-GNX43H42.js → serve-C3RJZG5O.js} +95 -100
  156. package/dist/{serve-agent-XAQCSD7L.js → serve-agent-VDY5M2MN.js} +185 -208
  157. package/dist/{service-GC7UZZ6C.js → service-BLDC5PFO.js} +10 -10
  158. package/dist/{session-persist-GYIL3GQW.js → session-persist-32QYKPNI.js} +7 -6
  159. package/dist/{skill-loader-QNKIAUWR.js → skill-loader-MFCCERBN.js} +2 -2
  160. package/dist/{skills-cli-T3YYFOFV.js → skills-cli-636CD2B3.js} +53 -51
  161. package/dist/{spawn-git-322LUSF5.js → spawn-git-G47JY5H3.js} +10 -10
  162. package/dist/{storage-cli-RSQMUXRU.js → storage-cli-7WA6XLZD.js} +24 -22
  163. package/dist/{test-execution-plan-C6VFC2F3.js → test-execution-plan-E2B32MSV.js} +2 -3
  164. package/dist/todo-2TQOHCU6.js +70 -0
  165. package/dist/tool-pipeline-6UJXBZRA.js +95 -0
  166. package/dist/{tool-preset-IR4QM5XI.js → tool-preset-URVN63WE.js} +8 -8
  167. package/dist/{wave-checkpoint-YU7FORXF.js → wave-checkpoint-IJ6OJI2P.js} +15 -15
  168. package/dist/{web-cli-GOVQKVUH.js → web-cli-AIW3L3CV.js} +3 -3
  169. package/dist/{web-search-XAPURSPT.js → web-search-ELGICB5J.js} +5 -5
  170. package/dist/workers/cpu-worker.js +13687 -2
  171. package/dist/workers/image-worker.js +20 -0
  172. package/dist/workers/verification-worker.js +15 -17
  173. package/package.json +6 -9
  174. package/dist/bootstrap-IFNFWNRE.js +0 -250
  175. package/dist/chunk-327HGVDW.js +0 -1232
  176. package/dist/chunk-36XJXTVC.js +0 -1116
  177. package/dist/chunk-3ASF7AKR.js +0 -118
  178. package/dist/chunk-3PDF6LUL.js +0 -123
  179. package/dist/chunk-3SRRU6OC.js +0 -168
  180. package/dist/chunk-4FBYPLF7.js +0 -150
  181. package/dist/chunk-4NUUK5SG.js +0 -963
  182. package/dist/chunk-5RQ6B5RF.js +0 -178
  183. package/dist/chunk-6ATKDB73.js +0 -130
  184. package/dist/chunk-6FMBZBKW.js +0 -76
  185. package/dist/chunk-6WZFF5JT.js +0 -89
  186. package/dist/chunk-AU7VICVK.js +0 -1238
  187. package/dist/chunk-AUQPIKXS.js +0 -1052
  188. package/dist/chunk-CSZE2ATZ.js +0 -155
  189. package/dist/chunk-DRB5MQFI.js +0 -366
  190. package/dist/chunk-E653LVG5.js +0 -727
  191. package/dist/chunk-EDTVNOQN.js +0 -54
  192. package/dist/chunk-EHONGTY5.js +0 -74
  193. package/dist/chunk-GONPFOPE.js +0 -307
  194. package/dist/chunk-GUQEPZH3.js +0 -35
  195. package/dist/chunk-HE3DLIKV.js +0 -2692
  196. package/dist/chunk-IDRGTMLL.js +0 -151
  197. package/dist/chunk-IQ67Z7D4.js +0 -617
  198. package/dist/chunk-JMZPRUT6.js +0 -89
  199. package/dist/chunk-JSM7QQPT.js +0 -524
  200. package/dist/chunk-JTMRWAWN.js +0 -90
  201. package/dist/chunk-JZ5AGNLZ.js +0 -206
  202. package/dist/chunk-KJ7NWH6R.js +0 -1930
  203. package/dist/chunk-KUJ74NWU.js +0 -100
  204. package/dist/chunk-LADQPNJB.js +0 -127
  205. package/dist/chunk-LIWDO7EB.js +0 -220
  206. package/dist/chunk-LPLEUVOH.js +0 -737
  207. package/dist/chunk-N7JNP3MB.js +0 -228
  208. package/dist/chunk-NLBR74W5.js +0 -8641
  209. package/dist/chunk-NO6DSH3Z.js +0 -114
  210. package/dist/chunk-OGMODVXU.js +0 -675
  211. package/dist/chunk-QB7TQWWX.js +0 -447
  212. package/dist/chunk-R7FCGYUB.js +0 -855
  213. package/dist/chunk-RDBC7R6S.js +0 -68
  214. package/dist/chunk-RO7A6HGV.js +0 -179
  215. package/dist/chunk-TKQUIO4E.js +0 -285
  216. package/dist/chunk-ULSTKGLP.js +0 -211
  217. package/dist/chunk-UXONC5JN.js +0 -158
  218. package/dist/chunk-XSMKTUIB.js +0 -254
  219. package/dist/chunk-YZNXPFVK.js +0 -397
  220. package/dist/chunk-ZM4GSI6X.js +0 -134
  221. package/dist/chunk-ZOFO5AQZ.js +0 -1977
  222. package/dist/chunk-ZTYPOJM2.js +0 -85
  223. package/dist/council-convene-HKSCZ4KT.js +0 -68
  224. package/dist/default-registry-YJD75ECW.js +0 -116
  225. package/dist/deliver-task-IRWMLODV.js +0 -102
  226. package/dist/delivery-gate-v2-YB742QSZ.js +0 -49
  227. package/dist/delivery-readonly-UGMN4M2F.js +0 -33
  228. package/dist/delivery-verification-plan-QCKVGOZX.js +0 -42
  229. package/dist/domain-knowledge-store-MXECK4QY.js +0 -11
  230. package/dist/galaxy-C73NFCA4.js +0 -148
  231. package/dist/headless-coordinator-5XE2OIQN.js +0 -148
  232. package/dist/loop-Q7AVZAER.js +0 -128
  233. package/dist/plan-approval-SLZCP34F.js +0 -37
  234. package/dist/review-discipline-6TFJVGKP.js +0 -55
  235. package/dist/review-router-HFODRGRU.js +0 -19
  236. package/dist/starflow-G6CJIWWG.js +0 -42
  237. package/dist/task-contract-YNMWZYNT.js +0 -32
  238. package/dist/task-ledger-4UP4PDMB.js +0 -35
  239. package/dist/team-orchestrate-T5GZFAUZ.js +0 -77
  240. package/dist/todo-VQ6LE3OG.js +0 -37
  241. package/dist/tool-pipeline-MNBV5TQX.js +0 -101
  242. package/dist/tool-tiers-ITOR2MHM.js +0 -23
  243. package/dist/verification-attribution-CSOGH6KH.js +0 -40
  244. package/dist/worktree-baseline-QDFJPNGL.js +0 -9
  245. package/dist/{chunk-QMNTSDWW.js → chunk-ESJSMCQS.js} +3 -3
  246. package/dist/{chunk-IAJIIVLA.js → chunk-G7VEM5DN.js} +3 -3
package/README.en.md CHANGED
@@ -16,6 +16,7 @@
16
16
  <a href="docs/user-guide.md"><img src="https://img.shields.io/badge/Docs-User%20Guide-FBBC04" alt="Docs"></a>
17
17
  <a href="https://discord.gg/XjWTATCHB"><img src="https://img.shields.io/badge/Discord-5865F2?logo=discord&logoColor=white" alt="Discord"></a>
18
18
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-34A853" alt="License"></a>
19
+ <a href="https://github.com/RyanAlberts/best-of-Agent-Harnesses"><img src="https://img.shields.io/badge/%F0%9F%8F%86_Best_of-Agent_Harnesses-5ac4bf" alt="Best of Agent Harnesses"></a>
19
20
  </p>
20
21
 
21
22
  <p align="center">
@@ -105,6 +106,23 @@ Download from [Releases](https://github.com/huiliyi37/Tianshu-harness/releases/l
105
106
  </tr>
106
107
  </table>
107
108
 
109
+ > [!WARNING]
110
+ > **Hard Node.js requirement (v3.36.0+):** the CLI supports only **Node 24.22.1+
111
+ > (24.x line) or Node 26.12.1+ (26.x line)**. Node 22 / 23 / 25 / 27,
112
+ > Node 24.x below 24.22.1, and Node 26.x below 26.12.1 are rejected at startup
113
+ > by the security gate. `/update` may install the new package successfully while
114
+ > the new CLI still cannot start. Run `node -v` first; if it does not match, upgrade
115
+ > via nvm / fnm / Volta or nodejs.org before installing.
116
+ >
117
+ > ```bash
118
+ > node -v # requires v24.22.1+ or v26.12.1+
119
+ > ```
120
+ >
121
+ > The desktop app bundles its own runtime; no manual Node installation is required.
122
+ > If it still fails after the upgrade, see the
123
+ > [installation guide](docs/guides/installation.md) and
124
+ > [troubleshooting guide](docs/guides/troubleshooting.md).
125
+
108
126
  <details>
109
127
  <summary><b>One-line installers · migrating from the legacy package</b></summary>
110
128
 
package/README.ja.md CHANGED
@@ -150,7 +150,7 @@ Layer 4: RuntimeHookPipeline(75 hooks)→ trap-and-emulate で退化行動
150
150
 
151
151
  ### 1. 環境要件
152
152
 
153
- - **Node.js ≥ 24**(`engines` で固定)—— `node --version` で確認。低いバージョンは npm インストール時に警告が出るだけでサポート対象外。ワンラインインストールスクリプトは直接ブロックしてアップグレード案内を出します。
153
+ - **Node.js 24.22.1+(24.x 系)または 26.12.1+(26.x 系)**(`engines` 固定)—— `node --version` で確認。Node 22 / 23 / 25 / 27、24.x < 24.22.1、26.x < 26.12.1 は v3.36.0 以降の安全ゲートで起動時に拒否されます。`/update` 後に新 CLI が起動しない場合も、まず Node をアップグレードしてください。ワンラインインストールスクリプトは事前にブロックして案内します。
154
154
  - **Git**(強く推奨)—— 任意。無くても天枢は動作します(その場で修正)が、Git があると委譲 worktree 分離・チェックポイントロールバック・`commit`/`diff` レビュー・worker ごとの diff レビューが使えます。インストール:<https://git-scm.com/downloads>。
155
155
 
156
156
  ### 2. インストール(いずれかを選択)
@@ -161,7 +161,7 @@ Layer 4: RuntimeHookPipeline(75 hooks)→ trap-and-emulate で退化行動
161
161
  > **Windows サポート範囲**:Windows 10(1809+、22H2 推奨)/ Windows 11。画面描画は **WebView2 Runtime(推奨 ≥ 120)** に依存——v3.5 以降のスクロール・描画最適化には新しいランタイムが必要で、古いとセッション領域のスクロールがカクつきます。3.5.3 以降インストーラーは完全なオフラインインストールパッケージを同梱(ネット不要・システムレベル登録)。既存ユーザーが自動更新で古すぎる旨の表示が出た場合:通知バーまたは「設定 → ランタイムとバージョン情報」で「修復ツールを実行」。**ウィンドウが完全に開かない**場合は、スタートメニューの「WebView2 を修復」、または [Releases](https://github.com/huiliyi37/Tianshu-harness/releases/latest) の `windows-repair` ディレクトリから `repair-webview2.cmd` をダブルクリック。[WebView2 オフラインインストールパッケージ](https://go.microsoft.com/fwlink/p/?LinkId=2124703) を手動インストールして再起動しても構いません。
162
162
  > **Win10 タブレットモードの既知動作**:タブレットモードでアプリを切り替えると前のアプリが画面外へスライドします——computer_use のスナップショットは遮へい/バックグラウンド自己修復(PrintWindow 描画)済みで、タブレットモードを切る必要はありません。
163
163
 
164
- **方法 B:ワンラインインストールスクリプト(推奨)** —— Node ≥ 24 を検証 → `tianshu-harness` をグローバルインストール(デフォルトは npmmirror ミラー加速、`NPM_CONFIG_REGISTRY` で上書き可)→ `tianshu` を起動。冪等で再実行可能:
164
+ **方法 B:ワンラインインストールスクリプト(推奨)** —— Node 24.22.1+ / 26.12.1+ を検証 → `tianshu-harness` をグローバルインストール(デフォルトは npmmirror ミラー加速、`NPM_CONFIG_REGISTRY` で上書き可)→ `tianshu` を起動。冪等で再実行可能:
165
165
 
166
166
  ```bash
167
167
  # macOS / Linux(bash)
package/README.ko.md CHANGED
@@ -150,7 +150,7 @@ Layer 4: RuntimeHookPipeline(75 hooks) → trap-and-emulate로 퇴화 행동
150
150
 
151
151
  ### 1. 환경 요구사항
152
152
 
153
- - **Node.js ≥ 24**(`engines` 고정)—— `node --version`으로 확인하세요. 낮은 버전은 npm 설치 시 경고만 뜨며 지원 범위가 아닙니다. 원클릭 설치 스크립트는 직접 차단하고 업그레이드 안내를 제시합니다.
153
+ - **Node.js 24.22.1+(24.x 계열)또는 26.12.1+(26.x 계열)**(`engines` 고정)—— `node --version`으로 확인하세요. Node 22 / 23 / 25 / 27, 24.x < 24.22.1, 26.x < 26.12.1은 v3.36.0 이후 안전 게이트에서 시작 시 거부됩니다. `/update` 후 새 CLI가 시작되지 않는 경우에도 먼저 Node를 업그레이드하세요. 원클릭 설치 스크립트는 사전에 차단하고 안내를 제시합니다.
154
154
  - **Git**(강력 권장)—— 선택 사항. 없어도 天枢는 동작하지만(그 자리에서 수정), Git이 있으면 위임 worktree 격리, 체크포인트 롤백, `commit`/`diff` 검토, worker별 diff 검토가 가능합니다. 설치: <https://git-scm.com/downloads>.
155
155
 
156
156
  ### 2. 설치(택一)
@@ -161,7 +161,7 @@ Layer 4: RuntimeHookPipeline(75 hooks) → trap-and-emulate로 퇴화 행동
161
161
  > **Windows 지원 범위**: Windows 10(1809+, 22H2 권장)/ Windows 11. 화면 렌더링은 **WebView2 Runtime(≥ 120 권장)**에 의존합니다——v3.5부터의 스크롤·렌더링 최적화는 최신 런타임이 필요하며, 구버전은 세션 영역 스크롤이 끊깁니다. 3.5.3부터 설치 프로그램에 완전한 오프라인 설치 패키지가 내장됩니다(네트워크 불필요, 시스템 레벨 등록). 기존 사용자가 자동 업데이트 후 "너무 오래됨" 안내를 받으면: 안내 바 또는 「설정 → 런타임 및 정보」에서 「복구 도구 실행」. **창이 아예 열리지 않을 때**는 시작 메뉴의 「WebView2 복구」를 사용하거나, [Releases](https://github.com/huiliyi37/Tianshu-harness/releases/latest)에서 `windows-repair` 디렉터리의 `repair-webview2.cmd`를 더블클릭하세요. 또는 [WebView2 오프라인 설치 패키지](https://go.microsoft.com/fwlink/p/?LinkId=2124703)를 수동 설치 후 재시작하세요.
162
162
  > **Win10 태블릿 모드 알려진 동작**: 태블릿 모드에서 앱 전환 시 이전 앱이 화면 밖으로 밀려납니다——computer_use 스냅샷이 가림/백그라운드 자가복구를 수행하므로(PrintWindow 렌더링)태블릿 모드를 끌 필요가 없습니다.
163
163
 
164
- **방식 B: 원클릭 설치 스크립트(권장)** —— Node ≥ 24 확인 → `tianshu-harness` 전역 설치(기본 npmmirror 미러 가속, `NPM_CONFIG_REGISTRY`로 덮어쓰기 가능)→ `tianshu` 실행. 멱등하게 반복 실행 가능:
164
+ **방식 B: 원클릭 설치 스크립트(권장)** —— Node 24.22.1+ / 26.12.1+ 확인 → `tianshu-harness` 전역 설치(기본 npmmirror 미러 가속, `NPM_CONFIG_REGISTRY`로 덮어쓰기 가능)→ `tianshu` 실행. 멱등하게 반복 실행 가능:
165
165
 
166
166
  ```bash
167
167
  # macOS / Linux(bash)
package/README.md CHANGED
@@ -16,6 +16,7 @@
16
16
  <a href="docs/user-guide.md"><img src="https://img.shields.io/badge/Docs-%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C-FBBC04" alt="Docs"></a>
17
17
  <a href="https://discord.gg/XjWTATCHB"><img src="https://img.shields.io/badge/Discord-%E4%BA%A4%E6%B5%81%E7%BE%A4-5865F2?logo=discord&logoColor=white" alt="Discord"></a>
18
18
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-34A853" alt="License"></a>
19
+ <a href="https://github.com/RyanAlberts/best-of-Agent-Harnesses"><img src="https://img.shields.io/badge/%F0%9F%8F%86_Best_of-Agent_Harnesses-5ac4bf" alt="Best of Agent Harnesses"></a>
19
20
  </p>
20
21
 
21
22
  <p align="center">
@@ -103,6 +104,19 @@ tianshu
103
104
  </tr>
104
105
  </table>
105
106
 
107
+ > [!WARNING]
108
+ > **Node.js 版本硬门槛(v3.36.0 起)**:CLI 仅支持 **Node 24.22.1+(24.x 线)或 26.12.1+(26.x 线)**。
109
+ > Node 22 / 23 / 25 / 27、24.x < 24.22.1、26.x < 26.12.1 会在启动时被安全闸门拒绝;
110
+ > `/update` 可能已经装上新包,但新 CLI 仍无法启动。先运行 `node -v`,不满足时用
111
+ > nvm / fnm / Volta 或 nodejs.org 升级后再安装。
112
+ >
113
+ > ```bash
114
+ > node -v # 需要 v24.22.1+ 或 v26.12.1+
115
+ > ```
116
+ >
117
+ > 桌面端自带运行时,不需要手动安装 Node。升级后仍失败时见
118
+ > [安装指南](docs/guides/installation.md) 与 [排障指南](docs/guides/troubleshooting.md)。
119
+
106
120
  <details>
107
121
  <summary><b>一键安装脚本 · 从旧包迁移</b></summary>
108
122
 
@@ -33,9 +33,9 @@ import {
33
33
  saveAccountIdentity,
34
34
  saveAccountProfile,
35
35
  saveAccountToken
36
- } from "./chunk-QMNTSDWW.js";
37
- import "./chunk-GH4JI6BC.js";
36
+ } from "./chunk-ESJSMCQS.js";
38
37
  import "./chunk-XUMXRP3L.js";
38
+ import "./chunk-GH4JI6BC.js";
39
39
  import "./chunk-R5Q7AA2C.js";
40
40
  import "./chunk-4I2HDYJG.js";
41
41
  export {
@@ -17,8 +17,8 @@ async function handleAccountLogin(app) {
17
17
  accountStore,
18
18
  saveAccountToken,
19
19
  isTerminalPollStatus
20
- } = await import("./account-SIZF2YV5.js");
21
- const { openInBrowser } = await import("./login-flow-HZHRWDMP.js");
20
+ } = await import("./account-Q54MGORC.js");
21
+ const { openInBrowser } = await import("./login-flow-WBIW4TPG.js");
22
22
  const { rivetHome } = await import("./paths-PE56RINB.js");
23
23
  app.commitStatic("\u6B63\u5728\u5411\u5929\u67A2\u7533\u8BF7\u8BBE\u5907\u6388\u6743\u2026");
24
24
  let created;
@@ -42,7 +42,7 @@ ${created.verifyUrl}
42
42
  });
43
43
  if (result.status === "approved" && result.accessToken) {
44
44
  const token = saveAccountToken(accountStore(rivetHome()), result);
45
- const { primeStellarIdentity } = await import("./account-status-YCVLHU6B.js");
45
+ const { primeStellarIdentity } = await import("./account-status-I4TDW3ZM.js");
46
46
  const identityLine = await primeStellarIdentity(token.accessToken);
47
47
  app.commitStatic("\u2705 \u5DF2\u767B\u5F55\u5929\u67A2\u8D26\u53F7\u2014\u2014\u684C\u9762\u7AEF\u4E0E\u7F51\u9875\u7AEF\u73B0\u5728\u770B\u5230\u540C\u4E00\u4EFD\u8BBE\u5907\u4E0E\u8BA2\u9605\u3002");
48
48
  if (identityLine) app.commitStatic(`\u661F\u7C4D\uFF1A${identityLine}`);
@@ -54,7 +54,7 @@ ${created.verifyUrl}
54
54
  return true;
55
55
  }
56
56
  async function handleAccountLogout(app) {
57
- const { accountStore, revokeAccountSession } = await import("./account-SIZF2YV5.js");
57
+ const { accountStore, revokeAccountSession } = await import("./account-Q54MGORC.js");
58
58
  const { rivetHome } = await import("./paths-PE56RINB.js");
59
59
  const store = accountStore(rivetHome());
60
60
  const credential = store.load()?.accessToken;
@@ -5,14 +5,14 @@ import {
5
5
  commitWelcomeStellarIdentityLine,
6
6
  formatStellarIdentityLine,
7
7
  primeStellarIdentity
8
- } from "./chunk-C6JA6N5E.js";
9
- import "./chunk-QMNTSDWW.js";
10
- import "./chunk-GH4JI6BC.js";
11
- import "./chunk-ALC2MQJ6.js";
8
+ } from "./chunk-6G4FHROQ.js";
9
+ import "./chunk-ESJSMCQS.js";
10
+ import "./chunk-6I2YCDUJ.js";
12
11
  import "./chunk-XUMXRP3L.js";
13
12
  import "./chunk-MUIODEN6.js";
14
- import "./chunk-36UFT42V.js";
15
- import "./chunk-R44ENUT2.js";
13
+ import "./chunk-GH4JI6BC.js";
14
+ import "./chunk-3DZ5UT3I.js";
15
+ import "./chunk-GP37UWT4.js";
16
16
  import "./chunk-R5Q7AA2C.js";
17
17
  import "./chunk-M5U2TMZN.js";
18
18
  import "./chunk-4I2HDYJG.js";
@@ -2,240 +2,208 @@
2
2
  import { createRequire as __rivetCreateRequire } from 'node:module'; const require = __rivetCreateRequire(import.meta.url);
3
3
  import {
4
4
  buildModelCards
5
- } from "../../chunk-BN5EAOHH.js";
5
+ } from "../../chunk-YQGZAYSV.js";
6
6
  import {
7
7
  CHILD_TICK_INTERVAL_MS,
8
+ DomainKnowledgeStore,
8
9
  createFrameDecoder,
9
10
  createInteractiveToolRegistry,
10
11
  encodeFrame
11
- } from "../../chunk-NLBR74W5.js";
12
- import "../../chunk-QH44FLDF.js";
13
- import {
14
- createWorkerRuntimeFactory
15
- } from "../../chunk-5RQ6B5RF.js";
16
- import "../../chunk-ZQGG2YK5.js";
17
- import "../../chunk-ZOFO5AQZ.js";
18
- import "../../chunk-KUJ74NWU.js";
19
- import "../../chunk-T655CBZ3.js";
20
- import "../../chunk-UP3N22RQ.js";
21
- import "../../chunk-CVDQE7VZ.js";
22
- import {
23
- DomainKnowledgeStore
24
- } from "../../chunk-YZNXPFVK.js";
25
- import "../../chunk-6ZVYO2RV.js";
26
- import "../../chunk-AUQPIKXS.js";
27
- import "../../chunk-E653LVG5.js";
28
- import "../../chunk-AU7VICVK.js";
29
- import "../../chunk-NO6DSH3Z.js";
30
- import "../../chunk-JMZPRUT6.js";
31
- import "../../chunk-HE3DLIKV.js";
32
- import "../../chunk-6FMBZBKW.js";
33
- import "../../chunk-JZZUOL4B.js";
34
- import "../../chunk-ULSTKGLP.js";
35
- import "../../chunk-RO7A6HGV.js";
36
- import "../../chunk-3ASF7AKR.js";
37
- import "../../chunk-RXDPUON5.js";
38
- import "../../chunk-RULFNJCE.js";
39
- import "../../chunk-GOHETQWB.js";
40
- import "../../chunk-LPE4KYBS.js";
41
- import "../../chunk-6FEJAGKX.js";
42
- import "../../chunk-TINEGYMH.js";
43
- import "../../chunk-VPJJ55WU.js";
44
- import "../../chunk-6DAVD4U2.js";
45
- import "../../chunk-QJ3KWXGU.js";
46
- import "../../chunk-ZC7EJUYB.js";
47
- import "../../chunk-2ZCSBEI7.js";
48
- import "../../chunk-AGQC5HE6.js";
49
- import "../../chunk-C3VWIS6E.js";
50
- import "../../chunk-4NUUK5SG.js";
12
+ } from "../../chunk-EXAFVT2W.js";
51
13
  import {
52
14
  DelegationCoordinator,
15
+ createWorkerRuntimeFactory,
53
16
  runWorkerSession,
54
17
  workerFailureResult
55
- } from "../../chunk-KD5KEXRO.js";
56
- import "../../chunk-SUEDYIAK.js";
57
- import "../../chunk-7KJ4RHGC.js";
58
- import "../../chunk-3SRRU6OC.js";
59
- import "../../chunk-CSZE2ATZ.js";
60
- import "../../chunk-TKQUIO4E.js";
61
- import "../../chunk-2T6QGCBS.js";
18
+ } from "../../chunk-G2YHK7QR.js";
19
+ import "../../chunk-QH44FLDF.js";
20
+ import "../../chunk-D2ZGK7SK.js";
21
+ import "../../chunk-NBCW3AJZ.js";
22
+ import "../../chunk-YPZQTLII.js";
62
23
  import {
63
24
  filterToolRegistry
64
- } from "../../chunk-B6QROCL3.js";
65
- import "../../chunk-4FBYPLF7.js";
66
- import "../../chunk-WM7U2HDR.js";
67
- import "../../chunk-GLNSIQCG.js";
68
- import "../../chunk-TKRUQYW6.js";
69
- import "../../chunk-HQMIE6FJ.js";
70
- import "../../chunk-VUL2J36P.js";
71
- import "../../chunk-LADQPNJB.js";
72
- import "../../chunk-AWGONZQC.js";
73
- import "../../chunk-OPDYSVSZ.js";
74
- import "../../chunk-GW2SDBVZ.js";
25
+ } from "../../chunk-ZGYMTR24.js";
26
+ import "../../chunk-TPC63AAU.js";
27
+ import "../../chunk-6FEJAGKX.js";
28
+ import "../../chunk-VPJJ55WU.js";
29
+ import "../../chunk-XMSZJCNB.js";
30
+ import "../../chunk-VLASZ54H.js";
31
+ import "../../chunk-JZZUOL4B.js";
32
+ import "../../chunk-UYR23YAR.js";
33
+ import "../../chunk-5VZWXY7D.js";
34
+ import "../../chunk-MHWHJU5B.js";
35
+ import "../../chunk-6ZVYO2RV.js";
36
+ import "../../chunk-RB4SJIHS.js";
75
37
  import "../../chunk-YDL6H5EF.js";
76
- import "../../chunk-VQYUHD7Y.js";
77
- import "../../chunk-OGMODVXU.js";
78
- import "../../chunk-QHCUYAEQ.js";
79
- import "../../chunk-LPLEUVOH.js";
80
- import "../../chunk-MN2ADYQX.js";
81
- import "../../chunk-4RCVGE32.js";
82
- import "../../chunk-LIWDO7EB.js";
83
- import "../../chunk-327HGVDW.js";
84
- import "../../chunk-DRB5MQFI.js";
38
+ import "../../chunk-BUPAWHNU.js";
39
+ import "../../chunk-YQ4HK5BP.js";
40
+ import "../../chunk-HVO25CQO.js";
41
+ import "../../chunk-TKSE3QAY.js";
42
+ import "../../chunk-7I7QVVKE.js";
43
+ import "../../chunk-SMMWTH2X.js";
85
44
  import {
86
45
  deriveWorkerSessionId
87
- } from "../../chunk-DVF6RX5I.js";
88
- import "../../chunk-ALC2MQJ6.js";
89
- import "../../chunk-HRBOGKQE.js";
90
- import "../../chunk-KJ7NWH6R.js";
91
- import "../../chunk-EHONGTY5.js";
46
+ } from "../../chunk-Q56A5NIH.js";
47
+ import "../../chunk-6I2YCDUJ.js";
48
+ import "../../chunk-4RCVGE32.js";
49
+ import "../../chunk-R3CQ7UTA.js";
50
+ import {
51
+ PromptEngine
52
+ } from "../../chunk-ADETW3LK.js";
53
+ import {
54
+ ModelBindingUnavailable,
55
+ resolveModelBinding
56
+ } from "../../chunk-C7TCIN7O.js";
57
+ import {
58
+ applyDescriptionMode
59
+ } from "../../chunk-ULTZP5EM.js";
60
+ import "../../chunk-Z5KHHDKO.js";
61
+ import "../../chunk-2QHQMGCI.js";
62
+ import "../../chunk-E7PFSNWI.js";
63
+ import "../../chunk-LXHOYEYS.js";
64
+ import "../../chunk-QJ3KWXGU.js";
92
65
  import "../../chunk-3V275PK3.js";
93
66
  import "../../chunk-L3MKGLTZ.js";
94
- import "../../chunk-FL2MLWSP.js";
67
+ import "../../chunk-KRLFV7NR.js";
68
+ import "../../chunk-AGQC5HE6.js";
69
+ import "../../chunk-C3VWIS6E.js";
70
+ import "../../chunk-ZCYZYEYL.js";
71
+ import "../../chunk-TUNCS72D.js";
72
+ import "../../chunk-GLNSIQCG.js";
73
+ import "../../chunk-S3JLCMYK.js";
74
+ import "../../chunk-IHS675GQ.js";
75
+ import "../../chunk-J4BX3L5F.js";
76
+ import "../../chunk-7NHSPDU3.js";
95
77
  import "../../chunk-F4YO6TH6.js";
96
- import "../../chunk-UXONC5JN.js";
97
- import "../../chunk-R7FCGYUB.js";
78
+ import "../../chunk-LQXUGBRV.js";
79
+ import "../../chunk-CABETIHP.js";
80
+ import "../../chunk-YFQDPZ5E.js";
98
81
  import "../../chunk-LCRH7DHL.js";
99
- import "../../chunk-36XJXTVC.js";
100
- import "../../chunk-YFZ5J3UX.js";
101
- import "../../chunk-VIWFOB4C.js";
102
- import "../../chunk-JSM7QQPT.js";
103
- import "../../chunk-FMXB56CJ.js";
82
+ import "../../chunk-FYZIVIVJ.js";
83
+ import "../../chunk-RTAQVDQX.js";
84
+ import "../../chunk-DZZIOMDJ.js";
85
+ import "../../chunk-KDFVDY6Z.js";
86
+ import "../../chunk-D56A673F.js";
104
87
  import "../../chunk-2S5HLVY5.js";
105
88
  import "../../chunk-77O25DOI.js";
89
+ import "../../chunk-MCTISTXO.js";
90
+ import "../../chunk-P5X23XMQ.js";
91
+ import "../../chunk-TJIPZ32B.js";
106
92
  import "../../chunk-4A5DQMWU.js";
107
93
  import "../../chunk-3L6Y25YS.js";
108
- import "../../chunk-XCH7RSLH.js";
109
- import {
110
- PromptEngine
111
- } from "../../chunk-V3GFYVH6.js";
112
- import {
113
- ModelBindingUnavailable,
114
- resolveModelBinding
115
- } from "../../chunk-Y7QDHNZK.js";
116
- import "../../chunk-UCTBCMPM.js";
117
- import "../../chunk-7KB4JBTK.js";
118
- import "../../chunk-E7PFSNWI.js";
119
- import "../../chunk-IQ67Z7D4.js";
120
- import "../../chunk-6ATKDB73.js";
121
- import "../../chunk-QB7TQWWX.js";
122
- import "../../chunk-JT23MFRM.js";
123
- import "../../chunk-ZM4GSI6X.js";
124
- import "../../chunk-6WZFF5JT.js";
125
- import "../../chunk-GONPFOPE.js";
126
- import "../../chunk-645YHSAB.js";
127
- import "../../chunk-VOGUJOPO.js";
128
- import "../../chunk-K52NICQT.js";
129
- import "../../chunk-X7HIEUZM.js";
130
- import "../../chunk-XSMKTUIB.js";
131
- import "../../chunk-P5X23XMQ.js";
132
- import "../../chunk-ZST3KYP4.js";
133
- import "../../chunk-RB7WBLDT.js";
94
+ import "../../chunk-GK5AOL2S.js";
95
+ import "../../chunk-NDRKUGUX.js";
134
96
  import "../../chunk-2YWHAAHH.js";
135
- import "../../chunk-IR65K2FN.js";
97
+ import "../../chunk-HL7V4MMW.js";
98
+ import "../../chunk-7KJ4RHGC.js";
99
+ import "../../chunk-2KAEEQVR.js";
136
100
  import {
137
101
  TodoStore
138
102
  } from "../../chunk-PEH3Z2C4.js";
139
- import {
140
- applyDescriptionMode
141
- } from "../../chunk-N7JNP3MB.js";
142
103
  import "../../chunk-M66PYSTZ.js";
104
+ import "../../chunk-APX6IEHB.js";
143
105
  import "../../chunk-JL6ZOCKR.js";
144
106
  import "../../chunk-EWALQ6XG.js";
145
107
  import "../../chunk-XUMXRP3L.js";
146
- import "../../chunk-WYKBLVEL.js";
108
+ import "../../chunk-MUQCFAJO.js";
109
+ import "../../chunk-FPHXJIXM.js";
110
+ import "../../chunk-4OM6ZS6V.js";
111
+ import "../../chunk-UGHCGSJI.js";
112
+ import "../../chunk-MFYCJYC7.js";
147
113
  import "../../chunk-FVYIMDXS.js";
148
- import "../../chunk-6ZJOBWNV.js";
149
- import "../../chunk-TZCG6QH5.js";
150
- import "../../chunk-VL3A4BXF.js";
151
- import "../../chunk-3CKJKF4L.js";
152
- import "../../chunk-5IKCONT3.js";
153
- import "../../chunk-TQ3HB536.js";
154
- import {
155
- withWorkspaceRoots
156
- } from "../../chunk-XL4CI5K6.js";
114
+ import "../../chunk-OBC4NBM2.js";
115
+ import "../../chunk-R36PVJTU.js";
116
+ import "../../chunk-D2EW4FEW.js";
117
+ import "../../chunk-34JQ6NBQ.js";
118
+ import "../../chunk-LE3INURI.js";
157
119
  import {
158
120
  profileRegistry
159
- } from "../../chunk-OTSVEM2O.js";
160
- import "../../chunk-JZ5AGNLZ.js";
161
- import "../../chunk-TBS6TJXJ.js";
162
- import "../../chunk-KL4F2FYA.js";
163
- import "../../chunk-TJIPZ32B.js";
121
+ } from "../../chunk-X2RBFXWQ.js";
122
+ import "../../chunk-TCGSJDYV.js";
123
+ import "../../chunk-HQATVZF4.js";
164
124
  import {
165
- acknowledgeManagedProDenial,
166
- withManagedProAuthorization
167
- } from "../../chunk-ZTYPOJM2.js";
168
- import "../../chunk-U3W76LNL.js";
169
- import "../../chunk-Q22ELIY4.js";
170
- import "../../chunk-IDRGTMLL.js";
171
- import "../../chunk-ORFLZHKT.js";
172
- import "../../chunk-4OM6ZS6V.js";
173
- import "../../chunk-UGHCGSJI.js";
174
- import "../../chunk-IAJIIVLA.js";
125
+ withWorkspaceRoots
126
+ } from "../../chunk-ROSAMY53.js";
127
+ import "../../chunk-SMDLQNCI.js";
128
+ import "../../chunk-TBS6TJXJ.js";
129
+ import "../../chunk-3D7ZTHOU.js";
130
+ import "../../chunk-NKIJHIE3.js";
131
+ import "../../chunk-G7VEM5DN.js";
175
132
  import "../../chunk-MUIODEN6.js";
176
133
  import "../../chunk-FB6BPHRP.js";
177
- import "../../chunk-Z2NJXTYR.js";
178
- import "../../chunk-DLVSLSMB.js";
179
- import "../../chunk-ZPRSF7HW.js";
180
- import "../../chunk-JTMRWAWN.js";
181
- import "../../chunk-3PDF6LUL.js";
182
- import "../../chunk-44EIQA5D.js";
134
+ import "../../chunk-KL4F2FYA.js";
183
135
  import "../../chunk-RWCX2NBM.js";
136
+ import "../../chunk-A2WIYFPK.js";
184
137
  import "../../chunk-OCGQY3HN.js";
185
138
  import "../../chunk-JIVTST33.js";
186
- import "../../chunk-A2WIYFPK.js";
187
139
  import {
188
- createProviderClient,
140
+ HookRpcClient,
141
+ acknowledgeManagedProDenial,
142
+ withManagedProAuthorization
143
+ } from "../../chunk-WZWOG6SI.js";
144
+ import "../../chunk-6PBIFODH.js";
145
+ import "../../chunk-C2G4F4QA.js";
146
+ import "../../chunk-ODFVU622.js";
147
+ import "../../chunk-DLVSLSMB.js";
148
+ import "../../chunk-T2B6Z67Y.js";
149
+ import {
150
+ createProviderClient
151
+ } from "../../chunk-IJBBCKR3.js";
152
+ import {
189
153
  resolveCapabilities
190
- } from "../../chunk-JJNUYCOB.js";
191
- import "../../chunk-EAU4YQUW.js";
192
- import "../../chunk-WOAL25MT.js";
154
+ } from "../../chunk-USRIG5QU.js";
193
155
  import "../../chunk-LPYOO7VH.js";
194
- import "../../chunk-RNXGGWRF.js";
156
+ import "../../chunk-EAU4YQUW.js";
157
+ import "../../chunk-Q24C4C2R.js";
158
+ import "../../chunk-KJ7QRUYA.js";
195
159
  import "../../chunk-ZBCFV6QX.js";
196
- import "../../chunk-GUQEPZH3.js";
197
- import "../../chunk-RDBC7R6S.js";
198
- import "../../chunk-EDTVNOQN.js";
160
+ import "../../chunk-DW2ZQATG.js";
161
+ import "../../chunk-G44MTWXL.js";
199
162
  import "../../chunk-7CRGQQ7N.js";
200
163
  import "../../chunk-TWHHPGO4.js";
201
- import "../../chunk-R4DACBK6.js";
164
+ import "../../chunk-6FBIQDPE.js";
165
+ import "../../chunk-XMVSB7DA.js";
166
+ import "../../chunk-GU6QDIUX.js";
167
+ import "../../chunk-52C2QC5X.js";
202
168
  import "../../chunk-EWQTU2OM.js";
203
- import "../../chunk-DW2ZQATG.js";
204
- import "../../chunk-G44MTWXL.js";
205
- import "../../chunk-AQEVLMZQ.js";
206
- import "../../chunk-LJJVWXWY.js";
207
- import "../../chunk-IANUGRZB.js";
208
- import "../../chunk-Q2A7U3WW.js";
169
+ import "../../chunk-VPEKB6KY.js";
209
170
  import "../../chunk-QNGHNILH.js";
210
- import "../../chunk-IVK574U7.js";
211
- import "../../chunk-2AD65B4B.js";
212
- import "../../chunk-XMVSB7DA.js";
213
- import "../../chunk-GA4EMIJN.js";
171
+ import "../../chunk-CAGVAJGD.js";
172
+ import "../../chunk-LJJVWXWY.js";
173
+ import "../../chunk-UCMP5W4Q.js";
174
+ import "../../chunk-V3ZSAVGZ.js";
175
+ import "../../chunk-R4DACBK6.js";
176
+ import "../../chunk-4TBV3NBW.js";
177
+ import "../../chunk-2LDUB2HU.js";
178
+ import "../../chunk-7LVPOOJY.js";
214
179
  import "../../chunk-2QRAS45R.js";
215
- import "../../chunk-Q34EIPRA.js";
180
+ import "../../chunk-MFCVPVMI.js";
216
181
  import "../../chunk-LH55KGZU.js";
182
+ import "../../chunk-44EIQA5D.js";
217
183
  import {
218
184
  loadConfig,
219
185
  subagentPromptBlocks
220
- } from "../../chunk-PZITOYRJ.js";
221
- import "../../chunk-36UFT42V.js";
222
- import "../../chunk-SVE4Z7TF.js";
223
- import "../../chunk-R44ENUT2.js";
224
- import "../../chunk-SOLY4KGP.js";
186
+ } from "../../chunk-X4QGMGT4.js";
187
+ import "../../chunk-3DZ5UT3I.js";
188
+ import {
189
+ clampReadConcurrency
190
+ } from "../../chunk-P2Q7HUMW.js";
191
+ import "../../chunk-GP37UWT4.js";
192
+ import "../../chunk-JYP7C5V2.js";
225
193
  import "../../chunk-7ZIJM5DJ.js";
226
194
  import "../../chunk-R5Q7AA2C.js";
227
195
  import "../../chunk-NSHETV6T.js";
228
- import "../../chunk-5S2SAGRU.js";
229
- import "../../chunk-A4UAGIUP.js";
230
196
  import "../../chunk-3I5K7XOZ.js";
231
197
  import {
232
198
  parseUserInstructionsSnapshot
233
199
  } from "../../chunk-DYIKZGRB.js";
200
+ import "../../chunk-A4UAGIUP.js";
234
201
  import {
235
202
  isLocalWorkerPolicyError
236
- } from "../../chunk-RIK3MRMJ.js";
203
+ } from "../../chunk-GOIHBCOH.js";
237
204
  import "../../chunk-YG7VYB5W.js";
238
205
  import "../../chunk-W5WBZUSD.js";
206
+ import "../../chunk-5S2SAGRU.js";
239
207
  import "../../chunk-M5U2TMZN.js";
240
208
  import {
241
209
  init_esm_shims
@@ -248,6 +216,7 @@ import { join } from "path";
248
216
  function writeFrame(msg) {
249
217
  process.stdout.write(encodeFrame(msg));
250
218
  }
219
+ var hookClient = new HookRpcClient((request) => writeFrame(request));
251
220
  function childLog(line) {
252
221
  writeFrame({ t: "log", line });
253
222
  }
@@ -298,6 +267,10 @@ async function runChild() {
298
267
  stdin.on("line", (line) => {
299
268
  for (const msg of decoder.feed(`${line}
300
269
  `)) {
270
+ if (msg.t === "hook-response" || msg.t === "hook-reaped") {
271
+ hookClient.receive(msg);
272
+ continue;
273
+ }
301
274
  if (msg.t === "pro-deny") {
302
275
  void acknowledgeManagedProDenial(() => writeFrame({ t: "pro-denied", id: msg.id })).catch((error) => childLog(String(error)));
303
276
  } else if (msg.t === "init") {
@@ -312,6 +285,7 @@ async function runChild() {
312
285
  }
313
286
  });
314
287
  stdin.on("close", () => {
288
+ hookClient.disconnect();
315
289
  void acknowledgeManagedProDenial(() => {
316
290
  }).finally(() => process.exit(initPayload ? 1 : 0));
317
291
  });
@@ -334,6 +308,7 @@ async function bootAndRunInWorkspace(init, steerQueue, abortController) {
334
308
  const { provider, apiKey, auth } = root;
335
309
  const domainKnowledgeStore = new DomainKnowledgeStore(join(cwd, ".rivet", "knowledge"));
336
310
  const deps = {
311
+ externalHookHost: cfg.hookRpc ? hookClient : void 0,
337
312
  getUserInstructions: () => workerConfig.promptEngine.getUserInstructionsForDispatch(),
338
313
  config,
339
314
  cwd,
@@ -414,6 +389,7 @@ async function bootAndRunInWorkspace(init, steerQueue, abortController) {
414
389
  cwd,
415
390
  maxTurns: cfg.maxTurns,
416
391
  contextWindow: cfg.contextWindow,
392
+ readConcurrency: clampReadConcurrency(cfg.readConcurrency),
417
393
  compact: cfg.compact,
418
394
  runtimeDecision: decision,
419
395
  providerName: cfg.providerName,