@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,21 +1,14 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
- extractCommandCdTargets,
4
- extractCommandWriteTargets
5
- } from "./chunk-I7ZPNEJM.js";
6
- import {
7
- artifactDefaultPath
8
- } from "./chunk-GYV6VZOC.js";
9
- import {
10
- canonicalizeExistingPath
11
- } from "./chunk-ECH6PKUQ.js";
3
+ classify
4
+ } from "./chunk-LUL5Z66S.js";
12
5
  import {
13
6
  ToolNames,
14
7
  isBuiltinToolName
15
- } from "./chunk-K6BSR66V.js";
8
+ } from "./chunk-EHOSNVVM.js";
16
9
  import {
17
10
  init_esm_shims
18
- } from "./chunk-3R73A4XB.js";
11
+ } from "./chunk-ECBHH7LU.js";
19
12
 
20
13
  // src/core/json-payload.ts
21
14
  init_esm_shims();
@@ -48,192 +41,6 @@ function parseJsonObjectPayload(text) {
48
41
  // src/domains/agents/spec.ts
49
42
  init_esm_shims();
50
43
  import { createHash } from "node:crypto";
51
-
52
- // src/domains/safety/action-classifier.ts
53
- init_esm_shims();
54
- import path from "node:path";
55
- var GIT_DESTRUCTIVE_PATTERNS = [
56
- { name: "git-push-force-long", re: /\bgit\s+push\s+--force\b/i },
57
- { name: "git-push-force-short", re: /\bgit\s+push\s+-f\b/i },
58
- { name: "git-reset-hard", re: /\bgit\s+reset\s+--hard\b/i },
59
- { name: "git-clean-fd", re: /\bgit\s+clean\s+-fd?\b/i },
60
- { name: "git-checkout-dot", re: /\bgit\s+checkout\s+--\s+\./i },
61
- { name: "git-branch-D", re: /\bgit\s+branch\s+-D\b/i },
62
- { name: "git-restore-source", re: /\bgit\s+restore\s+--source\b/i }
63
- ];
64
- var SYSTEM_MODIFY_PATTERNS = [
65
- { name: "sudo-or-doas", re: /\b(sudo|doas)\b/i },
66
- // allow rm -rf /tmp/... and /var/tmp/... but flag everything else rooted at /
67
- { name: "rm-rf-root", re: /\brm\s+-rf?\s+\/(?!(tmp|var\/tmp)(?:\/|\s|$))/i },
68
- { name: "apt-install", re: /\bapt(-get)?\s+(install|remove|purge)/i },
69
- { name: "brew-install", re: /\bbrew\s+(install|uninstall|reinstall)/i },
70
- { name: "npm-install-global", re: /\bnpm\s+install\s+-g\b/i },
71
- { name: "pip-install", re: /\bpip\s+install\b/i },
72
- { name: "systemctl", re: /\bsystemctl\s+/i },
73
- { name: "chmod-root", re: /\bchmod\s+[0-7]{3,4}\s+\//i },
74
- { name: "chown", re: /\bchown\s+/i }
75
- ];
76
- var SYSTEM_WRITE_ROOT_PREFIXES = ["/etc", "/usr", "/var", "/bin", "/sbin", "/run"];
77
- var SYSTEM_WRITE_EXEMPT_PREFIXES = ["/var/tmp", "/var/folders"];
78
- function isUnderPrefix(abs, prefix) {
79
- return abs === prefix || abs.startsWith(`${prefix}/`);
80
- }
81
- function baseClassify(tool) {
82
- switch (tool) {
83
- case ToolNames.Read:
84
- case ToolNames.Grep:
85
- case ToolNames.Find:
86
- case ToolNames.Ls:
87
- case ToolNames.WebFetch:
88
- case ToolNames.Git:
89
- case ToolNames.CodeNav:
90
- case ToolNames.Context:
91
- case ToolNames.Monitor:
92
- case ToolNames.AskUser:
93
- case ToolNames.CredentialPresent:
94
- // tasks pick mutates only Clio-owned session-ledger and project-local
95
- // .clio-coder runtime state, never source-workspace files. By intentional
96
- // policy it stays read class and ungated; the tool itself still requires
97
- // a durable operator task id before it can mutate either store.
98
- case ToolNames.Tasks:
99
- // ledger posts a typed contribution to a coordination board and reads a
100
- // local mirror. Neither touches the workspace, so it is never gated
101
- // behind a confirmation.
102
- case ToolNames.Ledger:
103
- // panes focuses, opens, and closes terminal panes Clio itself created, in
104
- // a pane host that lives outside the workspace. Nothing it does writes a
105
- // file, runs a model-supplied command (its schema exposes presets only),
106
- // or survives the session, so it is reversible, local, and never gated
107
- // behind a confirmation.
108
- case ToolNames.Panes:
109
- return "read";
110
- case ToolNames.Write:
111
- case ToolNames.Edit:
112
- case ToolNames.Artifact:
113
- return "write";
114
- case ToolNames.Bash:
115
- case ToolNames.Verify:
116
- return "execute";
117
- case ToolNames.Dispatch:
118
- case ToolNames.Steer:
119
- return "dispatch";
120
- default:
121
- return null;
122
- }
123
- }
124
- function scanStringOf(args) {
125
- if (!args) return "";
126
- const parts = [];
127
- for (const value of Object.values(args)) {
128
- if (value == null) continue;
129
- if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
130
- parts.push(String(value));
131
- } else {
132
- try {
133
- parts.push(JSON.stringify(value));
134
- } catch {
135
- }
136
- }
137
- }
138
- return parts.join(" ");
139
- }
140
- function matchFirst(patterns, haystack) {
141
- for (const p of patterns) {
142
- if (p.re.test(haystack)) return p;
143
- }
144
- return null;
145
- }
146
- function resolveCandidate(p, baseCwd) {
147
- if (p.startsWith("~")) return p;
148
- const base = canonicalizeExistingPath(path.resolve(baseCwd ?? process.cwd()));
149
- const resolved = path.isAbsolute(p) ? path.resolve(p) : path.resolve(base, p);
150
- return canonicalizeExistingPath(resolved);
151
- }
152
- function isInsideCwd(abs) {
153
- const cwd = canonicalizeExistingPath(path.resolve(process.cwd()));
154
- const candidate = canonicalizeExistingPath(abs);
155
- const rel = path.relative(cwd, candidate);
156
- return rel === "" || !rel.startsWith("..") && !path.isAbsolute(rel);
157
- }
158
- function writePathClass(pathArg, baseCwd) {
159
- if (pathArg.startsWith("~")) {
160
- return { cls: "system_modify", reason: `write-path-home-escape: ${pathArg}` };
161
- }
162
- const abs = resolveCandidate(pathArg, baseCwd);
163
- const exempt = SYSTEM_WRITE_EXEMPT_PREFIXES.some((prefix) => isUnderPrefix(abs, prefix));
164
- if (!exempt) {
165
- for (const prefix of SYSTEM_WRITE_ROOT_PREFIXES) {
166
- if (isUnderPrefix(abs, prefix)) {
167
- return { cls: "system_modify", reason: `write-path-system-root: ${prefix}` };
168
- }
169
- }
170
- }
171
- if (!isInsideCwd(abs)) {
172
- return { cls: "system_modify", reason: `write-path-outside-cwd: ${abs}` };
173
- }
174
- return { cls: "write" };
175
- }
176
- function extractWritePath(tool, args) {
177
- const candidate = args?.path ?? args?.file_path ?? args?.filePath;
178
- if (typeof candidate === "string" && candidate.length > 0) return candidate;
179
- return tool === ToolNames.Artifact ? artifactDefaultPath(args?.kind) : null;
180
- }
181
- function classify(call) {
182
- const base = baseClassify(call.tool);
183
- if (base === null) {
184
- return { actionClass: "unknown", reasons: [`unknown tool: ${call.tool}`] };
185
- }
186
- const reasons = [];
187
- if (call.tool === ToolNames.Bash) {
188
- const scan = scanStringOf(call.args);
189
- const gitHit = matchFirst(GIT_DESTRUCTIVE_PATTERNS, scan);
190
- if (gitHit) {
191
- return { actionClass: "git_destructive", reasons: [`pattern:${gitHit.name}`] };
192
- }
193
- const sysHit = matchFirst(SYSTEM_MODIFY_PATTERNS, scan);
194
- if (sysHit) {
195
- return { actionClass: "system_modify", reasons: [`pattern:${sysHit.name}`] };
196
- }
197
- const command = typeof call.args?.command === "string" ? call.args.command : null;
198
- const argCwd = typeof call.args?.cwd === "string" && call.args.cwd.length > 0 ? call.args.cwd : void 0;
199
- if (command !== null) {
200
- const targetReasons = [];
201
- for (const target of extractCommandWriteTargets(command)) {
202
- const decision = writePathClass(target, argCwd);
203
- if (decision.cls === "system_modify") {
204
- targetReasons.push(decision.reason ?? `bash-write-target: ${target}`);
205
- }
206
- }
207
- for (const target of extractCommandCdTargets(command)) {
208
- if (target.startsWith("~")) {
209
- targetReasons.push(`bash-cd-home-escape: ${target}`);
210
- continue;
211
- }
212
- const abs = resolveCandidate(target, argCwd);
213
- if (!isInsideCwd(abs)) {
214
- targetReasons.push(`bash-cd-outside-workspace: ${abs}`);
215
- }
216
- }
217
- if (targetReasons.length > 0) {
218
- return { actionClass: "system_modify", reasons: targetReasons };
219
- }
220
- }
221
- return { actionClass: "execute", reasons };
222
- }
223
- if (base === "write") {
224
- const pathArg = extractWritePath(call.tool, call.args);
225
- if (pathArg) {
226
- const decision = writePathClass(pathArg);
227
- if (decision.cls === "system_modify") {
228
- return { actionClass: "system_modify", reasons: decision.reason ? [decision.reason] : [] };
229
- }
230
- }
231
- return { actionClass: "write", reasons };
232
- }
233
- return { actionClass: base, reasons };
234
- }
235
-
236
- // src/domains/agents/spec.ts
237
44
  var AGENT_AUTOMATION_AUTHORITIES = ["read-only", "verification", "artifact-write", "workspace-edit"];
238
45
  var AGENT_PRODUCTS = ["orientation"];
239
46
  var AGENT_CATEGORIES = [
@@ -469,7 +276,7 @@ ${errors.map((error) => `- ${error}`).join("\n")}`);
469
276
  // src/domains/agents/result-contract.ts
470
277
  init_esm_shims();
471
278
  import { createHash as createHash2 } from "node:crypto";
472
- import path2 from "node:path";
279
+ import path from "node:path";
473
280
  function parseDelegationPlanResult(output) {
474
281
  const parsed = parseJson(output);
475
282
  if (!parsed.ok || !hasOnlyKeys(parsed.value, ["tasks"]) || !Array.isArray(parsed.value.tasks) || parsed.value.tasks.length === 0)
@@ -792,17 +599,17 @@ function parseChecks(value) {
792
599
  return checks;
793
600
  }
794
601
  function citationWithinWorkspace(cwd, citedPath) {
795
- const relative = path2.relative(cwd, citedPath);
602
+ const relative = path.relative(cwd, citedPath);
796
603
  if (relative === "") return true;
797
- return !(relative === ".." || relative.startsWith(`..${path2.sep}`) || path2.isAbsolute(relative));
604
+ return !(relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative));
798
605
  }
799
606
  function directoryCitationDigest(cwd, citedPath) {
800
- const relative = path2.relative(cwd, citedPath);
607
+ const relative = path.relative(cwd, citedPath);
801
608
  return createHash2("sha256").update(`directory:${relative === "" ? "." : relative}`, "utf8").digest("hex");
802
609
  }
803
610
  function validateScoutCitation(input, citation) {
804
- const cwd = path2.resolve(input.cwd);
805
- const citedPath = path2.resolve(cwd, citation.path);
611
+ const cwd = path.resolve(input.cwd);
612
+ const citedPath = path.resolve(cwd, citation.path);
806
613
  if (!citationWithinWorkspace(cwd, citedPath)) {
807
614
  return { ok: false, reason: `Scout citation path escapes the workspace: ${citation.path}` };
808
615
  }
@@ -967,6 +774,27 @@ function validateCodeReport(contract, output) {
967
774
  return success(contract, "unmeasured", value);
968
775
  }
969
776
  var RESULT_COMMIT_MESSAGE_MAX_BYTES = 1e3;
777
+ var RESULT_SUMMARY_DEFAULT_MAX_BYTES = 16384;
778
+ var RESULT_SUMMARY_MAX_BYTES_CEILING = 32768;
779
+ var RESULT_OUTPUT_ENVELOPE_HEADROOM_BYTES = 4096;
780
+ function resultSummaryMaxBytes(contract) {
781
+ if (contract.kind !== "mutation-report") return RESULT_COMMIT_MESSAGE_MAX_BYTES;
782
+ return contract.maxSummaryBytes ?? RESULT_SUMMARY_DEFAULT_MAX_BYTES;
783
+ }
784
+ function parseResultSummaryMaxBytes(value, label) {
785
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1 || value > RESULT_SUMMARY_MAX_BYTES_CEILING) {
786
+ throw new Error(`${label} must be an integer between 1 and ${RESULT_SUMMARY_MAX_BYTES_CEILING}`);
787
+ }
788
+ return value;
789
+ }
790
+ function withResultSummaryAllowance(contract, maxSummaryBytes) {
791
+ if (contract.kind !== "mutation-report") return contract;
792
+ return { kind: "mutation-report", maxSummaryBytes: parseResultSummaryMaxBytes(maxSummaryBytes, "maxSummaryBytes") };
793
+ }
794
+ function resultContractOutputBytes(contract) {
795
+ if (contract === null || contract === void 0 || contract.kind !== "mutation-report") return null;
796
+ return 2 * resultSummaryMaxBytes(contract) + 2 * RESULT_COMMIT_MESSAGE_MAX_BYTES + RESULT_OUTPUT_ENVELOPE_HEADROOM_BYTES;
797
+ }
970
798
  var AUTHORSHIP_FIELDS = ["commitMessage", "summary"];
971
799
  function hasControlCharacters(value) {
972
800
  for (const character of value) {
@@ -979,15 +807,15 @@ function hasControlCharacters(value) {
979
807
  function normalizeAuthored(value) {
980
808
  return value.replace(/\r\n/gu, "\n").replace(/\r/gu, "\n").trim();
981
809
  }
982
- function validateAuthorship(value) {
810
+ function validateAuthorship(value, summaryMaxBytes) {
983
811
  for (const field of AUTHORSHIP_FIELDS) {
812
+ const maxBytes = field === "summary" ? summaryMaxBytes : RESULT_COMMIT_MESSAGE_MAX_BYTES;
984
813
  const raw = value[field];
985
814
  if (raw === void 0 || raw === null) continue;
986
815
  if (typeof raw !== "string") return `${field} must be a string when present`;
987
816
  if (raw.trim().length === 0) continue;
988
- if (Buffer.byteLength(raw, "utf8") > RESULT_COMMIT_MESSAGE_MAX_BYTES) {
989
- return `${field} must be at most ${RESULT_COMMIT_MESSAGE_MAX_BYTES} bytes`;
990
- }
817
+ const bytes = Buffer.byteLength(raw, "utf8");
818
+ if (bytes > maxBytes) return `${field} must be at most ${maxBytes} UTF-8 bytes (${bytes} given)`;
991
819
  if (hasControlCharacters(raw)) return `${field} must not contain control characters`;
992
820
  }
993
821
  return null;
@@ -996,7 +824,7 @@ function resultContractAuthorship(contract, output) {
996
824
  const empty = { commitMessage: null, summary: null };
997
825
  if (contract.kind !== "mutation-report" && contract.kind !== "architect-plan") return empty;
998
826
  const parsed = parseJson(output);
999
- if (!parsed.ok || validateAuthorship(parsed.value) !== null) return empty;
827
+ if (!parsed.ok || validateAuthorship(parsed.value, resultSummaryMaxBytes(contract)) !== null) return empty;
1000
828
  const read = (field) => {
1001
829
  const raw = parsed.value[field];
1002
830
  if (typeof raw !== "string") return null;
@@ -1141,7 +969,7 @@ function validateWorldKnowledge(contract, output, externalSourcesAllowed) {
1141
969
  }
1142
970
  function describeWriteSet(effects, cwd) {
1143
971
  if (effects.mutatedPaths.size === 0) return "this run wrote nothing";
1144
- const written = [...effects.mutatedPaths].map((target) => path2.relative(cwd, target) || target).sort().slice(0, MUTATION_WRITE_SET_REASON_LIMIT);
972
+ const written = [...effects.mutatedPaths].map((target) => path.relative(cwd, target) || target).sort().slice(0, MUTATION_WRITE_SET_REASON_LIMIT);
1145
973
  const more = effects.mutatedPaths.size - written.length;
1146
974
  return `this run wrote ${written.join(", ")}${more > 0 ? ` (+${more} more)` : ""}`;
1147
975
  }
@@ -1159,23 +987,31 @@ function mutationValidationsReason(value) {
1159
987
  return `Mutation result must carry typed validation results: every validations entry is shaped like ${MUTATION_VALIDATION_EXAMPLE}, with a string name, a boolean passed, a string evidence, and no other keys.`;
1160
988
  }
1161
989
  function validateMutation(contract, input) {
990
+ if (input.outputTruncated === true && input.output !== null) {
991
+ const bound = resultContractOutputBytes(contract) ?? Buffer.byteLength(input.output, "utf8");
992
+ return failure(
993
+ contract,
994
+ "unmeasured",
995
+ `result exceeded the sealed output bound of ${bound} bytes and was truncated; keep summary within ${resultSummaryMaxBytes(contract)} UTF-8 bytes or state the limitation`
996
+ );
997
+ }
1162
998
  const parsed = parseJson(input.output);
1163
999
  if (!parsed.ok) return failure(contract, "unmeasured", parsed.reason);
1164
1000
  const value = parsed.value;
1165
1001
  if (!hasOnlyKeys(value, ["mutatedPaths", "validations", "commitMessage", "summary"]) || !Array.isArray(value.mutatedPaths) || value.mutatedPaths.some((entry) => !string(entry))) {
1166
1002
  return failure(contract, "unmeasured", "Mutation result must carry mutatedPaths and validations");
1167
1003
  }
1168
- const authorship = validateAuthorship(value);
1004
+ const authorship = validateAuthorship(value, resultSummaryMaxBytes(contract));
1169
1005
  if (authorship !== null) return failure(contract, "unmeasured", authorship);
1170
1006
  const validations = parseChecks(value.validations);
1171
1007
  if (validations === null) return failure(contract, "unmeasured", mutationValidationsReason(value.validations));
1172
1008
  const reportedFailure = !validations.every((check) => check.passed);
1173
1009
  const effects = input.observedRunEffects;
1174
1010
  if (effects === void 0) return success(contract, reportedFailure ? "fail" : "pass", value);
1175
- const cwd = path2.resolve(input.cwd);
1011
+ const cwd = path.resolve(input.cwd);
1176
1012
  let unverifiedMutation = false;
1177
1013
  for (const reported of value.mutatedPaths) {
1178
- const target = path2.resolve(cwd, reported);
1014
+ const target = path.resolve(cwd, reported);
1179
1015
  if (effects.mutatedPaths.has(target)) continue;
1180
1016
  if (effects.failedMutationPaths.has(target)) {
1181
1017
  return failure(
@@ -1214,7 +1050,7 @@ function validateProvenance(contract, output) {
1214
1050
  return success(contract, "unmeasured", value);
1215
1051
  }
1216
1052
  function validateArchitect(contract, input) {
1217
- const artifactPath = path2.resolve(input.cwd, contract.path);
1053
+ const artifactPath = path.resolve(input.cwd, contract.path);
1218
1054
  const content = input.filesystem.readFile(artifactPath);
1219
1055
  if (content === null || content.trim().length === 0) {
1220
1056
  return failure(contract, "unmeasured", `required plan artifact is missing or empty: ${contract.path}`);
@@ -1278,8 +1114,22 @@ function validateResultContract(input) {
1278
1114
  return validateOracle(input.contract, input.output);
1279
1115
  case "external-delegation":
1280
1116
  return success(input.contract, "unmeasured", { external: true });
1281
- case "artifact-report":
1117
+ case "artifact-report": {
1118
+ if (input.contract.path !== void 0) {
1119
+ const content = input.filesystem.readFile(path.resolve(input.cwd, input.contract.path));
1120
+ if (content === null) {
1121
+ return failure(
1122
+ input.contract,
1123
+ "unmeasured",
1124
+ `Required artifact is missing or unreadable: ${JSON.stringify(input.contract.path)}`
1125
+ );
1126
+ }
1127
+ if (content.trim().length === 0) {
1128
+ return failure(input.contract, "unmeasured", `Required artifact is empty: ${JSON.stringify(input.contract.path)}`);
1129
+ }
1130
+ }
1282
1131
  return success(input.contract, "unmeasured", { artifact: true });
1132
+ }
1283
1133
  case "context-handbook":
1284
1134
  return validateContextHandbook(input.contract, input.output);
1285
1135
  case "code-report":
@@ -1305,7 +1155,8 @@ function validateRecipeResult(input) {
1305
1155
  cwd: input.cwd,
1306
1156
  networkAllowed: input.networkAllowed,
1307
1157
  filesystem: input.filesystem,
1308
- ...input.observedRunEffects !== void 0 ? { observedRunEffects: input.observedRunEffects } : {}
1158
+ ...input.observedRunEffects !== void 0 ? { observedRunEffects: input.observedRunEffects } : {},
1159
+ ...input.outputTruncated !== void 0 ? { outputTruncated: input.outputTruncated } : {}
1309
1160
  });
1310
1161
  return {
1311
1162
  applicable: true,
@@ -1339,7 +1190,7 @@ function resultContractShape(contract) {
1339
1190
  case "world-knowledge-report":
1340
1191
  return '{"discovery":"performed|caller-supplied-only|unavailable","facts":[{"claim":"...","evidence":"...","sources":["URL or document id"]}],"synthesis":["comparison or advisory conclusion"],"uncertainties":["..."],"followUpVerification":["..."]}';
1341
1192
  case "mutation-report":
1342
- return '{"mutatedPaths":["src/file.ts"],"validations":[{"name":"npm test","passed":true,"evidence":"exit 0"}],"commitMessage":"optional: the commit message for this change","summary":"optional: one line"}';
1193
+ return `{"mutatedPaths":["src/file.ts"],"validations":[{"name":"npm test","passed":true,"evidence":"exit 0"}],"commitMessage":"optional: the commit message for this change","summary":"the requested explanation or deliverable, or a specific limitation; otherwise optional"}. summary allows at most ${resultSummaryMaxBytes(contract)} UTF-8 bytes and commitMessage at most ${RESULT_COMMIT_MESSAGE_MAX_BYTES} UTF-8 bytes. Preserve the requested explanation and citations in summary when repairing the report; if they cannot fit or be grounded, state that specific limitation. Report only actual mutations and checks; a read-only task has mutatedPaths:[] and names the source read in validations, never a command that did not run`;
1343
1194
  case "provenance-report":
1344
1195
  return '{"confirmedFacts":["..."],"missingEvidence":["..."],"nextInspections":["..."]}';
1345
1196
  case "delegation-plan":
@@ -1349,7 +1200,7 @@ function resultContractShape(contract) {
1349
1200
  case "external-delegation":
1350
1201
  return "any final text";
1351
1202
  case "artifact-report":
1352
- return "any final text; the artifact you wrote at the location the task named is the result";
1203
+ return contract.path === void 0 ? "any final text; the artifact you wrote at the location the task named is the result" : `any final text; the required artifact at ${JSON.stringify(contract.path)} must be readable and non-empty on disk`;
1353
1204
  case "context-handbook":
1354
1205
  return '{"projectName":"string","identity":"one sentence","conventions":[],"invariants":[],"sections":[{"title":"Architecture","body":"markdown that cites `real/path.ts` tokens"}]}';
1355
1206
  case "code-report":
@@ -1358,20 +1209,32 @@ function resultContractShape(contract) {
1358
1209
  }
1359
1210
  function resultContractRepairMessage(input) {
1360
1211
  const last = input.attempt >= RESULT_CONTRACT_REPAIR_LIMIT;
1212
+ const boundArtifact = input.contract.kind === "artifact-report" && input.contract.path !== void 0;
1361
1213
  const lines = [
1362
1214
  last ? "FINAL RESULT REQUIRED IN THIS RESPONSE. Your previous response still did not satisfy this run's result contract." : "Your previous response did not satisfy this run's result contract.",
1363
1215
  `Validator reason: ${input.reason}`,
1364
1216
  input.toolsAvailable === true ? "You may use the admitted tools to repair this validator failure, then emit the required terminal result." : "Tool use is over. Answer from the evidence you already gathered.",
1365
- `Emit exactly this shape and nothing else: ${resultContractShape(input.contract)}`,
1366
- "Do not add prose, code fences, or commentary around it. Do not describe work you intend to do next."
1217
+ ...boundArtifact ? [
1218
+ `Required result: ${resultContractShape(input.contract)}`,
1219
+ input.toolsAvailable === true ? "Repair the required artifact on disk, then give a brief final status. Literal tool-call markup in final text does not write a file." : "State the limitation in a brief final status; the required artifact remains unsatisfied."
1220
+ ] : [
1221
+ `Emit exactly this shape and nothing else: ${resultContractShape(input.contract)}`,
1222
+ "Do not add prose, code fences, or commentary around it. Do not describe work you intend to do next."
1223
+ ]
1367
1224
  ];
1368
1225
  if (input.anchors.length > 0) {
1369
1226
  lines.push(
1370
1227
  "",
1371
- "Locations you read successfully in this run (use these exact path:line values):",
1228
+ "Source ranges you read successfully in this run (path:start-end, inclusive):",
1372
1229
  ...input.anchors.slice(-RESULT_CONTRACT_ANCHOR_LIMIT).map((anchor) => `- ${anchor}`)
1373
1230
  );
1374
1231
  }
1232
+ if (input.contract.kind === "scout-report") {
1233
+ lines.push(
1234
+ "For each finding, use the exact source line that supports its claim inside a listed read range. Range endpoints are not suggested citations.",
1235
+ "If a finding's supporting line cannot be confirmed from the source already returned, remove that finding and keep the confirmed findings. Never shift a rejected citation into range just to pass validation."
1236
+ );
1237
+ }
1375
1238
  return lines.join("\n");
1376
1239
  }
1377
1240
  var RESULT_CONTRACT_REPAIR_TOOL = "result_contract";
@@ -1420,7 +1283,7 @@ var RECIPE_DECLARABLE_KINDS = [
1420
1283
  "delegation-plan"
1421
1284
  ];
1422
1285
  var COORDINATOR_AUTHORED_KINDS = ["council-ballot"];
1423
- function parseContract(value, sourcePath, kinds) {
1286
+ function parseContract(value, sourcePath, kinds, callerBoundArtifacts = false) {
1424
1287
  if (value === null || typeof value !== "object" || Array.isArray(value)) {
1425
1288
  throw new Error(`agent recipe: ${sourcePath}: resultContract must be an object`);
1426
1289
  }
@@ -1432,11 +1295,38 @@ function parseContract(value, sourcePath, kinds) {
1432
1295
  if (!only("kind", "path") || !string(record.path)) {
1433
1296
  throw new Error(`agent recipe: ${sourcePath}: architect-plan requires only non-empty path`);
1434
1297
  }
1435
- if (path2.isAbsolute(record.path) || record.path.split(/[\\/]/u).includes("..")) {
1298
+ if (path.isAbsolute(record.path) || record.path.split(/[\\/]/u).includes("..")) {
1436
1299
  throw new Error(`agent recipe: ${sourcePath}: architect-plan path must be workspace-relative`);
1437
1300
  }
1438
1301
  return { kind: "architect-plan", path: record.path };
1439
1302
  }
1303
+ if (record.kind === "artifact-report" && callerBoundArtifacts) {
1304
+ if (!only("kind", "path")) {
1305
+ throw new Error(`agent recipe: ${sourcePath}: artifact-report admits only kind and path`);
1306
+ }
1307
+ if (record.path === void 0) return { kind: "artifact-report" };
1308
+ if (!string(record.path) || record.path.includes("\0")) {
1309
+ throw new Error(`agent recipe: ${sourcePath}: artifact-report requires a non-empty path without NUL`);
1310
+ }
1311
+ if (path.posix.isAbsolute(record.path) || path.win32.isAbsolute(record.path) || /^[a-z]:/iu.test(record.path) || record.path.split(/[\\/]/u).includes("..")) {
1312
+ throw new Error(`agent recipe: ${sourcePath}: artifact-report path must be workspace-relative`);
1313
+ }
1314
+ return { kind: "artifact-report", path: record.path };
1315
+ }
1316
+ if (record.kind === "mutation-report") {
1317
+ if (!only("kind", "maxSummaryBytes")) {
1318
+ throw new Error(`agent recipe: ${sourcePath}: mutation-report admits only kind and maxSummaryBytes`);
1319
+ }
1320
+ if (record.maxSummaryBytes === void 0) return { kind: "mutation-report" };
1321
+ try {
1322
+ return {
1323
+ kind: "mutation-report",
1324
+ maxSummaryBytes: parseResultSummaryMaxBytes(record.maxSummaryBytes, "maxSummaryBytes")
1325
+ };
1326
+ } catch (error) {
1327
+ throw new Error(`agent recipe: ${sourcePath}: ${error instanceof Error ? error.message : String(error)}`);
1328
+ }
1329
+ }
1440
1330
  if (!kinds.includes(record.kind) || !only("kind")) {
1441
1331
  throw new Error(`agent recipe: ${sourcePath}: resultContract.kind is unsupported or has unknown keys`);
1442
1332
  }
@@ -1446,12 +1336,11 @@ function parseResultContract(value, sourcePath) {
1446
1336
  return parseContract(value, sourcePath, RECIPE_DECLARABLE_KINDS);
1447
1337
  }
1448
1338
  function parseWorkerResultContract(value, sourcePath) {
1449
- return parseContract(value, sourcePath, [...RECIPE_DECLARABLE_KINDS, ...COORDINATOR_AUTHORED_KINDS]);
1339
+ return parseContract(value, sourcePath, [...RECIPE_DECLARABLE_KINDS, ...COORDINATOR_AUTHORED_KINDS], true);
1450
1340
  }
1451
1341
 
1452
1342
  export {
1453
1343
  parseJsonObjectPayload,
1454
- classify,
1455
1344
  AGENT_AUTOMATION_AUTHORITIES,
1456
1345
  isAgentCategory,
1457
1346
  isAgentCapabilityClass,
@@ -1471,6 +1360,10 @@ export {
1471
1360
  resultContractSourceId,
1472
1361
  parseVerifierResult,
1473
1362
  parseOracleResult,
1363
+ RESULT_SUMMARY_MAX_BYTES_CEILING,
1364
+ parseResultSummaryMaxBytes,
1365
+ withResultSummaryAllowance,
1366
+ resultContractOutputBytes,
1474
1367
  resultContractAuthorship,
1475
1368
  parseScoutResult,
1476
1369
  validateResultContract,
@@ -1481,4 +1374,4 @@ export {
1481
1374
  parseResultContract,
1482
1375
  parseWorkerResultContract
1483
1376
  };
1484
- //# sourceMappingURL=chunk-B4OAX3SI.js.map
1377
+ //# sourceMappingURL=chunk-OQM5IVJY.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  atomicWrite
4
- } from "./chunk-HAXOFFRH.js";
4
+ } from "./chunk-FQOOGXBH.js";
5
5
  import {
6
6
  clioStateDir
7
- } from "./chunk-BYP5D4HI.js";
7
+ } from "./chunk-CTTI7G3T.js";
8
8
  import {
9
9
  init_esm_shims
10
- } from "./chunk-3R73A4XB.js";
10
+ } from "./chunk-ECBHH7LU.js";
11
11
 
12
12
  // src/domains/dispatch/code-step-store.ts
13
13
  init_esm_shims();
@@ -44,4 +44,4 @@ export {
44
44
  writeCodeStepRecord,
45
45
  readCodeStepRecords
46
46
  };
47
- //# sourceMappingURL=chunk-XRZT5WY5.js.map
47
+ //# sourceMappingURL=chunk-P5SC4DLJ.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/domains/context/wiki/plan.ts
7
7
  init_esm_shims();
@@ -60,12 +60,17 @@ function overviewPage(source) {
60
60
  return {
61
61
  path: "architecture.md",
62
62
  title: "Architecture",
63
- intent: "Explain what this repository is, its top-level composition, how a request or command flows through it, and where the boundaries between its major areas are.",
63
+ intent: "Explain what this repository is and its top-level composition; describe relationships, boundaries, and request or command flow where the inspected source establishes them.",
64
64
  sources: rankedSources(entries.length > 0 ? entries : source),
65
65
  status: "pending",
66
66
  attempts: 0
67
67
  };
68
68
  }
69
+ function intentForScope(files, areaDepth) {
70
+ const lines = files.reduce((total, file) => total + Math.max(0, file.loc), 0);
71
+ const scopes = [...new Set(files.map((file) => areaForPath(file.path, areaDepth)))];
72
+ return `Assigned scope (${files.length} indexed files, ${lines} lines): document responsibilities and key entry points/symbols; explain lifecycle rules, callers, dependencies, and specific test cases only where inspected source or tests establish them. Anchors are starting points, not the full assignment. Assigned areas: ` + scopes.join(", ") + ".";
73
+ }
69
74
  function buildCandidatePlan(codewiki, depth) {
70
75
  const source = codewiki.files.filter((file) => file.lang !== "config");
71
76
  const totalLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
@@ -83,21 +88,38 @@ function buildCandidatePlan(codewiki, depth) {
83
88
  if (host === void 0) continue;
84
89
  extras.set(host, [...extras.get(host) ?? [], ...area.files]);
85
90
  }
91
+ const overview = overviewPage(source);
92
+ const [onlyArea] = selected;
93
+ if (depth === "simple" && selected.length === 1 && onlyArea) {
94
+ const files = [...onlyArea.files, ...extras.get(onlyArea.key) ?? []];
95
+ return {
96
+ version: 1,
97
+ depth,
98
+ overview: "",
99
+ pages: [
100
+ { ...overview, intent: `${overview.intent} ${intentForScope(files, areaDepth)}`, sources: rankedSources(files) }
101
+ ]
102
+ };
103
+ }
86
104
  const pages = selected.map((area) => {
87
105
  const files = [...area.files, ...extras.get(area.key) ?? []];
88
106
  return {
89
107
  path: pagePathForArea(area.key),
90
108
  title: titleForArea(area.key),
91
- intent: `Document ${area.key} (${area.files.length} indexed files, ${area.lines} lines): what it owns, its entry points and important symbols, the state and lifecycle invariants it enforces, an upstream caller and a downstream dependency, the focused tests that prove its behavior, and what to watch when editing it.`,
109
+ intent: intentForScope(files, areaDepth),
92
110
  sources: rankedSources(files),
93
111
  status: "pending",
94
112
  attempts: 0
95
113
  };
96
114
  });
115
+ if (pages.length > 0) {
116
+ overview.intent += " Link to the area pages for detailed behavior; keep this page focused on their composition and relationships.";
117
+ }
97
118
  return dedupePagePaths({
98
119
  version: 1,
120
+ depth,
99
121
  overview: "",
100
- pages: [overviewPage(source), ...pages]
122
+ pages: [overview, ...pages]
101
123
  });
102
124
  }
103
125
  function dedupePagePaths(plan) {
@@ -120,7 +142,13 @@ function planWikiGeneration(codewiki, requestedDepth = "auto") {
120
142
  const sourceFiles = source.length;
121
143
  const sourceLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
122
144
  const depth = requestedDepth === "auto" ? classifyDepth(sourceFiles, sourceLines) : requestedDepth;
123
- return { requestedDepth, depth, sourceFiles, sourceLines, plan: buildCandidatePlan(codewiki, depth) };
145
+ return {
146
+ requestedDepth,
147
+ depth,
148
+ sourceFiles,
149
+ sourceLines,
150
+ plan: { ...buildCandidatePlan(codewiki, depth), requestedDepth }
151
+ };
124
152
  }
125
153
 
126
154
  export {
@@ -131,4 +159,4 @@ export {
131
159
  buildCandidatePlan,
132
160
  planWikiGeneration
133
161
  };
134
- //# sourceMappingURL=chunk-R6Q67RJH.js.map
162
+ //# sourceMappingURL=chunk-PECBKCDK.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/core/workspace-files.ts
7
7
  init_esm_shims();
@@ -336,4 +336,4 @@ export {
336
336
  enumerateWorkspaceFilesAsync,
337
337
  filterWorkspaceFileCandidates
338
338
  };
339
- //# sourceMappingURL=chunk-33YXPOE3.js.map
339
+ //# sourceMappingURL=chunk-PPEZJWUG.js.map