@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
@@ -1,10 +1,11 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
+ findEngineEnvKeys,
3
4
  getEngineEnvApiKey
4
- } from "./chunk-YXLYO42X.js";
5
+ } from "./chunk-DXVMLM3Z.js";
5
6
  import {
6
7
  init_esm_shims
7
- } from "./chunk-3R73A4XB.js";
8
+ } from "./chunk-ECBHH7LU.js";
8
9
 
9
10
  // src/engine/ai.ts
10
11
  init_esm_shims();
@@ -71,6 +72,113 @@ function getEngineModel(provider, modelId) {
71
72
  return engineModels.getModel(provider, modelId);
72
73
  }
73
74
 
75
+ // src/engine/provider-diagnostics.ts
76
+ init_esm_shims();
77
+ import { randomUUID } from "node:crypto";
78
+ import { closeSync, constants, fstatSync, openSync, writeFileSync } from "node:fs";
79
+ import { isAbsolute } from "node:path";
80
+ function instrumentProviderCall(model, options, invoke) {
81
+ let effective = options;
82
+ if (model.api === "anthropic-messages" && options?.cacheRetention === void 0) {
83
+ const retention = process.env.CLIO_CODER_ANTHROPIC_CACHE_RETENTION;
84
+ if (retention !== void 0 && retention !== "") {
85
+ if (retention !== "none" && retention !== "short" && retention !== "long") {
86
+ throw new Error("CLIO_CODER_ANTHROPIC_CACHE_RETENTION must be none, short, or long");
87
+ }
88
+ effective = { ...options, cacheRetention: retention };
89
+ }
90
+ }
91
+ const path = process.env.CLIO_CODER_PROVIDER_DUMP_PATH;
92
+ if (!path) return invoke(effective);
93
+ const sink = openDump(path);
94
+ const payloads = [];
95
+ const redact = diagnosticSerializer(model, effective);
96
+ const callId = randomUUID();
97
+ const onPayload = effective?.onPayload;
98
+ const instrumented = {
99
+ ...effective,
100
+ onPayload: async (payload, currentModel) => {
101
+ const replacement = await onPayload?.(payload, currentModel);
102
+ try {
103
+ payloads.push(JSON.parse(redact(replacement === void 0 ? payload : replacement)));
104
+ } catch {
105
+ payloads.push({ diagnosticError: "payload could not be serialized" });
106
+ }
107
+ return replacement;
108
+ }
109
+ };
110
+ const finish = (terminal) => {
111
+ try {
112
+ writeFileSync(sink, `${redact({ callId, api: model.api, model: model.id, payloads, ...terminal })}
113
+ `, "utf8");
114
+ } catch {
115
+ process.emitWarning("Provider diagnostic dump could not be written", { code: "CLIO_CODER_PROVIDER_DUMP_FAILED" });
116
+ } finally {
117
+ try {
118
+ closeSync(sink);
119
+ } catch {
120
+ process.emitWarning("Provider diagnostic dump could not be closed", { code: "CLIO_CODER_PROVIDER_DUMP_FAILED" });
121
+ }
122
+ }
123
+ };
124
+ try {
125
+ const stream2 = invoke(instrumented);
126
+ void stream2.result().then(
127
+ (response) => finish({ response }),
128
+ (error) => finish({ error: String(error) })
129
+ );
130
+ return stream2;
131
+ } catch (error) {
132
+ finish({ error: error instanceof Error ? error.message : String(error) });
133
+ throw error;
134
+ }
135
+ }
136
+ function openDump(path) {
137
+ if (!isAbsolute(path)) throw new Error("CLIO_CODER_PROVIDER_DUMP_PATH must be an absolute file path");
138
+ const fd = openSync(
139
+ path,
140
+ constants.O_WRONLY | constants.O_CREAT | constants.O_APPEND | constants.O_NOFOLLOW | constants.O_NONBLOCK,
141
+ 384
142
+ );
143
+ try {
144
+ const stat = fstatSync(fd);
145
+ if (!stat.isFile() || (stat.mode & 511) !== 384 || process.getuid !== void 0 && stat.uid !== process.getuid()) {
146
+ throw new Error("CLIO_CODER_PROVIDER_DUMP_PATH must be an operator-owned regular file with mode 0600");
147
+ }
148
+ return fd;
149
+ } catch (error) {
150
+ closeSync(fd);
151
+ throw error;
152
+ }
153
+ }
154
+ function diagnosticSerializer(model, options) {
155
+ const secrets = /* @__PURE__ */ new Set();
156
+ const ambientKeys = (findEngineEnvKeys(model.provider, options?.env) ?? []).map(
157
+ (name) => options?.env?.[name] || process.env[name]
158
+ );
159
+ for (const key of [options?.apiKey, ...ambientKeys]) {
160
+ if (key && key !== "<authenticated>") secrets.add(key);
161
+ }
162
+ for (const headers of [options?.headers, model.headers]) {
163
+ for (const [key, value] of Object.entries(headers ?? {})) {
164
+ if (typeof value === "string" && value.length > 0 && /auth|api[-_]?key|cookie|token|secret/iu.test(key)) {
165
+ secrets.add(value);
166
+ const token = value.match(/^(?:Bearer|Basic)\s+(.+)$/iu)?.[1];
167
+ if (token) secrets.add(token);
168
+ }
169
+ }
170
+ }
171
+ return (value) => {
172
+ const body = typeof value === "object" && value !== null && !Array.isArray(value) ? Object.fromEntries(
173
+ Object.entries(value).filter(([key]) => !/^(?:headers|env|apiKey|api_key|authorization)$/iu.test(key))
174
+ ) : value;
175
+ let serialized = JSON.stringify(body);
176
+ if (serialized === void 0) serialized = "null";
177
+ for (const secret of secrets) serialized = serialized.replaceAll(JSON.stringify(secret).slice(1, -1), "[REDACTED]");
178
+ return serialized;
179
+ };
180
+ }
181
+
74
182
  // src/engine/api-registry.ts
75
183
  var registry = /* @__PURE__ */ new Map();
76
184
  var builtinInstances = /* @__PURE__ */ new Map();
@@ -145,7 +253,7 @@ function resolved(api) {
145
253
  function hasCloudflareAuth(options) {
146
254
  return typeof options?.apiKey === "string" && options.apiKey.trim().length > 0 || typeof options?.headers?.["cf-aig-authorization"] === "string";
147
255
  }
148
- function engineStream(model, context, options) {
256
+ function dispatchEngineStream(model, context, options) {
149
257
  registerEngineBuiltins();
150
258
  if (compatUniverse) return compatUniverse.stream(model, context, options);
151
259
  const provider = builtinProvider(model);
@@ -157,7 +265,7 @@ function engineStream(model, context, options) {
157
265
  }
158
266
  return resolved(model.api).stream(model, context, withEnvApiKey(model, options));
159
267
  }
160
- function engineStreamSimple(model, context, options) {
268
+ function dispatchEngineStreamSimple(model, context, options) {
161
269
  registerEngineBuiltins();
162
270
  if (compatUniverse) return compatUniverse.streamSimple(model, context, options);
163
271
  const provider = builtinProvider(model);
@@ -169,6 +277,12 @@ function engineStreamSimple(model, context, options) {
169
277
  }
170
278
  return resolved(model.api).streamSimple(model, context, withEnvApiKey(model, options));
171
279
  }
280
+ function engineStream(model, context, options) {
281
+ return instrumentProviderCall(model, options, (effective) => dispatchEngineStream(model, context, effective));
282
+ }
283
+ function engineStreamSimple(model, context, options) {
284
+ return instrumentProviderCall(model, options, (effective) => dispatchEngineStreamSimple(model, context, effective));
285
+ }
172
286
  async function completeEngineSimple(model, context, options) {
173
287
  return engineStreamSimple(model, context, options).result();
174
288
  }
@@ -360,4 +474,4 @@ export {
360
474
  calculateEngineCost,
361
475
  registerFauxFromEnv
362
476
  };
363
- //# sourceMappingURL=chunk-YPC6ZR5L.js.map
477
+ //# sourceMappingURL=chunk-5CMARGPF.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/domains/interop/registry.ts
7
7
  init_esm_shims();
@@ -19,7 +19,7 @@ var INTEROP_AGENT_KINDS = [
19
19
  instructionFiles: ["CLAUDE.md", ".claude/CLAUDE.md"],
20
20
  acp: {
21
21
  command: "npx",
22
- args: ["-y", "@zed-industries/claude-code-acp"],
22
+ args: ["-y", "@zed-industries/claude-code-acp@0.16.2"],
23
23
  npmPackage: "@zed-industries/claude-code-acp",
24
24
  npmPackageBin: "claude-code-acp"
25
25
  },
@@ -39,7 +39,7 @@ var INTEROP_AGENT_KINDS = [
39
39
  instructionFiles: ["AGENTS.md", "CODEX.md", ".codex/AGENTS.md"],
40
40
  acp: {
41
41
  command: "npx",
42
- args: ["-y", "@agentclientprotocol/codex-acp"],
42
+ args: ["-y", "@agentclientprotocol/codex-acp@1.10.0"],
43
43
  npmPackage: "@agentclientprotocol/codex-acp",
44
44
  npmPackageBin: "codex-acp"
45
45
  },
@@ -138,4 +138,4 @@ export {
138
138
  interopSourceRank,
139
139
  foreignAgentDirs
140
140
  };
141
- //# sourceMappingURL=chunk-KXDSS5WJ.js.map
141
+ //# sourceMappingURL=chunk-5CY4Q6QI.js.map
@@ -1,13 +1,16 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ resultContractOutputBytes
4
+ } from "./chunk-OQM5IVJY.js";
2
5
  import {
3
6
  decisionRef
4
- } from "./chunk-54X7T7DK.js";
7
+ } from "./chunk-5ZMXGW7P.js";
5
8
  import {
6
9
  truncateUtf8
7
- } from "./chunk-6XLNIQDB.js";
10
+ } from "./chunk-MYI32N4R.js";
8
11
  import {
9
12
  init_esm_shims
10
- } from "./chunk-3R73A4XB.js";
13
+ } from "./chunk-ECBHH7LU.js";
11
14
 
12
15
  // src/domains/dispatch/event-pump.ts
13
16
  init_esm_shims();
@@ -89,6 +92,9 @@ function startDispatchEventPump(source, fold, options = {}) {
89
92
  }
90
93
  var WORKER_OUTPUT_MAX_BYTES = 8192;
91
94
  var WORKER_OUTPUT_TRUNCATION_MARKER = "\n[worker output truncated]";
95
+ function workerOutputCaptureBytes(contract) {
96
+ return Math.max(WORKER_OUTPUT_MAX_BYTES, resultContractOutputBytes(contract) ?? 0);
97
+ }
92
98
  function isRecord(value) {
93
99
  return typeof value === "object" && value !== null && !Array.isArray(value);
94
100
  }
@@ -114,12 +120,13 @@ function durableAssistantTextFromEvent(event) {
114
120
  if (event.message.role !== "assistant" || !isDurableAssistantMessage(event.message)) return "";
115
121
  return assistantTextFromContent(event.message.content);
116
122
  }
117
- function boundedOutput(state, text) {
123
+ function boundedOutput(state, text, maxBytes) {
118
124
  const bytes = Buffer.byteLength(text, "utf8");
119
- const bounded = truncateUtf8(text, WORKER_OUTPUT_MAX_BYTES, WORKER_OUTPUT_TRUNCATION_MARKER);
125
+ const bounded = truncateUtf8(text, maxBytes, WORKER_OUTPUT_TRUNCATION_MARKER);
120
126
  return { state, text: bounded, bytes, truncated: bounded !== text };
121
127
  }
122
- function createWorkerOutputCapture() {
128
+ function createWorkerOutputCapture(options = {}) {
129
+ const maxBytes = Math.max(WORKER_OUTPUT_MAX_BYTES, Math.floor(options.maxBytes ?? WORKER_OUTPUT_MAX_BYTES));
123
130
  let finalText = null;
124
131
  let partialText = "";
125
132
  let partialBytes = 0;
@@ -144,14 +151,14 @@ function createWorkerOutputCapture() {
144
151
  const delta = assistantEvent.delta;
145
152
  if (typeof delta !== "string" || delta.length === 0) return;
146
153
  partialBytes += Buffer.byteLength(delta, "utf8");
147
- if (partialStored < WORKER_OUTPUT_MAX_BYTES) {
154
+ if (partialStored < maxBytes) {
148
155
  partialText += delta;
149
156
  partialStored += Buffer.byteLength(delta, "utf8");
150
157
  }
151
158
  },
152
159
  snapshot() {
153
160
  if (partialBytes > 0 && partialText.trim().length > 0) {
154
- const bounded = truncateUtf8(partialText.trim(), WORKER_OUTPUT_MAX_BYTES, WORKER_OUTPUT_TRUNCATION_MARKER);
161
+ const bounded = truncateUtf8(partialText.trim(), maxBytes, WORKER_OUTPUT_TRUNCATION_MARKER);
155
162
  return {
156
163
  state: "partial",
157
164
  text: bounded,
@@ -159,7 +166,7 @@ function createWorkerOutputCapture() {
159
166
  truncated: bounded !== partialText.trim() || partialBytes > partialStored
160
167
  };
161
168
  }
162
- if (finalText !== null) return boundedOutput("final", finalText);
169
+ if (finalText !== null) return boundedOutput("final", finalText, maxBytes);
163
170
  return void 0;
164
171
  }
165
172
  };
@@ -272,6 +279,40 @@ function createDecisionBoardStore(deps = {}) {
272
279
  deps.appendEntry(entry);
273
280
  dirty = true;
274
281
  };
282
+ const revise = (interviewId, key, revisionSource, correction) => {
283
+ syncToSession();
284
+ const interview = interviews.find((candidate) => candidate.interviewId === interviewId);
285
+ if (!interview) throw new Error(`decision board: interview ${interviewId} was not found on the active branch`);
286
+ const selected = interview.decisions.find((decision) => decision.key === key);
287
+ if (!selected) throw new Error(`decision board: decision ${key} was not found in interview ${interviewId}`);
288
+ const revisedAt = (deps.now?.() ?? /* @__PURE__ */ new Date()).toISOString();
289
+ const normalizedCorrection = correction?.trim();
290
+ const entries = deps.readEntries?.() ?? [];
291
+ const parentTurnId = deps.getActiveLeafTurnId?.() ?? activeLeafFromEntries(entries);
292
+ if (!parentTurnId) throw new Error("decision board: no active branch leaf is available for the revision");
293
+ const revision = {
294
+ kind: "decisionLedger",
295
+ parentTurnId,
296
+ ...interview.origin !== void 0 ? { origin: interview.origin } : {},
297
+ interviewId: interview.interviewId,
298
+ interviewStatus: interview.interviewStatus,
299
+ startedAt: interview.startedAt,
300
+ endedAt: interview.endedAt,
301
+ roundCount: interview.roundCount,
302
+ ...interview.summary ? { summary: interview.summary } : {},
303
+ ...interview.transcriptPath ? { transcriptPath: interview.transcriptPath } : {},
304
+ ...interview.exposure ? { exposure: interview.exposure } : {},
305
+ decisions: interview.decisions.map((decision) => {
306
+ if (decision.key !== selected.key) return { ...decision };
307
+ const next = { ...decision, status: "superseded", revisedAt, revisionSource };
308
+ if (normalizedCorrection) next.correction = normalizedCorrection;
309
+ else delete next.correction;
310
+ return next;
311
+ })
312
+ };
313
+ append(revision);
314
+ return revision;
315
+ };
275
316
  const store = {
276
317
  snapshot() {
277
318
  syncToSession();
@@ -297,7 +338,7 @@ function createDecisionBoardStore(deps = {}) {
297
338
  superseded = { interviewId: interview.interviewId, key: prior.key };
298
339
  break;
299
340
  }
300
- if (superseded !== null) store.supersede(superseded.interviewId, superseded.key, input.rationale);
341
+ if (superseded !== null) revise(superseded.interviewId, superseded.key, "agent", input.rationale);
301
342
  const now = (deps.now?.() ?? /* @__PURE__ */ new Date()).toISOString();
302
343
  const entries = deps.readEntries?.() ?? [];
303
344
  const parentTurnId = deps.getActiveLeafTurnId?.() ?? activeLeafFromEntries(entries);
@@ -329,37 +370,7 @@ function createDecisionBoardStore(deps = {}) {
329
370
  return { entry, superseded };
330
371
  },
331
372
  supersede(interviewId, key, correction) {
332
- syncToSession();
333
- const interview = interviews.find((candidate) => candidate.interviewId === interviewId);
334
- if (!interview) throw new Error(`decision board: interview ${interviewId} was not found on the active branch`);
335
- const selected = interview.decisions.find((decision) => decision.key === key);
336
- if (!selected) throw new Error(`decision board: decision ${key} was not found in interview ${interviewId}`);
337
- const revisedAt = (deps.now?.() ?? /* @__PURE__ */ new Date()).toISOString();
338
- const normalizedCorrection = correction?.trim();
339
- const entries = deps.readEntries?.() ?? [];
340
- const parentTurnId = deps.getActiveLeafTurnId?.() ?? activeLeafFromEntries(entries);
341
- if (!parentTurnId) throw new Error("decision board: no active branch leaf is available for the revision");
342
- const revision = {
343
- kind: "decisionLedger",
344
- parentTurnId,
345
- interviewId: interview.interviewId,
346
- interviewStatus: interview.interviewStatus,
347
- startedAt: interview.startedAt,
348
- endedAt: interview.endedAt,
349
- roundCount: interview.roundCount,
350
- ...interview.summary ? { summary: interview.summary } : {},
351
- ...interview.transcriptPath ? { transcriptPath: interview.transcriptPath } : {},
352
- ...interview.exposure ? { exposure: interview.exposure } : {},
353
- decisions: interview.decisions.map((decision) => {
354
- if (decision.key !== selected.key) return { ...decision };
355
- const next = { ...decision, status: "superseded", revisedAt };
356
- if (normalizedCorrection) next.correction = normalizedCorrection;
357
- else delete next.correction;
358
- return next;
359
- })
360
- };
361
- append(revision);
362
- return revision;
373
+ return revise(interviewId, key, "operator", correction);
363
374
  },
364
375
  invalidate() {
365
376
  dirty = true;
@@ -379,6 +390,7 @@ export {
379
390
  EVENT_TEE_LIMIT,
380
391
  startDispatchEventPump,
381
392
  WORKER_OUTPUT_MAX_BYTES,
393
+ workerOutputCaptureBytes,
382
394
  durableAssistantTextFromEvent,
383
395
  createWorkerOutputCapture,
384
396
  AdmissionCanceledError,
@@ -387,4 +399,4 @@ export {
387
399
  createDecisionBoardStore,
388
400
  decisionRationale
389
401
  };
390
- //# sourceMappingURL=chunk-I2DWJ4GM.js.map
402
+ //# sourceMappingURL=chunk-5DDOTTG4.js.map
@@ -4,10 +4,10 @@ import {
4
4
  ensureToolchainRoot,
5
5
  findPinnedTool,
6
6
  toolchainRoot
7
- } from "./chunk-QDC3K2U3.js";
7
+ } from "./chunk-K2BLQC5E.js";
8
8
  import {
9
9
  init_esm_shims
10
- } from "./chunk-3R73A4XB.js";
10
+ } from "./chunk-ECBHH7LU.js";
11
11
 
12
12
  // src/domains/toolchain/install.ts
13
13
  init_esm_shims();
@@ -459,4 +459,4 @@ export {
459
459
  installTool,
460
460
  installPinnedTool
461
461
  };
462
- //# sourceMappingURL=chunk-D4CJV46V.js.map
462
+ //# sourceMappingURL=chunk-5GZICIYO.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
4
+ } from "./chunk-ECBHH7LU.js";
5
5
 
6
6
  // src/domains/eval/schema/suite.ts
7
7
  init_esm_shims();
@@ -157,4 +157,4 @@ export {
157
157
  CANONICAL_METRICS,
158
158
  CANONICAL_METRIC_PREFIXES
159
159
  };
160
- //# sourceMappingURL=chunk-4IUZQIJ3.js.map
160
+ //# sourceMappingURL=chunk-5PHVPU4G.js.map
@@ -2,13 +2,13 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  printError,
4
4
  source_default
5
- } from "./chunk-JCI2ROMZ.js";
5
+ } from "./chunk-3T4DXWP6.js";
6
6
  import {
7
7
  authStoragePath
8
- } from "./chunk-ID64D7PE.js";
8
+ } from "./chunk-HXHFDHB6.js";
9
9
  import {
10
10
  init_esm_shims
11
- } from "./chunk-3R73A4XB.js";
11
+ } from "./chunk-ECBHH7LU.js";
12
12
 
13
13
  // src/cli/shared.ts
14
14
  init_esm_shims();
@@ -33,4 +33,4 @@ export {
33
33
  printPlaintextCredentialWarning,
34
34
  credentialWriteFailed
35
35
  };
36
- //# sourceMappingURL=chunk-3ODX73FK.js.map
36
+ //# sourceMappingURL=chunk-5VTJP36Q.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/skill-activation.ts
7
7
  init_esm_shims();
@@ -150,7 +150,13 @@ function autonomyDenyRejection(level, tool, actionClass) {
150
150
  return {
151
151
  short: `${tool} denied: autonomy level is ${level}`,
152
152
  detail: `Clio is at autonomy ${level}: ${actionClass} actions are denied without prompting. Describe the change you would make instead, so the operator can apply it or raise the autonomy level.`,
153
- hints: ["Propose the exact edit or command as text.", "The operator can change the level in /settings."]
153
+ hints: [
154
+ ...level === "read-only" && actionClass === "execute" ? [
155
+ "For independent permitted inspection, use the native read, grep, find, or ls tools when available. Do not use them to reproduce the denied execution or write; each call still follows its safety policy."
156
+ ] : [],
157
+ "Propose the exact edit or command as text.",
158
+ "The operator can change the level in interactive /settings or start a new headless run with clio-coder run --autonomy <level>."
159
+ ]
154
160
  };
155
161
  }
156
162
  function autonomyAskRejection(level, tool, actionClass, exposure = DEFAULT_AUTONOMY_EXPOSURE) {
@@ -184,6 +190,66 @@ function autonomyAskRejection(level, tool, actionClass, exposure = DEFAULT_AUTON
184
190
 
185
191
  // src/domains/session/entries.ts
186
192
  init_esm_shims();
193
+ import { createHash } from "node:crypto";
194
+ var SKILL_CONTEXT_STATE = "skillContextState";
195
+ function skillContextContentHash(content) {
196
+ return createHash("sha256").update(JSON.stringify(content)).digest("hex");
197
+ }
198
+ function isSkillContextState(value) {
199
+ return isRecord(value) && value.version === 1 && (value.unknown === void 0 || value.unknown === true) && Array.isArray(value.activationRefs) && value.activationRefs.every((ref) => typeof ref === "string");
200
+ }
201
+ function isSkillContextCheckpoint(value) {
202
+ return isRecord(value) && value.version === 1 && Array.isArray(value.skills) && value.skills.every(
203
+ (skill) => isRecord(skill) && [skill.activationRef, skill.requestRef, skill.callRef, skill.resultRef, skill.requestText, skill.contentHash].every(
204
+ isString
205
+ ) && isSkillActivation(skill.activation) && Array.isArray(skill.content) && skill.content.every((block) => isRecord(block) && block.type === "text" && typeof block.text === "string")
206
+ );
207
+ }
208
+ function verifiedSkillContextCheckpoint(value) {
209
+ if (!isSkillContextCheckpoint(value)) return false;
210
+ const refs = /* @__PURE__ */ new Set();
211
+ const names = /* @__PURE__ */ new Set();
212
+ return value.skills.every((skill) => {
213
+ const activation = skill.activation;
214
+ if (![skill.activationRef, skill.requestRef, skill.callRef, skill.resultRef].every((ref) => ref.length > 0) || activation.runId !== void 0 || activation.triggeredBy !== "tool" || activation.turnId !== skill.requestRef || !activation.name || !activation.filePath || !activation.source || !activation.sourceOrigin || !/^[a-f0-9]{64}$/.test(activation.hash) || activation.drift !== void 0 && activation.drift !== "match" || skill.content.length === 0 || skill.content.every((block) => block.text.length === 0) || skill.contentHash !== skillContextContentHash(skill.content) || refs.has(skill.activationRef) || names.has(activation.name))
215
+ return false;
216
+ refs.add(skill.activationRef);
217
+ names.add(activation.name);
218
+ return true;
219
+ });
220
+ }
221
+ function isPreservedUserContext(value) {
222
+ return isRecord(value) && isString(value.turnId) && isString(value.text);
223
+ }
224
+ function mainSkillContextState(entries, policy) {
225
+ if (!policy) return latestSkillContextState(entries);
226
+ if (policy.modelActivation === true && policy.carriedSurface !== true && policy.requests.length === 0 && policy.loadedSkillNames.size === 0 && policy.loadedSkillPolicies.size === 0)
227
+ return latestSkillContextState(entries);
228
+ if (policy.requests.some((request) => !policy.loadedSkillNames.has(request.name))) return null;
229
+ const names = [...policy.loadedSkillNames];
230
+ if (names.length === 0) return null;
231
+ const activationRefs = [];
232
+ for (const name of names) {
233
+ const entry = [...entries].reverse().find(
234
+ (candidate) => candidate.kind === "skillActivation" && candidate.activation.runId === void 0 && candidate.activation.name === name
235
+ );
236
+ if (!entry) return null;
237
+ activationRefs.push(entry.turnId);
238
+ }
239
+ return { version: 1, activationRefs };
240
+ }
241
+ function latestSkillContextState(entries) {
242
+ for (let index = entries.length - 1; index >= 0; index--) {
243
+ const entry = entries[index];
244
+ if (entry?.kind === "custom" && entry.customType === SKILL_CONTEXT_STATE) {
245
+ return isSkillContextState(entry.data) ? entry.data : void 0;
246
+ }
247
+ if (entry?.kind === "compactionSummary" && entry.skillContext !== void 0) {
248
+ return verifiedSkillContextCheckpoint(entry.skillContext) ? { version: 1, activationRefs: entry.skillContext.skills.map((skill) => skill.activationRef) } : void 0;
249
+ }
250
+ }
251
+ return void 0;
252
+ }
187
253
  function decisionRef(interviewId, key) {
188
254
  return `${interviewId}/${key}`;
189
255
  }
@@ -295,10 +361,11 @@ function isDecisionRecord(value) {
295
361
  if (!isString(value.value) || !isOneOf(value.status, DECISION_STATUSES) || !isString(value.decidedAt)) return false;
296
362
  if (!isOptionalString(value.label) || !isOptionalString(value.source_question)) return false;
297
363
  if (value.source !== void 0 && !isOneOf(value.source, ["operator", "agent"])) return false;
364
+ if (value.revisionSource !== void 0 && !isOneOf(value.revisionSource, ["operator", "agent"])) return false;
298
365
  if (value.alternatives !== void 0 && !isStringArray(value.alternatives)) return false;
299
366
  if (!isOptionalString(value.rationale)) return false;
300
367
  if (!isOptionalString(value.revisedAt) || !isOptionalString(value.correction)) return false;
301
- return value.status === "superseded" ? isString(value.revisedAt) : value.revisedAt === void 0 && value.correction === void 0;
368
+ return value.status === "superseded" ? isString(value.revisedAt) : value.revisedAt === void 0 && value.revisionSource === void 0 && value.correction === void 0;
302
369
  }
303
370
  function isOptionalCompactionUsage(value) {
304
371
  if (value === void 0) return true;
@@ -318,7 +385,7 @@ function isWorkingSetRef(value) {
318
385
  return isRecord(value) && isString(value.entry);
319
386
  }
320
387
  function isEvictedItem(value) {
321
- return isRecord(value) && isWorkingSetRef(value.ref) && isOneOf(value.reason, EVICTION_REASONS) && isNumber(value.tokensFreed) && isString(value.marker) && isOptionalString(value.by);
388
+ return isRecord(value) && isWorkingSetRef(value.ref) && isOneOf(value.reason, EVICTION_REASONS) && isNumber(value.tokensFreed) && isString(value.marker) && (value.alias === void 0 || typeof value.alias === "string" && /^r[1-9]\d*$/.test(value.alias)) && isOptionalString(value.by);
322
389
  }
323
390
  function isSessionEntry(value) {
324
391
  if (!value || typeof value !== "object") return false;
@@ -331,7 +398,7 @@ function isSessionEntry(value) {
331
398
  case "bashExecution":
332
399
  return isString(v.command) && isString(v.output) && (v.exitCode === null || isNumber(v.exitCode)) && typeof v.cancelled === "boolean" && typeof v.truncated === "boolean" && isOptionalString(v.fullOutputPath) && isOptionalBoolean(v.excludeFromContext);
333
400
  case "custom":
334
- return isString(v.customType) && isOptionalBoolean(v.display);
401
+ return isString(v.customType) && isOptionalBoolean(v.display) && (v.customType !== SKILL_CONTEXT_STATE || isSkillContextState(v.data));
335
402
  case "modelChange":
336
403
  return isString(v.provider) && isString(v.modelId) && isOptionalString(v.target);
337
404
  case "thinkingLevelChange":
@@ -341,7 +408,7 @@ function isSessionEntry(value) {
341
408
  case "branchSummary":
342
409
  return isString(v.fromTurnId) && isString(v.summary);
343
410
  case "compactionSummary":
344
- return isString(v.summary) && isNumber(v.tokensBefore) && isString(v.firstKeptTurnId) && isOptionalCompactionUsage(v.usage) && (v.trigger === void 0 || isOneOf(v.trigger, COMPACTION_TRIGGERS)) && isOptionalNumber(v.tokensAfter) && isOptionalNumber(v.messagesSummarized) && isOptionalBoolean(v.isSplitTurn);
411
+ return isString(v.summary) && isNumber(v.tokensBefore) && isString(v.firstKeptTurnId) && isOptionalCompactionUsage(v.usage) && (v.trigger === void 0 || isOneOf(v.trigger, COMPACTION_TRIGGERS)) && isOptionalNumber(v.tokensAfter) && isOptionalNumber(v.messagesSummarized) && isOptionalBoolean(v.isSplitTurn) && (v.skillContext === void 0 || isSkillContextCheckpoint(v.skillContext)) && (v.userContext === void 0 || isPreservedUserContext(v.userContext));
345
412
  case "sessionInfo":
346
413
  return isOptionalString(v.name) && isOptionalString(v.targetTurnId) && isOptionalString(v.label);
347
414
  case "label":
@@ -387,9 +454,14 @@ export {
387
454
  mapAutonomy,
388
455
  autonomyDenyRejection,
389
456
  autonomyAskRejection,
457
+ SKILL_CONTEXT_STATE,
458
+ skillContextContentHash,
459
+ verifiedSkillContextCheckpoint,
460
+ mainSkillContextState,
461
+ latestSkillContextState,
390
462
  decisionRef,
391
463
  isDecisionRecord,
392
464
  isSessionHeader,
393
465
  isSessionEntry
394
466
  };
395
- //# sourceMappingURL=chunk-54X7T7DK.js.map
467
+ //# sourceMappingURL=chunk-5ZMXGW7P.js.map