@iowarp/clio-coder 0.4.4 → 0.4.6

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 (598) hide show
  1. package/CHANGELOG.md +116 -2
  2. package/CONTRIBUTING.md +39 -24
  3. package/NOTICE +16 -0
  4. package/README.md +343 -403
  5. package/dist/{acp-WNAYYF4F.js → acp-UVEVWSDL.js} +25 -24
  6. package/dist/{agents-3OKXHLOI.js → agents-VWY37DTK.js} +78 -77
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-VKNNMGPU.js → auth-PCV2XQDV.js} +38 -38
  9. package/dist/builtins-PD652MTK.js +22 -0
  10. package/dist/{chunk-TQAHXW6Y.js → chunk-22PQ4TX4.js} +4 -4
  11. package/dist/{chunk-NRO2BJRH.js → chunk-24T2YZ7A.js} +10686 -4464
  12. package/dist/{chunk-Y55JBDO5.js → chunk-2AKYFREM.js} +38 -23
  13. package/dist/{chunk-NEDJ26B5.js → chunk-2GPGAE5W.js} +6 -51
  14. package/dist/{chunk-IKCO5N3L.js → chunk-2QPI3TR3.js} +3 -3
  15. package/dist/{chunk-HRQMFLJP.js → chunk-32KJPXAM.js} +6 -6
  16. package/dist/{chunk-65DEGPJ6.js → chunk-3A3CUMKA.js} +6 -4
  17. package/dist/{chunk-UXCU4E3T.js → chunk-3BJGMT2D.js} +35 -14
  18. package/dist/{chunk-5ICU3EUH.js → chunk-3HQVBIKD.js} +5 -5
  19. package/dist/{chunk-GWZNEVM2.js → chunk-3JLFK5MW.js} +9 -9
  20. package/dist/{chunk-XXYSBZIQ.js → chunk-3O2ZAUGQ.js} +4 -4
  21. package/dist/{chunk-GX5WYQO4.js → chunk-3QKXHCGS.js} +8 -8
  22. package/dist/{chunk-JCI2ROMZ.js → chunk-3T4DXWP6.js} +7 -7
  23. package/dist/{chunk-DR52UMZW.js → chunk-3UW3KU4A.js} +2 -2
  24. package/dist/{chunk-OEJSLEPW.js → chunk-3WBALRQH.js} +337 -337
  25. package/dist/{chunk-ELWDPP3Y.js → chunk-4DU2TVI4.js} +8 -8
  26. package/dist/{chunk-JSD46VO2.js → chunk-4U4TKZFR.js} +43 -36
  27. package/dist/{chunk-FEAXX7B6.js → chunk-4VMV6OS6.js} +4 -4
  28. package/dist/{chunk-2ZSONWVL.js → chunk-536HXRFE.js} +13 -13
  29. package/dist/{chunk-W54I7H25.js → chunk-5A6XR3RJ.js} +44 -19
  30. package/dist/{chunk-YPC6ZR5L.js → chunk-5CMARGPF.js} +119 -5
  31. package/dist/{chunk-KXDSS5WJ.js → chunk-5CY4Q6QI.js} +4 -4
  32. package/dist/{chunk-D4CJV46V.js → chunk-5GZICIYO.js} +3 -3
  33. package/dist/{chunk-4IUZQIJ3.js → chunk-5PHVPU4G.js} +2 -2
  34. package/dist/{chunk-Q4WO54TA.js → chunk-5QRX7SLS.js} +11 -11
  35. package/dist/{chunk-3ODX73FK.js → chunk-5VTJP36Q.js} +4 -4
  36. package/dist/chunk-5ZSZEYJK.js +119 -0
  37. package/dist/{chunk-EBY63B7G.js → chunk-6EXUUOSN.js} +2 -2
  38. package/dist/{chunk-DT3LWJOB.js → chunk-6HAO6X5B.js} +24 -6
  39. package/dist/{chunk-SVNXH4L2.js → chunk-6ICZKDUC.js} +2 -2
  40. package/dist/{chunk-K6T2ZAMZ.js → chunk-6OII3LOK.js} +6 -6
  41. package/dist/{chunk-36CT5VVL.js → chunk-6RYDAVQT.js} +138 -89
  42. package/dist/{chunk-I7XBWTYH.js → chunk-6VRRJT7L.js} +5 -5
  43. package/dist/{chunk-DQOVN6KV.js → chunk-6YA46L5A.js} +4 -4
  44. package/dist/{chunk-NZMNUPZZ.js → chunk-77CZRFTE.js} +3 -3
  45. package/dist/{chunk-NAI6ZFCY.js → chunk-7JSSKXG2.js} +122 -11
  46. package/dist/{chunk-2VTFPG5O.js → chunk-7WLRF2U5.js} +2 -2
  47. package/dist/chunk-7WUZEB2M.js +165 -0
  48. package/dist/{chunk-3UUXNFEX.js → chunk-7YJWEF2L.js} +61 -34
  49. package/dist/{chunk-3EBYEESD.js → chunk-A46ILRS2.js} +5 -5
  50. package/dist/{chunk-IXIY2H4R.js → chunk-ACCKVSHU.js} +5 -5
  51. package/dist/{chunk-UOIZ7DA4.js → chunk-AP7HDJOP.js} +2 -2
  52. package/dist/{chunk-JEIYHLOR.js → chunk-B3MOMLJ4.js} +12 -12
  53. package/dist/{chunk-APJ265NV.js → chunk-B5GGDIHT.js} +146 -146
  54. package/dist/{chunk-PMZVFWSR.js → chunk-B5ZTR6KZ.js} +2 -2
  55. package/dist/{chunk-I5FWO7L5.js → chunk-B6UM3OZC.js} +2 -2
  56. package/dist/{chunk-2CU2H6KE.js → chunk-BBV5TKE6.js} +5 -5
  57. package/dist/{chunk-23L32XTI.js → chunk-BLTEAUCB.js} +68 -39
  58. package/dist/{chunk-4O6MANBS.js → chunk-BS4GAMUB.js} +14 -10
  59. package/dist/{chunk-XULDXHTN.js → chunk-BT7HGDOX.js} +105 -53
  60. package/dist/{chunk-S66XZJOF.js → chunk-C27U2TYG.js} +2 -2
  61. package/dist/{chunk-QZWQA4DE.js → chunk-CBSKDFWL.js} +3 -3
  62. package/dist/{chunk-2LEAKD4C.js → chunk-CKK25WN3.js} +3 -3
  63. package/dist/{chunk-BYP5D4HI.js → chunk-CTTI7G3T.js} +2 -2
  64. package/dist/{chunk-XAKHZX5N.js → chunk-CVDAFGPW.js} +4 -4
  65. package/dist/{chunk-RKKLTLYB.js → chunk-CXQ37WJH.js} +3 -3
  66. package/dist/{chunk-GTUD2WMY.js → chunk-DBREN25X.js} +44 -9
  67. package/dist/{chunk-NDDGJUXD.js → chunk-DNCE23JJ.js} +2 -2
  68. package/dist/{chunk-HVDIIIQW.js → chunk-DNHVRBH4.js} +3 -3
  69. package/dist/{chunk-D7E7WCDF.js → chunk-DVNAPPXU.js} +2 -2
  70. package/dist/{chunk-6UINWWS6.js → chunk-DXLUVUD4.js} +16 -16
  71. package/dist/{chunk-YXLYO42X.js → chunk-DXVMLM3Z.js} +3 -2
  72. package/dist/{chunk-5MEZN6CB.js → chunk-DZK63TZJ.js} +6 -6
  73. package/dist/{chunk-IWHMRKLL.js → chunk-E3LEPLQ2.js} +2 -2
  74. package/dist/{chunk-JT2RFCC5.js → chunk-E7RF4KBO.js} +5 -5
  75. package/dist/{chunk-3R73A4XB.js → chunk-ECBHH7LU.js} +3 -3
  76. package/dist/chunk-ECOMVOHP.js +139 -0
  77. package/dist/chunk-EFSEIZE6.js +56 -0
  78. package/dist/{chunk-4NSRCOYP.js → chunk-EHOSNVVM.js} +3 -2
  79. package/dist/chunk-EM2WNQS2.js +93 -0
  80. package/dist/{chunk-57XXR6DR.js → chunk-F5Z7EWMN.js} +967 -246
  81. package/dist/{chunk-HAXOFFRH.js → chunk-FQOOGXBH.js} +7 -7
  82. package/dist/{chunk-ZTJUVLTU.js → chunk-FXFVDPWY.js} +2 -2
  83. package/dist/{chunk-XPLRXC72.js → chunk-GD55RTIW.js} +3 -3
  84. package/dist/{chunk-5B2AEOW5.js → chunk-GH5ZR6JP.js} +472 -472
  85. package/dist/{chunk-TOIVGRUX.js → chunk-GJ24ODAX.js} +5 -5
  86. package/dist/{chunk-EXLD33WO.js → chunk-GLYBJ4RQ.js} +24 -9
  87. package/dist/{chunk-26QSH3EJ.js → chunk-HHVJNVUJ.js} +5 -5
  88. package/dist/{chunk-F4EKGO4N.js → chunk-HL26ADLH.js} +4 -2
  89. package/dist/{chunk-FFUPXJC4.js → chunk-HPTJF6DG.js} +32 -56
  90. package/dist/{chunk-ID64D7PE.js → chunk-HXHFDHB6.js} +24 -24
  91. package/dist/{chunk-CUSRQKPU.js → chunk-HZ2T2YED.js} +299 -89
  92. package/dist/{chunk-YD5GIKET.js → chunk-HZFBVU5X.js} +49 -580
  93. package/dist/{chunk-6QOTUPRG.js → chunk-I2K2NCZQ.js} +65 -17
  94. package/dist/{chunk-SZAA6XDG.js → chunk-IFDRAD6F.js} +2 -2
  95. package/dist/{chunk-I2DWJ4GM.js → chunk-IGLVVNEG.js} +54 -42
  96. package/dist/{chunk-6Q3CYFD3.js → chunk-IKRWLEDA.js} +186 -35
  97. package/dist/{chunk-2JH2WHGE.js → chunk-J2FYEQ5L.js} +4 -4
  98. package/dist/{chunk-BMS5RKQY.js → chunk-JABWPKFY.js} +3 -3
  99. package/dist/{chunk-2DSOYNFC.js → chunk-JMPL7NUB.js} +7 -7
  100. package/dist/{chunk-QDC3K2U3.js → chunk-K2BLQC5E.js} +3 -3
  101. package/dist/{chunk-AUPNRN7C.js → chunk-K2HL3GBL.js} +4 -4
  102. package/dist/{chunk-54X7T7DK.js → chunk-KAFMW7WM.js} +72 -81
  103. package/dist/{chunk-OZNBF4L3.js → chunk-KECNXMDE.js} +2 -2
  104. package/dist/{chunk-BTK3SSSK.js → chunk-KMF54VH3.js} +2 -2
  105. package/dist/chunk-KPRLAMP4.js +32 -0
  106. package/dist/{chunk-ECH6PKUQ.js → chunk-KQ6IDQIB.js} +2 -2
  107. package/dist/{chunk-3UNOLWNZ.js → chunk-KTFSFCVN.js} +20 -9
  108. package/dist/{chunk-IRXAATOX.js → chunk-L4N3DWNW.js} +3 -3
  109. package/dist/{chunk-JQLNNIKT.js → chunk-LIN2K3EL.js} +6 -6
  110. package/dist/{chunk-2STGEDFV.js → chunk-LK2FN5JY.js} +2 -2
  111. package/dist/{chunk-LCGCVYZ4.js → chunk-LQTKDAUO.js} +2 -2
  112. package/dist/{chunk-U6TMQNSI.js → chunk-LTR5QCLS.js} +4 -4
  113. package/dist/chunk-LUL5Z66S.js +221 -0
  114. package/dist/{chunk-ELZVTCGV.js → chunk-LVFANMOH.js} +151 -327
  115. package/dist/{chunk-H7IXIC72.js → chunk-LY4N4TTL.js} +17 -3
  116. package/dist/{chunk-VKPAQYEB.js → chunk-LZBMXNLP.js} +5 -5
  117. package/dist/{chunk-UL3WSD3F.js → chunk-M4KFUXS7.js} +2 -2
  118. package/dist/{chunk-NXYCB2VD.js → chunk-M6TAYK66.js} +6 -6
  119. package/dist/{chunk-CFGTUFWB.js → chunk-MCJKEGHO.js} +2 -2
  120. package/dist/{chunk-6XLNIQDB.js → chunk-MYI32N4R.js} +2 -2
  121. package/dist/{chunk-4WR7VSYB.js → chunk-N2OKBREN.js} +23 -9
  122. package/dist/{chunk-3GY4F45V.js → chunk-NC4KV7EL.js} +6 -6
  123. package/dist/{chunk-LLXSDWXS.js → chunk-NF3BK5WR.js} +5 -5
  124. package/dist/{chunk-4M6Z5QVF.js → chunk-NNWJYUNO.js} +11 -11
  125. package/dist/chunk-NTK3WTHM.js +141 -0
  126. package/dist/{chunk-GYV6VZOC.js → chunk-NTTS3O53.js} +2 -2
  127. package/dist/{chunk-4BJ5BYCE.js → chunk-O3VV6IVK.js} +2 -2
  128. package/dist/{chunk-W6GROXXM.js → chunk-O5F25NIE.js} +2 -2
  129. package/dist/{chunk-NXIMQY5W.js → chunk-ODUTYZIU.js} +5 -5
  130. package/dist/{chunk-KFV5L5SK.js → chunk-OQM5IVJY.js} +118 -232
  131. package/dist/{chunk-75W7L2E2.js → chunk-P5JMBPDJ.js} +1052 -171
  132. package/dist/{chunk-XRZT5WY5.js → chunk-P5SC4DLJ.js} +4 -4
  133. package/dist/{chunk-S6PYF2XF.js → chunk-P6M7RKMI.js} +4 -4
  134. package/dist/{chunk-R6Q67RJH.js → chunk-PECBKCDK.js} +34 -6
  135. package/dist/{chunk-33YXPOE3.js → chunk-PPEZJWUG.js} +2 -2
  136. package/dist/{chunk-RXTN6AKH.js → chunk-PWWSIB2A.js} +5 -5
  137. package/dist/{chunk-DXKJURES.js → chunk-PZN2LQY6.js} +14 -11
  138. package/dist/{chunk-N56KALIC.js → chunk-Q7NNUHQV.js} +62 -35
  139. package/dist/{chunk-RQCKCSRL.js → chunk-QCOV5DFY.js} +22 -22
  140. package/dist/{chunk-3DPEIQKN.js → chunk-QH3ZTUOA.js} +2 -2
  141. package/dist/{chunk-NEKRRTYW.js → chunk-QJMRYTCX.js} +8 -8
  142. package/dist/{chunk-YNFKXPEC.js → chunk-QNWRHOMF.js} +35 -66
  143. package/dist/{chunk-YAKGTXEV.js → chunk-QRFXEO6Y.js} +2 -2
  144. package/dist/{chunk-35MSIRKH.js → chunk-QUIJZSDW.js} +2 -2
  145. package/dist/{chunk-72YIHOZQ.js → chunk-QXFBABFJ.js} +10 -10
  146. package/dist/chunk-R2CT5YDO.js +66 -0
  147. package/dist/{chunk-HHV2GANA.js → chunk-R2P2U3ZS.js} +2 -2
  148. package/dist/{chunk-IGLP3ODT.js → chunk-RGZNQ5CT.js} +15 -15
  149. package/dist/chunk-SD7SHNDW.js +15 -0
  150. package/dist/chunk-SL2RDHKO.js +19 -0
  151. package/dist/{chunk-NUGM5KR6.js → chunk-SRCEQKQS.js} +2 -2
  152. package/dist/{chunk-OMQNJVKW.js → chunk-SRZOW5L2.js} +43 -13
  153. package/dist/{chunk-UEPWCCTY.js → chunk-SXQKNKRA.js} +12 -12
  154. package/dist/{chunk-3M6DQK6S.js → chunk-T334FW2H.js} +7 -7
  155. package/dist/{chunk-V76WTFTW.js → chunk-T52TPHYC.js} +6 -6
  156. package/dist/{chunk-5636DCO5.js → chunk-TJFDL26W.js} +59 -12
  157. package/dist/{chunk-3I7MS7N2.js → chunk-TK2BMCBZ.js} +2 -2
  158. package/dist/{chunk-5OIVVPHF.js → chunk-TN5FW4XY.js} +13 -6
  159. package/dist/{chunk-LL4KHSZI.js → chunk-U2MSJ57E.js} +2 -2
  160. package/dist/{chunk-FTMGRKEF.js → chunk-U44YYLVV.js} +4 -4
  161. package/dist/{chunk-YECAMM3D.js → chunk-U7H5WRG5.js} +5 -5
  162. package/dist/{chunk-5TUB6SLS.js → chunk-UFYNOQK4.js} +7 -7
  163. package/dist/{chunk-R346GLFC.js → chunk-UHW5V7HC.js} +2 -2
  164. package/dist/{chunk-VIA6RFQZ.js → chunk-UQIVHSE4.js} +4 -4
  165. package/dist/{chunk-RAY4OVGZ.js → chunk-URBGEOH3.js} +5 -5
  166. package/dist/chunk-USZA7GWL.js +341 -0
  167. package/dist/{chunk-ZA4VCIGV.js → chunk-UUQ5G6EZ.js} +60 -41
  168. package/dist/{chunk-VG7TBQIY.js → chunk-V552WL53.js} +68 -4
  169. package/dist/{chunk-7UGL4MB5.js → chunk-VAHLPXPY.js} +10 -10
  170. package/dist/{chunk-25QBEXRS.js → chunk-VANN3GDP.js} +7 -26
  171. package/dist/{chunk-BWH6N36D.js → chunk-VHKTOLEW.js} +272 -42
  172. package/dist/{chunk-QUFRYSWI.js → chunk-VHMX7SXF.js} +129 -48
  173. package/dist/{chunk-336NSSKI.js → chunk-VNBICSS2.js} +2 -2
  174. package/dist/{chunk-VAVR4IJY.js → chunk-VQD7NH7Z.js} +3 -3
  175. package/dist/{chunk-LBMZMYH2.js → chunk-W2RJEH6Q.js} +3 -3
  176. package/dist/{chunk-7CR24IG7.js → chunk-WDV62RKY.js} +2 -2
  177. package/dist/{chunk-BJVFZO5U.js → chunk-WJIMKGD6.js} +7 -7
  178. package/dist/{chunk-USR47QNF.js → chunk-WKUYQBCG.js} +14 -14
  179. package/dist/{chunk-GHS5EBTQ.js → chunk-WNGF5AJX.js} +36 -22
  180. package/dist/{chunk-MXHC5QYU.js → chunk-WTQGRBHV.js} +5 -144
  181. package/dist/{chunk-6OSVSQL5.js → chunk-WV6TDAPN.js} +41 -23
  182. package/dist/chunk-WXA2CFJO.js +23 -0
  183. package/dist/{chunk-2ASED4PZ.js → chunk-X3BI7HTV.js} +26 -26
  184. package/dist/{chunk-QSNYB6ZV.js → chunk-XCUDZQLX.js} +3 -3
  185. package/dist/{chunk-RZDWV63N.js → chunk-XWMSPJYN.js} +6 -6
  186. package/dist/chunk-YGDMBK7O.js +567 -0
  187. package/dist/{chunk-6PAZTBPA.js → chunk-YPRSNUTC.js} +15 -6
  188. package/dist/{chunk-2IR2NMPA.js → chunk-ZIDFQJRB.js} +2 -2
  189. package/dist/{chunk-LTIKRKFL.js → chunk-ZS43Y2FT.js} +4 -4
  190. package/dist/{chunk-6EJMN2Y3.js → chunk-ZTNFYMIO.js} +2 -2
  191. package/dist/{chunk-WEPFGWHJ.js → chunk-ZZFWWYLX.js} +2 -2
  192. package/dist/cli/index.js +44 -44
  193. package/dist/clio-QQCMTUZE.js +26 -0
  194. package/dist/{code-nav-IJR2DBPR.js → code-nav-GUPM6766.js} +48 -32
  195. package/dist/codewiki/build-worker.js +76 -29
  196. package/dist/{compile-cache-OQAVB7Y5.js → compile-cache-WJEPUZEJ.js} +4 -4
  197. package/dist/{components-2TGAI2RC.js → components-TNIKXCBH.js} +13 -13
  198. package/dist/{config-IUA6OYNS.js → config-IIM7YOD3.js} +211 -124
  199. package/dist/configure-4ZM5HWJX.js +73 -0
  200. package/dist/{context-BOYF5EJM.js → context-44BZLJ3J.js} +62 -31
  201. package/dist/{context-4MPR7WKB.js → context-AIDVQKMW.js} +126 -121
  202. package/dist/{context-2DKHWH2T.js → context-OL5P3HEP.js} +92 -62
  203. package/dist/context-clear-OQV76MYP.js +184 -0
  204. package/dist/{context-index-HNG3MOME.js → context-index-HP2JFUWA.js} +13 -11
  205. package/dist/{context-map-COB37XXN.js → context-map-INTXD54D.js} +71 -21
  206. package/dist/{context-working-set-3I3FYX6Y.js → context-working-set-ZUW3EGLS.js} +32 -31
  207. package/dist/detail-UXPWRANG.js +115 -0
  208. package/dist/{dispatch-runner-RJ5I2F2O.js → dispatch-runner-P3ZW6G77.js} +192 -116
  209. package/dist/{docs-SPOV3BAN.js → docs-BL7ROUFN.js} +4 -4
  210. package/dist/{doctor-DKICC2SN.js → doctor-JJVGPZWT.js} +59 -58
  211. package/dist/{eval-OQOQUDHK.js → eval-V2RTN3UH.js} +476 -170
  212. package/dist/{eval-inventory-Y6QRFOH5.js → eval-inventory-QOYZERXJ.js} +7 -7
  213. package/dist/evidence-35PYWGSO.js +225 -0
  214. package/dist/{evidence-4DQ25GUQ.js → evidence-CIGGKI6J.js} +111 -94
  215. package/dist/{evolve-GSS52E5J.js → evolve-33SM3NJP.js} +108 -91
  216. package/dist/{extensions-G7MFLYHT.js → extensions-YVRHX6ZI.js} +16 -16
  217. package/dist/{fleet-Q37YHHAQ.js → fleet-LFO7SIPC.js} +147 -146
  218. package/dist/{fleet-commands-G7E4N7SM.js → fleet-commands-RLK72GU3.js} +27 -26
  219. package/dist/{fleet-decisions-O7M6QBA2.js → fleet-decisions-3SBSCTCW.js} +16 -15
  220. package/dist/{fleet-graph-TOUBW6OW.js → fleet-graph-JZIBCGMW.js} +39 -38
  221. package/dist/{fleet-inspect-SW33JJNI.js → fleet-inspect-2L5YGGZJ.js} +108 -91
  222. package/dist/{fleet-new-RDVJLHHH.js → fleet-new-RCKGSRDV.js} +3 -3
  223. package/dist/{fleet-preflight-CV2655TW.js → fleet-preflight-QRSHIIDE.js} +10 -9
  224. package/dist/{fleet-validate-KESZX2YH.js → fleet-validate-LIAVKDUU.js} +46 -42
  225. package/dist/{fleet-verify-UQPMTVE3.js → fleet-verify-JIK3OQZR.js} +106 -89
  226. package/dist/fleet-view-IWHYGQKK.js +118 -0
  227. package/dist/{init-PXEXQSBF.js → init-NJEDOTQW.js} +124 -123
  228. package/dist/{install-NKNG7KD4.js → install-3RZDDP23.js} +5 -5
  229. package/dist/{interop-ZG5T62U3.js → interop-RVCAYECG.js} +25 -25
  230. package/dist/inventory-74UL7UHU.js +118 -0
  231. package/dist/{library-B2W4N74O.js → library-CTKZA7K3.js} +45 -44
  232. package/dist/{memory-YCANYS5A.js → memory-I76I5VUH.js} +108 -93
  233. package/dist/{models-GERTU3YI.js → models-D4YDIQZQ.js} +64 -62
  234. package/dist/{monitor-CPNIUULB.js → monitor-NKVD55HX.js} +137 -107
  235. package/dist/{orchestrator-J4BSH4WQ.js → orchestrator-I6OATVPK.js} +1715 -1687
  236. package/dist/{panes-BOHAEGYC.js → panes-7BTYH3XQ.js} +8 -8
  237. package/dist/{panes-NXSLDQZ2.js → panes-WPOMEMRH.js} +22 -22
  238. package/dist/{paths-VSUWNC22.js → paths-J3KN7UAO.js} +12 -12
  239. package/dist/preload-EJAWJEIO.js +116 -0
  240. package/dist/{registry-LG64LTF4.js → registry-DESGAXWK.js} +3 -3
  241. package/dist/{reset-TNWTB5LU.js → reset-4XMQKDNZ.js} +22 -20
  242. package/dist/{resources-4PXNMD5G.js → resources-TVYVXK3Q.js} +41 -40
  243. package/dist/{run-D6XJ34CN.js → run-OWQNNSJU.js} +164 -157
  244. package/dist/{share-2NWMJJEE.js → share-NPZZMUXG.js} +43 -42
  245. package/dist/{skills-KR7WON5G.js → skills-OXFEAWMT.js} +47 -46
  246. package/dist/{skills-eval-O2ZNOLDS.js → skills-eval-J5TCKSJA.js} +128 -107
  247. package/dist/{skills-inventory-ZZOUBK7O.js → skills-inventory-7II4DM57.js} +41 -40
  248. package/dist/slash-commands-MDSDSWYF.js +92 -0
  249. package/dist/{steer-XA25PSCS.js → steer-S7D7IKPU.js} +7 -7
  250. package/dist/{support-7EMVWYG2.js → support-5VAEC32W.js} +14 -14
  251. package/dist/{targets-OMH2XCSN.js → targets-KILZEOCE.js} +161 -94
  252. package/dist/tasks-R6P6OV22.js +36 -0
  253. package/dist/{terminal-lease-C2J3JYRE.js → terminal-lease-LZCG2KN3.js} +12 -11
  254. package/dist/tools-6OCQ6SVB.js +28 -0
  255. package/dist/{trace-FXMXUZUF.js → trace-JHLXWUMN.js} +18 -17
  256. package/dist/{tree-sitter-HGKH6LG4.js → tree-sitter-AQUUOSYM.js} +6 -6
  257. package/dist/{tui-primitives-K5PASC3O.js → tui-primitives-RCY2HN7G.js} +3 -3
  258. package/dist/{uninstall-HALS6BLF.js → uninstall-FXYMFFRT.js} +17 -17
  259. package/dist/{upgrade-MS72RJEP.js → upgrade-D2OZH6IQ.js} +42 -41
  260. package/dist/{usage-NHG6MCJM.js → usage-PIASNUS4.js} +137 -105
  261. package/dist/{verifiers-7AUNVXDY.js → verifiers-LTHUY2PX.js} +28 -27
  262. package/dist/verify-HYF7KBVE.js +30 -0
  263. package/dist/{version-KGEG7EPO.js → version-RFPKO6T7.js} +4 -4
  264. package/dist/{web-fetch-V4FKSDAV.js → web-fetch-MQN4FH3X.js} +169 -18
  265. package/dist/wiki-generate-RK7JQ5NP.js +615 -0
  266. package/dist/{with-panes-BDQEWBRT.js → with-panes-OFTNAR4Y.js} +34 -20
  267. package/dist/worker/entry.js +108 -95
  268. package/dist/{workspace-ZJ6BFM3Q.js → workspace-DZ7JADBG.js} +6 -6
  269. package/docs/README.md +7 -6
  270. package/docs/architecture/acp.md +10 -0
  271. package/docs/architecture/architecture.md +5 -5
  272. package/docs/architecture/context-engine.md +45 -60
  273. package/docs/architecture/context-working-set.md +7 -9
  274. package/docs/architecture/dispatch-architecture-rationale.md +1 -1
  275. package/docs/architecture/evidence-and-memory.md +10 -0
  276. package/docs/architecture/pi-boundary.md +37 -7
  277. package/docs/architecture/prompt-envelope-and-tools.md +7 -7
  278. package/docs/architecture/session-lifecycle.md +4 -4
  279. package/docs/architecture/tui-design.md +45 -30
  280. package/docs/architecture/worker-dispatch-mechanics.md +4 -0
  281. package/docs/guide/commands-and-modes.md +75 -61
  282. package/docs/guide/configuration-and-targets.md +126 -26
  283. package/docs/guide/configuration-reference.md +22 -7
  284. package/docs/guide/environment-variables.md +6 -2
  285. package/docs/guide/fleet-dispatch.md +13 -6
  286. package/docs/guide/glossary.md +1 -1
  287. package/docs/guide/installation-and-lifecycle.md +79 -20
  288. package/docs/guide/proactive-memory.md +1 -1
  289. package/docs/guide/skills-marketplace.md +11 -3
  290. package/docs/guide/tool-usage.md +9 -2
  291. package/docs/process/development-pipeline.md +11 -11
  292. package/docs/process/documentation-coverage.md +1 -1
  293. package/docs/process/documentation-guide.md +2 -2
  294. package/docs/process/eval-runner.md +15 -0
  295. package/docs/process/evals-internal.md +1 -1
  296. package/docs/process/release-cut-checklist.md +24 -12
  297. package/evals/README.md +4 -0
  298. package/evals/behavioral-corpus-grader.mjs +147 -14
  299. package/evals/behavioral-model-negative-control.yaml +1 -0
  300. package/evals/behavioral-model.yaml +266 -1
  301. package/evals/fixtures/docs-retrieval.json +102 -0
  302. package/evals/fixtures/scalar-decision.json +17 -0
  303. package/evals/fixtures/scout-citation-pipeline.json +55 -0
  304. package/evals/fixtures/source-explanation.json +74 -0
  305. package/evals/fixtures/tool-arguments.json +18 -0
  306. package/evals/fixtures/tool-surface/read.txt +4 -0
  307. package/evals/fixtures/tool-surface/subdir/keep.txt +1 -0
  308. package/evals/no-edit-memory-grader.mjs +149 -0
  309. package/evals/scalar-decision-grader.py +41 -0
  310. package/evals/scalar-decision-machinery.ts +145 -0
  311. package/evals/source-explanation-grader.mjs +118 -0
  312. package/evals/tool-surface-grader.mjs +53 -0
  313. package/evals/tool-surface-model.yaml +274 -0
  314. package/package.json +14 -14
  315. package/skills/README.md +6 -6
  316. package/skills/registry.yaml +1 -1
  317. package/skills/skill-marketplace.json +1 -1
  318. package/src/cli/ask.ts +10 -10
  319. package/src/cli/bootstrap-generate.ts +6 -0
  320. package/src/cli/config-inspect.ts +24 -7
  321. package/src/cli/config-trust.ts +62 -0
  322. package/src/cli/config.ts +8 -0
  323. package/src/cli/configure-editor.ts +51 -0
  324. package/src/cli/configure-interop.ts +1 -1
  325. package/src/cli/configure-oauth.ts +1 -1
  326. package/src/cli/configure-onboarding.ts +232 -96
  327. package/src/cli/configure-prompts.ts +76 -0
  328. package/src/cli/configure-quick.ts +274 -0
  329. package/src/cli/configure-target.ts +14 -2
  330. package/src/cli/configure.ts +413 -174
  331. package/src/cli/context-map.ts +75 -14
  332. package/src/cli/context.ts +46 -17
  333. package/src/cli/eval.ts +17 -3
  334. package/src/cli/modes/print.ts +32 -4
  335. package/src/cli/oauth-manual-input.ts +1 -1
  336. package/src/cli/reset.ts +2 -0
  337. package/src/cli/run.ts +16 -14
  338. package/src/cli/select.ts +35 -4
  339. package/src/cli/skills-eval.ts +10 -8
  340. package/src/cli/steer-channel.ts +31 -18
  341. package/src/cli/targets.ts +83 -31
  342. package/src/cli/tasks.ts +10 -1
  343. package/src/cli/upgrade.ts +11 -8
  344. package/src/cli/usage.ts +24 -0
  345. package/src/cli/wiki-generate.ts +239 -96
  346. package/src/core/bash-exec.ts +43 -15
  347. package/src/core/bus-events.ts +15 -0
  348. package/src/core/config.ts +39 -15
  349. package/src/core/defaults.ts +38 -15
  350. package/src/{interactive → core}/external-editor.ts +4 -4
  351. package/src/core/file-references.ts +11 -1
  352. package/src/core/incomplete-installation.ts +3 -1
  353. package/src/core/settings-layers.ts +21 -5
  354. package/src/core/termination.ts +26 -9
  355. package/src/core/untrusted-content.ts +16 -0
  356. package/src/core/workspace-trust.ts +179 -0
  357. package/src/domains/agents/builtins/coder.md +4 -2
  358. package/src/domains/agents/builtins/context-bootstrap.md +3 -1
  359. package/src/domains/agents/builtins/documenter.md +7 -4
  360. package/src/domains/agents/builtins/researcher.md +1 -0
  361. package/src/domains/agents/builtins/scout.md +7 -1
  362. package/src/domains/agents/result-contract.ts +199 -26
  363. package/src/domains/config/classify.ts +1 -1
  364. package/src/domains/config/keybindings.ts +3 -31
  365. package/src/domains/context/bootstrap-prompt.ts +11 -9
  366. package/src/domains/context/bootstrap.ts +74 -39
  367. package/src/domains/context/clio-md.ts +88 -26
  368. package/src/domains/context/codewiki/build-operation.ts +121 -0
  369. package/src/domains/context/codewiki/build-worker-protocol.ts +37 -3
  370. package/src/domains/context/codewiki/build-worker.ts +3 -35
  371. package/src/domains/context/codewiki/coordinator.ts +36 -6
  372. package/src/domains/context/codewiki/indexer.ts +59 -19
  373. package/src/domains/context/contract.ts +6 -2
  374. package/src/domains/context/extension.ts +72 -10
  375. package/src/domains/context/fingerprint.ts +39 -34
  376. package/src/domains/context/index.ts +7 -1
  377. package/src/domains/context/prompt-context.ts +55 -14
  378. package/src/domains/context/refresh.ts +9 -57
  379. package/src/domains/context/wiki/assemble.ts +14 -10
  380. package/src/domains/context/wiki/evidence.ts +209 -0
  381. package/src/domains/context/wiki/generate.ts +201 -67
  382. package/src/domains/context/wiki/meta.ts +10 -2
  383. package/src/domains/context/wiki/plan-store.ts +70 -14
  384. package/src/domains/context/wiki/plan.ts +71 -14
  385. package/src/domains/context/wiki/prompts.ts +42 -1
  386. package/src/domains/context/wiki/source-content.ts +106 -0
  387. package/src/domains/context/wiki/staleness.ts +33 -22
  388. package/src/domains/context/working-set/contract.ts +8 -2
  389. package/src/domains/context/working-set/engine.ts +17 -4
  390. package/src/domains/context/working-set/fold.ts +15 -2
  391. package/src/domains/context/working-set/marker.ts +2 -1
  392. package/src/domains/context/working-set/project.ts +18 -7
  393. package/src/domains/context/working-set/recall.ts +82 -56
  394. package/src/domains/dispatch/active-route-planner.ts +6 -3
  395. package/src/domains/dispatch/admission-queue.ts +19 -7
  396. package/src/domains/dispatch/admission.ts +3 -3
  397. package/src/domains/dispatch/budget-envelope.ts +47 -82
  398. package/src/domains/dispatch/capacity-lease.ts +57 -19
  399. package/src/domains/dispatch/contract.ts +10 -2
  400. package/src/domains/dispatch/event-pump.ts +28 -7
  401. package/src/domains/dispatch/execution-role.ts +49 -2
  402. package/src/domains/dispatch/execution-scheduler.ts +2 -0
  403. package/src/domains/dispatch/extension.ts +190 -105
  404. package/src/domains/dispatch/fleet-run.ts +20 -0
  405. package/src/domains/dispatch/gate-role-prompts.ts +4 -2
  406. package/src/domains/dispatch/parallel-writers.ts +34 -0
  407. package/src/domains/dispatch/reservation-store.ts +8 -34
  408. package/src/domains/dispatch/route-approval.ts +3 -3
  409. package/src/domains/dispatch/route-observer.ts +4 -2
  410. package/src/domains/dispatch/route-quality.ts +6 -1
  411. package/src/domains/dispatch/types.ts +4 -3
  412. package/src/domains/dispatch/worker-spawn.ts +58 -21
  413. package/src/domains/dispatch/workspace-checkpoint.ts +57 -0
  414. package/src/domains/eval/compare/behavioral.ts +81 -14
  415. package/src/domains/eval/compare/compare.ts +15 -5
  416. package/src/domains/eval/compare/envelope.ts +12 -5
  417. package/src/domains/eval/metrics/context.ts +24 -1
  418. package/src/domains/eval/metrics/tracked.ts +4 -28
  419. package/src/domains/eval/reports/comparison.ts +9 -9
  420. package/src/domains/eval/runners/clio-run.ts +5 -1
  421. package/src/domains/eval/schema/suite.ts +2 -0
  422. package/src/domains/eval/schema/validate.ts +1 -0
  423. package/src/domains/eval/suites/run.ts +189 -13
  424. package/src/domains/eval/verifiers/integrity.ts +39 -0
  425. package/src/domains/eval/verifiers/patch.ts +58 -2
  426. package/src/domains/eval/workspaces/temp-copy.ts +3 -0
  427. package/src/domains/evidence/build.ts +4 -2
  428. package/src/domains/interop/registry.ts +2 -2
  429. package/src/domains/middleware/hooks-io.ts +45 -26
  430. package/src/domains/middleware/hooks.ts +6 -0
  431. package/src/domains/middleware/injection-screen.ts +23 -0
  432. package/src/domains/middleware/rules.ts +5 -1
  433. package/src/domains/middleware/stalled-turn.ts +18 -3
  434. package/src/domains/middleware/task-board-reminder.ts +4 -2
  435. package/src/domains/middleware/task-nudge.ts +4 -1
  436. package/src/domains/mux/contract.ts +34 -1
  437. package/src/domains/mux/dock-controller.ts +8 -1
  438. package/src/domains/mux/index.ts +1 -0
  439. package/src/domains/mux/socket-client.ts +13 -3
  440. package/src/domains/observability/contract.ts +2 -2
  441. package/src/domains/observability/projection.ts +30 -9
  442. package/src/domains/prompts/compiler.ts +10 -2
  443. package/src/domains/prompts/contract.ts +7 -4
  444. package/src/domains/prompts/extension.ts +28 -64
  445. package/src/domains/prompts/fragments/identity/clio.md +23 -0
  446. package/src/domains/prompts/fragments/operating/contract.md +10 -0
  447. package/src/domains/prompts/fragments/operating/delegation.md +5 -0
  448. package/src/domains/prompts/fragments/wiki/page.md +28 -15
  449. package/src/domains/prompts/fragments/wiki/plan.md +4 -4
  450. package/src/domains/prompts/preload-prefix.ts +31 -0
  451. package/src/domains/prompts/preload.ts +135 -61
  452. package/src/domains/providers/auth/backend-file.ts +15 -11
  453. package/src/domains/providers/auth/storage.ts +3 -5
  454. package/src/domains/providers/catalog.ts +18 -3
  455. package/src/domains/providers/probe/fingerprint.ts +13 -6
  456. package/src/domains/providers/probe/reasoning.ts +2 -0
  457. package/src/domains/providers/runtime-resolution.ts +11 -9
  458. package/src/domains/providers/runtimes/cloud/openrouter.ts +2 -0
  459. package/src/domains/providers/runtimes/common/probe-helpers.ts +23 -7
  460. package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +7 -2
  461. package/src/domains/providers/runtimes/protocol/openai-compat.ts +10 -4
  462. package/src/domains/resources/skills/promotion.ts +8 -1
  463. package/src/domains/safety/action-classifier.ts +9 -0
  464. package/src/domains/safety/autonomy.ts +10 -1
  465. package/src/domains/safety/contract.ts +5 -1
  466. package/src/domains/safety/default-path-policy.ts +11 -0
  467. package/src/domains/safety/extension.ts +11 -2
  468. package/src/domains/safety/policy-engine.ts +189 -32
  469. package/src/domains/safety/project-policy.ts +7 -2
  470. package/src/domains/safety/workspace-trust.ts +43 -0
  471. package/src/domains/session/compaction/compact.ts +384 -21
  472. package/src/domains/session/compaction/cut-point.ts +42 -5
  473. package/src/domains/session/compaction/tokens.ts +9 -1
  474. package/src/domains/session/decision-board.ts +43 -33
  475. package/src/domains/session/entries.ts +169 -4
  476. package/src/domains/session/prompt-manifest.ts +47 -8
  477. package/src/domains/session/task-board.ts +21 -3
  478. package/src/domains/user-tasks/handoff.ts +16 -0
  479. package/src/engine/acp/adapter.ts +44 -12
  480. package/src/engine/acp/server.ts +1 -0
  481. package/src/engine/acp/transport.ts +2 -1
  482. package/src/engine/acp/types.ts +6 -1
  483. package/src/engine/antigravity/subprocess-runtime.ts +20 -4
  484. package/src/engine/api-registry.ts +19 -2
  485. package/src/engine/apis/openai-completions.ts +13 -6
  486. package/src/engine/apis/output-budget.ts +26 -10
  487. package/src/engine/claude/sdk-runtime.ts +4 -3
  488. package/src/engine/env-api-keys.ts +2 -1
  489. package/src/engine/external-subprocess.ts +14 -3
  490. package/src/engine/loop-guard.ts +19 -2
  491. package/src/engine/provider-diagnostics.ts +129 -0
  492. package/src/engine/provider-payload.ts +3 -1
  493. package/src/engine/worker-runtime.ts +13 -2
  494. package/src/engine/worker-tools.ts +5 -1
  495. package/src/entry/extension-reload.ts +1 -0
  496. package/src/entry/orchestrator.ts +53 -15
  497. package/src/interactive/application-controller.ts +1 -31
  498. package/src/interactive/chat-loop-messages.ts +12 -4
  499. package/src/interactive/chat-loop.ts +115 -45
  500. package/src/interactive/chat-panel.ts +163 -637
  501. package/src/interactive/chat-renderer.ts +73 -30
  502. package/src/interactive/context-recall-command.ts +2 -1
  503. package/src/interactive/dispatch-board.ts +18 -5
  504. package/src/interactive/editor-submit.ts +21 -31
  505. package/src/interactive/footer/dashboard.ts +8 -3
  506. package/src/interactive/footer/widgets.ts +50 -91
  507. package/src/interactive/interactive-application.ts +24 -44
  508. package/src/interactive/interactive-event-projection.ts +9 -45
  509. package/src/interactive/interactive-input-runtime.ts +3 -28
  510. package/src/interactive/interactive-presentation.ts +45 -16
  511. package/src/interactive/interactive-slash-runtime.ts +5 -40
  512. package/src/interactive/layout.ts +31 -5
  513. package/src/interactive/model-session-replay.ts +2 -2
  514. package/src/interactive/overlay-frame.ts +1 -0
  515. package/src/interactive/overlay-general-openers.ts +5 -1
  516. package/src/interactive/overlay-lifecycle.ts +1 -0
  517. package/src/interactive/overlay-session-lifecycle.ts +7 -1
  518. package/src/interactive/overlays/ask-user.ts +1 -0
  519. package/src/interactive/overlays/message-picker.ts +1 -1
  520. package/src/interactive/overlays/settings.ts +9 -8
  521. package/src/interactive/renderers/preview.ts +16 -0
  522. package/src/interactive/renderers/tool-execution.ts +84 -161
  523. package/src/interactive/renderers/worker-entry.ts +74 -43
  524. package/src/interactive/slash-autocomplete.ts +1 -6
  525. package/src/interactive/slash-commands.ts +16 -46
  526. package/src/interactive/status/controller.ts +0 -5
  527. package/src/interactive/status/state-machine.ts +44 -26
  528. package/src/interactive/status/types.ts +3 -0
  529. package/src/interactive/status/verbs.ts +13 -12
  530. package/src/interactive/transcript-detail.ts +50 -112
  531. package/src/interactive/turn-context.ts +221 -53
  532. package/src/interactive/turn-middleware.ts +3 -1
  533. package/src/interactive/turn-persistence.ts +3 -0
  534. package/src/interactive/turn-runtime.ts +11 -2
  535. package/src/interactive/turn-state.ts +10 -9
  536. package/src/interactive/view/artifacts.ts +4 -0
  537. package/src/interactive/view/view-overlay.ts +44 -34
  538. package/src/interactive/watch-pane.ts +18 -4
  539. package/src/interactive/worker-stream.ts +7 -7
  540. package/src/tools/agent-tools.ts +6 -3
  541. package/src/tools/bash.ts +1 -1
  542. package/src/tools/builtin-tool-catalog.ts +9 -2
  543. package/src/tools/codewiki/code-nav.ts +4 -10
  544. package/src/tools/compete-judge-task.ts +71 -0
  545. package/src/tools/compete-worktrees.ts +34 -0
  546. package/src/tools/context/index.ts +32 -7
  547. package/src/tools/context/surface.ts +15 -4
  548. package/src/tools/decide.ts +1 -1
  549. package/src/tools/dispatch-admission.ts +12 -1
  550. package/src/tools/dispatch-arguments.ts +38 -1
  551. package/src/tools/dispatch-plan.ts +7 -7
  552. package/src/tools/dispatch-runner.ts +48 -32
  553. package/src/tools/dispatch-schema.ts +30 -23
  554. package/src/tools/dispatch-scout-admission.ts +10 -44
  555. package/src/tools/dispatch-scout.ts +2 -3
  556. package/src/tools/find.ts +13 -4
  557. package/src/tools/grep.ts +13 -1
  558. package/src/tools/ls.ts +7 -1
  559. package/src/tools/monitor.ts +26 -11
  560. package/src/tools/network-policy.ts +11 -24
  561. package/src/tools/observation.ts +39 -2
  562. package/src/tools/presentation.ts +1 -1
  563. package/src/tools/read.ts +112 -15
  564. package/src/tools/registry.ts +55 -18
  565. package/src/tools/result-shaping.ts +110 -2
  566. package/src/tools/tasks.ts +33 -7
  567. package/src/tools/verify/frontend.ts +67 -30
  568. package/src/tools/verify/numeric.ts +10 -5
  569. package/src/tools/web-fetch-network.ts +179 -0
  570. package/src/tools/web-fetch-surface.ts +2 -1
  571. package/src/tools/web-fetch.ts +15 -13
  572. package/src/tools/worker-evidence.ts +27 -0
  573. package/src/worker/spec-contract.ts +12 -8
  574. package/dist/builtins-WGALA46I.js +0 -22
  575. package/dist/chunk-2WZ546HR.js +0 -792
  576. package/dist/chunk-5PSMVOLM.js +0 -56
  577. package/dist/chunk-EL24TAU4.js +0 -1560
  578. package/dist/chunk-IZXGRF7P.js +0 -4048
  579. package/dist/chunk-JVCV3ICN.js +0 -47
  580. package/dist/chunk-MNJGS2IN.js +0 -33
  581. package/dist/chunk-O5CVSAG5.js +0 -122
  582. package/dist/chunk-ODGTEFFI.js +0 -50
  583. package/dist/chunk-OQE5J4C6.js +0 -73
  584. package/dist/chunk-UUVG37B4.js +0 -244
  585. package/dist/chunk-V6HJFQZE.js +0 -228
  586. package/dist/clio-QLICPCF5.js +0 -25
  587. package/dist/configure-VEPX4NMX.js +0 -55
  588. package/dist/context-clear-S4ZJCQUX.js +0 -182
  589. package/dist/detail-A7JAVSIG.js +0 -98
  590. package/dist/evidence-4F5USFKH.js +0 -208
  591. package/dist/fleet-view-MN2VG4MR.js +0 -101
  592. package/dist/inventory-C26CFDRR.js +0 -101
  593. package/dist/preload-P6DGH2PZ.js +0 -13
  594. package/dist/slash-commands-ZXPJD64J.js +0 -92
  595. package/dist/tasks-IPAGMEIX.js +0 -36
  596. package/dist/tools-EFFEAIDP.js +0 -28
  597. package/dist/verify-FWYGPKMR.js +0 -29
  598. package/dist/wiki-generate-743CIGJW.js +0 -476
@@ -0,0 +1,341 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ captureWikiSourceContent,
4
+ captureWikiSourceContentAsync,
5
+ sanitizeWikiPlan,
6
+ wikiDir,
7
+ wikiMarkdownFilesInDir,
8
+ wikiSourcesMatch
9
+ } from "./chunk-LVFANMOH.js";
10
+ import {
11
+ safeResourceWrite
12
+ } from "./chunk-ZZFWWYLX.js";
13
+ import {
14
+ init_esm_shims
15
+ } from "./chunk-ECBHH7LU.js";
16
+
17
+ // src/domains/context/wiki/meta.ts
18
+ init_esm_shims();
19
+ import { execFileSync } from "node:child_process";
20
+ import { createHash } from "node:crypto";
21
+ import { existsSync, readFileSync } from "node:fs";
22
+ import { join } from "node:path";
23
+ function compareStrings(a, b) {
24
+ return a.localeCompare(b);
25
+ }
26
+ function isRecord(value) {
27
+ return typeof value === "object" && value !== null && !Array.isArray(value);
28
+ }
29
+ function stringValue(value) {
30
+ return typeof value === "string" && value.trim().length > 0 ? value : null;
31
+ }
32
+ function nonNegativeSafeInteger(value) {
33
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
34
+ }
35
+ var REQUESTED_DEPTHS = ["auto", "simple", "medium", "detailed"];
36
+ var RESOLVED_DEPTHS = ["simple", "medium", "detailed"];
37
+ function parseGeneration(value) {
38
+ if (!isRecord(value)) return void 0;
39
+ const { requestedDepth, depth, sourceFiles, sourceLines, pagesPlanned, pagesWritten } = value;
40
+ if (!REQUESTED_DEPTHS.includes(requestedDepth) || !RESOLVED_DEPTHS.includes(depth) || !nonNegativeSafeInteger(sourceFiles) || !nonNegativeSafeInteger(sourceLines) || !nonNegativeSafeInteger(pagesPlanned) || !nonNegativeSafeInteger(pagesWritten)) {
41
+ return void 0;
42
+ }
43
+ return {
44
+ requestedDepth,
45
+ depth,
46
+ sourceFiles,
47
+ sourceLines,
48
+ pagesPlanned,
49
+ pagesWritten
50
+ };
51
+ }
52
+ function normalizePages(pages) {
53
+ return pages.map((page) => ({ path: page.path, title: page.title, ...page.summary ? { summary: page.summary } : {} })).sort((a, b) => a.path.localeCompare(b.path));
54
+ }
55
+ function wikiMetaPath(cwd) {
56
+ return join(wikiDir(cwd), "meta.json");
57
+ }
58
+ function currentWikiGitHead(cwd) {
59
+ try {
60
+ return execFileSync("git", ["rev-parse", "--verify", "HEAD"], {
61
+ cwd,
62
+ encoding: "utf8",
63
+ stdio: ["ignore", "pipe", "ignore"]
64
+ }).trim();
65
+ } catch {
66
+ return null;
67
+ }
68
+ }
69
+ function validateWikiMeta(value) {
70
+ const problems = [];
71
+ if (!isRecord(value)) {
72
+ return { ok: false, problems: ["meta must be a JSON object"] };
73
+ }
74
+ if (value.version !== 1) problems.push("version must be 1");
75
+ const updatedAt = stringValue(value.updatedAt);
76
+ if (!updatedAt) problems.push("updatedAt must be a non-empty string");
77
+ const gitHead = value.gitHead;
78
+ if (gitHead !== null && typeof gitHead !== "string") problems.push("gitHead must be a string or null");
79
+ const sourceTreeHash = value.sourceTreeHash;
80
+ if (sourceTreeHash !== void 0 && (typeof sourceTreeHash !== "string" || !/^[a-f0-9]{64}$/.test(sourceTreeHash))) {
81
+ problems.push("sourceTreeHash must be a sha256 hex string when present");
82
+ }
83
+ const model = stringValue(value.model);
84
+ if (!model) problems.push("model must be a non-empty string");
85
+ const contentHash = stringValue(value.contentHash);
86
+ if (!contentHash || !/^[a-f0-9]{64}$/.test(contentHash)) {
87
+ problems.push("contentHash must be a sha256 hex string");
88
+ }
89
+ if (!Array.isArray(value.pages)) {
90
+ problems.push("pages must be an array");
91
+ } else {
92
+ for (const [index, page] of value.pages.entries()) {
93
+ if (!isRecord(page)) {
94
+ problems.push(`pages[${index}] must be an object`);
95
+ continue;
96
+ }
97
+ if (!stringValue(page.path)) problems.push(`pages[${index}].path must be a non-empty string`);
98
+ if (!stringValue(page.title)) problems.push(`pages[${index}].title must be a non-empty string`);
99
+ }
100
+ }
101
+ if (problems.length > 0) return { ok: false, problems };
102
+ const generation = parseGeneration(value.generation);
103
+ const plan = sanitizeWikiPlan(value.plan, void 0, { trustStatus: true });
104
+ return {
105
+ ok: true,
106
+ value: {
107
+ version: 1,
108
+ updatedAt,
109
+ gitHead,
110
+ ...sourceTreeHash !== void 0 ? { sourceTreeHash } : {},
111
+ model,
112
+ contentHash,
113
+ pages: normalizePages(value.pages),
114
+ ...generation !== void 0 ? { generation } : {},
115
+ ...plan !== null ? { plan } : {}
116
+ }
117
+ };
118
+ }
119
+ function isWikiMeta(value) {
120
+ return validateWikiMeta(value).ok;
121
+ }
122
+ function readWikiMeta(cwd) {
123
+ return readWikiMetaInDir(wikiDir(cwd));
124
+ }
125
+ function readWikiMetaInDir(dir) {
126
+ const filePath = join(dir, "meta.json");
127
+ if (!existsSync(filePath)) return null;
128
+ let parsed;
129
+ try {
130
+ parsed = JSON.parse(readFileSync(filePath, "utf8"));
131
+ } catch {
132
+ return null;
133
+ }
134
+ const validation = validateWikiMeta(parsed);
135
+ return validation.ok ? validation.value : null;
136
+ }
137
+ function writeWikiMeta(cwd, meta) {
138
+ writeWikiMetaInDir(wikiDir(cwd), meta);
139
+ }
140
+ function writeWikiMetaInDir(dir, meta) {
141
+ const normalized = {
142
+ version: 1,
143
+ updatedAt: meta.updatedAt,
144
+ gitHead: meta.gitHead,
145
+ ...meta.sourceTreeHash ? { sourceTreeHash: meta.sourceTreeHash } : {},
146
+ model: meta.model,
147
+ contentHash: meta.contentHash,
148
+ pages: normalizePages(meta.pages),
149
+ ...meta.generation !== void 0 ? { generation: { ...meta.generation } } : {},
150
+ ...meta.plan !== void 0 ? { plan: meta.plan } : {}
151
+ };
152
+ safeResourceWrite(join(dir, "meta.json"), `${JSON.stringify(normalized)}
153
+ `, { encoding: "utf8" });
154
+ }
155
+ function computeWikiContentHashOfDir(dir) {
156
+ const hash = createHash("sha256");
157
+ for (const relPath of wikiMarkdownFilesInDir(dir).sort(compareStrings)) {
158
+ let text = "";
159
+ try {
160
+ text = readFileSync(join(dir, relPath), "utf8");
161
+ } catch {
162
+ text = "";
163
+ }
164
+ hash.update(`${relPath}\0${text.length}\0`);
165
+ hash.update(text);
166
+ hash.update("\0");
167
+ }
168
+ return hash.digest("hex");
169
+ }
170
+ function computeWikiContentHash(cwd) {
171
+ return computeWikiContentHashOfDir(wikiDir(cwd));
172
+ }
173
+
174
+ // src/domains/context/wiki/staleness.ts
175
+ init_esm_shims();
176
+ import { execFile, execFileSync as execFileSync2 } from "node:child_process";
177
+ import { promisify } from "node:util";
178
+ var execFileAsync = promisify(execFile);
179
+ var GIT_DIFF_LINE_CAP = 200;
180
+ function splitNullTerminatedPaths(output) {
181
+ return output.split("\0").filter((path) => path.length > 0);
182
+ }
183
+ function currentGitHead(cwd) {
184
+ try {
185
+ const out = execFileSync2("git", ["rev-parse", "--verify", "HEAD"], {
186
+ cwd,
187
+ encoding: "utf8",
188
+ stdio: ["ignore", "pipe", "ignore"]
189
+ }).trim();
190
+ return out.length > 0 ? out : null;
191
+ } catch {
192
+ return null;
193
+ }
194
+ }
195
+ async function currentGitHeadAsync(cwd) {
196
+ try {
197
+ const { stdout } = await execFileAsync("git", ["rev-parse", "--verify", "HEAD"], { cwd, encoding: "utf8" });
198
+ const out = stdout.trim();
199
+ return out.length > 0 ? out : null;
200
+ } catch {
201
+ return null;
202
+ }
203
+ }
204
+ function collectChangedPaths(cwd, gitHead) {
205
+ const committed = execFileSync2("git", ["diff", "--name-only", "-z", `${gitHead}..HEAD`], {
206
+ cwd,
207
+ encoding: "utf8",
208
+ stdio: ["ignore", "pipe", "ignore"]
209
+ });
210
+ const trackedWorking = execFileSync2("git", ["diff", "--name-only", "-z", "HEAD"], {
211
+ cwd,
212
+ encoding: "utf8",
213
+ stdio: ["ignore", "pipe", "ignore"]
214
+ });
215
+ const untracked = execFileSync2("git", ["ls-files", "--others", "--exclude-standard", "-z"], {
216
+ cwd,
217
+ encoding: "utf8",
218
+ stdio: ["ignore", "pipe", "ignore"]
219
+ });
220
+ return /* @__PURE__ */ new Set([
221
+ ...splitNullTerminatedPaths(committed),
222
+ ...splitNullTerminatedPaths(trackedWorking),
223
+ ...splitNullTerminatedPaths(untracked)
224
+ ]);
225
+ }
226
+ function changedPathsSince(cwd, gitHead) {
227
+ if (!gitHead) return null;
228
+ try {
229
+ return [...collectChangedPaths(cwd, gitHead)];
230
+ } catch {
231
+ return null;
232
+ }
233
+ }
234
+ async function collectChangedPathsAsync(cwd, gitHead) {
235
+ const run = async (args) => {
236
+ const { stdout } = await execFileAsync("git", args, { cwd, encoding: "utf8" });
237
+ return stdout;
238
+ };
239
+ const [committed, trackedWorking, untracked] = await Promise.all([
240
+ run(["diff", "--name-only", "-z", `${gitHead}..HEAD`]),
241
+ run(["diff", "--name-only", "-z", "HEAD"]),
242
+ run(["ls-files", "--others", "--exclude-standard", "-z"])
243
+ ]);
244
+ return /* @__PURE__ */ new Set([
245
+ ...splitNullTerminatedPaths(committed),
246
+ ...splitNullTerminatedPaths(trackedWorking),
247
+ ...splitNullTerminatedPaths(untracked)
248
+ ]);
249
+ }
250
+ function capChangedPaths(paths) {
251
+ const capped = [...paths].slice(0, GIT_DIFF_LINE_CAP);
252
+ return {
253
+ count: capped.length,
254
+ ...paths.size > capped.length ? { warning: `changed file count capped at ${GIT_DIFF_LINE_CAP}` } : {}
255
+ };
256
+ }
257
+ var CHANGED_COUNT_FAILURE = "wiki staleness unavailable: git diff failed for the recorded wiki gitHead";
258
+ function changedFileCount(cwd, gitHead) {
259
+ try {
260
+ return capChangedPaths(collectChangedPaths(cwd, gitHead));
261
+ } catch {
262
+ return { warning: CHANGED_COUNT_FAILURE };
263
+ }
264
+ }
265
+ async function changedFileCountAsync(cwd, gitHead) {
266
+ try {
267
+ return capChangedPaths(await collectChangedPathsAsync(cwd, gitHead));
268
+ } catch {
269
+ return { warning: CHANGED_COUNT_FAILURE };
270
+ }
271
+ }
272
+ function wikiCompletenessFromMeta(meta) {
273
+ const generation = meta?.generation;
274
+ if (!generation) return null;
275
+ return {
276
+ pagesPlanned: generation.pagesPlanned,
277
+ pagesWritten: generation.pagesWritten,
278
+ owed: Math.max(0, generation.pagesPlanned - generation.pagesWritten)
279
+ };
280
+ }
281
+ function wikiCompleteness(cwd) {
282
+ return wikiCompletenessFromMeta(readWikiMeta(cwd));
283
+ }
284
+ function pendingRefresh(meta) {
285
+ const available = new Set(meta.pages.map((page) => page.path));
286
+ if (!meta.plan?.pages.some((page) => page.status !== "written" && available.has(page.path))) return null;
287
+ return { state: "stale", changedFiles: 0, warning: "wiki has published pages awaiting successful validation" };
288
+ }
289
+ var MISSING_RECORDED_HEAD = "wiki staleness unavailable: recorded gitHead is missing";
290
+ var MISSING_CURRENT_HEAD = "wiki staleness unavailable: current git HEAD is missing";
291
+ function unavailableStaleness(warning) {
292
+ return { state: "stale", changedFiles: 0, warning };
293
+ }
294
+ function wikiStaleness(cwd) {
295
+ const meta = readWikiMeta(cwd);
296
+ if (!meta) return { state: "absent" };
297
+ const pending = pendingRefresh(meta);
298
+ if (pending) return pending;
299
+ if (!meta.gitHead) return unavailableStaleness(MISSING_RECORDED_HEAD);
300
+ const head = currentGitHead(cwd);
301
+ if (!head) return unavailableStaleness(MISSING_CURRENT_HEAD);
302
+ const diff = changedFileCount(cwd, meta.gitHead);
303
+ if (!("count" in diff)) return unavailableStaleness(diff.warning);
304
+ if (wikiSourcesMatch(meta.plan?.sourceContent, captureWikiSourceContent(cwd)) && head === meta.gitHead) {
305
+ return { state: "fresh" };
306
+ }
307
+ return { state: "stale", changedFiles: diff.count, ...diff.warning ? { warning: diff.warning } : {} };
308
+ }
309
+ async function wikiStalenessAsync(cwd) {
310
+ const meta = readWikiMeta(cwd);
311
+ if (!meta) return { state: "absent" };
312
+ const pending = pendingRefresh(meta);
313
+ if (pending) return pending;
314
+ if (!meta.gitHead) return unavailableStaleness(MISSING_RECORDED_HEAD);
315
+ const head = await currentGitHeadAsync(cwd);
316
+ if (!head) return unavailableStaleness(MISSING_CURRENT_HEAD);
317
+ const diff = await changedFileCountAsync(cwd, meta.gitHead);
318
+ if (!("count" in diff)) return unavailableStaleness(diff.warning);
319
+ if (wikiSourcesMatch(meta.plan?.sourceContent, await captureWikiSourceContentAsync(cwd)) && head === meta.gitHead)
320
+ return { state: "fresh" };
321
+ return { state: "stale", changedFiles: diff.count, ...diff.warning ? { warning: diff.warning } : {} };
322
+ }
323
+
324
+ export {
325
+ wikiMetaPath,
326
+ currentWikiGitHead,
327
+ validateWikiMeta,
328
+ isWikiMeta,
329
+ readWikiMeta,
330
+ readWikiMetaInDir,
331
+ writeWikiMeta,
332
+ writeWikiMetaInDir,
333
+ computeWikiContentHashOfDir,
334
+ computeWikiContentHash,
335
+ changedPathsSince,
336
+ wikiCompletenessFromMeta,
337
+ wikiCompleteness,
338
+ wikiStaleness,
339
+ wikiStalenessAsync
340
+ };
341
+ //# sourceMappingURL=chunk-USZA7GWL.js.map
@@ -14,21 +14,21 @@ import {
14
14
  toolResultPayload,
15
15
  toolResultText,
16
16
  withoutThinkingBlocks
17
- } from "./chunk-GTUD2WMY.js";
17
+ } from "./chunk-DBREN25X.js";
18
18
  import {
19
19
  filterEntriesToActivePath
20
- } from "./chunk-W6GROXXM.js";
20
+ } from "./chunk-O5F25NIE.js";
21
21
  import {
22
22
  formatSize
23
- } from "./chunk-OZNBF4L3.js";
23
+ } from "./chunk-KECNXMDE.js";
24
24
  import {
25
25
  ceilChars,
26
26
  contentChars,
27
27
  estimateAgentMessageTokens
28
- } from "./chunk-NZMNUPZZ.js";
28
+ } from "./chunk-77CZRFTE.js";
29
29
  import {
30
30
  init_esm_shims
31
- } from "./chunk-3R73A4XB.js";
31
+ } from "./chunk-ECBHH7LU.js";
32
32
 
33
33
  // src/domains/session/compaction/tokens.ts
34
34
  init_esm_shims();
@@ -50,7 +50,15 @@ function estimateCustom(entry) {
50
50
  return ceilChars(contentChars(entry.data));
51
51
  }
52
52
  function estimateSummary(entry) {
53
- return ceilChars(entry.summary.length);
53
+ let tokens = ceilChars(entry.summary.length);
54
+ if (entry.kind !== "compactionSummary") return tokens;
55
+ if (entry.userContext) tokens += ceilChars(entry.userContext.text.length + 40) + 4;
56
+ for (const skill of entry.skillContext?.skills ?? []) {
57
+ tokens += ceilChars(skill.requestText.length + 40) + 4;
58
+ tokens += ceilChars(JSON.stringify(skill.activation).length + 32) + 4;
59
+ for (const block of skill.content) tokens += ceilChars(block.text.length) + 4;
60
+ }
61
+ return tokens;
54
62
  }
55
63
  function estimateTokens(entry) {
56
64
  switch (entry.kind) {
@@ -201,7 +209,7 @@ function firstLine(text) {
201
209
  return line.trim().slice(0, PREVIEW_LIMIT).replace(/"/g, '\\"');
202
210
  }
203
211
  function renderMarker(input) {
204
- const ref = input.ref.entry;
212
+ const ref = input.alias ?? input.ref.entry;
205
213
  const fields = [`ref=${ref}`, `reason=${input.reason}`];
206
214
  if (input.by !== void 0) fields.push(`by=${input.by}`);
207
215
  fields.push(`tool=${input.toolName}`);
@@ -268,9 +276,11 @@ function eventIndex(entries, lastEvictionTurnId) {
268
276
  const index = entries.findIndex((entry) => entry.turnId === lastEvictionTurnId);
269
277
  return index < 0 ? entries.length : index;
270
278
  }
271
- function projectWorkingSet(entries, view) {
272
- if (view.evicted.size === 0 && view.evictionEvents === 0) return [...entries];
273
- const cutoff = view.evictionEvents > 0 ? eventIndex(entries, view.lastEvictionTurnId) : -1;
279
+ function projectWorkingSet(entries, view, activeLeafTurnId) {
280
+ const checkpoint = filterEntriesToActivePath(entries, activeLeafTurnId).reverse().find((entry) => entry.kind === "compactionSummary");
281
+ const compactionIndex = checkpoint ? entries.indexOf(checkpoint) : -1;
282
+ if (view.evicted.size === 0 && view.evictionEvents === 0 && compactionIndex < 0) return [...entries];
283
+ const cutoff = Math.max(compactionIndex, view.evictionEvents > 0 ? eventIndex(entries, view.lastEvictionTurnId) : -1);
274
284
  const out = [];
275
285
  for (let index = 0; index < entries.length; index += 1) {
276
286
  const entry = entries[index];
@@ -292,7 +302,7 @@ function projectWorkingSet(entries, view) {
292
302
  // src/domains/context/working-set/engine.ts
293
303
  var NO_CALL_PATHS = /* @__PURE__ */ new Map();
294
304
  var PENDING_EVENT_TURN_ID = "";
295
- function markerFor(entry, candidate, callPaths) {
305
+ function markerFor(entry, candidate, callPaths, alias) {
296
306
  if (entry.kind !== "message") return null;
297
307
  if (entry.role === "assistant") return hasThinking(entry.payload) ? "" : null;
298
308
  if (entry.role !== "tool_result") return null;
@@ -300,6 +310,7 @@ function markerFor(entry, candidate, callPaths) {
300
310
  const toolCallId = typeof payload.obj.toolCallId === "string" ? payload.obj.toolCallId : void 0;
301
311
  return renderMarker({
302
312
  ref: candidate.ref,
313
+ ...alias === void 0 ? {} : { alias },
303
314
  reason: candidate.reason,
304
315
  by: candidate.by,
305
316
  toolName: payload.toolName,
@@ -349,8 +360,8 @@ function sumTokens(entries, estimate) {
349
360
  for (const entry of entries) total += estimate(entry);
350
361
  return total;
351
362
  }
352
- function tokensFreedByEviction(estimateTokens2, entry, candidate, callPaths = NO_CALL_PATHS) {
353
- const marker = markerFor(entry, candidate, callPaths);
363
+ function tokensFreedByEviction(estimateTokens2, entry, candidate, callPaths = NO_CALL_PATHS, alias) {
364
+ const marker = markerFor(entry, candidate, callPaths, alias);
354
365
  if (marker === null) return 0;
355
366
  const key = refKey(candidate.ref);
356
367
  const projected = projectWorkingSet([entry], soloView(key, pendingState(candidate, marker, "")))[0] ?? entry;
@@ -364,17 +375,21 @@ function planEviction(policy, input) {
364
375
  const callPaths = callPathsByToolCallId(input.entries);
365
376
  const items = [];
366
377
  const claimed = /* @__PURE__ */ new Set();
378
+ let aliasSequence = input.view.recallAliasSequence ?? [...input.view.evicted.values()].reduce((max, state) => Math.max(max, Number(state.alias?.slice(1)) || 0), 0);
367
379
  for (const candidate of candidates) {
368
380
  const key = refKey(candidate.ref);
369
381
  if (input.view.evicted.has(key) || claimed.has(key)) continue;
370
382
  const entry = byTurnId.get(key);
371
383
  if (entry === void 0) continue;
372
- const marker = markerFor(entry, candidate, callPaths);
384
+ const alias = entry.kind === "message" && entry.role === "tool_result" ? `r${aliasSequence + 1}` : void 0;
385
+ const marker = markerFor(entry, candidate, callPaths, alias);
373
386
  if (marker === null) continue;
374
- const tokensFreed = tokensFreedByEviction(input.estimateTokens, entry, candidate, callPaths);
387
+ const tokensFreed = tokensFreedByEviction(input.estimateTokens, entry, candidate, callPaths, alias);
375
388
  if (tokensFreed <= 0) continue;
376
389
  claimed.add(key);
390
+ if (alias !== void 0) aliasSequence += 1;
377
391
  items.push({
392
+ ...alias === void 0 ? {} : { alias },
378
393
  ref: candidate.ref,
379
394
  reason: candidate.reason,
380
395
  tokensFreed,
@@ -563,7 +578,7 @@ function findTurnStartIndex(entries, entryIndex, startIndex = 0) {
563
578
  function isValidCutPoint(entry) {
564
579
  switch (entry.kind) {
565
580
  case "message":
566
- return entry.role !== "tool_result";
581
+ return entry.role !== "tool_result" && entry.role !== "tool_call";
567
582
  case "bashExecution":
568
583
  case "custom":
569
584
  case "skillActivation":
@@ -593,6 +608,29 @@ function findValidCutPoints(entries, startIndex, endIndex) {
593
608
  }
594
609
  return cuts;
595
610
  }
611
+ function findToolBatchStart(entries, resultIndex, startIndex, endIndex) {
612
+ for (let index = resultIndex - 1; index >= startIndex; index--) {
613
+ const entry = entries[index];
614
+ if (entry?.kind !== "message") continue;
615
+ if (entry.role === "user") break;
616
+ if (entry.role !== "assistant") continue;
617
+ const payload = entry.payload;
618
+ if (!Array.isArray(payload?.content)) break;
619
+ const callIds = /* @__PURE__ */ new Set();
620
+ for (const block of payload.content) {
621
+ if (block?.type === "toolCall" && typeof block.id === "string") callIds.add(block.id);
622
+ }
623
+ if (callIds.size === 0) break;
624
+ for (let tail = index + 1; tail < endIndex; tail++) {
625
+ const result = entries[tail];
626
+ if (result?.kind !== "message" || result.role !== "tool_result") continue;
627
+ const id = result.payload?.toolCallId;
628
+ if (typeof id !== "string" || !callIds.has(id)) return -1;
629
+ }
630
+ return index;
631
+ }
632
+ return -1;
633
+ }
596
634
  function findCutPoint(entries, keepRecentTokens, opts = {}) {
597
635
  const startIndex = opts.startIndex ?? 0;
598
636
  const endIndex = opts.endIndex ?? entries.length;
@@ -613,6 +651,9 @@ function findCutPoint(entries, keepRecentTokens, opts = {}) {
613
651
  break;
614
652
  }
615
653
  }
654
+ if (cutIndex === -1 && entry.kind === "message" && (entry.role === "tool_result" || entry.role === "tool_call")) {
655
+ cutIndex = findToolBatchStart(entries, i, startIndex, endIndex);
656
+ }
616
657
  break;
617
658
  }
618
659
  }
@@ -639,40 +680,18 @@ function findCutPoint(entries, keepRecentTokens, opts = {}) {
639
680
  };
640
681
  }
641
682
 
642
- // src/domains/context/working-set/visible.ts
643
- init_esm_shims();
644
- function compactionCut(entries) {
645
- let compactionIndex = -1;
646
- for (let i = entries.length - 1; i >= 0; i -= 1) {
647
- if (entries[i]?.kind === "compactionSummary") {
648
- compactionIndex = i;
649
- break;
650
- }
651
- }
652
- const compaction = entries[compactionIndex];
653
- if (compaction?.kind !== "compactionSummary") return { compactionIndex: -1, visible: [...entries] };
654
- const firstKeptIndex = compaction.firstKeptTurnId.length > 0 ? entries.findIndex((entry) => entry.turnId === compaction.firstKeptTurnId) : -1;
655
- const kept = firstKeptIndex >= 0 && firstKeptIndex < compactionIndex ? entries.slice(firstKeptIndex, compactionIndex) : [];
656
- return { compactionIndex, visible: [...kept, ...entries.slice(compactionIndex + 1)] };
657
- }
658
- function selectVisibleEntries(entries, activeLeafTurnId) {
659
- return compactionCut(filterEntriesToActivePath(entries, activeLeafTurnId)).visible;
660
- }
661
-
662
683
  export {
684
+ projectWorkingSet,
663
685
  estimateTokens,
664
686
  getLastAssistantUsage,
665
687
  calculateContextTokens,
666
688
  findCutPoint,
667
689
  DEFAULT_RESERVE_TOKENS,
668
690
  DEFAULT_KEEP_RECENT_TOKENS,
669
- projectWorkingSet,
670
691
  tokensFreedByEviction,
671
692
  planEviction,
672
693
  buildEvictionFields,
673
694
  isProtected,
674
- resolveWorkingSetPolicy,
675
- compactionCut,
676
- selectVisibleEntries
695
+ resolveWorkingSetPolicy
677
696
  };
678
- //# sourceMappingURL=chunk-ZA4VCIGV.js.map
697
+ //# sourceMappingURL=chunk-UUQ5G6EZ.js.map
@@ -1,15 +1,75 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
- toPosixPath
4
- } from "./chunk-OQE5J4C6.js";
3
+ canonicalizeExistingPath
4
+ } from "./chunk-KQ6IDQIB.js";
5
5
  import {
6
6
  init_esm_shims
7
- } from "./chunk-3R73A4XB.js";
7
+ } from "./chunk-ECBHH7LU.js";
8
8
 
9
9
  // src/tools/ignore-policy.ts
10
10
  init_esm_shims();
11
11
  import { existsSync } from "node:fs";
12
12
  import { dirname, join } from "node:path";
13
+
14
+ // src/tools/path-utils.ts
15
+ init_esm_shims();
16
+ import { accessSync, constants } from "node:fs";
17
+ import { homedir } from "node:os";
18
+ import { isAbsolute, resolve as resolvePath, sep } from "node:path";
19
+ function toPosixPath(value) {
20
+ return value.split(sep).join("/");
21
+ }
22
+ var UNICODE_SPACES = /[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g;
23
+ var NARROW_NO_BREAK_SPACE = "\u202F";
24
+ function normalizeUnicodeSpaces(value) {
25
+ return value.replace(UNICODE_SPACES, " ");
26
+ }
27
+ function fileExists(filePath) {
28
+ try {
29
+ accessSync(filePath, constants.F_OK);
30
+ return true;
31
+ } catch {
32
+ return false;
33
+ }
34
+ }
35
+ function normalizeAtPrefix(filePath) {
36
+ return filePath.startsWith("@") ? filePath.slice(1) : filePath;
37
+ }
38
+ function tryMacOSScreenshotPath(filePath) {
39
+ return filePath.replace(/ (AM|PM)\./gi, `${NARROW_NO_BREAK_SPACE}$1.`);
40
+ }
41
+ function tryNfdVariant(filePath) {
42
+ return filePath.normalize("NFD");
43
+ }
44
+ function tryCurlyQuoteVariant(filePath) {
45
+ return filePath.replace(/'/g, "\u2019");
46
+ }
47
+ function expandPath(filePath) {
48
+ const normalized = normalizeUnicodeSpaces(normalizeAtPrefix(filePath));
49
+ if (normalized === "~") return homedir();
50
+ if (normalized.startsWith("~/")) return homedir() + normalized.slice(1);
51
+ return normalized;
52
+ }
53
+ function resolveToCwd(filePath, cwd = process.cwd()) {
54
+ const expanded = expandPath(filePath);
55
+ const resolved = isAbsolute(expanded) ? resolvePath(expanded) : resolvePath(cwd, expanded);
56
+ return canonicalizeExistingPath(resolved);
57
+ }
58
+ function resolveReadPath(filePath, cwd = process.cwd()) {
59
+ const resolved = resolveToCwd(filePath, cwd);
60
+ if (fileExists(resolved)) return resolved;
61
+ const amPmVariant = tryMacOSScreenshotPath(resolved);
62
+ if (amPmVariant !== resolved && fileExists(amPmVariant)) return amPmVariant;
63
+ const nfdVariant = tryNfdVariant(resolved);
64
+ if (nfdVariant !== resolved && fileExists(nfdVariant)) return nfdVariant;
65
+ const curlyVariant = tryCurlyQuoteVariant(resolved);
66
+ if (curlyVariant !== resolved && fileExists(curlyVariant)) return curlyVariant;
67
+ const nfdCurlyVariant = tryCurlyQuoteVariant(nfdVariant);
68
+ if (nfdCurlyVariant !== resolved && fileExists(nfdCurlyVariant)) return nfdCurlyVariant;
69
+ return resolved;
70
+ }
71
+
72
+ // src/tools/ignore-policy.ts
13
73
  var ALWAYS_EXCLUDED_DIRS = [".clio-coder", ".fallow", ".git"];
14
74
  var GENERATED_DIRS = [
15
75
  ".cache",
@@ -118,6 +178,10 @@ function compileGlobRegex(pattern) {
118
178
  }
119
179
 
120
180
  export {
181
+ toPosixPath,
182
+ expandPath,
183
+ resolveToCwd,
184
+ resolveReadPath,
121
185
  rgIgnoreArgs,
122
186
  fdIgnoreArgs,
123
187
  fallbackIgnoredDirs,
@@ -125,4 +189,4 @@ export {
125
189
  normalizeGlobInput,
126
190
  compileGlobRegex
127
191
  };
128
- //# sourceMappingURL=chunk-VG7TBQIY.js.map
192
+ //# sourceMappingURL=chunk-V552WL53.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- parseFrontmatter
4
- } from "./chunk-RKKLTLYB.js";
5
2
  import {
6
3
  loadSkills
7
- } from "./chunk-2ZSONWVL.js";
4
+ } from "./chunk-536HXRFE.js";
5
+ import {
6
+ parseFrontmatter
7
+ } from "./chunk-CXQ37WJH.js";
8
8
  import {
9
9
  enabledExtensionResourceRoots
10
- } from "./chunk-TQAHXW6Y.js";
10
+ } from "./chunk-22PQ4TX4.js";
11
11
  import {
12
12
  assertAgentSpecPolicy,
13
13
  isAgentAudience,
@@ -19,16 +19,16 @@ import {
19
19
  isShadowAgent,
20
20
  normalizeAgentSpec,
21
21
  parseResultContract
22
- } from "./chunk-KFV5L5SK.js";
22
+ } from "./chunk-OQM5IVJY.js";
23
23
  import {
24
24
  resolvePackageRoot
25
- } from "./chunk-IWHMRKLL.js";
25
+ } from "./chunk-E3LEPLQ2.js";
26
26
  import {
27
27
  clioConfigDir
28
- } from "./chunk-BYP5D4HI.js";
28
+ } from "./chunk-CTTI7G3T.js";
29
29
  import {
30
30
  init_esm_shims
31
- } from "./chunk-3R73A4XB.js";
31
+ } from "./chunk-ECBHH7LU.js";
32
32
 
33
33
  // src/domains/agents/recipe.ts
34
34
  init_esm_shims();
@@ -396,4 +396,4 @@ export {
396
396
  parseAgentRecipeSchema,
397
397
  discoverAgentRecipes
398
398
  };
399
- //# sourceMappingURL=chunk-7UGL4MB5.js.map
399
+ //# sourceMappingURL=chunk-VAHLPXPY.js.map