@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
@@ -2,73 +2,56 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  resolveFdBinary,
4
4
  resolveRgBinary
5
- } from "./chunk-BMS5RKQY.js";
5
+ } from "./chunk-JABWPKFY.js";
6
6
  import {
7
7
  webFetchToolSurface
8
- } from "./chunk-MCEPRMZW.js";
8
+ } from "./chunk-BBV5TKE6.js";
9
9
  import {
10
- gitTool,
11
10
  verifyToolSurface
12
- } from "./chunk-ZDN3Y73Y.js";
11
+ } from "./chunk-GXCCHKN6.js";
13
12
  import {
14
13
  codeNavToolSurface
15
- } from "./chunk-64I3JVYM.js";
16
- import {
17
- compileGlobRegex,
18
- fallbackIgnoredDirs,
19
- fdIgnoreArgs,
20
- normalizeGlobInput,
21
- rgIgnoreArgs
22
- } from "./chunk-VG7TBQIY.js";
14
+ } from "./chunk-PWWSIB2A.js";
23
15
  import {
24
16
  contextToolSurface
25
- } from "./chunk-IUE3Y34X.js";
17
+ } from "./chunk-KTFSFCVN.js";
26
18
  import {
27
19
  RESPONSE_SCHEMA_RUNTIME_ID,
28
20
  bashTool,
29
21
  builtin,
30
22
  createAskUserTool,
31
- networkToolsDisabled,
32
23
  readMaxBytes,
33
24
  readTool,
34
25
  renderAgentLedger
35
- } from "./chunk-PAJQJ7BS.js";
36
- import {
37
- createTaskBoardStore,
38
- taskBoardCounts
39
- } from "./chunk-L47TF46W.js";
26
+ } from "./chunk-TZ7MFRG4.js";
40
27
  import {
41
28
  hashToolCall
42
- } from "./chunk-RSJ25QSL.js";
29
+ } from "./chunk-KF6GFW6O.js";
43
30
  import {
44
- formatModelRejection
45
- } from "./chunk-XIVNBFZS.js";
31
+ createTaskBoardStore,
32
+ taskBoardCounts
33
+ } from "./chunk-7HBHHVCK.js";
46
34
  import {
47
35
  describeCallAction
48
- } from "./chunk-NEDJ26B5.js";
36
+ } from "./chunk-2GPGAE5W.js";
49
37
  import {
50
- applyToolProfile
51
- } from "./chunk-42FMPA75.js";
38
+ networkToolsDisabled
39
+ } from "./chunk-SL2RDHKO.js";
52
40
  import {
41
+ compileGlobRegex,
42
+ fallbackIgnoredDirs,
43
+ fdIgnoreArgs,
44
+ normalizeGlobInput,
53
45
  resolveReadPath,
54
46
  resolveToCwd,
47
+ rgIgnoreArgs,
55
48
  toPosixPath
56
- } from "./chunk-OQE5J4C6.js";
57
- import {
58
- classify
59
- } from "./chunk-B4OAX3SI.js";
60
- import {
61
- protectArtifact,
62
- protectedArtifactMutationBlockReason
63
- } from "./chunk-I7ZPNEJM.js";
64
- import {
65
- CLIO_ARTIFACT_DIR,
66
- artifactDefaultPath
67
- } from "./chunk-GYV6VZOC.js";
49
+ } from "./chunk-V552WL53.js";
68
50
  import {
69
51
  OBSERVATION_POLICY_SLACK_BYTES,
70
52
  OBSERVE_SELF_CAPS,
71
53
  commitObservationReservation,
54
+ createObservationPathFilter,
72
55
  finalizeObservation,
73
56
  isDispositionedToolResultError,
74
57
  observationBudgetExhausted,
@@ -76,36 +59,58 @@ import {
76
59
  reserveObservation,
77
60
  toolResultContextText,
78
61
  truncateHead
79
- } from "./chunk-JDAY6FIL.js";
62
+ } from "./chunk-RLTT5GVY.js";
80
63
  import {
81
64
  GREP_MAX_LINE_LENGTH,
82
65
  truncateLine
83
- } from "./chunk-OZNBF4L3.js";
66
+ } from "./chunk-KECNXMDE.js";
84
67
  import {
85
- truncateUtf8
86
- } from "./chunk-6XLNIQDB.js";
68
+ formatModelRejection
69
+ } from "./chunk-4SVIVOMC.js";
70
+ import {
71
+ applyToolProfile
72
+ } from "./chunk-CBSKDFWL.js";
73
+ import {
74
+ classify
75
+ } from "./chunk-LUL5Z66S.js";
76
+ import {
77
+ protectArtifact,
78
+ protectedArtifactMutationBlockReason
79
+ } from "./chunk-M6TAYK66.js";
80
+ import {
81
+ gitTool
82
+ } from "./chunk-WJIMKGD6.js";
83
+ import {
84
+ CLIO_ARTIFACT_DIR,
85
+ artifactDefaultPath
86
+ } from "./chunk-NTTS3O53.js";
87
87
  import {
88
88
  typebox_exports
89
- } from "./chunk-5B2AEOW5.js";
89
+ } from "./chunk-GH5ZR6JP.js";
90
90
  import {
91
91
  parseAgentLedgerBody
92
- } from "./chunk-VAVR4IJY.js";
92
+ } from "./chunk-VQD7NH7Z.js";
93
93
  import {
94
+ decisionRef,
94
95
  skillActivationFromToolDetails
95
- } from "./chunk-JGRC33J2.js";
96
+ } from "./chunk-5ZMXGW7P.js";
97
+ import {
98
+ byteLength,
99
+ truncateUtf8
100
+ } from "./chunk-MYI32N4R.js";
96
101
  import {
97
102
  ToolNames,
98
103
  isBuiltinToolName
99
- } from "./chunk-K6BSR66V.js";
104
+ } from "./chunk-EHOSNVVM.js";
105
+ import {
106
+ assertSafeId
107
+ } from "./chunk-UHW5V7HC.js";
100
108
  import {
101
109
  BusChannels
102
- } from "./chunk-F4EKGO4N.js";
110
+ } from "./chunk-HL26ADLH.js";
103
111
  import {
104
112
  incompleteInstallationAdvice
105
- } from "./chunk-65DEGPJ6.js";
106
- import {
107
- buildSafeToolEnv
108
- } from "./chunk-JSC3U7TI.js";
113
+ } from "./chunk-3A3CUMKA.js";
109
114
  import {
110
115
  GUARDRAIL_DEFAULTS,
111
116
  resolveGuardrail,
@@ -113,14 +118,21 @@ import {
113
118
  workerSynthesisReserveDirective,
114
119
  workerToolCallCapExceededReason,
115
120
  workerToolCallCapSynthesisReason
116
- } from "./chunk-S66XZJOF.js";
121
+ } from "./chunk-C27U2TYG.js";
122
+ import {
123
+ buildSafeToolEnv
124
+ } from "./chunk-GJ24ODAX.js";
117
125
  import {
118
126
  StringEnum,
119
127
  engineStreamSimple
120
- } from "./chunk-YPC6ZR5L.js";
128
+ } from "./chunk-5CMARGPF.js";
129
+ import {
130
+ clioDataDir,
131
+ clioStateDir
132
+ } from "./chunk-CTTI7G3T.js";
121
133
  import {
122
134
  init_esm_shims
123
- } from "./chunk-3R73A4XB.js";
135
+ } from "./chunk-ECBHH7LU.js";
124
136
 
125
137
  // src/domains/safety/protected-artifacts-registration.ts
126
138
  init_esm_shims();
@@ -385,8 +397,9 @@ function readOrchTurnToolCallBudget() {
385
397
  }
386
398
  function createLoopGuardRegistration(options) {
387
399
  const budget = options.turnBlockBudget ?? INTERACTIVE_LOOP_BLOCK_BUDGET;
388
- const cap = options.toolCallCap;
389
- let softLimit = options.toolCallSoftLimit !== void 0 && Number.isSafeInteger(options.toolCallSoftLimit) && options.toolCallSoftLimit > 0 && (cap === void 0 || options.toolCallSoftLimit <= cap) ? options.toolCallSoftLimit : void 0;
400
+ const cap = options.toolBudgetAdvisory ? void 0 : options.toolCallCap;
401
+ let advisoryEmitted = false;
402
+ let softLimit = !options.toolBudgetAdvisory && options.toolCallSoftLimit !== void 0 && Number.isSafeInteger(options.toolCallSoftLimit) && options.toolCallSoftLimit > 0 && (cap === void 0 || options.toolCallSoftLimit <= cap) ? options.toolCallSoftLimit : void 0;
390
403
  const synthesisLockout = options.turnSynthesisLockout === true;
391
404
  let softReadReserve = options.toolCallSoftReadReserve ?? 0;
392
405
  let softReadReserveThreshold = softLimit !== void 0 && softReadReserve > 0 && softLimit > softReadReserve ? softLimit - softReadReserve : null;
@@ -396,7 +409,7 @@ function createLoopGuardRegistration(options) {
396
409
  let softReadReserveEntered = false;
397
410
  let reserveDenials = { denials: 0 };
398
411
  let deniedAttempts = 0;
399
- const denialBudget = cap === void 0 ? void 0 : Math.max(cap, WIDE_BATCH_DENIAL_FLOOR);
412
+ const denialBudget = options.toolCallCap === void 0 ? void 0 : Math.max(options.toolCallCap, WIDE_BATCH_DENIAL_FLOOR);
400
413
  const boundRunDenials = (effects, input) => {
401
414
  if (denialBudget === void 0 || !effects.some((effect) => effect.kind === "block_tool")) return effects;
402
415
  deniedAttempts += 1;
@@ -623,6 +636,14 @@ function createLoopGuardRegistration(options) {
623
636
  recordSuccessfulResult(input);
624
637
  recordResultForStagnation(input);
625
638
  const effects = [...crossArgumentResultEffects(input)];
639
+ if (options.toolBudgetAdvisory && !advisoryEmitted && count >= (options.toolCallSoftLimit ?? options.toolCallCap ?? Infinity)) {
640
+ advisoryEmitted = true;
641
+ effects.push({
642
+ kind: "annotate_tool_result",
643
+ message: `Advisory tool estimate reached (${count} calls). Reassess remaining work and finish the assignment; tools remain available. Explicit task requirements still apply.`,
644
+ severity: "warn"
645
+ });
646
+ }
626
647
  if (softReadReserveEntered && softLockout === null && deliveryTools.length === 0 && input.toolName === ToolNames.Read) {
627
648
  effects.push({ kind: "require_tool", toolName: ToolNames.Read });
628
649
  }
@@ -835,7 +856,7 @@ function projectToolResult(result) {
835
856
  return { content: [{ type: "text", text: toolResultContextText(result) }], details };
836
857
  }
837
858
  return {
838
- content: [{ type: "text", text: toolResultContextText(result) }],
859
+ content: [{ type: "text", text: toolResultContextText(result) }, ...result.images ?? []],
839
860
  details,
840
861
  ...result.terminate === true ? { terminate: true } : {}
841
862
  };
@@ -905,7 +926,7 @@ async function runValidatedToolCall(input) {
905
926
  const toolDetails = isRecord(verdict.result.details) ? verdict.result.details : {};
906
927
  const skillActivation = spec.name === ToolNames.Context ? skillActivationFromToolDetails(toolDetails, input.invokeOptions?.turnId) : null;
907
928
  const result = {
908
- content: [{ type: "text", text: toolResultContextText(verdict.result) }],
929
+ content: [{ type: "text", text: toolResultContextText(verdict.result) }, ...verdict.result.images ?? []],
909
930
  details: { ...toolDetails, kind: "ok" }
910
931
  };
911
932
  if (verdict.result.terminate === true) {
@@ -1023,7 +1044,10 @@ function effectiveToolNames(input) {
1023
1044
  function resolveSessionTools(runtime, toolRegistry, invokeOptions, telemetry) {
1024
1045
  if (!toolRegistry || runtime.runtimeResolution.capabilityDecisions.tools !== true) return [];
1025
1046
  const input = { registry: toolRegistry };
1026
- if (invokeOptions) input.invokeOptions = invokeOptions;
1047
+ input.invokeOptions = () => ({
1048
+ ...invokeOptions?.(),
1049
+ supportsImages: runtime.runtimeResolution.capabilityDecisions.vision === true
1050
+ });
1027
1051
  if (telemetry) input.telemetry = telemetry;
1028
1052
  return resolveAgentTools(input);
1029
1053
  }
@@ -1111,7 +1135,7 @@ function patchToolChoiceNamedPayload(payload, model, toolName) {
1111
1135
  if (Object.keys(outputConfig).length > 0) patched.output_config = outputConfig;
1112
1136
  else delete patched.output_config;
1113
1137
  }
1114
- return { ...patched, tools: tools2, tool_choice: { type: "tool", name: toolName } };
1138
+ return { ...patched, tool_choice: { type: "tool", name: toolName } };
1115
1139
  }
1116
1140
  if (model.api === "google-generative-ai" || model.api === "google-vertex") {
1117
1141
  if (!isRecord2(payload.config) || payload.config.tools === void 0 || payload.config.tools === null)
@@ -1486,6 +1510,115 @@ var credentialPresentTool = {
1486
1510
  }
1487
1511
  };
1488
1512
 
1513
+ // src/tools/decide.ts
1514
+ init_esm_shims();
1515
+ var DECIDE_CAPS = Object.freeze({
1516
+ keyBytes: 64,
1517
+ valueBytes: 512,
1518
+ alternatives: 6,
1519
+ alternativeBytes: 256,
1520
+ rationaleBytes: 1024,
1521
+ labelBytes: 128
1522
+ });
1523
+ var KEBAB_KEY = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
1524
+ function boundedText(value, field, cap) {
1525
+ if (typeof value !== "string") return new Error(`decide: ${field} must be a string`);
1526
+ const trimmed = value.trim();
1527
+ if (trimmed.length === 0) return new Error(`decide: ${field} is required`);
1528
+ if (byteLength(trimmed) > cap) return new Error(`decide: ${field} exceeds the ${cap}-byte cap`);
1529
+ return trimmed;
1530
+ }
1531
+ function boundedAlternatives(value) {
1532
+ if (!Array.isArray(value) || value.length === 0) {
1533
+ return new Error("decide: alternatives must list at least one option you rejected");
1534
+ }
1535
+ if (value.length > DECIDE_CAPS.alternatives) {
1536
+ return new Error(`decide: alternatives exceeds the ${DECIDE_CAPS.alternatives}-entry cap`);
1537
+ }
1538
+ const alternatives = [];
1539
+ for (const [index, entry] of value.entries()) {
1540
+ const text = boundedText(entry, `alternatives[${index}]`, DECIDE_CAPS.alternativeBytes);
1541
+ if (text instanceof Error) return text;
1542
+ alternatives.push(text);
1543
+ }
1544
+ return alternatives;
1545
+ }
1546
+ function createDecideTool(deps = {}) {
1547
+ return {
1548
+ name: ToolNames.Decide,
1549
+ description: "Record a design decision between viable options, with rejected alternatives and rationale, before implementing. Verify implementation against the active choice before commit; decision trailers do not prove adherence. If policy changes, a call with the same key revises your earlier agent choice; operator choices require operator revision through ask_user. Record the revision before commit.",
1550
+ parameters: typebox_exports.Object({
1551
+ key: typebox_exports.String({
1552
+ description: `Stable kebab-case name for the decision, e.g. "cache-key-shape" (at most ${DECIDE_CAPS.keyBytes} bytes).`
1553
+ }),
1554
+ value: typebox_exports.String({ description: `The option you chose (at most ${DECIDE_CAPS.valueBytes} bytes).` }),
1555
+ alternatives: typebox_exports.Array(typebox_exports.String(), {
1556
+ description: `Options you considered and rejected, 1 to ${DECIDE_CAPS.alternatives} entries.`
1557
+ }),
1558
+ rationale: typebox_exports.String({
1559
+ description: `Why the chosen option won over the alternatives (at most ${DECIDE_CAPS.rationaleBytes} bytes).`
1560
+ }),
1561
+ label: typebox_exports.Optional(typebox_exports.String({ description: "Short human-readable title for the decision." }))
1562
+ }),
1563
+ // Read class on purpose: the only effect is one session-ledger append,
1564
+ // so it must stay available at every autonomy level without a prompt.
1565
+ baseActionClass: "read",
1566
+ executionMode: "sequential",
1567
+ async run(args) {
1568
+ const key = boundedText(args.key, "key", DECIDE_CAPS.keyBytes);
1569
+ if (key instanceof Error) return { kind: "error", message: key.message };
1570
+ if (!KEBAB_KEY.test(key)) {
1571
+ return { kind: "error", message: "decide: key must be kebab-case (lowercase letters, digits, single hyphens)" };
1572
+ }
1573
+ const value = boundedText(args.value, "value", DECIDE_CAPS.valueBytes);
1574
+ if (value instanceof Error) return { kind: "error", message: value.message };
1575
+ const alternatives = boundedAlternatives(args.alternatives);
1576
+ if (alternatives instanceof Error) return { kind: "error", message: alternatives.message };
1577
+ const rationale = boundedText(args.rationale, "rationale", DECIDE_CAPS.rationaleBytes);
1578
+ if (rationale instanceof Error) return { kind: "error", message: rationale.message };
1579
+ let label;
1580
+ if (args.label !== void 0 && args.label !== null) {
1581
+ const bounded = boundedText(args.label, "label", DECIDE_CAPS.labelBytes);
1582
+ if (bounded instanceof Error) return { kind: "error", message: bounded.message };
1583
+ label = bounded;
1584
+ }
1585
+ if (deps.decisionBoard === void 0) {
1586
+ return { kind: "error", message: "decide: no session decision board is available in this context" };
1587
+ }
1588
+ let outcome;
1589
+ try {
1590
+ outcome = deps.decisionBoard.recordAgentDecision({
1591
+ key,
1592
+ value,
1593
+ alternatives,
1594
+ rationale,
1595
+ ...label !== void 0 ? { label } : {}
1596
+ });
1597
+ } catch (error) {
1598
+ return { kind: "error", message: error instanceof Error ? error.message : String(error) };
1599
+ }
1600
+ const ref = decisionRef(outcome.entry.interviewId, key);
1601
+ const supersededNote = outcome.superseded === null ? "" : ` (supersedes ${decisionRef(outcome.superseded.interviewId, outcome.superseded.key)})`;
1602
+ return {
1603
+ kind: "ok",
1604
+ output: `decision recorded: ${key} = ${value} [${ref}]${supersededNote}
1605
+ `,
1606
+ details: {
1607
+ decision: {
1608
+ ref,
1609
+ key,
1610
+ value,
1611
+ alternatives,
1612
+ rationale,
1613
+ ...label !== void 0 ? { label } : {},
1614
+ ...outcome.superseded !== null ? { superseded: decisionRef(outcome.superseded.interviewId, outcome.superseded.key) } : {}
1615
+ }
1616
+ }
1617
+ };
1618
+ }
1619
+ };
1620
+ }
1621
+
1489
1622
  // src/tools/edit.ts
1490
1623
  init_esm_shims();
1491
1624
  import { readFileSync, writeFileSync as writeFileSync2 } from "node:fs";
@@ -1493,10 +1626,10 @@ import { readFileSync, writeFileSync as writeFileSync2 } from "node:fs";
1493
1626
  // src/tools/edit-diff.ts
1494
1627
  init_esm_shims();
1495
1628
 
1496
- // node_modules/diff/libesm/index.js
1629
+ // node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/index.js
1497
1630
  init_esm_shims();
1498
1631
 
1499
- // node_modules/diff/libesm/diff/base.js
1632
+ // node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/base.js
1500
1633
  init_esm_shims();
1501
1634
  var Diff = class {
1502
1635
  diff(oldStr, newStr, options = {}) {
@@ -1699,10 +1832,10 @@ var Diff = class {
1699
1832
  }
1700
1833
  };
1701
1834
 
1702
- // node_modules/diff/libesm/diff/word.js
1835
+ // node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
1703
1836
  init_esm_shims();
1704
1837
 
1705
- // node_modules/diff/libesm/util/string.js
1838
+ // node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/util/string.js
1706
1839
  init_esm_shims();
1707
1840
  function longestCommonPrefix(str1, str2) {
1708
1841
  let i;
@@ -1831,7 +1964,7 @@ function leadingAndTrailingWs(string, segmenter) {
1831
1964
  return [head, tail];
1832
1965
  }
1833
1966
 
1834
- // node_modules/diff/libesm/diff/word.js
1967
+ // node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
1835
1968
  var extendedWordChars = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";
1836
1969
  var tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`, "ug");
1837
1970
  var WordDiff = class extends Diff {
@@ -1974,7 +2107,7 @@ function diffWordsWithSpace(oldStr, newStr, options) {
1974
2107
  return wordsWithSpaceDiff.diff(oldStr, newStr, options);
1975
2108
  }
1976
2109
 
1977
- // node_modules/diff/libesm/diff/line.js
2110
+ // node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/line.js
1978
2111
  init_esm_shims();
1979
2112
  var LineDiff = class extends Diff {
1980
2113
  constructor() {
@@ -2515,6 +2648,88 @@ var editTool = {
2515
2648
  }
2516
2649
  };
2517
2650
 
2651
+ // src/tools/evidence.ts
2652
+ init_esm_shims();
2653
+ var EVIDENCE_TOOL_MAX_BYTES = 16384;
2654
+ function boundedResult(value) {
2655
+ const serialized = JSON.stringify(value, null, 2);
2656
+ if (Buffer.byteLength(serialized, "utf8") <= EVIDENCE_TOOL_MAX_BYTES) {
2657
+ return { kind: "ok", output: serialized, details: { truncated: false } };
2658
+ }
2659
+ const hint = "Inspect one run to narrow the output; this preview is incomplete JSON text.";
2660
+ let preview = truncateUtf8(serialized, EVIDENCE_TOOL_MAX_BYTES, "");
2661
+ let output = JSON.stringify({ truncated: true, hint, preview });
2662
+ while (Buffer.byteLength(output, "utf8") > EVIDENCE_TOOL_MAX_BYTES) {
2663
+ const excess = Buffer.byteLength(output, "utf8") - EVIDENCE_TOOL_MAX_BYTES;
2664
+ preview = truncateUtf8(preview, Math.max(0, Buffer.byteLength(preview, "utf8") - excess), "");
2665
+ output = JSON.stringify({ truncated: true, hint, preview });
2666
+ }
2667
+ return { kind: "ok", output, details: { truncated: true } };
2668
+ }
2669
+ var evidenceTool = {
2670
+ name: ToolNames.Evidence,
2671
+ description: "Read canonical evidence as JSON. List recent bundles, inspect a bundle's overview, trust axes and tier, gate decisions, and findings, or build/read evidence for a run.",
2672
+ parameters: typebox_exports.Object({
2673
+ mode: StringEnum(["list", "inspect", "run"]),
2674
+ id: typebox_exports.Optional(typebox_exports.String({ description: "Evidence bundle id for inspect." })),
2675
+ runId: typebox_exports.Optional(typebox_exports.String({ description: "Run id for run." }))
2676
+ }),
2677
+ baseActionClass: "read",
2678
+ // Run mode may materialize a derived bundle in Clio's data directory.
2679
+ executionMode: "sequential",
2680
+ async run(args) {
2681
+ const mode = args.mode;
2682
+ if (mode !== "list" && mode !== "inspect" && mode !== "run") {
2683
+ return { kind: "error", message: "evidence: mode must be list, inspect, or run" };
2684
+ }
2685
+ try {
2686
+ const dataDir = clioDataDir();
2687
+ if (mode === "list") {
2688
+ const { evidenceInventorySnapshot } = await import("./inventory-K2OZ36YJ.js");
2689
+ return boundedResult(await evidenceInventorySnapshot(Date.now, dataDir));
2690
+ }
2691
+ const id = mode === "inspect" ? args.id : args.runId;
2692
+ if (typeof id !== "string" || id.length === 0) {
2693
+ return { kind: "error", message: `evidence: ${mode} requires ${mode === "inspect" ? "id" : "runId"}` };
2694
+ }
2695
+ assertSafeId(id, mode === "inspect" ? "evidence" : "run");
2696
+ const { buildEvidence, EvidenceNotFoundError, inspectEvidence, loadEvidenceGateDecisions } = await import("./evidence-DTGEN456.js");
2697
+ const { evidenceDetailSnapshot } = await import("./detail-5572VLBO.js");
2698
+ let evidenceId = mode === "run" ? `run-${id}` : id;
2699
+ let inspected;
2700
+ try {
2701
+ inspected = await inspectEvidence(dataDir, evidenceId);
2702
+ } catch (error) {
2703
+ if (mode !== "run" || !(error instanceof EvidenceNotFoundError)) throw error;
2704
+ try {
2705
+ evidenceId = (await buildEvidence({ dataDir, stateDir: clioStateDir(), runId: id })).evidenceId;
2706
+ } catch (buildError) {
2707
+ if (buildError instanceof Error && (buildError.message === "run ledger not found" || buildError.message === `run not found: ${id}`))
2708
+ throw new EvidenceNotFoundError(evidenceId);
2709
+ throw buildError;
2710
+ }
2711
+ inspected = await inspectEvidence(dataDir, evidenceId);
2712
+ }
2713
+ return boundedResult({
2714
+ ...inspected,
2715
+ ...await evidenceDetailSnapshot(evidenceId, Date.now, dataDir),
2716
+ gateDecisions: await loadEvidenceGateDecisions(dataDir, evidenceId)
2717
+ });
2718
+ } catch (error) {
2719
+ const absent = error instanceof Error && error.name === "EvidenceNotFoundError";
2720
+ return {
2721
+ kind: "error",
2722
+ message: truncateUtf8(
2723
+ `evidence: ${error instanceof Error ? error.message : String(error)}`,
2724
+ EVIDENCE_TOOL_MAX_BYTES - 3,
2725
+ "..."
2726
+ ),
2727
+ details: { code: absent ? "artifact_absent" : "evidence_error", artifactAbsent: absent }
2728
+ };
2729
+ }
2730
+ }
2731
+ };
2732
+
2518
2733
  // src/tools/find.ts
2519
2734
  init_esm_shims();
2520
2735
  import { existsSync, statSync } from "node:fs";
@@ -2729,11 +2944,13 @@ function renderFindResult(input) {
2729
2944
  if (ordered.paths.length === 0) {
2730
2945
  return finalizeObservation({
2731
2946
  tool: ToolNames.Find,
2947
+ withheldPaths: input.withheldPaths,
2732
2948
  unit: "paths",
2733
- output: "No files found matching pattern",
2949
+ output: "No visible files found matching pattern",
2734
2950
  shownCount: 0,
2735
- totalCount: 0,
2736
- truncated: false,
2951
+ totalCount: collected >= collectLimit ? null : 0,
2952
+ truncated: collected >= collectLimit,
2953
+ ...collected >= collectLimit ? { next: `limit=${limit * 2}` } : {},
2737
2954
  reservation,
2738
2955
  ...options ? { options } : {}
2739
2956
  });
@@ -2758,6 +2975,7 @@ function renderFindResult(input) {
2758
2975
  }
2759
2976
  return finalizeObservation({
2760
2977
  tool: ToolNames.Find,
2978
+ withheldPaths: input.withheldPaths,
2761
2979
  unit: "paths",
2762
2980
  output: truncation.content,
2763
2981
  // Offload only when the byte cap cut collected paths; a bare result
@@ -2827,10 +3045,14 @@ var findTool = {
2827
3045
  return { kind: "error", message: `find: ${message}` };
2828
3046
  }
2829
3047
  }
3048
+ const collectedCount = collectedPaths.length;
3049
+ const pathFilter = createObservationPathFilter(process.cwd(), options?.allowsObservationPath);
3050
+ collectedPaths = collectedPaths.filter((entry) => pathFilter.allows(join(searchPath, entry)));
2830
3051
  const ordered = order === "mtime" ? orderByMtime(collectedPaths, searchPath, limit, collectLimit) : { paths: collectedPaths.slice(0, limit), candidateCapHit: false, candidateCap: null };
2831
3052
  return renderFindResult({
3053
+ withheldPaths: pathFilter.withheldPaths,
2832
3054
  ordered,
2833
- collected: collectedPaths.length,
3055
+ collected: collectedCount,
2834
3056
  collectLimit,
2835
3057
  limit,
2836
3058
  order,
@@ -2880,6 +3102,7 @@ function renderGrepResult(input) {
2880
3102
  if (lines.length === 0) {
2881
3103
  return finalizeObservation({
2882
3104
  tool: ToolNames.Grep,
3105
+ withheldPaths: input.withheldPaths,
2883
3106
  unit: MODE_UNITS[mode],
2884
3107
  output: NO_MATCH_OUTPUT,
2885
3108
  shownCount: 0,
@@ -2910,6 +3133,7 @@ function renderGrepResult(input) {
2910
3133
  }
2911
3134
  return finalizeObservation({
2912
3135
  tool: ToolNames.Grep,
3136
+ withheldPaths: input.withheldPaths,
2913
3137
  unit: MODE_UNITS[mode],
2914
3138
  output,
2915
3139
  // Offload only when the byte cap cut collected content; a bare match
@@ -2965,6 +3189,7 @@ async function runRipgrep(input) {
2965
3189
  const lineNumber = data?.line_number;
2966
3190
  const lineText = data?.lines?.text;
2967
3191
  if (typeof filePath !== "string" || typeof lineNumber !== "number" || typeof lineText !== "string") return;
3192
+ if (!input.pathFilter.allows(filePath)) return;
2968
3193
  const { text, wasTruncated } = truncateLine(sanitizeMatchText(lineText));
2969
3194
  if (wasTruncated) linesTruncated = true;
2970
3195
  const isMatch = type === "match";
@@ -2983,6 +3208,8 @@ async function runRipgrep(input) {
2983
3208
  const onListLine = (line, stop) => {
2984
3209
  const trimmed = line.replace(/\r$/, "");
2985
3210
  if (trimmed.length === 0) return;
3211
+ const filePath = input.mode === "count" ? trimmed.slice(0, trimmed.lastIndexOf(":")) : trimmed;
3212
+ if (!input.pathFilter.allows(filePath)) return;
2986
3213
  let text;
2987
3214
  if (input.mode === "count") {
2988
3215
  const sep = trimmed.lastIndexOf(":");
@@ -3013,6 +3240,7 @@ async function runRipgrep(input) {
3013
3240
  return { kind: "error", message: `grep: ${result.stderr.trim() || `ripgrep exited with code ${result.exitCode}`}` };
3014
3241
  }
3015
3242
  return renderGrepResult({
3243
+ withheldPaths: input.pathFilter.withheldPaths,
3016
3244
  mode: input.mode,
3017
3245
  lines: rendered,
3018
3246
  matchCount,
@@ -3065,7 +3293,7 @@ function fallbackGrep(input) {
3065
3293
  rendered.push({ text: truncatedLine.text, isMatch });
3066
3294
  };
3067
3295
  const searchFile = (filePath) => {
3068
- if (limitHit) return;
3296
+ if (limitHit || !input.pathFilter.allows(filePath)) return;
3069
3297
  let buffer;
3070
3298
  try {
3071
3299
  const stat = statSync2(filePath);
@@ -3138,6 +3366,7 @@ function fallbackGrep(input) {
3138
3366
  else searchFile(input.searchPath);
3139
3367
  if (signal?.aborted) return { kind: "error", message: "grep: operation aborted" };
3140
3368
  return renderGrepResult({
3369
+ withheldPaths: input.pathFilter.withheldPaths,
3141
3370
  mode: input.mode,
3142
3371
  lines: rendered,
3143
3372
  matchCount,
@@ -3195,6 +3424,7 @@ var grepTool = {
3195
3424
  });
3196
3425
  }
3197
3426
  const shared = {
3427
+ pathFilter: createObservationPathFilter(process.cwd(), options?.allowsObservationPath),
3198
3428
  mode,
3199
3429
  pattern,
3200
3430
  searchPath,
@@ -3370,6 +3600,59 @@ ${output}`,
3370
3600
  };
3371
3601
  }
3372
3602
 
3603
+ // src/tools/limitation.ts
3604
+ init_esm_shims();
3605
+ var LIMITATION_REASONS = ["no-runner", "blocked", "out-of-scope", "environment", "other"];
3606
+ function isLimitationReason(value) {
3607
+ return typeof value === "string" && LIMITATION_REASONS.includes(value);
3608
+ }
3609
+ function trimString2(value) {
3610
+ if (typeof value !== "string") return null;
3611
+ const trimmed = value.trim();
3612
+ return trimmed.length > 0 ? trimmed : null;
3613
+ }
3614
+ function normalizePaths(value) {
3615
+ if (value === void 0 || value === null) return [];
3616
+ if (!Array.isArray(value)) return null;
3617
+ const paths = [];
3618
+ for (const item of value) {
3619
+ const path4 = trimString2(item);
3620
+ if (path4 === null) return null;
3621
+ if (!paths.includes(path4)) paths.push(path4);
3622
+ }
3623
+ return paths;
3624
+ }
3625
+ var limitationTool = {
3626
+ name: ToolNames.Limitation,
3627
+ description: "Record what this turn could not verify and why. Call it once, before your final reply, when you changed files but could not run validation; the receipt stands in for validation evidence at the finish gate.",
3628
+ parameters: typebox_exports.Object({
3629
+ scope: typebox_exports.String({ description: "What could not be verified, in one sentence." }),
3630
+ reason: StringEnum(LIMITATION_REASONS, {
3631
+ description: "no-runner: no test or build runner is available; blocked: a safety gate or denial stopped the check; out-of-scope: verification was excluded by the task; environment: the environment cannot run the check; other."
3632
+ }),
3633
+ paths: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String(), { description: "Repository-relative paths left unverified." }))
3634
+ }),
3635
+ baseActionClass: "read",
3636
+ executionMode: "parallel",
3637
+ async run(args) {
3638
+ const scope = trimString2(args.scope);
3639
+ if (scope === null) return { kind: "error", message: "limitation: scope is required" };
3640
+ if (!isLimitationReason(args.reason)) {
3641
+ return { kind: "error", message: `limitation: reason must be one of ${LIMITATION_REASONS.join(", ")}` };
3642
+ }
3643
+ const paths = normalizePaths(args.paths);
3644
+ if (paths === null) return { kind: "error", message: "limitation: paths must be an array of non-empty strings" };
3645
+ const limitation = { scope, reason: args.reason, paths };
3646
+ const pathSuffix = paths.length > 0 ? ` paths=${paths.join(",")}` : "";
3647
+ return {
3648
+ kind: "ok",
3649
+ output: `limitation recorded: ${scope} (reason=${limitation.reason}${pathSuffix})
3650
+ `,
3651
+ details: { limitation }
3652
+ };
3653
+ }
3654
+ };
3655
+
3373
3656
  // src/tools/ls.ts
3374
3657
  init_esm_shims();
3375
3658
  import { readdirSync as readdirSync2, statSync as statSync3 } from "node:fs";
@@ -3411,7 +3694,8 @@ var lsTool = {
3411
3694
  });
3412
3695
  }
3413
3696
  try {
3414
- const entries = readdirSync2(root).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase()));
3697
+ const pathFilter = createObservationPathFilter(process.cwd(), options?.allowsObservationPath);
3698
+ const entries = readdirSync2(root).filter((entry) => pathFilter.allows(path3.join(root, entry))).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase()));
3415
3699
  const outputEntries = [];
3416
3700
  let entryLimitReached = false;
3417
3701
  for (const entry of entries) {
@@ -3428,6 +3712,7 @@ var lsTool = {
3428
3712
  if (outputEntries.length === 0) {
3429
3713
  return finalizeObservation({
3430
3714
  tool: ToolNames.Ls,
3715
+ withheldPaths: pathFilter.withheldPaths,
3431
3716
  unit: "entries",
3432
3717
  output: "(empty directory)",
3433
3718
  shownCount: 0,
@@ -3445,6 +3730,7 @@ var lsTool = {
3445
3730
  const truncated = entryLimitReached || truncation.truncated;
3446
3731
  return finalizeObservation({
3447
3732
  tool: ToolNames.Ls,
3733
+ withheldPaths: pathFilter.withheldPaths,
3448
3734
  unit: "entries",
3449
3735
  output: truncation.content,
3450
3736
  // Offload only when the byte cap cut collected entries; a bare
@@ -3467,6 +3753,7 @@ var lsTool = {
3467
3753
  // src/tools/policy.ts
3468
3754
  init_esm_shims();
3469
3755
  var TOOL_PLANES = {
3756
+ [ToolNames.Evidence]: { plane: "observe", actionClass: "read", executionMode: "sequential" },
3470
3757
  [ToolNames.Read]: { plane: "observe", actionClass: "read", executionMode: "parallel" },
3471
3758
  [ToolNames.Grep]: { plane: "observe", actionClass: "read", executionMode: "parallel" },
3472
3759
  [ToolNames.Find]: { plane: "observe", actionClass: "read", executionMode: "parallel" },
@@ -3499,6 +3786,14 @@ var TOOL_PLANES = {
3499
3786
  // panes. It mutates no workspace, so it stays read class; sequential because
3500
3787
  // two pane operations in one batch would race the same pane registry.
3501
3788
  [ToolNames.Panes]: { plane: "orchestrate", actionClass: "read", executionMode: "sequential" },
3789
+ // limitation records a typed receipt in the session ledger and nothing
3790
+ // else: no filesystem, no shell. Read class so it never trips a safety
3791
+ // gate; parallel because the call is pure and idempotent.
3792
+ [ToolNames.Limitation]: { plane: "orchestrate", actionClass: "read", executionMode: "parallel" },
3793
+ // decide appends one decision-board entry to the session ledger and
3794
+ // nothing else. Read class so it never trips a safety gate; sequential so
3795
+ // two decisions in one batch never race the supersede lookup.
3796
+ [ToolNames.Decide]: { plane: "orchestrate", actionClass: "read", executionMode: "sequential" },
3502
3797
  [ToolNames.WebFetch]: { plane: "retrieve", actionClass: "read", executionMode: "parallel" },
3503
3798
  [ToolNames.AskUser]: { plane: "interact", actionClass: "read", executionMode: "sequential" },
3504
3799
  [ToolNames.Artifact]: { plane: "artifact", actionClass: "write", executionMode: "sequential" }
@@ -3593,7 +3888,7 @@ var STATUS_MARK = {
3593
3888
  };
3594
3889
  function waitingTrailer(tasks) {
3595
3890
  return tasks.filter((task) => task.status === "open" || task.status === "handed").map(
3596
- (task) => `operator tasks waiting: ${task.id} ${JSON.stringify(task.title)} \u2014 pick up with action="pick" id="${task.id}"`
3891
+ (task) => `operator tasks waiting: ${task.id} ${JSON.stringify(task.title)} \u2014 durable status=${task.status}; not completed; pick only if this is the intended operator task, with action="pick" id="${task.id}" before work`
3597
3892
  );
3598
3893
  }
3599
3894
  function renderTaskBoardText(board, userTasks = []) {
@@ -3605,9 +3900,28 @@ function renderTaskBoardText(board, userTasks = []) {
3605
3900
  if (task.status === "blocked" && task.reason) line += ` \u2014 blocked: ${task.reason}`;
3606
3901
  if (task.status === "cancelled" && task.reason) line += ` \u2014 dropped: ${task.reason}`;
3607
3902
  lines.push(line);
3903
+ const operatorTask = userTasks.find((item) => item.id === task.userTaskId);
3904
+ if (task.userTaskId) {
3905
+ lines.push(
3906
+ ` operator task ${task.userTaskId}: durable status=${operatorTask?.status ?? "unavailable"}; session=${operatorTask?.handedSessionId ?? "unlinked"}; board task=${operatorTask?.boardTaskId ?? "unlinked"}`
3907
+ );
3908
+ }
3909
+ const outputs = operatorTask?.acceptance?.expectedOutputs;
3910
+ if (outputs?.length) lines.push(` expected outputs: ${outputs.join(", ")}`);
3911
+ for (const item of task.requiredValidationEvidence ?? []) {
3912
+ if (item.status === "required") {
3913
+ lines.push(
3914
+ ` acceptance requirement: ${item.command} (${item.notes}; declaration only; execution status is in verification receipts)`
3915
+ );
3916
+ } else {
3917
+ lines.push(` acceptance: ${item.command} (${item.status}; ${item.notes})`);
3918
+ }
3919
+ }
3608
3920
  }
3609
3921
  if (counts.open > 0 && counts.active === 0) {
3610
- lines.push(`next: start a task with action="start" before working it`);
3922
+ lines.push(
3923
+ `next: start only an authorized task with action="start" before working it; block proposed implementation with a note naming the pending operator decision, or drop it, and wait`
3924
+ );
3611
3925
  }
3612
3926
  lines.push(...waitingTrailer(userTasks));
3613
3927
  return lines.join("\n");
@@ -3672,7 +3986,7 @@ function createTasksTool(deps) {
3672
3986
  };
3673
3987
  return {
3674
3988
  name: ToolNames.Tasks,
3675
- description: "Session task board. plan declares a titled board (replaces any prior board); add appends tasks; pick moves one operator task uN onto the board; start marks one task active (the current focus); done completes a task (started or still pending) and requires note as the evidence the work actually finished; block parks it with a required reason; drop cancels it; list shows the board. Work that did not happen is blocked or dropped, never done.",
3989
+ description: "Session task board. plan declares a titled board (replaces any prior board); add appends tasks; pick moves one operator task uN onto the board; start marks one task active (the current focus); done completes a task (started or still pending) and requires note as the evidence the work actually finished; block parks it with a required reason; drop cancels it; list shows the board. For an operator handoff, pick the intended uN before work and use its returned linked tN; CLI hand alone does not pick it. Never pick unrelated inbox tasks. Before claiming operator completion, list and confirm the linked board row is completed and the durable operator status is done with the same session/board link; report those IDs and actual states. Work that did not happen is blocked or dropped, never done. A self-created plan is not operator authorization. For proposal-only work, block deferred implementation with note naming the pending operator decision, or drop it; wait for an explicit operator go-ahead before start or implementation. A skill-install choice does not grant that go-ahead.",
3676
3990
  parameters: typebox_exports.Object({
3677
3991
  action: StringEnum(TASKS_ACTIONS, { description: "Board action." }),
3678
3992
  title: typebox_exports.Optional(typebox_exports.String({ description: "Board title (plan)." })),
@@ -3716,7 +4030,10 @@ function createTasksTool(deps) {
3716
4030
  if (typedAction === "list") {
3717
4031
  const board = deps.board.snapshot();
3718
4032
  if (!board) {
3719
- const output2 = ['no task board yet; declare one with action="plan"', ...waitingTrailer(userTasks)].join("\n");
4033
+ const output2 = [
4034
+ 'no task board yet; for an operator handoff, pick the intended uN before work; otherwise declare one with action="plan"',
4035
+ ...waitingTrailer(userTasks)
4036
+ ].join("\n");
3720
4037
  return {
3721
4038
  kind: "ok",
3722
4039
  output: output2,
@@ -3738,7 +4055,12 @@ function createTasksTool(deps) {
3738
4055
  if (userTask.status !== "open" && userTask.status !== "handed") {
3739
4056
  return { kind: "error", message: `tasks: operator task ${id} is ${userTask.status}; it cannot be picked` };
3740
4057
  }
3741
- const result2 = deps.board.apply({ op: "pick", title: userTask.title, userTaskId: userTask.id });
4058
+ const result2 = deps.board.apply({
4059
+ op: "pick",
4060
+ title: userTask.title,
4061
+ userTaskId: userTask.id,
4062
+ ...userTask.acceptance ? { verification: userTask.acceptance.verification } : {}
4063
+ });
3742
4064
  if (!result2.ok) return { kind: "error", message: `tasks: ${result2.message}` };
3743
4065
  const picked = result2.board.tasks.find((task) => task.userTaskId === userTask.id && task.status === "pending");
3744
4066
  if (!picked) return { kind: "error", message: `tasks: durable pickup for ${id} did not produce a board row` };
@@ -3840,6 +4162,7 @@ note: ${pathArg} no longer ends with a newline; the previous content did`;
3840
4162
  // src/tools/core-bootstrap.ts
3841
4163
  function registerCoreTools(registry, deps = {}) {
3842
4164
  const includeNetworkTools = !networkToolsDisabled();
4165
+ registry.register(builtin(evidenceTool, { path: "src/tools/evidence.ts", scope: "core" }));
3843
4166
  registry.register({
3844
4167
  ...builtin(readTool, { path: "src/tools/read.ts", scope: "core" })
3845
4168
  });
@@ -3864,7 +4187,7 @@ function registerCoreTools(registry, deps = {}) {
3864
4187
  if (includeNetworkTools) {
3865
4188
  registry.register({
3866
4189
  ...builtin(
3867
- lazyTool(webFetchToolSurface, async () => (await import("./web-fetch-MPARV2K7.js")).webFetchTool),
4190
+ lazyTool(webFetchToolSurface, async () => (await import("./web-fetch-MQN4FH3X.js")).webFetchTool),
3868
4191
  { path: "src/tools/web-fetch.ts", scope: "core" }
3869
4192
  )
3870
4193
  });
@@ -3874,13 +4197,13 @@ function registerCoreTools(registry, deps = {}) {
3874
4197
  });
3875
4198
  registry.register({
3876
4199
  ...builtin(
3877
- lazyTool(verifyToolSurface, async () => (await import("./verify-RWE4PPEK.js")).verifyTool),
4200
+ lazyTool(verifyToolSurface, async () => (await import("./verify-3AS3ULCY.js")).verifyTool),
3878
4201
  { path: "src/tools/verify/index.ts", scope: "core" }
3879
4202
  )
3880
4203
  });
3881
4204
  registry.register({
3882
4205
  ...builtin(
3883
- lazyTool(codeNavToolSurface, async () => (await import("./code-nav-MDZNQS33.js")).codeNavTool),
4206
+ lazyTool(codeNavToolSurface, async () => (await import("./code-nav-YXIAEZVS.js")).codeNavTool),
3884
4207
  { path: "src/tools/codewiki/code-nav.ts", scope: "core" }
3885
4208
  )
3886
4209
  });
@@ -3900,14 +4223,23 @@ function registerCoreTools(registry, deps = {}) {
3900
4223
  registry.register({
3901
4224
  ...builtin(credentialPresentTool, { path: "src/tools/credential-present.ts", scope: "core" })
3902
4225
  });
4226
+ registry.register({
4227
+ ...builtin(limitationTool, { path: "src/tools/limitation.ts", scope: "core" })
4228
+ });
4229
+ registry.register({
4230
+ ...builtin(createDecideTool(deps.decisionBoard ? { decisionBoard: deps.decisionBoard } : {}), {
4231
+ path: "src/tools/decide.ts",
4232
+ scope: "core"
4233
+ })
4234
+ });
3903
4235
  const session = deps.session;
3904
4236
  const readSessionEntries = deps.readSessionEntries;
3905
4237
  registry.register({
3906
4238
  ...builtin(
3907
4239
  lazyTool(contextToolSurface, async () => {
3908
- const { createContextTool } = await import("./context-VNCR7KAG.js");
4240
+ const { createContextTool } = await import("./context-QQ53HSGJ.js");
3909
4241
  if (!session) return createContextTool(skillToolDeps);
3910
- const { probeWorkspace } = await import("./workspace-ZJ6BFM3Q.js");
4242
+ const { probeWorkspace } = await import("./workspace-DZ7JADBG.js");
3911
4243
  return createContextTool({
3912
4244
  ...skillToolDeps,
3913
4245
  ...readSessionEntries ? {
@@ -4003,4 +4335,4 @@ export {
4003
4335
  registerCoreTools,
4004
4336
  assertRegisteredBuiltinTools
4005
4337
  };
4006
- //# sourceMappingURL=chunk-GI7YYQ3F.js.map
4338
+ //# sourceMappingURL=chunk-U2JOLB7O.js.map