@iowarp/clio-coder 0.4.3 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/CONTRIBUTING.md +25 -15
  3. package/README.md +340 -27
  4. package/dist/{acp-H2NGRPWO.js → acp-H3CU2HBQ.js} +25 -25
  5. package/dist/{agents-TL5LLUQP.js → agents-IXQQZ7BD.js} +77 -75
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-E5SW4HMS.js → auth-R7KYF7N3.js} +38 -39
  8. package/dist/builtins-CRFDQUVP.js +22 -0
  9. package/dist/{chunk-7DRAWPTZ.js → chunk-22PQ4TX4.js} +4 -4
  10. package/dist/{chunk-NEDJ26B5.js → chunk-2GPGAE5W.js} +6 -51
  11. package/dist/{chunk-IKCO5N3L.js → chunk-2QPI3TR3.js} +3 -3
  12. package/dist/{chunk-HRQMFLJP.js → chunk-32KJPXAM.js} +6 -6
  13. package/dist/{chunk-65DEGPJ6.js → chunk-3A3CUMKA.js} +6 -4
  14. package/dist/{chunk-5TSRNF4G.js → chunk-3T4DXWP6.js} +170 -12
  15. package/dist/{chunk-DR52UMZW.js → chunk-3UW3KU4A.js} +2 -2
  16. package/dist/{chunk-XIVNBFZS.js → chunk-4SVIVOMC.js} +208 -39
  17. package/dist/{chunk-NMJXSHBJ.js → chunk-5A6XR3RJ.js} +44 -19
  18. package/dist/{chunk-YPC6ZR5L.js → chunk-5CMARGPF.js} +119 -5
  19. package/dist/{chunk-KXDSS5WJ.js → chunk-5CY4Q6QI.js} +4 -4
  20. package/dist/chunk-5DDOTTG4.js +402 -0
  21. package/dist/{chunk-D4CJV46V.js → chunk-5GZICIYO.js} +3 -3
  22. package/dist/{chunk-4IUZQIJ3.js → chunk-5PHVPU4G.js} +2 -2
  23. package/dist/{chunk-PUVDKJ2Y.js → chunk-5VTJP36Q.js} +5 -7
  24. package/dist/{chunk-JGRC33J2.js → chunk-5ZMXGW7P.js} +90 -9
  25. package/dist/chunk-5ZSZEYJK.js +119 -0
  26. package/dist/chunk-633EXGZA.js +44 -0
  27. package/dist/{chunk-IWT4SF4R.js → chunk-6CDNRHWH.js} +361 -89
  28. package/dist/{chunk-EBY63B7G.js → chunk-6EXUUOSN.js} +2 -2
  29. package/dist/{chunk-SVNXH4L2.js → chunk-6ICZKDUC.js} +2 -2
  30. package/dist/{chunk-INY6HTFL.js → chunk-6SYEGZI3.js} +12 -12
  31. package/dist/{chunk-SKHCAU7K.js → chunk-6YA46L5A.js} +5 -4
  32. package/dist/{chunk-NZMNUPZZ.js → chunk-77CZRFTE.js} +3 -3
  33. package/dist/{chunk-L47TF46W.js → chunk-7HBHHVCK.js} +24 -3
  34. package/dist/{chunk-DWUOQKRU.js → chunk-7TKWWPD7.js} +5 -4
  35. package/dist/{chunk-2VTFPG5O.js → chunk-7WLRF2U5.js} +2 -2
  36. package/dist/chunk-7WUZEB2M.js +165 -0
  37. package/dist/{chunk-6PTFB5VS.js → chunk-7YJWEF2L.js} +59 -28
  38. package/dist/{chunk-3EBYEESD.js → chunk-A46ILRS2.js} +5 -5
  39. package/dist/{chunk-UOIZ7DA4.js → chunk-AP7HDJOP.js} +2 -2
  40. package/dist/{chunk-APJ265NV.js → chunk-B5GGDIHT.js} +146 -146
  41. package/dist/{chunk-PMZVFWSR.js → chunk-B5ZTR6KZ.js} +2 -2
  42. package/dist/chunk-B6UM3OZC.js +15 -0
  43. package/dist/{chunk-MCEPRMZW.js → chunk-BBV5TKE6.js} +5 -5
  44. package/dist/{chunk-4O6MANBS.js → chunk-BS4GAMUB.js} +14 -10
  45. package/dist/{chunk-S66XZJOF.js → chunk-C27U2TYG.js} +2 -2
  46. package/dist/{chunk-42FMPA75.js → chunk-CBSKDFWL.js} +3 -3
  47. package/dist/{chunk-2LEAKD4C.js → chunk-CKK25WN3.js} +3 -3
  48. package/dist/{chunk-BYP5D4HI.js → chunk-CTTI7G3T.js} +2 -2
  49. package/dist/{chunk-XAKHZX5N.js → chunk-CVDAFGPW.js} +4 -4
  50. package/dist/{chunk-RKKLTLYB.js → chunk-CXQ37WJH.js} +3 -3
  51. package/dist/{chunk-GTUD2WMY.js → chunk-DBREN25X.js} +44 -9
  52. package/dist/{chunk-WCXUNS7U.js → chunk-DIMRLNIC.js} +35 -66
  53. package/dist/{chunk-NDDGJUXD.js → chunk-DNCE23JJ.js} +2 -2
  54. package/dist/{chunk-HVDIIIQW.js → chunk-DNHVRBH4.js} +3 -3
  55. package/dist/{chunk-2UG5F4C5.js → chunk-DRD2A54W.js} +116 -52
  56. package/dist/{chunk-D7E7WCDF.js → chunk-DVNAPPXU.js} +2 -2
  57. package/dist/{chunk-YXLYO42X.js → chunk-DXVMLM3Z.js} +3 -2
  58. package/dist/{chunk-5MEZN6CB.js → chunk-DZK63TZJ.js} +6 -6
  59. package/dist/{chunk-IGLP3ODT.js → chunk-E3BQTQUP.js} +15 -15
  60. package/dist/{chunk-IWHMRKLL.js → chunk-E3LEPLQ2.js} +2 -2
  61. package/dist/{chunk-3R73A4XB.js → chunk-ECBHH7LU.js} +3 -3
  62. package/dist/chunk-ECOMVOHP.js +139 -0
  63. package/dist/chunk-EFSEIZE6.js +56 -0
  64. package/dist/{chunk-IJNZMHLA.js → chunk-EHCPSZJF.js} +4 -4
  65. package/dist/{chunk-K6BSR66V.js → chunk-EHOSNVVM.js} +6 -2
  66. package/dist/{chunk-RRNP2ANY.js → chunk-EQEJJ53P.js} +10 -10
  67. package/dist/{chunk-GWZNEVM2.js → chunk-EWD5P3GK.js} +9 -9
  68. package/dist/{chunk-JKKCYP3C.js → chunk-F34AR6O3.js} +21 -15
  69. package/dist/{chunk-GHS5EBTQ.js → chunk-FKIOX6DS.js} +29 -20
  70. package/dist/{chunk-HAXOFFRH.js → chunk-FQOOGXBH.js} +7 -7
  71. package/dist/{chunk-MWUZBSAQ.js → chunk-FSTIBAGM.js} +358 -63
  72. package/dist/{chunk-ZTJUVLTU.js → chunk-FXFVDPWY.js} +2 -2
  73. package/dist/{chunk-XPLRXC72.js → chunk-GD55RTIW.js} +3 -3
  74. package/dist/{chunk-5B2AEOW5.js → chunk-GH5ZR6JP.js} +472 -472
  75. package/dist/{chunk-JSC3U7TI.js → chunk-GJ24ODAX.js} +5 -5
  76. package/dist/{chunk-B4VEBZKF.js → chunk-GNQRWTMY.js} +139 -52
  77. package/dist/{chunk-5ICU3EUH.js → chunk-GVYWZNRK.js} +5 -5
  78. package/dist/chunk-GXCCHKN6.js +59 -0
  79. package/dist/{chunk-V2ANDPVT.js → chunk-HGSLRG33.js} +170 -8
  80. package/dist/{chunk-LLDJM5XK.js → chunk-HHVJNVUJ.js} +6 -6
  81. package/dist/{chunk-F4EKGO4N.js → chunk-HL26ADLH.js} +4 -2
  82. package/dist/{chunk-VA5FNYMT.js → chunk-HR3HPQ76.js} +42 -5
  83. package/dist/{chunk-ID64D7PE.js → chunk-HXHFDHB6.js} +24 -24
  84. package/dist/{chunk-OML5D5V5.js → chunk-I7VLWRK2.js} +8 -8
  85. package/dist/{chunk-VW6DOEDG.js → chunk-ICO4TQ2F.js} +16 -5
  86. package/dist/{chunk-SZAA6XDG.js → chunk-IFDRAD6F.js} +2 -2
  87. package/dist/{chunk-WBKFA554.js → chunk-ILJ7DWGE.js} +9 -9
  88. package/dist/{chunk-2JH2WHGE.js → chunk-J2FYEQ5L.js} +4 -4
  89. package/dist/{chunk-BMS5RKQY.js → chunk-JABWPKFY.js} +3 -3
  90. package/dist/{chunk-QDC3K2U3.js → chunk-K2BLQC5E.js} +3 -3
  91. package/dist/{chunk-EKCHAPYA.js → chunk-K2HL3GBL.js} +4 -4
  92. package/dist/{chunk-N2Z7HLVY.js → chunk-K6RDB7IA.js} +28 -28
  93. package/dist/{chunk-TM6LQDI3.js → chunk-KDWLXVMN.js} +85 -335
  94. package/dist/{chunk-OZNBF4L3.js → chunk-KECNXMDE.js} +2 -2
  95. package/dist/{chunk-RSJ25QSL.js → chunk-KF6GFW6O.js} +217 -50
  96. package/dist/{chunk-BTK3SSSK.js → chunk-KMF54VH3.js} +2 -2
  97. package/dist/chunk-KPRLAMP4.js +32 -0
  98. package/dist/{chunk-ECH6PKUQ.js → chunk-KQ6IDQIB.js} +2 -2
  99. package/dist/{chunk-IUE3Y34X.js → chunk-KTFSFCVN.js} +20 -9
  100. package/dist/{chunk-7E7I3WLS.js → chunk-KYKNBD4Y.js} +36 -34
  101. package/dist/chunk-L4N3DWNW.js +539 -0
  102. package/dist/{chunk-LCGCVYZ4.js → chunk-LQTKDAUO.js} +2 -2
  103. package/dist/{chunk-JIEGK6UF.js → chunk-LTR5QCLS.js} +51 -7
  104. package/dist/chunk-LUL5Z66S.js +221 -0
  105. package/dist/chunk-LVFANMOH.js +466 -0
  106. package/dist/{chunk-H7IXIC72.js → chunk-LY4N4TTL.js} +17 -3
  107. package/dist/{chunk-VKPAQYEB.js → chunk-LZBMXNLP.js} +5 -5
  108. package/dist/{chunk-UL3WSD3F.js → chunk-M4KFUXS7.js} +2 -2
  109. package/dist/{chunk-I7ZPNEJM.js → chunk-M6TAYK66.js} +8 -8
  110. package/dist/{chunk-NEKRRTYW.js → chunk-MC3JSVR6.js} +2 -2
  111. package/dist/{chunk-CFGTUFWB.js → chunk-MCJKEGHO.js} +2 -2
  112. package/dist/chunk-MDU3C27C.js +674 -0
  113. package/dist/{chunk-6XLNIQDB.js → chunk-MYI32N4R.js} +2 -2
  114. package/dist/{chunk-4UVU7BJ5.js → chunk-NC4KV7EL.js} +6 -6
  115. package/dist/{chunk-JEQ3XTHC.js → chunk-NF3BK5WR.js} +5 -5
  116. package/dist/chunk-NTK3WTHM.js +141 -0
  117. package/dist/{chunk-GYV6VZOC.js → chunk-NTTS3O53.js} +2 -2
  118. package/dist/{chunk-UPZU6GE4.js → chunk-NY6IWDVU.js} +6 -6
  119. package/dist/chunk-O2RQ7LCK.js +283 -0
  120. package/dist/{chunk-4BJ5BYCE.js → chunk-O3VV6IVK.js} +2 -2
  121. package/dist/{chunk-W6GROXXM.js → chunk-O5F25NIE.js} +2 -2
  122. package/dist/{chunk-WRBAGUNF.js → chunk-ODUTYZIU.js} +5 -5
  123. package/dist/{chunk-E3TPLWFX.js → chunk-ONRTXOZY.js} +4 -4
  124. package/dist/{chunk-B4OAX3SI.js → chunk-OQM5IVJY.js} +118 -225
  125. package/dist/{chunk-XRZT5WY5.js → chunk-P5SC4DLJ.js} +4 -4
  126. package/dist/{chunk-R6Q67RJH.js → chunk-PECBKCDK.js} +34 -6
  127. package/dist/{chunk-33YXPOE3.js → chunk-PPEZJWUG.js} +2 -2
  128. package/dist/{chunk-64I3JVYM.js → chunk-PWWSIB2A.js} +5 -5
  129. package/dist/{chunk-2STGEDFV.js → chunk-QEQISF75.js} +2 -2
  130. package/dist/{chunk-3DPEIQKN.js → chunk-QH3ZTUOA.js} +2 -2
  131. package/dist/{chunk-YAKGTXEV.js → chunk-QRFXEO6Y.js} +2 -2
  132. package/dist/{chunk-35MSIRKH.js → chunk-QUIJZSDW.js} +2 -2
  133. package/dist/{chunk-HHV2GANA.js → chunk-R2P2U3ZS.js} +2 -2
  134. package/dist/chunk-R6MAYTMS.js +108 -0
  135. package/dist/{chunk-MUW2BDDH.js → chunk-R6MICQYU.js} +6 -6
  136. package/dist/{chunk-JDAY6FIL.js → chunk-RLTT5GVY.js} +132 -17
  137. package/dist/{chunk-ZWPRK62N.js → chunk-RXIOCVBZ.js} +24 -6
  138. package/dist/{chunk-NIQJ66N4.js → chunk-S32UQ5GL.js} +62 -35
  139. package/dist/{chunk-AX2THNSA.js → chunk-SBZX6ARC.js} +12 -12
  140. package/dist/{chunk-TXOTCRLG.js → chunk-SD7SHNDW.js} +2 -2
  141. package/dist/{chunk-AF4YM7Z4.js → chunk-SDWNDICN.js} +10284 -3756
  142. package/dist/{chunk-UXCU4E3T.js → chunk-SE4ZKILO.js} +6 -6
  143. package/dist/chunk-SL2RDHKO.js +19 -0
  144. package/dist/{chunk-NUGM5KR6.js → chunk-SRCEQKQS.js} +2 -2
  145. package/dist/{chunk-KKOJXO6R.js → chunk-SRZOW5L2.js} +46 -14
  146. package/dist/{chunk-3M6DQK6S.js → chunk-T334FW2H.js} +7 -7
  147. package/dist/chunk-T52TPHYC.js +318 -0
  148. package/dist/{chunk-I7XBWTYH.js → chunk-T53XI6I7.js} +5 -5
  149. package/dist/{chunk-LDJG7DW3.js → chunk-T7FDXNRU.js} +13 -13
  150. package/dist/{chunk-XPWWI35G.js → chunk-TEG3RYVZ.js} +59 -41
  151. package/dist/{chunk-3I7MS7N2.js → chunk-TK2BMCBZ.js} +2 -2
  152. package/dist/{chunk-5OIVVPHF.js → chunk-TN5FW4XY.js} +13 -6
  153. package/dist/{chunk-PAJQJ7BS.js → chunk-TZ7MFRG4.js} +1263 -835
  154. package/dist/{chunk-GI7YYQ3F.js → chunk-U2JOLB7O.js} +415 -83
  155. package/dist/{chunk-LL4KHSZI.js → chunk-U2MSJ57E.js} +2 -2
  156. package/dist/{chunk-FTMGRKEF.js → chunk-U44YYLVV.js} +4 -4
  157. package/dist/{chunk-CE5AX47J.js → chunk-U7H5WRG5.js} +5 -5
  158. package/dist/{chunk-G76U63X4.js → chunk-U7VQ4NI4.js} +22 -22
  159. package/dist/{chunk-7ZYNNDKC.js → chunk-UFYNOQK4.js} +7 -7
  160. package/dist/{chunk-R346GLFC.js → chunk-UHW5V7HC.js} +2 -2
  161. package/dist/{chunk-QWGDJJYJ.js → chunk-UL36QJX6.js} +14 -14
  162. package/dist/{chunk-VIA6RFQZ.js → chunk-UQIVHSE4.js} +4 -4
  163. package/dist/{chunk-HEQY7ZFI.js → chunk-URBGEOH3.js} +5 -5
  164. package/dist/chunk-USZA7GWL.js +341 -0
  165. package/dist/{chunk-W6RRQCPQ.js → chunk-UTUNT5QL.js} +48 -579
  166. package/dist/{chunk-ZA4VCIGV.js → chunk-UUQ5G6EZ.js} +60 -41
  167. package/dist/{chunk-F5JHEYZM.js → chunk-UXAC2FX4.js} +73 -41
  168. package/dist/{chunk-VG7TBQIY.js → chunk-V552WL53.js} +68 -4
  169. package/dist/{chunk-BWH6N36D.js → chunk-VHKTOLEW.js} +272 -42
  170. package/dist/chunk-VLPTKCKT.js +396 -0
  171. package/dist/{chunk-336NSSKI.js → chunk-VNBICSS2.js} +2 -2
  172. package/dist/{chunk-VAVR4IJY.js → chunk-VQD7NH7Z.js} +3 -3
  173. package/dist/{chunk-LBMZMYH2.js → chunk-W2RJEH6Q.js} +3 -3
  174. package/dist/{chunk-7CR24IG7.js → chunk-WDV62RKY.js} +2 -2
  175. package/dist/{chunk-2UH2KFUP.js → chunk-WFKDPU7U.js} +4 -4
  176. package/dist/{chunk-ZDN3Y73Y.js → chunk-WJIMKGD6.js} +9 -51
  177. package/dist/{chunk-YQWYVTMC.js → chunk-WLMSOT73.js} +59 -12
  178. package/dist/{chunk-MXHC5QYU.js → chunk-WTQGRBHV.js} +5 -144
  179. package/dist/chunk-WXA2CFJO.js +23 -0
  180. package/dist/{chunk-QSNYB6ZV.js → chunk-XCUDZQLX.js} +3 -3
  181. package/dist/{chunk-2APPQIER.js → chunk-XXBQKW32.js} +11 -11
  182. package/dist/{chunk-2VIKGWFZ.js → chunk-YEJIG7LN.js} +332 -332
  183. package/dist/chunk-YGDMBK7O.js +567 -0
  184. package/dist/{chunk-4WR7VSYB.js → chunk-YYB3MC65.js} +23 -9
  185. package/dist/{chunk-2IR2NMPA.js → chunk-ZIDFQJRB.js} +2 -2
  186. package/dist/{chunk-54CBCGIR.js → chunk-ZMZQEBKI.js} +136 -81
  187. package/dist/{chunk-6EJMN2Y3.js → chunk-ZTNFYMIO.js} +2 -2
  188. package/dist/{chunk-WEPFGWHJ.js → chunk-ZZFWWYLX.js} +2 -2
  189. package/dist/cli/index.js +45 -44
  190. package/dist/clio-5I2IBFYL.js +26 -0
  191. package/dist/{code-nav-MDZNQS33.js → code-nav-YXIAEZVS.js} +48 -32
  192. package/dist/codewiki/build-worker.js +76 -29
  193. package/dist/{compile-cache-OQAVB7Y5.js → compile-cache-WJEPUZEJ.js} +4 -4
  194. package/dist/{components-UCUQ4QXW.js → components-TNIKXCBH.js} +13 -14
  195. package/dist/{config-SVM5P5YI.js → config-Y2JDJ3JJ.js} +210 -119
  196. package/dist/configure-SML6UBZ5.js +55 -0
  197. package/dist/{context-2OHRKS42.js → context-P5YSEO55.js} +125 -115
  198. package/dist/{context-VNCR7KAG.js → context-QQ53HSGJ.js} +91 -62
  199. package/dist/{context-E3VC7RX5.js → context-S2EEC3EJ.js} +62 -31
  200. package/dist/context-clear-TMEQCOTH.js +183 -0
  201. package/dist/{context-index-HNG3MOME.js → context-index-HP2JFUWA.js} +13 -11
  202. package/dist/{context-map-COB37XXN.js → context-map-INTXD54D.js} +71 -21
  203. package/dist/{context-working-set-VDS25HXZ.js → context-working-set-CNLSQN5K.js} +31 -31
  204. package/dist/detail-5572VLBO.js +114 -0
  205. package/dist/{dispatch-runner-5AHT53RF.js → dispatch-runner-FRHD6P2O.js} +214 -126
  206. package/dist/{docs-PD3EXDKU.js → docs-BL7ROUFN.js} +5 -7
  207. package/dist/{doctor-WNNVO6FY.js → doctor-N3LCM2LG.js} +89 -66
  208. package/dist/{eval-7G7SGAYO.js → eval-BUU3ZOUZ.js} +493 -197
  209. package/dist/{eval-inventory-Y6QRFOH5.js → eval-inventory-QOYZERXJ.js} +7 -7
  210. package/dist/evidence-DTGEN456.js +224 -0
  211. package/dist/{evidence-VD6736FQ.js → evidence-SQ5DNFEN.js} +114 -195
  212. package/dist/{evolve-AL3NGVRL.js → evolve-IJNUFZDS.js} +107 -88
  213. package/dist/{extensions-MOVJ32NM.js → extensions-YVRHX6ZI.js} +16 -17
  214. package/dist/{fleet-QZHUMAGI.js → fleet-ZNNVSYFO.js} +147 -141
  215. package/dist/{fleet-commands-BAYT5FJZ.js → fleet-commands-5YE7NPJL.js} +27 -23
  216. package/dist/{fleet-decisions-IREVMRU4.js → fleet-decisions-3SBSCTCW.js} +16 -15
  217. package/dist/{fleet-graph-YCTT3HTI.js → fleet-graph-6HHPWF5T.js} +39 -38
  218. package/dist/{fleet-inspect-QVJTDAVB.js → fleet-inspect-JEYMGCGC.js} +107 -87
  219. package/dist/{fleet-new-RDVJLHHH.js → fleet-new-RCKGSRDV.js} +3 -3
  220. package/dist/{fleet-preflight-25QAFPK4.js → fleet-preflight-QRSHIIDE.js} +10 -10
  221. package/dist/{fleet-validate-5O57AAJ7.js → fleet-validate-4PM4GDDL.js} +46 -42
  222. package/dist/{fleet-verify-CPH2W2T6.js → fleet-verify-NJDTHTO3.js} +105 -85
  223. package/dist/fleet-view-UP2BWQQY.js +117 -0
  224. package/dist/{init-J477LKZH.js → init-S3GZQ5ZF.js} +123 -117
  225. package/dist/{install-NKNG7KD4.js → install-3RZDDP23.js} +5 -5
  226. package/dist/{interop-3FCM6XLG.js → interop-YOTGXFJM.js} +25 -26
  227. package/dist/inventory-K2OZ36YJ.js +117 -0
  228. package/dist/{library-QUQEIUG6.js → library-GJI6W6OK.js} +45 -45
  229. package/dist/{memory-SGGSEP65.js → memory-OQOXQGYD.js} +107 -90
  230. package/dist/{models-HEKUAXXK.js → models-3IK2Y5WE.js} +64 -65
  231. package/dist/{monitor-HKU57TYQ.js → monitor-FTJLTKCQ.js} +136 -101
  232. package/dist/{orchestrator-VDFAEFAI.js → orchestrator-N47O7SFD.js} +1442 -1671
  233. package/dist/{panes-DN2SSFOH.js → panes-7BTYH3XQ.js} +8 -8
  234. package/dist/{panes-TALGNPZT.js → panes-WPOMEMRH.js} +22 -23
  235. package/dist/{paths-NBMFAIEZ.js → paths-J3KN7UAO.js} +12 -13
  236. package/dist/preload-65U34NG6.js +115 -0
  237. package/dist/{registry-LG64LTF4.js → registry-DESGAXWK.js} +3 -3
  238. package/dist/{reset-EAJFFJVB.js → reset-MUVQDLNL.js} +20 -21
  239. package/dist/{resources-OVKSEFVE.js → resources-LM76COAO.js} +41 -40
  240. package/dist/{run-7DP7ZF2J.js → run-3VFZQ33N.js} +168 -166
  241. package/dist/{share-WML67FT3.js → share-4JUB4BL7.js} +43 -43
  242. package/dist/{skills-SG662R2K.js → skills-S36AAJHU.js} +47 -47
  243. package/dist/{skills-eval-VVZEUU46.js → skills-eval-G6T57L7M.js} +127 -104
  244. package/dist/{skills-inventory-I2E23GET.js → skills-inventory-WLM46PJH.js} +41 -40
  245. package/dist/slash-commands-GBARG3Y7.js +91 -0
  246. package/dist/{steer-2LQOMCPB.js → steer-S7D7IKPU.js} +7 -7
  247. package/dist/{support-CC2UJBJ6.js → support-5VAEC32W.js} +14 -14
  248. package/dist/{targets-4QC3HIEW.js → targets-N5REUETU.js} +147 -98
  249. package/dist/tasks-6BVY5YZF.js +36 -0
  250. package/dist/{terminal-lease-TUHIJ6Y2.js → terminal-lease-57UEOJKS.js} +12 -11
  251. package/dist/tools-6OCQ6SVB.js +28 -0
  252. package/dist/{trace-FXMXUZUF.js → trace-JHLXWUMN.js} +18 -17
  253. package/dist/{tree-sitter-HGKH6LG4.js → tree-sitter-AQUUOSYM.js} +6 -6
  254. package/dist/{tui-primitives-K5PASC3O.js → tui-primitives-RCY2HN7G.js} +3 -3
  255. package/dist/{uninstall-5PEVOE5B.js → uninstall-FXYMFFRT.js} +19 -20
  256. package/dist/{upgrade-M4WXY6KN.js → upgrade-4HD5HAIV.js} +49 -45
  257. package/dist/{usage-N7ZNVLEM.js → usage-4GWM2WWP.js} +143 -103
  258. package/dist/{verifiers-DJTP4XX6.js → verifiers-GSKWKWVG.js} +162 -28
  259. package/dist/verify-3AS3ULCY.js +30 -0
  260. package/dist/{version-KGEG7EPO.js → version-RFPKO6T7.js} +4 -4
  261. package/dist/{web-fetch-MPARV2K7.js → web-fetch-MQN4FH3X.js} +169 -18
  262. package/dist/wiki-generate-7BV7XWIY.js +614 -0
  263. package/dist/{with-panes-4GCGSL7J.js → with-panes-OFTNAR4Y.js} +34 -20
  264. package/dist/worker/entry.js +99 -85
  265. package/dist/{workspace-ZJ6BFM3Q.js → workspace-DZ7JADBG.js} +6 -6
  266. package/docs/README.md +10 -8
  267. package/docs/architecture/acp.md +27 -0
  268. package/docs/architecture/architecture.md +5 -5
  269. package/docs/architecture/artifact-versions.md +1 -1
  270. package/docs/architecture/context-engine.md +44 -59
  271. package/docs/architecture/context-working-set.md +7 -9
  272. package/docs/architecture/dispatch-architecture-rationale.md +1 -1
  273. package/docs/architecture/dispatch-typed-intent.md +1 -1
  274. package/docs/architecture/evidence-and-memory.md +11 -1
  275. package/docs/architecture/observability.md +7 -1
  276. package/docs/architecture/pi-boundary.md +37 -7
  277. package/docs/architecture/prompt-envelope-and-tools.md +22 -12
  278. package/docs/architecture/safety-model.md +10 -17
  279. package/docs/architecture/session-lifecycle.md +4 -4
  280. package/docs/architecture/tui-design.md +1 -1
  281. package/docs/architecture/worker-dispatch-mechanics.md +4 -0
  282. package/docs/guide/built-in-agents.md +8 -8
  283. package/docs/guide/commands-and-modes.md +66 -38
  284. package/docs/guide/configuration-and-targets.md +10 -3
  285. package/docs/guide/configuration-reference.md +23 -8
  286. package/docs/guide/environment-variables.md +8 -4
  287. package/docs/guide/fleet-dispatch.md +12 -0
  288. package/docs/guide/installation-and-lifecycle.md +35 -9
  289. package/docs/guide/proactive-memory.md +1 -1
  290. package/docs/guide/skills-marketplace.md +11 -3
  291. package/docs/guide/tool-usage.md +87 -5
  292. package/docs/history/config-knobs-audit.md +2 -2
  293. package/docs/process/development-pipeline.md +15 -10
  294. package/docs/process/documentation-guide.md +2 -2
  295. package/docs/process/eval-runner.md +15 -0
  296. package/docs/process/evals-internal.md +1 -1
  297. package/docs/process/git-commit-provenance.md +15 -0
  298. package/docs/process/release-cut-checklist.md +207 -0
  299. package/docs/process/scientific-validation.md +18 -17
  300. package/evals/README.md +4 -0
  301. package/evals/behavioral-corpus-grader.mjs +147 -14
  302. package/evals/behavioral-machinery-support.ts +1 -0
  303. package/evals/behavioral-machinery.yaml +1 -1
  304. package/evals/behavioral-model-negative-control.yaml +1 -0
  305. package/evals/behavioral-model.yaml +266 -1
  306. package/evals/fixtures/docs-retrieval.json +102 -0
  307. package/evals/fixtures/scalar-decision.json +17 -0
  308. package/evals/fixtures/scout-citation-pipeline.json +55 -0
  309. package/evals/fixtures/source-explanation.json +74 -0
  310. package/evals/fixtures/tool-arguments.json +18 -0
  311. package/evals/fixtures/tool-surface/read.txt +4 -0
  312. package/evals/fixtures/tool-surface/subdir/keep.txt +1 -0
  313. package/evals/no-edit-memory-grader.mjs +149 -0
  314. package/evals/scalar-decision-grader.py +41 -0
  315. package/evals/scalar-decision-machinery.ts +145 -0
  316. package/evals/source-explanation-grader.mjs +118 -0
  317. package/evals/tool-surface-grader.mjs +53 -0
  318. package/evals/tool-surface-model.yaml +274 -0
  319. package/package.json +14 -14
  320. package/skills/README.md +6 -6
  321. package/skills/coding/coding-standards/SKILL.md +14 -4
  322. package/skills/context/context-handoff/SKILL.md +3 -3
  323. package/skills/context/context-prime/SKILL.md +3 -3
  324. package/skills/planning/architecture/SKILL.md +5 -5
  325. package/skills/planning/backlog/SKILL.md +4 -4
  326. package/skills/planning/prd/SKILL.md +4 -3
  327. package/skills/planning/product-intent/SKILL.md +8 -8
  328. package/skills/planning/tech-spec/SKILL.md +4 -4
  329. package/skills/registry.yaml +33 -33
  330. package/skills/research/arxiv-literature/SKILL.md +3 -3
  331. package/skills/research/experiment-protocol/SKILL.md +3 -3
  332. package/skills/research/scientific-debugging/SKILL.md +3 -2
  333. package/skills/research/scientific-modernization/SKILL.md +3 -3
  334. package/skills/skill-marketplace.json +17 -17
  335. package/skills/workflow/cut-it/SKILL.md +3 -4
  336. package/skills/workflow/design-council/SKILL.md +5 -10
  337. package/skills/workflow/grill-me/SKILL.md +14 -15
  338. package/skills/workflow/workflow-distiller/SKILL.md +4 -4
  339. package/src/cli/args.ts +0 -8
  340. package/src/cli/bootstrap-generate.ts +6 -0
  341. package/src/cli/config-inspect.ts +24 -7
  342. package/src/cli/config-trust.ts +62 -0
  343. package/src/cli/config.ts +8 -0
  344. package/src/cli/configure.ts +2 -1
  345. package/src/cli/context-map.ts +75 -14
  346. package/src/cli/context.ts +46 -17
  347. package/src/cli/doctor-state-size.ts +1 -12
  348. package/src/cli/doctor-validation-contract.ts +28 -0
  349. package/src/cli/doctor.ts +5 -0
  350. package/src/cli/eval.ts +17 -3
  351. package/src/cli/evidence-detail.ts +1 -75
  352. package/src/cli/evidence-inventory.ts +1 -167
  353. package/src/cli/index.ts +2 -0
  354. package/src/cli/modes/print.ts +32 -4
  355. package/src/cli/run.ts +16 -16
  356. package/src/cli/skills-eval.ts +10 -8
  357. package/src/cli/steer-channel.ts +31 -18
  358. package/src/cli/targets.ts +84 -32
  359. package/src/cli/tasks.ts +93 -0
  360. package/src/cli/upgrade.ts +19 -11
  361. package/src/cli/usage.ts +30 -0
  362. package/src/cli/verifiers.ts +147 -1
  363. package/src/cli/wiki-generate.ts +240 -96
  364. package/src/core/bash-exec.ts +43 -15
  365. package/src/core/bus-events.ts +15 -0
  366. package/src/core/commit-attribution.ts +41 -1
  367. package/src/core/config.ts +33 -14
  368. package/src/core/defaults.ts +5 -4
  369. package/src/core/file-references.ts +11 -1
  370. package/src/core/git-commit-attribution.ts +46 -3
  371. package/src/core/incomplete-installation.ts +3 -1
  372. package/src/core/run-overrides.ts +0 -5
  373. package/src/core/settings-layers.ts +21 -5
  374. package/src/core/skill-activation.ts +3 -0
  375. package/src/core/termination.ts +26 -9
  376. package/src/core/tool-names.ts +5 -2
  377. package/src/core/untrusted-content.ts +16 -0
  378. package/src/core/workspace-trust.ts +179 -0
  379. package/src/domains/agents/builtins/architect.md +1 -1
  380. package/src/domains/agents/builtins/coder.md +5 -3
  381. package/src/domains/agents/builtins/context-bootstrap.md +3 -1
  382. package/src/domains/agents/builtins/documenter.md +8 -5
  383. package/src/domains/agents/builtins/git-master.md +1 -1
  384. package/src/domains/agents/builtins/provenance.md +7 -7
  385. package/src/domains/agents/builtins/researcher.md +1 -0
  386. package/src/domains/agents/builtins/scout.md +7 -1
  387. package/src/domains/agents/builtins/tester.md +1 -1
  388. package/src/domains/agents/builtins/verifier.md +2 -2
  389. package/src/domains/agents/builtins/wiki-writer.md +4 -3
  390. package/src/domains/agents/result-contract.ts +199 -26
  391. package/src/domains/context/bootstrap-prompt.ts +11 -9
  392. package/src/domains/context/bootstrap.ts +74 -39
  393. package/src/domains/context/clio-md.ts +88 -26
  394. package/src/domains/context/codewiki/build-operation.ts +121 -0
  395. package/src/domains/context/codewiki/build-worker-protocol.ts +37 -3
  396. package/src/domains/context/codewiki/build-worker.ts +3 -35
  397. package/src/domains/context/codewiki/coordinator.ts +36 -6
  398. package/src/domains/context/codewiki/indexer.ts +59 -19
  399. package/src/domains/context/contract.ts +6 -2
  400. package/src/domains/context/extension.ts +97 -11
  401. package/src/domains/context/fingerprint.ts +39 -34
  402. package/src/domains/context/index.ts +7 -1
  403. package/src/domains/context/prompt-context.ts +55 -14
  404. package/src/domains/context/refresh.ts +12 -57
  405. package/src/domains/context/wiki/assemble.ts +14 -10
  406. package/src/domains/context/wiki/evidence.ts +209 -0
  407. package/src/domains/context/wiki/frontmatter.ts +5 -2
  408. package/src/domains/context/wiki/generate.ts +207 -67
  409. package/src/domains/context/wiki/meta.ts +10 -2
  410. package/src/domains/context/wiki/plan-store.ts +70 -14
  411. package/src/domains/context/wiki/plan.ts +71 -14
  412. package/src/domains/context/wiki/prompts.ts +85 -1
  413. package/src/domains/context/wiki/source-content.ts +106 -0
  414. package/src/domains/context/wiki/staleness.ts +33 -22
  415. package/src/domains/context/working-set/contract.ts +8 -2
  416. package/src/domains/context/working-set/engine.ts +17 -4
  417. package/src/domains/context/working-set/fold.ts +15 -2
  418. package/src/domains/context/working-set/marker.ts +2 -1
  419. package/src/domains/context/working-set/project.ts +18 -7
  420. package/src/domains/context/working-set/recall.ts +82 -56
  421. package/src/domains/dispatch/active-route-planner.ts +10 -3
  422. package/src/domains/dispatch/admission-queue.ts +19 -7
  423. package/src/domains/dispatch/admission.ts +3 -3
  424. package/src/domains/dispatch/budget-envelope.ts +47 -82
  425. package/src/domains/dispatch/capacity-lease.ts +57 -19
  426. package/src/domains/dispatch/code-step.ts +11 -4
  427. package/src/domains/dispatch/contract.ts +41 -9
  428. package/src/domains/dispatch/event-pump.ts +28 -7
  429. package/src/domains/dispatch/execution-role.ts +49 -2
  430. package/src/domains/dispatch/execution-scheduler.ts +4 -0
  431. package/src/domains/dispatch/extension.ts +240 -132
  432. package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
  433. package/src/domains/dispatch/fleet-run.ts +21 -0
  434. package/src/domains/dispatch/gate-role-prompts.ts +4 -2
  435. package/src/domains/dispatch/host-verification.ts +114 -13
  436. package/src/domains/dispatch/intent.ts +28 -18
  437. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  438. package/src/domains/dispatch/parallel-writers.ts +34 -0
  439. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  440. package/src/domains/dispatch/reservation-store.ts +13 -37
  441. package/src/domains/dispatch/route-approval.ts +3 -3
  442. package/src/domains/dispatch/route-observer.ts +4 -2
  443. package/src/domains/dispatch/route-quality.ts +6 -1
  444. package/src/domains/dispatch/state.ts +15 -2
  445. package/src/domains/dispatch/types.ts +21 -5
  446. package/src/domains/dispatch/worker-spawn.ts +58 -21
  447. package/src/domains/dispatch/workspace-checkpoint.ts +57 -0
  448. package/src/domains/eval/compare/behavioral.ts +81 -14
  449. package/src/domains/eval/compare/compare.ts +15 -5
  450. package/src/domains/eval/compare/envelope.ts +12 -5
  451. package/src/domains/eval/metrics/context.ts +24 -1
  452. package/src/domains/eval/metrics/tracked.ts +4 -28
  453. package/src/domains/eval/reports/comparison.ts +9 -9
  454. package/src/domains/eval/runners/clio-run.ts +17 -10
  455. package/src/domains/eval/runners/context-index.ts +2 -7
  456. package/src/domains/eval/runners/context-init.ts +3 -6
  457. package/src/domains/eval/runners/external-command.ts +29 -11
  458. package/src/domains/eval/schema/suite.ts +2 -0
  459. package/src/domains/eval/schema/validate.ts +1 -0
  460. package/src/domains/eval/suites/run.ts +189 -13
  461. package/src/domains/eval/verifiers/integrity.ts +39 -0
  462. package/src/domains/eval/verifiers/patch.ts +58 -2
  463. package/src/domains/eval/workspaces/temp-copy.ts +3 -0
  464. package/src/domains/evidence/build.ts +106 -17
  465. package/src/domains/evidence/detail.ts +69 -0
  466. package/src/domains/evidence/eval.ts +13 -1
  467. package/src/domains/evidence/finish-contract-map.ts +5 -1
  468. package/src/domains/evidence/inventory.ts +167 -0
  469. package/src/domains/evidence/store.ts +16 -0
  470. package/src/domains/evidence/types.ts +12 -0
  471. package/src/domains/extensions/resources.ts +7 -0
  472. package/src/domains/interop/registry.ts +2 -2
  473. package/src/domains/middleware/hooks-io.ts +45 -26
  474. package/src/domains/middleware/hooks.ts +6 -0
  475. package/src/domains/middleware/injection-screen.ts +23 -0
  476. package/src/domains/middleware/marketplace-offer.ts +20 -1
  477. package/src/domains/middleware/rules.ts +5 -1
  478. package/src/domains/middleware/runtime.ts +7 -3
  479. package/src/domains/middleware/stalled-turn.ts +18 -3
  480. package/src/domains/middleware/task-board-reminder.ts +4 -2
  481. package/src/domains/middleware/task-nudge.ts +4 -1
  482. package/src/domains/mux/contract.ts +34 -1
  483. package/src/domains/mux/detect.ts +3 -6
  484. package/src/domains/mux/dock-controller.ts +8 -1
  485. package/src/domains/mux/index.ts +1 -0
  486. package/src/domains/mux/socket-client.ts +13 -3
  487. package/src/domains/observability/accountability.ts +15 -1
  488. package/src/domains/observability/contract.ts +54 -9
  489. package/src/domains/observability/evidence-index.ts +10 -0
  490. package/src/domains/observability/extension.ts +9 -5
  491. package/src/domains/observability/projection.ts +423 -53
  492. package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
  493. package/src/domains/prompts/compiler.ts +10 -2
  494. package/src/domains/prompts/contract.ts +7 -4
  495. package/src/domains/prompts/extension.ts +28 -64
  496. package/src/domains/prompts/fragments/identity/clio.md +23 -0
  497. package/src/domains/prompts/fragments/operating/contract.md +12 -0
  498. package/src/domains/prompts/fragments/operating/delegation.md +5 -0
  499. package/src/domains/prompts/fragments/wiki/page.md +36 -15
  500. package/src/domains/prompts/fragments/wiki/plan.md +4 -4
  501. package/src/domains/prompts/preload-prefix.ts +31 -0
  502. package/src/domains/prompts/preload.ts +135 -61
  503. package/src/domains/providers/auth/backend-file.ts +15 -11
  504. package/src/domains/providers/auth/storage.ts +3 -5
  505. package/src/domains/providers/catalog.ts +18 -3
  506. package/src/domains/providers/model-discovery.ts +1 -4
  507. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +16 -14
  508. package/src/domains/providers/runtime-resolution.ts +11 -9
  509. package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
  510. package/src/domains/providers/runtimes/cloud/openrouter.ts +2 -0
  511. package/src/domains/providers/support.ts +1 -1
  512. package/src/domains/providers/types/runtime-descriptor.ts +1 -1
  513. package/src/domains/resources/skills/promotion.ts +8 -1
  514. package/src/domains/safety/action-classifier.ts +16 -0
  515. package/src/domains/safety/autonomy.ts +10 -1
  516. package/src/domains/safety/contract.ts +5 -1
  517. package/src/domains/safety/default-path-policy.ts +13 -0
  518. package/src/domains/safety/extension.ts +11 -2
  519. package/src/domains/safety/finish-contract-registration.ts +29 -14
  520. package/src/domains/safety/finish-contract.ts +252 -40
  521. package/src/domains/safety/index.ts +20 -1
  522. package/src/domains/safety/policy-engine.ts +211 -34
  523. package/src/domains/safety/project-policy.ts +7 -2
  524. package/src/domains/safety/rigor.ts +53 -39
  525. package/src/domains/safety/validation-contract.ts +388 -0
  526. package/src/domains/safety/workspace-trust.ts +43 -0
  527. package/src/domains/session/archive-readers.ts +10 -1
  528. package/src/domains/session/compaction/compact.ts +384 -21
  529. package/src/domains/session/compaction/cut-point.ts +42 -5
  530. package/src/domains/session/compaction/tokens.ts +9 -1
  531. package/src/domains/session/decision-board.ts +137 -28
  532. package/src/domains/session/entries.ts +213 -11
  533. package/src/domains/session/extension.ts +4 -4
  534. package/src/domains/session/handoff.ts +2 -1
  535. package/src/domains/session/manager.ts +2 -3
  536. package/src/domains/session/prompt-manifest.ts +47 -8
  537. package/src/domains/session/task-board.ts +32 -1
  538. package/src/domains/session/tree/fork.ts +1 -2
  539. package/src/domains/session/tree/navigator.ts +1 -1
  540. package/src/domains/user-tasks/acceptance.ts +56 -0
  541. package/src/domains/user-tasks/active-acceptance.ts +40 -0
  542. package/src/domains/user-tasks/handoff.ts +16 -0
  543. package/src/domains/user-tasks/store.ts +34 -3
  544. package/src/engine/acp/adapter.ts +60 -10
  545. package/src/engine/acp/server.ts +22 -4
  546. package/src/engine/acp/transport.ts +55 -9
  547. package/src/engine/acp/types.ts +9 -0
  548. package/src/engine/antigravity/subprocess-runtime.ts +20 -4
  549. package/src/engine/api-registry.ts +19 -2
  550. package/src/engine/apis/ollama-native.ts +15 -0
  551. package/src/engine/apis/openai-completions.ts +13 -6
  552. package/src/engine/apis/output-budget.ts +26 -10
  553. package/src/engine/claude/sdk-runtime.ts +4 -3
  554. package/src/engine/claude/subprocess-runtime.ts +107 -60
  555. package/src/engine/env-api-keys.ts +2 -1
  556. package/src/engine/external-subprocess.ts +26 -7
  557. package/src/engine/loop-guard.ts +19 -2
  558. package/src/engine/provider-diagnostics.ts +129 -0
  559. package/src/engine/provider-payload.ts +3 -1
  560. package/src/engine/worker-runtime.ts +13 -2
  561. package/src/engine/worker-tools.ts +5 -1
  562. package/src/entry/extension-reload.ts +1 -0
  563. package/src/entry/orchestrator.ts +64 -17
  564. package/src/interactive/chat-loop-messages.ts +12 -4
  565. package/src/interactive/chat-loop.ts +115 -45
  566. package/src/interactive/chat-renderer.ts +60 -0
  567. package/src/interactive/context-recall-command.ts +2 -1
  568. package/src/interactive/dispatch-board.ts +58 -714
  569. package/src/interactive/editor-submit.ts +13 -0
  570. package/src/interactive/fleet-run-preview.ts +2 -1
  571. package/src/interactive/interactive-application.ts +11 -4
  572. package/src/interactive/interactive-event-projection.ts +7 -1
  573. package/src/interactive/interactive-presentation.ts +63 -12
  574. package/src/interactive/interactive-slash-runtime.ts +4 -1
  575. package/src/interactive/layout.ts +2 -1
  576. package/src/interactive/model-session-replay.ts +2 -2
  577. package/src/interactive/oracle.ts +5 -2
  578. package/src/interactive/overlay-frame.ts +1 -0
  579. package/src/interactive/overlay-general-openers.ts +3 -1
  580. package/src/interactive/overlay-session-lifecycle.ts +6 -0
  581. package/src/interactive/overlays/ask-user.ts +1 -0
  582. package/src/interactive/overlays/fleet-run-approval.ts +3 -2
  583. package/src/interactive/overlays/message-picker.ts +3 -3
  584. package/src/interactive/overlays/settings.ts +2 -2
  585. package/src/interactive/overlays/tree-selector.ts +2 -2
  586. package/src/interactive/renderers/branch-summary.ts +1 -1
  587. package/src/interactive/renderers/tool-execution.ts +17 -1
  588. package/src/interactive/renderers/worker-entry.ts +25 -10
  589. package/src/interactive/slash-autocomplete.ts +4 -6
  590. package/src/interactive/slash-commands.ts +31 -43
  591. package/src/interactive/slash-spec.ts +28 -0
  592. package/src/interactive/turn-context.ts +221 -53
  593. package/src/interactive/turn-middleware.ts +3 -1
  594. package/src/interactive/turn-persistence.ts +3 -0
  595. package/src/interactive/turn-runtime.ts +11 -2
  596. package/src/interactive/turn-state.ts +10 -9
  597. package/src/interactive/view/artifacts.ts +2 -0
  598. package/src/interactive/watch-pane.ts +18 -4
  599. package/src/interactive/worker-stream.ts +14 -10
  600. package/src/tools/agent-tools.ts +6 -3
  601. package/src/tools/bash.ts +1 -1
  602. package/src/tools/bootstrap.ts +4 -0
  603. package/src/tools/builtin-tool-catalog.ts +40 -2
  604. package/src/tools/codewiki/code-nav.ts +4 -10
  605. package/src/tools/compete-judge-task.ts +71 -0
  606. package/src/tools/compete-worktrees.ts +41 -1
  607. package/src/tools/context/index.ts +32 -7
  608. package/src/tools/context/surface.ts +15 -4
  609. package/src/tools/core-bootstrap.ts +16 -0
  610. package/src/tools/decide.ts +136 -0
  611. package/src/tools/dispatch-admission.ts +33 -1
  612. package/src/tools/dispatch-arguments.ts +38 -1
  613. package/src/tools/dispatch-plan.ts +12 -9
  614. package/src/tools/dispatch-runner.ts +63 -33
  615. package/src/tools/dispatch-schema.ts +30 -23
  616. package/src/tools/dispatch-scout-admission.ts +10 -44
  617. package/src/tools/dispatch-scout.ts +2 -3
  618. package/src/tools/dispatch-types.ts +6 -0
  619. package/src/tools/evidence.ts +96 -0
  620. package/src/tools/find.ts +13 -4
  621. package/src/tools/grep.ts +13 -1
  622. package/src/tools/limitation.ts +76 -0
  623. package/src/tools/ls.ts +7 -1
  624. package/src/tools/monitor.ts +26 -11
  625. package/src/tools/network-policy.ts +11 -24
  626. package/src/tools/observation.ts +39 -2
  627. package/src/tools/policy.ts +9 -0
  628. package/src/tools/presentation.ts +3 -0
  629. package/src/tools/read.ts +112 -15
  630. package/src/tools/registry.ts +55 -18
  631. package/src/tools/result-shaping.ts +127 -7
  632. package/src/tools/task-worktree.ts +13 -3
  633. package/src/tools/tasks.ts +40 -5
  634. package/src/tools/verify/authoring.ts +170 -83
  635. package/src/tools/verify/catalog.ts +122 -5
  636. package/src/tools/verify/frontend.ts +67 -30
  637. package/src/tools/verify/index.ts +2 -1
  638. package/src/tools/verify/numeric.ts +303 -0
  639. package/src/tools/verify/perf.ts +143 -0
  640. package/src/tools/verify/scripts.ts +229 -2
  641. package/src/tools/web-fetch-network.ts +179 -0
  642. package/src/tools/web-fetch-surface.ts +2 -1
  643. package/src/tools/web-fetch.ts +15 -13
  644. package/src/tools/worker-evidence.ts +27 -0
  645. package/src/worker/spec-contract.ts +12 -8
  646. package/dist/builtins-IA7V7FUC.js +0 -22
  647. package/dist/chunk-2WZ546HR.js +0 -792
  648. package/dist/chunk-5PSMVOLM.js +0 -56
  649. package/dist/chunk-7DICMOS6.js +0 -313
  650. package/dist/chunk-BEPZRGGU.js +0 -1560
  651. package/dist/chunk-JVCV3ICN.js +0 -47
  652. package/dist/chunk-KK4JZPBQ.js +0 -3982
  653. package/dist/chunk-MNJGS2IN.js +0 -33
  654. package/dist/chunk-NDINPTJ4.js +0 -641
  655. package/dist/chunk-O5CVSAG5.js +0 -122
  656. package/dist/chunk-OQE5J4C6.js +0 -73
  657. package/dist/chunk-RVG5JXAL.js +0 -41
  658. package/dist/chunk-T56WDKA5.js +0 -183
  659. package/dist/chunk-UUVG37B4.js +0 -244
  660. package/dist/chunk-VPKWYKEY.js +0 -169
  661. package/dist/chunk-Y3CBHOR6.js +0 -228
  662. package/dist/clio-CMMK4KRR.js +0 -25
  663. package/dist/configure-LE3IK2TJ.js +0 -56
  664. package/dist/context-clear-BW4O37TG.js +0 -176
  665. package/dist/fleet-view-SWBR3VGQ.js +0 -97
  666. package/dist/preload-P6DGH2PZ.js +0 -13
  667. package/dist/slash-commands-S7MBJDQK.js +0 -83
  668. package/dist/tools-TFGJICCU.js +0 -29
  669. package/dist/verify-RWE4PPEK.js +0 -27
  670. package/dist/wiki-generate-C7IQOXSP.js +0 -469
@@ -3,34 +3,200 @@ import {
3
3
  ROUTE_POLICY_VERSION,
4
4
  isRouteDecisionAgentSelection,
5
5
  isRoutingIntent
6
- } from "./chunk-EKCHAPYA.js";
6
+ } from "./chunk-K2HL3GBL.js";
7
7
  import {
8
8
  isExecutionRole
9
- } from "./chunk-H7IXIC72.js";
9
+ } from "./chunk-LY4N4TTL.js";
10
10
  import {
11
11
  readSettings
12
- } from "./chunk-GHS5EBTQ.js";
12
+ } from "./chunk-FKIOX6DS.js";
13
13
  import {
14
14
  readClioVersion,
15
15
  resolvePackageRoot
16
- } from "./chunk-IWHMRKLL.js";
16
+ } from "./chunk-E3LEPLQ2.js";
17
17
  import {
18
18
  require_dist
19
- } from "./chunk-APJ265NV.js";
19
+ } from "./chunk-B5GGDIHT.js";
20
20
  import {
21
21
  __toESM,
22
22
  init_esm_shims
23
- } from "./chunk-3R73A4XB.js";
23
+ } from "./chunk-ECBHH7LU.js";
24
24
 
25
- // src/domains/dispatch/receipt-integrity.ts
25
+ // src/domains/context/codewiki/digest.ts
26
+ init_esm_shims();
27
+ function compareStrings(a, b) {
28
+ return a.localeCompare(b);
29
+ }
30
+ function topTwoSegments(path2) {
31
+ const parts = path2.split("/").slice(0, -1);
32
+ if (parts.length === 0) return ".";
33
+ return parts.slice(0, 2).join("/");
34
+ }
35
+ function sourceFiles(codewiki) {
36
+ return codewiki.files.filter((file) => file.lang !== "config").sort((a, b) => a.path.localeCompare(b.path));
37
+ }
38
+ function countBy(items) {
39
+ const counts = /* @__PURE__ */ new Map();
40
+ for (const item of items) counts.set(item, (counts.get(item) ?? 0) + 1);
41
+ return [...counts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
42
+ }
43
+ function entryPoints(codewiki, limit) {
44
+ const files = sourceFiles(codewiki);
45
+ const tagged = files.filter((file) => file.role === "entry");
46
+ if (tagged.length >= limit) return tagged.slice(0, limit);
47
+ const fileById = new Map(files.map((file) => [file.id, file]));
48
+ const inDegree = /* @__PURE__ */ new Map();
49
+ for (const edge of codewiki.edges) {
50
+ if ("toFileId" in edge) inDegree.set(edge.toFileId, (inDegree.get(edge.toFileId) ?? 0) + 1);
51
+ }
52
+ const taggedIds = new Set(tagged.map((file) => file.id));
53
+ const ranked = [...inDegree.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])).map(([id]) => fileById.get(id)).filter((file) => file !== void 0 && !taggedIds.has(file.id));
54
+ return [...tagged, ...ranked].slice(0, limit);
55
+ }
56
+ function keySymbols(codewiki, limit) {
57
+ const rank = /* @__PURE__ */ new Map([
58
+ ["class", 0],
59
+ ["trait", 1],
60
+ ["iface", 2],
61
+ ["type", 3],
62
+ ["func", 4],
63
+ ["method", 5],
64
+ ["const", 6],
65
+ ["var", 7]
66
+ ]);
67
+ return [...codewiki.symbols].sort((a, b) => {
68
+ const rankCmp = (rank.get(a.kind) ?? 99) - (rank.get(b.kind) ?? 99);
69
+ return rankCmp || a.name.localeCompare(b.name) || a.fileId.localeCompare(b.fileId) || a.line - b.line;
70
+ }).slice(0, limit);
71
+ }
72
+ function dependencyLines(codewiki, limit) {
73
+ const fileById = new Map(codewiki.files.map((file) => [file.id, file]));
74
+ const byFile = /* @__PURE__ */ new Map();
75
+ for (const edge of codewiki.edges) {
76
+ const deps = byFile.get(edge.fileId) ?? { internal: [], external: [] };
77
+ if ("toFileId" in edge) {
78
+ const target = fileById.get(edge.toFileId);
79
+ if (target) deps.internal.push(target.path);
80
+ } else {
81
+ deps.external.push(edge.externalModule);
82
+ }
83
+ byFile.set(edge.fileId, deps);
84
+ }
85
+ return [...byFile.entries()].map(([fileId, deps]) => {
86
+ const file = fileById.get(fileId);
87
+ if (!file) return "";
88
+ const internal = [...new Set(deps.internal)].sort(compareStrings).slice(0, 4);
89
+ const external = [...new Set(deps.external)].sort(compareStrings).slice(0, 4);
90
+ return `- ${file.path}: internal=[${internal.join(", ")}] external=[${external.join(", ")}]`;
91
+ }).filter((line) => line.length > 0).sort(compareStrings).slice(0, limit);
92
+ }
93
+ function fitLines(lines, tokenBudget) {
94
+ const maxChars = Math.max(256, Math.floor(tokenBudget * 4));
95
+ const out = [];
96
+ let used = 0;
97
+ for (const line of lines) {
98
+ const next = used + line.length + 1;
99
+ if (next > maxChars) {
100
+ out.push("[digest truncated]");
101
+ break;
102
+ }
103
+ out.push(line);
104
+ used = next;
105
+ }
106
+ return out.join("\n");
107
+ }
108
+ function entryPointLine(file) {
109
+ const base = `- ${file.path} (${file.lang}, ${file.loc} loc)`;
110
+ return file.summary ? `${base}: ${file.summary.slice(0, 160)}` : base;
111
+ }
112
+ function renderCodewikiDigest(codewiki, tokenBudget = 1200) {
113
+ const files = sourceFiles(codewiki);
114
+ const areaCounts = countBy(files.map((file) => topTwoSegments(file.path))).slice(0, 10).map(([area, count]) => `${area}=${count}`);
115
+ const languageCounts = countBy(files.map((file) => file.lang)).map(([language, count]) => `${language}=${count}`).join(", ");
116
+ const roleCounts = countBy(files.map((file) => file.role)).map(([role, count]) => `${role}=${count}`).join(", ");
117
+ const fileById = new Map(codewiki.files.map((file) => [file.id, file]));
118
+ const lines = [
119
+ `codewiki v${codewiki.version} language=${codewiki.language} files=${files.length} configs=${codewiki.files.length - files.length} symbols=${codewiki.symbols.length} edges=${codewiki.edges.length}`,
120
+ `languages: ${languageCounts || "none"}`,
121
+ `roles: ${roleCounts || "none"}`,
122
+ `areas: ${areaCounts.join(", ") || "none"}`,
123
+ "entry points:",
124
+ ...entryPoints(codewiki, 12).map(entryPointLine),
125
+ "key symbols:",
126
+ ...keySymbols(codewiki, 40).map((symbol) => {
127
+ const file = fileById.get(symbol.fileId);
128
+ const location = file ? `${file.path}:${symbol.line}` : `${symbol.fileId}:${symbol.line}`;
129
+ return `- ${symbol.name} ${symbol.kind} ${location}`;
130
+ }),
131
+ "dependencies:",
132
+ ...dependencyLines(codewiki, 24)
133
+ ];
134
+ return fitLines(lines, tokenBudget);
135
+ }
136
+
137
+ // src/domains/prompts/hash.ts
26
138
  init_esm_shims();
27
139
  import { createHash } from "node:crypto";
28
- var RUN_RECEIPT_INTEGRITY_VERSION = 20;
29
- var RUN_RECEIPT_INTEGRITY_ALGORITHM = "sha256";
30
140
  function sha256(input) {
31
141
  return createHash("sha256").update(input, "utf8").digest("hex");
32
142
  }
33
143
  function canonicalJson(value) {
144
+ return serialize(value);
145
+ }
146
+ function serialize(value) {
147
+ if (value === null) return "null";
148
+ if (typeof value === "number") {
149
+ if (!Number.isFinite(value)) {
150
+ throw new Error(`canonicalJson: non-finite number ${String(value)} is not representable`);
151
+ }
152
+ return JSON.stringify(value);
153
+ }
154
+ if (typeof value === "string" || typeof value === "boolean") {
155
+ return JSON.stringify(value);
156
+ }
157
+ if (typeof value === "bigint") {
158
+ throw new Error("canonicalJson: bigint is not representable");
159
+ }
160
+ if (typeof value === "symbol" || typeof value === "function") {
161
+ throw new Error(`canonicalJson: ${typeof value} is not representable`);
162
+ }
163
+ if (value === void 0) {
164
+ throw new Error("canonicalJson: undefined is not representable at root");
165
+ }
166
+ if (Array.isArray(value)) {
167
+ const parts = [];
168
+ for (let i = 0; i < value.length; i++) {
169
+ if (!(i in value) || value[i] === void 0) {
170
+ parts.push("null");
171
+ continue;
172
+ }
173
+ parts.push(serialize(value[i]));
174
+ }
175
+ return `[${parts.join(",")}]`;
176
+ }
177
+ if (typeof value === "object") {
178
+ const obj = value;
179
+ const keys = Object.keys(obj).sort();
180
+ const parts = [];
181
+ for (const key of keys) {
182
+ const child = obj[key];
183
+ if (child === void 0) continue;
184
+ parts.push(`${JSON.stringify(key)}:${serialize(child)}`);
185
+ }
186
+ return `{${parts.join(",")}}`;
187
+ }
188
+ throw new Error(`canonicalJson: unsupported value of type ${typeof value}`);
189
+ }
190
+
191
+ // src/domains/dispatch/receipt-integrity.ts
192
+ init_esm_shims();
193
+ import { createHash as createHash2 } from "node:crypto";
194
+ var RUN_RECEIPT_INTEGRITY_VERSION = 20;
195
+ var RUN_RECEIPT_INTEGRITY_ALGORITHM = "sha256";
196
+ function sha2562(input) {
197
+ return createHash2("sha256").update(input, "utf8").digest("hex");
198
+ }
199
+ function canonicalJson2(value) {
34
200
  return serializeCanonical(value);
35
201
  }
36
202
  function serializeCanonical(value) {
@@ -101,6 +267,9 @@ var RECEIPT_INTEGRITY_FIELD_COVERAGE = {
101
267
  plan: true,
102
268
  fleetGate: true,
103
269
  personaOverride: true,
270
+ // Absent unless the parent board held decisions, so older receipts and
271
+ // decision-free runs digest exactly as before.
272
+ decisionRefs: true,
104
273
  projectContext: true,
105
274
  // Always set on receipts written after #104 landed; absent only on older
106
275
  // receipts, which omit these fields from canonical serialization.
@@ -188,6 +357,7 @@ function ledgerDigestFields(envelope) {
188
357
  executionRole: envelope.executionRole,
189
358
  task: envelope.task,
190
359
  ...envelope.budget !== void 0 ? { budget: envelope.budget } : {},
360
+ ...envelope.decisionRefs !== void 0 ? { decisionRefs: envelope.decisionRefs } : {},
191
361
  targetId: envelope.targetId,
192
362
  wireModelId: envelope.wireModelId,
193
363
  runtimeId: envelope.runtimeId,
@@ -240,7 +410,7 @@ function computeReceiptIntegrity(receipt, envelope, legacyNaming = false) {
240
410
  return {
241
411
  version: RUN_RECEIPT_INTEGRITY_VERSION,
242
412
  algorithm: RUN_RECEIPT_INTEGRITY_ALGORITHM,
243
- digest: sha256(canonicalJson(integrityPayload(receipt, envelope, legacyNaming)))
413
+ digest: sha2562(canonicalJson2(integrityPayload(receipt, envelope, legacyNaming)))
244
414
  };
245
415
  }
246
416
  function isReceiptQuality(value) {
@@ -315,9 +485,9 @@ function firstLedgerMismatch(receipt, envelope) {
315
485
  for (const [field, receiptValue, ledgerValue] of sharedFields) {
316
486
  if (!Object.is(receiptValue, ledgerValue)) return field;
317
487
  }
318
- if (canonicalJson(receipt.briefing ?? null) !== canonicalJson(envelope.briefing ?? null)) return "briefing";
319
- if (canonicalJson(receipt.budget ?? null) !== canonicalJson(envelope.budget ?? null)) return "budget";
320
- if (canonicalJson(receipt.steering ?? null) !== canonicalJson(envelope.steering ?? null)) return "steering";
488
+ if (canonicalJson2(receipt.briefing ?? null) !== canonicalJson2(envelope.briefing ?? null)) return "briefing";
489
+ if (canonicalJson2(receipt.budget ?? null) !== canonicalJson2(envelope.budget ?? null)) return "budget";
490
+ if (canonicalJson2(receipt.steering ?? null) !== canonicalJson2(envelope.steering ?? null)) return "steering";
321
491
  return null;
322
492
  }
323
493
  function verifyReceiptIntegrity(receipt, envelope) {
@@ -448,19 +618,19 @@ function compareArtifactReferences(left, right) {
448
618
  const rightKey = `${right.kind}\0${right.id}\0${right.digest?.value ?? ""}`;
449
619
  return leftKey < rightKey ? -1 : leftKey > rightKey ? 1 : 0;
450
620
  }
451
- function normalizeArtifactReference(value, path) {
452
- if (!isRecord(value)) throw new Error(`${path} must be an object`);
621
+ function normalizeArtifactReference(value, path2) {
622
+ if (!isRecord(value)) throw new Error(`${path2} must be an object`);
453
623
  if (!hasExactKeys(value, value.digest === void 0 ? ["kind", "id"] : ["kind", "id", "digest"])) {
454
- throw new Error(`${path} has unknown or missing fields`);
624
+ throw new Error(`${path2} has unknown or missing fields`);
455
625
  }
456
626
  if (typeof value.kind !== "string" || !ARTIFACT_KINDS.has(value.kind)) {
457
- throw new Error(`${path}.kind is invalid`);
627
+ throw new Error(`${path2}.kind is invalid`);
458
628
  }
459
- if (!isTrustStatusIdentifier(value.id)) throw new Error(`${path}.id is invalid`);
629
+ if (!isTrustStatusIdentifier(value.id)) throw new Error(`${path2}.id is invalid`);
460
630
  const reference = { kind: value.kind, id: value.id };
461
631
  if (value.digest !== void 0) {
462
632
  if (!isRecord(value.digest) || !hasExactKeys(value.digest, ["algorithm", "value"]) || value.digest.algorithm !== "sha256" || typeof value.digest.value !== "string" || !/^[a-f0-9]{64}$/u.test(value.digest.value)) {
463
- throw new Error(`${path}.digest is invalid`);
633
+ throw new Error(`${path2}.digest is invalid`);
464
634
  }
465
635
  reference.digest = { algorithm: "sha256", value: value.digest.value };
466
636
  }
@@ -536,6 +706,13 @@ function normalizeTrustStatus(value) {
536
706
  completionEvidence: normalizeAxis("completionEvidence", value.completionEvidence)
537
707
  };
538
708
  }
709
+ function validateTrustStatus(value) {
710
+ try {
711
+ return { ok: true, status: normalizeTrustStatus(value) };
712
+ } catch (error) {
713
+ return { ok: false, reason: error instanceof Error ? error.message : String(error) };
714
+ }
715
+ }
539
716
  function absentTrustStatus(reason) {
540
717
  return { state: "absent", reason };
541
718
  }
@@ -558,6 +735,18 @@ function composeTrustStatus(...projections) {
558
735
  }
559
736
  return normalizeTrustStatus({ version: TRUST_STATUS_VERSION, ...axes });
560
737
  }
738
+ function projectTrustStatus(status, axes) {
739
+ const normalized = normalizeTrustStatus(status);
740
+ const projection = {};
741
+ const requested = new Set(axes);
742
+ if (requested.has("artifactIntegrity")) projection.artifactIntegrity = normalized.artifactIntegrity;
743
+ if (requested.has("validationGrounding")) projection.validationGrounding = normalized.validationGrounding;
744
+ if (requested.has("independentReview")) projection.independentReview = normalized.independentReview;
745
+ if (requested.has("contextProvenance")) projection.contextProvenance = normalized.contextProvenance;
746
+ if (requested.has("autonomyEnforcement")) projection.autonomyEnforcement = normalized.autonomyEnforcement;
747
+ if (requested.has("completionEvidence")) projection.completionEvidence = normalized.completionEvidence;
748
+ return projection;
749
+ }
561
750
  function sha256Reference(kind, id, digest) {
562
751
  const reference = { kind, id };
563
752
  if (digest !== void 0 && /^[a-f0-9]{64}$/u.test(digest)) {
@@ -892,6 +1081,20 @@ function adaptGroundedEvidenceValidationStatus(input) {
892
1081
  uniqueBoundedReferences([{ kind: "evidence_bundle", id: input.evidenceId }, ...observed])
893
1082
  );
894
1083
  }
1084
+ function adaptFinishContractCompletionStatus(assessment, options = {}) {
1085
+ const artifacts = uniqueBoundedReferences(
1086
+ options.artifacts ?? assessment.evidence.map((evidence, index) => ({
1087
+ kind: evidence.turnId === void 0 ? "finish_contract_evidence" : "session_entry",
1088
+ id: evidence.turnId ?? `${evidence.kind}:${index + 1}`
1089
+ }))
1090
+ );
1091
+ const source = { kind: "finish_contract", id: options.sourceId ?? assessment.reason };
1092
+ const authority = { kind: "clio", id: "finish-contract" };
1093
+ if (assessment.reason === "no_mutation") return attributed("not_applicable", source, authority, artifacts);
1094
+ if (assessment.reason === "validation_evidence") return attributed("evidenced", source, authority, artifacts);
1095
+ if (assessment.reason === "explicit_limitation") return attributed("limited", source, authority, artifacts);
1096
+ return attributed("incomplete", source, authority, artifacts);
1097
+ }
895
1098
  function uniqueBoundedReferences(references) {
896
1099
  const sorted = [...references].sort(compareArtifactReferences);
897
1100
  const unique = sorted.filter(
@@ -904,6 +1107,13 @@ function uniqueBoundedReferences(references) {
904
1107
  init_esm_shims();
905
1108
  var TRUST_SUMMARY_VERSION = 1;
906
1109
  var TRUST_SUMMARY_MAX_REFS = 8;
1110
+ var TRUST_VERDICTS = [
1111
+ "reviewed",
1112
+ "grounded",
1113
+ "unverified",
1114
+ "compromised",
1115
+ "unknown"
1116
+ ];
907
1117
  var TRUST_STATE_WORDS = {
908
1118
  artifactIntegrity: {
909
1119
  verified: "sealed",
@@ -1154,7 +1364,7 @@ function isRecord2(value) {
1154
1364
  // src/domains/eval/task-file.ts
1155
1365
  init_esm_shims();
1156
1366
  var import_yaml = __toESM(require_dist(), 1);
1157
- import { createHash as createHash2 } from "node:crypto";
1367
+ import { createHash as createHash3 } from "node:crypto";
1158
1368
  import { readFile } from "node:fs/promises";
1159
1369
  import { dirname, isAbsolute, relative, resolve } from "node:path";
1160
1370
 
@@ -1164,8 +1374,8 @@ var EVAL_TASK_FILE_VERSION = 1;
1164
1374
 
1165
1375
  // src/domains/eval/task-file.ts
1166
1376
  var TASK_KEYS = /* @__PURE__ */ new Set(["id", "prompt", "cwd", "setup", "verifier", "timeoutMs", "tags"]);
1167
- async function loadEvalTaskFile(path) {
1168
- const resolved = resolve(path);
1377
+ async function loadEvalTaskFile(path2) {
1378
+ const resolved = resolve(path2);
1169
1379
  const raw = await readFile(resolved, "utf8");
1170
1380
  const result = parseEvalTaskFileYaml(raw);
1171
1381
  if (!result.valid) {
@@ -1228,30 +1438,30 @@ var EvalTaskFileError = class extends Error {
1228
1438
  this.issues = [...issues];
1229
1439
  }
1230
1440
  };
1231
- function parseTask(value, path, issues) {
1441
+ function parseTask(value, path2, issues) {
1232
1442
  if (!isRecord3(value)) {
1233
- issues.push({ path, message: "expected object" });
1443
+ issues.push({ path: path2, message: "expected object" });
1234
1444
  return null;
1235
1445
  }
1236
1446
  for (const key of Object.keys(value).sort((a, b) => a.localeCompare(b))) {
1237
- if (!TASK_KEYS.has(key)) issues.push({ path: `${path}.${key}`, message: "unknown field" });
1447
+ if (!TASK_KEYS.has(key)) issues.push({ path: `${path2}.${key}`, message: "unknown field" });
1238
1448
  }
1239
- const id = readNonEmptyString(value, path, "id", issues);
1449
+ const id = readNonEmptyString(value, path2, "id", issues);
1240
1450
  if (id !== null && !/^[A-Za-z0-9._-]+$/.test(id)) {
1241
- issues.push({ path: `${path}.id`, message: "expected id with letters, numbers, dots, underscores, or hyphens" });
1451
+ issues.push({ path: `${path2}.id`, message: "expected id with letters, numbers, dots, underscores, or hyphens" });
1242
1452
  }
1243
- const prompt = readNonEmptyString(value, path, "prompt", issues);
1244
- const cwd = readNonEmptyString(value, path, "cwd", issues);
1453
+ const prompt = readNonEmptyString(value, path2, "prompt", issues);
1454
+ const cwd = readNonEmptyString(value, path2, "cwd", issues);
1245
1455
  if (cwd !== null && isAbsolute(cwd)) {
1246
- issues.push({ path: `${path}.cwd`, message: "expected repo-local relative path" });
1456
+ issues.push({ path: `${path2}.cwd`, message: "expected repo-local relative path" });
1247
1457
  }
1248
- const setup = readStringArray(value, path, "setup", issues, true);
1249
- const verifier = readStringArray(value, path, "verifier", issues, false);
1458
+ const setup = readStringArray(value, path2, "setup", issues, true);
1459
+ const verifier = readStringArray(value, path2, "verifier", issues, false);
1250
1460
  if (verifier !== null && verifier.length === 0) {
1251
- issues.push({ path: `${path}.verifier`, message: "expected at least one command" });
1461
+ issues.push({ path: `${path2}.verifier`, message: "expected at least one command" });
1252
1462
  }
1253
- const timeoutMs = readPositiveInteger(value, path, "timeoutMs", issues);
1254
- const tags = readStringArray(value, path, "tags", issues, true);
1463
+ const timeoutMs = readPositiveInteger(value, path2, "timeoutMs", issues);
1464
+ const tags = readStringArray(value, path2, "tags", issues, true);
1255
1465
  if (id === null || prompt === null || cwd === null || setup === null || verifier === null || timeoutMs === null) {
1256
1466
  return null;
1257
1467
  }
@@ -1269,36 +1479,36 @@ function validateTaskCwds(tasks, baseDir) {
1269
1479
  }
1270
1480
  return issues;
1271
1481
  }
1272
- function readNonEmptyString(record, path, field, issues) {
1482
+ function readNonEmptyString(record, path2, field, issues) {
1273
1483
  const value = record[field];
1274
1484
  if (typeof value !== "string" || value.trim().length === 0) {
1275
- issues.push({ path: `${path}.${field}`, message: "expected non-empty string" });
1485
+ issues.push({ path: `${path2}.${field}`, message: "expected non-empty string" });
1276
1486
  return null;
1277
1487
  }
1278
1488
  return value;
1279
1489
  }
1280
- function readStringArray(record, path, field, issues, allowMissing) {
1490
+ function readStringArray(record, path2, field, issues, allowMissing) {
1281
1491
  const value = record[field];
1282
1492
  if (value === void 0 && allowMissing) return [];
1283
1493
  if (!Array.isArray(value)) {
1284
- issues.push({ path: `${path}.${field}`, message: "expected string array" });
1494
+ issues.push({ path: `${path2}.${field}`, message: "expected string array" });
1285
1495
  return null;
1286
1496
  }
1287
1497
  const out = [];
1288
1498
  for (let index = 0; index < value.length; index += 1) {
1289
1499
  const entry = value[index];
1290
1500
  if (typeof entry !== "string" || entry.trim().length === 0) {
1291
- issues.push({ path: `${path}.${field}[${index}]`, message: "expected non-empty string" });
1501
+ issues.push({ path: `${path2}.${field}[${index}]`, message: "expected non-empty string" });
1292
1502
  continue;
1293
1503
  }
1294
1504
  out.push(entry);
1295
1505
  }
1296
1506
  return out;
1297
1507
  }
1298
- function readPositiveInteger(record, path, field, issues) {
1508
+ function readPositiveInteger(record, path2, field, issues) {
1299
1509
  const value = record[field];
1300
1510
  if (typeof value !== "number" || !Number.isInteger(value) || value <= 0) {
1301
- issues.push({ path: `${path}.${field}`, message: "expected positive integer" });
1511
+ issues.push({ path: `${path2}.${field}`, message: "expected positive integer" });
1302
1512
  return null;
1303
1513
  }
1304
1514
  return value;
@@ -1307,7 +1517,7 @@ function isRecord3(value) {
1307
1517
  return typeof value === "object" && value !== null && !Array.isArray(value);
1308
1518
  }
1309
1519
  function sha256Hex(content) {
1310
- return createHash2("sha256").update(content, "utf8").digest("hex");
1520
+ return createHash3("sha256").update(content, "utf8").digest("hex");
1311
1521
  }
1312
1522
 
1313
1523
  // src/domains/eval/run-compare.ts
@@ -1325,84 +1535,145 @@ function assertComparableTrackedMetricSources(metric, baseline, candidate) {
1325
1535
  throw new EvalTrackedMetricSourceMismatchError(metric, baseline, candidate);
1326
1536
  }
1327
1537
 
1328
- // src/domains/prompts/hash.ts
1538
+ // src/domains/prompts/fragment-loader.ts
1329
1539
  init_esm_shims();
1330
- import { createHash as createHash3 } from "node:crypto";
1331
- function sha2562(input) {
1332
- return createHash3("sha256").update(input, "utf8").digest("hex");
1333
- }
1334
- function canonicalJson2(value) {
1335
- return serialize(value);
1336
- }
1337
- function serialize(value) {
1338
- if (value === null) return "null";
1339
- if (typeof value === "number") {
1340
- if (!Number.isFinite(value)) {
1341
- throw new Error(`canonicalJson: non-finite number ${String(value)} is not representable`);
1540
+ var import_yaml2 = __toESM(require_dist(), 1);
1541
+ import { readdirSync, readFileSync } from "node:fs";
1542
+ import path from "node:path";
1543
+ var frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
1544
+ var fragmentIdRegex = /^[a-z0-9-]+(?:\.[a-z0-9-]+)+$/;
1545
+ function defaultRootDir() {
1546
+ return path.join(resolvePackageRoot(), "src", "domains", "prompts", "fragments");
1547
+ }
1548
+ function walk(root) {
1549
+ const out = [];
1550
+ let entries;
1551
+ try {
1552
+ entries = readdirSync(root, { withFileTypes: true });
1553
+ } catch {
1554
+ return out;
1555
+ }
1556
+ for (const entry of entries) {
1557
+ const full = path.join(root, entry.name);
1558
+ if (entry.isDirectory()) {
1559
+ out.push(...walk(full));
1560
+ continue;
1561
+ }
1562
+ if (entry.isFile() && entry.name.endsWith(".md")) {
1563
+ out.push(full);
1342
1564
  }
1343
- return JSON.stringify(value);
1344
1565
  }
1345
- if (typeof value === "string" || typeof value === "boolean") {
1346
- return JSON.stringify(value);
1566
+ return out.sort((left, right) => left.localeCompare(right));
1567
+ }
1568
+ function parseFragment(filePath, rootDir) {
1569
+ const raw = readFileSync(filePath, "utf8");
1570
+ const rawRel = path.relative(rootDir, filePath);
1571
+ const relPath = rawRel.split(path.sep).join("/");
1572
+ const match = raw.match(frontmatterRegex);
1573
+ if (!match) {
1574
+ throw new Error(`fragment-loader: ${relPath}: missing or malformed YAML frontmatter`);
1347
1575
  }
1348
- if (typeof value === "bigint") {
1349
- throw new Error("canonicalJson: bigint is not representable");
1576
+ const frontmatterText = match[1] ?? "";
1577
+ const body = match[2] ?? "";
1578
+ let parsed;
1579
+ try {
1580
+ parsed = import_yaml2.default.parse(frontmatterText);
1581
+ } catch (err) {
1582
+ const reason = err instanceof Error ? err.message : String(err);
1583
+ throw new Error(`fragment-loader: ${relPath}: invalid YAML frontmatter (${reason})`);
1350
1584
  }
1351
- if (typeof value === "symbol" || typeof value === "function") {
1352
- throw new Error(`canonicalJson: ${typeof value} is not representable`);
1585
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
1586
+ throw new Error(`fragment-loader: ${relPath}: frontmatter must be a YAML object`);
1353
1587
  }
1354
- if (value === void 0) {
1355
- throw new Error("canonicalJson: undefined is not representable at root");
1588
+ const fm = parsed;
1589
+ const id = fm.id;
1590
+ if (typeof id !== "string" || !fragmentIdRegex.test(id)) {
1591
+ throw new Error(`fragment-loader: ${relPath}: frontmatter.id must be a dot-separated namespace`);
1356
1592
  }
1357
- if (Array.isArray(value)) {
1358
- const parts = [];
1359
- for (let i = 0; i < value.length; i++) {
1360
- if (!(i in value) || value[i] === void 0) {
1361
- parts.push("null");
1362
- continue;
1363
- }
1364
- parts.push(serialize(value[i]));
1365
- }
1366
- return `[${parts.join(",")}]`;
1593
+ const version = fm.version;
1594
+ if (version !== 1) {
1595
+ throw new Error(`fragment-loader: ${relPath}: frontmatter.version must be 1`);
1367
1596
  }
1368
- if (typeof value === "object") {
1369
- const obj = value;
1370
- const keys = Object.keys(obj).sort();
1371
- const parts = [];
1372
- for (const key of keys) {
1373
- const child = obj[key];
1374
- if (child === void 0) continue;
1375
- parts.push(`${JSON.stringify(key)}:${serialize(child)}`);
1597
+ const description = fm.description;
1598
+ if (typeof description !== "string" || description.trim() === "") {
1599
+ throw new Error(`fragment-loader: ${relPath}: frontmatter.description must be a non-empty string`);
1600
+ }
1601
+ const dynamicRaw = fm.dynamic;
1602
+ if (dynamicRaw !== void 0 && typeof dynamicRaw !== "boolean") {
1603
+ throw new Error(`fragment-loader: ${relPath}: frontmatter.dynamic must be a boolean when present`);
1604
+ }
1605
+ return {
1606
+ path: filePath,
1607
+ relPath,
1608
+ id,
1609
+ version,
1610
+ description,
1611
+ dynamic: dynamicRaw === true,
1612
+ body,
1613
+ contentHash: sha256(raw)
1614
+ };
1615
+ }
1616
+ function loadFragments(options) {
1617
+ const rootDir = typeof options === "string" ? options : options?.rootDir;
1618
+ const resolvedRoot = rootDir ? path.resolve(rootDir) : defaultRootDir();
1619
+ const files = walk(resolvedRoot);
1620
+ const byId = /* @__PURE__ */ new Map();
1621
+ for (const file of files) {
1622
+ const fragment = parseFragment(file, resolvedRoot);
1623
+ const existing = byId.get(fragment.id);
1624
+ if (existing) {
1625
+ throw new Error(
1626
+ `fragment-loader: duplicate fragment id "${fragment.id}" in ${existing.relPath} and ${fragment.relPath}`
1627
+ );
1376
1628
  }
1377
- return `{${parts.join(",")}}`;
1629
+ byId.set(fragment.id, fragment);
1378
1630
  }
1379
- throw new Error(`canonicalJson: unsupported value of type ${typeof value}`);
1631
+ return { byId, rootDir: resolvedRoot };
1380
1632
  }
1381
1633
 
1382
1634
  export {
1383
- sha2562 as sha256,
1384
- canonicalJson2 as canonicalJson,
1635
+ renderCodewikiDigest,
1636
+ sha256,
1637
+ canonicalJson,
1385
1638
  RUN_RECEIPT_INTEGRITY_VERSION,
1386
1639
  RUN_RECEIPT_INTEGRITY_ALGORITHM,
1387
1640
  withReceiptIntegrity,
1388
1641
  isReceiptIntegrity,
1389
1642
  verifyReceiptIntegrity,
1643
+ TRUST_STATUS_VERSION,
1644
+ TRUST_STATUS_MAX_ARTIFACT_REFERENCES,
1645
+ TRUST_STATUS_MAX_IDENTIFIER_LENGTH,
1390
1646
  TRUST_STATUS_AXES,
1647
+ TRUST_STATUS_STATES,
1391
1648
  isTrustStatusIdentifier,
1392
1649
  normalizeTrustStatus,
1650
+ validateTrustStatus,
1651
+ absentTrustStatus,
1393
1652
  composeTrustStatus,
1653
+ projectTrustStatus,
1394
1654
  retiredReceiptIntegrity,
1395
1655
  retiredReceiptIntegrityReason,
1656
+ verifyReceiptIntegrityOutcome,
1396
1657
  retiredIntegrityVersionOf,
1658
+ adaptReceiptIntegrityStatus,
1659
+ adaptRunReceiptValidationStatus,
1660
+ adaptRunReceiptContextStatus,
1661
+ adaptRunReceiptAutonomyStatus,
1397
1662
  adaptRunReceiptTrustStatus,
1398
1663
  inspectRunReceiptTrustStatus,
1399
1664
  adaptGateDecisionReviewStatus,
1400
1665
  adaptGroundedEvidenceValidationStatus,
1666
+ adaptFinishContractCompletionStatus,
1667
+ TRUST_SUMMARY_VERSION,
1668
+ TRUST_SUMMARY_MAX_REFS,
1669
+ TRUST_VERDICTS,
1670
+ TRUST_STATE_WORDS,
1401
1671
  trustStateWord,
1402
1672
  formatTrustSummary,
1403
1673
  formatTrustSummaryLine,
1404
1674
  formatTrustAxes,
1405
1675
  trustVerdict,
1676
+ trustSummaryReferences,
1406
1677
  summarizeTrustStatus,
1407
1678
  evalClioProvenance,
1408
1679
  evalEnvironmentProvenance,
@@ -1410,6 +1681,7 @@ export {
1410
1681
  evalServingObservationFrom,
1411
1682
  assertComparableTrackedMetricSources,
1412
1683
  loadEvalTaskFile,
1413
- EvalTaskFileError
1684
+ EvalTaskFileError,
1685
+ loadFragments
1414
1686
  };
1415
- //# sourceMappingURL=chunk-IWT4SF4R.js.map
1687
+ //# sourceMappingURL=chunk-6CDNRHWH.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/timers.ts
7
7
  init_esm_shims();
@@ -23,4 +23,4 @@ export {
23
23
  sleep,
24
24
  rawDurationMs
25
25
  };
26
- //# sourceMappingURL=chunk-EBY63B7G.js.map
26
+ //# sourceMappingURL=chunk-6EXUUOSN.js.map