@iowarp/clio-coder 0.4.3 → 0.4.5

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 (670) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/CONTRIBUTING.md +25 -15
  3. package/README.md +340 -27
  4. package/dist/{acp-H2NGRPWO.js → acp-H3CU2HBQ.js} +25 -25
  5. package/dist/{agents-TL5LLUQP.js → agents-IXQQZ7BD.js} +77 -75
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-E5SW4HMS.js → auth-R7KYF7N3.js} +38 -39
  8. package/dist/builtins-CRFDQUVP.js +22 -0
  9. package/dist/{chunk-7DRAWPTZ.js → chunk-22PQ4TX4.js} +4 -4
  10. package/dist/{chunk-NEDJ26B5.js → chunk-2GPGAE5W.js} +6 -51
  11. package/dist/{chunk-IKCO5N3L.js → chunk-2QPI3TR3.js} +3 -3
  12. package/dist/{chunk-HRQMFLJP.js → chunk-32KJPXAM.js} +6 -6
  13. package/dist/{chunk-65DEGPJ6.js → chunk-3A3CUMKA.js} +6 -4
  14. package/dist/{chunk-5TSRNF4G.js → chunk-3T4DXWP6.js} +170 -12
  15. package/dist/{chunk-DR52UMZW.js → chunk-3UW3KU4A.js} +2 -2
  16. package/dist/{chunk-XIVNBFZS.js → chunk-4SVIVOMC.js} +208 -39
  17. package/dist/{chunk-NMJXSHBJ.js → chunk-5A6XR3RJ.js} +44 -19
  18. package/dist/{chunk-YPC6ZR5L.js → chunk-5CMARGPF.js} +119 -5
  19. package/dist/{chunk-KXDSS5WJ.js → chunk-5CY4Q6QI.js} +4 -4
  20. package/dist/chunk-5DDOTTG4.js +402 -0
  21. package/dist/{chunk-D4CJV46V.js → chunk-5GZICIYO.js} +3 -3
  22. package/dist/{chunk-4IUZQIJ3.js → chunk-5PHVPU4G.js} +2 -2
  23. package/dist/{chunk-PUVDKJ2Y.js → chunk-5VTJP36Q.js} +5 -7
  24. package/dist/{chunk-JGRC33J2.js → chunk-5ZMXGW7P.js} +90 -9
  25. package/dist/chunk-5ZSZEYJK.js +119 -0
  26. package/dist/chunk-633EXGZA.js +44 -0
  27. package/dist/{chunk-IWT4SF4R.js → chunk-6CDNRHWH.js} +361 -89
  28. package/dist/{chunk-EBY63B7G.js → chunk-6EXUUOSN.js} +2 -2
  29. package/dist/{chunk-SVNXH4L2.js → chunk-6ICZKDUC.js} +2 -2
  30. package/dist/{chunk-INY6HTFL.js → chunk-6SYEGZI3.js} +12 -12
  31. package/dist/{chunk-SKHCAU7K.js → chunk-6YA46L5A.js} +5 -4
  32. package/dist/{chunk-NZMNUPZZ.js → chunk-77CZRFTE.js} +3 -3
  33. package/dist/{chunk-L47TF46W.js → chunk-7HBHHVCK.js} +24 -3
  34. package/dist/{chunk-DWUOQKRU.js → chunk-7TKWWPD7.js} +5 -4
  35. package/dist/{chunk-2VTFPG5O.js → chunk-7WLRF2U5.js} +2 -2
  36. package/dist/chunk-7WUZEB2M.js +165 -0
  37. package/dist/{chunk-6PTFB5VS.js → chunk-7YJWEF2L.js} +59 -28
  38. package/dist/{chunk-3EBYEESD.js → chunk-A46ILRS2.js} +5 -5
  39. package/dist/{chunk-UOIZ7DA4.js → chunk-AP7HDJOP.js} +2 -2
  40. package/dist/{chunk-APJ265NV.js → chunk-B5GGDIHT.js} +146 -146
  41. package/dist/{chunk-PMZVFWSR.js → chunk-B5ZTR6KZ.js} +2 -2
  42. package/dist/chunk-B6UM3OZC.js +15 -0
  43. package/dist/{chunk-MCEPRMZW.js → chunk-BBV5TKE6.js} +5 -5
  44. package/dist/{chunk-4O6MANBS.js → chunk-BS4GAMUB.js} +14 -10
  45. package/dist/{chunk-S66XZJOF.js → chunk-C27U2TYG.js} +2 -2
  46. package/dist/{chunk-42FMPA75.js → chunk-CBSKDFWL.js} +3 -3
  47. package/dist/{chunk-2LEAKD4C.js → chunk-CKK25WN3.js} +3 -3
  48. package/dist/{chunk-BYP5D4HI.js → chunk-CTTI7G3T.js} +2 -2
  49. package/dist/{chunk-XAKHZX5N.js → chunk-CVDAFGPW.js} +4 -4
  50. package/dist/{chunk-RKKLTLYB.js → chunk-CXQ37WJH.js} +3 -3
  51. package/dist/{chunk-GTUD2WMY.js → chunk-DBREN25X.js} +44 -9
  52. package/dist/{chunk-WCXUNS7U.js → chunk-DIMRLNIC.js} +35 -66
  53. package/dist/{chunk-NDDGJUXD.js → chunk-DNCE23JJ.js} +2 -2
  54. package/dist/{chunk-HVDIIIQW.js → chunk-DNHVRBH4.js} +3 -3
  55. package/dist/{chunk-2UG5F4C5.js → chunk-DRD2A54W.js} +116 -52
  56. package/dist/{chunk-D7E7WCDF.js → chunk-DVNAPPXU.js} +2 -2
  57. package/dist/{chunk-YXLYO42X.js → chunk-DXVMLM3Z.js} +3 -2
  58. package/dist/{chunk-5MEZN6CB.js → chunk-DZK63TZJ.js} +6 -6
  59. package/dist/{chunk-IGLP3ODT.js → chunk-E3BQTQUP.js} +15 -15
  60. package/dist/{chunk-IWHMRKLL.js → chunk-E3LEPLQ2.js} +2 -2
  61. package/dist/{chunk-3R73A4XB.js → chunk-ECBHH7LU.js} +3 -3
  62. package/dist/chunk-ECOMVOHP.js +139 -0
  63. package/dist/chunk-EFSEIZE6.js +56 -0
  64. package/dist/{chunk-IJNZMHLA.js → chunk-EHCPSZJF.js} +4 -4
  65. package/dist/{chunk-K6BSR66V.js → chunk-EHOSNVVM.js} +6 -2
  66. package/dist/{chunk-RRNP2ANY.js → chunk-EQEJJ53P.js} +10 -10
  67. package/dist/{chunk-GWZNEVM2.js → chunk-EWD5P3GK.js} +9 -9
  68. package/dist/{chunk-JKKCYP3C.js → chunk-F34AR6O3.js} +21 -15
  69. package/dist/{chunk-GHS5EBTQ.js → chunk-FKIOX6DS.js} +29 -20
  70. package/dist/{chunk-HAXOFFRH.js → chunk-FQOOGXBH.js} +7 -7
  71. package/dist/{chunk-MWUZBSAQ.js → chunk-FSTIBAGM.js} +358 -63
  72. package/dist/{chunk-ZTJUVLTU.js → chunk-FXFVDPWY.js} +2 -2
  73. package/dist/{chunk-XPLRXC72.js → chunk-GD55RTIW.js} +3 -3
  74. package/dist/{chunk-5B2AEOW5.js → chunk-GH5ZR6JP.js} +472 -472
  75. package/dist/{chunk-JSC3U7TI.js → chunk-GJ24ODAX.js} +5 -5
  76. package/dist/{chunk-B4VEBZKF.js → chunk-GNQRWTMY.js} +139 -52
  77. package/dist/{chunk-5ICU3EUH.js → chunk-GVYWZNRK.js} +5 -5
  78. package/dist/chunk-GXCCHKN6.js +59 -0
  79. package/dist/{chunk-V2ANDPVT.js → chunk-HGSLRG33.js} +170 -8
  80. package/dist/{chunk-LLDJM5XK.js → chunk-HHVJNVUJ.js} +6 -6
  81. package/dist/{chunk-F4EKGO4N.js → chunk-HL26ADLH.js} +4 -2
  82. package/dist/{chunk-VA5FNYMT.js → chunk-HR3HPQ76.js} +42 -5
  83. package/dist/{chunk-ID64D7PE.js → chunk-HXHFDHB6.js} +24 -24
  84. package/dist/{chunk-OML5D5V5.js → chunk-I7VLWRK2.js} +8 -8
  85. package/dist/{chunk-VW6DOEDG.js → chunk-ICO4TQ2F.js} +16 -5
  86. package/dist/{chunk-SZAA6XDG.js → chunk-IFDRAD6F.js} +2 -2
  87. package/dist/{chunk-WBKFA554.js → chunk-ILJ7DWGE.js} +9 -9
  88. package/dist/{chunk-2JH2WHGE.js → chunk-J2FYEQ5L.js} +4 -4
  89. package/dist/{chunk-BMS5RKQY.js → chunk-JABWPKFY.js} +3 -3
  90. package/dist/{chunk-QDC3K2U3.js → chunk-K2BLQC5E.js} +3 -3
  91. package/dist/{chunk-EKCHAPYA.js → chunk-K2HL3GBL.js} +4 -4
  92. package/dist/{chunk-N2Z7HLVY.js → chunk-K6RDB7IA.js} +28 -28
  93. package/dist/{chunk-TM6LQDI3.js → chunk-KDWLXVMN.js} +85 -335
  94. package/dist/{chunk-OZNBF4L3.js → chunk-KECNXMDE.js} +2 -2
  95. package/dist/{chunk-RSJ25QSL.js → chunk-KF6GFW6O.js} +217 -50
  96. package/dist/{chunk-BTK3SSSK.js → chunk-KMF54VH3.js} +2 -2
  97. package/dist/chunk-KPRLAMP4.js +32 -0
  98. package/dist/{chunk-ECH6PKUQ.js → chunk-KQ6IDQIB.js} +2 -2
  99. package/dist/{chunk-IUE3Y34X.js → chunk-KTFSFCVN.js} +20 -9
  100. package/dist/{chunk-7E7I3WLS.js → chunk-KYKNBD4Y.js} +36 -34
  101. package/dist/chunk-L4N3DWNW.js +539 -0
  102. package/dist/{chunk-LCGCVYZ4.js → chunk-LQTKDAUO.js} +2 -2
  103. package/dist/{chunk-JIEGK6UF.js → chunk-LTR5QCLS.js} +51 -7
  104. package/dist/chunk-LUL5Z66S.js +221 -0
  105. package/dist/chunk-LVFANMOH.js +466 -0
  106. package/dist/{chunk-H7IXIC72.js → chunk-LY4N4TTL.js} +17 -3
  107. package/dist/{chunk-VKPAQYEB.js → chunk-LZBMXNLP.js} +5 -5
  108. package/dist/{chunk-UL3WSD3F.js → chunk-M4KFUXS7.js} +2 -2
  109. package/dist/{chunk-I7ZPNEJM.js → chunk-M6TAYK66.js} +8 -8
  110. package/dist/{chunk-NEKRRTYW.js → chunk-MC3JSVR6.js} +2 -2
  111. package/dist/{chunk-CFGTUFWB.js → chunk-MCJKEGHO.js} +2 -2
  112. package/dist/chunk-MDU3C27C.js +674 -0
  113. package/dist/{chunk-6XLNIQDB.js → chunk-MYI32N4R.js} +2 -2
  114. package/dist/{chunk-4UVU7BJ5.js → chunk-NC4KV7EL.js} +6 -6
  115. package/dist/{chunk-JEQ3XTHC.js → chunk-NF3BK5WR.js} +5 -5
  116. package/dist/chunk-NTK3WTHM.js +141 -0
  117. package/dist/{chunk-GYV6VZOC.js → chunk-NTTS3O53.js} +2 -2
  118. package/dist/{chunk-UPZU6GE4.js → chunk-NY6IWDVU.js} +6 -6
  119. package/dist/chunk-O2RQ7LCK.js +283 -0
  120. package/dist/{chunk-4BJ5BYCE.js → chunk-O3VV6IVK.js} +2 -2
  121. package/dist/{chunk-W6GROXXM.js → chunk-O5F25NIE.js} +2 -2
  122. package/dist/{chunk-WRBAGUNF.js → chunk-ODUTYZIU.js} +5 -5
  123. package/dist/{chunk-E3TPLWFX.js → chunk-ONRTXOZY.js} +4 -4
  124. package/dist/{chunk-B4OAX3SI.js → chunk-OQM5IVJY.js} +118 -225
  125. package/dist/{chunk-XRZT5WY5.js → chunk-P5SC4DLJ.js} +4 -4
  126. package/dist/{chunk-R6Q67RJH.js → chunk-PECBKCDK.js} +34 -6
  127. package/dist/{chunk-33YXPOE3.js → chunk-PPEZJWUG.js} +2 -2
  128. package/dist/{chunk-64I3JVYM.js → chunk-PWWSIB2A.js} +5 -5
  129. package/dist/{chunk-2STGEDFV.js → chunk-QEQISF75.js} +2 -2
  130. package/dist/{chunk-3DPEIQKN.js → chunk-QH3ZTUOA.js} +2 -2
  131. package/dist/{chunk-YAKGTXEV.js → chunk-QRFXEO6Y.js} +2 -2
  132. package/dist/{chunk-35MSIRKH.js → chunk-QUIJZSDW.js} +2 -2
  133. package/dist/{chunk-HHV2GANA.js → chunk-R2P2U3ZS.js} +2 -2
  134. package/dist/chunk-R6MAYTMS.js +108 -0
  135. package/dist/{chunk-MUW2BDDH.js → chunk-R6MICQYU.js} +6 -6
  136. package/dist/{chunk-JDAY6FIL.js → chunk-RLTT5GVY.js} +132 -17
  137. package/dist/{chunk-ZWPRK62N.js → chunk-RXIOCVBZ.js} +24 -6
  138. package/dist/{chunk-NIQJ66N4.js → chunk-S32UQ5GL.js} +62 -35
  139. package/dist/{chunk-AX2THNSA.js → chunk-SBZX6ARC.js} +12 -12
  140. package/dist/{chunk-TXOTCRLG.js → chunk-SD7SHNDW.js} +2 -2
  141. package/dist/{chunk-AF4YM7Z4.js → chunk-SDWNDICN.js} +10284 -3756
  142. package/dist/{chunk-UXCU4E3T.js → chunk-SE4ZKILO.js} +6 -6
  143. package/dist/chunk-SL2RDHKO.js +19 -0
  144. package/dist/{chunk-NUGM5KR6.js → chunk-SRCEQKQS.js} +2 -2
  145. package/dist/{chunk-KKOJXO6R.js → chunk-SRZOW5L2.js} +46 -14
  146. package/dist/{chunk-3M6DQK6S.js → chunk-T334FW2H.js} +7 -7
  147. package/dist/chunk-T52TPHYC.js +318 -0
  148. package/dist/{chunk-I7XBWTYH.js → chunk-T53XI6I7.js} +5 -5
  149. package/dist/{chunk-LDJG7DW3.js → chunk-T7FDXNRU.js} +13 -13
  150. package/dist/{chunk-XPWWI35G.js → chunk-TEG3RYVZ.js} +59 -41
  151. package/dist/{chunk-3I7MS7N2.js → chunk-TK2BMCBZ.js} +2 -2
  152. package/dist/{chunk-5OIVVPHF.js → chunk-TN5FW4XY.js} +13 -6
  153. package/dist/{chunk-PAJQJ7BS.js → chunk-TZ7MFRG4.js} +1263 -835
  154. package/dist/{chunk-GI7YYQ3F.js → chunk-U2JOLB7O.js} +415 -83
  155. package/dist/{chunk-LL4KHSZI.js → chunk-U2MSJ57E.js} +2 -2
  156. package/dist/{chunk-FTMGRKEF.js → chunk-U44YYLVV.js} +4 -4
  157. package/dist/{chunk-CE5AX47J.js → chunk-U7H5WRG5.js} +5 -5
  158. package/dist/{chunk-G76U63X4.js → chunk-U7VQ4NI4.js} +22 -22
  159. package/dist/{chunk-7ZYNNDKC.js → chunk-UFYNOQK4.js} +7 -7
  160. package/dist/{chunk-R346GLFC.js → chunk-UHW5V7HC.js} +2 -2
  161. package/dist/{chunk-QWGDJJYJ.js → chunk-UL36QJX6.js} +14 -14
  162. package/dist/{chunk-VIA6RFQZ.js → chunk-UQIVHSE4.js} +4 -4
  163. package/dist/{chunk-HEQY7ZFI.js → chunk-URBGEOH3.js} +5 -5
  164. package/dist/chunk-USZA7GWL.js +341 -0
  165. package/dist/{chunk-W6RRQCPQ.js → chunk-UTUNT5QL.js} +48 -579
  166. package/dist/{chunk-ZA4VCIGV.js → chunk-UUQ5G6EZ.js} +60 -41
  167. package/dist/{chunk-F5JHEYZM.js → chunk-UXAC2FX4.js} +73 -41
  168. package/dist/{chunk-VG7TBQIY.js → chunk-V552WL53.js} +68 -4
  169. package/dist/{chunk-BWH6N36D.js → chunk-VHKTOLEW.js} +272 -42
  170. package/dist/chunk-VLPTKCKT.js +396 -0
  171. package/dist/{chunk-336NSSKI.js → chunk-VNBICSS2.js} +2 -2
  172. package/dist/{chunk-VAVR4IJY.js → chunk-VQD7NH7Z.js} +3 -3
  173. package/dist/{chunk-LBMZMYH2.js → chunk-W2RJEH6Q.js} +3 -3
  174. package/dist/{chunk-7CR24IG7.js → chunk-WDV62RKY.js} +2 -2
  175. package/dist/{chunk-2UH2KFUP.js → chunk-WFKDPU7U.js} +4 -4
  176. package/dist/{chunk-ZDN3Y73Y.js → chunk-WJIMKGD6.js} +9 -51
  177. package/dist/{chunk-YQWYVTMC.js → chunk-WLMSOT73.js} +59 -12
  178. package/dist/{chunk-MXHC5QYU.js → chunk-WTQGRBHV.js} +5 -144
  179. package/dist/chunk-WXA2CFJO.js +23 -0
  180. package/dist/{chunk-QSNYB6ZV.js → chunk-XCUDZQLX.js} +3 -3
  181. package/dist/{chunk-2APPQIER.js → chunk-XXBQKW32.js} +11 -11
  182. package/dist/{chunk-2VIKGWFZ.js → chunk-YEJIG7LN.js} +332 -332
  183. package/dist/chunk-YGDMBK7O.js +567 -0
  184. package/dist/{chunk-4WR7VSYB.js → chunk-YYB3MC65.js} +23 -9
  185. package/dist/{chunk-2IR2NMPA.js → chunk-ZIDFQJRB.js} +2 -2
  186. package/dist/{chunk-54CBCGIR.js → chunk-ZMZQEBKI.js} +136 -81
  187. package/dist/{chunk-6EJMN2Y3.js → chunk-ZTNFYMIO.js} +2 -2
  188. package/dist/{chunk-WEPFGWHJ.js → chunk-ZZFWWYLX.js} +2 -2
  189. package/dist/cli/index.js +45 -44
  190. package/dist/clio-5I2IBFYL.js +26 -0
  191. package/dist/{code-nav-MDZNQS33.js → code-nav-YXIAEZVS.js} +48 -32
  192. package/dist/codewiki/build-worker.js +76 -29
  193. package/dist/{compile-cache-OQAVB7Y5.js → compile-cache-WJEPUZEJ.js} +4 -4
  194. package/dist/{components-UCUQ4QXW.js → components-TNIKXCBH.js} +13 -14
  195. package/dist/{config-SVM5P5YI.js → config-Y2JDJ3JJ.js} +210 -119
  196. package/dist/configure-SML6UBZ5.js +55 -0
  197. package/dist/{context-2OHRKS42.js → context-P5YSEO55.js} +125 -115
  198. package/dist/{context-VNCR7KAG.js → context-QQ53HSGJ.js} +91 -62
  199. package/dist/{context-E3VC7RX5.js → context-S2EEC3EJ.js} +62 -31
  200. package/dist/context-clear-TMEQCOTH.js +183 -0
  201. package/dist/{context-index-HNG3MOME.js → context-index-HP2JFUWA.js} +13 -11
  202. package/dist/{context-map-COB37XXN.js → context-map-INTXD54D.js} +71 -21
  203. package/dist/{context-working-set-VDS25HXZ.js → context-working-set-CNLSQN5K.js} +31 -31
  204. package/dist/detail-5572VLBO.js +114 -0
  205. package/dist/{dispatch-runner-5AHT53RF.js → dispatch-runner-FRHD6P2O.js} +214 -126
  206. package/dist/{docs-PD3EXDKU.js → docs-BL7ROUFN.js} +5 -7
  207. package/dist/{doctor-WNNVO6FY.js → doctor-N3LCM2LG.js} +89 -66
  208. package/dist/{eval-7G7SGAYO.js → eval-BUU3ZOUZ.js} +493 -197
  209. package/dist/{eval-inventory-Y6QRFOH5.js → eval-inventory-QOYZERXJ.js} +7 -7
  210. package/dist/evidence-DTGEN456.js +224 -0
  211. package/dist/{evidence-VD6736FQ.js → evidence-SQ5DNFEN.js} +114 -195
  212. package/dist/{evolve-AL3NGVRL.js → evolve-IJNUFZDS.js} +107 -88
  213. package/dist/{extensions-MOVJ32NM.js → extensions-YVRHX6ZI.js} +16 -17
  214. package/dist/{fleet-QZHUMAGI.js → fleet-ZNNVSYFO.js} +147 -141
  215. package/dist/{fleet-commands-BAYT5FJZ.js → fleet-commands-5YE7NPJL.js} +27 -23
  216. package/dist/{fleet-decisions-IREVMRU4.js → fleet-decisions-3SBSCTCW.js} +16 -15
  217. package/dist/{fleet-graph-YCTT3HTI.js → fleet-graph-6HHPWF5T.js} +39 -38
  218. package/dist/{fleet-inspect-QVJTDAVB.js → fleet-inspect-JEYMGCGC.js} +107 -87
  219. package/dist/{fleet-new-RDVJLHHH.js → fleet-new-RCKGSRDV.js} +3 -3
  220. package/dist/{fleet-preflight-25QAFPK4.js → fleet-preflight-QRSHIIDE.js} +10 -10
  221. package/dist/{fleet-validate-5O57AAJ7.js → fleet-validate-4PM4GDDL.js} +46 -42
  222. package/dist/{fleet-verify-CPH2W2T6.js → fleet-verify-NJDTHTO3.js} +105 -85
  223. package/dist/fleet-view-UP2BWQQY.js +117 -0
  224. package/dist/{init-J477LKZH.js → init-S3GZQ5ZF.js} +123 -117
  225. package/dist/{install-NKNG7KD4.js → install-3RZDDP23.js} +5 -5
  226. package/dist/{interop-3FCM6XLG.js → interop-YOTGXFJM.js} +25 -26
  227. package/dist/inventory-K2OZ36YJ.js +117 -0
  228. package/dist/{library-QUQEIUG6.js → library-GJI6W6OK.js} +45 -45
  229. package/dist/{memory-SGGSEP65.js → memory-OQOXQGYD.js} +107 -90
  230. package/dist/{models-HEKUAXXK.js → models-3IK2Y5WE.js} +64 -65
  231. package/dist/{monitor-HKU57TYQ.js → monitor-FTJLTKCQ.js} +136 -101
  232. package/dist/{orchestrator-VDFAEFAI.js → orchestrator-N47O7SFD.js} +1442 -1671
  233. package/dist/{panes-DN2SSFOH.js → panes-7BTYH3XQ.js} +8 -8
  234. package/dist/{panes-TALGNPZT.js → panes-WPOMEMRH.js} +22 -23
  235. package/dist/{paths-NBMFAIEZ.js → paths-J3KN7UAO.js} +12 -13
  236. package/dist/preload-65U34NG6.js +115 -0
  237. package/dist/{registry-LG64LTF4.js → registry-DESGAXWK.js} +3 -3
  238. package/dist/{reset-EAJFFJVB.js → reset-MUVQDLNL.js} +20 -21
  239. package/dist/{resources-OVKSEFVE.js → resources-LM76COAO.js} +41 -40
  240. package/dist/{run-7DP7ZF2J.js → run-3VFZQ33N.js} +168 -166
  241. package/dist/{share-WML67FT3.js → share-4JUB4BL7.js} +43 -43
  242. package/dist/{skills-SG662R2K.js → skills-S36AAJHU.js} +47 -47
  243. package/dist/{skills-eval-VVZEUU46.js → skills-eval-G6T57L7M.js} +127 -104
  244. package/dist/{skills-inventory-I2E23GET.js → skills-inventory-WLM46PJH.js} +41 -40
  245. package/dist/slash-commands-GBARG3Y7.js +91 -0
  246. package/dist/{steer-2LQOMCPB.js → steer-S7D7IKPU.js} +7 -7
  247. package/dist/{support-CC2UJBJ6.js → support-5VAEC32W.js} +14 -14
  248. package/dist/{targets-4QC3HIEW.js → targets-N5REUETU.js} +147 -98
  249. package/dist/tasks-6BVY5YZF.js +36 -0
  250. package/dist/{terminal-lease-TUHIJ6Y2.js → terminal-lease-57UEOJKS.js} +12 -11
  251. package/dist/tools-6OCQ6SVB.js +28 -0
  252. package/dist/{trace-FXMXUZUF.js → trace-JHLXWUMN.js} +18 -17
  253. package/dist/{tree-sitter-HGKH6LG4.js → tree-sitter-AQUUOSYM.js} +6 -6
  254. package/dist/{tui-primitives-K5PASC3O.js → tui-primitives-RCY2HN7G.js} +3 -3
  255. package/dist/{uninstall-5PEVOE5B.js → uninstall-FXYMFFRT.js} +19 -20
  256. package/dist/{upgrade-M4WXY6KN.js → upgrade-4HD5HAIV.js} +49 -45
  257. package/dist/{usage-N7ZNVLEM.js → usage-4GWM2WWP.js} +143 -103
  258. package/dist/{verifiers-DJTP4XX6.js → verifiers-GSKWKWVG.js} +162 -28
  259. package/dist/verify-3AS3ULCY.js +30 -0
  260. package/dist/{version-KGEG7EPO.js → version-RFPKO6T7.js} +4 -4
  261. package/dist/{web-fetch-MPARV2K7.js → web-fetch-MQN4FH3X.js} +169 -18
  262. package/dist/wiki-generate-7BV7XWIY.js +614 -0
  263. package/dist/{with-panes-4GCGSL7J.js → with-panes-OFTNAR4Y.js} +34 -20
  264. package/dist/worker/entry.js +99 -85
  265. package/dist/{workspace-ZJ6BFM3Q.js → workspace-DZ7JADBG.js} +6 -6
  266. package/docs/README.md +10 -8
  267. package/docs/architecture/acp.md +27 -0
  268. package/docs/architecture/architecture.md +5 -5
  269. package/docs/architecture/artifact-versions.md +1 -1
  270. package/docs/architecture/context-engine.md +44 -59
  271. package/docs/architecture/context-working-set.md +7 -9
  272. package/docs/architecture/dispatch-architecture-rationale.md +1 -1
  273. package/docs/architecture/dispatch-typed-intent.md +1 -1
  274. package/docs/architecture/evidence-and-memory.md +11 -1
  275. package/docs/architecture/observability.md +7 -1
  276. package/docs/architecture/pi-boundary.md +37 -7
  277. package/docs/architecture/prompt-envelope-and-tools.md +22 -12
  278. package/docs/architecture/safety-model.md +10 -17
  279. package/docs/architecture/session-lifecycle.md +4 -4
  280. package/docs/architecture/tui-design.md +1 -1
  281. package/docs/architecture/worker-dispatch-mechanics.md +4 -0
  282. package/docs/guide/built-in-agents.md +8 -8
  283. package/docs/guide/commands-and-modes.md +66 -38
  284. package/docs/guide/configuration-and-targets.md +10 -3
  285. package/docs/guide/configuration-reference.md +23 -8
  286. package/docs/guide/environment-variables.md +8 -4
  287. package/docs/guide/fleet-dispatch.md +12 -0
  288. package/docs/guide/installation-and-lifecycle.md +35 -9
  289. package/docs/guide/proactive-memory.md +1 -1
  290. package/docs/guide/skills-marketplace.md +11 -3
  291. package/docs/guide/tool-usage.md +87 -5
  292. package/docs/history/config-knobs-audit.md +2 -2
  293. package/docs/process/development-pipeline.md +15 -10
  294. package/docs/process/documentation-guide.md +2 -2
  295. package/docs/process/eval-runner.md +15 -0
  296. package/docs/process/evals-internal.md +1 -1
  297. package/docs/process/git-commit-provenance.md +15 -0
  298. package/docs/process/release-cut-checklist.md +207 -0
  299. package/docs/process/scientific-validation.md +18 -17
  300. package/evals/README.md +4 -0
  301. package/evals/behavioral-corpus-grader.mjs +147 -14
  302. package/evals/behavioral-machinery-support.ts +1 -0
  303. package/evals/behavioral-machinery.yaml +1 -1
  304. package/evals/behavioral-model-negative-control.yaml +1 -0
  305. package/evals/behavioral-model.yaml +266 -1
  306. package/evals/fixtures/docs-retrieval.json +102 -0
  307. package/evals/fixtures/scalar-decision.json +17 -0
  308. package/evals/fixtures/scout-citation-pipeline.json +55 -0
  309. package/evals/fixtures/source-explanation.json +74 -0
  310. package/evals/fixtures/tool-arguments.json +18 -0
  311. package/evals/fixtures/tool-surface/read.txt +4 -0
  312. package/evals/fixtures/tool-surface/subdir/keep.txt +1 -0
  313. package/evals/no-edit-memory-grader.mjs +149 -0
  314. package/evals/scalar-decision-grader.py +41 -0
  315. package/evals/scalar-decision-machinery.ts +145 -0
  316. package/evals/source-explanation-grader.mjs +118 -0
  317. package/evals/tool-surface-grader.mjs +53 -0
  318. package/evals/tool-surface-model.yaml +274 -0
  319. package/package.json +14 -14
  320. package/skills/README.md +6 -6
  321. package/skills/coding/coding-standards/SKILL.md +14 -4
  322. package/skills/context/context-handoff/SKILL.md +3 -3
  323. package/skills/context/context-prime/SKILL.md +3 -3
  324. package/skills/planning/architecture/SKILL.md +5 -5
  325. package/skills/planning/backlog/SKILL.md +4 -4
  326. package/skills/planning/prd/SKILL.md +4 -3
  327. package/skills/planning/product-intent/SKILL.md +8 -8
  328. package/skills/planning/tech-spec/SKILL.md +4 -4
  329. package/skills/registry.yaml +33 -33
  330. package/skills/research/arxiv-literature/SKILL.md +3 -3
  331. package/skills/research/experiment-protocol/SKILL.md +3 -3
  332. package/skills/research/scientific-debugging/SKILL.md +3 -2
  333. package/skills/research/scientific-modernization/SKILL.md +3 -3
  334. package/skills/skill-marketplace.json +17 -17
  335. package/skills/workflow/cut-it/SKILL.md +3 -4
  336. package/skills/workflow/design-council/SKILL.md +5 -10
  337. package/skills/workflow/grill-me/SKILL.md +14 -15
  338. package/skills/workflow/workflow-distiller/SKILL.md +4 -4
  339. package/src/cli/args.ts +0 -8
  340. package/src/cli/bootstrap-generate.ts +6 -0
  341. package/src/cli/config-inspect.ts +24 -7
  342. package/src/cli/config-trust.ts +62 -0
  343. package/src/cli/config.ts +8 -0
  344. package/src/cli/configure.ts +2 -1
  345. package/src/cli/context-map.ts +75 -14
  346. package/src/cli/context.ts +46 -17
  347. package/src/cli/doctor-state-size.ts +1 -12
  348. package/src/cli/doctor-validation-contract.ts +28 -0
  349. package/src/cli/doctor.ts +5 -0
  350. package/src/cli/eval.ts +17 -3
  351. package/src/cli/evidence-detail.ts +1 -75
  352. package/src/cli/evidence-inventory.ts +1 -167
  353. package/src/cli/index.ts +2 -0
  354. package/src/cli/modes/print.ts +32 -4
  355. package/src/cli/run.ts +16 -16
  356. package/src/cli/skills-eval.ts +10 -8
  357. package/src/cli/steer-channel.ts +31 -18
  358. package/src/cli/targets.ts +84 -32
  359. package/src/cli/tasks.ts +93 -0
  360. package/src/cli/upgrade.ts +19 -11
  361. package/src/cli/usage.ts +30 -0
  362. package/src/cli/verifiers.ts +147 -1
  363. package/src/cli/wiki-generate.ts +240 -96
  364. package/src/core/bash-exec.ts +43 -15
  365. package/src/core/bus-events.ts +15 -0
  366. package/src/core/commit-attribution.ts +41 -1
  367. package/src/core/config.ts +33 -14
  368. package/src/core/defaults.ts +5 -4
  369. package/src/core/file-references.ts +11 -1
  370. package/src/core/git-commit-attribution.ts +46 -3
  371. package/src/core/incomplete-installation.ts +3 -1
  372. package/src/core/run-overrides.ts +0 -5
  373. package/src/core/settings-layers.ts +21 -5
  374. package/src/core/skill-activation.ts +3 -0
  375. package/src/core/termination.ts +26 -9
  376. package/src/core/tool-names.ts +5 -2
  377. package/src/core/untrusted-content.ts +16 -0
  378. package/src/core/workspace-trust.ts +179 -0
  379. package/src/domains/agents/builtins/architect.md +1 -1
  380. package/src/domains/agents/builtins/coder.md +5 -3
  381. package/src/domains/agents/builtins/context-bootstrap.md +3 -1
  382. package/src/domains/agents/builtins/documenter.md +8 -5
  383. package/src/domains/agents/builtins/git-master.md +1 -1
  384. package/src/domains/agents/builtins/provenance.md +7 -7
  385. package/src/domains/agents/builtins/researcher.md +1 -0
  386. package/src/domains/agents/builtins/scout.md +7 -1
  387. package/src/domains/agents/builtins/tester.md +1 -1
  388. package/src/domains/agents/builtins/verifier.md +2 -2
  389. package/src/domains/agents/builtins/wiki-writer.md +4 -3
  390. package/src/domains/agents/result-contract.ts +199 -26
  391. package/src/domains/context/bootstrap-prompt.ts +11 -9
  392. package/src/domains/context/bootstrap.ts +74 -39
  393. package/src/domains/context/clio-md.ts +88 -26
  394. package/src/domains/context/codewiki/build-operation.ts +121 -0
  395. package/src/domains/context/codewiki/build-worker-protocol.ts +37 -3
  396. package/src/domains/context/codewiki/build-worker.ts +3 -35
  397. package/src/domains/context/codewiki/coordinator.ts +36 -6
  398. package/src/domains/context/codewiki/indexer.ts +59 -19
  399. package/src/domains/context/contract.ts +6 -2
  400. package/src/domains/context/extension.ts +97 -11
  401. package/src/domains/context/fingerprint.ts +39 -34
  402. package/src/domains/context/index.ts +7 -1
  403. package/src/domains/context/prompt-context.ts +55 -14
  404. package/src/domains/context/refresh.ts +12 -57
  405. package/src/domains/context/wiki/assemble.ts +14 -10
  406. package/src/domains/context/wiki/evidence.ts +209 -0
  407. package/src/domains/context/wiki/frontmatter.ts +5 -2
  408. package/src/domains/context/wiki/generate.ts +207 -67
  409. package/src/domains/context/wiki/meta.ts +10 -2
  410. package/src/domains/context/wiki/plan-store.ts +70 -14
  411. package/src/domains/context/wiki/plan.ts +71 -14
  412. package/src/domains/context/wiki/prompts.ts +85 -1
  413. package/src/domains/context/wiki/source-content.ts +106 -0
  414. package/src/domains/context/wiki/staleness.ts +33 -22
  415. package/src/domains/context/working-set/contract.ts +8 -2
  416. package/src/domains/context/working-set/engine.ts +17 -4
  417. package/src/domains/context/working-set/fold.ts +15 -2
  418. package/src/domains/context/working-set/marker.ts +2 -1
  419. package/src/domains/context/working-set/project.ts +18 -7
  420. package/src/domains/context/working-set/recall.ts +82 -56
  421. package/src/domains/dispatch/active-route-planner.ts +10 -3
  422. package/src/domains/dispatch/admission-queue.ts +19 -7
  423. package/src/domains/dispatch/admission.ts +3 -3
  424. package/src/domains/dispatch/budget-envelope.ts +47 -82
  425. package/src/domains/dispatch/capacity-lease.ts +57 -19
  426. package/src/domains/dispatch/code-step.ts +11 -4
  427. package/src/domains/dispatch/contract.ts +41 -9
  428. package/src/domains/dispatch/event-pump.ts +28 -7
  429. package/src/domains/dispatch/execution-role.ts +49 -2
  430. package/src/domains/dispatch/execution-scheduler.ts +4 -0
  431. package/src/domains/dispatch/extension.ts +240 -132
  432. package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
  433. package/src/domains/dispatch/fleet-run.ts +21 -0
  434. package/src/domains/dispatch/gate-role-prompts.ts +4 -2
  435. package/src/domains/dispatch/host-verification.ts +114 -13
  436. package/src/domains/dispatch/intent.ts +28 -18
  437. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  438. package/src/domains/dispatch/parallel-writers.ts +34 -0
  439. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  440. package/src/domains/dispatch/reservation-store.ts +13 -37
  441. package/src/domains/dispatch/route-approval.ts +3 -3
  442. package/src/domains/dispatch/route-observer.ts +4 -2
  443. package/src/domains/dispatch/route-quality.ts +6 -1
  444. package/src/domains/dispatch/state.ts +15 -2
  445. package/src/domains/dispatch/types.ts +21 -5
  446. package/src/domains/dispatch/worker-spawn.ts +58 -21
  447. package/src/domains/dispatch/workspace-checkpoint.ts +57 -0
  448. package/src/domains/eval/compare/behavioral.ts +81 -14
  449. package/src/domains/eval/compare/compare.ts +15 -5
  450. package/src/domains/eval/compare/envelope.ts +12 -5
  451. package/src/domains/eval/metrics/context.ts +24 -1
  452. package/src/domains/eval/metrics/tracked.ts +4 -28
  453. package/src/domains/eval/reports/comparison.ts +9 -9
  454. package/src/domains/eval/runners/clio-run.ts +17 -10
  455. package/src/domains/eval/runners/context-index.ts +2 -7
  456. package/src/domains/eval/runners/context-init.ts +3 -6
  457. package/src/domains/eval/runners/external-command.ts +29 -11
  458. package/src/domains/eval/schema/suite.ts +2 -0
  459. package/src/domains/eval/schema/validate.ts +1 -0
  460. package/src/domains/eval/suites/run.ts +189 -13
  461. package/src/domains/eval/verifiers/integrity.ts +39 -0
  462. package/src/domains/eval/verifiers/patch.ts +58 -2
  463. package/src/domains/eval/workspaces/temp-copy.ts +3 -0
  464. package/src/domains/evidence/build.ts +106 -17
  465. package/src/domains/evidence/detail.ts +69 -0
  466. package/src/domains/evidence/eval.ts +13 -1
  467. package/src/domains/evidence/finish-contract-map.ts +5 -1
  468. package/src/domains/evidence/inventory.ts +167 -0
  469. package/src/domains/evidence/store.ts +16 -0
  470. package/src/domains/evidence/types.ts +12 -0
  471. package/src/domains/extensions/resources.ts +7 -0
  472. package/src/domains/interop/registry.ts +2 -2
  473. package/src/domains/middleware/hooks-io.ts +45 -26
  474. package/src/domains/middleware/hooks.ts +6 -0
  475. package/src/domains/middleware/injection-screen.ts +23 -0
  476. package/src/domains/middleware/marketplace-offer.ts +20 -1
  477. package/src/domains/middleware/rules.ts +5 -1
  478. package/src/domains/middleware/runtime.ts +7 -3
  479. package/src/domains/middleware/stalled-turn.ts +18 -3
  480. package/src/domains/middleware/task-board-reminder.ts +4 -2
  481. package/src/domains/middleware/task-nudge.ts +4 -1
  482. package/src/domains/mux/contract.ts +34 -1
  483. package/src/domains/mux/detect.ts +3 -6
  484. package/src/domains/mux/dock-controller.ts +8 -1
  485. package/src/domains/mux/index.ts +1 -0
  486. package/src/domains/mux/socket-client.ts +13 -3
  487. package/src/domains/observability/accountability.ts +15 -1
  488. package/src/domains/observability/contract.ts +54 -9
  489. package/src/domains/observability/evidence-index.ts +10 -0
  490. package/src/domains/observability/extension.ts +9 -5
  491. package/src/domains/observability/projection.ts +423 -53
  492. package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
  493. package/src/domains/prompts/compiler.ts +10 -2
  494. package/src/domains/prompts/contract.ts +7 -4
  495. package/src/domains/prompts/extension.ts +28 -64
  496. package/src/domains/prompts/fragments/identity/clio.md +23 -0
  497. package/src/domains/prompts/fragments/operating/contract.md +12 -0
  498. package/src/domains/prompts/fragments/operating/delegation.md +5 -0
  499. package/src/domains/prompts/fragments/wiki/page.md +36 -15
  500. package/src/domains/prompts/fragments/wiki/plan.md +4 -4
  501. package/src/domains/prompts/preload-prefix.ts +31 -0
  502. package/src/domains/prompts/preload.ts +135 -61
  503. package/src/domains/providers/auth/backend-file.ts +15 -11
  504. package/src/domains/providers/auth/storage.ts +3 -5
  505. package/src/domains/providers/catalog.ts +18 -3
  506. package/src/domains/providers/model-discovery.ts +1 -4
  507. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +16 -14
  508. package/src/domains/providers/runtime-resolution.ts +11 -9
  509. package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
  510. package/src/domains/providers/runtimes/cloud/openrouter.ts +2 -0
  511. package/src/domains/providers/support.ts +1 -1
  512. package/src/domains/providers/types/runtime-descriptor.ts +1 -1
  513. package/src/domains/resources/skills/promotion.ts +8 -1
  514. package/src/domains/safety/action-classifier.ts +16 -0
  515. package/src/domains/safety/autonomy.ts +10 -1
  516. package/src/domains/safety/contract.ts +5 -1
  517. package/src/domains/safety/default-path-policy.ts +13 -0
  518. package/src/domains/safety/extension.ts +11 -2
  519. package/src/domains/safety/finish-contract-registration.ts +29 -14
  520. package/src/domains/safety/finish-contract.ts +252 -40
  521. package/src/domains/safety/index.ts +20 -1
  522. package/src/domains/safety/policy-engine.ts +211 -34
  523. package/src/domains/safety/project-policy.ts +7 -2
  524. package/src/domains/safety/rigor.ts +53 -39
  525. package/src/domains/safety/validation-contract.ts +388 -0
  526. package/src/domains/safety/workspace-trust.ts +43 -0
  527. package/src/domains/session/archive-readers.ts +10 -1
  528. package/src/domains/session/compaction/compact.ts +384 -21
  529. package/src/domains/session/compaction/cut-point.ts +42 -5
  530. package/src/domains/session/compaction/tokens.ts +9 -1
  531. package/src/domains/session/decision-board.ts +137 -28
  532. package/src/domains/session/entries.ts +213 -11
  533. package/src/domains/session/extension.ts +4 -4
  534. package/src/domains/session/handoff.ts +2 -1
  535. package/src/domains/session/manager.ts +2 -3
  536. package/src/domains/session/prompt-manifest.ts +47 -8
  537. package/src/domains/session/task-board.ts +32 -1
  538. package/src/domains/session/tree/fork.ts +1 -2
  539. package/src/domains/session/tree/navigator.ts +1 -1
  540. package/src/domains/user-tasks/acceptance.ts +56 -0
  541. package/src/domains/user-tasks/active-acceptance.ts +40 -0
  542. package/src/domains/user-tasks/handoff.ts +16 -0
  543. package/src/domains/user-tasks/store.ts +34 -3
  544. package/src/engine/acp/adapter.ts +60 -10
  545. package/src/engine/acp/server.ts +22 -4
  546. package/src/engine/acp/transport.ts +55 -9
  547. package/src/engine/acp/types.ts +9 -0
  548. package/src/engine/antigravity/subprocess-runtime.ts +20 -4
  549. package/src/engine/api-registry.ts +19 -2
  550. package/src/engine/apis/ollama-native.ts +15 -0
  551. package/src/engine/apis/openai-completions.ts +13 -6
  552. package/src/engine/apis/output-budget.ts +26 -10
  553. package/src/engine/claude/sdk-runtime.ts +4 -3
  554. package/src/engine/claude/subprocess-runtime.ts +107 -60
  555. package/src/engine/env-api-keys.ts +2 -1
  556. package/src/engine/external-subprocess.ts +26 -7
  557. package/src/engine/loop-guard.ts +19 -2
  558. package/src/engine/provider-diagnostics.ts +129 -0
  559. package/src/engine/provider-payload.ts +3 -1
  560. package/src/engine/worker-runtime.ts +13 -2
  561. package/src/engine/worker-tools.ts +5 -1
  562. package/src/entry/extension-reload.ts +1 -0
  563. package/src/entry/orchestrator.ts +64 -17
  564. package/src/interactive/chat-loop-messages.ts +12 -4
  565. package/src/interactive/chat-loop.ts +115 -45
  566. package/src/interactive/chat-renderer.ts +60 -0
  567. package/src/interactive/context-recall-command.ts +2 -1
  568. package/src/interactive/dispatch-board.ts +58 -714
  569. package/src/interactive/editor-submit.ts +13 -0
  570. package/src/interactive/fleet-run-preview.ts +2 -1
  571. package/src/interactive/interactive-application.ts +11 -4
  572. package/src/interactive/interactive-event-projection.ts +7 -1
  573. package/src/interactive/interactive-presentation.ts +63 -12
  574. package/src/interactive/interactive-slash-runtime.ts +4 -1
  575. package/src/interactive/layout.ts +2 -1
  576. package/src/interactive/model-session-replay.ts +2 -2
  577. package/src/interactive/oracle.ts +5 -2
  578. package/src/interactive/overlay-frame.ts +1 -0
  579. package/src/interactive/overlay-general-openers.ts +3 -1
  580. package/src/interactive/overlay-session-lifecycle.ts +6 -0
  581. package/src/interactive/overlays/ask-user.ts +1 -0
  582. package/src/interactive/overlays/fleet-run-approval.ts +3 -2
  583. package/src/interactive/overlays/message-picker.ts +3 -3
  584. package/src/interactive/overlays/settings.ts +2 -2
  585. package/src/interactive/overlays/tree-selector.ts +2 -2
  586. package/src/interactive/renderers/branch-summary.ts +1 -1
  587. package/src/interactive/renderers/tool-execution.ts +17 -1
  588. package/src/interactive/renderers/worker-entry.ts +25 -10
  589. package/src/interactive/slash-autocomplete.ts +4 -6
  590. package/src/interactive/slash-commands.ts +31 -43
  591. package/src/interactive/slash-spec.ts +28 -0
  592. package/src/interactive/turn-context.ts +221 -53
  593. package/src/interactive/turn-middleware.ts +3 -1
  594. package/src/interactive/turn-persistence.ts +3 -0
  595. package/src/interactive/turn-runtime.ts +11 -2
  596. package/src/interactive/turn-state.ts +10 -9
  597. package/src/interactive/view/artifacts.ts +2 -0
  598. package/src/interactive/watch-pane.ts +18 -4
  599. package/src/interactive/worker-stream.ts +14 -10
  600. package/src/tools/agent-tools.ts +6 -3
  601. package/src/tools/bash.ts +1 -1
  602. package/src/tools/bootstrap.ts +4 -0
  603. package/src/tools/builtin-tool-catalog.ts +40 -2
  604. package/src/tools/codewiki/code-nav.ts +4 -10
  605. package/src/tools/compete-judge-task.ts +71 -0
  606. package/src/tools/compete-worktrees.ts +41 -1
  607. package/src/tools/context/index.ts +32 -7
  608. package/src/tools/context/surface.ts +15 -4
  609. package/src/tools/core-bootstrap.ts +16 -0
  610. package/src/tools/decide.ts +136 -0
  611. package/src/tools/dispatch-admission.ts +33 -1
  612. package/src/tools/dispatch-arguments.ts +38 -1
  613. package/src/tools/dispatch-plan.ts +12 -9
  614. package/src/tools/dispatch-runner.ts +63 -33
  615. package/src/tools/dispatch-schema.ts +30 -23
  616. package/src/tools/dispatch-scout-admission.ts +10 -44
  617. package/src/tools/dispatch-scout.ts +2 -3
  618. package/src/tools/dispatch-types.ts +6 -0
  619. package/src/tools/evidence.ts +96 -0
  620. package/src/tools/find.ts +13 -4
  621. package/src/tools/grep.ts +13 -1
  622. package/src/tools/limitation.ts +76 -0
  623. package/src/tools/ls.ts +7 -1
  624. package/src/tools/monitor.ts +26 -11
  625. package/src/tools/network-policy.ts +11 -24
  626. package/src/tools/observation.ts +39 -2
  627. package/src/tools/policy.ts +9 -0
  628. package/src/tools/presentation.ts +3 -0
  629. package/src/tools/read.ts +112 -15
  630. package/src/tools/registry.ts +55 -18
  631. package/src/tools/result-shaping.ts +127 -7
  632. package/src/tools/task-worktree.ts +13 -3
  633. package/src/tools/tasks.ts +40 -5
  634. package/src/tools/verify/authoring.ts +170 -83
  635. package/src/tools/verify/catalog.ts +122 -5
  636. package/src/tools/verify/frontend.ts +67 -30
  637. package/src/tools/verify/index.ts +2 -1
  638. package/src/tools/verify/numeric.ts +303 -0
  639. package/src/tools/verify/perf.ts +143 -0
  640. package/src/tools/verify/scripts.ts +229 -2
  641. package/src/tools/web-fetch-network.ts +179 -0
  642. package/src/tools/web-fetch-surface.ts +2 -1
  643. package/src/tools/web-fetch.ts +15 -13
  644. package/src/tools/worker-evidence.ts +27 -0
  645. package/src/worker/spec-contract.ts +12 -8
  646. package/dist/builtins-IA7V7FUC.js +0 -22
  647. package/dist/chunk-2WZ546HR.js +0 -792
  648. package/dist/chunk-5PSMVOLM.js +0 -56
  649. package/dist/chunk-7DICMOS6.js +0 -313
  650. package/dist/chunk-BEPZRGGU.js +0 -1560
  651. package/dist/chunk-JVCV3ICN.js +0 -47
  652. package/dist/chunk-KK4JZPBQ.js +0 -3982
  653. package/dist/chunk-MNJGS2IN.js +0 -33
  654. package/dist/chunk-NDINPTJ4.js +0 -641
  655. package/dist/chunk-O5CVSAG5.js +0 -122
  656. package/dist/chunk-OQE5J4C6.js +0 -73
  657. package/dist/chunk-RVG5JXAL.js +0 -41
  658. package/dist/chunk-T56WDKA5.js +0 -183
  659. package/dist/chunk-UUVG37B4.js +0 -244
  660. package/dist/chunk-VPKWYKEY.js +0 -169
  661. package/dist/chunk-Y3CBHOR6.js +0 -228
  662. package/dist/clio-CMMK4KRR.js +0 -25
  663. package/dist/configure-LE3IK2TJ.js +0 -56
  664. package/dist/context-clear-BW4O37TG.js +0 -176
  665. package/dist/fleet-view-SWBR3VGQ.js +0 -97
  666. package/dist/preload-P6DGH2PZ.js +0 -13
  667. package/dist/slash-commands-S7MBJDQK.js +0 -83
  668. package/dist/tools-TFGJICCU.js +0 -29
  669. package/dist/verify-RWE4PPEK.js +0 -27
  670. package/dist/wiki-generate-C7IQOXSP.js +0 -469
@@ -3,16 +3,16 @@ import {
3
3
  gitCommitAttributionEnabled,
4
4
  reportCommitAttributionDiagnostic,
5
5
  withManagedGitCommitAttributionEnvironment
6
- } from "./chunk-JIEGK6UF.js";
6
+ } from "./chunk-LTR5QCLS.js";
7
7
  import {
8
8
  clampTimerDelayMs
9
- } from "./chunk-EBY63B7G.js";
9
+ } from "./chunk-6EXUUOSN.js";
10
10
  import {
11
11
  AI_AGENT_NAME
12
- } from "./chunk-6EJMN2Y3.js";
12
+ } from "./chunk-ZTNFYMIO.js";
13
13
  import {
14
14
  init_esm_shims
15
- } from "./chunk-3R73A4XB.js";
15
+ } from "./chunk-ECBHH7LU.js";
16
16
 
17
17
  // src/core/safe-exec.ts
18
18
  init_esm_shims();
@@ -193,4 +193,4 @@ export {
193
193
  runCommandVector,
194
194
  combineSafeOutput
195
195
  };
196
- //# sourceMappingURL=chunk-JSC3U7TI.js.map
196
+ //# sourceMappingURL=chunk-GJ24ODAX.js.map
@@ -4,24 +4,27 @@ import {
4
4
  normalizeWriteBoundary,
5
5
  normalizeWriteBoundaryEntry,
6
6
  writeBoundaryCovers
7
- } from "./chunk-2VIKGWFZ.js";
7
+ } from "./chunk-YEJIG7LN.js";
8
8
  import {
9
9
  asDirectoryPathBoundary,
10
10
  pathBoundaryEntryCovers
11
- } from "./chunk-HHV2GANA.js";
11
+ } from "./chunk-R2P2U3ZS.js";
12
12
  import {
13
13
  atomicWrite
14
- } from "./chunk-HAXOFFRH.js";
14
+ } from "./chunk-FQOOGXBH.js";
15
+ import {
16
+ buildSafeToolEnv
17
+ } from "./chunk-GJ24ODAX.js";
15
18
  import {
16
19
  clioStateDir
17
- } from "./chunk-BYP5D4HI.js";
20
+ } from "./chunk-CTTI7G3T.js";
18
21
  import {
19
22
  init_esm_shims
20
- } from "./chunk-3R73A4XB.js";
23
+ } from "./chunk-ECBHH7LU.js";
21
24
 
22
25
  // src/tools/compete-worktrees.ts
23
26
  init_esm_shims();
24
- import { execFileSync as execFileSync2 } from "node:child_process";
27
+ import { execFileSync as execFileSync3 } from "node:child_process";
25
28
  import { randomBytes as randomBytes2 } from "node:crypto";
26
29
  import {
27
30
  existsSync as existsSync2,
@@ -32,26 +35,74 @@ import {
32
35
  realpathSync as realpathSync2,
33
36
  renameSync,
34
37
  rmdirSync,
35
- rmSync as rmSync2,
38
+ rmSync as rmSync3,
36
39
  unlinkSync,
37
40
  writeFileSync as writeFileSync2
38
41
  } from "node:fs";
39
42
  import { hostname } from "node:os";
40
- import { join as join2, relative as relative2, resolve as resolve2 } from "node:path";
43
+ import { join as join3, relative as relative2, resolve as resolve2 } from "node:path";
41
44
 
42
- // src/tools/task-worktree.ts
45
+ // src/domains/dispatch/workspace-checkpoint.ts
43
46
  init_esm_shims();
44
47
  import { execFileSync } from "node:child_process";
45
- import { createHash, randomBytes } from "node:crypto";
46
- import { existsSync, mkdirSync, readFileSync, realpathSync, rmSync, writeFileSync } from "node:fs";
47
- import { isAbsolute, join, relative, resolve, sep } from "node:path";
48
+ import { createHash } from "node:crypto";
49
+ import { mkdtempSync, rmSync } from "node:fs";
50
+ import { tmpdir } from "node:os";
51
+ import { join } from "node:path";
52
+ function workspaceCheckpointRef(kind, identity) {
53
+ return `refs/clio-coder/${kind}/${createHash("sha256").update(identity).digest("hex")}`;
54
+ }
55
+ function captureWorkspaceCheckpoint(cwd, ref, message) {
56
+ if (!/^refs\/clio-coder\/(loop|compete)\/[a-f0-9]{64}$/.test(ref)) throw new Error("invalid workspace checkpoint ref");
57
+ const directory = mkdtempSync(join(tmpdir(), "clio-checkpoint-index-"));
58
+ const env = buildSafeToolEnv({
59
+ GIT_INDEX_FILE: join(directory, "index"),
60
+ GIT_AUTHOR_NAME: "Clio checkpoint",
61
+ GIT_AUTHOR_EMAIL: "checkpoint@clio.invalid",
62
+ GIT_COMMITTER_NAME: "Clio checkpoint",
63
+ GIT_COMMITTER_EMAIL: "checkpoint@clio.invalid"
64
+ });
65
+ const config = ["-c", "core.hooksPath=/dev/null", "-c", "core.fsmonitor=false"];
66
+ const git4 = (args) => execFileSync("git", ["-C", cwd, ...config, ...args], {
67
+ env,
68
+ encoding: "utf8",
69
+ stdio: ["ignore", "pipe", "pipe"],
70
+ timeout: 3e4,
71
+ maxBuffer: 1024 * 1024
72
+ }).trim();
73
+ try {
74
+ try {
75
+ git4(["rev-parse", "--verify", ref]);
76
+ return ref;
77
+ } catch {
78
+ }
79
+ const head = git4(["rev-parse", "HEAD"]);
80
+ const filterKeys = git4(["config", "--null", "--name-only", "--list"]).split("\0").filter((key) => /^filter\..*\.(?:clean|process|required)$/.test(key));
81
+ for (const key of filterKeys) config.push("-c", `${key}=${key.endsWith(".required") ? "false" : ""}`);
82
+ git4(["read-tree", head]);
83
+ git4(["add", "-A", "--", "."]);
84
+ const tree = git4(["write-tree"]);
85
+ const commit = git4(["commit-tree", tree, "-p", head, "-m", message]);
86
+ git4(["update-ref", ref, commit, ""]);
87
+ return ref;
88
+ } finally {
89
+ rmSync(directory, { recursive: true, force: true });
90
+ }
91
+ }
92
+
93
+ // src/tools/task-worktree.ts
94
+ init_esm_shims();
95
+ import { execFileSync as execFileSync2 } from "node:child_process";
96
+ import { createHash as createHash2, randomBytes } from "node:crypto";
97
+ import { existsSync, mkdirSync, readFileSync, realpathSync, rmSync as rmSync2, writeFileSync } from "node:fs";
98
+ import { isAbsolute, join as join2, relative, resolve, sep } from "node:path";
48
99
  var SAFE_RUN_ID = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
49
100
  var OWNER_FILE_SUFFIX = ".task-owner.json";
50
101
  var TASK_WORKTREE_KIND = "clio-coder-task-worktree";
51
102
  var LEGACY_TASK_WORKTREE_KIND = "clio-task-worktree";
52
103
  var COMMIT_IDENTITY = "clio-coder-task";
53
104
  function gitBytes(root, args) {
54
- return execFileSync("git", ["-C", root, ...args], {
105
+ return execFileSync2("git", ["-C", root, ...args], {
55
106
  stdio: ["ignore", "pipe", "pipe"],
56
107
  timeout: 3e4
57
108
  });
@@ -75,9 +126,12 @@ function isCanonicalWorktreePathInside(parent, candidate) {
75
126
  const rel = relative(canonicalParent, canonicalCandidate);
76
127
  return rel.length > 0 && rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel);
77
128
  }
78
- function commitWorktreePath(path, identity, message) {
79
- git(path, ["add", "-A"]);
80
- if (git(path, ["status", "--porcelain"]).length === 0) return false;
129
+ function commitWorktreePath(path, identity, message, excludedPaths = []) {
130
+ if (excludedPaths.length > 0) {
131
+ git(path, ["reset", "-q", "HEAD", "--", ...excludedPaths.map((entry) => `:(top,literal)${entry}`)]);
132
+ }
133
+ git(path, ["add", "-A", "--", ".", ...excludedPaths.map((entry) => `:(top,exclude,literal)${entry}`)]);
134
+ if (git(path, ["diff", "--cached", "--name-only", "-z"]).length === 0) return false;
81
135
  git(path, [
82
136
  "-c",
83
137
  `user.name=${identity}`,
@@ -155,8 +209,8 @@ function createTaskWorktree(root, runId, base) {
155
209
  validateRunId(runId);
156
210
  const canonical = realpathSync(root);
157
211
  const resolvedBase = base ?? git(canonical, ["rev-parse", "HEAD"]);
158
- const parent = join(canonical, ".clio-coder", "worktrees");
159
- const path = join(parent, runId);
212
+ const parent = join2(canonical, ".clio-coder", "worktrees");
213
+ const path = join2(parent, runId);
160
214
  const branch = `clio-coder/task/${runId}`;
161
215
  mkdirSync(parent, { recursive: true });
162
216
  if (!isCanonicalWorktreePathInside(parent, path))
@@ -172,8 +226,8 @@ function createTaskWorktree(root, runId, base) {
172
226
  return { root: canonical, runId, path, branch, base: resolvedBase, ownerToken };
173
227
  }
174
228
  function assertOwnership(worktree) {
175
- const expected = join(worktree.root, ".clio-coder", "worktrees", worktree.runId);
176
- if (resolve(worktree.path) !== resolve(expected) || !isCanonicalWorktreePathInside(join(worktree.root, ".clio-coder", "worktrees"), worktree.path)) {
229
+ const expected = join2(worktree.root, ".clio-coder", "worktrees", worktree.runId);
230
+ if (resolve(worktree.path) !== resolve(expected) || !isCanonicalWorktreePathInside(join2(worktree.root, ".clio-coder", "worktrees"), worktree.path)) {
177
231
  throw new Error(`task worktree ${worktree.runId} has an invalid ownership path`);
178
232
  }
179
233
  const ownerPath = `${worktree.path}${OWNER_FILE_SUFFIX}`;
@@ -196,7 +250,7 @@ function commitTaskWorktree(worktree, message = `Clio Coder task ${worktree.runI
196
250
  }
197
251
  function taskWorktreeDiffHash(worktree) {
198
252
  const bytes = gitBytes(worktree.root, ["diff", `${worktree.base}..${worktree.branch}`]);
199
- return createHash("sha256").update(bytes).digest("hex");
253
+ return createHash2("sha256").update(bytes).digest("hex");
200
254
  }
201
255
  function protectedPathsChangedByTaskBranch(worktree, protectedPaths) {
202
256
  return protectedPathsChangedByWorktreeBranch(worktree.root, worktree.branch, protectedPaths);
@@ -223,11 +277,11 @@ function cleanupTaskWorktree(worktree, deleteBranch) {
223
277
  try {
224
278
  git(worktree.root, ["worktree", "remove", "--force", worktree.path]);
225
279
  } catch {
226
- if (existsSync(worktree.path)) rmSync(worktree.path, { recursive: true, force: true });
280
+ if (existsSync(worktree.path)) rmSync2(worktree.path, { recursive: true, force: true });
227
281
  git(worktree.root, ["worktree", "prune"]);
228
282
  }
229
283
  if (deleteBranch) git(worktree.root, ["branch", "-D", worktree.branch]);
230
- rmSync(`${worktree.path}${OWNER_FILE_SUFFIX}`, { force: true });
284
+ rmSync2(`${worktree.path}${OWNER_FILE_SUFFIX}`, { force: true });
231
285
  }
232
286
 
233
287
  // src/tools/compete-worktrees.ts
@@ -240,7 +294,7 @@ var SAFE_GROUP = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
240
294
  var PROCESS_EXIT_GRACE_MS = 750;
241
295
  var PROCESS_POLL_MS = 25;
242
296
  function git2(root, args) {
243
- return execFileSync2("git", ["-C", root, ...args], {
297
+ return execFileSync3("git", ["-C", root, ...args], {
244
298
  encoding: "utf8",
245
299
  stdio: ["ignore", "pipe", "pipe"],
246
300
  timeout: 3e4
@@ -270,7 +324,7 @@ function processSnapshot(pid) {
270
324
  } catch {
271
325
  }
272
326
  try {
273
- const started = execFileSync2("ps", ["-o", "lstart=", "-p", String(pid)], {
327
+ const started = execFileSync3("ps", ["-o", "lstart=", "-p", String(pid)], {
274
328
  encoding: "utf8",
275
329
  stdio: ["ignore", "pipe", "ignore"],
276
330
  timeout: 2e3
@@ -346,14 +400,14 @@ function canonicalRoot(root) {
346
400
  return realpathSync2(root);
347
401
  }
348
402
  function competeParent(root) {
349
- return join2(root, ...COMPETE_PARENT_SEGMENTS);
403
+ return join3(root, ...COMPETE_PARENT_SEGMENTS);
350
404
  }
351
405
  function groupDirectory(root, group) {
352
406
  validateGroup(group);
353
- return join2(competeParent(root), group);
407
+ return join3(competeParent(root), group);
354
408
  }
355
409
  function manifestPath(directory) {
356
- return join2(directory, COMPETE_MANIFEST_FILE);
410
+ return join3(directory, COMPETE_MANIFEST_FILE);
357
411
  }
358
412
  function isPlainDirectory(path) {
359
413
  try {
@@ -430,7 +484,7 @@ function replaceManifest(ownership, manifest) {
430
484
  `, { encoding: "utf8", flag: "wx" });
431
485
  renameSync(temporary, destination);
432
486
  } finally {
433
- if (existsSync2(temporary)) rmSync2(temporary, { force: true });
487
+ if (existsSync2(temporary)) rmSync3(temporary, { force: true });
434
488
  }
435
489
  }
436
490
  function isGitRepository(root) {
@@ -552,7 +606,7 @@ function markCompeteGroupWinnerPreserved(ownership, winnerIndex) {
552
606
  function createCandidateWorktree(ownership, index, baseline) {
553
607
  assertOwnership2(ownership);
554
608
  const branch = competeBranch(ownership.group, index);
555
- const path = join2(ownership.directory, `candidate-${index}`);
609
+ const path = join3(ownership.directory, `candidate-${index}`);
556
610
  if (!isCanonicalPathInside(ownership.directory, path)) {
557
611
  throw new Error(`candidate ${index} path escapes compete group ${ownership.group}`);
558
612
  }
@@ -562,7 +616,7 @@ function createCandidateWorktree(ownership, index, baseline) {
562
616
  async function createCandidateWorktreeMapped(ownership, index, baseline, mux) {
563
617
  assertOwnership2(ownership);
564
618
  const branch = competeBranch(ownership.group, index);
565
- const path = join2(ownership.directory, `candidate-${index}`);
619
+ const path = join3(ownership.directory, `candidate-${index}`);
566
620
  if (!isCanonicalPathInside(ownership.directory, path)) {
567
621
  throw new Error(`candidate ${index} path escapes compete group ${ownership.group}`);
568
622
  }
@@ -593,7 +647,10 @@ async function createCandidateWorktreeMapped(ownership, index, baseline, mux) {
593
647
  return { ...native, provenance: { backend: "native", path, branch, fallback } };
594
648
  }
595
649
  function commitCandidateWork(worktree, message) {
596
- return commitWorktreePath(worktree.path, COMPETE_COMMIT_IDENTITY, message);
650
+ return commitWorktreePath(worktree.path, COMPETE_COMMIT_IDENTITY, message, [
651
+ ".clio-coder/codewiki.json",
652
+ ".clio-coder/state.json"
653
+ ]);
597
654
  }
598
655
  function candidateDiffStat(root, branch) {
599
656
  return worktreeBranchDiffStat(root, branch);
@@ -619,16 +676,33 @@ function removeRegisteredWorktree(root, path) {
619
676
  try {
620
677
  git2(root, ["worktree", "remove", "--force", path]);
621
678
  } catch {
622
- if (existsSync2(path)) rmSync2(path, { recursive: true, force: true });
679
+ if (existsSync2(path)) rmSync3(path, { recursive: true, force: true });
623
680
  git2(root, ["worktree", "prune"]);
624
681
  }
625
682
  }
683
+ function preserveCandidateWorktree(ownership, path, index) {
684
+ if (resolve2(path) !== resolve2(join3(ownership.directory, `candidate-${index}`)) || !isCanonicalPathInside(ownership.directory, path))
685
+ throw new Error("candidate checkpoint path is outside its proven group");
686
+ const ref = workspaceCheckpointRef("compete", `${ownership.group}:${index}`);
687
+ if (existsSync2(path)) captureWorkspaceCheckpoint(path, ref, `Compete ${ownership.group} candidate ${index}`);
688
+ else {
689
+ const branch = competeBranchForCandidate(ownership.root, ownership.group, index);
690
+ if (exactGroupBranches(ownership.root, ownership.group).includes(branch)) {
691
+ try {
692
+ git2(ownership.root, ["rev-parse", "--verify", ref]);
693
+ } catch {
694
+ git2(ownership.root, ["update-ref", ref, branch, ""]);
695
+ }
696
+ }
697
+ }
698
+ }
626
699
  function removeCandidateWorktree(ownership, worktree, deleteBranch) {
627
700
  assertOwnership2(ownership);
628
- const expectedPath = join2(ownership.directory, `candidate-${worktree.index}`);
701
+ const expectedPath = join3(ownership.directory, `candidate-${worktree.index}`);
629
702
  if (resolve2(worktree.path) !== resolve2(expectedPath) || !competeBranchMatches(worktree.branch, ownership.group, worktree.index) || !isCanonicalPathInside(ownership.directory, worktree.path)) {
630
703
  throw new Error(`candidate ${worktree.index} does not belong to compete group ${ownership.group}`);
631
704
  }
705
+ preserveCandidateWorktree(ownership, worktree.path, worktree.index);
632
706
  removeRegisteredWorktree(ownership.root, worktree.path);
633
707
  if (deleteBranch && exactGroupBranches(ownership.root, ownership.group).includes(worktree.branch)) {
634
708
  git2(ownership.root, ["branch", "-D", worktree.branch]);
@@ -642,6 +716,8 @@ function removeCandidateWorktree(ownership, worktree, deleteBranch) {
642
716
  }
643
717
  }
644
718
  async function removeCandidateWorktreeMapped(ownership, worktree, deleteBranch, mux) {
719
+ assertOwnership2(ownership);
720
+ preserveCandidateWorktree(ownership, worktree.path, worktree.index);
645
721
  const workspaceId = worktree.provenance?.backend === "herdr" ? worktree.provenance.workspaceId : void 0;
646
722
  if (workspaceId && mux?.available()) {
647
723
  await mux.worktreeRemove(workspaceId, { force: true }).catch(() => false);
@@ -655,6 +731,8 @@ function cleanupWorktreeGroup(ownership) {
655
731
  assertOwnership2(ownership);
656
732
  for (const path of registeredWorktreePaths(ownership.root)) {
657
733
  if (!isCanonicalPathInside(ownership.directory, path)) continue;
734
+ const index = Number.parseInt(path.split(/[\\/]/).at(-1)?.replace("candidate-", "") ?? "", 10);
735
+ if (Number.isInteger(index)) preserveCandidateWorktree(ownership, path, index);
658
736
  removeRegisteredWorktree(ownership.root, path);
659
737
  }
660
738
  git2(ownership.root, ["worktree", "prune"]);
@@ -667,6 +745,13 @@ function cleanupWorktreeGroup(ownership) {
667
745
  );
668
746
  }
669
747
  for (const branch of exactGroupBranches(ownership.root, ownership.group)) {
748
+ const index = Number.parseInt(branch.split("/").at(-1) ?? "", 10);
749
+ const ref = workspaceCheckpointRef("compete", `${ownership.group}:${index}`);
750
+ try {
751
+ git2(ownership.root, ["rev-parse", "--verify", ref]);
752
+ } catch {
753
+ git2(ownership.root, ["update-ref", ref, branch, ""]);
754
+ }
670
755
  git2(ownership.root, ["branch", "-D", branch]);
671
756
  }
672
757
  const branchesRemain = exactGroupBranches(ownership.root, ownership.group);
@@ -676,7 +761,7 @@ function cleanupWorktreeGroup(ownership) {
676
761
  assertOwnership2(ownership);
677
762
  for (const entry of readdirSync(ownership.directory)) {
678
763
  if (entry === COMPETE_MANIFEST_FILE) continue;
679
- rmSync2(join2(ownership.directory, entry), { recursive: true, force: true });
764
+ rmSync3(join3(ownership.directory, entry), { recursive: true, force: true });
680
765
  }
681
766
  assertOwnership2(ownership);
682
767
  const unexpected = readdirSync(ownership.directory).filter((entry) => entry !== COMPETE_MANIFEST_FILE);
@@ -719,7 +804,7 @@ function settleRecoveredCompeteDecision(root, group, winnerIndex) {
719
804
  }
720
805
  const branches = exactGroupBranches(ownership.root, group);
721
806
  const winnerBranch = competeBranchForCandidate(ownership.root, group, winnerIndex);
722
- const winnerPath = join2(ownership.directory, `candidate-${winnerIndex}`);
807
+ const winnerPath = join3(ownership.directory, `candidate-${winnerIndex}`);
723
808
  if (!branches.includes(winnerBranch) || !registeredWorktreePaths(ownership.root).some((path) => resolve2(path) === resolve2(winnerPath))) {
724
809
  throw new Error(`recovered winner ${winnerBranch} has no intact candidate worktree`);
725
810
  }
@@ -727,7 +812,7 @@ function settleRecoveredCompeteDecision(root, group, winnerIndex) {
727
812
  for (const branch of branches) {
728
813
  const index = Number.parseInt(branch.split("/").at(-1) ?? "", 10);
729
814
  if (index === winnerIndex) continue;
730
- removeCandidateWorktree(ownership, { index, branch, path: join2(ownership.directory, `candidate-${index}`) }, true);
815
+ removeCandidateWorktree(ownership, { index, branch, path: join3(ownership.directory, `candidate-${index}`) }, true);
731
816
  }
732
817
  return ownership;
733
818
  }
@@ -792,15 +877,15 @@ function recoverCleanupReadyCompeteGroups(root, options = {}) {
792
877
 
793
878
  // src/domains/dispatch/write-boundary.ts
794
879
  init_esm_shims();
795
- import { execFileSync as execFileSync3 } from "node:child_process";
796
- import { createHash as createHash2 } from "node:crypto";
797
- import { existsSync as existsSync3, lstatSync as lstatSync2, mkdirSync as mkdirSync3, readlinkSync, realpathSync as realpathSync3, rmSync as rmSync3, writeFileSync as writeFileSync3 } from "node:fs";
798
- import { dirname, isAbsolute as isAbsolute2, join as join3, relative as relative3, resolve as resolve3, sep as sep2 } from "node:path";
880
+ import { execFileSync as execFileSync4 } from "node:child_process";
881
+ import { createHash as createHash3 } from "node:crypto";
882
+ import { existsSync as existsSync3, lstatSync as lstatSync2, mkdirSync as mkdirSync3, readlinkSync, realpathSync as realpathSync3, rmSync as rmSync4, writeFileSync as writeFileSync3 } from "node:fs";
883
+ import { dirname, isAbsolute as isAbsolute2, join as join4, relative as relative3, resolve as resolve3, sep as sep2 } from "node:path";
799
884
  var WRITE_BOUNDARY_VIOLATION_REASON = "writes_boundary_violation";
800
885
  var ABSENT = "absent";
801
886
  var GIT_TIMEOUT_MS = 3e4;
802
887
  function git3(root, args, input) {
803
- return execFileSync3("git", ["-C", root, ...args], {
888
+ return execFileSync4("git", ["-C", root, ...args], {
804
889
  encoding: "utf8",
805
890
  stdio: ["pipe", "pipe", "pipe"],
806
891
  timeout: GIT_TIMEOUT_MS,
@@ -809,7 +894,7 @@ function git3(root, args, input) {
809
894
  });
810
895
  }
811
896
  function gitBytes2(root, args) {
812
- return execFileSync3("git", ["-C", root, ...args], {
897
+ return execFileSync4("git", ["-C", root, ...args], {
813
898
  stdio: ["ignore", "pipe", "pipe"],
814
899
  timeout: GIT_TIMEOUT_MS,
815
900
  maxBuffer: 256 * 1024 * 1024
@@ -824,7 +909,7 @@ function contentTokens(root, paths) {
824
909
  const tokens = /* @__PURE__ */ new Map();
825
910
  const hashable = [];
826
911
  for (const path of paths) {
827
- const full = join3(root, path);
912
+ const full = join4(root, path);
828
913
  let stat;
829
914
  try {
830
915
  stat = lstatSync2(full);
@@ -851,7 +936,7 @@ function contentTokens(root, paths) {
851
936
  hashable.push(path);
852
937
  }
853
938
  if (hashable.length > 0) {
854
- const hashes = git3(root, ["hash-object", "--stdin-paths"], `${hashable.map((path) => join3(root, path)).join("\n")}
939
+ const hashes = git3(root, ["hash-object", "--stdin-paths"], `${hashable.map((path) => join4(root, path)).join("\n")}
855
940
  `).split("\n").filter((line) => line.length > 0);
856
941
  hashable.forEach((path, index) => {
857
942
  tokens.set(path, `blob:${hashes[index] ?? "unknown"}`);
@@ -917,7 +1002,7 @@ function canonicalVerdict(verdict) {
917
1002
  return JSON.stringify(verdict);
918
1003
  }
919
1004
  function rollbackPath(snapshot, change) {
920
- const full = join3(snapshot.root, change.path);
1005
+ const full = join4(snapshot.root, change.path);
921
1006
  if (snapshot.entries.has(change.path)) {
922
1007
  return {
923
1008
  unrecoverable: {
@@ -928,7 +1013,7 @@ function rollbackPath(snapshot, change) {
928
1013
  }
929
1014
  if (change.before === ABSENT) {
930
1015
  try {
931
- rmSync3(full, { force: true, recursive: false });
1016
+ rmSync4(full, { force: true, recursive: false });
932
1017
  } catch (error) {
933
1018
  return {
934
1019
  unrecoverable: { path: change.path, reason: `could not remove: ${error.message}` }
@@ -1024,13 +1109,13 @@ function enforceWriteBoundary(input) {
1024
1109
  reason: violations.length === 0 ? null : WRITE_BOUNDARY_VIOLATION_REASON,
1025
1110
  detail: detail.length === 0 ? null : detail.join(" ")
1026
1111
  };
1027
- return { ...body, digest: createHash2("sha256").update(canonicalVerdict(body), "utf8").digest("hex") };
1112
+ return { ...body, digest: createHash3("sha256").update(canonicalVerdict(body), "utf8").digest("hex") };
1028
1113
  }
1029
1114
  function assertWriteBoundaryInsideRoot(root, allow) {
1030
1115
  const realRoot = realpathSync3(resolve3(root));
1031
1116
  for (const entry of allow) {
1032
1117
  const relativeEntry = entry.endsWith("/") ? entry.slice(0, -1) : entry;
1033
- let probe = join3(realRoot, relativeEntry);
1118
+ let probe = join4(realRoot, relativeEntry);
1034
1119
  while (probe !== realRoot && !existsSync3(probe)) probe = dirname(probe);
1035
1120
  const resolved = realpathSync3(probe);
1036
1121
  if (resolved !== realRoot && !pathBoundaryEntryCovers(asDirectoryPathBoundary(realRoot), resolved)) {
@@ -1071,10 +1156,10 @@ function repoRelative(root, path) {
1071
1156
  return rel.split(sep2).join("/");
1072
1157
  }
1073
1158
  function writeBoundaryDir(rootId) {
1074
- return join3(clioStateDir(), "write-boundaries", rootId);
1159
+ return join4(clioStateDir(), "write-boundaries", rootId);
1075
1160
  }
1076
1161
  function writeBoundaryVerdictPath(rootId, window) {
1077
- return join3(writeBoundaryDir(rootId), `${window.replace(/[^A-Za-z0-9._-]/gu, "_")}.json`);
1162
+ return join4(writeBoundaryDir(rootId), `${window.replace(/[^A-Za-z0-9._-]/gu, "_")}.json`);
1078
1163
  }
1079
1164
  function writeWriteBoundaryVerdict(rootId, verdict) {
1080
1165
  const path = writeBoundaryVerdictPath(rootId, verdict.window);
@@ -1176,6 +1261,8 @@ export {
1176
1261
  createTaskWorktree,
1177
1262
  applyTaskWorktree,
1178
1263
  cleanupTaskWorktree,
1264
+ workspaceCheckpointRef,
1265
+ captureWorkspaceCheckpoint,
1179
1266
  isGitRepository,
1180
1267
  claimCompeteGroup,
1181
1268
  loadCompeteGroup,
@@ -1199,4 +1286,4 @@ export {
1199
1286
  preflightWriteBoundaries,
1200
1287
  createWriteBoundaryEnforcer
1201
1288
  };
1202
- //# sourceMappingURL=chunk-B4VEBZKF.js.map
1289
+ //# sourceMappingURL=chunk-GNQRWTMY.js.map
@@ -4,17 +4,17 @@ import {
4
4
  settingsPath,
5
5
  validateSettings,
6
6
  withSettingsLock
7
- } from "./chunk-GHS5EBTQ.js";
7
+ } from "./chunk-FKIOX6DS.js";
8
8
  import {
9
9
  require_dist
10
- } from "./chunk-APJ265NV.js";
10
+ } from "./chunk-B5GGDIHT.js";
11
11
  import {
12
12
  safeResourceWrite
13
- } from "./chunk-WEPFGWHJ.js";
13
+ } from "./chunk-ZZFWWYLX.js";
14
14
  import {
15
15
  __toESM,
16
16
  init_esm_shims
17
- } from "./chunk-3R73A4XB.js";
17
+ } from "./chunk-ECBHH7LU.js";
18
18
 
19
19
  // src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts
20
20
  init_esm_shims();
@@ -305,4 +305,4 @@ export {
305
305
  migrateSettingsV1Document,
306
306
  settings_v2_default
307
307
  };
308
- //# sourceMappingURL=chunk-5ICU3EUH.js.map
308
+ //# sourceMappingURL=chunk-GVYWZNRK.js.map
@@ -0,0 +1,59 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ VERIFICATION_SCRIPT_FAMILY_HINT
4
+ } from "./chunk-M4KFUXS7.js";
5
+ import {
6
+ typebox_exports
7
+ } from "./chunk-GH5ZR6JP.js";
8
+ import {
9
+ ToolNames
10
+ } from "./chunk-EHOSNVVM.js";
11
+ import {
12
+ StringEnum
13
+ } from "./chunk-5CMARGPF.js";
14
+ import {
15
+ init_esm_shims
16
+ } from "./chunk-ECBHH7LU.js";
17
+
18
+ // src/tools/verify/surface.ts
19
+ init_esm_shims();
20
+ var BROWSER_MODES = ["auto", "required", "off"];
21
+ function prepareVerifyArguments(args) {
22
+ if (!args || typeof args !== "object" || Array.isArray(args)) return args;
23
+ const next = { ...args };
24
+ if (typeof next.args === "string") {
25
+ try {
26
+ const parsed = JSON.parse(next.args);
27
+ if (Array.isArray(parsed)) next.args = parsed;
28
+ } catch {
29
+ }
30
+ }
31
+ return next;
32
+ }
33
+ var verifyToolSurface = {
34
+ name: ToolNames.Verify,
35
+ description: 'Run a declared verification check: no arguments lists package scripts and .clio-coder/verifiers.yaml entries, check=<id> runs one, and check="frontend" with path validates an HTML/CSS/JS artifact.',
36
+ parameters: typebox_exports.Object({
37
+ check: typebox_exports.Optional(
38
+ typebox_exports.String({
39
+ description: `Check id, package script (${VERIFICATION_SCRIPT_FAMILY_HINT}), or "frontend"; omit to list.`
40
+ })
41
+ ),
42
+ path: typebox_exports.Optional(typebox_exports.String({ description: "frontend: artifact file under the workspace root." })),
43
+ args: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String(), { description: "Package scripts only: arguments after --." })),
44
+ browser: typebox_exports.Optional(StringEnum(BROWSER_MODES, { description: "frontend: headless browser mode (default auto)." })),
45
+ cwd: typebox_exports.Optional(typebox_exports.String({ description: "Package scripts only: working directory." })),
46
+ timeout_ms: typebox_exports.Optional(typebox_exports.Number({ description: "Package and frontend checks only: timeout in ms." })),
47
+ max_output_bytes: typebox_exports.Optional(typebox_exports.Number({ description: "Output cap in bytes (default 600000)." }))
48
+ }),
49
+ baseActionClass: "execute",
50
+ executionMode: "sequential",
51
+ prepareArguments: prepareVerifyArguments
52
+ };
53
+
54
+ export {
55
+ BROWSER_MODES,
56
+ prepareVerifyArguments,
57
+ verifyToolSurface
58
+ };
59
+ //# sourceMappingURL=chunk-GXCCHKN6.js.map