@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
@@ -1,14 +1,12 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
- loadProjectVerifierCatalog
4
- } from "./chunk-7DICMOS6.js";
5
- import {
6
- pathBoundaryCovers,
7
- resolvePathBoundary
8
- } from "./chunk-HHV2GANA.js";
3
+ projectSurfaceTrust,
4
+ safetySurfaceTrustHash,
5
+ workspaceTrustDirectory
6
+ } from "./chunk-NTK3WTHM.js";
9
7
  import {
10
8
  classify
11
- } from "./chunk-B4OAX3SI.js";
9
+ } from "./chunk-LUL5Z66S.js";
12
10
  import {
13
11
  extractCommandCdTargets,
14
12
  extractCommandDeleteTargets,
@@ -16,32 +14,39 @@ import {
16
14
  inlineShellScript,
17
15
  invokesClioSkillMutation,
18
16
  scanShellLike
19
- } from "./chunk-I7ZPNEJM.js";
20
- import {
21
- artifactDefaultPath
22
- } from "./chunk-GYV6VZOC.js";
17
+ } from "./chunk-M6TAYK66.js";
23
18
  import {
24
19
  canonicalizeExistingPath
25
- } from "./chunk-ECH6PKUQ.js";
20
+ } from "./chunk-KQ6IDQIB.js";
21
+ import {
22
+ loadProjectVerifierCatalog
23
+ } from "./chunk-MDU3C27C.js";
24
+ import {
25
+ pathBoundaryCovers,
26
+ resolvePathBoundary
27
+ } from "./chunk-R2P2U3ZS.js";
28
+ import {
29
+ artifactDefaultPath
30
+ } from "./chunk-NTTS3O53.js";
26
31
  import {
27
32
  ToolNames
28
- } from "./chunk-K6BSR66V.js";
33
+ } from "./chunk-EHOSNVVM.js";
29
34
  import {
30
35
  foreignAgentDirs
31
- } from "./chunk-KXDSS5WJ.js";
36
+ } from "./chunk-5CY4Q6QI.js";
32
37
  import {
33
38
  resolvePackageRoot
34
- } from "./chunk-IWHMRKLL.js";
39
+ } from "./chunk-E3LEPLQ2.js";
35
40
  import {
36
41
  require_dist
37
- } from "./chunk-APJ265NV.js";
42
+ } from "./chunk-B5GGDIHT.js";
38
43
  import {
39
44
  clioConfigDir
40
- } from "./chunk-BYP5D4HI.js";
45
+ } from "./chunk-CTTI7G3T.js";
41
46
  import {
42
47
  __toESM,
43
48
  init_esm_shims
44
- } from "./chunk-3R73A4XB.js";
49
+ } from "./chunk-ECBHH7LU.js";
45
50
 
46
51
  // src/domains/safety/path-policy.ts
47
52
  init_esm_shims();
@@ -149,6 +154,7 @@ function normalizeSeparators(value) {
149
154
  // src/domains/safety/policy-engine.ts
150
155
  init_esm_shims();
151
156
  import { createHash as createHash2 } from "node:crypto";
157
+ import { readFileSync as readFileSync3 } from "node:fs";
152
158
  import path4 from "node:path";
153
159
 
154
160
  // src/domains/safety/default-path-policy.ts
@@ -212,8 +218,10 @@ var DEFAULT_DAMAGE_CONTROL_PATH_POLICY = {
212
218
  // widen its own permissions in two tool calls. Both are authored by the
213
219
  // operator through the CLI (`clio-coder verifiers author` lands nothing
214
220
  // before `--yes`), so model-side writes and deletes are refused.
221
+ // Skills also refuse model-side writes and deletes; installs go through `clio-coder skills install`.
215
222
  ".clio-coder/safety.yaml",
216
223
  ".clio-coder/verifiers.yaml",
224
+ ".clio-coder/skills/",
217
225
  "/etc/",
218
226
  "/usr/",
219
227
  "/bin/",
@@ -267,12 +275,20 @@ function mergePathPolicyInputs(base, override) {
267
275
  noDeletePaths: [...base.noDeletePaths ?? [], ...override.noDeletePaths ?? []]
268
276
  };
269
277
  }
278
+ var OPERATOR_PATH_POLICY = {
279
+ zeroAccessPaths: DEFAULT_DAMAGE_CONTROL_PATH_POLICY.zeroAccessPaths?.filter((entry) => entry.startsWith("~/")) ?? [],
280
+ readOnlyPaths: DEFAULT_DAMAGE_CONTROL_PATH_POLICY.readOnlyPaths?.filter(
281
+ (entry) => entry.startsWith("~/") || entry.startsWith("/") || entry.startsWith(".clio-coder/")
282
+ ) ?? [],
283
+ noWritePaths: DEFAULT_DAMAGE_CONTROL_PATH_POLICY.noWritePaths ?? [],
284
+ noDeletePaths: DEFAULT_DAMAGE_CONTROL_PATH_POLICY.noDeletePaths?.filter((entry) => entry.startsWith("~/")) ?? []
285
+ };
270
286
 
271
287
  // src/domains/safety/project-policy.ts
272
288
  init_esm_shims();
273
289
  var import_yaml = __toESM(require_dist(), 1);
274
290
  import { createHash } from "node:crypto";
275
- import { existsSync, readFileSync } from "node:fs";
291
+ import { existsSync, readFileSync, realpathSync } from "node:fs";
276
292
  import path2 from "node:path";
277
293
  var POLICY_RELATIVE_PATH = path2.join(".clio-coder", "safety.yaml");
278
294
  var ACTION_CLASSES = /* @__PURE__ */ new Set([
@@ -313,7 +329,7 @@ function projectSafetyPolicyPath(cwd = process.cwd()) {
313
329
  }
314
330
  }
315
331
  function loadProjectSafetyPolicy(cwd = process.cwd()) {
316
- const policyPath = projectSafetyPolicyPath(cwd);
332
+ let policyPath = projectSafetyPolicyPath(cwd);
317
333
  if (policyPath === null) {
318
334
  return {
319
335
  path: null,
@@ -327,6 +343,7 @@ function loadProjectSafetyPolicy(cwd = process.cwd()) {
327
343
  }
328
344
  let raw;
329
345
  try {
346
+ policyPath = realpathSync(policyPath);
330
347
  raw = readFileSync(policyPath, "utf8");
331
348
  } catch (err) {
332
349
  return {
@@ -770,13 +787,38 @@ function expandHome(value) {
770
787
  return value === "~" ? homedir2() : value.startsWith("~/") ? path3.join(homedir2(), value.slice(2)) : value;
771
788
  }
772
789
 
790
+ // src/domains/safety/workspace-trust.ts
791
+ init_esm_shims();
792
+ function gateProjectSafetyPolicy(workspaceRoot, policy) {
793
+ if (policy.path === null) return policy;
794
+ const trustVerdict = policy.hash === null ? "untrusted" : projectSurfaceTrust(workspaceRoot, "safety", safetySurfaceTrustHash(policy.path, policy.hash));
795
+ if (trustVerdict === "trusted") return { ...policy, trustVerdict };
796
+ return {
797
+ ...policy,
798
+ trustVerdict,
799
+ // This is the admitted empty policy, whose execution defaults are valid.
800
+ // Unapproved parse failures retain diagnostics below but cannot acquire the
801
+ // authority to block execution. An approved malformed policy stays invalid.
802
+ valid: true,
803
+ commands: [],
804
+ pathPolicy: {},
805
+ disableDefaultPathPolicy: false,
806
+ errors: [
807
+ ...policy.errors,
808
+ `${policy.path} is ${trustVerdict}; project safety ignored. Review with clio-coder config trust safety.`
809
+ ]
810
+ };
811
+ }
812
+
773
813
  // src/domains/safety/policy-engine.ts
774
814
  var BUILTIN_ALLOWLIST = [
775
815
  { id: "builtin:pwd", re: /^pwd$/ },
776
816
  { id: "builtin:ls", re: /^ls(?:\s+(-[A-Za-z0-9]+|\.[/\w.-]*|[/\w.-]+))*$/ },
777
817
  { id: "builtin:git-status", re: /^git\s+status(?:\s+--short|\s+--branch|\s+-sb)*$/ },
778
818
  { id: "builtin:git-diff", re: /^git\s+diff(?:\s+--cached|\s+--stat|\s+--name-only|\s+--\s+[\w./-]+)*$/ },
779
- { id: "builtin:git-log", re: /^git\s+log\s+--oneline(?:\s+-n\s+[1-9]\d{0,2})?(?:\s+--\s+[\w./-]+)?$/ },
819
+ { id: "builtin:git-log", re: /^git\s+log\s+--oneline(?:\s+-n\s+[1-9]\d{0,2})?(?:\s+--\s+[\w./-]+)?$/ }
820
+ ];
821
+ var PROJECT_SCRIPT_COMMANDS = [
780
822
  { id: "builtin:npm-test", re: /^npm\s+(?:test|run\s+test)(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
781
823
  { id: "builtin:npm-lint", re: /^npm\s+run\s+lint(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
782
824
  { id: "builtin:npm-build", re: /^npm\s+run\s+build(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
@@ -821,10 +863,13 @@ function createSafetyPolicyEngine(options = {}) {
821
863
  const writeRoots = (options.writeRoots ?? []).map((root) => resolvePathBoundary(writeRootCwd, root));
822
864
  const skillRoots = activeClioSkillRoots(cwd);
823
865
  const packs = options.rulePacks ?? getCachedDefaultRulePacks();
824
- const projectPolicy = options.projectPolicy ?? loadProjectSafetyPolicy(cwd);
825
- const projectPolicyRoot = projectPolicy.path === null ? cwd : path4.dirname(path4.dirname(canonicalizeExistingPath(projectPolicy.path)));
866
+ const projectPolicy = options.projectPolicy ?? gateProjectSafetyPolicy(cwd, loadProjectSafetyPolicy(cwd));
867
+ const projectPolicyRoot = projectPolicy.path === null ? cwd : path4.dirname(path4.dirname(path4.resolve(projectPolicy.path)));
826
868
  const pathPolicyInput = projectPolicy.disableDefaultPathPolicy ? projectPolicy.pathPolicy : mergePathPolicyInputs(DEFAULT_DAMAGE_CONTROL_PATH_POLICY, projectPolicy.pathPolicy);
827
- const expandedDefaults = projectPolicy.disableDefaultPathPolicy ? pathPolicyInput : mergePathPolicyInputs(pathPolicyInput, { zeroAccessPaths: clioCredentialStorePaths() });
869
+ const expandedDefaults = mergePathPolicyInputs(mergePathPolicyInputs(pathPolicyInput, OPERATOR_PATH_POLICY), {
870
+ zeroAccessPaths: clioCredentialStorePaths(),
871
+ readOnlyPaths: [...clioSkillsRootPaths(), path4.join(clioConfigDir(), "settings.yaml"), workspaceTrustDirectory()]
872
+ });
828
873
  const pathPolicy = compilePathPolicy(expandedDefaults, projectPolicyRoot);
829
874
  const zeroAccessPolicy = {
830
875
  root: pathPolicy.root,
@@ -885,6 +930,27 @@ function createSafetyPolicyEngine(options = {}) {
885
930
  return blockDecision(base, blockInput);
886
931
  }
887
932
  const mutationCommand = call.tool === ToolNames.Bash ? command : catalogCommand;
933
+ if (mutationCommand !== null && invokesTrustMutation(mutationCommand)) {
934
+ return blockDecision(base, {
935
+ reasonCode: "trust-authority",
936
+ ruleId: "trust-authority",
937
+ reasons: ["workspace trust grants require the operator CLI"],
938
+ policySource: "builtin-classifier"
939
+ });
940
+ }
941
+ if (skillMutationReason(
942
+ [path4.join(clioConfigDir(), "settings.yaml"), workspaceTrustDirectory()],
943
+ pathPolicyTargets(catalogCommand === null ? call : { tool: ToolNames.Bash, args: { command: catalogCommand } }),
944
+ callCwd,
945
+ mutationCommand
946
+ ) !== null) {
947
+ return blockDecision(base, {
948
+ reasonCode: "path-policy:readOnlyPaths",
949
+ ruleId: "path-policy:readOnlyPaths",
950
+ reasons: ["Clio settings and workspace trust records are operator-owned and cannot be mutated by tools"],
951
+ policySource: "builtin-classifier"
952
+ });
953
+ }
888
954
  const skillReason = mutationCommand !== null && invokesClioSkillMutation(mutationCommand) ? "skill installation and updates require the operator CLI or an explicit operator install choice; draft outside active skill roots" : skillMutationReason(
889
955
  skillRoots,
890
956
  pathPolicyTargets(catalogCommand === null ? call : { tool: ToolNames.Bash, args: { command: catalogCommand } }),
@@ -955,8 +1021,25 @@ function createSafetyPolicyEngine(options = {}) {
955
1021
  };
956
1022
  return posture === "confirmed" ? allowDecision(base, input) : askDecision(base, input);
957
1023
  }
958
- if (call.tool === ToolNames.Bash && classification.actionClass === "execute") {
959
- const bash = evaluateBashPolicy(command ?? "", callCwd, cwd, posture, projectPolicy);
1024
+ const packageCommand = call.tool === ToolNames.Verify && catalogCheck === null && typeof call.args?.check === "string" && call.args.check !== "frontend" ? `npm run ${call.args.check}` : null;
1025
+ if ((call.tool === ToolNames.Bash || catalogCheck !== null || packageCommand !== null) && classification.actionClass === "execute") {
1026
+ const bash = evaluateBashPolicy(
1027
+ catalogCheck?.command ?? packageCommand ?? command ?? "",
1028
+ catalogCheck === null ? callCwd : path4.resolve(cwd, catalogCheck.cwd),
1029
+ cwd,
1030
+ posture,
1031
+ projectPolicy
1032
+ );
1033
+ if ((catalogCheck !== null || packageCommand !== null) && bash.kind === "allow" && bash.execRecognition !== "recognized" && posture !== "confirmed") {
1034
+ return askDecision(base, {
1035
+ ...bash,
1036
+ reasonCode: "project-verifier-confirm",
1037
+ reasons: [
1038
+ ...bash.reasons,
1039
+ `Repository verifier requires confirmation or an approved safety declaration: ${catalogCommand ?? packageCommand}`
1040
+ ]
1041
+ });
1042
+ }
960
1043
  if (bash.kind === "block") return blockDecision(base, bash);
961
1044
  if (bash.kind === "ask") return askDecision(base, bash);
962
1045
  return allowDecision(base, bash);
@@ -968,15 +1051,7 @@ function createSafetyPolicyEngine(options = {}) {
968
1051
  };
969
1052
  if (hit?.match.ruleId !== void 0) allowInput.ruleId = hit.match.ruleId;
970
1053
  if (hit?.match !== void 0) allowInput.match = hit.match;
971
- if (classification.actionClass === "execute") {
972
- allowInput.execRecognition = catalogCheck === null ? "recognized" : "unrecognized";
973
- if (catalogCheck !== null) {
974
- allowInput.reasons = [
975
- ...allowInput.reasons,
976
- `project verifier '${catalogCheck.id}' runs declared argv: ${catalogCommand ?? ""}`
977
- ];
978
- }
979
- }
1054
+ if (classification.actionClass === "execute") allowInput.execRecognition = "recognized";
980
1055
  return allowDecision(base, allowInput);
981
1056
  },
982
1057
  metadata() {
@@ -989,6 +1064,8 @@ function createSafetyPolicyEngine(options = {}) {
989
1064
  projectPolicyHash: projectPolicy.hash,
990
1065
  projectPolicyValid: projectPolicy.valid,
991
1066
  projectPolicyErrors: [...projectPolicy.errors, ...pathPolicy.diagnostics],
1067
+ disableDefaultPathPolicy: projectPolicy.disableDefaultPathPolicy,
1068
+ workspaceTrustVerdict: projectPolicy.trustVerdict ?? "trusted",
992
1069
  cwd
993
1070
  };
994
1071
  }
@@ -1001,6 +1078,13 @@ function clioCredentialStorePaths() {
1001
1078
  return [];
1002
1079
  }
1003
1080
  }
1081
+ function clioSkillsRootPaths() {
1082
+ try {
1083
+ return [path4.join(clioConfigDir(), "skills")];
1084
+ } catch {
1085
+ return [];
1086
+ }
1087
+ }
1004
1088
  var SAFE_PRESENCE_RE = /^\s*grep\s+(?:-(?:q|sq|qs)\s+)('[^']*'|"[^"]*"|\S+)\s+\S+\s*$/;
1005
1089
  function isSafePresenceCheck(command) {
1006
1090
  const match = SAFE_PRESENCE_RE.exec(command);
@@ -1080,7 +1164,18 @@ function pathPolicyTargets(call) {
1080
1164
  return [];
1081
1165
  }
1082
1166
  }
1083
- function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
1167
+ function evaluateBashPolicy(input, callCwd, workspaceRoot, posture, policy) {
1168
+ if (typeof input !== "string" && !input.every((arg) => /^[\w=./:-]+$/u.test(arg))) {
1169
+ return {
1170
+ kind: posture === "confirmed" ? "allow" : "ask",
1171
+ ruleId: "verify-unrecognized-argv",
1172
+ reasonCode: "verify-unrecognized-argv",
1173
+ reasons: ["project verifier argv is outside the bare-word no-prompt command set"],
1174
+ policySource: "builtin-command-allowlist",
1175
+ execRecognition: "unrecognized"
1176
+ };
1177
+ }
1178
+ const command = typeof input === "string" ? input : input.join(" ");
1084
1179
  if (command.trim().length === 0) {
1085
1180
  return {
1086
1181
  kind: "block",
@@ -1090,6 +1185,16 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
1090
1185
  policySource: "builtin-command-allowlist"
1091
1186
  };
1092
1187
  }
1188
+ if (typeof input === "string" && (/\$(?:[A-Za-z_{0-9@*#?!-])/.test(command) || /(?:^|[\s;&|])(?:python[\d.]*|node|ruby|perl|php|lua)\s+(?:[^\n]*?\s)?-[ce]\b/.test(command)) && posture !== "confirmed") {
1189
+ return {
1190
+ kind: "ask",
1191
+ reasonCode: "bash-hidden-content",
1192
+ ruleId: "bash-hidden-content",
1193
+ reasons: ["shell variables or interpreter source hide paths from the safety scan and require one-shot confirmation"],
1194
+ policySource: "builtin-command-allowlist",
1195
+ execRecognition: "unrecognized"
1196
+ };
1197
+ }
1093
1198
  const projectMatch = matchingProjectCommand(policy, command, callCwd);
1094
1199
  if (projectMatch) {
1095
1200
  const base = {
@@ -1132,15 +1237,34 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
1132
1237
  execRecognition: "unrecognized"
1133
1238
  };
1134
1239
  }
1240
+ if (PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(recognitionCommand))) {
1241
+ return {
1242
+ kind: posture === "confirmed" ? "allow" : "ask",
1243
+ reasonCode: "project-script-confirm",
1244
+ ruleId: "project-script-confirm",
1245
+ reasons: [
1246
+ "Repository-authored code requires one-shot confirmation or an operator-approved safety command declaration.",
1247
+ projectScriptPreview(recognitionCommand, callCwd)
1248
+ ],
1249
+ policySource: "builtin-command-allowlist",
1250
+ execRecognition: "unrecognized"
1251
+ };
1252
+ }
1135
1253
  const chain = recognizeCommandChain(recognitionCommand, callCwd, workspaceRoot, policy);
1136
1254
  if (chain !== null) {
1137
1255
  const chainReasons = [`every step of the && chain is recognized: ${chain.ruleIds.join(", ")}`];
1256
+ if (chain.requiresConfirmation) {
1257
+ for (const segment of recognitionCommand.split("&&").map((part) => part.trim())) {
1258
+ if (PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(segment)))
1259
+ chainReasons.push(projectScriptPreview(segment, callCwd));
1260
+ }
1261
+ }
1138
1262
  if (chain.requiresConfirmation && posture !== "confirmed") {
1139
1263
  return {
1140
1264
  kind: "ask",
1141
1265
  ruleId: "bash-recognized-chain",
1142
1266
  reasonCode: "bash-recognized-chain",
1143
- reasons: [...chainReasons, "project policy requires confirmation for one step"],
1267
+ reasons: [...chainReasons, "repository code or project policy requires confirmation for one step"],
1144
1268
  policySource: "builtin-command-allowlist",
1145
1269
  execRecognition: "recognized"
1146
1270
  };
@@ -1155,6 +1279,20 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
1155
1279
  };
1156
1280
  }
1157
1281
  if (hasSequencingOperators(command)) {
1282
+ const scriptSegments = recognitionCommand.split(/&&|\|\||[;|\n]/).map((part) => part.trim()).filter((part) => PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(part)));
1283
+ if (scriptSegments.length > 0 && posture !== "confirmed") {
1284
+ return {
1285
+ kind: "ask",
1286
+ ruleId: "project-script-confirm",
1287
+ reasonCode: "project-script-confirm",
1288
+ reasons: [
1289
+ "Repository scripts in compound commands require one-shot confirmation",
1290
+ ...scriptSegments.map((part) => projectScriptPreview(part, callCwd))
1291
+ ],
1292
+ policySource: "builtin-command-allowlist",
1293
+ execRecognition: "unrecognized"
1294
+ };
1295
+ }
1158
1296
  return {
1159
1297
  kind: "allow",
1160
1298
  ruleId: "bash-shell-operators",
@@ -1304,6 +1442,11 @@ function recognizeCommandChain(command, callCwd, workspaceRoot, policy) {
1304
1442
  if (projectMatch.requireConfirmation) requiresConfirmation = true;
1305
1443
  continue;
1306
1444
  }
1445
+ if (PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(rendered))) {
1446
+ ruleIds.push("project-script-confirm");
1447
+ requiresConfirmation = true;
1448
+ continue;
1449
+ }
1307
1450
  const builtin = BUILTIN_ALLOWLIST.find((entry) => entry.re.test(rendered));
1308
1451
  if (builtin === void 0) return null;
1309
1452
  ruleIds.push(builtin.id);
@@ -1338,7 +1481,13 @@ function cwdArg(args, fallback) {
1338
1481
  const resolved = typeof args?.cwd === "string" && args.cwd.length > 0 ? path4.resolve(fallback, args.cwd) : fallback;
1339
1482
  return canonicalizeExistingPath(resolved);
1340
1483
  }
1341
- var CONTENT_BEARING_TOOLS = /* @__PURE__ */ new Set([ToolNames.Write, ToolNames.Edit, ToolNames.Artifact]);
1484
+ var CONTENT_BEARING_TOOLS = /* @__PURE__ */ new Set([
1485
+ ToolNames.Write,
1486
+ ToolNames.Edit,
1487
+ ToolNames.Artifact,
1488
+ ToolNames.Dispatch,
1489
+ ToolNames.Tasks
1490
+ ]);
1342
1491
  function damageControlScan(call) {
1343
1492
  if (!CONTENT_BEARING_TOOLS.has(call.tool)) return serializeArgs(call.args);
1344
1493
  const pathArg2 = call.args?.path;
@@ -1389,10 +1538,30 @@ function packPayload(rules) {
1389
1538
  ...rule.ask !== void 0 ? { ask: rule.ask } : {}
1390
1539
  }));
1391
1540
  }
1541
+ function invokesTrustMutation(command) {
1542
+ const words = scanShellLike(command).filter((token) => !token.operator).map((token) => token.value);
1543
+ return words.some((word, index) => word === "config" && words[index + 1] === "trust") || /\bconfig\s+trust\b/.test(inlineShellScript(command) ?? "");
1544
+ }
1545
+ function projectScriptPreview(command, cwd) {
1546
+ const match = /^npm\s+(?:run\s+)?([\w:-]+)/.exec(command);
1547
+ if (match) {
1548
+ try {
1549
+ const manifest = JSON.parse(readFileSync3(path4.join(cwd, "package.json"), "utf8"));
1550
+ const name = match[1] ?? "test";
1551
+ const scripts = [`pre${name}`, name, `post${name}`].flatMap(
1552
+ (key) => typeof manifest.scripts?.[key] === "string" ? [`${key}: ${manifest.scripts[key]}`] : []
1553
+ );
1554
+ return `package.json scripts (repository data): ${scripts.join("; ") || "no script resolved"}`;
1555
+ } catch {
1556
+ return "package.json script body could not be resolved; repository code will execute.";
1557
+ }
1558
+ }
1559
+ return `Repository command: ${command}. Its test/build files and dependencies execute with the child process permissions.`;
1560
+ }
1392
1561
 
1393
1562
  export {
1394
1563
  formatModelRejection,
1395
1564
  WRITE_ROOT_REFUSED_TOOLS,
1396
1565
  createSafetyPolicyEngine
1397
1566
  };
1398
- //# sourceMappingURL=chunk-XIVNBFZS.js.map
1567
+ //# sourceMappingURL=chunk-4SVIVOMC.js.map
@@ -1,25 +1,28 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ isSecretArgKey
4
+ } from "./chunk-EFSEIZE6.js";
2
5
  import {
3
6
  gitCommitAttributionEnabled,
4
7
  reportCommitAttributionDiagnostic,
5
8
  withManagedGitCommitAttributionEnvironment
6
- } from "./chunk-JIEGK6UF.js";
9
+ } from "./chunk-LTR5QCLS.js";
7
10
  import {
8
11
  clampTimerDelayMs
9
- } from "./chunk-EBY63B7G.js";
12
+ } from "./chunk-6EXUUOSN.js";
10
13
  import {
11
14
  AI_AGENT_NAME
12
- } from "./chunk-6EJMN2Y3.js";
15
+ } from "./chunk-ZTNFYMIO.js";
13
16
  import {
14
17
  init_esm_shims
15
- } from "./chunk-3R73A4XB.js";
18
+ } from "./chunk-ECBHH7LU.js";
16
19
 
17
20
  // src/core/bash-exec.ts
18
21
  init_esm_shims();
19
22
  import { spawn } from "node:child_process";
20
23
  import { StringDecoder } from "node:string_decoder";
21
24
  var BASH_HARD_CAP_BYTES = 16 * 1024 * 1024;
22
- var CLIO_CONTROL_ENV_KEYS = ["CLIO_CODER_INTERACTIVE"];
25
+ var CLIO_CONTROL_ENV_KEYS = ["CLIO_CODER_INTERACTIVE", "BASH_ENV", "ENV"];
23
26
  var BASH_UPDATE_THROTTLE_MS = 100;
24
27
  var SYSTEM_PROGRESS_SCHEDULER = {
25
28
  now: Date.now,
@@ -107,8 +110,10 @@ function createBashOutputProgressController(onUpdate, scheduler = SYSTEM_PROGRES
107
110
  }
108
111
  };
109
112
  }
110
- function buildToolEnv() {
111
- const env = { ...process.env };
113
+ function buildToolEnv(source = process.env) {
114
+ const env = { ...source };
115
+ for (const key of Object.keys(env))
116
+ if (isSecretArgKey(key) || key.startsWith("BASH_FUNC_")) Reflect.deleteProperty(env, key);
112
117
  env.AI_AGENT = AI_AGENT_NAME;
113
118
  for (const key of CLIO_CONTROL_ENV_KEYS) {
114
119
  Reflect.deleteProperty(env, key);
@@ -155,12 +160,8 @@ function captureLoginEnv() {
155
160
  async function bashSpawnPlan() {
156
161
  loginEnvCapture ??= captureLoginEnv();
157
162
  const captured = await loginEnvCapture;
158
- if (captured === null) return { mode: "-lc", env: buildToolEnv() };
159
- const env = { ...process.env, ...captured };
160
- env.AI_AGENT = AI_AGENT_NAME;
161
- for (const key of CLIO_CONTROL_ENV_KEYS) {
162
- Reflect.deleteProperty(env, key);
163
- }
163
+ if (captured === null) return { mode: "-c", env: buildToolEnv() };
164
+ const env = buildToolEnv({ ...process.env, ...captured });
164
165
  return { mode: "-c", env };
165
166
  }
166
167
  function combineBashOutput(result) {
@@ -182,6 +183,7 @@ async function runBashCommand(command, options = {}) {
182
183
  let timeoutId = null;
183
184
  let killGraceTimer = null;
184
185
  let killSent = false;
186
+ let pendingClose = null;
185
187
  const output = createBashOutputProgressController(options.onUpdate);
186
188
  const child = spawn("/bin/bash", [plan.mode, command], {
187
189
  ...options.cwd === void 0 ? {} : { cwd: options.cwd },
@@ -206,12 +208,37 @@ async function runBashCommand(command, options = {}) {
206
208
  }
207
209
  child.kill(signalName);
208
210
  };
211
+ const hasOwnedProcesses = () => {
212
+ const pid = child.pid;
213
+ if (pid === void 0) return false;
214
+ if (process.platform !== "win32") {
215
+ try {
216
+ process.kill(-pid, 0);
217
+ return true;
218
+ } catch (error) {
219
+ if (error.code === "EPERM") return true;
220
+ }
221
+ }
222
+ return child.exitCode === null && child.signalCode === null;
223
+ };
224
+ const resolveAfterCancellation = (result) => {
225
+ if (killGraceTimer !== null && hasOwnedProcesses()) {
226
+ pendingClose = () => resolve(result);
227
+ return;
228
+ }
229
+ clearKillGraceTimer();
230
+ resolve(result);
231
+ };
209
232
  const killChild = () => {
210
233
  if (killSent) return;
211
234
  killSent = true;
212
235
  sendSignal("SIGTERM");
213
236
  killGraceTimer = setTimeout(() => {
214
- sendSignal("SIGKILL");
237
+ killGraceTimer = null;
238
+ if (hasOwnedProcesses()) sendSignal("SIGKILL");
239
+ const finish = pendingClose;
240
+ pendingClose = null;
241
+ finish?.();
215
242
  }, 5e3);
216
243
  };
217
244
  function onAbort() {
@@ -238,10 +265,9 @@ async function runBashCommand(command, options = {}) {
238
265
  if (settled) return;
239
266
  settled = true;
240
267
  if (timeoutId) clearTimeout(timeoutId);
241
- clearKillGraceTimer();
242
268
  const finalOutput = output.settle();
243
269
  options.signal?.removeEventListener("abort", onAbort);
244
- resolve({
270
+ resolveAfterCancellation({
245
271
  error,
246
272
  ...finalOutput,
247
273
  exitCode: null,
@@ -254,7 +280,6 @@ async function runBashCommand(command, options = {}) {
254
280
  if (settled) return;
255
281
  settled = true;
256
282
  if (timeoutId) clearTimeout(timeoutId);
257
- clearKillGraceTimer();
258
283
  const finalOutput = output.settle();
259
284
  options.signal?.removeEventListener("abort", onAbort);
260
285
  const error = code === 0 && signalName === null ? null : {
@@ -263,7 +288,7 @@ async function runBashCommand(command, options = {}) {
263
288
  code: code ?? void 0,
264
289
  signal: signalName ?? void 0
265
290
  };
266
- resolve({
291
+ resolveAfterCancellation({
267
292
  error,
268
293
  ...finalOutput,
269
294
  exitCode: code,
@@ -280,4 +305,4 @@ export {
280
305
  combineBashOutput,
281
306
  runBashCommand
282
307
  };
283
- //# sourceMappingURL=chunk-NMJXSHBJ.js.map
308
+ //# sourceMappingURL=chunk-5A6XR3RJ.js.map