@iowarp/clio-coder 0.4.4 → 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 (555) hide show
  1. package/CHANGELOG.md +92 -2
  2. package/CONTRIBUTING.md +25 -15
  3. package/README.md +340 -27
  4. package/dist/{acp-WNAYYF4F.js → acp-H3CU2HBQ.js} +25 -24
  5. package/dist/{agents-3OKXHLOI.js → agents-IXQQZ7BD.js} +77 -77
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-VKNNMGPU.js → auth-R7KYF7N3.js} +38 -38
  8. package/dist/builtins-CRFDQUVP.js +22 -0
  9. package/dist/{chunk-TQAHXW6Y.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-JCI2ROMZ.js → chunk-3T4DXWP6.js} +7 -7
  15. package/dist/{chunk-DR52UMZW.js → chunk-3UW3KU4A.js} +2 -2
  16. package/dist/{chunk-6Q3CYFD3.js → chunk-4SVIVOMC.js} +184 -33
  17. package/dist/{chunk-W54I7H25.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-I2DWJ4GM.js → chunk-5DDOTTG4.js} +54 -42
  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-3ODX73FK.js → chunk-5VTJP36Q.js} +4 -4
  24. package/dist/{chunk-54X7T7DK.js → chunk-5ZMXGW7P.js} +79 -7
  25. package/dist/chunk-5ZSZEYJK.js +119 -0
  26. package/dist/{chunk-IXIY2H4R.js → chunk-633EXGZA.js} +5 -5
  27. package/dist/{chunk-CUSRQKPU.js → chunk-6CDNRHWH.js} +299 -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-JEIYHLOR.js → chunk-6SYEGZI3.js} +12 -12
  31. package/dist/{chunk-DQOVN6KV.js → chunk-6YA46L5A.js} +4 -4
  32. package/dist/{chunk-NZMNUPZZ.js → chunk-77CZRFTE.js} +3 -3
  33. package/dist/{chunk-6PAZTBPA.js → chunk-7HBHHVCK.js} +15 -6
  34. package/dist/{chunk-25QBEXRS.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-3UUXNFEX.js → chunk-7YJWEF2L.js} +61 -34
  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-I5FWO7L5.js → chunk-B6UM3OZC.js} +2 -2
  43. package/dist/{chunk-2CU2H6KE.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-QZWQA4DE.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-YNFKXPEC.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-XULDXHTN.js → chunk-DRD2A54W.js} +102 -50
  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-FEAXX7B6.js → chunk-EHCPSZJF.js} +4 -4
  65. package/dist/{chunk-4NSRCOYP.js → chunk-EHOSNVVM.js} +3 -2
  66. package/dist/{chunk-7UGL4MB5.js → chunk-EQEJJ53P.js} +10 -10
  67. package/dist/{chunk-GWZNEVM2.js → chunk-EWD5P3GK.js} +9 -9
  68. package/dist/{chunk-6UINWWS6.js → chunk-F34AR6O3.js} +14 -14
  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-Y55JBDO5.js → chunk-FSTIBAGM.js} +38 -23
  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-TOIVGRUX.js → chunk-GJ24ODAX.js} +5 -5
  76. package/dist/{chunk-QUFRYSWI.js → chunk-GNQRWTMY.js} +129 -48
  77. package/dist/{chunk-5ICU3EUH.js → chunk-GVYWZNRK.js} +5 -5
  78. package/dist/{chunk-GX5WYQO4.js → chunk-GXCCHKN6.js} +6 -6
  79. package/dist/{chunk-K6T2ZAMZ.js → chunk-HGSLRG33.js} +6 -6
  80. package/dist/{chunk-26QSH3EJ.js → chunk-HHVJNVUJ.js} +5 -5
  81. package/dist/{chunk-F4EKGO4N.js → chunk-HL26ADLH.js} +4 -2
  82. package/dist/{chunk-JT2RFCC5.js → chunk-HR3HPQ76.js} +5 -5
  83. package/dist/{chunk-ID64D7PE.js → chunk-HXHFDHB6.js} +24 -24
  84. package/dist/{chunk-ELWDPP3Y.js → chunk-I7VLWRK2.js} +8 -8
  85. package/dist/{chunk-6OSVSQL5.js → chunk-ICO4TQ2F.js} +7 -5
  86. package/dist/{chunk-SZAA6XDG.js → chunk-IFDRAD6F.js} +2 -2
  87. package/dist/{chunk-72YIHOZQ.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-AUPNRN7C.js → chunk-K2HL3GBL.js} +4 -4
  92. package/dist/{chunk-2ASED4PZ.js → chunk-K6RDB7IA.js} +26 -26
  93. package/dist/{chunk-FFUPXJC4.js → chunk-KDWLXVMN.js} +23 -24
  94. package/dist/{chunk-OZNBF4L3.js → chunk-KECNXMDE.js} +2 -2
  95. package/dist/{chunk-6QOTUPRG.js → chunk-KF6GFW6O.js} +66 -18
  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-3UNOLWNZ.js → chunk-KTFSFCVN.js} +20 -9
  100. package/dist/{chunk-57XXR6DR.js → chunk-KYKNBD4Y.js} +24 -23
  101. package/dist/{chunk-IRXAATOX.js → chunk-L4N3DWNW.js} +3 -3
  102. package/dist/{chunk-LCGCVYZ4.js → chunk-LQTKDAUO.js} +2 -2
  103. package/dist/{chunk-U6TMQNSI.js → chunk-LTR5QCLS.js} +4 -4
  104. package/dist/chunk-LUL5Z66S.js +221 -0
  105. package/dist/{chunk-ELZVTCGV.js → chunk-LVFANMOH.js} +151 -327
  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-NXYCB2VD.js → chunk-M6TAYK66.js} +6 -6
  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-DXKJURES.js → chunk-MDU3C27C.js} +10 -7
  113. package/dist/{chunk-6XLNIQDB.js → chunk-MYI32N4R.js} +2 -2
  114. package/dist/{chunk-3GY4F45V.js → chunk-NC4KV7EL.js} +6 -6
  115. package/dist/{chunk-LLXSDWXS.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-RZDWV63N.js → chunk-NY6IWDVU.js} +6 -6
  119. package/dist/{chunk-XXYSBZIQ.js → chunk-O2RQ7LCK.js} +4 -4
  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-NXIMQY5W.js → chunk-ODUTYZIU.js} +5 -5
  123. package/dist/{chunk-LTIKRKFL.js → chunk-ONRTXOZY.js} +4 -4
  124. package/dist/{chunk-KFV5L5SK.js → chunk-OQM5IVJY.js} +118 -232
  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-RXTN6AKH.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-2DSOYNFC.js → chunk-R6MAYTMS.js} +7 -7
  135. package/dist/{chunk-JQLNNIKT.js → chunk-R6MICQYU.js} +6 -6
  136. package/dist/{chunk-NAI6ZFCY.js → chunk-RLTT5GVY.js} +122 -11
  137. package/dist/{chunk-DT3LWJOB.js → chunk-RXIOCVBZ.js} +24 -6
  138. package/dist/{chunk-N56KALIC.js → chunk-S32UQ5GL.js} +61 -34
  139. package/dist/{chunk-UEPWCCTY.js → chunk-SBZX6ARC.js} +12 -12
  140. package/dist/chunk-SD7SHNDW.js +15 -0
  141. package/dist/{chunk-NRO2BJRH.js → chunk-SDWNDICN.js} +10235 -4015
  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-OMQNJVKW.js → chunk-SRZOW5L2.js} +43 -13
  146. package/dist/{chunk-3M6DQK6S.js → chunk-T334FW2H.js} +7 -7
  147. package/dist/{chunk-V76WTFTW.js → chunk-T52TPHYC.js} +6 -6
  148. package/dist/{chunk-I7XBWTYH.js → chunk-T53XI6I7.js} +5 -5
  149. package/dist/{chunk-2ZSONWVL.js → chunk-T7FDXNRU.js} +13 -13
  150. package/dist/{chunk-JSD46VO2.js → chunk-TEG3RYVZ.js} +43 -36
  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-75W7L2E2.js → chunk-TZ7MFRG4.js} +1041 -162
  154. package/dist/{chunk-36CT5VVL.js → chunk-U2JOLB7O.js} +126 -77
  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-YECAMM3D.js → chunk-U7H5WRG5.js} +5 -5
  158. package/dist/{chunk-RQCKCSRL.js → chunk-U7VQ4NI4.js} +22 -22
  159. package/dist/{chunk-5TUB6SLS.js → chunk-UFYNOQK4.js} +7 -7
  160. package/dist/{chunk-R346GLFC.js → chunk-UHW5V7HC.js} +2 -2
  161. package/dist/{chunk-USR47QNF.js → chunk-UL36QJX6.js} +14 -14
  162. package/dist/{chunk-VIA6RFQZ.js → chunk-UQIVHSE4.js} +4 -4
  163. package/dist/{chunk-RAY4OVGZ.js → chunk-URBGEOH3.js} +5 -5
  164. package/dist/chunk-USZA7GWL.js +341 -0
  165. package/dist/{chunk-YD5GIKET.js → chunk-UTUNT5QL.js} +48 -579
  166. package/dist/{chunk-ZA4VCIGV.js → chunk-UUQ5G6EZ.js} +60 -41
  167. package/dist/{chunk-23L32XTI.js → chunk-UXAC2FX4.js} +68 -39
  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-EXLD33WO.js → chunk-VLPTKCKT.js} +24 -9
  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-S6PYF2XF.js → chunk-WFKDPU7U.js} +4 -4
  176. package/dist/{chunk-BJVFZO5U.js → chunk-WJIMKGD6.js} +7 -7
  177. package/dist/{chunk-5636DCO5.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-4M6Z5QVF.js → chunk-XXBQKW32.js} +11 -11
  182. package/dist/{chunk-OEJSLEPW.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-Q4WO54TA.js → chunk-ZMZQEBKI.js} +14 -14
  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 +44 -44
  190. package/dist/clio-5I2IBFYL.js +26 -0
  191. package/dist/{code-nav-IJR2DBPR.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-2TGAI2RC.js → components-TNIKXCBH.js} +13 -13
  195. package/dist/{config-IUA6OYNS.js → config-Y2JDJ3JJ.js} +210 -124
  196. package/dist/configure-SML6UBZ5.js +55 -0
  197. package/dist/{context-4MPR7WKB.js → context-P5YSEO55.js} +125 -121
  198. package/dist/{context-2DKHWH2T.js → context-QQ53HSGJ.js} +91 -62
  199. package/dist/{context-BOYF5EJM.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-3I3FYX6Y.js → context-working-set-CNLSQN5K.js} +31 -31
  204. package/dist/detail-5572VLBO.js +114 -0
  205. package/dist/{dispatch-runner-RJ5I2F2O.js → dispatch-runner-FRHD6P2O.js} +191 -116
  206. package/dist/{docs-SPOV3BAN.js → docs-BL7ROUFN.js} +4 -4
  207. package/dist/{doctor-DKICC2SN.js → doctor-N3LCM2LG.js} +58 -58
  208. package/dist/{eval-OQOQUDHK.js → eval-BUU3ZOUZ.js} +473 -168
  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-4DQ25GUQ.js → evidence-SQ5DNFEN.js} +110 -94
  212. package/dist/{evolve-GSS52E5J.js → evolve-IJNUFZDS.js} +107 -91
  213. package/dist/{extensions-G7MFLYHT.js → extensions-YVRHX6ZI.js} +16 -16
  214. package/dist/{fleet-Q37YHHAQ.js → fleet-ZNNVSYFO.js} +147 -147
  215. package/dist/{fleet-commands-G7E4N7SM.js → fleet-commands-5YE7NPJL.js} +27 -26
  216. package/dist/{fleet-decisions-O7M6QBA2.js → fleet-decisions-3SBSCTCW.js} +16 -15
  217. package/dist/{fleet-graph-TOUBW6OW.js → fleet-graph-6HHPWF5T.js} +39 -38
  218. package/dist/{fleet-inspect-SW33JJNI.js → fleet-inspect-JEYMGCGC.js} +107 -91
  219. package/dist/{fleet-new-RDVJLHHH.js → fleet-new-RCKGSRDV.js} +3 -3
  220. package/dist/{fleet-preflight-CV2655TW.js → fleet-preflight-QRSHIIDE.js} +10 -9
  221. package/dist/{fleet-validate-KESZX2YH.js → fleet-validate-4PM4GDDL.js} +46 -42
  222. package/dist/{fleet-verify-UQPMTVE3.js → fleet-verify-NJDTHTO3.js} +105 -89
  223. package/dist/fleet-view-UP2BWQQY.js +117 -0
  224. package/dist/{init-PXEXQSBF.js → init-S3GZQ5ZF.js} +123 -123
  225. package/dist/{install-NKNG7KD4.js → install-3RZDDP23.js} +5 -5
  226. package/dist/{interop-ZG5T62U3.js → interop-YOTGXFJM.js} +25 -25
  227. package/dist/inventory-K2OZ36YJ.js +117 -0
  228. package/dist/{library-B2W4N74O.js → library-GJI6W6OK.js} +45 -44
  229. package/dist/{memory-YCANYS5A.js → memory-OQOXQGYD.js} +107 -93
  230. package/dist/{models-GERTU3YI.js → models-3IK2Y5WE.js} +63 -62
  231. package/dist/{monitor-CPNIUULB.js → monitor-FTJLTKCQ.js} +136 -107
  232. package/dist/{orchestrator-J4BSH4WQ.js → orchestrator-N47O7SFD.js} +1159 -697
  233. package/dist/{panes-BOHAEGYC.js → panes-7BTYH3XQ.js} +8 -8
  234. package/dist/{panes-NXSLDQZ2.js → panes-WPOMEMRH.js} +22 -22
  235. package/dist/{paths-VSUWNC22.js → paths-J3KN7UAO.js} +12 -12
  236. package/dist/preload-65U34NG6.js +115 -0
  237. package/dist/{registry-LG64LTF4.js → registry-DESGAXWK.js} +3 -3
  238. package/dist/{reset-TNWTB5LU.js → reset-MUVQDLNL.js} +20 -20
  239. package/dist/{resources-4PXNMD5G.js → resources-LM76COAO.js} +41 -40
  240. package/dist/{run-D6XJ34CN.js → run-3VFZQ33N.js} +162 -156
  241. package/dist/{share-2NWMJJEE.js → share-4JUB4BL7.js} +43 -42
  242. package/dist/{skills-KR7WON5G.js → skills-S36AAJHU.js} +47 -46
  243. package/dist/{skills-eval-O2ZNOLDS.js → skills-eval-G6T57L7M.js} +127 -107
  244. package/dist/{skills-inventory-ZZOUBK7O.js → skills-inventory-WLM46PJH.js} +41 -40
  245. package/dist/slash-commands-GBARG3Y7.js +91 -0
  246. package/dist/{steer-XA25PSCS.js → steer-S7D7IKPU.js} +7 -7
  247. package/dist/{support-7EMVWYG2.js → support-5VAEC32W.js} +14 -14
  248. package/dist/{targets-OMH2XCSN.js → targets-N5REUETU.js} +145 -94
  249. package/dist/tasks-6BVY5YZF.js +36 -0
  250. package/dist/{terminal-lease-C2J3JYRE.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-HALS6BLF.js → uninstall-FXYMFFRT.js} +17 -17
  256. package/dist/{upgrade-MS72RJEP.js → upgrade-4HD5HAIV.js} +40 -39
  257. package/dist/{usage-NHG6MCJM.js → usage-4GWM2WWP.js} +136 -105
  258. package/dist/{verifiers-7AUNVXDY.js → verifiers-GSKWKWVG.js} +28 -27
  259. package/dist/verify-3AS3ULCY.js +30 -0
  260. package/dist/{version-KGEG7EPO.js → version-RFPKO6T7.js} +4 -4
  261. package/dist/{web-fetch-V4FKSDAV.js → web-fetch-MQN4FH3X.js} +169 -18
  262. package/dist/wiki-generate-7BV7XWIY.js +614 -0
  263. package/dist/{with-panes-BDQEWBRT.js → with-panes-OFTNAR4Y.js} +34 -20
  264. package/dist/worker/entry.js +99 -88
  265. package/dist/{workspace-ZJ6BFM3Q.js → workspace-DZ7JADBG.js} +6 -6
  266. package/docs/README.md +7 -6
  267. package/docs/architecture/acp.md +10 -0
  268. package/docs/architecture/architecture.md +5 -5
  269. package/docs/architecture/context-engine.md +44 -59
  270. package/docs/architecture/context-working-set.md +7 -9
  271. package/docs/architecture/dispatch-architecture-rationale.md +1 -1
  272. package/docs/architecture/evidence-and-memory.md +10 -0
  273. package/docs/architecture/pi-boundary.md +37 -7
  274. package/docs/architecture/prompt-envelope-and-tools.md +7 -7
  275. package/docs/architecture/session-lifecycle.md +4 -4
  276. package/docs/architecture/worker-dispatch-mechanics.md +4 -0
  277. package/docs/guide/commands-and-modes.md +49 -36
  278. package/docs/guide/configuration-and-targets.md +7 -2
  279. package/docs/guide/configuration-reference.md +13 -3
  280. package/docs/guide/environment-variables.md +6 -2
  281. package/docs/guide/fleet-dispatch.md +12 -0
  282. package/docs/guide/installation-and-lifecycle.md +35 -9
  283. package/docs/guide/proactive-memory.md +1 -1
  284. package/docs/guide/skills-marketplace.md +11 -3
  285. package/docs/guide/tool-usage.md +9 -2
  286. package/docs/process/development-pipeline.md +10 -10
  287. package/docs/process/documentation-guide.md +2 -2
  288. package/docs/process/eval-runner.md +15 -0
  289. package/docs/process/evals-internal.md +1 -1
  290. package/docs/process/release-cut-checklist.md +6 -6
  291. package/evals/README.md +4 -0
  292. package/evals/behavioral-corpus-grader.mjs +147 -14
  293. package/evals/behavioral-model-negative-control.yaml +1 -0
  294. package/evals/behavioral-model.yaml +266 -1
  295. package/evals/fixtures/docs-retrieval.json +102 -0
  296. package/evals/fixtures/scalar-decision.json +17 -0
  297. package/evals/fixtures/scout-citation-pipeline.json +55 -0
  298. package/evals/fixtures/source-explanation.json +74 -0
  299. package/evals/fixtures/tool-arguments.json +18 -0
  300. package/evals/fixtures/tool-surface/read.txt +4 -0
  301. package/evals/fixtures/tool-surface/subdir/keep.txt +1 -0
  302. package/evals/no-edit-memory-grader.mjs +149 -0
  303. package/evals/scalar-decision-grader.py +41 -0
  304. package/evals/scalar-decision-machinery.ts +145 -0
  305. package/evals/source-explanation-grader.mjs +118 -0
  306. package/evals/tool-surface-grader.mjs +53 -0
  307. package/evals/tool-surface-model.yaml +274 -0
  308. package/package.json +14 -14
  309. package/skills/README.md +6 -6
  310. package/skills/registry.yaml +1 -1
  311. package/skills/skill-marketplace.json +1 -1
  312. package/src/cli/bootstrap-generate.ts +6 -0
  313. package/src/cli/config-inspect.ts +24 -7
  314. package/src/cli/config-trust.ts +62 -0
  315. package/src/cli/config.ts +8 -0
  316. package/src/cli/context-map.ts +75 -14
  317. package/src/cli/context.ts +46 -17
  318. package/src/cli/eval.ts +17 -3
  319. package/src/cli/modes/print.ts +32 -4
  320. package/src/cli/run.ts +16 -14
  321. package/src/cli/skills-eval.ts +10 -8
  322. package/src/cli/steer-channel.ts +31 -18
  323. package/src/cli/targets.ts +83 -31
  324. package/src/cli/tasks.ts +10 -1
  325. package/src/cli/upgrade.ts +9 -6
  326. package/src/cli/usage.ts +24 -0
  327. package/src/cli/wiki-generate.ts +239 -96
  328. package/src/core/bash-exec.ts +43 -15
  329. package/src/core/bus-events.ts +15 -0
  330. package/src/core/config.ts +33 -14
  331. package/src/core/defaults.ts +5 -4
  332. package/src/core/file-references.ts +11 -1
  333. package/src/core/incomplete-installation.ts +3 -1
  334. package/src/core/settings-layers.ts +21 -5
  335. package/src/core/termination.ts +26 -9
  336. package/src/core/untrusted-content.ts +16 -0
  337. package/src/core/workspace-trust.ts +179 -0
  338. package/src/domains/agents/builtins/coder.md +4 -2
  339. package/src/domains/agents/builtins/context-bootstrap.md +3 -1
  340. package/src/domains/agents/builtins/documenter.md +7 -4
  341. package/src/domains/agents/builtins/researcher.md +1 -0
  342. package/src/domains/agents/builtins/scout.md +7 -1
  343. package/src/domains/agents/result-contract.ts +199 -26
  344. package/src/domains/context/bootstrap-prompt.ts +11 -9
  345. package/src/domains/context/bootstrap.ts +74 -39
  346. package/src/domains/context/clio-md.ts +88 -26
  347. package/src/domains/context/codewiki/build-operation.ts +121 -0
  348. package/src/domains/context/codewiki/build-worker-protocol.ts +37 -3
  349. package/src/domains/context/codewiki/build-worker.ts +3 -35
  350. package/src/domains/context/codewiki/coordinator.ts +36 -6
  351. package/src/domains/context/codewiki/indexer.ts +59 -19
  352. package/src/domains/context/contract.ts +6 -2
  353. package/src/domains/context/extension.ts +72 -10
  354. package/src/domains/context/fingerprint.ts +39 -34
  355. package/src/domains/context/index.ts +7 -1
  356. package/src/domains/context/prompt-context.ts +55 -14
  357. package/src/domains/context/refresh.ts +9 -57
  358. package/src/domains/context/wiki/assemble.ts +14 -10
  359. package/src/domains/context/wiki/evidence.ts +209 -0
  360. package/src/domains/context/wiki/generate.ts +201 -67
  361. package/src/domains/context/wiki/meta.ts +10 -2
  362. package/src/domains/context/wiki/plan-store.ts +70 -14
  363. package/src/domains/context/wiki/plan.ts +71 -14
  364. package/src/domains/context/wiki/prompts.ts +42 -1
  365. package/src/domains/context/wiki/source-content.ts +106 -0
  366. package/src/domains/context/wiki/staleness.ts +33 -22
  367. package/src/domains/context/working-set/contract.ts +8 -2
  368. package/src/domains/context/working-set/engine.ts +17 -4
  369. package/src/domains/context/working-set/fold.ts +15 -2
  370. package/src/domains/context/working-set/marker.ts +2 -1
  371. package/src/domains/context/working-set/project.ts +18 -7
  372. package/src/domains/context/working-set/recall.ts +82 -56
  373. package/src/domains/dispatch/active-route-planner.ts +6 -3
  374. package/src/domains/dispatch/admission-queue.ts +19 -7
  375. package/src/domains/dispatch/admission.ts +3 -3
  376. package/src/domains/dispatch/budget-envelope.ts +47 -82
  377. package/src/domains/dispatch/capacity-lease.ts +57 -19
  378. package/src/domains/dispatch/contract.ts +10 -2
  379. package/src/domains/dispatch/event-pump.ts +28 -7
  380. package/src/domains/dispatch/execution-role.ts +49 -2
  381. package/src/domains/dispatch/execution-scheduler.ts +2 -0
  382. package/src/domains/dispatch/extension.ts +190 -105
  383. package/src/domains/dispatch/fleet-run.ts +20 -0
  384. package/src/domains/dispatch/gate-role-prompts.ts +4 -2
  385. package/src/domains/dispatch/parallel-writers.ts +34 -0
  386. package/src/domains/dispatch/reservation-store.ts +8 -34
  387. package/src/domains/dispatch/route-approval.ts +3 -3
  388. package/src/domains/dispatch/route-observer.ts +4 -2
  389. package/src/domains/dispatch/route-quality.ts +6 -1
  390. package/src/domains/dispatch/types.ts +4 -3
  391. package/src/domains/dispatch/worker-spawn.ts +58 -21
  392. package/src/domains/dispatch/workspace-checkpoint.ts +57 -0
  393. package/src/domains/eval/compare/behavioral.ts +81 -14
  394. package/src/domains/eval/compare/compare.ts +15 -5
  395. package/src/domains/eval/compare/envelope.ts +12 -5
  396. package/src/domains/eval/metrics/context.ts +24 -1
  397. package/src/domains/eval/metrics/tracked.ts +4 -28
  398. package/src/domains/eval/reports/comparison.ts +9 -9
  399. package/src/domains/eval/runners/clio-run.ts +5 -1
  400. package/src/domains/eval/schema/suite.ts +2 -0
  401. package/src/domains/eval/schema/validate.ts +1 -0
  402. package/src/domains/eval/suites/run.ts +189 -13
  403. package/src/domains/eval/verifiers/integrity.ts +39 -0
  404. package/src/domains/eval/verifiers/patch.ts +58 -2
  405. package/src/domains/eval/workspaces/temp-copy.ts +3 -0
  406. package/src/domains/evidence/build.ts +4 -2
  407. package/src/domains/interop/registry.ts +2 -2
  408. package/src/domains/middleware/hooks-io.ts +45 -26
  409. package/src/domains/middleware/hooks.ts +6 -0
  410. package/src/domains/middleware/injection-screen.ts +23 -0
  411. package/src/domains/middleware/rules.ts +5 -1
  412. package/src/domains/middleware/stalled-turn.ts +18 -3
  413. package/src/domains/middleware/task-board-reminder.ts +4 -2
  414. package/src/domains/middleware/task-nudge.ts +4 -1
  415. package/src/domains/mux/contract.ts +34 -1
  416. package/src/domains/mux/dock-controller.ts +8 -1
  417. package/src/domains/mux/index.ts +1 -0
  418. package/src/domains/mux/socket-client.ts +13 -3
  419. package/src/domains/observability/contract.ts +2 -2
  420. package/src/domains/observability/projection.ts +30 -9
  421. package/src/domains/prompts/compiler.ts +10 -2
  422. package/src/domains/prompts/contract.ts +7 -4
  423. package/src/domains/prompts/extension.ts +28 -64
  424. package/src/domains/prompts/fragments/identity/clio.md +23 -0
  425. package/src/domains/prompts/fragments/operating/contract.md +10 -0
  426. package/src/domains/prompts/fragments/operating/delegation.md +5 -0
  427. package/src/domains/prompts/fragments/wiki/page.md +28 -15
  428. package/src/domains/prompts/fragments/wiki/plan.md +4 -4
  429. package/src/domains/prompts/preload-prefix.ts +31 -0
  430. package/src/domains/prompts/preload.ts +135 -61
  431. package/src/domains/providers/auth/backend-file.ts +15 -11
  432. package/src/domains/providers/auth/storage.ts +3 -5
  433. package/src/domains/providers/catalog.ts +18 -3
  434. package/src/domains/providers/runtime-resolution.ts +11 -9
  435. package/src/domains/providers/runtimes/cloud/openrouter.ts +2 -0
  436. package/src/domains/resources/skills/promotion.ts +8 -1
  437. package/src/domains/safety/action-classifier.ts +9 -0
  438. package/src/domains/safety/autonomy.ts +10 -1
  439. package/src/domains/safety/contract.ts +5 -1
  440. package/src/domains/safety/default-path-policy.ts +11 -0
  441. package/src/domains/safety/extension.ts +11 -2
  442. package/src/domains/safety/policy-engine.ts +189 -32
  443. package/src/domains/safety/project-policy.ts +7 -2
  444. package/src/domains/safety/workspace-trust.ts +43 -0
  445. package/src/domains/session/compaction/compact.ts +384 -21
  446. package/src/domains/session/compaction/cut-point.ts +42 -5
  447. package/src/domains/session/compaction/tokens.ts +9 -1
  448. package/src/domains/session/decision-board.ts +43 -33
  449. package/src/domains/session/entries.ts +169 -4
  450. package/src/domains/session/prompt-manifest.ts +47 -8
  451. package/src/domains/session/task-board.ts +21 -3
  452. package/src/domains/user-tasks/handoff.ts +16 -0
  453. package/src/engine/acp/adapter.ts +44 -12
  454. package/src/engine/acp/server.ts +1 -0
  455. package/src/engine/acp/transport.ts +2 -1
  456. package/src/engine/acp/types.ts +6 -1
  457. package/src/engine/antigravity/subprocess-runtime.ts +20 -4
  458. package/src/engine/api-registry.ts +19 -2
  459. package/src/engine/apis/openai-completions.ts +13 -6
  460. package/src/engine/apis/output-budget.ts +26 -10
  461. package/src/engine/claude/sdk-runtime.ts +4 -3
  462. package/src/engine/env-api-keys.ts +2 -1
  463. package/src/engine/external-subprocess.ts +14 -3
  464. package/src/engine/loop-guard.ts +19 -2
  465. package/src/engine/provider-diagnostics.ts +129 -0
  466. package/src/engine/provider-payload.ts +3 -1
  467. package/src/engine/worker-runtime.ts +13 -2
  468. package/src/engine/worker-tools.ts +5 -1
  469. package/src/entry/extension-reload.ts +1 -0
  470. package/src/entry/orchestrator.ts +53 -15
  471. package/src/interactive/chat-loop-messages.ts +12 -4
  472. package/src/interactive/chat-loop.ts +115 -45
  473. package/src/interactive/chat-renderer.ts +60 -0
  474. package/src/interactive/context-recall-command.ts +2 -1
  475. package/src/interactive/dispatch-board.ts +17 -2
  476. package/src/interactive/editor-submit.ts +13 -0
  477. package/src/interactive/interactive-application.ts +8 -2
  478. package/src/interactive/interactive-event-projection.ts +7 -1
  479. package/src/interactive/interactive-presentation.ts +15 -7
  480. package/src/interactive/interactive-slash-runtime.ts +2 -0
  481. package/src/interactive/layout.ts +2 -1
  482. package/src/interactive/model-session-replay.ts +2 -2
  483. package/src/interactive/overlay-frame.ts +1 -0
  484. package/src/interactive/overlay-general-openers.ts +3 -1
  485. package/src/interactive/overlay-session-lifecycle.ts +6 -0
  486. package/src/interactive/overlays/ask-user.ts +1 -0
  487. package/src/interactive/overlays/message-picker.ts +1 -1
  488. package/src/interactive/renderers/tool-execution.ts +17 -1
  489. package/src/interactive/renderers/worker-entry.ts +25 -10
  490. package/src/interactive/slash-commands.ts +9 -7
  491. package/src/interactive/turn-context.ts +221 -53
  492. package/src/interactive/turn-middleware.ts +3 -1
  493. package/src/interactive/turn-persistence.ts +3 -0
  494. package/src/interactive/turn-runtime.ts +11 -2
  495. package/src/interactive/turn-state.ts +10 -9
  496. package/src/interactive/watch-pane.ts +18 -4
  497. package/src/interactive/worker-stream.ts +7 -7
  498. package/src/tools/agent-tools.ts +6 -3
  499. package/src/tools/bash.ts +1 -1
  500. package/src/tools/builtin-tool-catalog.ts +9 -2
  501. package/src/tools/codewiki/code-nav.ts +4 -10
  502. package/src/tools/compete-judge-task.ts +71 -0
  503. package/src/tools/compete-worktrees.ts +34 -0
  504. package/src/tools/context/index.ts +32 -7
  505. package/src/tools/context/surface.ts +15 -4
  506. package/src/tools/decide.ts +1 -1
  507. package/src/tools/dispatch-admission.ts +12 -1
  508. package/src/tools/dispatch-arguments.ts +38 -1
  509. package/src/tools/dispatch-plan.ts +7 -7
  510. package/src/tools/dispatch-runner.ts +48 -32
  511. package/src/tools/dispatch-schema.ts +30 -23
  512. package/src/tools/dispatch-scout-admission.ts +10 -44
  513. package/src/tools/dispatch-scout.ts +2 -3
  514. package/src/tools/find.ts +13 -4
  515. package/src/tools/grep.ts +13 -1
  516. package/src/tools/ls.ts +7 -1
  517. package/src/tools/monitor.ts +26 -11
  518. package/src/tools/network-policy.ts +11 -24
  519. package/src/tools/observation.ts +39 -2
  520. package/src/tools/read.ts +112 -15
  521. package/src/tools/registry.ts +54 -17
  522. package/src/tools/result-shaping.ts +110 -2
  523. package/src/tools/tasks.ts +33 -7
  524. package/src/tools/verify/frontend.ts +67 -30
  525. package/src/tools/verify/numeric.ts +6 -1
  526. package/src/tools/web-fetch-network.ts +179 -0
  527. package/src/tools/web-fetch-surface.ts +2 -1
  528. package/src/tools/web-fetch.ts +15 -13
  529. package/src/tools/worker-evidence.ts +27 -0
  530. package/src/worker/spec-contract.ts +12 -8
  531. package/dist/builtins-WGALA46I.js +0 -22
  532. package/dist/chunk-2WZ546HR.js +0 -792
  533. package/dist/chunk-5PSMVOLM.js +0 -56
  534. package/dist/chunk-EL24TAU4.js +0 -1560
  535. package/dist/chunk-IZXGRF7P.js +0 -4048
  536. package/dist/chunk-JVCV3ICN.js +0 -47
  537. package/dist/chunk-MNJGS2IN.js +0 -33
  538. package/dist/chunk-O5CVSAG5.js +0 -122
  539. package/dist/chunk-ODGTEFFI.js +0 -50
  540. package/dist/chunk-OQE5J4C6.js +0 -73
  541. package/dist/chunk-UUVG37B4.js +0 -244
  542. package/dist/chunk-V6HJFQZE.js +0 -228
  543. package/dist/clio-QLICPCF5.js +0 -25
  544. package/dist/configure-VEPX4NMX.js +0 -55
  545. package/dist/context-clear-S4ZJCQUX.js +0 -182
  546. package/dist/detail-A7JAVSIG.js +0 -98
  547. package/dist/evidence-4F5USFKH.js +0 -208
  548. package/dist/fleet-view-MN2VG4MR.js +0 -101
  549. package/dist/inventory-C26CFDRR.js +0 -101
  550. package/dist/preload-P6DGH2PZ.js +0 -13
  551. package/dist/slash-commands-ZXPJD64J.js +0 -92
  552. package/dist/tasks-IPAGMEIX.js +0 -36
  553. package/dist/tools-EFFEAIDP.js +0 -28
  554. package/dist/verify-FWYGPKMR.js +0 -29
  555. package/dist/wiki-generate-743CIGJW.js +0 -476
@@ -2,22 +2,27 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  TASK_MEMORY_DEFAULT_PROCEDURAL_CAP,
4
4
  TASK_MEMORY_POLICY_DEFAULT_TIMEOUT_MS,
5
+ isTerminalRunEnvelope,
5
6
  runTaskMemoryPolicy,
6
7
  taskMemoryBankDelta
7
- } from "./chunk-2WZ546HR.js";
8
- import {
9
- isTerminalRunEnvelope
10
- } from "./chunk-75W7L2E2.js";
8
+ } from "./chunk-TZ7MFRG4.js";
11
9
  import {
12
10
  hashToolCall
13
- } from "./chunk-6QOTUPRG.js";
11
+ } from "./chunk-KF6GFW6O.js";
14
12
  import {
15
13
  taskBoardCounts
16
- } from "./chunk-6PAZTBPA.js";
14
+ } from "./chunk-7HBHHVCK.js";
17
15
  import {
18
16
  legacyToolResultDigest,
19
17
  sanitizeToolResultDigest
20
- } from "./chunk-NAI6ZFCY.js";
18
+ } from "./chunk-RLTT5GVY.js";
19
+ import {
20
+ captureProjectSurface,
21
+ projectSurfaceTrustNotice
22
+ } from "./chunk-NTK3WTHM.js";
23
+ import {
24
+ INSTRUCTION_SHAPED_WARNING
25
+ } from "./chunk-WXA2CFJO.js";
21
26
  import {
22
27
  SKILL_INSTALL_OFFER_OPTION_NEVER,
23
28
  SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
@@ -25,36 +30,40 @@ import {
25
30
  SKILL_INSTALL_OFFER_OPTION_USER,
26
31
  SKILL_SUGGESTION_ANCHOR,
27
32
  SKILL_SUGGESTION_PREFIX
28
- } from "./chunk-54X7T7DK.js";
33
+ } from "./chunk-5ZMXGW7P.js";
29
34
  import {
30
35
  ToolNames
31
- } from "./chunk-4NSRCOYP.js";
36
+ } from "./chunk-EHOSNVVM.js";
32
37
  import {
33
38
  registerForegroundStream
34
- } from "./chunk-JSD46VO2.js";
39
+ } from "./chunk-TEG3RYVZ.js";
35
40
  import {
36
41
  ceilChars
37
- } from "./chunk-NZMNUPZZ.js";
42
+ } from "./chunk-77CZRFTE.js";
38
43
  import {
39
44
  BusChannels
40
- } from "./chunk-F4EKGO4N.js";
45
+ } from "./chunk-HL26ADLH.js";
46
+ import {
47
+ buildSafeToolEnv
48
+ } from "./chunk-GJ24ODAX.js";
41
49
  import {
50
+ gitCommitAttributionEnabled,
42
51
  reportCommitAttributionDiagnostic,
43
52
  withManagedGitCommitAttributionEnvironment
44
- } from "./chunk-U6TMQNSI.js";
53
+ } from "./chunk-LTR5QCLS.js";
45
54
  import {
46
55
  require_dist
47
- } from "./chunk-APJ265NV.js";
56
+ } from "./chunk-B5GGDIHT.js";
48
57
  import {
49
58
  safeResourceWrite
50
- } from "./chunk-WEPFGWHJ.js";
59
+ } from "./chunk-ZZFWWYLX.js";
51
60
  import {
52
61
  clioConfigDir
53
- } from "./chunk-BYP5D4HI.js";
62
+ } from "./chunk-CTTI7G3T.js";
54
63
  import {
55
64
  __toESM,
56
65
  init_esm_shims
57
- } from "./chunk-3R73A4XB.js";
66
+ } from "./chunk-ECBHH7LU.js";
58
67
 
59
68
  // src/domains/middleware/runtime.ts
60
69
  init_esm_shims();
@@ -207,11 +216,33 @@ function createHookBudgetTracker(options = {}) {
207
216
  // src/domains/middleware/rules.ts
208
217
  init_esm_shims();
209
218
 
219
+ // src/domains/middleware/injection-screen.ts
220
+ init_esm_shims();
221
+ var INJECTION_SCREEN_RULE = {
222
+ rule: {
223
+ id: "safety.untrusted-instructions",
224
+ source: "builtin",
225
+ description: "Warn when external tool data contains instruction-shaped markers",
226
+ enabled: true,
227
+ hooks: ["after_tool"],
228
+ effectKinds: ["annotate_tool_result"]
229
+ },
230
+ toolNames: ["web_fetch", "read", "bash", "dispatch", "monitor"],
231
+ predicate: (input) => input.metadata?.untrustedInstructionMarkers === true,
232
+ effects: [
233
+ {
234
+ kind: "annotate_tool_result",
235
+ severity: "warn",
236
+ message: INSTRUCTION_SHAPED_WARNING
237
+ }
238
+ ]
239
+ };
240
+
210
241
  // src/domains/middleware/stalled-turn.ts
211
242
  init_esm_shims();
212
243
  var STALLED_TURN_REGISTRATION_ID = "nudge.stalled-turn";
213
244
  var STALLED_TURN_REQUEST_CONTINUATION_MESSAGE = "You ended your turn after announcing an action without executing it: no tools were called. Continue now and perform the announced action, or state plainly that you are finished and waiting for the user.";
214
- var SKILL_SUGGESTION_WAIT_CONTINUATION_MESSAGE = "You ended your turn on a skill suggestion without doing the task. The suggestion line has already made the offer and only the operator loads a skill, so nothing is needed from them before you proceed. Continue the task now without the skill.";
245
+ var SKILL_SUGGESTION_WAIT_CONTINUATION_MESSAGE = "You ended your turn on a skill suggestion without doing the task. The suggestion line has already made the offer and only the operator loads a skill, so the skill choice needs nothing from them before you proceed. Continue the already-authorized task now without the skill. This continuation is not an operator answer to any other question: if the remaining work is a proposal awaiting an explicit operator go-ahead, park it on the task board and say so instead of implementing.";
215
246
  var INTENT_PATTERN = /\b(let me|i['’]ll|i will|i am going to|i['’]m going to|now i|next i|let's|let us)\b/i;
216
247
  var CONCRETE_ACTION_STEMS = [
217
248
  "add",
@@ -294,8 +325,10 @@ var ACTION_OBJECT_CONNECTOR_PATTERN = /^(?:at|for|in|into|on|through|to)\s+/i;
294
325
  var ACTION_OBJECT_DETERMINER_PATTERN = /^(?:a|an|my|our|that|the|their|these|this|those|your)\s+/i;
295
326
  var ACTION_OBJECT_PATTERN = /^(?!(?:again|everyone|later|next|now|soon|then|you)\b)[`"'./~]*[\p{L}\p{N}_-]/iu;
296
327
  var CONDITIONAL_LEAD_IN_PATTERN = /\b(?:if|once|unless|until|when|whenever)\b/i;
297
- var CONDITIONAL_INVITATION_PATTERN = /\b(?:ask|give|point|say|send|share|tell)\b[\s\S]*\b(?:and|then)\s*$/i;
298
- var CONDITIONAL_OFFER_SUFFIX_PATTERN = /\b(?:if\s+(?:needed|necessary|requested)\b|if\b[^.!?]*\byou\b|when(?:ever)?\s+you\b)/i;
328
+ var CONDITIONAL_INVITATION_PATTERN = /\b(?:answer|approve|ask|confirm|give|point|reply|respond|say|send|share|tell|type)\b[\s\S]*\b(?:and|then)\s*$/i;
329
+ var CONDITIONAL_OFFER_SUFFIX_PATTERN = /\b(?:if\s+(?:needed|necessary|requested|approved|confirmed)\b|(?:if|after|once|until|unless|when(?:ever)?|as\s+soon\s+as|provided|assuming)\b[^.!?]*\byou\b|(?:upon|on|after|with|pending|awaiting|following)\s+(?:your\s+|the\s+operator(?:'s)?\s+)?(?:approval|go-?ahead|confirmation|sign-?off|decision|word|green\s+light|okay|ok)\b)/i;
330
+ var OPERATOR_WAIT_LEAD_PATTERN = /\b(?:await(?:ing)?|pending|waiting\s+(?:for|on))\b/i;
331
+ var NEGATED_OR_HYPOTHETICAL_CLAUSE_PATTERN = /^\s*(?:not|never|would|could|might|may)\b/i;
299
332
  var LET_ME_KNOW_PATTERN = /\blet me know\b/i;
300
333
  var DEFERRAL_LEAD_PATTERN = /^\s*(?:just\s+|simply\s+|now\s+)?(?:wait|hold\s+off|hold|stand\s+by|pause|defer)\b/i;
301
334
  var COMPLETION_PATTERN = /^\s*(?:all\s+done|done|complete|completed|all\s+set)\b|^\s*(?:here(?:'s| is)\s+)?(?:a\s+)?summary\b|^\s*summary\s*:?$/i;
@@ -346,11 +379,12 @@ function announcesConcreteAction(sentence) {
346
379
  const intent = INTENT_PATTERN.exec(sentence);
347
380
  if (intent) {
348
381
  const leadIn = sentence.slice(0, intent.index);
349
- if (CONDITIONAL_LEAD_IN_PATTERN.test(leadIn) || CONDITIONAL_INVITATION_PATTERN.test(leadIn) || CONDITIONAL_OFFER_SUFFIX_PATTERN.test(sentence)) {
382
+ if (CONDITIONAL_LEAD_IN_PATTERN.test(leadIn) || CONDITIONAL_INVITATION_PATTERN.test(leadIn) || OPERATOR_WAIT_LEAD_PATTERN.test(leadIn) || CONDITIONAL_OFFER_SUFFIX_PATTERN.test(sentence)) {
350
383
  return false;
351
384
  }
352
385
  const clause = sentence.slice(intent.index + intent[0].length);
353
386
  if (DEFERRAL_LEAD_PATTERN.test(clause)) return false;
387
+ if (NEGATED_OR_HYPOTHETICAL_CLAUSE_PATTERN.test(clause)) return false;
354
388
  if (hasActionWithObject(clause)) return true;
355
389
  if (CONDITIONAL_LEAD_IN_PATTERN.test(clause)) return false;
356
390
  return namesToolTarget(clause);
@@ -399,7 +433,10 @@ function isQuestion(sentence) {
399
433
  }
400
434
 
401
435
  // src/domains/middleware/rules.ts
402
- var BUILTIN_MIDDLEWARE_RULE_DEFINITIONS = [STALLED_TURN_RULE_DEFINITION];
436
+ var BUILTIN_MIDDLEWARE_RULE_DEFINITIONS = [
437
+ STALLED_TURN_RULE_DEFINITION,
438
+ INJECTION_SCREEN_RULE
439
+ ];
403
440
  var BUILTIN_MIDDLEWARE_RULE_IDS = BUILTIN_MIDDLEWARE_RULE_DEFINITIONS.map((definition) => definition.rule.id);
404
441
  function listMiddlewareRuleDefinitions() {
405
442
  return BUILTIN_MIDDLEWARE_RULE_DEFINITIONS.map(cloneRuleDefinition);
@@ -1167,7 +1204,9 @@ function matchMarketplaceSkills(userText, entries, excludedNames) {
1167
1204
  const match = scorePromotionEntry(userText, entry);
1168
1205
  if (match) matches.push(match);
1169
1206
  }
1170
- return matches.sort((a, b) => b.score - a.score || a.entry.name.localeCompare(b.entry.name));
1207
+ return matches.sort(
1208
+ (a, b) => Number(b.matchedTrigger !== void 0) - Number(a.matchedTrigger !== void 0) || b.score - a.score || a.entry.name.localeCompare(b.entry.name)
1209
+ );
1171
1210
  }
1172
1211
  var OWN_MARKETPLACE_URL_PREFIX = "https://github.com/iowarp/clio-coder/";
1173
1212
  function isOwnMarketplaceSource(entry) {
@@ -2017,7 +2056,7 @@ function announceMemoryStepEndpoint(deps, complete) {
2017
2056
  init_esm_shims();
2018
2057
  var TASK_BOARD_REMINDER_REGISTRATION_ID = "observer.task-board-reminder";
2019
2058
  function taskBoardReminderMessage(steps) {
2020
- return `[Tasks] This request enumerates ${steps} steps. Before the first edit, declare the task board: tasks action="plan" with a title and one task per step, then work them one at a time ("start", then "done" with an evidence note).`;
2059
+ return `[Tasks] This request enumerates ${steps} steps. Before the first edit, declare the task board: tasks action="plan" with a title and one task per authorized step, then work them one at a time ("start", then "done" with an evidence note). A plan does not authorize implementation: for proposed work awaiting an operator go-ahead, use action="block" with a note naming the pending operator decision, or action="drop", and wait.`;
2021
2060
  }
2022
2061
  function countEnumeratedSteps(text) {
2023
2062
  const value = text ?? "";
@@ -2078,7 +2117,7 @@ function buildOpenTasksMessage(board) {
2078
2117
  const rows = open.map((task) => ` ${task.status === "active" ? "[>]" : "[ ]"} ${task.id} ${task.title}`);
2079
2118
  return `[Clio Coder] task board "${board.title}" still has ${open.length} of ${counts.total} task(s) open:
2080
2119
  ${rows.join("\n")}
2081
- Continue working them, or record the honest state on the board: tasks action="done" with an evidence note, action="block" with a reason, or action="drop". Do not end the turn with a stale board.`;
2120
+ Continue only work already authorized by the operator. This reminder and a self-created plan are not authorization to implement a proposal. If implementation awaits an operator decision, use tasks action="block" with a note naming that pending operator decision, or action="drop"; then wait for an explicit operator go-ahead. A skill-install choice does not authorize implementation. Otherwise record the honest state on the board: tasks action="done" with an evidence note, action="block" with a reason, or action="drop". Do not end the turn with a stale board.`;
2082
2121
  }
2083
2122
  function createTaskNudgeRegistration(options) {
2084
2123
  return {
@@ -2913,6 +2952,10 @@ function userHookToRegistration(hook, deps) {
2913
2952
  evaluate: (input) => {
2914
2953
  if (!hook.enabled) return [];
2915
2954
  try {
2955
+ if (deps.isTrusted?.() === false) {
2956
+ deps.recordReceipt({ ...baseReceipt(input), outcome: "skipped" });
2957
+ return [];
2958
+ }
2916
2959
  return evaluateHook(hook, deps, baseReceipt(input));
2917
2960
  } catch {
2918
2961
  deps.recordReceipt({ ...baseReceipt(input), outcome: "skipped" });
@@ -2964,16 +3007,8 @@ function evaluateHook(hook, deps, base) {
2964
3007
  init_esm_shims();
2965
3008
  var import_yaml = __toESM(require_dist(), 1);
2966
3009
  import { spawnSync } from "node:child_process";
2967
- import { readFileSync as readFileSync3 } from "node:fs";
2968
- import { join } from "node:path";
2969
3010
  var COMMAND_OUTPUT_MAX_BYTES = 1024 * 1024;
2970
- function readBatch(source, filePath, fileIssues) {
2971
- let text;
2972
- try {
2973
- text = readFileSync3(filePath, "utf8");
2974
- } catch {
2975
- return null;
2976
- }
3011
+ function readBatch(source, filePath, text, fileIssues) {
2977
3012
  try {
2978
3013
  const parsed = (0, import_yaml.parse)(text);
2979
3014
  return { source, declarations: parsed ?? [] };
@@ -3006,31 +3041,47 @@ function readHookSources(options) {
3006
3041
  }
3007
3042
  batches.push({ source, declarations: entry.declarations });
3008
3043
  }
3009
- const projectBatch = readBatch(
3010
- { origin: "project", sourcePath: ".clio-coder/hooks.yaml" },
3011
- join(options.cwd, ".clio-coder", "hooks.yaml"),
3012
- fileIssues
3013
- );
3014
- if (projectBatch) batches.push(projectBatch);
3015
- const localBatch = readBatch(
3016
- { origin: "project.local", sourcePath: ".clio-coder/hooks.local.yaml" },
3017
- join(options.cwd, ".clio-coder", "hooks.local.yaml"),
3018
- fileIssues
3019
- );
3020
- if (localBatch) batches.push(localBatch);
3021
- return { batches, fileIssues };
3044
+ const projectSurface = captureProjectSurface(options.cwd, "hooks");
3045
+ for (const [index, file] of projectSurface.files.entries()) {
3046
+ const source = {
3047
+ origin: index === 0 ? "project" : "project.local",
3048
+ sourcePath: index === 0 ? ".clio-coder/hooks.yaml" : ".clio-coder/hooks.local.yaml"
3049
+ };
3050
+ if (file.error !== void 0) fileIssues.push({ source, message: file.error });
3051
+ if (file.text === null) continue;
3052
+ if (projectSurface.verdict !== "trusted") {
3053
+ fileIssues.push({ source, message: projectSurfaceTrustNotice(projectSurface, file.path) });
3054
+ continue;
3055
+ }
3056
+ const batch = readBatch(source, file.path, file.text, fileIssues);
3057
+ if (batch) batches.push(batch);
3058
+ }
3059
+ return { batches, fileIssues, projectSurface };
3022
3060
  }
3023
3061
  function buildUserHookRegistrations(options) {
3024
3062
  const workspaceRoot = options.workspaceRoot ?? options.cwd;
3025
3063
  const readOptions = { cwd: options.cwd };
3026
3064
  if (options.capturedSources !== void 0) readOptions.capturedSources = options.capturedSources;
3027
- const { batches, fileIssues } = readHookSources(readOptions);
3065
+ const { batches, fileIssues, projectSurface } = readHookSources(readOptions);
3028
3066
  const loaded = loadUserHooks(batches, { workspaceRoot });
3029
3067
  const runCommand = options.runCommand ?? spawnSyncCommandRunner();
3068
+ let reportedUntrusted = false;
3069
+ const projectStillTrusted = () => {
3070
+ const current = captureProjectSurface(options.cwd, "hooks");
3071
+ if (current.verdict === "trusted" && current.contentHash === projectSurface.contentHash) return true;
3072
+ if (!reportedUntrusted) {
3073
+ reportedUntrusted = true;
3074
+ options.report?.(
3075
+ `[clio-coder:hooks] project hooks changed or trust was revoked; hooks skipped. Review with clio-coder config trust hooks, then reload extensions.`
3076
+ );
3077
+ }
3078
+ return false;
3079
+ };
3030
3080
  const registrations = loaded.hooks.map(
3031
3081
  (hook) => userHookToRegistration(hook, {
3032
3082
  recordReceipt: options.recordReceipt,
3033
3083
  runCommand,
3084
+ ...hook.source.origin === "project" || hook.source.origin === "project.local" ? { isTrusted: projectStillTrusted } : {},
3034
3085
  ...options.now !== void 0 ? { now: options.now } : {}
3035
3086
  })
3036
3087
  );
@@ -3039,8 +3090,9 @@ function buildUserHookRegistrations(options) {
3039
3090
  function spawnSyncCommandRunner() {
3040
3091
  return (argv, options) => {
3041
3092
  const [command, ...args] = argv;
3042
- const attribution = withManagedGitCommitAttributionEnvironment(process.env, {
3093
+ const attribution = withManagedGitCommitAttributionEnvironment(buildSafeToolEnv(), {
3043
3094
  cwd: options.cwd ?? process.cwd(),
3095
+ enabled: gitCommitAttributionEnabled(process.env),
3044
3096
  evidence: {}
3045
3097
  });
3046
3098
  reportCommitAttributionDiagnostic(attribution.diagnostic);
@@ -3096,4 +3148,4 @@ export {
3096
3148
  createWatchdogRegistration,
3097
3149
  MiddlewareDomainModule
3098
3150
  };
3099
- //# sourceMappingURL=chunk-XULDXHTN.js.map
3151
+ //# sourceMappingURL=chunk-DRD2A54W.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/core/naming-compat.ts
7
7
  init_esm_shims();
@@ -24,4 +24,4 @@ export {
24
24
  warnLegacyNaming,
25
25
  namingCompatibilityEnvironment
26
26
  };
27
- //# sourceMappingURL=chunk-D7E7WCDF.js.map
27
+ //# sourceMappingURL=chunk-DVNAPPXU.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/engine/env-api-keys.ts
7
7
  init_esm_shims();
@@ -15,6 +15,7 @@ var ENV_KEYS = {
15
15
  "ant-ling": "ANT_LING_API_KEY",
16
16
  "qwen-token-plan": "QWEN_TOKEN_PLAN_API_KEY",
17
17
  "qwen-token-plan-cn": "QWEN_TOKEN_PLAN_CN_API_KEY",
18
+ "qwen-token-plan-individual": "QWEN_TOKEN_PLAN_API_KEY",
18
19
  openai: "OPENAI_API_KEY",
19
20
  "azure-openai-responses": "AZURE_OPENAI_API_KEY",
20
21
  nvidia: "NVIDIA_API_KEY",
@@ -88,4 +89,4 @@ export {
88
89
  findEngineEnvKeys,
89
90
  getEngineEnvApiKey
90
91
  };
91
- //# sourceMappingURL=chunk-YXLYO42X.js.map
92
+ //# sourceMappingURL=chunk-DXVMLM3Z.js.map
@@ -1,20 +1,20 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  getVersionInfo
4
- } from "./chunk-XPLRXC72.js";
4
+ } from "./chunk-GD55RTIW.js";
5
5
  import {
6
6
  require_dist
7
- } from "./chunk-APJ265NV.js";
7
+ } from "./chunk-B5GGDIHT.js";
8
8
  import {
9
9
  safeResourceWrite
10
- } from "./chunk-WEPFGWHJ.js";
10
+ } from "./chunk-ZZFWWYLX.js";
11
11
  import {
12
12
  clioConfigDir
13
- } from "./chunk-BYP5D4HI.js";
13
+ } from "./chunk-CTTI7G3T.js";
14
14
  import {
15
15
  __toESM,
16
16
  init_esm_shims
17
- } from "./chunk-3R73A4XB.js";
17
+ } from "./chunk-ECBHH7LU.js";
18
18
 
19
19
  // src/domains/extensions/discovery.ts
20
20
  init_esm_shims();
@@ -1331,4 +1331,4 @@ export {
1331
1331
  disableExtension,
1332
1332
  removeExtension
1333
1333
  };
1334
- //# sourceMappingURL=chunk-5MEZN6CB.js.map
1334
+ //# sourceMappingURL=chunk-DZK63TZJ.js.map
@@ -3,45 +3,45 @@ import {
3
3
  ensureYaziProfile,
4
4
  resetYaziProfile,
5
5
  yaziProfileDir
6
- } from "./chunk-3M6DQK6S.js";
6
+ } from "./chunk-T334FW2H.js";
7
7
  import {
8
8
  normalizedSkillHash,
9
9
  stripProvenanceFrontmatter
10
- } from "./chunk-NDDGJUXD.js";
10
+ } from "./chunk-DNCE23JJ.js";
11
11
  import {
12
12
  initializeClioHome
13
- } from "./chunk-I7XBWTYH.js";
13
+ } from "./chunk-T53XI6I7.js";
14
14
  import {
15
15
  resolveToolBinary
16
- } from "./chunk-QSNYB6ZV.js";
16
+ } from "./chunk-XCUDZQLX.js";
17
17
  import {
18
18
  findPinnedTool
19
- } from "./chunk-QDC3K2U3.js";
20
- import {
21
- INTEROP_AGENT_KINDS
22
- } from "./chunk-KXDSS5WJ.js";
19
+ } from "./chunk-K2BLQC5E.js";
23
20
  import {
24
21
  settingsPath,
25
22
  withSettingsLock
26
- } from "./chunk-GHS5EBTQ.js";
23
+ } from "./chunk-FKIOX6DS.js";
24
+ import {
25
+ INTEROP_AGENT_KINDS
26
+ } from "./chunk-5CY4Q6QI.js";
27
27
  import {
28
28
  resolvePackageRoot
29
- } from "./chunk-IWHMRKLL.js";
29
+ } from "./chunk-E3LEPLQ2.js";
30
30
  import {
31
31
  require_dist
32
- } from "./chunk-APJ265NV.js";
32
+ } from "./chunk-B5GGDIHT.js";
33
33
  import {
34
34
  fsyncDirectory,
35
35
  safeResourceWrite
36
- } from "./chunk-WEPFGWHJ.js";
36
+ } from "./chunk-ZZFWWYLX.js";
37
37
  import {
38
38
  clioStatePath,
39
39
  resolveClioDirs
40
- } from "./chunk-BYP5D4HI.js";
40
+ } from "./chunk-CTTI7G3T.js";
41
41
  import {
42
42
  __toESM,
43
43
  init_esm_shims
44
- } from "./chunk-3R73A4XB.js";
44
+ } from "./chunk-ECBHH7LU.js";
45
45
 
46
46
  // src/domains/lifecycle/state.ts
47
47
  init_esm_shims();
@@ -654,4 +654,4 @@ export {
654
654
  migrateNamingSettingsFile,
655
655
  clio_coder_naming_default
656
656
  };
657
- //# sourceMappingURL=chunk-IGLP3ODT.js.map
657
+ //# sourceMappingURL=chunk-E3BQTQUP.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/core/package-root.ts
7
7
  init_esm_shims();
@@ -65,4 +65,4 @@ export {
65
65
  readClioVersion,
66
66
  readPiMonoVersion
67
67
  };
68
- //# sourceMappingURL=chunk-IWHMRKLL.js.map
68
+ //# sourceMappingURL=chunk-E3LEPLQ2.js.map
@@ -47,11 +47,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
47
47
  mod
48
48
  ));
49
49
 
50
- // node_modules/tsup/assets/esm_shims.js
50
+ // node_modules/.pnpm/tsup@8.5.1_postcss@8.5.28_tsx@4.22.4_typescript@6.0.3_yaml@2.9.0/node_modules/tsup/assets/esm_shims.js
51
51
  import { fileURLToPath } from "node:url";
52
52
  var getFilename, __filename;
53
53
  var init_esm_shims = __esm({
54
- "node_modules/tsup/assets/esm_shims.js"() {
54
+ "node_modules/.pnpm/tsup@8.5.1_postcss@8.5.28_tsx@4.22.4_typescript@6.0.3_yaml@2.9.0/node_modules/tsup/assets/esm_shims.js"() {
55
55
  "use strict";
56
56
  getFilename = () => fileURLToPath(import.meta.url);
57
57
  __filename = /* @__PURE__ */ getFilename();
@@ -66,4 +66,4 @@ export {
66
66
  __filename,
67
67
  init_esm_shims
68
68
  };
69
- //# sourceMappingURL=chunk-3R73A4XB.js.map
69
+ //# sourceMappingURL=chunk-ECBHH7LU.js.map
@@ -0,0 +1,139 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ EMPTY_WORKING_SET_VIEW,
4
+ callPathsByToolCallId,
5
+ compactionCut,
6
+ hasLegacyCompactionMarker,
7
+ offloadPathOf,
8
+ parseRefKey,
9
+ primaryPathOf,
10
+ refKey,
11
+ toolResultPayload,
12
+ toolResultText
13
+ } from "./chunk-DBREN25X.js";
14
+ import {
15
+ filterEntriesToActivePath
16
+ } from "./chunk-O5F25NIE.js";
17
+ import {
18
+ ceilChars
19
+ } from "./chunk-77CZRFTE.js";
20
+ import {
21
+ init_esm_shims
22
+ } from "./chunk-ECBHH7LU.js";
23
+
24
+ // src/domains/context/working-set/recall.ts
25
+ init_esm_shims();
26
+ function isThinkingEntry(entry) {
27
+ return entry.kind === "message" && entry.role === "assistant";
28
+ }
29
+ function isToolResultEntry(entry) {
30
+ return entry.kind === "message" && entry.role === "tool_result";
31
+ }
32
+ function resolveRecall(entries, view, ref, activeLeafTurnId) {
33
+ const parsed = parseRefKey(ref, view);
34
+ if (parsed === null) return { ok: false, error: { kind: "invalid_ref", ref } };
35
+ const key = refKey(parsed);
36
+ const active = filterEntriesToActivePath(entries, activeLeafTurnId);
37
+ const entry = active.find((candidate) => candidate.turnId === key);
38
+ if (entry === void 0) {
39
+ return { ok: false, error: { kind: "not_on_active_path", ref: key } };
40
+ }
41
+ if (!isToolResultEntry(entry) || hasLegacyCompactionMarker(entry.payload)) {
42
+ return { ok: false, error: { kind: "unavailable", ref: key } };
43
+ }
44
+ const state = view.evicted.has(key) ? "evicted" : compactionCut(active).visible.some((candidate) => candidate.turnId === key) ? "visible" : "summarized";
45
+ if (state === "visible") return { ok: false, error: { kind: "visible", ref: key } };
46
+ const payload = toolResultPayload(entry.payload);
47
+ const body = toolResultText(payload.result);
48
+ const offloadPath = offloadPathOf(payload);
49
+ return {
50
+ ok: true,
51
+ result: {
52
+ ref: parsed,
53
+ state,
54
+ entry,
55
+ body,
56
+ tokens: ceilChars(body.length),
57
+ ...offloadPath !== void 0 ? { offloadPath } : {}
58
+ }
59
+ };
60
+ }
61
+ function recallParentTurnId(entries, activeLeafTurnId) {
62
+ const active = filterEntriesToActivePath(entries, activeLeafTurnId);
63
+ for (let i = active.length - 1; i >= 0; i -= 1) {
64
+ const candidate = active[i];
65
+ if (candidate?.kind === "message") return candidate.turnId;
66
+ }
67
+ return null;
68
+ }
69
+ function buildRecallFields(result, meta) {
70
+ return {
71
+ kind: "contextRecall",
72
+ ref: { entry: result.ref.entry },
73
+ trigger: meta.trigger,
74
+ tokensReadmitted: result.tokens,
75
+ ...meta.toolCallId !== void 0 ? { toolCallId: meta.toolCallId } : {}
76
+ };
77
+ }
78
+ function recallableRefListing(entries, view, options = {}) {
79
+ const active = filterEntriesToActivePath(entries, options.activeLeafTurnId);
80
+ const visible = new Set(compactionCut(active).visible.map((entry) => entry.turnId));
81
+ const callPaths = callPathsByToolCallId(active);
82
+ const terms = (options.query ?? "").toLowerCase().split(/\s+/).filter(Boolean);
83
+ const limit = typeof options.limit === "number" && Number.isFinite(options.limit) ? Math.max(1, Math.min(12, Math.floor(options.limit))) : 8;
84
+ const offset = typeof options.offset === "number" && Number.isSafeInteger(options.offset) ? Math.max(0, options.offset) : 0;
85
+ const refs = [];
86
+ let total = 0;
87
+ for (const entry of active) {
88
+ if (!isToolResultEntry(entry) || hasLegacyCompactionMarker(entry.payload)) continue;
89
+ const state = view.evicted.has(entry.turnId) ? "evicted" : visible.has(entry.turnId) ? "visible" : "summarized";
90
+ if (state === "visible") continue;
91
+ const payload = toolResultPayload(entry.payload);
92
+ const toolCallId = typeof payload.obj.toolCallId === "string" ? payload.obj.toolCallId : void 0;
93
+ const path = primaryPathOf(payload) ?? (toolCallId === void 0 ? void 0 : callPaths.get(toolCallId));
94
+ const alias = view.evicted.get(entry.turnId)?.alias;
95
+ const metadata = `${alias ?? ""} ${entry.turnId} ${payload.toolName} ${path ?? ""}`.toLowerCase();
96
+ if (!terms.every((term) => metadata.includes(term))) continue;
97
+ if (total >= offset && refs.length < limit) {
98
+ const label = `${payload.toolName}${path === void 0 ? "" : ` ${path}`}`.replace(/\s+/g, " ").slice(0, 240);
99
+ refs.push(`${alias ?? entry.turnId} (${label}) [${state}; ${entry.timestamp}]`);
100
+ }
101
+ total += 1;
102
+ }
103
+ const remaining = Math.max(0, total - offset - refs.length);
104
+ return { refs, remaining, total, offset, ...remaining > 0 ? { nextOffset: offset + refs.length } : {} };
105
+ }
106
+ function recallableRefMessage(entries, view, activeLeafTurnId) {
107
+ const listing = recallableRefListing(entries, view, activeLeafTurnId === void 0 ? {} : { activeLeafTurnId });
108
+ if (listing.refs.length === 0) return "No recallable refs on the active path.";
109
+ const more = listing.remaining > 0 ? `, and ${listing.remaining} more` : "";
110
+ return `Recallable refs on the active path: ${listing.refs.join(", ")}${more}. Discover all matches with context(scope="recall", limit=8, offset=0), omitting ref; query filters path/tool/ref terms. Follow nextOffset.`;
111
+ }
112
+ function recallErrorMessage(error, entries = [], view = EMPTY_WORKING_SET_VIEW, activeLeafTurnId) {
113
+ const active = filterEntriesToActivePath(entries, activeLeafTurnId);
114
+ const listing = ` ${recallableRefMessage(active, view, activeLeafTurnId)}`;
115
+ switch (error.kind) {
116
+ case "invalid_ref":
117
+ return `recall ref must be a single recall alias or turnId without whitespace; got '${error.ref}'.`;
118
+ case "not_on_active_path":
119
+ return `ref ${error.ref} is not on the active path of this session (unknown or on an abandoned branch).${listing}`;
120
+ case "visible":
121
+ return `ref ${error.ref} is visible; its content is already in context.${listing}`;
122
+ case "unavailable": {
123
+ const entry = active.find((candidate) => candidate.turnId === error.ref);
124
+ if (entry !== void 0 && isThinkingEntry(entry)) {
125
+ return `ref ${error.ref} is an assistant turn; thinking is not recallable.${listing}`;
126
+ }
127
+ return `ref ${error.ref} has no recallable original tool result (unsupported entry or legacy destructive compaction).${listing}`;
128
+ }
129
+ }
130
+ }
131
+
132
+ export {
133
+ resolveRecall,
134
+ recallParentTurnId,
135
+ buildRecallFields,
136
+ recallableRefListing,
137
+ recallErrorMessage
138
+ };
139
+ //# sourceMappingURL=chunk-ECOMVOHP.js.map
@@ -0,0 +1,56 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-ECBHH7LU.js";
5
+
6
+ // src/domains/safety/redaction.ts
7
+ init_esm_shims();
8
+ function isPlainObject(value) {
9
+ return value !== null && typeof value === "object" && !Array.isArray(value);
10
+ }
11
+ var SECRET_KEY_RE = /(?:api[-_]?key|access[-_]?key|auth(?:orization)?|credential|password|private[-_]?key|secret|token)/iu;
12
+ var ENV_KEY_RE = /^env(?:ironment)?$/iu;
13
+ var SECRET_STRING_RE = /(https?:\/\/[^\s/@]+:)[^\s/@]+@/giu;
14
+ var SECRET_URL_PARAM_RE = /([?&](?:api[-_]?key|access[-_]?token|auth(?:orization)?|credential|password|secret|token)[^=\s]*=)[^&#\s]+/giu;
15
+ var SECRET_ASSIGNMENT_RE = /(?<![A-Z0-9_])((?:[A-Z0-9_]*(?:ACCESS|API|AUTH|CREDENTIAL|KEY|PASS(?:WORD)?|PRIVATE|SECRET|TOKEN)[A-Z0-9_]*)=)[^\s;&|]+/giu;
16
+ var SECRET_FLAG_RE = /(--?(?:[a-z0-9-]*(?:api[-_]?key|access[-_]?token|auth(?:orization)?|credential|password|secret|token)[a-z0-9-]*))(=|\s+)([^\s;&|]+)/giu;
17
+ function redactSecretString(value) {
18
+ return value.replace(SECRET_STRING_RE, "$1[redacted]@").replace(SECRET_URL_PARAM_RE, "$1[redacted]").replace(SECRET_ASSIGNMENT_RE, "$1[redacted]").replace(SECRET_FLAG_RE, "$1$2[redacted]");
19
+ }
20
+ function isSecretArgKey(key) {
21
+ return SECRET_KEY_RE.test(key);
22
+ }
23
+ function isEnvironmentArgKey(key) {
24
+ return ENV_KEY_RE.test(key);
25
+ }
26
+ function redactEnvironmentValue(value, depth) {
27
+ if (depth > 8) return "[redacted nested values]";
28
+ if (typeof value === "string") return "[redacted]";
29
+ if (Array.isArray(value)) return value.map((item) => redactEnvironmentValue(item, depth + 1));
30
+ if (!isPlainObject(value)) return value;
31
+ const out = {};
32
+ for (const [childKey, childValue] of Object.entries(value)) {
33
+ out[childKey] = redactEnvironmentValue(childValue, depth + 1);
34
+ }
35
+ return out;
36
+ }
37
+ function redactToolArgs(value, key = "", depth = 0) {
38
+ if (isSecretArgKey(key)) return "[redacted]";
39
+ if (isEnvironmentArgKey(key)) return redactEnvironmentValue(value, depth);
40
+ if (typeof value === "string") return redactSecretString(value);
41
+ if (depth > 8) return "[redacted nested values]";
42
+ if (Array.isArray(value)) return value.map((item) => redactToolArgs(item, key, depth + 1));
43
+ if (!isPlainObject(value)) return value;
44
+ const out = {};
45
+ for (const [childKey, childValue] of Object.entries(value)) {
46
+ out[childKey] = redactToolArgs(childValue, childKey, depth + 1);
47
+ }
48
+ return out;
49
+ }
50
+
51
+ export {
52
+ redactSecretString,
53
+ isSecretArgKey,
54
+ redactToolArgs
55
+ };
56
+ //# sourceMappingURL=chunk-EFSEIZE6.js.map