@iowarp/clio-coder 0.4.4 → 0.4.6

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 (598) hide show
  1. package/CHANGELOG.md +116 -2
  2. package/CONTRIBUTING.md +39 -24
  3. package/NOTICE +16 -0
  4. package/README.md +343 -403
  5. package/dist/{acp-WNAYYF4F.js → acp-UVEVWSDL.js} +25 -24
  6. package/dist/{agents-3OKXHLOI.js → agents-VWY37DTK.js} +78 -77
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-VKNNMGPU.js → auth-PCV2XQDV.js} +38 -38
  9. package/dist/builtins-PD652MTK.js +22 -0
  10. package/dist/{chunk-TQAHXW6Y.js → chunk-22PQ4TX4.js} +4 -4
  11. package/dist/{chunk-NRO2BJRH.js → chunk-24T2YZ7A.js} +10686 -4464
  12. package/dist/{chunk-Y55JBDO5.js → chunk-2AKYFREM.js} +38 -23
  13. package/dist/{chunk-NEDJ26B5.js → chunk-2GPGAE5W.js} +6 -51
  14. package/dist/{chunk-IKCO5N3L.js → chunk-2QPI3TR3.js} +3 -3
  15. package/dist/{chunk-HRQMFLJP.js → chunk-32KJPXAM.js} +6 -6
  16. package/dist/{chunk-65DEGPJ6.js → chunk-3A3CUMKA.js} +6 -4
  17. package/dist/{chunk-UXCU4E3T.js → chunk-3BJGMT2D.js} +35 -14
  18. package/dist/{chunk-5ICU3EUH.js → chunk-3HQVBIKD.js} +5 -5
  19. package/dist/{chunk-GWZNEVM2.js → chunk-3JLFK5MW.js} +9 -9
  20. package/dist/{chunk-XXYSBZIQ.js → chunk-3O2ZAUGQ.js} +4 -4
  21. package/dist/{chunk-GX5WYQO4.js → chunk-3QKXHCGS.js} +8 -8
  22. package/dist/{chunk-JCI2ROMZ.js → chunk-3T4DXWP6.js} +7 -7
  23. package/dist/{chunk-DR52UMZW.js → chunk-3UW3KU4A.js} +2 -2
  24. package/dist/{chunk-OEJSLEPW.js → chunk-3WBALRQH.js} +337 -337
  25. package/dist/{chunk-ELWDPP3Y.js → chunk-4DU2TVI4.js} +8 -8
  26. package/dist/{chunk-JSD46VO2.js → chunk-4U4TKZFR.js} +43 -36
  27. package/dist/{chunk-FEAXX7B6.js → chunk-4VMV6OS6.js} +4 -4
  28. package/dist/{chunk-2ZSONWVL.js → chunk-536HXRFE.js} +13 -13
  29. package/dist/{chunk-W54I7H25.js → chunk-5A6XR3RJ.js} +44 -19
  30. package/dist/{chunk-YPC6ZR5L.js → chunk-5CMARGPF.js} +119 -5
  31. package/dist/{chunk-KXDSS5WJ.js → chunk-5CY4Q6QI.js} +4 -4
  32. package/dist/{chunk-D4CJV46V.js → chunk-5GZICIYO.js} +3 -3
  33. package/dist/{chunk-4IUZQIJ3.js → chunk-5PHVPU4G.js} +2 -2
  34. package/dist/{chunk-Q4WO54TA.js → chunk-5QRX7SLS.js} +11 -11
  35. package/dist/{chunk-3ODX73FK.js → chunk-5VTJP36Q.js} +4 -4
  36. package/dist/chunk-5ZSZEYJK.js +119 -0
  37. package/dist/{chunk-EBY63B7G.js → chunk-6EXUUOSN.js} +2 -2
  38. package/dist/{chunk-DT3LWJOB.js → chunk-6HAO6X5B.js} +24 -6
  39. package/dist/{chunk-SVNXH4L2.js → chunk-6ICZKDUC.js} +2 -2
  40. package/dist/{chunk-K6T2ZAMZ.js → chunk-6OII3LOK.js} +6 -6
  41. package/dist/{chunk-36CT5VVL.js → chunk-6RYDAVQT.js} +138 -89
  42. package/dist/{chunk-I7XBWTYH.js → chunk-6VRRJT7L.js} +5 -5
  43. package/dist/{chunk-DQOVN6KV.js → chunk-6YA46L5A.js} +4 -4
  44. package/dist/{chunk-NZMNUPZZ.js → chunk-77CZRFTE.js} +3 -3
  45. package/dist/{chunk-NAI6ZFCY.js → chunk-7JSSKXG2.js} +122 -11
  46. package/dist/{chunk-2VTFPG5O.js → chunk-7WLRF2U5.js} +2 -2
  47. package/dist/chunk-7WUZEB2M.js +165 -0
  48. package/dist/{chunk-3UUXNFEX.js → chunk-7YJWEF2L.js} +61 -34
  49. package/dist/{chunk-3EBYEESD.js → chunk-A46ILRS2.js} +5 -5
  50. package/dist/{chunk-IXIY2H4R.js → chunk-ACCKVSHU.js} +5 -5
  51. package/dist/{chunk-UOIZ7DA4.js → chunk-AP7HDJOP.js} +2 -2
  52. package/dist/{chunk-JEIYHLOR.js → chunk-B3MOMLJ4.js} +12 -12
  53. package/dist/{chunk-APJ265NV.js → chunk-B5GGDIHT.js} +146 -146
  54. package/dist/{chunk-PMZVFWSR.js → chunk-B5ZTR6KZ.js} +2 -2
  55. package/dist/{chunk-I5FWO7L5.js → chunk-B6UM3OZC.js} +2 -2
  56. package/dist/{chunk-2CU2H6KE.js → chunk-BBV5TKE6.js} +5 -5
  57. package/dist/{chunk-23L32XTI.js → chunk-BLTEAUCB.js} +68 -39
  58. package/dist/{chunk-4O6MANBS.js → chunk-BS4GAMUB.js} +14 -10
  59. package/dist/{chunk-XULDXHTN.js → chunk-BT7HGDOX.js} +105 -53
  60. package/dist/{chunk-S66XZJOF.js → chunk-C27U2TYG.js} +2 -2
  61. package/dist/{chunk-QZWQA4DE.js → chunk-CBSKDFWL.js} +3 -3
  62. package/dist/{chunk-2LEAKD4C.js → chunk-CKK25WN3.js} +3 -3
  63. package/dist/{chunk-BYP5D4HI.js → chunk-CTTI7G3T.js} +2 -2
  64. package/dist/{chunk-XAKHZX5N.js → chunk-CVDAFGPW.js} +4 -4
  65. package/dist/{chunk-RKKLTLYB.js → chunk-CXQ37WJH.js} +3 -3
  66. package/dist/{chunk-GTUD2WMY.js → chunk-DBREN25X.js} +44 -9
  67. package/dist/{chunk-NDDGJUXD.js → chunk-DNCE23JJ.js} +2 -2
  68. package/dist/{chunk-HVDIIIQW.js → chunk-DNHVRBH4.js} +3 -3
  69. package/dist/{chunk-D7E7WCDF.js → chunk-DVNAPPXU.js} +2 -2
  70. package/dist/{chunk-6UINWWS6.js → chunk-DXLUVUD4.js} +16 -16
  71. package/dist/{chunk-YXLYO42X.js → chunk-DXVMLM3Z.js} +3 -2
  72. package/dist/{chunk-5MEZN6CB.js → chunk-DZK63TZJ.js} +6 -6
  73. package/dist/{chunk-IWHMRKLL.js → chunk-E3LEPLQ2.js} +2 -2
  74. package/dist/{chunk-JT2RFCC5.js → chunk-E7RF4KBO.js} +5 -5
  75. package/dist/{chunk-3R73A4XB.js → chunk-ECBHH7LU.js} +3 -3
  76. package/dist/chunk-ECOMVOHP.js +139 -0
  77. package/dist/chunk-EFSEIZE6.js +56 -0
  78. package/dist/{chunk-4NSRCOYP.js → chunk-EHOSNVVM.js} +3 -2
  79. package/dist/chunk-EM2WNQS2.js +93 -0
  80. package/dist/{chunk-57XXR6DR.js → chunk-F5Z7EWMN.js} +967 -246
  81. package/dist/{chunk-HAXOFFRH.js → chunk-FQOOGXBH.js} +7 -7
  82. package/dist/{chunk-ZTJUVLTU.js → chunk-FXFVDPWY.js} +2 -2
  83. package/dist/{chunk-XPLRXC72.js → chunk-GD55RTIW.js} +3 -3
  84. package/dist/{chunk-5B2AEOW5.js → chunk-GH5ZR6JP.js} +472 -472
  85. package/dist/{chunk-TOIVGRUX.js → chunk-GJ24ODAX.js} +5 -5
  86. package/dist/{chunk-EXLD33WO.js → chunk-GLYBJ4RQ.js} +24 -9
  87. package/dist/{chunk-26QSH3EJ.js → chunk-HHVJNVUJ.js} +5 -5
  88. package/dist/{chunk-F4EKGO4N.js → chunk-HL26ADLH.js} +4 -2
  89. package/dist/{chunk-FFUPXJC4.js → chunk-HPTJF6DG.js} +32 -56
  90. package/dist/{chunk-ID64D7PE.js → chunk-HXHFDHB6.js} +24 -24
  91. package/dist/{chunk-CUSRQKPU.js → chunk-HZ2T2YED.js} +299 -89
  92. package/dist/{chunk-YD5GIKET.js → chunk-HZFBVU5X.js} +49 -580
  93. package/dist/{chunk-6QOTUPRG.js → chunk-I2K2NCZQ.js} +65 -17
  94. package/dist/{chunk-SZAA6XDG.js → chunk-IFDRAD6F.js} +2 -2
  95. package/dist/{chunk-I2DWJ4GM.js → chunk-IGLVVNEG.js} +54 -42
  96. package/dist/{chunk-6Q3CYFD3.js → chunk-IKRWLEDA.js} +186 -35
  97. package/dist/{chunk-2JH2WHGE.js → chunk-J2FYEQ5L.js} +4 -4
  98. package/dist/{chunk-BMS5RKQY.js → chunk-JABWPKFY.js} +3 -3
  99. package/dist/{chunk-2DSOYNFC.js → chunk-JMPL7NUB.js} +7 -7
  100. package/dist/{chunk-QDC3K2U3.js → chunk-K2BLQC5E.js} +3 -3
  101. package/dist/{chunk-AUPNRN7C.js → chunk-K2HL3GBL.js} +4 -4
  102. package/dist/{chunk-54X7T7DK.js → chunk-KAFMW7WM.js} +72 -81
  103. package/dist/{chunk-OZNBF4L3.js → chunk-KECNXMDE.js} +2 -2
  104. package/dist/{chunk-BTK3SSSK.js → chunk-KMF54VH3.js} +2 -2
  105. package/dist/chunk-KPRLAMP4.js +32 -0
  106. package/dist/{chunk-ECH6PKUQ.js → chunk-KQ6IDQIB.js} +2 -2
  107. package/dist/{chunk-3UNOLWNZ.js → chunk-KTFSFCVN.js} +20 -9
  108. package/dist/{chunk-IRXAATOX.js → chunk-L4N3DWNW.js} +3 -3
  109. package/dist/{chunk-JQLNNIKT.js → chunk-LIN2K3EL.js} +6 -6
  110. package/dist/{chunk-2STGEDFV.js → chunk-LK2FN5JY.js} +2 -2
  111. package/dist/{chunk-LCGCVYZ4.js → chunk-LQTKDAUO.js} +2 -2
  112. package/dist/{chunk-U6TMQNSI.js → chunk-LTR5QCLS.js} +4 -4
  113. package/dist/chunk-LUL5Z66S.js +221 -0
  114. package/dist/{chunk-ELZVTCGV.js → chunk-LVFANMOH.js} +151 -327
  115. package/dist/{chunk-H7IXIC72.js → chunk-LY4N4TTL.js} +17 -3
  116. package/dist/{chunk-VKPAQYEB.js → chunk-LZBMXNLP.js} +5 -5
  117. package/dist/{chunk-UL3WSD3F.js → chunk-M4KFUXS7.js} +2 -2
  118. package/dist/{chunk-NXYCB2VD.js → chunk-M6TAYK66.js} +6 -6
  119. package/dist/{chunk-CFGTUFWB.js → chunk-MCJKEGHO.js} +2 -2
  120. package/dist/{chunk-6XLNIQDB.js → chunk-MYI32N4R.js} +2 -2
  121. package/dist/{chunk-4WR7VSYB.js → chunk-N2OKBREN.js} +23 -9
  122. package/dist/{chunk-3GY4F45V.js → chunk-NC4KV7EL.js} +6 -6
  123. package/dist/{chunk-LLXSDWXS.js → chunk-NF3BK5WR.js} +5 -5
  124. package/dist/{chunk-4M6Z5QVF.js → chunk-NNWJYUNO.js} +11 -11
  125. package/dist/chunk-NTK3WTHM.js +141 -0
  126. package/dist/{chunk-GYV6VZOC.js → chunk-NTTS3O53.js} +2 -2
  127. package/dist/{chunk-4BJ5BYCE.js → chunk-O3VV6IVK.js} +2 -2
  128. package/dist/{chunk-W6GROXXM.js → chunk-O5F25NIE.js} +2 -2
  129. package/dist/{chunk-NXIMQY5W.js → chunk-ODUTYZIU.js} +5 -5
  130. package/dist/{chunk-KFV5L5SK.js → chunk-OQM5IVJY.js} +118 -232
  131. package/dist/{chunk-75W7L2E2.js → chunk-P5JMBPDJ.js} +1052 -171
  132. package/dist/{chunk-XRZT5WY5.js → chunk-P5SC4DLJ.js} +4 -4
  133. package/dist/{chunk-S6PYF2XF.js → chunk-P6M7RKMI.js} +4 -4
  134. package/dist/{chunk-R6Q67RJH.js → chunk-PECBKCDK.js} +34 -6
  135. package/dist/{chunk-33YXPOE3.js → chunk-PPEZJWUG.js} +2 -2
  136. package/dist/{chunk-RXTN6AKH.js → chunk-PWWSIB2A.js} +5 -5
  137. package/dist/{chunk-DXKJURES.js → chunk-PZN2LQY6.js} +14 -11
  138. package/dist/{chunk-N56KALIC.js → chunk-Q7NNUHQV.js} +62 -35
  139. package/dist/{chunk-RQCKCSRL.js → chunk-QCOV5DFY.js} +22 -22
  140. package/dist/{chunk-3DPEIQKN.js → chunk-QH3ZTUOA.js} +2 -2
  141. package/dist/{chunk-NEKRRTYW.js → chunk-QJMRYTCX.js} +8 -8
  142. package/dist/{chunk-YNFKXPEC.js → chunk-QNWRHOMF.js} +35 -66
  143. package/dist/{chunk-YAKGTXEV.js → chunk-QRFXEO6Y.js} +2 -2
  144. package/dist/{chunk-35MSIRKH.js → chunk-QUIJZSDW.js} +2 -2
  145. package/dist/{chunk-72YIHOZQ.js → chunk-QXFBABFJ.js} +10 -10
  146. package/dist/chunk-R2CT5YDO.js +66 -0
  147. package/dist/{chunk-HHV2GANA.js → chunk-R2P2U3ZS.js} +2 -2
  148. package/dist/{chunk-IGLP3ODT.js → chunk-RGZNQ5CT.js} +15 -15
  149. package/dist/chunk-SD7SHNDW.js +15 -0
  150. package/dist/chunk-SL2RDHKO.js +19 -0
  151. package/dist/{chunk-NUGM5KR6.js → chunk-SRCEQKQS.js} +2 -2
  152. package/dist/{chunk-OMQNJVKW.js → chunk-SRZOW5L2.js} +43 -13
  153. package/dist/{chunk-UEPWCCTY.js → chunk-SXQKNKRA.js} +12 -12
  154. package/dist/{chunk-3M6DQK6S.js → chunk-T334FW2H.js} +7 -7
  155. package/dist/{chunk-V76WTFTW.js → chunk-T52TPHYC.js} +6 -6
  156. package/dist/{chunk-5636DCO5.js → chunk-TJFDL26W.js} +59 -12
  157. package/dist/{chunk-3I7MS7N2.js → chunk-TK2BMCBZ.js} +2 -2
  158. package/dist/{chunk-5OIVVPHF.js → chunk-TN5FW4XY.js} +13 -6
  159. package/dist/{chunk-LL4KHSZI.js → chunk-U2MSJ57E.js} +2 -2
  160. package/dist/{chunk-FTMGRKEF.js → chunk-U44YYLVV.js} +4 -4
  161. package/dist/{chunk-YECAMM3D.js → chunk-U7H5WRG5.js} +5 -5
  162. package/dist/{chunk-5TUB6SLS.js → chunk-UFYNOQK4.js} +7 -7
  163. package/dist/{chunk-R346GLFC.js → chunk-UHW5V7HC.js} +2 -2
  164. package/dist/{chunk-VIA6RFQZ.js → chunk-UQIVHSE4.js} +4 -4
  165. package/dist/{chunk-RAY4OVGZ.js → chunk-URBGEOH3.js} +5 -5
  166. package/dist/chunk-USZA7GWL.js +341 -0
  167. package/dist/{chunk-ZA4VCIGV.js → chunk-UUQ5G6EZ.js} +60 -41
  168. package/dist/{chunk-VG7TBQIY.js → chunk-V552WL53.js} +68 -4
  169. package/dist/{chunk-7UGL4MB5.js → chunk-VAHLPXPY.js} +10 -10
  170. package/dist/{chunk-25QBEXRS.js → chunk-VANN3GDP.js} +7 -26
  171. package/dist/{chunk-BWH6N36D.js → chunk-VHKTOLEW.js} +272 -42
  172. package/dist/{chunk-QUFRYSWI.js → chunk-VHMX7SXF.js} +129 -48
  173. package/dist/{chunk-336NSSKI.js → chunk-VNBICSS2.js} +2 -2
  174. package/dist/{chunk-VAVR4IJY.js → chunk-VQD7NH7Z.js} +3 -3
  175. package/dist/{chunk-LBMZMYH2.js → chunk-W2RJEH6Q.js} +3 -3
  176. package/dist/{chunk-7CR24IG7.js → chunk-WDV62RKY.js} +2 -2
  177. package/dist/{chunk-BJVFZO5U.js → chunk-WJIMKGD6.js} +7 -7
  178. package/dist/{chunk-USR47QNF.js → chunk-WKUYQBCG.js} +14 -14
  179. package/dist/{chunk-GHS5EBTQ.js → chunk-WNGF5AJX.js} +36 -22
  180. package/dist/{chunk-MXHC5QYU.js → chunk-WTQGRBHV.js} +5 -144
  181. package/dist/{chunk-6OSVSQL5.js → chunk-WV6TDAPN.js} +41 -23
  182. package/dist/chunk-WXA2CFJO.js +23 -0
  183. package/dist/{chunk-2ASED4PZ.js → chunk-X3BI7HTV.js} +26 -26
  184. package/dist/{chunk-QSNYB6ZV.js → chunk-XCUDZQLX.js} +3 -3
  185. package/dist/{chunk-RZDWV63N.js → chunk-XWMSPJYN.js} +6 -6
  186. package/dist/chunk-YGDMBK7O.js +567 -0
  187. package/dist/{chunk-6PAZTBPA.js → chunk-YPRSNUTC.js} +15 -6
  188. package/dist/{chunk-2IR2NMPA.js → chunk-ZIDFQJRB.js} +2 -2
  189. package/dist/{chunk-LTIKRKFL.js → chunk-ZS43Y2FT.js} +4 -4
  190. package/dist/{chunk-6EJMN2Y3.js → chunk-ZTNFYMIO.js} +2 -2
  191. package/dist/{chunk-WEPFGWHJ.js → chunk-ZZFWWYLX.js} +2 -2
  192. package/dist/cli/index.js +44 -44
  193. package/dist/clio-QQCMTUZE.js +26 -0
  194. package/dist/{code-nav-IJR2DBPR.js → code-nav-GUPM6766.js} +48 -32
  195. package/dist/codewiki/build-worker.js +76 -29
  196. package/dist/{compile-cache-OQAVB7Y5.js → compile-cache-WJEPUZEJ.js} +4 -4
  197. package/dist/{components-2TGAI2RC.js → components-TNIKXCBH.js} +13 -13
  198. package/dist/{config-IUA6OYNS.js → config-IIM7YOD3.js} +211 -124
  199. package/dist/configure-4ZM5HWJX.js +73 -0
  200. package/dist/{context-BOYF5EJM.js → context-44BZLJ3J.js} +62 -31
  201. package/dist/{context-4MPR7WKB.js → context-AIDVQKMW.js} +126 -121
  202. package/dist/{context-2DKHWH2T.js → context-OL5P3HEP.js} +92 -62
  203. package/dist/context-clear-OQV76MYP.js +184 -0
  204. package/dist/{context-index-HNG3MOME.js → context-index-HP2JFUWA.js} +13 -11
  205. package/dist/{context-map-COB37XXN.js → context-map-INTXD54D.js} +71 -21
  206. package/dist/{context-working-set-3I3FYX6Y.js → context-working-set-ZUW3EGLS.js} +32 -31
  207. package/dist/detail-UXPWRANG.js +115 -0
  208. package/dist/{dispatch-runner-RJ5I2F2O.js → dispatch-runner-P3ZW6G77.js} +192 -116
  209. package/dist/{docs-SPOV3BAN.js → docs-BL7ROUFN.js} +4 -4
  210. package/dist/{doctor-DKICC2SN.js → doctor-JJVGPZWT.js} +59 -58
  211. package/dist/{eval-OQOQUDHK.js → eval-V2RTN3UH.js} +476 -170
  212. package/dist/{eval-inventory-Y6QRFOH5.js → eval-inventory-QOYZERXJ.js} +7 -7
  213. package/dist/evidence-35PYWGSO.js +225 -0
  214. package/dist/{evidence-4DQ25GUQ.js → evidence-CIGGKI6J.js} +111 -94
  215. package/dist/{evolve-GSS52E5J.js → evolve-33SM3NJP.js} +108 -91
  216. package/dist/{extensions-G7MFLYHT.js → extensions-YVRHX6ZI.js} +16 -16
  217. package/dist/{fleet-Q37YHHAQ.js → fleet-LFO7SIPC.js} +147 -146
  218. package/dist/{fleet-commands-G7E4N7SM.js → fleet-commands-RLK72GU3.js} +27 -26
  219. package/dist/{fleet-decisions-O7M6QBA2.js → fleet-decisions-3SBSCTCW.js} +16 -15
  220. package/dist/{fleet-graph-TOUBW6OW.js → fleet-graph-JZIBCGMW.js} +39 -38
  221. package/dist/{fleet-inspect-SW33JJNI.js → fleet-inspect-2L5YGGZJ.js} +108 -91
  222. package/dist/{fleet-new-RDVJLHHH.js → fleet-new-RCKGSRDV.js} +3 -3
  223. package/dist/{fleet-preflight-CV2655TW.js → fleet-preflight-QRSHIIDE.js} +10 -9
  224. package/dist/{fleet-validate-KESZX2YH.js → fleet-validate-LIAVKDUU.js} +46 -42
  225. package/dist/{fleet-verify-UQPMTVE3.js → fleet-verify-JIK3OQZR.js} +106 -89
  226. package/dist/fleet-view-IWHYGQKK.js +118 -0
  227. package/dist/{init-PXEXQSBF.js → init-NJEDOTQW.js} +124 -123
  228. package/dist/{install-NKNG7KD4.js → install-3RZDDP23.js} +5 -5
  229. package/dist/{interop-ZG5T62U3.js → interop-RVCAYECG.js} +25 -25
  230. package/dist/inventory-74UL7UHU.js +118 -0
  231. package/dist/{library-B2W4N74O.js → library-CTKZA7K3.js} +45 -44
  232. package/dist/{memory-YCANYS5A.js → memory-I76I5VUH.js} +108 -93
  233. package/dist/{models-GERTU3YI.js → models-D4YDIQZQ.js} +64 -62
  234. package/dist/{monitor-CPNIUULB.js → monitor-NKVD55HX.js} +137 -107
  235. package/dist/{orchestrator-J4BSH4WQ.js → orchestrator-I6OATVPK.js} +1715 -1687
  236. package/dist/{panes-BOHAEGYC.js → panes-7BTYH3XQ.js} +8 -8
  237. package/dist/{panes-NXSLDQZ2.js → panes-WPOMEMRH.js} +22 -22
  238. package/dist/{paths-VSUWNC22.js → paths-J3KN7UAO.js} +12 -12
  239. package/dist/preload-EJAWJEIO.js +116 -0
  240. package/dist/{registry-LG64LTF4.js → registry-DESGAXWK.js} +3 -3
  241. package/dist/{reset-TNWTB5LU.js → reset-4XMQKDNZ.js} +22 -20
  242. package/dist/{resources-4PXNMD5G.js → resources-TVYVXK3Q.js} +41 -40
  243. package/dist/{run-D6XJ34CN.js → run-OWQNNSJU.js} +164 -157
  244. package/dist/{share-2NWMJJEE.js → share-NPZZMUXG.js} +43 -42
  245. package/dist/{skills-KR7WON5G.js → skills-OXFEAWMT.js} +47 -46
  246. package/dist/{skills-eval-O2ZNOLDS.js → skills-eval-J5TCKSJA.js} +128 -107
  247. package/dist/{skills-inventory-ZZOUBK7O.js → skills-inventory-7II4DM57.js} +41 -40
  248. package/dist/slash-commands-MDSDSWYF.js +92 -0
  249. package/dist/{steer-XA25PSCS.js → steer-S7D7IKPU.js} +7 -7
  250. package/dist/{support-7EMVWYG2.js → support-5VAEC32W.js} +14 -14
  251. package/dist/{targets-OMH2XCSN.js → targets-KILZEOCE.js} +161 -94
  252. package/dist/tasks-R6P6OV22.js +36 -0
  253. package/dist/{terminal-lease-C2J3JYRE.js → terminal-lease-LZCG2KN3.js} +12 -11
  254. package/dist/tools-6OCQ6SVB.js +28 -0
  255. package/dist/{trace-FXMXUZUF.js → trace-JHLXWUMN.js} +18 -17
  256. package/dist/{tree-sitter-HGKH6LG4.js → tree-sitter-AQUUOSYM.js} +6 -6
  257. package/dist/{tui-primitives-K5PASC3O.js → tui-primitives-RCY2HN7G.js} +3 -3
  258. package/dist/{uninstall-HALS6BLF.js → uninstall-FXYMFFRT.js} +17 -17
  259. package/dist/{upgrade-MS72RJEP.js → upgrade-D2OZH6IQ.js} +42 -41
  260. package/dist/{usage-NHG6MCJM.js → usage-PIASNUS4.js} +137 -105
  261. package/dist/{verifiers-7AUNVXDY.js → verifiers-LTHUY2PX.js} +28 -27
  262. package/dist/verify-HYF7KBVE.js +30 -0
  263. package/dist/{version-KGEG7EPO.js → version-RFPKO6T7.js} +4 -4
  264. package/dist/{web-fetch-V4FKSDAV.js → web-fetch-MQN4FH3X.js} +169 -18
  265. package/dist/wiki-generate-RK7JQ5NP.js +615 -0
  266. package/dist/{with-panes-BDQEWBRT.js → with-panes-OFTNAR4Y.js} +34 -20
  267. package/dist/worker/entry.js +108 -95
  268. package/dist/{workspace-ZJ6BFM3Q.js → workspace-DZ7JADBG.js} +6 -6
  269. package/docs/README.md +7 -6
  270. package/docs/architecture/acp.md +10 -0
  271. package/docs/architecture/architecture.md +5 -5
  272. package/docs/architecture/context-engine.md +45 -60
  273. package/docs/architecture/context-working-set.md +7 -9
  274. package/docs/architecture/dispatch-architecture-rationale.md +1 -1
  275. package/docs/architecture/evidence-and-memory.md +10 -0
  276. package/docs/architecture/pi-boundary.md +37 -7
  277. package/docs/architecture/prompt-envelope-and-tools.md +7 -7
  278. package/docs/architecture/session-lifecycle.md +4 -4
  279. package/docs/architecture/tui-design.md +45 -30
  280. package/docs/architecture/worker-dispatch-mechanics.md +4 -0
  281. package/docs/guide/commands-and-modes.md +75 -61
  282. package/docs/guide/configuration-and-targets.md +126 -26
  283. package/docs/guide/configuration-reference.md +22 -7
  284. package/docs/guide/environment-variables.md +6 -2
  285. package/docs/guide/fleet-dispatch.md +13 -6
  286. package/docs/guide/glossary.md +1 -1
  287. package/docs/guide/installation-and-lifecycle.md +79 -20
  288. package/docs/guide/proactive-memory.md +1 -1
  289. package/docs/guide/skills-marketplace.md +11 -3
  290. package/docs/guide/tool-usage.md +9 -2
  291. package/docs/process/development-pipeline.md +11 -11
  292. package/docs/process/documentation-coverage.md +1 -1
  293. package/docs/process/documentation-guide.md +2 -2
  294. package/docs/process/eval-runner.md +15 -0
  295. package/docs/process/evals-internal.md +1 -1
  296. package/docs/process/release-cut-checklist.md +24 -12
  297. package/evals/README.md +4 -0
  298. package/evals/behavioral-corpus-grader.mjs +147 -14
  299. package/evals/behavioral-model-negative-control.yaml +1 -0
  300. package/evals/behavioral-model.yaml +266 -1
  301. package/evals/fixtures/docs-retrieval.json +102 -0
  302. package/evals/fixtures/scalar-decision.json +17 -0
  303. package/evals/fixtures/scout-citation-pipeline.json +55 -0
  304. package/evals/fixtures/source-explanation.json +74 -0
  305. package/evals/fixtures/tool-arguments.json +18 -0
  306. package/evals/fixtures/tool-surface/read.txt +4 -0
  307. package/evals/fixtures/tool-surface/subdir/keep.txt +1 -0
  308. package/evals/no-edit-memory-grader.mjs +149 -0
  309. package/evals/scalar-decision-grader.py +41 -0
  310. package/evals/scalar-decision-machinery.ts +145 -0
  311. package/evals/source-explanation-grader.mjs +118 -0
  312. package/evals/tool-surface-grader.mjs +53 -0
  313. package/evals/tool-surface-model.yaml +274 -0
  314. package/package.json +14 -14
  315. package/skills/README.md +6 -6
  316. package/skills/registry.yaml +1 -1
  317. package/skills/skill-marketplace.json +1 -1
  318. package/src/cli/ask.ts +10 -10
  319. package/src/cli/bootstrap-generate.ts +6 -0
  320. package/src/cli/config-inspect.ts +24 -7
  321. package/src/cli/config-trust.ts +62 -0
  322. package/src/cli/config.ts +8 -0
  323. package/src/cli/configure-editor.ts +51 -0
  324. package/src/cli/configure-interop.ts +1 -1
  325. package/src/cli/configure-oauth.ts +1 -1
  326. package/src/cli/configure-onboarding.ts +232 -96
  327. package/src/cli/configure-prompts.ts +76 -0
  328. package/src/cli/configure-quick.ts +274 -0
  329. package/src/cli/configure-target.ts +14 -2
  330. package/src/cli/configure.ts +413 -174
  331. package/src/cli/context-map.ts +75 -14
  332. package/src/cli/context.ts +46 -17
  333. package/src/cli/eval.ts +17 -3
  334. package/src/cli/modes/print.ts +32 -4
  335. package/src/cli/oauth-manual-input.ts +1 -1
  336. package/src/cli/reset.ts +2 -0
  337. package/src/cli/run.ts +16 -14
  338. package/src/cli/select.ts +35 -4
  339. package/src/cli/skills-eval.ts +10 -8
  340. package/src/cli/steer-channel.ts +31 -18
  341. package/src/cli/targets.ts +83 -31
  342. package/src/cli/tasks.ts +10 -1
  343. package/src/cli/upgrade.ts +11 -8
  344. package/src/cli/usage.ts +24 -0
  345. package/src/cli/wiki-generate.ts +239 -96
  346. package/src/core/bash-exec.ts +43 -15
  347. package/src/core/bus-events.ts +15 -0
  348. package/src/core/config.ts +39 -15
  349. package/src/core/defaults.ts +38 -15
  350. package/src/{interactive → core}/external-editor.ts +4 -4
  351. package/src/core/file-references.ts +11 -1
  352. package/src/core/incomplete-installation.ts +3 -1
  353. package/src/core/settings-layers.ts +21 -5
  354. package/src/core/termination.ts +26 -9
  355. package/src/core/untrusted-content.ts +16 -0
  356. package/src/core/workspace-trust.ts +179 -0
  357. package/src/domains/agents/builtins/coder.md +4 -2
  358. package/src/domains/agents/builtins/context-bootstrap.md +3 -1
  359. package/src/domains/agents/builtins/documenter.md +7 -4
  360. package/src/domains/agents/builtins/researcher.md +1 -0
  361. package/src/domains/agents/builtins/scout.md +7 -1
  362. package/src/domains/agents/result-contract.ts +199 -26
  363. package/src/domains/config/classify.ts +1 -1
  364. package/src/domains/config/keybindings.ts +3 -31
  365. package/src/domains/context/bootstrap-prompt.ts +11 -9
  366. package/src/domains/context/bootstrap.ts +74 -39
  367. package/src/domains/context/clio-md.ts +88 -26
  368. package/src/domains/context/codewiki/build-operation.ts +121 -0
  369. package/src/domains/context/codewiki/build-worker-protocol.ts +37 -3
  370. package/src/domains/context/codewiki/build-worker.ts +3 -35
  371. package/src/domains/context/codewiki/coordinator.ts +36 -6
  372. package/src/domains/context/codewiki/indexer.ts +59 -19
  373. package/src/domains/context/contract.ts +6 -2
  374. package/src/domains/context/extension.ts +72 -10
  375. package/src/domains/context/fingerprint.ts +39 -34
  376. package/src/domains/context/index.ts +7 -1
  377. package/src/domains/context/prompt-context.ts +55 -14
  378. package/src/domains/context/refresh.ts +9 -57
  379. package/src/domains/context/wiki/assemble.ts +14 -10
  380. package/src/domains/context/wiki/evidence.ts +209 -0
  381. package/src/domains/context/wiki/generate.ts +201 -67
  382. package/src/domains/context/wiki/meta.ts +10 -2
  383. package/src/domains/context/wiki/plan-store.ts +70 -14
  384. package/src/domains/context/wiki/plan.ts +71 -14
  385. package/src/domains/context/wiki/prompts.ts +42 -1
  386. package/src/domains/context/wiki/source-content.ts +106 -0
  387. package/src/domains/context/wiki/staleness.ts +33 -22
  388. package/src/domains/context/working-set/contract.ts +8 -2
  389. package/src/domains/context/working-set/engine.ts +17 -4
  390. package/src/domains/context/working-set/fold.ts +15 -2
  391. package/src/domains/context/working-set/marker.ts +2 -1
  392. package/src/domains/context/working-set/project.ts +18 -7
  393. package/src/domains/context/working-set/recall.ts +82 -56
  394. package/src/domains/dispatch/active-route-planner.ts +6 -3
  395. package/src/domains/dispatch/admission-queue.ts +19 -7
  396. package/src/domains/dispatch/admission.ts +3 -3
  397. package/src/domains/dispatch/budget-envelope.ts +47 -82
  398. package/src/domains/dispatch/capacity-lease.ts +57 -19
  399. package/src/domains/dispatch/contract.ts +10 -2
  400. package/src/domains/dispatch/event-pump.ts +28 -7
  401. package/src/domains/dispatch/execution-role.ts +49 -2
  402. package/src/domains/dispatch/execution-scheduler.ts +2 -0
  403. package/src/domains/dispatch/extension.ts +190 -105
  404. package/src/domains/dispatch/fleet-run.ts +20 -0
  405. package/src/domains/dispatch/gate-role-prompts.ts +4 -2
  406. package/src/domains/dispatch/parallel-writers.ts +34 -0
  407. package/src/domains/dispatch/reservation-store.ts +8 -34
  408. package/src/domains/dispatch/route-approval.ts +3 -3
  409. package/src/domains/dispatch/route-observer.ts +4 -2
  410. package/src/domains/dispatch/route-quality.ts +6 -1
  411. package/src/domains/dispatch/types.ts +4 -3
  412. package/src/domains/dispatch/worker-spawn.ts +58 -21
  413. package/src/domains/dispatch/workspace-checkpoint.ts +57 -0
  414. package/src/domains/eval/compare/behavioral.ts +81 -14
  415. package/src/domains/eval/compare/compare.ts +15 -5
  416. package/src/domains/eval/compare/envelope.ts +12 -5
  417. package/src/domains/eval/metrics/context.ts +24 -1
  418. package/src/domains/eval/metrics/tracked.ts +4 -28
  419. package/src/domains/eval/reports/comparison.ts +9 -9
  420. package/src/domains/eval/runners/clio-run.ts +5 -1
  421. package/src/domains/eval/schema/suite.ts +2 -0
  422. package/src/domains/eval/schema/validate.ts +1 -0
  423. package/src/domains/eval/suites/run.ts +189 -13
  424. package/src/domains/eval/verifiers/integrity.ts +39 -0
  425. package/src/domains/eval/verifiers/patch.ts +58 -2
  426. package/src/domains/eval/workspaces/temp-copy.ts +3 -0
  427. package/src/domains/evidence/build.ts +4 -2
  428. package/src/domains/interop/registry.ts +2 -2
  429. package/src/domains/middleware/hooks-io.ts +45 -26
  430. package/src/domains/middleware/hooks.ts +6 -0
  431. package/src/domains/middleware/injection-screen.ts +23 -0
  432. package/src/domains/middleware/rules.ts +5 -1
  433. package/src/domains/middleware/stalled-turn.ts +18 -3
  434. package/src/domains/middleware/task-board-reminder.ts +4 -2
  435. package/src/domains/middleware/task-nudge.ts +4 -1
  436. package/src/domains/mux/contract.ts +34 -1
  437. package/src/domains/mux/dock-controller.ts +8 -1
  438. package/src/domains/mux/index.ts +1 -0
  439. package/src/domains/mux/socket-client.ts +13 -3
  440. package/src/domains/observability/contract.ts +2 -2
  441. package/src/domains/observability/projection.ts +30 -9
  442. package/src/domains/prompts/compiler.ts +10 -2
  443. package/src/domains/prompts/contract.ts +7 -4
  444. package/src/domains/prompts/extension.ts +28 -64
  445. package/src/domains/prompts/fragments/identity/clio.md +23 -0
  446. package/src/domains/prompts/fragments/operating/contract.md +10 -0
  447. package/src/domains/prompts/fragments/operating/delegation.md +5 -0
  448. package/src/domains/prompts/fragments/wiki/page.md +28 -15
  449. package/src/domains/prompts/fragments/wiki/plan.md +4 -4
  450. package/src/domains/prompts/preload-prefix.ts +31 -0
  451. package/src/domains/prompts/preload.ts +135 -61
  452. package/src/domains/providers/auth/backend-file.ts +15 -11
  453. package/src/domains/providers/auth/storage.ts +3 -5
  454. package/src/domains/providers/catalog.ts +18 -3
  455. package/src/domains/providers/probe/fingerprint.ts +13 -6
  456. package/src/domains/providers/probe/reasoning.ts +2 -0
  457. package/src/domains/providers/runtime-resolution.ts +11 -9
  458. package/src/domains/providers/runtimes/cloud/openrouter.ts +2 -0
  459. package/src/domains/providers/runtimes/common/probe-helpers.ts +23 -7
  460. package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +7 -2
  461. package/src/domains/providers/runtimes/protocol/openai-compat.ts +10 -4
  462. package/src/domains/resources/skills/promotion.ts +8 -1
  463. package/src/domains/safety/action-classifier.ts +9 -0
  464. package/src/domains/safety/autonomy.ts +10 -1
  465. package/src/domains/safety/contract.ts +5 -1
  466. package/src/domains/safety/default-path-policy.ts +11 -0
  467. package/src/domains/safety/extension.ts +11 -2
  468. package/src/domains/safety/policy-engine.ts +189 -32
  469. package/src/domains/safety/project-policy.ts +7 -2
  470. package/src/domains/safety/workspace-trust.ts +43 -0
  471. package/src/domains/session/compaction/compact.ts +384 -21
  472. package/src/domains/session/compaction/cut-point.ts +42 -5
  473. package/src/domains/session/compaction/tokens.ts +9 -1
  474. package/src/domains/session/decision-board.ts +43 -33
  475. package/src/domains/session/entries.ts +169 -4
  476. package/src/domains/session/prompt-manifest.ts +47 -8
  477. package/src/domains/session/task-board.ts +21 -3
  478. package/src/domains/user-tasks/handoff.ts +16 -0
  479. package/src/engine/acp/adapter.ts +44 -12
  480. package/src/engine/acp/server.ts +1 -0
  481. package/src/engine/acp/transport.ts +2 -1
  482. package/src/engine/acp/types.ts +6 -1
  483. package/src/engine/antigravity/subprocess-runtime.ts +20 -4
  484. package/src/engine/api-registry.ts +19 -2
  485. package/src/engine/apis/openai-completions.ts +13 -6
  486. package/src/engine/apis/output-budget.ts +26 -10
  487. package/src/engine/claude/sdk-runtime.ts +4 -3
  488. package/src/engine/env-api-keys.ts +2 -1
  489. package/src/engine/external-subprocess.ts +14 -3
  490. package/src/engine/loop-guard.ts +19 -2
  491. package/src/engine/provider-diagnostics.ts +129 -0
  492. package/src/engine/provider-payload.ts +3 -1
  493. package/src/engine/worker-runtime.ts +13 -2
  494. package/src/engine/worker-tools.ts +5 -1
  495. package/src/entry/extension-reload.ts +1 -0
  496. package/src/entry/orchestrator.ts +53 -15
  497. package/src/interactive/application-controller.ts +1 -31
  498. package/src/interactive/chat-loop-messages.ts +12 -4
  499. package/src/interactive/chat-loop.ts +115 -45
  500. package/src/interactive/chat-panel.ts +163 -637
  501. package/src/interactive/chat-renderer.ts +73 -30
  502. package/src/interactive/context-recall-command.ts +2 -1
  503. package/src/interactive/dispatch-board.ts +18 -5
  504. package/src/interactive/editor-submit.ts +21 -31
  505. package/src/interactive/footer/dashboard.ts +8 -3
  506. package/src/interactive/footer/widgets.ts +50 -91
  507. package/src/interactive/interactive-application.ts +24 -44
  508. package/src/interactive/interactive-event-projection.ts +9 -45
  509. package/src/interactive/interactive-input-runtime.ts +3 -28
  510. package/src/interactive/interactive-presentation.ts +45 -16
  511. package/src/interactive/interactive-slash-runtime.ts +5 -40
  512. package/src/interactive/layout.ts +31 -5
  513. package/src/interactive/model-session-replay.ts +2 -2
  514. package/src/interactive/overlay-frame.ts +1 -0
  515. package/src/interactive/overlay-general-openers.ts +5 -1
  516. package/src/interactive/overlay-lifecycle.ts +1 -0
  517. package/src/interactive/overlay-session-lifecycle.ts +7 -1
  518. package/src/interactive/overlays/ask-user.ts +1 -0
  519. package/src/interactive/overlays/message-picker.ts +1 -1
  520. package/src/interactive/overlays/settings.ts +9 -8
  521. package/src/interactive/renderers/preview.ts +16 -0
  522. package/src/interactive/renderers/tool-execution.ts +84 -161
  523. package/src/interactive/renderers/worker-entry.ts +74 -43
  524. package/src/interactive/slash-autocomplete.ts +1 -6
  525. package/src/interactive/slash-commands.ts +16 -46
  526. package/src/interactive/status/controller.ts +0 -5
  527. package/src/interactive/status/state-machine.ts +44 -26
  528. package/src/interactive/status/types.ts +3 -0
  529. package/src/interactive/status/verbs.ts +13 -12
  530. package/src/interactive/transcript-detail.ts +50 -112
  531. package/src/interactive/turn-context.ts +221 -53
  532. package/src/interactive/turn-middleware.ts +3 -1
  533. package/src/interactive/turn-persistence.ts +3 -0
  534. package/src/interactive/turn-runtime.ts +11 -2
  535. package/src/interactive/turn-state.ts +10 -9
  536. package/src/interactive/view/artifacts.ts +4 -0
  537. package/src/interactive/view/view-overlay.ts +44 -34
  538. package/src/interactive/watch-pane.ts +18 -4
  539. package/src/interactive/worker-stream.ts +7 -7
  540. package/src/tools/agent-tools.ts +6 -3
  541. package/src/tools/bash.ts +1 -1
  542. package/src/tools/builtin-tool-catalog.ts +9 -2
  543. package/src/tools/codewiki/code-nav.ts +4 -10
  544. package/src/tools/compete-judge-task.ts +71 -0
  545. package/src/tools/compete-worktrees.ts +34 -0
  546. package/src/tools/context/index.ts +32 -7
  547. package/src/tools/context/surface.ts +15 -4
  548. package/src/tools/decide.ts +1 -1
  549. package/src/tools/dispatch-admission.ts +12 -1
  550. package/src/tools/dispatch-arguments.ts +38 -1
  551. package/src/tools/dispatch-plan.ts +7 -7
  552. package/src/tools/dispatch-runner.ts +48 -32
  553. package/src/tools/dispatch-schema.ts +30 -23
  554. package/src/tools/dispatch-scout-admission.ts +10 -44
  555. package/src/tools/dispatch-scout.ts +2 -3
  556. package/src/tools/find.ts +13 -4
  557. package/src/tools/grep.ts +13 -1
  558. package/src/tools/ls.ts +7 -1
  559. package/src/tools/monitor.ts +26 -11
  560. package/src/tools/network-policy.ts +11 -24
  561. package/src/tools/observation.ts +39 -2
  562. package/src/tools/presentation.ts +1 -1
  563. package/src/tools/read.ts +112 -15
  564. package/src/tools/registry.ts +55 -18
  565. package/src/tools/result-shaping.ts +110 -2
  566. package/src/tools/tasks.ts +33 -7
  567. package/src/tools/verify/frontend.ts +67 -30
  568. package/src/tools/verify/numeric.ts +10 -5
  569. package/src/tools/web-fetch-network.ts +179 -0
  570. package/src/tools/web-fetch-surface.ts +2 -1
  571. package/src/tools/web-fetch.ts +15 -13
  572. package/src/tools/worker-evidence.ts +27 -0
  573. package/src/worker/spec-contract.ts +12 -8
  574. package/dist/builtins-WGALA46I.js +0 -22
  575. package/dist/chunk-2WZ546HR.js +0 -792
  576. package/dist/chunk-5PSMVOLM.js +0 -56
  577. package/dist/chunk-EL24TAU4.js +0 -1560
  578. package/dist/chunk-IZXGRF7P.js +0 -4048
  579. package/dist/chunk-JVCV3ICN.js +0 -47
  580. package/dist/chunk-MNJGS2IN.js +0 -33
  581. package/dist/chunk-O5CVSAG5.js +0 -122
  582. package/dist/chunk-ODGTEFFI.js +0 -50
  583. package/dist/chunk-OQE5J4C6.js +0 -73
  584. package/dist/chunk-UUVG37B4.js +0 -244
  585. package/dist/chunk-V6HJFQZE.js +0 -228
  586. package/dist/clio-QLICPCF5.js +0 -25
  587. package/dist/configure-VEPX4NMX.js +0 -55
  588. package/dist/context-clear-S4ZJCQUX.js +0 -182
  589. package/dist/detail-A7JAVSIG.js +0 -98
  590. package/dist/evidence-4F5USFKH.js +0 -208
  591. package/dist/fleet-view-MN2VG4MR.js +0 -101
  592. package/dist/inventory-C26CFDRR.js +0 -101
  593. package/dist/preload-P6DGH2PZ.js +0 -13
  594. package/dist/slash-commands-ZXPJD64J.js +0 -92
  595. package/dist/tasks-IPAGMEIX.js +0 -36
  596. package/dist/tools-EFFEAIDP.js +0 -28
  597. package/dist/verify-FWYGPKMR.js +0 -29
  598. package/dist/wiki-generate-743CIGJW.js +0 -476
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/core/shared-bus.ts
7
7
  init_esm_shims();
@@ -63,4 +63,4 @@ function getSharedBus() {
63
63
  export {
64
64
  getSharedBus
65
65
  };
66
- //# sourceMappingURL=chunk-PMZVFWSR.js.map
66
+ //# sourceMappingURL=chunk-B5ZTR6KZ.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/domains/evidence/ordering.ts
7
7
  init_esm_shims();
@@ -12,4 +12,4 @@ function compareCodepoints(left, right) {
12
12
  export {
13
13
  compareCodepoints
14
14
  };
15
- //# sourceMappingURL=chunk-I5FWO7L5.js.map
15
+ //# sourceMappingURL=chunk-B6UM3OZC.js.map
@@ -1,19 +1,19 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  typebox_exports
4
- } from "./chunk-5B2AEOW5.js";
4
+ } from "./chunk-GH5ZR6JP.js";
5
5
  import {
6
6
  ToolNames
7
- } from "./chunk-4NSRCOYP.js";
7
+ } from "./chunk-EHOSNVVM.js";
8
8
  import {
9
9
  init_esm_shims
10
- } from "./chunk-3R73A4XB.js";
10
+ } from "./chunk-ECBHH7LU.js";
11
11
 
12
12
  // src/tools/web-fetch-surface.ts
13
13
  init_esm_shims();
14
14
  var webFetchToolSurface = {
15
15
  name: ToolNames.WebFetch,
16
- description: "Fetch an http(s) URL; HTML is cleaned and converted to Markdown. Non-2xx responses are errors.",
16
+ description: "Fetch an http(s) URL; HTML is cleaned and converted to Markdown. Non-2xx responses are errors. Non-GET/HEAD methods or any body require outward-action approval; private networks require operator opt-in.",
17
17
  parameters: typebox_exports.Object({
18
18
  url: typebox_exports.String({ description: "Fully-qualified http(s) URL." }),
19
19
  method: typebox_exports.Optional(typebox_exports.String({ description: "HTTP method (default GET)." })),
@@ -32,4 +32,4 @@ var webFetchToolSurface = {
32
32
  export {
33
33
  webFetchToolSurface
34
34
  };
35
- //# sourceMappingURL=chunk-2CU2H6KE.js.map
35
+ //# sourceMappingURL=chunk-BBV5TKE6.js.map
@@ -4,36 +4,37 @@ import {
4
4
  listChecks,
5
5
  runProjectCheck,
6
6
  runScriptCheck
7
- } from "./chunk-K6T2ZAMZ.js";
7
+ } from "./chunk-6OII3LOK.js";
8
8
  import {
9
9
  BROWSER_MODES,
10
10
  prepareVerifyArguments,
11
11
  verifyToolSurface
12
- } from "./chunk-GX5WYQO4.js";
12
+ } from "./chunk-3QKXHCGS.js";
13
13
  import {
14
- escapeRegExp
15
- } from "./chunk-VG7TBQIY.js";
14
+ prepareBoundedImage
15
+ } from "./chunk-YGDMBK7O.js";
16
16
  import {
17
+ escapeRegExp,
17
18
  resolveReadPath
18
- } from "./chunk-OQE5J4C6.js";
19
+ } from "./chunk-V552WL53.js";
19
20
  import {
20
21
  maxOutputArg,
21
22
  timeoutArg
22
- } from "./chunk-BJVFZO5U.js";
23
+ } from "./chunk-WJIMKGD6.js";
23
24
  import {
24
25
  VERIFICATION_SCRIPT_FAMILY_HINT,
25
26
  isVerificationScriptName
26
- } from "./chunk-UL3WSD3F.js";
27
+ } from "./chunk-M4KFUXS7.js";
27
28
  import {
28
29
  truncateUtf8
29
- } from "./chunk-6XLNIQDB.js";
30
+ } from "./chunk-MYI32N4R.js";
30
31
  import {
31
32
  combineSafeOutput,
32
33
  runCommandVector
33
- } from "./chunk-TOIVGRUX.js";
34
+ } from "./chunk-GJ24ODAX.js";
34
35
  import {
35
36
  init_esm_shims
36
- } from "./chunk-3R73A4XB.js";
37
+ } from "./chunk-ECBHH7LU.js";
37
38
 
38
39
  // src/tools/verify/index.ts
39
40
  init_esm_shims();
@@ -105,7 +106,10 @@ async function runFrontendCheck(args, options) {
105
106
  const browserMode = browserModeArg(args.browser);
106
107
  const validateOptions = {
107
108
  timeoutMs: timeoutArg(args),
108
- maxOutputBytes: maxOutputArg(args)
109
+ maxOutputBytes: maxOutputArg(args),
110
+ supportsImages: options?.supportsImages === true,
111
+ imageMaxBytes: Math.min(maxOutputArg(args), options?.toolResultMaxBytes ?? 5e4) - 4096,
112
+ images: []
109
113
  };
110
114
  if (options?.signal !== void 0) validateOptions.signal = options.signal;
111
115
  const checks = [];
@@ -130,7 +134,7 @@ ${output}`,
130
134
  details
131
135
  };
132
136
  }
133
- return { kind: "ok", output, details };
137
+ return { kind: "ok", output, details, ...validateOptions.images?.length ? { images: validateOptions.images } : {} };
134
138
  }
135
139
  async function validateArtifact(artifactPath, checks, browserMode, options) {
136
140
  const ext = path.extname(artifactPath).toLowerCase();
@@ -488,38 +492,63 @@ async function validateBrowserLoad(artifactPath, browserMode, checks, options) {
488
492
  });
489
493
  return;
490
494
  }
491
- const result = await runCommandVector(
492
- browser,
493
- [
494
- "--headless=new",
495
- "--disable-gpu",
496
- "--no-sandbox",
497
- "--disable-dev-shm-usage",
498
- "--dump-dom",
499
- pathToFileURL(artifactPath).href
500
- ],
501
- {
502
- timeoutMs: options.timeoutMs,
503
- maxOutputBytes: options.maxOutputBytes,
504
- ...options.signal !== void 0 ? { signal: options.signal } : {}
495
+ const dir = mkdtempSync(path.join(tmpdir(), "clio-coder-browser-check-"));
496
+ const screenshot = path.join(dir, "loaded.png");
497
+ try {
498
+ const result = await runCommandVector(
499
+ browser,
500
+ [
501
+ "--headless=new",
502
+ "--disable-gpu",
503
+ "--no-sandbox",
504
+ "--disable-dev-shm-usage",
505
+ `--user-data-dir=${path.join(dir, "profile")}`,
506
+ `--screenshot=${screenshot}`,
507
+ pathToFileURL(artifactPath).href
508
+ ],
509
+ {
510
+ timeoutMs: options.timeoutMs,
511
+ maxOutputBytes: options.maxOutputBytes,
512
+ ...options.signal !== void 0 ? { signal: options.signal } : {}
513
+ }
514
+ );
515
+ let failure;
516
+ if (result.aborted) failure = "headless browser aborted";
517
+ else if (result.timedOut) failure = `headless browser timed out after ${options.timeoutMs}ms`;
518
+ else if (result.outputCapped) failure = `headless browser output exceeded ${options.maxOutputBytes} bytes`;
519
+ else if (result.exitCode !== 0) {
520
+ failure = `headless browser exited with ${result.exitCode ?? result.signal ?? "unknown"}`;
521
+ } else if (!existsSync(screenshot) || !statSync(screenshot).isFile() || statSync(screenshot).size === 0) {
522
+ failure = "headless browser exited without a rendered screenshot";
523
+ } else {
524
+ if (options.supportsImages) {
525
+ const image = await prepareBoundedImage(readFileSync(screenshot), options.imageMaxBytes ?? 0);
526
+ if (image) options.images?.push(image);
527
+ else
528
+ checks.push({
529
+ name: "browser image",
530
+ status: "warn",
531
+ message: "Screenshot omitted: could not encode within the tool result byte cap."
532
+ });
533
+ }
534
+ checks.push({
535
+ name: "browser load",
536
+ status: "pass",
537
+ message: `loaded and rendered with ${path.basename(browser)}`,
538
+ path: artifactPath
539
+ });
540
+ return;
505
541
  }
506
- );
507
- if (result.exitCode === 0 && !result.timedOut && !result.aborted && !result.outputCapped) {
542
+ const output = truncateUtf8(combineSafeOutput(result).trim(), 800, " [truncated]");
508
543
  checks.push({
509
544
  name: "browser load",
510
- status: "pass",
511
- message: `loaded with ${path.basename(browser)}`,
545
+ status: "fail",
546
+ message: `${failure}${output ? `: ${output}` : ""}`,
512
547
  path: artifactPath
513
548
  });
514
- return;
549
+ } finally {
550
+ rmSync(dir, { recursive: true, force: true });
515
551
  }
516
- const output = truncateUtf8(combineSafeOutput(result).trim(), 800, " [truncated]");
517
- checks.push({
518
- name: "browser load",
519
- status: "fail",
520
- message: `headless browser exited with ${result.exitCode ?? result.signal ?? "unknown"}${output ? `: ${output}` : ""}`,
521
- path: artifactPath
522
- });
523
552
  }
524
553
  function parseAttributes(source) {
525
554
  const attrs = {};
@@ -636,4 +665,4 @@ var verifyTool = {
636
665
  export {
637
666
  verifyTool
638
667
  };
639
- //# sourceMappingURL=chunk-23L32XTI.js.map
668
+ //# sourceMappingURL=chunk-BLTEAUCB.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  getSharedBus
4
- } from "./chunk-PMZVFWSR.js";
4
+ } from "./chunk-B5ZTR6KZ.js";
5
5
  import {
6
6
  BusChannels
7
- } from "./chunk-F4EKGO4N.js";
7
+ } from "./chunk-HL26ADLH.js";
8
8
  import {
9
9
  init_esm_shims
10
- } from "./chunk-3R73A4XB.js";
10
+ } from "./chunk-ECBHH7LU.js";
11
11
 
12
12
  // src/core/termination.ts
13
13
  init_esm_shims();
@@ -91,14 +91,17 @@ var TerminationCoordinator = class {
91
91
  getExitCode() {
92
92
  return this.exitCode;
93
93
  }
94
- onDrain(hook) {
95
- this.drainHooks.push(hook);
94
+ onDrain(hook, options) {
95
+ if (options && (!Number.isSafeInteger(options.timeoutMs) || options.timeoutMs <= 0 || options.timeoutMs > 2 ** 31 - 1)) {
96
+ throw new RangeError("shutdown hook timeout must be a positive 32-bit timer delay");
97
+ }
98
+ this.drainHooks.push({ run: hook, ...options });
96
99
  }
97
100
  onTerminate(hook) {
98
- this.terminateHooks.push(hook);
101
+ this.terminateHooks.push({ run: hook });
99
102
  }
100
103
  onPersist(hook) {
101
- this.persistHooks.push(hook);
104
+ this.persistHooks.push({ run: hook });
102
105
  }
103
106
  async shutdown(code = 0) {
104
107
  if (this.started) return;
@@ -137,12 +140,13 @@ var TerminationCoordinator = class {
137
140
  log("process.exit");
138
141
  process.exit(this.exitCode);
139
142
  }
140
- async runHooks(hooks, phase, budgetMs, log) {
143
+ async runHooks(hooks, phase, defaultBudgetMs, log) {
141
144
  for (let i = 0; i < hooks.length; i++) {
142
145
  const hook = hooks[i];
143
146
  if (!hook) continue;
147
+ const budgetMs = hook.timeoutMs ?? defaultBudgetMs;
144
148
  const t0 = process.hrtime.bigint();
145
- const completed = await runWithBudget(hook, budgetMs, (err) => {
149
+ const completed = await runWithBudget(hook.run, budgetMs, (err) => {
146
150
  const message = err instanceof Error ? err.message : String(err);
147
151
  writeShutdownNotice(`[clio-coder:termination] ${phase}[${i}] failed: ${message}`);
148
152
  if (err instanceof Error && err.stack) log(err.stack);
@@ -226,4 +230,4 @@ export {
226
230
  runWithBudget,
227
231
  getTerminationCoordinator
228
232
  };
229
- //# sourceMappingURL=chunk-4O6MANBS.js.map
233
+ //# sourceMappingURL=chunk-BS4GAMUB.js.map
@@ -2,22 +2,20 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  TASK_MEMORY_DEFAULT_PROCEDURAL_CAP,
4
4
  TASK_MEMORY_POLICY_DEFAULT_TIMEOUT_MS,
5
+ isTerminalRunEnvelope,
5
6
  runTaskMemoryPolicy,
6
7
  taskMemoryBankDelta
7
- } from "./chunk-2WZ546HR.js";
8
- import {
9
- isTerminalRunEnvelope
10
- } from "./chunk-75W7L2E2.js";
11
- import {
12
- hashToolCall
13
- } from "./chunk-6QOTUPRG.js";
8
+ } from "./chunk-P5JMBPDJ.js";
14
9
  import {
15
10
  taskBoardCounts
16
- } from "./chunk-6PAZTBPA.js";
11
+ } from "./chunk-YPRSNUTC.js";
17
12
  import {
18
13
  legacyToolResultDigest,
19
14
  sanitizeToolResultDigest
20
- } from "./chunk-NAI6ZFCY.js";
15
+ } from "./chunk-7JSSKXG2.js";
16
+ import {
17
+ INSTRUCTION_SHAPED_WARNING
18
+ } from "./chunk-WXA2CFJO.js";
21
19
  import {
22
20
  SKILL_INSTALL_OFFER_OPTION_NEVER,
23
21
  SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
@@ -25,36 +23,47 @@ import {
25
23
  SKILL_INSTALL_OFFER_OPTION_USER,
26
24
  SKILL_SUGGESTION_ANCHOR,
27
25
  SKILL_SUGGESTION_PREFIX
28
- } from "./chunk-54X7T7DK.js";
26
+ } from "./chunk-KAFMW7WM.js";
29
27
  import {
30
- ToolNames
31
- } from "./chunk-4NSRCOYP.js";
28
+ hashToolCall
29
+ } from "./chunk-I2K2NCZQ.js";
30
+ import {
31
+ captureProjectSurface,
32
+ projectSurfaceTrustNotice
33
+ } from "./chunk-NTK3WTHM.js";
32
34
  import {
33
35
  registerForegroundStream
34
- } from "./chunk-JSD46VO2.js";
36
+ } from "./chunk-4U4TKZFR.js";
35
37
  import {
36
38
  ceilChars
37
- } from "./chunk-NZMNUPZZ.js";
39
+ } from "./chunk-77CZRFTE.js";
40
+ import {
41
+ ToolNames
42
+ } from "./chunk-EHOSNVVM.js";
38
43
  import {
39
44
  BusChannels
40
- } from "./chunk-F4EKGO4N.js";
45
+ } from "./chunk-HL26ADLH.js";
46
+ import {
47
+ buildSafeToolEnv
48
+ } from "./chunk-GJ24ODAX.js";
41
49
  import {
50
+ gitCommitAttributionEnabled,
42
51
  reportCommitAttributionDiagnostic,
43
52
  withManagedGitCommitAttributionEnvironment
44
- } from "./chunk-U6TMQNSI.js";
53
+ } from "./chunk-LTR5QCLS.js";
45
54
  import {
46
55
  require_dist
47
- } from "./chunk-APJ265NV.js";
56
+ } from "./chunk-B5GGDIHT.js";
48
57
  import {
49
58
  safeResourceWrite
50
- } from "./chunk-WEPFGWHJ.js";
59
+ } from "./chunk-ZZFWWYLX.js";
51
60
  import {
52
61
  clioConfigDir
53
- } from "./chunk-BYP5D4HI.js";
62
+ } from "./chunk-CTTI7G3T.js";
54
63
  import {
55
64
  __toESM,
56
65
  init_esm_shims
57
- } from "./chunk-3R73A4XB.js";
66
+ } from "./chunk-ECBHH7LU.js";
58
67
 
59
68
  // src/domains/middleware/runtime.ts
60
69
  init_esm_shims();
@@ -207,11 +216,33 @@ function createHookBudgetTracker(options = {}) {
207
216
  // src/domains/middleware/rules.ts
208
217
  init_esm_shims();
209
218
 
219
+ // src/domains/middleware/injection-screen.ts
220
+ init_esm_shims();
221
+ var INJECTION_SCREEN_RULE = {
222
+ rule: {
223
+ id: "safety.untrusted-instructions",
224
+ source: "builtin",
225
+ description: "Warn when external tool data contains instruction-shaped markers",
226
+ enabled: true,
227
+ hooks: ["after_tool"],
228
+ effectKinds: ["annotate_tool_result"]
229
+ },
230
+ toolNames: ["web_fetch", "read", "bash", "dispatch", "monitor"],
231
+ predicate: (input) => input.metadata?.untrustedInstructionMarkers === true,
232
+ effects: [
233
+ {
234
+ kind: "annotate_tool_result",
235
+ severity: "warn",
236
+ message: INSTRUCTION_SHAPED_WARNING
237
+ }
238
+ ]
239
+ };
240
+
210
241
  // src/domains/middleware/stalled-turn.ts
211
242
  init_esm_shims();
212
243
  var STALLED_TURN_REGISTRATION_ID = "nudge.stalled-turn";
213
244
  var STALLED_TURN_REQUEST_CONTINUATION_MESSAGE = "You ended your turn after announcing an action without executing it: no tools were called. Continue now and perform the announced action, or state plainly that you are finished and waiting for the user.";
214
- var SKILL_SUGGESTION_WAIT_CONTINUATION_MESSAGE = "You ended your turn on a skill suggestion without doing the task. The suggestion line has already made the offer and only the operator loads a skill, so nothing is needed from them before you proceed. Continue the task now without the skill.";
245
+ var SKILL_SUGGESTION_WAIT_CONTINUATION_MESSAGE = "You ended your turn on a skill suggestion without doing the task. The suggestion line has already made the offer and only the operator loads a skill, so the skill choice needs nothing from them before you proceed. Continue the already-authorized task now without the skill. This continuation is not an operator answer to any other question: if the remaining work is a proposal awaiting an explicit operator go-ahead, park it on the task board and say so instead of implementing.";
215
246
  var INTENT_PATTERN = /\b(let me|i['’]ll|i will|i am going to|i['’]m going to|now i|next i|let's|let us)\b/i;
216
247
  var CONCRETE_ACTION_STEMS = [
217
248
  "add",
@@ -294,8 +325,10 @@ var ACTION_OBJECT_CONNECTOR_PATTERN = /^(?:at|for|in|into|on|through|to)\s+/i;
294
325
  var ACTION_OBJECT_DETERMINER_PATTERN = /^(?:a|an|my|our|that|the|their|these|this|those|your)\s+/i;
295
326
  var ACTION_OBJECT_PATTERN = /^(?!(?:again|everyone|later|next|now|soon|then|you)\b)[`"'./~]*[\p{L}\p{N}_-]/iu;
296
327
  var CONDITIONAL_LEAD_IN_PATTERN = /\b(?:if|once|unless|until|when|whenever)\b/i;
297
- var CONDITIONAL_INVITATION_PATTERN = /\b(?:ask|give|point|say|send|share|tell)\b[\s\S]*\b(?:and|then)\s*$/i;
298
- var CONDITIONAL_OFFER_SUFFIX_PATTERN = /\b(?:if\s+(?:needed|necessary|requested)\b|if\b[^.!?]*\byou\b|when(?:ever)?\s+you\b)/i;
328
+ var CONDITIONAL_INVITATION_PATTERN = /\b(?:answer|approve|ask|confirm|give|point|reply|respond|say|send|share|tell|type)\b[\s\S]*\b(?:and|then)\s*$/i;
329
+ var CONDITIONAL_OFFER_SUFFIX_PATTERN = /\b(?:if\s+(?:needed|necessary|requested|approved|confirmed)\b|(?:if|after|once|until|unless|when(?:ever)?|as\s+soon\s+as|provided|assuming)\b[^.!?]*\byou\b|(?:upon|on|after|with|pending|awaiting|following)\s+(?:your\s+|the\s+operator(?:'s)?\s+)?(?:approval|go-?ahead|confirmation|sign-?off|decision|word|green\s+light|okay|ok)\b)/i;
330
+ var OPERATOR_WAIT_LEAD_PATTERN = /\b(?:await(?:ing)?|pending|waiting\s+(?:for|on))\b/i;
331
+ var NEGATED_OR_HYPOTHETICAL_CLAUSE_PATTERN = /^\s*(?:not|never|would|could|might|may)\b/i;
299
332
  var LET_ME_KNOW_PATTERN = /\blet me know\b/i;
300
333
  var DEFERRAL_LEAD_PATTERN = /^\s*(?:just\s+|simply\s+|now\s+)?(?:wait|hold\s+off|hold|stand\s+by|pause|defer)\b/i;
301
334
  var COMPLETION_PATTERN = /^\s*(?:all\s+done|done|complete|completed|all\s+set)\b|^\s*(?:here(?:'s| is)\s+)?(?:a\s+)?summary\b|^\s*summary\s*:?$/i;
@@ -346,11 +379,12 @@ function announcesConcreteAction(sentence) {
346
379
  const intent = INTENT_PATTERN.exec(sentence);
347
380
  if (intent) {
348
381
  const leadIn = sentence.slice(0, intent.index);
349
- if (CONDITIONAL_LEAD_IN_PATTERN.test(leadIn) || CONDITIONAL_INVITATION_PATTERN.test(leadIn) || CONDITIONAL_OFFER_SUFFIX_PATTERN.test(sentence)) {
382
+ if (CONDITIONAL_LEAD_IN_PATTERN.test(leadIn) || CONDITIONAL_INVITATION_PATTERN.test(leadIn) || OPERATOR_WAIT_LEAD_PATTERN.test(leadIn) || CONDITIONAL_OFFER_SUFFIX_PATTERN.test(sentence)) {
350
383
  return false;
351
384
  }
352
385
  const clause = sentence.slice(intent.index + intent[0].length);
353
386
  if (DEFERRAL_LEAD_PATTERN.test(clause)) return false;
387
+ if (NEGATED_OR_HYPOTHETICAL_CLAUSE_PATTERN.test(clause)) return false;
354
388
  if (hasActionWithObject(clause)) return true;
355
389
  if (CONDITIONAL_LEAD_IN_PATTERN.test(clause)) return false;
356
390
  return namesToolTarget(clause);
@@ -399,7 +433,10 @@ function isQuestion(sentence) {
399
433
  }
400
434
 
401
435
  // src/domains/middleware/rules.ts
402
- var BUILTIN_MIDDLEWARE_RULE_DEFINITIONS = [STALLED_TURN_RULE_DEFINITION];
436
+ var BUILTIN_MIDDLEWARE_RULE_DEFINITIONS = [
437
+ STALLED_TURN_RULE_DEFINITION,
438
+ INJECTION_SCREEN_RULE
439
+ ];
403
440
  var BUILTIN_MIDDLEWARE_RULE_IDS = BUILTIN_MIDDLEWARE_RULE_DEFINITIONS.map((definition) => definition.rule.id);
404
441
  function listMiddlewareRuleDefinitions() {
405
442
  return BUILTIN_MIDDLEWARE_RULE_DEFINITIONS.map(cloneRuleDefinition);
@@ -1167,7 +1204,9 @@ function matchMarketplaceSkills(userText, entries, excludedNames) {
1167
1204
  const match = scorePromotionEntry(userText, entry);
1168
1205
  if (match) matches.push(match);
1169
1206
  }
1170
- return matches.sort((a, b) => b.score - a.score || a.entry.name.localeCompare(b.entry.name));
1207
+ return matches.sort(
1208
+ (a, b) => Number(b.matchedTrigger !== void 0) - Number(a.matchedTrigger !== void 0) || b.score - a.score || a.entry.name.localeCompare(b.entry.name)
1209
+ );
1171
1210
  }
1172
1211
  var OWN_MARKETPLACE_URL_PREFIX = "https://github.com/iowarp/clio-coder/";
1173
1212
  function isOwnMarketplaceSource(entry) {
@@ -2017,7 +2056,7 @@ function announceMemoryStepEndpoint(deps, complete) {
2017
2056
  init_esm_shims();
2018
2057
  var TASK_BOARD_REMINDER_REGISTRATION_ID = "observer.task-board-reminder";
2019
2058
  function taskBoardReminderMessage(steps) {
2020
- return `[Tasks] This request enumerates ${steps} steps. Before the first edit, declare the task board: tasks action="plan" with a title and one task per step, then work them one at a time ("start", then "done" with an evidence note).`;
2059
+ return `[Tasks] This request enumerates ${steps} steps. Before the first edit, declare the task board: tasks action="plan" with a title and one task per authorized step, then work them one at a time ("start", then "done" with an evidence note). A plan does not authorize implementation: for proposed work awaiting an operator go-ahead, use action="block" with a note naming the pending operator decision, or action="drop", and wait.`;
2021
2060
  }
2022
2061
  function countEnumeratedSteps(text) {
2023
2062
  const value = text ?? "";
@@ -2078,7 +2117,7 @@ function buildOpenTasksMessage(board) {
2078
2117
  const rows = open.map((task) => ` ${task.status === "active" ? "[>]" : "[ ]"} ${task.id} ${task.title}`);
2079
2118
  return `[Clio Coder] task board "${board.title}" still has ${open.length} of ${counts.total} task(s) open:
2080
2119
  ${rows.join("\n")}
2081
- Continue working them, or record the honest state on the board: tasks action="done" with an evidence note, action="block" with a reason, or action="drop". Do not end the turn with a stale board.`;
2120
+ Continue only work already authorized by the operator. This reminder and a self-created plan are not authorization to implement a proposal. If implementation awaits an operator decision, use tasks action="block" with a note naming that pending operator decision, or action="drop"; then wait for an explicit operator go-ahead. A skill-install choice does not authorize implementation. Otherwise record the honest state on the board: tasks action="done" with an evidence note, action="block" with a reason, or action="drop". Do not end the turn with a stale board.`;
2082
2121
  }
2083
2122
  function createTaskNudgeRegistration(options) {
2084
2123
  return {
@@ -2913,6 +2952,10 @@ function userHookToRegistration(hook, deps) {
2913
2952
  evaluate: (input) => {
2914
2953
  if (!hook.enabled) return [];
2915
2954
  try {
2955
+ if (deps.isTrusted?.() === false) {
2956
+ deps.recordReceipt({ ...baseReceipt(input), outcome: "skipped" });
2957
+ return [];
2958
+ }
2916
2959
  return evaluateHook(hook, deps, baseReceipt(input));
2917
2960
  } catch {
2918
2961
  deps.recordReceipt({ ...baseReceipt(input), outcome: "skipped" });
@@ -2964,16 +3007,8 @@ function evaluateHook(hook, deps, base) {
2964
3007
  init_esm_shims();
2965
3008
  var import_yaml = __toESM(require_dist(), 1);
2966
3009
  import { spawnSync } from "node:child_process";
2967
- import { readFileSync as readFileSync3 } from "node:fs";
2968
- import { join } from "node:path";
2969
3010
  var COMMAND_OUTPUT_MAX_BYTES = 1024 * 1024;
2970
- function readBatch(source, filePath, fileIssues) {
2971
- let text;
2972
- try {
2973
- text = readFileSync3(filePath, "utf8");
2974
- } catch {
2975
- return null;
2976
- }
3011
+ function readBatch(source, filePath, text, fileIssues) {
2977
3012
  try {
2978
3013
  const parsed = (0, import_yaml.parse)(text);
2979
3014
  return { source, declarations: parsed ?? [] };
@@ -3006,31 +3041,47 @@ function readHookSources(options) {
3006
3041
  }
3007
3042
  batches.push({ source, declarations: entry.declarations });
3008
3043
  }
3009
- const projectBatch = readBatch(
3010
- { origin: "project", sourcePath: ".clio-coder/hooks.yaml" },
3011
- join(options.cwd, ".clio-coder", "hooks.yaml"),
3012
- fileIssues
3013
- );
3014
- if (projectBatch) batches.push(projectBatch);
3015
- const localBatch = readBatch(
3016
- { origin: "project.local", sourcePath: ".clio-coder/hooks.local.yaml" },
3017
- join(options.cwd, ".clio-coder", "hooks.local.yaml"),
3018
- fileIssues
3019
- );
3020
- if (localBatch) batches.push(localBatch);
3021
- return { batches, fileIssues };
3044
+ const projectSurface = captureProjectSurface(options.cwd, "hooks");
3045
+ for (const [index, file] of projectSurface.files.entries()) {
3046
+ const source = {
3047
+ origin: index === 0 ? "project" : "project.local",
3048
+ sourcePath: index === 0 ? ".clio-coder/hooks.yaml" : ".clio-coder/hooks.local.yaml"
3049
+ };
3050
+ if (file.error !== void 0) fileIssues.push({ source, message: file.error });
3051
+ if (file.text === null) continue;
3052
+ if (projectSurface.verdict !== "trusted") {
3053
+ fileIssues.push({ source, message: projectSurfaceTrustNotice(projectSurface, file.path) });
3054
+ continue;
3055
+ }
3056
+ const batch = readBatch(source, file.path, file.text, fileIssues);
3057
+ if (batch) batches.push(batch);
3058
+ }
3059
+ return { batches, fileIssues, projectSurface };
3022
3060
  }
3023
3061
  function buildUserHookRegistrations(options) {
3024
3062
  const workspaceRoot = options.workspaceRoot ?? options.cwd;
3025
3063
  const readOptions = { cwd: options.cwd };
3026
3064
  if (options.capturedSources !== void 0) readOptions.capturedSources = options.capturedSources;
3027
- const { batches, fileIssues } = readHookSources(readOptions);
3065
+ const { batches, fileIssues, projectSurface } = readHookSources(readOptions);
3028
3066
  const loaded = loadUserHooks(batches, { workspaceRoot });
3029
3067
  const runCommand = options.runCommand ?? spawnSyncCommandRunner();
3068
+ let reportedUntrusted = false;
3069
+ const projectStillTrusted = () => {
3070
+ const current = captureProjectSurface(options.cwd, "hooks");
3071
+ if (current.verdict === "trusted" && current.contentHash === projectSurface.contentHash) return true;
3072
+ if (!reportedUntrusted) {
3073
+ reportedUntrusted = true;
3074
+ options.report?.(
3075
+ `[clio-coder:hooks] project hooks changed or trust was revoked; hooks skipped. Review with clio-coder config trust hooks, then reload extensions.`
3076
+ );
3077
+ }
3078
+ return false;
3079
+ };
3030
3080
  const registrations = loaded.hooks.map(
3031
3081
  (hook) => userHookToRegistration(hook, {
3032
3082
  recordReceipt: options.recordReceipt,
3033
3083
  runCommand,
3084
+ ...hook.source.origin === "project" || hook.source.origin === "project.local" ? { isTrusted: projectStillTrusted } : {},
3034
3085
  ...options.now !== void 0 ? { now: options.now } : {}
3035
3086
  })
3036
3087
  );
@@ -3039,8 +3090,9 @@ function buildUserHookRegistrations(options) {
3039
3090
  function spawnSyncCommandRunner() {
3040
3091
  return (argv, options) => {
3041
3092
  const [command, ...args] = argv;
3042
- const attribution = withManagedGitCommitAttributionEnvironment(process.env, {
3093
+ const attribution = withManagedGitCommitAttributionEnvironment(buildSafeToolEnv(), {
3043
3094
  cwd: options.cwd ?? process.cwd(),
3095
+ enabled: gitCommitAttributionEnabled(process.env),
3044
3096
  evidence: {}
3045
3097
  });
3046
3098
  reportCommitAttributionDiagnostic(attribution.diagnostic);
@@ -3096,4 +3148,4 @@ export {
3096
3148
  createWatchdogRegistration,
3097
3149
  MiddlewareDomainModule
3098
3150
  };
3099
- //# sourceMappingURL=chunk-XULDXHTN.js.map
3151
+ //# sourceMappingURL=chunk-BT7HGDOX.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/core/guardrails.ts
7
7
  init_esm_shims();
@@ -65,4 +65,4 @@ export {
65
65
  configureGuardrails,
66
66
  resolveGuardrail
67
67
  };
68
- //# sourceMappingURL=chunk-S66XZJOF.js.map
68
+ //# sourceMappingURL=chunk-C27U2TYG.js.map
@@ -2,10 +2,10 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  ToolNames,
4
4
  isBuiltinToolName
5
- } from "./chunk-4NSRCOYP.js";
5
+ } from "./chunk-EHOSNVVM.js";
6
6
  import {
7
7
  init_esm_shims
8
- } from "./chunk-3R73A4XB.js";
8
+ } from "./chunk-ECBHH7LU.js";
9
9
 
10
10
  // src/tools/profiles.ts
11
11
  init_esm_shims();
@@ -98,4 +98,4 @@ export {
98
98
  assertToolProfileEnforceable,
99
99
  applyToolProfile
100
100
  };
101
- //# sourceMappingURL=chunk-QZWQA4DE.js.map
101
+ //# sourceMappingURL=chunk-CBSKDFWL.js.map
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  resolveClioDirs
4
- } from "./chunk-BYP5D4HI.js";
4
+ } from "./chunk-CTTI7G3T.js";
5
5
  import {
6
6
  init_esm_shims
7
- } from "./chunk-3R73A4XB.js";
7
+ } from "./chunk-ECBHH7LU.js";
8
8
 
9
9
  // src/core/compile-cache.ts
10
10
  init_esm_shims();
@@ -69,4 +69,4 @@ export {
69
69
  workerCompileCacheEnvironment,
70
70
  deleteInjectedCompileCacheFrom
71
71
  };
72
- //# sourceMappingURL=chunk-2LEAKD4C.js.map
72
+ //# sourceMappingURL=chunk-CKK25WN3.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/core/xdg.ts
7
7
  init_esm_shims();
@@ -123,4 +123,4 @@ export {
123
123
  stateRootRemoved,
124
124
  resetXdgCache
125
125
  };
126
- //# sourceMappingURL=chunk-BYP5D4HI.js.map
126
+ //# sourceMappingURL=chunk-CTTI7G3T.js.map