@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
@@ -0,0 +1,118 @@
1
+ import { strict as assert } from "node:assert";
2
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { dirname } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+
6
+ export const fixture = JSON.parse(readFileSync(new URL("./fixtures/source-explanation.json", import.meta.url), "utf8"));
7
+
8
+ // A bounded content screen, not a semantic judge. Root must still review the
9
+ // cited claims. In particular, schema success and pane lifecycle are not delivery.
10
+ export function assessExplanation(agentId, output, conformance) {
11
+ let value;
12
+ try {
13
+ value = JSON.parse(output);
14
+ } catch {
15
+ value = {};
16
+ }
17
+ const findings = Array.isArray(value.findings) ? value.findings : [];
18
+ const prose = agentId === "scout" ? findings.map((finding) => finding.claim ?? "").join(" ") : (value.summary ?? "");
19
+ const words = typeof prose === "string" && prose.trim() ? prose.trim().split(/\s+/u).length : 0;
20
+ // Scout cites through structured findings; Coder cites inline as file:line
21
+ // inside its summary, the declared place for a read-only explanation.
22
+ const cited = Object.keys(fixture.files).every((path) =>
23
+ agentId === "scout"
24
+ ? findings.some((finding) => finding.path === path && Number.isSafeInteger(finding.line) && finding.line > 0)
25
+ : new RegExp(`${path.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&")}:[1-9]\\d*`, "u").test(prose),
26
+ );
27
+ const topics = [
28
+ /uniform/iu,
29
+ /nonuniform/iu,
30
+ /forward/iu,
31
+ /backward/iu,
32
+ /spacing/iu,
33
+ /coordinate/iu,
34
+ /convergence/iu,
35
+ /linspace|equidistant/iu,
36
+ /does not|do not|not .*irregular/iu,
37
+ ].every((pattern) => pattern.test(prose));
38
+ // Both recipes carry a 1200-word cited explanation: Scout as findings, Coder
39
+ // in its mutation-report summary under the contract's summary allowance.
40
+ const suitable = agentId === "scout" || agentId === "coder";
41
+ const limited = agentId === "coder" && /cannot deliver/iu.test(prose) && /allowance|UTF-8 bytes/iu.test(prose);
42
+ return {
43
+ "explanation.recipeSuitable": suitable,
44
+ "explanation.conforms": conformance === "pass",
45
+ "explanation.delivered":
46
+ conformance === "pass" &&
47
+ suitable &&
48
+ cited &&
49
+ topics &&
50
+ words >= fixture.wordRange[0] &&
51
+ words <= fixture.wordRange[1],
52
+ "explanation.limited": limited,
53
+ "explanation.words": words,
54
+ };
55
+ }
56
+
57
+ function prepare() {
58
+ for (const path of Object.keys(fixture.files)) assert.ok(!existsSync(path), `refuse to overwrite ${path}`);
59
+ for (const [path, content] of Object.entries(fixture.files)) {
60
+ mkdirSync(dirname(path), { recursive: true });
61
+ writeFileSync(path, content);
62
+ }
63
+ }
64
+
65
+ async function grade(agentId) {
66
+ assert.ok(agentId === "coder" || agentId === "scout");
67
+ const events = readFileSync(process.env.CLIO_CODER_EVAL_RUNNER_STDOUT_FILE, "utf8")
68
+ .split(/\r?\n/u)
69
+ .flatMap((line) => {
70
+ try {
71
+ return [JSON.parse(line)];
72
+ } catch {
73
+ return [];
74
+ }
75
+ });
76
+ const starts = events.filter((event) => event.type === "tool_execution_start" && event.toolName === "dispatch");
77
+ assert.equal(starts.length, 1, "one explicitly selected worker; no substituted or extra recovery dispatch");
78
+ assert.equal(starts[0].args.agent, agentId);
79
+ assert.equal(starts[0].args.task, fixture.task);
80
+ const end = events.find((event) => event.type === "tool_execution_end" && event.toolCallId === starts[0].toolCallId);
81
+ const runs = end?.result?.details?.runs;
82
+ assert.equal(runs?.length, 1, "one terminal receipt required");
83
+ const receipt = JSON.parse(readFileSync(runs[0].receiptPath, "utf8"));
84
+ assert.equal(receipt.agentId, agentId);
85
+ const metrics = assessExplanation(agentId, receipt.output?.text ?? "", receipt.quality?.resultContract?.conformance);
86
+ if (
87
+ receipt.outcome !== "succeeded" ||
88
+ receipt.exitCode !== 0 ||
89
+ receipt.quality?.resultContract?.quality === "fail" ||
90
+ receipt.output?.state !== "final" ||
91
+ receipt.output?.truncated !== false
92
+ )
93
+ metrics["explanation.delivered"] = false;
94
+ metrics["task.solved"] = metrics["explanation.delivered"];
95
+ process.stdout.write(`${JSON.stringify({ schema: "clio-coder.eval.measure.v1", metrics })}\n`);
96
+ assert.equal(receipt.outcome, "succeeded");
97
+ assert.equal(receipt.exitCode, 0);
98
+ assert.equal(receipt.output?.state, "final");
99
+ assert.equal(receipt.output?.truncated, false, "a truncated report is not complete delivery");
100
+ assert.equal(metrics["explanation.conforms"], true);
101
+ assert.notEqual(receipt.quality?.resultContract?.quality, "fail");
102
+ assert.equal(metrics["explanation.recipeSuitable"], true);
103
+ assert.equal(metrics["explanation.delivered"], true);
104
+ assert.equal(metrics["explanation.limited"], false);
105
+ for (const [path, content] of Object.entries(fixture.files)) assert.equal(readFileSync(path, "utf8"), content);
106
+ // Headless runs cannot assert watch-pane lifecycle. Root records it separately.
107
+ assert.ok(metrics["task.solved"], "the requested explanation was not delivered in the declared result shape");
108
+ }
109
+
110
+ if (process.argv[1] === fileURLToPath(import.meta.url)) {
111
+ try {
112
+ if (process.argv[2] === "--prepare") prepare();
113
+ else await grade(process.argv[2]);
114
+ } catch (error) {
115
+ process.stderr.write(`${error instanceof Error ? error.stack : String(error)}\n`);
116
+ process.exitCode = 1;
117
+ }
118
+ }
@@ -0,0 +1,53 @@
1
+ import assert from "node:assert/strict";
2
+ import { readFileSync } from "node:fs";
3
+ import { resolve } from "node:path";
4
+
5
+ const events = readFileSync(process.env.CLIO_CODER_EVAL_RUNNER_STDOUT_FILE, "utf8")
6
+ .split(/\r?\n/u)
7
+ .flatMap((line) => {
8
+ try {
9
+ return [JSON.parse(line)];
10
+ } catch {
11
+ return [];
12
+ }
13
+ });
14
+ const starts = events.filter((event) => event.type === "tool_execution_start");
15
+ const ends = events.filter((event) => event.type === "tool_execution_end");
16
+ function output(call) {
17
+ const end = ends.find((event) => event.toolCallId === call.toolCallId);
18
+ assert.ok(end, "required tool call did not finish");
19
+ return JSON.stringify(end.result);
20
+ }
21
+ switch (process.argv[2]) {
22
+ case "read-tail": {
23
+ assert.equal(starts.length, 1);
24
+ const call = starts[0];
25
+ assert.equal(call.toolName, "read");
26
+ assert.equal(resolve(call.args.path), resolve("evals/fixtures/tool-surface/read.txt"));
27
+ assert.equal(call.args.tail, 2, "last-line probe must use the advertised tail argument");
28
+ assert.match(output(call), /gamma/u);
29
+ assert.match(output(call), /delta/u);
30
+ assert.doesNotMatch(output(call), /alpha|beta/u);
31
+ break;
32
+ }
33
+ case "bash-cwd-reset": {
34
+ assert.equal(starts.length, 2);
35
+ assert.ok(starts.every((call) => call.toolName === "bash"));
36
+ assert.equal(starts[0].args.command.trim(), "cd evals/fixtures/tool-surface/subdir && pwd");
37
+ assert.equal(starts[1].args.command.trim(), "pwd");
38
+ assert.equal(starts[1].args.cwd, undefined);
39
+ assert.ok(output(starts[0]).includes(resolve("evals/fixtures/tool-surface/subdir")));
40
+ assert.ok(output(starts[1]).includes(process.cwd()));
41
+ assert.ok(!output(starts[1]).includes("/tool-surface/subdir"));
42
+ break;
43
+ }
44
+ case "web-fetch-scheme": {
45
+ assert.equal(starts.length, 1);
46
+ assert.equal(starts[0].toolName, "web_fetch");
47
+ assert.equal(starts[0].args.url, "file:///tool-surface-fixture");
48
+ assert.match(output(starts[0]), /(?:unsupported|invalid|only)[\s\S]*(?:scheme|https?)/iu);
49
+ break;
50
+ }
51
+ default:
52
+ throw new Error("unknown tool surface case");
53
+ }
@@ -0,0 +1,274 @@
1
+ version: 2
2
+ suite:
3
+ id: tool-surface-model
4
+ title: Tool description and argument behavior
5
+ visibility: public
6
+ description: Model-required probes of read tail selection, bash child directory
7
+ reset, and web_fetch URL rejection. Expected rejection is distinct from
8
+ unintended tool errors.
9
+ matrix:
10
+ targets:
11
+ - id: mini
12
+ repeats: 3
13
+ tasks:
14
+ - id: read-tail
15
+ tags:
16
+ - behavioral
17
+ - model-required
18
+ - tool:read
19
+ behavioral:
20
+ schema: clio-coder.eval.scenario.v1
21
+ corpus:
22
+ id: tool-surface-model
23
+ version: 1.0.0
24
+ execution:
25
+ mode: model-required
26
+ subject:
27
+ kind: main-agent
28
+ role: main
29
+ toolTarget: available
30
+ expectedBehavior:
31
+ - id: read-tail-calls
32
+ category: tool_choice
33
+ fact:
34
+ source: tool
35
+ key: tools.calls.read
36
+ op: eq
37
+ value: 1
38
+ - id: read-tail-errors
39
+ category: tool_choice
40
+ fact:
41
+ source: tool
42
+ key: tools.failed.read
43
+ op: eq
44
+ value: 0
45
+ - id: read-tail-blocks
46
+ category: safety_comprehension
47
+ fact:
48
+ source: tool
49
+ key: tools.blocked.read
50
+ op: eq
51
+ value: 0
52
+ - id: read-tail-successes
53
+ category: tool_choice
54
+ fact:
55
+ source: tool
56
+ key: tools.succeeded.read
57
+ op: eq
58
+ value: 1
59
+ - id: read-tail-correct
60
+ category: task_correctness
61
+ fact:
62
+ source: grader
63
+ key: task.solved
64
+ op: eq
65
+ value: true
66
+ forbiddenBehavior: []
67
+ judge:
68
+ maxEvidenceItems: 32
69
+ maxExplanationChars: 500
70
+ workspace:
71
+ kind: temp-copy
72
+ path: ..
73
+ excludes:
74
+ - .git
75
+ - .superpowers
76
+ - node_modules
77
+ - dist
78
+ runner:
79
+ kind: clio-coder-run
80
+ autonomy: auto-edit
81
+ prompt: Read only the final two lines of evals/fixtures/tool-surface/read.txt
82
+ using one read call. Do not read the entire file or use other tools.
83
+ Report those lines. Do not edit files.
84
+ verify:
85
+ measure:
86
+ - node evals/tool-surface-grader.mjs read-tail
87
+ protectedFiles:
88
+ - evals/tool-surface-grader.mjs
89
+ - evals/fixtures/tool-surface/read.txt
90
+ - evals/fixtures/tool-surface/subdir/keep.txt
91
+ metrics:
92
+ collect:
93
+ - task.solved
94
+ - tools.totalCalls
95
+ - tools.calls.read
96
+ - tools.failed.read
97
+ - tools.blocked.read
98
+ - tools.succeeded.read
99
+ timeoutMs: 120000
100
+ - id: bash-cwd-reset
101
+ tags:
102
+ - behavioral
103
+ - model-required
104
+ - tool:bash
105
+ behavioral:
106
+ schema: clio-coder.eval.scenario.v1
107
+ corpus:
108
+ id: tool-surface-model
109
+ version: 1.0.0
110
+ execution:
111
+ mode: model-required
112
+ subject:
113
+ kind: main-agent
114
+ role: main
115
+ toolTarget: available
116
+ expectedBehavior:
117
+ - id: bash-cwd-reset-calls
118
+ category: tool_choice
119
+ fact:
120
+ source: tool
121
+ key: tools.calls.bash
122
+ op: eq
123
+ value: 2
124
+ - id: bash-cwd-reset-errors
125
+ category: tool_choice
126
+ fact:
127
+ source: tool
128
+ key: tools.failed.bash
129
+ op: eq
130
+ value: 0
131
+ - id: bash-cwd-reset-blocks
132
+ category: safety_comprehension
133
+ fact:
134
+ source: tool
135
+ key: tools.blocked.bash
136
+ op: eq
137
+ value: 0
138
+ - id: bash-cwd-reset-successes
139
+ category: tool_choice
140
+ fact:
141
+ source: tool
142
+ key: tools.succeeded.bash
143
+ op: eq
144
+ value: 2
145
+ - id: bash-cwd-reset-correct
146
+ category: task_correctness
147
+ fact:
148
+ source: grader
149
+ key: task.solved
150
+ op: eq
151
+ value: true
152
+ forbiddenBehavior: []
153
+ judge:
154
+ maxEvidenceItems: 32
155
+ maxExplanationChars: 500
156
+ workspace:
157
+ kind: temp-copy
158
+ path: ..
159
+ excludes:
160
+ - .git
161
+ - .superpowers
162
+ - node_modules
163
+ - dist
164
+ runner:
165
+ kind: clio-coder-run
166
+ autonomy: auto-edit
167
+ prompt: Use exactly two bash calls and no other tools. First run cd
168
+ evals/fixtures/tool-surface/subdir && pwd. Then run pwd with no cwd
169
+ argument, relying on the documented default directory of a new bash
170
+ call. Report whether the second call starts at the workspace root. Do
171
+ not edit files.
172
+ verify:
173
+ measure:
174
+ - node evals/tool-surface-grader.mjs bash-cwd-reset
175
+ protectedFiles:
176
+ - evals/tool-surface-grader.mjs
177
+ - evals/fixtures/tool-surface/read.txt
178
+ - evals/fixtures/tool-surface/subdir/keep.txt
179
+ metrics:
180
+ collect:
181
+ - task.solved
182
+ - tools.totalCalls
183
+ - tools.calls.bash
184
+ - tools.failed.bash
185
+ - tools.blocked.bash
186
+ - tools.succeeded.bash
187
+ timeoutMs: 120000
188
+ - id: web-fetch-scheme
189
+ tags:
190
+ - behavioral
191
+ - model-required
192
+ - tool:web_fetch
193
+ behavioral:
194
+ schema: clio-coder.eval.scenario.v1
195
+ corpus:
196
+ id: tool-surface-model
197
+ version: 1.0.0
198
+ execution:
199
+ mode: model-required
200
+ subject:
201
+ kind: main-agent
202
+ role: main
203
+ toolTarget: available
204
+ expectedBehavior:
205
+ - id: web-fetch-scheme-calls
206
+ category: tool_choice
207
+ fact:
208
+ source: tool
209
+ key: tools.calls.web_fetch
210
+ op: eq
211
+ value: 1
212
+ - id: web-fetch-scheme-errors
213
+ category: tool_choice
214
+ fact:
215
+ source: tool
216
+ key: tools.failed.web_fetch
217
+ op: eq
218
+ value: 1
219
+ - id: web-fetch-scheme-blocks
220
+ category: safety_comprehension
221
+ fact:
222
+ source: tool
223
+ key: tools.blocked.web_fetch
224
+ op: eq
225
+ value: 0
226
+ - id: web-fetch-scheme-successes
227
+ category: tool_choice
228
+ fact:
229
+ source: tool
230
+ key: tools.succeeded.web_fetch
231
+ op: eq
232
+ value: 0
233
+ - id: web-fetch-scheme-correct
234
+ category: task_correctness
235
+ fact:
236
+ source: grader
237
+ key: task.solved
238
+ op: eq
239
+ value: true
240
+ forbiddenBehavior: []
241
+ judge:
242
+ maxEvidenceItems: 32
243
+ maxExplanationChars: 500
244
+ workspace:
245
+ kind: temp-copy
246
+ path: ..
247
+ excludes:
248
+ - .git
249
+ - .superpowers
250
+ - node_modules
251
+ - dist
252
+ runner:
253
+ kind: clio-coder-run
254
+ autonomy: auto-edit
255
+ prompt: "Probe the web_fetch URL validation once with
256
+ file:///tool-surface-fixture. This is an intentional invalid-scheme
257
+ test: invoke web_fetch exactly once, report the rejection, and do not
258
+ retry or use other tools. Do not edit files."
259
+ verify:
260
+ measure:
261
+ - node evals/tool-surface-grader.mjs web-fetch-scheme
262
+ protectedFiles:
263
+ - evals/tool-surface-grader.mjs
264
+ - evals/fixtures/tool-surface/read.txt
265
+ - evals/fixtures/tool-surface/subdir/keep.txt
266
+ metrics:
267
+ collect:
268
+ - task.solved
269
+ - tools.totalCalls
270
+ - tools.calls.web_fetch
271
+ - tools.failed.web_fetch
272
+ - tools.blocked.web_fetch
273
+ - tools.succeeded.web_fetch
274
+ timeoutMs: 120000
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iowarp/clio-coder",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "The terminal coding agent for people who maintain the code that science runs on, with user-chosen models and inspectable evidence.",
5
5
  "keywords": [
6
6
  "ai",
@@ -76,15 +76,15 @@
76
76
  "pi:surface-diff": "node --import tsx scripts/pi-surface-diff.ts",
77
77
  "pi:surface-snapshot": "node --import tsx scripts/pi-surface-diff.ts --write",
78
78
  "test:file": "node --import tsx --import ./tests/harness/tmp-root.ts --test",
79
- "pretest": "test -f dist/cli/index.js || npm run build",
79
+ "pretest": "test -f dist/cli/index.js || pnpm run build",
80
80
  "test": "node --import tsx --import ./tests/harness/tmp-root.ts --test tests/contracts/*.test.ts tests/smoke/*.test.ts",
81
- "test:trace-viewer": "npm --prefix apps/trace-viewer test",
81
+ "test:trace-viewer": "pnpm --filter @iowarp/clio-trace-viewer test",
82
82
  "trace:ui": "node apps/trace-viewer/server.mjs",
83
- "ci": "npm run typecheck && npm run lint && npm run build && npm run test && npm run test:trace-viewer",
84
- "ci:release": "npm run ci && node scripts/check-release.mjs",
83
+ "ci": "pnpm run typecheck && pnpm run lint && pnpm run build && pnpm run test && pnpm run test:trace-viewer",
84
+ "ci:release": "pnpm run ci && node scripts/check-release.mjs",
85
85
  "install:local": "bash scripts/install-local.sh",
86
86
  "smoke:real-home": "bash scripts/smoke-real-home.sh",
87
- "prepublishOnly": "CLIO_CODER_RELEASE_CONTEXT=publish npm run ci:release",
87
+ "prepublishOnly": "CLIO_CODER_RELEASE_CONTEXT=publish pnpm run ci:release",
88
88
  "skills:pin": "node --import tsx scripts/pin-skills.ts",
89
89
  "skills:check": "node --import tsx scripts/pin-skills.ts --check"
90
90
  },
@@ -92,18 +92,14 @@
92
92
  "@anthropic-ai/claude-agent-sdk": "0.3.186"
93
93
  },
94
94
  "dependencies": {
95
- "@earendil-works/pi-agent-core": "0.84.4",
96
- "@earendil-works/pi-ai": "0.84.4",
97
- "@earendil-works/pi-tui": "0.84.4",
95
+ "@earendil-works/pi-agent-core": "0.85.1",
96
+ "@earendil-works/pi-ai": "0.85.1",
97
+ "@earendil-works/pi-tui": "0.85.1",
98
98
  "@silvia-odwyer/photon-node": "^0.3.4",
99
99
  "grok-mermaid": "0.2.2",
100
100
  "ollama": "0.6.3",
101
101
  "smol-toml": "1.8.0"
102
102
  },
103
- "overrides": {
104
- "@anthropic-ai/sdk": "0.105.0",
105
- "esbuild": "0.28.1"
106
- },
107
103
  "devDependencies": {
108
104
  "@biomejs/biome": "2.5.1",
109
105
  "@types/node": "24.12.2",
@@ -119,5 +115,9 @@
119
115
  "typescript": "6.0.3",
120
116
  "uuid": "14.0.1",
121
117
  "yaml": "2.9.0"
122
- }
118
+ },
119
+ "packageManager": "pnpm@10.34.5",
120
+ "workspaces": [
121
+ "apps/*"
122
+ ]
123
123
  }
package/skills/README.md CHANGED
@@ -193,7 +193,7 @@ clio-coder skills install find-skills --project # strongest discovered project
193
193
 
194
194
  ## Publishing: the marketplace index
195
195
 
196
- `npm run skills:pin` writes two files. `registry.yaml` pins content hashes and
196
+ `pnpm run skills:pin` writes two files. `registry.yaml` pins content hashes and
197
197
  is what drift is measured against. `skill-marketplace.json` is the published
198
198
  index: one entry per skill with `name`, `description`, optional `triggers`,
199
199
  `sourceUrl` (the skill's own `clio-coder.source-url`), `version`, `audit`, and
@@ -213,7 +213,7 @@ Install then clones the repository named in that entry's `sourceUrl` and copies
213
213
  the skill out of it, so the index is only as live as the branch its URLs name.
214
214
  The catalog's `source-url` values all point at `main`; until a release branch
215
215
  lands there, an install through the index fails naming the repository, the
216
- branch, and the missing path. `npm run skills:check` fails if a skill's
216
+ branch, and the missing path. `pnpm run skills:check` fails if a skill's
217
217
  `source-url` stops ending with its catalog path, which is how a skill moved
218
218
  between categories cannot ship a stale pointer.
219
219
 
@@ -292,7 +292,7 @@ dependency warnings, and other harnesses ignore it like any unknown key.
292
292
 
293
293
  The deprecated nested `clio:` mapping and legacy flat keys (`registry-id`,
294
294
  `source-url`, `audit` at the top level) are still read as fallbacks for older
295
- installed copies. The catalog itself must use `clio-coder:`, and `npm run
295
+ installed copies. The catalog itself must use `clio-coder:`, and `pnpm run
296
296
  skills:check` enforces that.
297
297
 
298
298
  ### Versioning policy
@@ -350,7 +350,7 @@ names rather than mapping them. Translating `bash` to `Bash` for
350
350
  Claude-compatibility would not restrict anything; it would silently add `Bash`
351
351
  to the always-allow rules of every session that loaded the skill. The same goes
352
352
  for a `clio-coder skills export --for claude` lane, so there is no such lane. To keep
353
- a well-meaning edit from introducing that, `npm run skills:check` fails on any
353
+ a well-meaning edit from introducing that, `pnpm run skills:check` fails on any
354
354
  `allowed-tools` entry that is not a Clio tool name in canonical lowercase.
355
355
 
356
356
  The rest of the surface, read from the same build:
@@ -401,10 +401,10 @@ observed writing outside its workspace. Eval numbers are evidence about a
401
401
  cooperative model, not an isolation guarantee. Run campaigns with `CLIO_CODER_*`
402
402
  pointed at throwaway directories.
403
403
 
404
- `npm run skills:pin` enforces this contract structurally: it refuses to pin a
404
+ `pnpm run skills:pin` enforces this contract structurally: it refuses to pin a
405
405
  catalog where any skill is missing the required frontmatter, `audit: pass`, or
406
406
  its `evals.md`, declares a tool name Clio does not have, or carries a
407
- `source-url` that no longer ends with its catalog path. `npm run skills:check`
407
+ `source-url` that no longer ends with its catalog path. `pnpm run skills:check`
408
408
  (run in CI) fails on any drift between the catalog and either generated file,
409
409
  `registry.yaml` or `skill-marketplace.json`. Each pin covers the normalized
410
410
  `SKILL.md`, not the whole skill directory. Install-lifecycle stamps such as
@@ -7,8 +7,17 @@ triggers:
7
7
  - parse don't validate
8
8
  - illegal states unrepresentable
9
9
  - functional core imperative shell
10
- version: 0.3.0
10
+ version: 0.4.0
11
11
  license: Apache-2.0
12
+ allowed-tools:
13
+ - read
14
+ - grep
15
+ - find
16
+ - ls
17
+ - code_nav
18
+ - bash
19
+ - write
20
+ - edit
12
21
  clio-coder:
13
22
  registry-id: iowarp/clio-coder
14
23
  source-url: https://github.com/iowarp/clio-coder/tree/main/skills/coding/coding-standards
@@ -33,9 +42,10 @@ code, and never rewrite unrelated old code without an explicit migration
33
42
  request. **The host project's own documented standards always win over
34
43
  this file.**
35
44
 
36
- This skill declares no tool surface on purpose: it rides along with
37
- whatever task is in flight (writing, refactoring, reviewing), so it must
38
- not narrow the tools that task needs.
45
+ This skill's tool surface covers the whole write-code loop (read, grep,
46
+ find, ls, code_nav, bash, write, edit) so a solo run can apply the rules
47
+ it names. When it rides along with another skill, the surfaces merge as a
48
+ union, so it never narrows the tools the task in flight needs.
39
49
 
40
50
  ## Arguments
41
51
 
@@ -7,7 +7,7 @@ triggers:
7
7
  - handoff to another agent
8
8
  - context is about to be lost
9
9
  - write a continuation brief
10
- version: 0.5.0
10
+ version: 0.5.1
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -65,8 +65,8 @@ Distinct from two things it is often confused with:
65
65
  actionable one as the focus; state that reading in the draft's "Next
66
66
  session focus" line rather than leaving it blank.
67
67
 
68
- There is no operator in a headless run: `ask_user` is not registered and
69
- nothing will answer it even if you call it. If the focus, slug, or a
68
+ There is no operator in a headless run: `ask_user` is not registered, so
69
+ any call is refused as an unregistered tool rather than answered. If the focus, slug, or a
70
70
  redaction call is ambiguous, state your best reading in the draft and in your
71
71
  final reply, and proceed — never stall a step waiting on `ask_user`.
72
72
 
@@ -7,7 +7,7 @@ triggers:
7
7
  - where were we
8
8
  - get up to speed
9
9
  - resume repository work after a break
10
- version: 0.4.0
10
+ version: 0.4.1
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -96,8 +96,8 @@ Work top to bottom; stop early once you have enough to state where things stand.
96
96
  ending with the focus to confirm. `ask_user` is only registered in an
97
97
  interactive session with an operator present; call it there, offering
98
98
  the handoff's suggested focus as the first option. **A headless run has
99
- no operator: `ask_user` is not registered and nothing will answer it
100
- even if you call it.** If it is not among your available tools, do not
99
+ no operator: `ask_user` is not registered, so any call is refused as an
100
+ unregistered tool rather than answered.** If it is not among your available tools, do not
101
101
  attempt it and do not keep re-reading files hoping for more certainty
102
102
  first — state the focus as the orientation's `Next` line, in plain
103
103
  text, and stop; that written statement is the confirmation for this
@@ -7,7 +7,7 @@ triggers:
7
7
  - architecture for this feature
8
8
  - decide the engineering approach
9
9
  - compare architecture options
10
- version: 0.4.0
10
+ version: 0.4.1
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -64,10 +64,10 @@ expensive calls only).
64
64
  to Step 0's own question — what are we building, and is there a written
65
65
  intent to read — rather than inventing a project to architect.
66
66
 
67
- There is no operator in a headless run: `ask_user` still executes, but with
68
- nothing to answer it every call returns immediately with no answers, every
69
- time calling it again will not produce a different result. From wherever
70
- the first empty response lands — Step 0's "ask whether reference docs
67
+ There is no operator in a headless run: `ask_user` is not registered, so
68
+ any call is refused as an unregistered tool rather than answered, every
69
+ time; calling it again will not produce a different result. From wherever
70
+ the first refusal lands — Step 0's "ask whether reference docs
71
71
  exist", Step 1's greenfield/brownfield call, or any decision in Step 2 —
72
72
  switch immediately to the treatment already described above (state the
73
73
  options, the recommendation, the reasoning, adopt it, mark it `assumed —
@@ -7,7 +7,7 @@ triggers:
7
7
  - build the backlog
8
8
  - decompose this plan into tickets
9
9
  - create GitHub issues from this architecture
10
- version: 0.4.0
10
+ version: 0.4.1
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -47,9 +47,9 @@ tracker. Decomposition is tracker-agnostic; creation branches on the target.
47
47
  (Step 1's own rule picks it — see below) and a milestone/epic to attach
48
48
  tickets to.
49
49
 
50
- There is no operator in a headless run: `ask_user` resolves immediately
51
- with no answer, every time it is called not a stall, and calling it again
52
- will not produce a different result. **This skill treats headless
50
+ There is no operator in a headless run: `ask_user` is not registered, so
51
+ any call is refused as an unregistered tool rather than answered; that is
52
+ not a stall, and calling it again will not produce a different result. **This skill treats headless
53
53
  degradation differently at each step below, because Step 3 gates an
54
54
  outward, not-cleanly-reversible action — real tickets, GitHub issues or
55
55
  persisted local tasks — not a document write:**