@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,13 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  DEFAULT_WORKING_SET_SETTINGS
4
- } from "./chunk-LL4KHSZI.js";
4
+ } from "./chunk-U2MSJ57E.js";
5
5
  import {
6
6
  GUARDRAIL_DEFAULTS
7
- } from "./chunk-S66XZJOF.js";
7
+ } from "./chunk-C27U2TYG.js";
8
8
  import {
9
9
  init_esm_shims
10
- } from "./chunk-3R73A4XB.js";
10
+ } from "./chunk-ECBHH7LU.js";
11
11
 
12
12
  // src/core/defaults.ts
13
13
  init_esm_shims();
@@ -37,7 +37,7 @@ var THEME_NAMED_COLORS = [
37
37
  "frameStrong"
38
38
  ];
39
39
  var DEFAULT_DELEGATION_CONNECT_TIMEOUT_MS = 3e4;
40
- var DEFAULT_DELEGATION_TURN_TIMEOUT_MS = 3e5;
40
+ var DEFAULT_DELEGATION_TURN_TIMEOUT_MS = 0;
41
41
  var DEFAULT_DELEGATION_PERMISSION_TIMEOUT_MS = 12e4;
42
42
  var ACTIVE_ROUTING_ROLES = ["researcher", "verifier", "reviewer", "judge"];
43
43
  var ACTIVE_ROUTING_POSTURES = ["quality", "balanced", "latency", "economy"];
@@ -274,7 +274,7 @@ integrations:
274
274
  entries: []
275
275
  defaults:
276
276
  connectTimeoutMs: 30000
277
- turnTimeoutMs: 300000
277
+ turnTimeoutMs: 0
278
278
  permissionTimeoutMs: 120000
279
279
  toolGovernance: clio-coder-policy
280
280
  runtimePlugins: []
@@ -300,4 +300,4 @@ export {
300
300
  DEFAULT_SETTINGS,
301
301
  DEFAULT_SETTINGS_YAML
302
302
  };
303
- //# sourceMappingURL=chunk-UXCU4E3T.js.map
303
+ //# sourceMappingURL=chunk-SE4ZKILO.js.map
@@ -0,0 +1,19 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-ECBHH7LU.js";
5
+
6
+ // src/tools/network-policy.ts
7
+ init_esm_shims();
8
+ var NO_NETWORK_TOOLS_ENV = "CLIO_CODER_DISABLE_RETRIEVE_TOOLS";
9
+ function networkToolsDisabled(env = process.env) {
10
+ return env[NO_NETWORK_TOOLS_ENV] === "1" || env.CLIO_CODER_NO_NETWORK_TOOLS === "1";
11
+ }
12
+ var WEB_FETCH_ALLOW_PRIVATE_NETWORK_ENV = "CLIO_CODER_WEB_FETCH_ALLOW_PRIVATE_NETWORK";
13
+
14
+ export {
15
+ NO_NETWORK_TOOLS_ENV,
16
+ networkToolsDisabled,
17
+ WEB_FETCH_ALLOW_PRIVATE_NETWORK_ENV
18
+ };
19
+ //# sourceMappingURL=chunk-SL2RDHKO.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/providers/registry.ts
7
7
  init_esm_shims();
@@ -162,4 +162,4 @@ export {
162
162
  createRuntimeRegistry,
163
163
  getRuntimeRegistry
164
164
  };
165
- //# sourceMappingURL=chunk-NUGM5KR6.js.map
165
+ //# sourceMappingURL=chunk-SRCEQKQS.js.map
@@ -2,27 +2,27 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  ensureYaziProfile,
4
4
  yaziProfileDir
5
- } from "./chunk-3M6DQK6S.js";
5
+ } from "./chunk-T334FW2H.js";
6
6
  import {
7
7
  describeResolution,
8
8
  resolveToolBinary,
9
9
  toolStatus
10
- } from "./chunk-QSNYB6ZV.js";
10
+ } from "./chunk-XCUDZQLX.js";
11
11
  import {
12
12
  findPinnedTool
13
- } from "./chunk-QDC3K2U3.js";
13
+ } from "./chunk-K2BLQC5E.js";
14
14
  import {
15
15
  namingCompatibilityEnvironment
16
- } from "./chunk-D7E7WCDF.js";
16
+ } from "./chunk-DVNAPPXU.js";
17
17
  import {
18
18
  resolvePackageRoot
19
- } from "./chunk-IWHMRKLL.js";
19
+ } from "./chunk-E3LEPLQ2.js";
20
20
  import {
21
21
  clioCacheDir
22
- } from "./chunk-BYP5D4HI.js";
22
+ } from "./chunk-CTTI7G3T.js";
23
23
  import {
24
24
  init_esm_shims
25
- } from "./chunk-3R73A4XB.js";
25
+ } from "./chunk-ECBHH7LU.js";
26
26
 
27
27
  // src/domains/mux/index.ts
28
28
  init_esm_shims();
@@ -136,11 +136,13 @@ function createDockController(options) {
136
136
  const geometry = await client.paneLayout(anchorPaneId);
137
137
  const anchorRect = geometry.panes.find((pane2) => pane2.paneId === anchorPaneId)?.rect;
138
138
  if (!anchorRect) {
139
+ openOptions.onRefused?.(`no anchor geometry for ${anchorPaneId}; check the pane host layout before trying again`);
139
140
  log("debug", `mux ${slot} dock open found no anchor rect for ${anchorPaneId}`);
140
141
  return null;
141
142
  }
142
143
  const plan = planDockOpen(anchorRect, spec, openOptions.share);
143
144
  if ("refused" in plan) {
145
+ openOptions.onRefused?.(`${plan.refused}; enlarge the anchor pane before trying again`);
144
146
  log("info", `mux ${slot} dock refused: ${plan.refused}`);
145
147
  return null;
146
148
  }
@@ -379,7 +381,7 @@ function createMuxRuntime(options) {
379
381
  if (stopped || client === null || detection.mode === "none") return false;
380
382
  return healthy || now() >= probeHealthAt;
381
383
  };
382
- const attempt = async (what, run, fallback) => {
384
+ const attempt = async (what, run, fallback, onError) => {
383
385
  if (!usable() || client === null) return fallback;
384
386
  try {
385
387
  const value = await run(client);
@@ -387,6 +389,7 @@ function createMuxRuntime(options) {
387
389
  return value;
388
390
  } catch (error) {
389
391
  degrade(what, error);
392
+ onError?.(error);
390
393
  return fallback;
391
394
  }
392
395
  };
@@ -437,6 +440,12 @@ function createMuxRuntime(options) {
437
440
  return detection;
438
441
  },
439
442
  async openUtilityPane(request) {
443
+ const report = (failure) => {
444
+ try {
445
+ request.onFailure?.(failure);
446
+ } catch {
447
+ }
448
+ };
440
449
  const dockSlot = request.dock?.slot;
441
450
  if (dockSlot && docks) {
442
451
  const existing = docks.stateFor(dockSlot);
@@ -449,6 +458,7 @@ function createMuxRuntime(options) {
449
458
  let ref;
450
459
  if (request.dock && docks) {
451
460
  const placed = await docks.open(request.dock.slot, {
461
+ onRefused: (message) => report({ source: "local", message }),
452
462
  ...request.dock.share === void 0 ? {} : { share: request.dock.share },
453
463
  cwd: request.cwd,
454
464
  ...request.env ? { env: request.env } : {}
@@ -484,7 +494,20 @@ function createMuxRuntime(options) {
484
494
  }
485
495
  return ref;
486
496
  },
487
- null
497
+ null,
498
+ (error) => {
499
+ if (error instanceof MuxError) {
500
+ report({
501
+ source: "mux",
502
+ kind: error.kind,
503
+ wireCode: error.wireCode,
504
+ method: error.method,
505
+ message: error.message
506
+ });
507
+ } else {
508
+ report({ source: "local", message: error instanceof Error ? error.message : String(error) });
509
+ }
510
+ }
488
511
  );
489
512
  },
490
513
  async closePane(paneId) {
@@ -1040,9 +1063,16 @@ function createMuxClient(options) {
1040
1063
  const error = asRecord(line.error);
1041
1064
  if (responseId !== id && !(responseId === "" && error)) return;
1042
1065
  if (error) {
1043
- const code = typeof error.code === "string" ? error.code : "unknown";
1044
- const message = typeof error.message === "string" ? error.message : code;
1045
- finish(() => reject(new MuxError(muxErrorKind(code), message, { wireCode: code, method })));
1066
+ const code = typeof error.code === "string" ? error.code : void 0;
1067
+ const message = typeof error.message === "string" ? error.message : "no failure message was supplied by the pane host";
1068
+ finish(
1069
+ () => reject(
1070
+ new MuxError(muxErrorKind(code ?? "unknown"), message, {
1071
+ ...code === void 0 ? {} : { wireCode: code },
1072
+ method
1073
+ })
1074
+ )
1075
+ );
1046
1076
  return;
1047
1077
  }
1048
1078
  finish(() => resolve(line.result));
@@ -1390,7 +1420,9 @@ async function detectMux(options = {}) {
1390
1420
  return { detection: none("panes are turned off"), client: null };
1391
1421
  }
1392
1422
  if (enabled === "embedded") {
1393
- log("info", "interface.panes.enabled=embedded is not implemented yet; detecting a guest pane host instead");
1423
+ const reason = "embedded pane hosting is not implemented; use auto or guest";
1424
+ log("warning", reason);
1425
+ return { detection: none(reason, [], true), client: null };
1394
1426
  }
1395
1427
  if (env.HERDR_ENV !== "1") {
1396
1428
  return { detection: none("HERDR_ENV is not 1, so Clio is not running inside a pane host"), client: null };
@@ -1830,4 +1862,4 @@ export {
1830
1862
  createYaziSession,
1831
1863
  createMuxDomainModule
1832
1864
  };
1833
- //# sourceMappingURL=chunk-KKOJXO6R.js.map
1865
+ //# sourceMappingURL=chunk-SRZOW5L2.js.map
@@ -1,24 +1,24 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  parseTomlDocument
4
- } from "./chunk-LCGCVYZ4.js";
4
+ } from "./chunk-LQTKDAUO.js";
5
5
  import {
6
6
  resolveToolBinary
7
- } from "./chunk-QSNYB6ZV.js";
7
+ } from "./chunk-XCUDZQLX.js";
8
8
  import {
9
9
  findPinnedTool
10
- } from "./chunk-QDC3K2U3.js";
10
+ } from "./chunk-K2BLQC5E.js";
11
11
  import {
12
12
  readClioVersion,
13
13
  resolvePackageRoot
14
- } from "./chunk-IWHMRKLL.js";
14
+ } from "./chunk-E3LEPLQ2.js";
15
15
  import {
16
16
  clioCacheDir,
17
17
  resolveClioDirs
18
- } from "./chunk-BYP5D4HI.js";
18
+ } from "./chunk-CTTI7G3T.js";
19
19
  import {
20
20
  init_esm_shims
21
- } from "./chunk-3R73A4XB.js";
21
+ } from "./chunk-ECBHH7LU.js";
22
22
 
23
23
  // src/domains/mux/yazi/theme.ts
24
24
  init_esm_shims();
@@ -359,4 +359,4 @@ export {
359
359
  describeYaziProfile,
360
360
  ensureYaziProfile
361
361
  };
362
- //# sourceMappingURL=chunk-3M6DQK6S.js.map
362
+ //# sourceMappingURL=chunk-T334FW2H.js.map
@@ -0,0 +1,318 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ compareCodepoints
4
+ } from "./chunk-B6UM3OZC.js";
5
+ import {
6
+ byteLength
7
+ } from "./chunk-MYI32N4R.js";
8
+ import {
9
+ resolveSafeCwd
10
+ } from "./chunk-GJ24ODAX.js";
11
+ import {
12
+ require_dist
13
+ } from "./chunk-B5GGDIHT.js";
14
+ import {
15
+ __toESM,
16
+ init_esm_shims
17
+ } from "./chunk-ECBHH7LU.js";
18
+
19
+ // src/domains/safety/validation-contract.ts
20
+ init_esm_shims();
21
+ var import_yaml = __toESM(require_dist(), 1);
22
+ import { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
23
+ import path from "node:path";
24
+ var VALIDATION_CONTRACT_VERSION = 1;
25
+ var VALIDATION_CONTRACT_YAML_PATHS = [
26
+ ".clio-coder/validation.yaml",
27
+ ".clio-coder/validation.yml",
28
+ "validation.yaml",
29
+ "validation.yml"
30
+ ];
31
+ var VALIDATION_CONTRACT_MARKDOWN_PATH = "VALIDATION.md";
32
+ var VALIDATION_CONTRACT_CAPS = Object.freeze({
33
+ fileBytes: 256 * 1024,
34
+ textBytes: 4096,
35
+ notesBytes: 16 * 1024,
36
+ artifacts: 256,
37
+ validators: 128,
38
+ modules: 64,
39
+ mapEntries: 256,
40
+ mapKeyBytes: 256
41
+ });
42
+ var RUNTIME_KINDS = ["local", "slurm", "mpi", "other"];
43
+ var ROOT_FIELDS = /* @__PURE__ */ new Set(["version", "task", "runtime", "artifacts", "validators", "notes"]);
44
+ var RUNTIME_FIELDS = /* @__PURE__ */ new Set(["kind", "nodes", "ranks", "walltime", "modules"]);
45
+ var ARTIFACT_FIELDS = /* @__PURE__ */ new Set([
46
+ "path",
47
+ "format",
48
+ "expected_dimensions",
49
+ "expected_attributes",
50
+ "numerical_tolerances",
51
+ "preserve"
52
+ ]);
53
+ var TOLERANCE_FIELDS = /* @__PURE__ */ new Set(["relative", "absolute", "ulp"]);
54
+ function isRecord(value) {
55
+ return value !== null && typeof value === "object" && !Array.isArray(value);
56
+ }
57
+ function unknownFields(record, allowed) {
58
+ return Object.keys(record).filter((key) => !allowed.has(key)).sort(compareCodepoints);
59
+ }
60
+ function boundedText(value, location, cap) {
61
+ if (typeof value !== "string" || value.length === 0) return new Error(`${location} must be a non-empty string`);
62
+ if (value.includes("\0")) return new Error(`${location} must not contain a NUL byte`);
63
+ if (byteLength(value) > cap) return new Error(`${location} exceeds the ${cap}-byte cap`);
64
+ return value;
65
+ }
66
+ function positiveInteger(value, location) {
67
+ if (typeof value !== "number" || !Number.isInteger(value) || value <= 0) {
68
+ return new Error(`${location} must be a positive integer`);
69
+ }
70
+ return value;
71
+ }
72
+ function nonNegativeNumber(value, location) {
73
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
74
+ return new Error(`${location} must be a finite non-negative number`);
75
+ }
76
+ return value;
77
+ }
78
+ function boundedStringList(value, location, cap) {
79
+ if (!Array.isArray(value)) return new Error(`${location} must be an array of strings`);
80
+ if (value.length > cap) return new Error(`${location} exceeds the ${cap}-entry cap`);
81
+ const items = [];
82
+ for (const [index, entry] of value.entries()) {
83
+ const text = boundedText(entry, `${location}[${index}]`, VALIDATION_CONTRACT_CAPS.textBytes);
84
+ if (text instanceof Error) return text;
85
+ items.push(text);
86
+ }
87
+ return items;
88
+ }
89
+ function boundedMap(value, location, validateEntry) {
90
+ if (!isRecord(value)) return new Error(`${location} must be a map`);
91
+ const keys = Object.keys(value);
92
+ if (keys.length > VALIDATION_CONTRACT_CAPS.mapEntries) {
93
+ return new Error(`${location} exceeds the ${VALIDATION_CONTRACT_CAPS.mapEntries}-entry cap`);
94
+ }
95
+ const out = {};
96
+ for (const key of keys.sort(compareCodepoints)) {
97
+ const entryLocation = `${location}.${key}`;
98
+ if (key.length === 0) return new Error(`${location} has an empty key`);
99
+ if (byteLength(key) > VALIDATION_CONTRACT_CAPS.mapKeyBytes) {
100
+ return new Error(`${entryLocation} key exceeds the ${VALIDATION_CONTRACT_CAPS.mapKeyBytes}-byte cap`);
101
+ }
102
+ const entry = validateEntry(value[key], entryLocation);
103
+ if (entry instanceof Error) return entry;
104
+ out[key] = entry;
105
+ }
106
+ return out;
107
+ }
108
+ function validateRuntime(value, location) {
109
+ if (!isRecord(value)) return new Error(`${location} must be an object with a kind field`);
110
+ const unknown = unknownFields(value, RUNTIME_FIELDS);
111
+ if (unknown.length > 0) return new Error(`${location} has unknown field(s): ${unknown.join(", ")}`);
112
+ if (!Object.hasOwn(value, "kind")) return new Error(`${location}.kind is required`);
113
+ const kind = value.kind;
114
+ if (typeof kind !== "string" || !RUNTIME_KINDS.includes(kind)) {
115
+ return new Error(`${location}.kind must be one of ${RUNTIME_KINDS.join(", ")}`);
116
+ }
117
+ const runtime = { kind };
118
+ if (Object.hasOwn(value, "nodes")) {
119
+ const nodes = positiveInteger(value.nodes, `${location}.nodes`);
120
+ if (nodes instanceof Error) return nodes;
121
+ runtime.nodes = nodes;
122
+ }
123
+ if (Object.hasOwn(value, "ranks")) {
124
+ const ranks = positiveInteger(value.ranks, `${location}.ranks`);
125
+ if (ranks instanceof Error) return ranks;
126
+ runtime.ranks = ranks;
127
+ }
128
+ if (Object.hasOwn(value, "walltime")) {
129
+ const walltime = boundedText(value.walltime, `${location}.walltime`, VALIDATION_CONTRACT_CAPS.textBytes);
130
+ if (walltime instanceof Error) return walltime;
131
+ runtime.walltime = walltime;
132
+ }
133
+ if (Object.hasOwn(value, "modules")) {
134
+ const modules = boundedStringList(value.modules, `${location}.modules`, VALIDATION_CONTRACT_CAPS.modules);
135
+ if (modules instanceof Error) return modules;
136
+ runtime.modules = modules;
137
+ }
138
+ return runtime;
139
+ }
140
+ function validateTolerances(value, location) {
141
+ if (!isRecord(value)) return new Error(`${location} must be an object`);
142
+ const unknown = unknownFields(value, TOLERANCE_FIELDS);
143
+ if (unknown.length > 0) return new Error(`${location} has unknown field(s): ${unknown.join(", ")}`);
144
+ const tolerances = {};
145
+ if (Object.hasOwn(value, "relative")) {
146
+ const relative = nonNegativeNumber(value.relative, `${location}.relative`);
147
+ if (relative instanceof Error) return relative;
148
+ tolerances.relative = relative;
149
+ }
150
+ if (Object.hasOwn(value, "absolute")) {
151
+ const absolute = nonNegativeNumber(value.absolute, `${location}.absolute`);
152
+ if (absolute instanceof Error) return absolute;
153
+ tolerances.absolute = absolute;
154
+ }
155
+ if (Object.hasOwn(value, "ulp")) {
156
+ const ulp = value.ulp;
157
+ if (typeof ulp !== "number" || !Number.isInteger(ulp) || ulp < 0) {
158
+ return new Error(`${location}.ulp must be a non-negative integer`);
159
+ }
160
+ tolerances.ulp = ulp;
161
+ }
162
+ return tolerances;
163
+ }
164
+ function validateArtifact(value, location) {
165
+ if (!isRecord(value)) return new Error(`${location} must be an object with a path field`);
166
+ const unknown = unknownFields(value, ARTIFACT_FIELDS);
167
+ if (unknown.length > 0) return new Error(`${location} has unknown field(s): ${unknown.join(", ")}`);
168
+ if (!Object.hasOwn(value, "path")) return new Error(`${location}.path is required`);
169
+ const artifactPath = boundedText(value.path, `${location}.path`, VALIDATION_CONTRACT_CAPS.textBytes);
170
+ if (artifactPath instanceof Error) return artifactPath;
171
+ const artifact = { path: artifactPath };
172
+ if (Object.hasOwn(value, "format")) {
173
+ const format = boundedText(value.format, `${location}.format`, VALIDATION_CONTRACT_CAPS.textBytes);
174
+ if (format instanceof Error) return format;
175
+ artifact.format = format;
176
+ }
177
+ if (Object.hasOwn(value, "expected_dimensions")) {
178
+ const dimensions = boundedMap(
179
+ value.expected_dimensions,
180
+ `${location}.expected_dimensions`,
181
+ (entry, entryLocation) => typeof entry === "number" && Number.isInteger(entry) && entry >= 0 ? entry : new Error(`${entryLocation} must be a non-negative integer`)
182
+ );
183
+ if (dimensions instanceof Error) return dimensions;
184
+ artifact.expected_dimensions = dimensions;
185
+ }
186
+ if (Object.hasOwn(value, "expected_attributes")) {
187
+ const attributes = boundedMap(
188
+ value.expected_attributes,
189
+ `${location}.expected_attributes`,
190
+ (entry, entryLocation) => typeof entry === "string" ? boundedText(entry, entryLocation, VALIDATION_CONTRACT_CAPS.textBytes) : new Error(`${entryLocation} must be a string`)
191
+ );
192
+ if (attributes instanceof Error) return attributes;
193
+ artifact.expected_attributes = attributes;
194
+ }
195
+ if (Object.hasOwn(value, "numerical_tolerances")) {
196
+ const tolerances = validateTolerances(value.numerical_tolerances, `${location}.numerical_tolerances`);
197
+ if (tolerances instanceof Error) return tolerances;
198
+ artifact.numerical_tolerances = tolerances;
199
+ }
200
+ if (Object.hasOwn(value, "preserve")) {
201
+ if (typeof value.preserve !== "boolean") return new Error(`${location}.preserve must be a boolean`);
202
+ artifact.preserve = value.preserve;
203
+ }
204
+ return artifact;
205
+ }
206
+ function parseValidationContractText(text, contractPath) {
207
+ const invalid = (reason) => ({ ok: false, path: contractPath, reason });
208
+ const document = (0, import_yaml.parseDocument)(text, { prettyErrors: false, strict: true, uniqueKeys: true });
209
+ if (document.errors.length > 0) {
210
+ return invalid(`invalid YAML: ${document.errors.map((error) => error.message).join("; ")}`);
211
+ }
212
+ let parsed;
213
+ try {
214
+ parsed = document.toJS({ maxAliasCount: 0 });
215
+ } catch (error) {
216
+ return invalid(`invalid YAML: ${error instanceof Error ? error.message : String(error)}`);
217
+ }
218
+ if (!isRecord(parsed)) return invalid("root must be an object with a version field");
219
+ const rootUnknown = unknownFields(parsed, ROOT_FIELDS);
220
+ if (rootUnknown.length > 0) return invalid(`root has unknown field(s): ${rootUnknown.join(", ")}`);
221
+ if (!Object.hasOwn(parsed, "version")) return invalid("root.version is required");
222
+ if (parsed.version !== VALIDATION_CONTRACT_VERSION) {
223
+ return invalid(
224
+ `unsupported version ${JSON.stringify(parsed.version)}; supported version is ${VALIDATION_CONTRACT_VERSION}`
225
+ );
226
+ }
227
+ const contract = { version: VALIDATION_CONTRACT_VERSION };
228
+ if (Object.hasOwn(parsed, "task")) {
229
+ const task = boundedText(parsed.task, "root.task", VALIDATION_CONTRACT_CAPS.textBytes);
230
+ if (task instanceof Error) return invalid(task.message);
231
+ contract.task = task;
232
+ }
233
+ if (Object.hasOwn(parsed, "runtime")) {
234
+ const runtime = validateRuntime(parsed.runtime, "root.runtime");
235
+ if (runtime instanceof Error) return invalid(runtime.message);
236
+ contract.runtime = runtime;
237
+ }
238
+ if (Object.hasOwn(parsed, "artifacts")) {
239
+ if (!Array.isArray(parsed.artifacts)) return invalid("root.artifacts must be an array");
240
+ if (parsed.artifacts.length > VALIDATION_CONTRACT_CAPS.artifacts) {
241
+ return invalid(`root.artifacts exceeds the ${VALIDATION_CONTRACT_CAPS.artifacts}-entry cap`);
242
+ }
243
+ const artifacts = [];
244
+ for (const [index, value] of parsed.artifacts.entries()) {
245
+ const artifact = validateArtifact(value, `artifacts[${index}]`);
246
+ if (artifact instanceof Error) return invalid(artifact.message);
247
+ artifacts.push(artifact);
248
+ }
249
+ contract.artifacts = artifacts;
250
+ }
251
+ if (Object.hasOwn(parsed, "validators")) {
252
+ const validators = boundedStringList(parsed.validators, "root.validators", VALIDATION_CONTRACT_CAPS.validators);
253
+ if (validators instanceof Error) return invalid(validators.message);
254
+ contract.validators = validators;
255
+ }
256
+ if (Object.hasOwn(parsed, "notes")) {
257
+ const notes = boundedText(parsed.notes, "root.notes", VALIDATION_CONTRACT_CAPS.notesBytes);
258
+ if (notes instanceof Error) return invalid(notes.message);
259
+ contract.notes = notes;
260
+ }
261
+ return { ok: true, contract, path: contractPath };
262
+ }
263
+ function readContractText(absolutePath, workspaceRoot) {
264
+ let realPath;
265
+ try {
266
+ const realRoot = realpathSync(workspaceRoot);
267
+ realPath = realpathSync(absolutePath);
268
+ resolveSafeCwd(realPath, realRoot);
269
+ } catch (error) {
270
+ const message = error instanceof Error ? error.message : String(error);
271
+ return new Error(`contract file must resolve inside the workspace root (${message})`);
272
+ }
273
+ try {
274
+ const stats = statSync(realPath);
275
+ if (!stats.isFile()) return new Error("contract path must be a regular file");
276
+ if (stats.size > VALIDATION_CONTRACT_CAPS.fileBytes) {
277
+ return new Error(`file exceeds the ${VALIDATION_CONTRACT_CAPS.fileBytes}-byte cap`);
278
+ }
279
+ return readFileSync(realPath, "utf8");
280
+ } catch (error) {
281
+ return new Error(`cannot read contract (${error instanceof Error ? error.message : String(error)})`);
282
+ }
283
+ }
284
+ function loadValidationContract(workspaceRoot) {
285
+ let contractPath = null;
286
+ try {
287
+ contractPath = VALIDATION_CONTRACT_YAML_PATHS.find((relative) => existsSync(path.join(workspaceRoot, relative))) ?? null;
288
+ if (contractPath === null) {
289
+ if (existsSync(path.join(workspaceRoot, VALIDATION_CONTRACT_MARKDOWN_PATH))) {
290
+ return { ok: true, contract: null, path: VALIDATION_CONTRACT_MARKDOWN_PATH, advisory: true };
291
+ }
292
+ return { ok: true, contract: null };
293
+ }
294
+ } catch (error) {
295
+ return {
296
+ ok: false,
297
+ path: contractPath ?? VALIDATION_CONTRACT_YAML_PATHS[0] ?? "validation.yaml",
298
+ reason: `cannot inspect workspace root (${error instanceof Error ? error.message : String(error)})`
299
+ };
300
+ }
301
+ const text = readContractText(path.join(workspaceRoot, contractPath), workspaceRoot);
302
+ if (text instanceof Error) return { ok: false, path: contractPath, reason: text.message };
303
+ return parseValidationContractText(text, contractPath);
304
+ }
305
+ function describeValidationContract(result) {
306
+ if (!result.ok) return `${result.path}: ${result.reason}`;
307
+ if (result.contract === null) {
308
+ return "advisory" in result ? `${result.path} is advisory prose and does not raise rigor; add a version-1 validation.yaml to raise the default to high` : null;
309
+ }
310
+ return null;
311
+ }
312
+
313
+ export {
314
+ VALIDATION_CONTRACT_MARKDOWN_PATH,
315
+ loadValidationContract,
316
+ describeValidationContract
317
+ };
318
+ //# sourceMappingURL=chunk-T52TPHYC.js.map
@@ -1,20 +1,20 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  readClioVersion
4
- } from "./chunk-IWHMRKLL.js";
4
+ } from "./chunk-E3LEPLQ2.js";
5
5
  import {
6
6
  DEFAULT_SETTINGS_YAML
7
- } from "./chunk-UXCU4E3T.js";
7
+ } from "./chunk-SE4ZKILO.js";
8
8
  import {
9
9
  clioCacheDir,
10
10
  clioConfigDir,
11
11
  clioDataDir,
12
12
  clioStateDir,
13
13
  resolveClioDirs
14
- } from "./chunk-BYP5D4HI.js";
14
+ } from "./chunk-CTTI7G3T.js";
15
15
  import {
16
16
  init_esm_shims
17
- } from "./chunk-3R73A4XB.js";
17
+ } from "./chunk-ECBHH7LU.js";
18
18
 
19
19
  // src/core/init.ts
20
20
  init_esm_shims();
@@ -143,4 +143,4 @@ function enforceHomePrefixGuard() {
143
143
  export {
144
144
  initializeClioHome
145
145
  };
146
- //# sourceMappingURL=chunk-I7XBWTYH.js.map
146
+ //# sourceMappingURL=chunk-T53XI6I7.js.map
@@ -3,37 +3,37 @@ import {
3
3
  frontmatterRegion,
4
4
  normalizedSkillHash,
5
5
  stripProvenanceLines
6
- } from "./chunk-NDDGJUXD.js";
6
+ } from "./chunk-DNCE23JJ.js";
7
7
  import {
8
8
  readRootEntries,
9
9
  splitYamlFrontmatter,
10
10
  stringField
11
- } from "./chunk-CE5AX47J.js";
11
+ } from "./chunk-U7H5WRG5.js";
12
12
  import {
13
13
  enabledExtensionResourceRoots
14
- } from "./chunk-7DRAWPTZ.js";
14
+ } from "./chunk-22PQ4TX4.js";
15
15
  import {
16
16
  ToolNames
17
- } from "./chunk-K6BSR66V.js";
17
+ } from "./chunk-EHOSNVVM.js";
18
+ import {
19
+ warnLegacyNaming
20
+ } from "./chunk-DVNAPPXU.js";
18
21
  import {
19
22
  INTEROP_AGENT_KINDS,
20
23
  interopSourceRank
21
- } from "./chunk-KXDSS5WJ.js";
22
- import {
23
- warnLegacyNaming
24
- } from "./chunk-D7E7WCDF.js";
24
+ } from "./chunk-5CY4Q6QI.js";
25
25
  import {
26
26
  resolvePackageRoot
27
- } from "./chunk-IWHMRKLL.js";
27
+ } from "./chunk-E3LEPLQ2.js";
28
28
  import {
29
29
  fsyncDirectory
30
- } from "./chunk-WEPFGWHJ.js";
30
+ } from "./chunk-ZZFWWYLX.js";
31
31
  import {
32
32
  clioConfigDir
33
- } from "./chunk-BYP5D4HI.js";
33
+ } from "./chunk-CTTI7G3T.js";
34
34
  import {
35
35
  init_esm_shims
36
- } from "./chunk-3R73A4XB.js";
36
+ } from "./chunk-ECBHH7LU.js";
37
37
 
38
38
  // src/domains/resources/skills/install.ts
39
39
  init_esm_shims();
@@ -1254,4 +1254,4 @@ export {
1254
1254
  expandSkillInvocationInput,
1255
1255
  parsePendingSkillRequests
1256
1256
  };
1257
- //# sourceMappingURL=chunk-LDJG7DW3.js.map
1257
+ //# sourceMappingURL=chunk-T7FDXNRU.js.map