@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,18 +1,22 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
- computeFingerprint,
4
- computeFingerprintAsync
5
- } from "./chunk-UUVG37B4.js";
3
+ createSlicer
4
+ } from "./chunk-KPRLAMP4.js";
5
+ import {
6
+ WORKSPACE_EXCLUDED_DIRS,
7
+ enumerateWorkspaceFiles,
8
+ enumerateWorkspaceFilesAsync
9
+ } from "./chunk-PPEZJWUG.js";
6
10
  import {
7
11
  require_dist
8
- } from "./chunk-APJ265NV.js";
12
+ } from "./chunk-B5GGDIHT.js";
9
13
  import {
10
14
  safeResourceWrite
11
- } from "./chunk-WEPFGWHJ.js";
15
+ } from "./chunk-ZZFWWYLX.js";
12
16
  import {
13
17
  __toESM,
14
18
  init_esm_shims
15
- } from "./chunk-3R73A4XB.js";
19
+ } from "./chunk-ECBHH7LU.js";
16
20
 
17
21
  // src/domains/context/wiki/frontmatter.ts
18
22
  init_esm_shims();
@@ -195,7 +199,91 @@ function listWikiPages(cwd) {
195
199
  // src/domains/context/wiki/plan-store.ts
196
200
  init_esm_shims();
197
201
  import { existsSync as existsSync2, readFileSync as readFileSync2 } from "node:fs";
202
+ import { join as join4 } from "node:path";
203
+
204
+ // src/domains/context/wiki/source-content.ts
205
+ init_esm_shims();
206
+ import { createHash } from "node:crypto";
207
+ import { closeSync, constants, fstatSync, openSync, readSync } from "node:fs";
198
208
  import { join as join3 } from "node:path";
209
+ var MAX_FILES = 2e4;
210
+ var MAX_BYTES = 128 * 1024 * 1024;
211
+ function parseWikiSourceContent(value) {
212
+ if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
213
+ const entries = Object.entries(value);
214
+ if (entries.length > MAX_FILES) return void 0;
215
+ if (entries.some(([path, hash]) => !path || hash !== null && (typeof hash !== "string" || !/^[a-f0-9]{64}$/.test(hash))))
216
+ return void 0;
217
+ return Object.fromEntries(entries);
218
+ }
219
+ function capture(cwd, files) {
220
+ const content = /* @__PURE__ */ Object.create(null);
221
+ let remainingBytes = MAX_BYTES;
222
+ const buffer = Buffer.alloc(64 * 1024);
223
+ return {
224
+ content,
225
+ add(path) {
226
+ if (files.length > MAX_FILES) return;
227
+ let fd;
228
+ content[path] = null;
229
+ try {
230
+ fd = openSync(join3(cwd, path), constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
231
+ const before = fstatSync(fd);
232
+ if (!before.isFile() || before.size > remainingBytes) return;
233
+ remainingBytes -= before.size;
234
+ const hash = createHash("sha256");
235
+ let remaining = before.size;
236
+ while (remaining > 0) {
237
+ const count = readSync(fd, buffer, 0, Math.min(buffer.length, remaining), null);
238
+ if (count === 0) return;
239
+ hash.update(buffer.subarray(0, count));
240
+ remaining -= count;
241
+ }
242
+ const after = fstatSync(fd);
243
+ if (after.size === before.size && after.mtimeMs === before.mtimeMs && after.ctimeMs === before.ctimeMs)
244
+ content[path] = hash.digest("hex");
245
+ } catch {
246
+ } finally {
247
+ if (fd !== void 0) closeSync(fd);
248
+ }
249
+ }
250
+ };
251
+ }
252
+ function captureWikiSourceContent(cwd) {
253
+ try {
254
+ const files = enumerateWorkspaceFiles(cwd, WORKSPACE_EXCLUDED_DIRS);
255
+ const snapshot = capture(cwd, files);
256
+ for (const path of files) snapshot.add(path);
257
+ return snapshot.content;
258
+ } catch {
259
+ return {};
260
+ }
261
+ }
262
+ async function captureWikiSourceContentAsync(cwd) {
263
+ try {
264
+ const slicer = createSlicer();
265
+ const files = await enumerateWorkspaceFilesAsync(cwd, WORKSPACE_EXCLUDED_DIRS, void 0, slicer);
266
+ const snapshot = capture(cwd, files);
267
+ for (const path of files) {
268
+ snapshot.add(path);
269
+ await slicer.tick();
270
+ }
271
+ return snapshot.content;
272
+ } catch {
273
+ return {};
274
+ }
275
+ }
276
+ function wikiSourcesMatch(previous, current, sources) {
277
+ if (!previous || Object.keys(previous).length === 0 || Object.keys(current).length === 0) return false;
278
+ const claimed = sources?.map((path) => path.replace(/\\/g, "/").replace(/^\.\//, "").replace(/\/$/, ""));
279
+ const paths = [.../* @__PURE__ */ new Set([...Object.keys(previous), ...Object.keys(current)])].filter(
280
+ (path) => !claimed || claimed.some((source) => path === source || path.startsWith(`${source}/`))
281
+ );
282
+ if (claimed?.some((source) => !paths.some((path) => path === source || path.startsWith(`${source}/`)))) return false;
283
+ return paths.length > 0 && paths.every((path) => previous[path] != null && previous[path] === current[path]);
284
+ }
285
+
286
+ // src/domains/context/wiki/plan-store.ts
199
287
  var MAX_PAGE_ATTEMPTS = 3;
200
288
  var MAX_INTENT_CHARS = 600;
201
289
  var MAX_PLAN_PAGES = 200;
@@ -228,7 +316,7 @@ function sanitizePagePath(value) {
228
316
  return normalized;
229
317
  }
230
318
  function wikiPlanPath(dir) {
231
- return join3(dir, WIKI_PLAN_FILE);
319
+ return join4(dir, WIKI_PLAN_FILE);
232
320
  }
233
321
  function parsedStatus(value) {
234
322
  return value === "written" || value === "pending" ? value : null;
@@ -236,6 +324,15 @@ function parsedStatus(value) {
236
324
  function parsedAttempts(value) {
237
325
  return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : null;
238
326
  }
327
+ function parsedFailure(value) {
328
+ if (!isRecord2(value)) return void 0;
329
+ const phase = value.phase;
330
+ if (phase !== "admission" && phase !== "writer" && phase !== "validation") return void 0;
331
+ const detail = usableString2(value.detail)?.replace(/\s+/gu, " ").slice(0, 500);
332
+ if (!detail) return void 0;
333
+ const runId = usableString2(value.runId)?.slice(0, 120);
334
+ return { phase, detail, ...runId ? { runId } : {} };
335
+ }
239
336
  function sanitizeWikiPlan(value, previous, options = { trustStatus: true }) {
240
337
  if (!isRecord2(value) || !Array.isArray(value.pages)) return null;
241
338
  const priorByPath = new Map((previous?.pages ?? []).map((page) => [page.path, page]));
@@ -246,22 +343,50 @@ function sanitizeWikiPlan(value, previous, options = { trustStatus: true }) {
246
343
  if (!isRecord2(entry)) continue;
247
344
  const path = sanitizePagePath(entry.path);
248
345
  if (path === null || seen.has(path)) continue;
249
- const intent = usableString2(entry.intent);
346
+ const intent = (usableString2(entry.intent) ?? "").slice(0, MAX_INTENT_CHARS);
347
+ const title = usableString2(entry.title) ?? path.replace(/\.md$/, "");
348
+ const sources = stringList2(entry.sources, 16);
250
349
  const prior = priorByPath.get(path);
350
+ const changedSpec = prior !== void 0 && (prior.title !== title || prior.intent !== intent || JSON.stringify([...prior.sources].sort()) !== JSON.stringify([...sources].sort()));
251
351
  const recorded = options.trustStatus ? parsedStatus(entry.status) : null;
252
352
  const recordedAttempts = options.trustStatus ? parsedAttempts(entry.attempts) : null;
353
+ const lastFailure = prior?.lastFailure ?? (options.trustStatus ? parsedFailure(entry.lastFailure) : void 0);
354
+ const dependencies = prior?.dependencies ?? (options.trustStatus ? stringList2(entry.dependencies, Number.POSITIVE_INFINITY) : []);
253
355
  seen.add(path);
254
356
  pages.push({
255
357
  path,
256
- title: usableString2(entry.title) ?? path.replace(/\.md$/, ""),
257
- intent: intent === null ? "" : intent.slice(0, MAX_INTENT_CHARS),
258
- sources: stringList2(entry.sources, 16),
259
- status: prior?.status ?? recorded ?? "pending",
260
- attempts: prior?.attempts ?? recordedAttempts ?? 0
358
+ title,
359
+ intent,
360
+ sources,
361
+ ...dependencies.length > 0 ? { dependencies } : {},
362
+ status: changedSpec ? "pending" : prior?.status ?? recorded ?? "pending",
363
+ attempts: changedSpec ? 0 : prior?.attempts ?? recordedAttempts ?? 0,
364
+ ...!changedSpec && (prior?.status ?? recorded) !== "written" && lastFailure ? { lastFailure } : {}
261
365
  });
262
366
  }
263
367
  if (pages.length === 0) return null;
264
- return { version: 1, overview: usableString2(value.overview) ?? previous?.overview ?? "", pages };
368
+ const retiredPages = [
369
+ .../* @__PURE__ */ new Set([
370
+ ...previous?.retiredPages ?? (options.trustStatus ? stringList2(value.retiredPages, MAX_PLAN_PAGES) : []),
371
+ ...previous?.pages.filter((page) => !seen.has(page.path)).map((page) => page.path) ?? []
372
+ ])
373
+ ].map(sanitizePagePath).filter((path) => path !== null && !seen.has(path));
374
+ const sourceContent = previous?.sourceContent ?? (options.trustStatus ? parseWikiSourceContent(value.sourceContent) : void 0);
375
+ const sourceTreeHash = previous?.sourceTreeHash ?? (options.trustStatus ? value.sourceTreeHash : void 0);
376
+ const sourceGitHead = previous?.sourceGitHead ?? (options.trustStatus ? value.sourceGitHead : void 0);
377
+ const depth = previous?.depth ?? (options.trustStatus ? value.depth : void 0);
378
+ const requestedDepth = previous?.requestedDepth ?? (options.trustStatus ? value.requestedDepth : void 0);
379
+ return {
380
+ version: 1,
381
+ ...depth === "simple" || depth === "medium" || depth === "detailed" ? { depth } : {},
382
+ ...requestedDepth === "auto" || requestedDepth === "simple" || requestedDepth === "medium" || requestedDepth === "detailed" ? { requestedDepth } : {},
383
+ ...sourceContent ? { sourceContent } : {},
384
+ ...retiredPages.length ? { retiredPages } : {},
385
+ ...typeof sourceTreeHash === "string" && /^[a-f0-9]{64}$/.test(sourceTreeHash) ? { sourceTreeHash } : {},
386
+ ...typeof sourceGitHead === "string" && /^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(sourceGitHead) ? { sourceGitHead } : {},
387
+ overview: usableString2(value.overview) ?? previous?.overview ?? "",
388
+ pages
389
+ };
265
390
  }
266
391
  function readPlanDocument(dir) {
267
392
  const filePath = wikiPlanPath(dir);
@@ -288,7 +413,8 @@ function unclaimedCandidates(plan, candidate, pageSources = /* @__PURE__ */ new
288
413
  const knownPaths = new Set(plan.pages.map((page) => page.path));
289
414
  const claimed = /* @__PURE__ */ new Set();
290
415
  for (const page of plan.pages) {
291
- for (const source of [...page.sources, ...pageSources.get(page.path) ?? []]) claimed.add(source);
416
+ for (const source of [...page.sources, ...page.dependencies ?? [], ...pageSources.get(page.path) ?? []])
417
+ claimed.add(source);
292
418
  }
293
419
  return candidate.pages.filter(
294
420
  (page) => !knownPaths.has(page.path) && !page.sources.some((source) => claimed.has(source))
@@ -297,8 +423,9 @@ function unclaimedCandidates(plan, candidate, pageSources = /* @__PURE__ */ new
297
423
  function scopePlanForUpdate(input) {
298
424
  const changedPrefixes = [...input.changedPaths];
299
425
  const pages = input.plan.pages.map((page) => {
426
+ if (page.status !== "written") return page;
300
427
  if (!input.existingPages.has(page.path)) return { ...page, status: "pending", attempts: 0 };
301
- const claimed = [...input.pageSources.get(page.path) ?? [], ...page.sources];
428
+ const claimed = [...input.pageSources.get(page.path) ?? [], ...page.sources, ...page.dependencies ?? []];
302
429
  const touched = claimed.some(
303
430
  (source) => changedPrefixes.some((changed) => changed === source || changed.startsWith(`${source}/`))
304
431
  );
@@ -306,305 +433,12 @@ function scopePlanForUpdate(input) {
306
433
  });
307
434
  return { ...input.plan, pages };
308
435
  }
309
- function pendingPages(plan) {
310
- return plan.pages.filter((page) => page.status !== "written" && page.attempts < MAX_PAGE_ATTEMPTS);
311
- }
312
-
313
- // src/domains/context/wiki/meta.ts
314
- init_esm_shims();
315
- import { execFileSync } from "node:child_process";
316
- import { createHash } from "node:crypto";
317
- import { existsSync as existsSync3, readFileSync as readFileSync3 } from "node:fs";
318
- import { join as join4 } from "node:path";
319
- function compareStrings2(a, b) {
320
- return a.localeCompare(b);
321
- }
322
- function isRecord3(value) {
323
- return typeof value === "object" && value !== null && !Array.isArray(value);
324
- }
325
- function stringValue(value) {
326
- return typeof value === "string" && value.trim().length > 0 ? value : null;
327
- }
328
- function nonNegativeSafeInteger(value) {
329
- return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
330
- }
331
- var REQUESTED_DEPTHS = ["auto", "simple", "medium", "detailed"];
332
- var RESOLVED_DEPTHS = ["simple", "medium", "detailed"];
333
- function parseGeneration(value) {
334
- if (!isRecord3(value)) return void 0;
335
- const { requestedDepth, depth, sourceFiles, sourceLines, pagesPlanned, pagesWritten } = value;
336
- if (!REQUESTED_DEPTHS.includes(requestedDepth) || !RESOLVED_DEPTHS.includes(depth) || !nonNegativeSafeInteger(sourceFiles) || !nonNegativeSafeInteger(sourceLines) || !nonNegativeSafeInteger(pagesPlanned) || !nonNegativeSafeInteger(pagesWritten)) {
337
- return void 0;
338
- }
339
- return {
340
- requestedDepth,
341
- depth,
342
- sourceFiles,
343
- sourceLines,
344
- pagesPlanned,
345
- pagesWritten
346
- };
347
- }
348
- function normalizePages(pages) {
349
- return pages.map((page) => ({ path: page.path, title: page.title, ...page.summary ? { summary: page.summary } : {} })).sort((a, b) => a.path.localeCompare(b.path));
350
- }
351
- function wikiMetaPath(cwd) {
352
- return join4(wikiDir(cwd), "meta.json");
353
- }
354
- function currentWikiGitHead(cwd) {
355
- try {
356
- return execFileSync("git", ["rev-parse", "--verify", "HEAD"], {
357
- cwd,
358
- encoding: "utf8",
359
- stdio: ["ignore", "pipe", "ignore"]
360
- }).trim();
361
- } catch {
362
- return null;
363
- }
364
- }
365
- function validateWikiMeta(value) {
366
- const problems = [];
367
- if (!isRecord3(value)) {
368
- return { ok: false, problems: ["meta must be a JSON object"] };
369
- }
370
- if (value.version !== 1) problems.push("version must be 1");
371
- const updatedAt = stringValue(value.updatedAt);
372
- if (!updatedAt) problems.push("updatedAt must be a non-empty string");
373
- const gitHead = value.gitHead;
374
- if (gitHead !== null && typeof gitHead !== "string") problems.push("gitHead must be a string or null");
375
- const sourceTreeHash = value.sourceTreeHash;
376
- if (sourceTreeHash !== void 0 && (typeof sourceTreeHash !== "string" || !/^[a-f0-9]{64}$/.test(sourceTreeHash))) {
377
- problems.push("sourceTreeHash must be a sha256 hex string when present");
378
- }
379
- const model = stringValue(value.model);
380
- if (!model) problems.push("model must be a non-empty string");
381
- const contentHash = stringValue(value.contentHash);
382
- if (!contentHash || !/^[a-f0-9]{64}$/.test(contentHash)) {
383
- problems.push("contentHash must be a sha256 hex string");
384
- }
385
- if (!Array.isArray(value.pages)) {
386
- problems.push("pages must be an array");
387
- } else {
388
- for (const [index, page] of value.pages.entries()) {
389
- if (!isRecord3(page)) {
390
- problems.push(`pages[${index}] must be an object`);
391
- continue;
392
- }
393
- if (!stringValue(page.path)) problems.push(`pages[${index}].path must be a non-empty string`);
394
- if (!stringValue(page.title)) problems.push(`pages[${index}].title must be a non-empty string`);
395
- }
396
- }
397
- if (problems.length > 0) return { ok: false, problems };
398
- const generation = parseGeneration(value.generation);
399
- const plan = sanitizeWikiPlan(value.plan, void 0, { trustStatus: true });
400
- return {
401
- ok: true,
402
- value: {
403
- version: 1,
404
- updatedAt,
405
- gitHead,
406
- ...sourceTreeHash !== void 0 ? { sourceTreeHash } : {},
407
- model,
408
- contentHash,
409
- pages: normalizePages(value.pages),
410
- ...generation !== void 0 ? { generation } : {},
411
- ...plan !== null ? { plan } : {}
412
- }
413
- };
414
- }
415
- function isWikiMeta(value) {
416
- return validateWikiMeta(value).ok;
417
- }
418
- function readWikiMeta(cwd) {
419
- const filePath = wikiMetaPath(cwd);
420
- if (!existsSync3(filePath)) return null;
421
- let parsed;
422
- try {
423
- parsed = JSON.parse(readFileSync3(filePath, "utf8"));
424
- } catch {
425
- return null;
426
- }
427
- const validation = validateWikiMeta(parsed);
428
- return validation.ok ? validation.value : null;
429
- }
430
- function writeWikiMeta(cwd, meta) {
431
- const normalized = {
432
- version: 1,
433
- updatedAt: meta.updatedAt,
434
- gitHead: meta.gitHead,
435
- ...meta.sourceTreeHash ? { sourceTreeHash: meta.sourceTreeHash } : {},
436
- model: meta.model,
437
- contentHash: meta.contentHash,
438
- pages: normalizePages(meta.pages),
439
- ...meta.generation !== void 0 ? { generation: { ...meta.generation } } : {},
440
- ...meta.plan !== void 0 ? { plan: meta.plan } : {}
441
- };
442
- safeResourceWrite(wikiMetaPath(cwd), `${JSON.stringify(normalized)}
443
- `, { encoding: "utf8" });
444
- }
445
- function computeWikiContentHashOfDir(dir) {
446
- const hash = createHash("sha256");
447
- for (const relPath of wikiMarkdownFilesInDir(dir).sort(compareStrings2)) {
448
- let text = "";
449
- try {
450
- text = readFileSync3(join4(dir, relPath), "utf8");
451
- } catch {
452
- text = "";
453
- }
454
- hash.update(`${relPath}\0${text.length}\0`);
455
- hash.update(text);
456
- hash.update("\0");
457
- }
458
- return hash.digest("hex");
459
- }
460
- function computeWikiContentHash(cwd) {
461
- return computeWikiContentHashOfDir(wikiDir(cwd));
462
- }
463
-
464
- // src/domains/context/wiki/staleness.ts
465
- init_esm_shims();
466
- import { execFile, execFileSync as execFileSync2 } from "node:child_process";
467
- import { promisify } from "node:util";
468
- var execFileAsync = promisify(execFile);
469
- var GIT_DIFF_LINE_CAP = 200;
470
- function splitNullTerminatedPaths(output) {
471
- return output.split("\0").filter((path) => path.length > 0);
472
- }
473
- function currentGitHead(cwd) {
474
- try {
475
- const out = execFileSync2("git", ["rev-parse", "--verify", "HEAD"], {
476
- cwd,
477
- encoding: "utf8",
478
- stdio: ["ignore", "pipe", "ignore"]
479
- }).trim();
480
- return out.length > 0 ? out : null;
481
- } catch {
482
- return null;
483
- }
484
- }
485
- async function currentGitHeadAsync(cwd) {
486
- try {
487
- const { stdout } = await execFileAsync("git", ["rev-parse", "--verify", "HEAD"], { cwd, encoding: "utf8" });
488
- const out = stdout.trim();
489
- return out.length > 0 ? out : null;
490
- } catch {
491
- return null;
492
- }
493
- }
494
- function collectChangedPaths(cwd, gitHead) {
495
- const committed = execFileSync2("git", ["diff", "--name-only", "-z", `${gitHead}..HEAD`], {
496
- cwd,
497
- encoding: "utf8",
498
- stdio: ["ignore", "pipe", "ignore"]
499
- });
500
- const trackedWorking = execFileSync2("git", ["diff", "--name-only", "-z", "HEAD"], {
501
- cwd,
502
- encoding: "utf8",
503
- stdio: ["ignore", "pipe", "ignore"]
504
- });
505
- const untracked = execFileSync2("git", ["ls-files", "--others", "--exclude-standard", "-z"], {
506
- cwd,
507
- encoding: "utf8",
508
- stdio: ["ignore", "pipe", "ignore"]
509
- });
510
- return /* @__PURE__ */ new Set([
511
- ...splitNullTerminatedPaths(committed),
512
- ...splitNullTerminatedPaths(trackedWorking),
513
- ...splitNullTerminatedPaths(untracked)
514
- ]);
515
- }
516
- function changedPathsSince(cwd, gitHead) {
517
- if (!gitHead) return [];
518
- try {
519
- return [...collectChangedPaths(cwd, gitHead)];
520
- } catch {
521
- return [];
522
- }
523
- }
524
- async function collectChangedPathsAsync(cwd, gitHead) {
525
- const run = async (args) => {
526
- const { stdout } = await execFileAsync("git", args, { cwd, encoding: "utf8" });
527
- return stdout;
528
- };
529
- const [committed, trackedWorking, untracked] = await Promise.all([
530
- run(["diff", "--name-only", "-z", `${gitHead}..HEAD`]),
531
- run(["diff", "--name-only", "-z", "HEAD"]),
532
- run(["ls-files", "--others", "--exclude-standard", "-z"])
533
- ]);
534
- return /* @__PURE__ */ new Set([
535
- ...splitNullTerminatedPaths(committed),
536
- ...splitNullTerminatedPaths(trackedWorking),
537
- ...splitNullTerminatedPaths(untracked)
538
- ]);
539
- }
540
- function capChangedPaths(paths) {
541
- const capped = [...paths].slice(0, GIT_DIFF_LINE_CAP);
542
- return {
543
- count: capped.length,
544
- ...paths.size > capped.length ? { warning: `changed file count capped at ${GIT_DIFF_LINE_CAP}` } : {}
545
- };
546
- }
547
- var CHANGED_COUNT_FAILURE = "wiki staleness unavailable: git diff failed for the recorded wiki gitHead";
548
- function changedFileCount(cwd, gitHead) {
549
- try {
550
- return capChangedPaths(collectChangedPaths(cwd, gitHead));
551
- } catch {
552
- return { warning: CHANGED_COUNT_FAILURE };
553
- }
554
- }
555
- async function changedFileCountAsync(cwd, gitHead) {
556
- try {
557
- return capChangedPaths(await collectChangedPathsAsync(cwd, gitHead));
558
- } catch {
559
- return { warning: CHANGED_COUNT_FAILURE };
560
- }
561
- }
562
- function wikiCompletenessFromMeta(meta) {
563
- const generation = meta?.generation;
564
- if (!generation) return null;
565
- return {
566
- pagesPlanned: generation.pagesPlanned,
567
- pagesWritten: generation.pagesWritten,
568
- owed: Math.max(0, generation.pagesPlanned - generation.pagesWritten)
569
- };
570
- }
571
- function wikiCompleteness(cwd) {
572
- return wikiCompletenessFromMeta(readWikiMeta(cwd));
573
- }
574
- var MISSING_RECORDED_HEAD = "wiki staleness unavailable: recorded gitHead is missing";
575
- var MISSING_CURRENT_HEAD = "wiki staleness unavailable: current git HEAD is missing";
576
- function wikiStaleness(cwd) {
577
- const meta = readWikiMeta(cwd);
578
- if (!meta) return { state: "absent" };
579
- if (!meta.gitHead) return { state: "fresh", warning: MISSING_RECORDED_HEAD };
580
- const head = currentGitHead(cwd);
581
- if (!head) return { state: "fresh", warning: MISSING_CURRENT_HEAD };
582
- if (meta.sourceTreeHash && computeFingerprint(cwd).treeHash === meta.sourceTreeHash && head === meta.gitHead) {
583
- return { state: "fresh" };
584
- }
585
- if (!meta.sourceTreeHash && head === meta.gitHead) return { state: "fresh" };
586
- const diff = changedFileCount(cwd, meta.gitHead);
587
- if (!("count" in diff)) return { state: "fresh", warning: diff.warning };
588
- return { state: "stale", changedFiles: diff.count, ...diff.warning ? { warning: diff.warning } : {} };
589
- }
590
- async function wikiStalenessAsync(cwd) {
591
- const meta = readWikiMeta(cwd);
592
- if (!meta) return { state: "absent" };
593
- if (!meta.gitHead) return { state: "fresh", warning: MISSING_RECORDED_HEAD };
594
- const head = await currentGitHeadAsync(cwd);
595
- if (!head) return { state: "fresh", warning: MISSING_CURRENT_HEAD };
596
- if (meta.sourceTreeHash) {
597
- const fingerprint = await computeFingerprintAsync(cwd);
598
- if (fingerprint.treeHash === meta.sourceTreeHash && head === meta.gitHead) return { state: "fresh" };
599
- } else if (head === meta.gitHead) {
600
- return { state: "fresh" };
601
- }
602
- const diff = await changedFileCountAsync(cwd, meta.gitHead);
603
- if (!("count" in diff)) return { state: "fresh", warning: diff.warning };
604
- return { state: "stale", changedFiles: diff.count, ...diff.warning ? { warning: diff.warning } : {} };
436
+ function pendingPages(plan, retryExhausted = false) {
437
+ return plan.pages.filter((page) => page.status !== "written" && (retryExhausted || page.attempts < MAX_PAGE_ATTEMPTS));
605
438
  }
606
439
 
607
440
  export {
441
+ stripFrontmatter,
608
442
  resolveSourcePath,
609
443
  readWikiPage,
610
444
  renderWikiPage,
@@ -616,6 +450,9 @@ export {
616
450
  isGeneratedWikiFile,
617
451
  listWikiPagesInDir,
618
452
  listWikiPages,
453
+ captureWikiSourceContent,
454
+ captureWikiSourceContentAsync,
455
+ wikiSourcesMatch,
619
456
  MAX_PAGE_ATTEMPTS,
620
457
  sanitizePagePath,
621
458
  sanitizeWikiPlan,
@@ -624,19 +461,6 @@ export {
624
461
  writeWikiPlanFile,
625
462
  unclaimedCandidates,
626
463
  scopePlanForUpdate,
627
- pendingPages,
628
- wikiMetaPath,
629
- currentWikiGitHead,
630
- validateWikiMeta,
631
- isWikiMeta,
632
- readWikiMeta,
633
- writeWikiMeta,
634
- computeWikiContentHashOfDir,
635
- computeWikiContentHash,
636
- changedPathsSince,
637
- wikiCompletenessFromMeta,
638
- wikiCompleteness,
639
- wikiStaleness,
640
- wikiStalenessAsync
464
+ pendingPages
641
465
  };
642
- //# sourceMappingURL=chunk-ELZVTCGV.js.map
466
+ //# sourceMappingURL=chunk-LVFANMOH.js.map
@@ -1,7 +1,10 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ withResultSummaryAllowance
4
+ } from "./chunk-OQM5IVJY.js";
2
5
  import {
3
6
  init_esm_shims
4
- } from "./chunk-3R73A4XB.js";
7
+ } from "./chunk-ECBHH7LU.js";
5
8
 
6
9
  // src/domains/dispatch/execution-role.ts
7
10
  init_esm_shims();
@@ -53,6 +56,17 @@ function gateDeciderAgentId(requested) {
53
56
  function appliesRecipeResultContract(gateRole) {
54
57
  return gateRole !== "reviewer" && gateRole !== "judge" && gateRole !== "synthesis";
55
58
  }
59
+ function dispatchResultContract(req, recipe) {
60
+ if (!appliesRecipeResultContract(req.gate?.role)) return void 0;
61
+ const base = req.resultContractOverride ?? recipe?.resultContract;
62
+ const allowance = req.resultSummary;
63
+ if (allowance === void 0) return base;
64
+ if (base?.kind === "mutation-report") return withResultSummaryAllowance(base, allowance.maxBytes);
65
+ if (req.resultContractOverride !== void 0 || allowance.scope === "batch") return base;
66
+ throw new Error(
67
+ `dispatch: result_summary_max_bytes applies only to a mutation-report result contract; agent '${req.agentId}' declares ${base === void 0 ? "no result contract" : base.kind}`
68
+ );
69
+ }
56
70
  function routeCorrelationFactsForRun(run) {
57
71
  return {
58
72
  agentId: run.agentId,
@@ -96,8 +110,8 @@ export {
96
110
  requestExecutionRole,
97
111
  withAttemptRole,
98
112
  gateDeciderAgentId,
99
- appliesRecipeResultContract,
113
+ dispatchResultContract,
100
114
  routeCorrelationFactsForRun,
101
115
  gateRouteCorrelation
102
116
  };
103
- //# sourceMappingURL=chunk-H7IXIC72.js.map
117
+ //# sourceMappingURL=chunk-LY4N4TTL.js.map
@@ -2,17 +2,17 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  createRedactionTally,
4
4
  redactSecretsText
5
- } from "./chunk-4BJ5BYCE.js";
5
+ } from "./chunk-O3VV6IVK.js";
6
6
  import {
7
7
  normalizeClioCoderEventType
8
- } from "./chunk-BTK3SSSK.js";
8
+ } from "./chunk-KMF54VH3.js";
9
9
  import {
10
10
  processAlive,
11
11
  processBirthToken
12
- } from "./chunk-3I7MS7N2.js";
12
+ } from "./chunk-TK2BMCBZ.js";
13
13
  import {
14
14
  init_esm_shims
15
- } from "./chunk-3R73A4XB.js";
15
+ } from "./chunk-ECBHH7LU.js";
16
16
 
17
17
  // src/domains/observability/trace-store.ts
18
18
  init_esm_shims();
@@ -1193,4 +1193,4 @@ export {
1193
1193
  createDispatchTraceMirror,
1194
1194
  assertTraceSelectOnly
1195
1195
  };
1196
- //# sourceMappingURL=chunk-VKPAQYEB.js.map
1196
+ //# sourceMappingURL=chunk-LZBMXNLP.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/verification-scripts.ts
7
7
  init_esm_shims();
@@ -24,4 +24,4 @@ export {
24
24
  isProjectVerifierCheckId,
25
25
  declaredVerificationScripts
26
26
  };
27
- //# sourceMappingURL=chunk-UL3WSD3F.js.map
27
+ //# sourceMappingURL=chunk-M4KFUXS7.js.map
@@ -1,19 +1,19 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  canonicalizeExistingPath
4
- } from "./chunk-ECH6PKUQ.js";
4
+ } from "./chunk-KQ6IDQIB.js";
5
5
  import {
6
6
  artifactDefaultPath
7
- } from "./chunk-GYV6VZOC.js";
7
+ } from "./chunk-NTTS3O53.js";
8
8
  import {
9
9
  isVerificationScriptName
10
- } from "./chunk-UL3WSD3F.js";
10
+ } from "./chunk-M4KFUXS7.js";
11
11
  import {
12
12
  ToolNames
13
- } from "./chunk-4NSRCOYP.js";
13
+ } from "./chunk-EHOSNVVM.js";
14
14
  import {
15
15
  init_esm_shims
16
- } from "./chunk-3R73A4XB.js";
16
+ } from "./chunk-ECBHH7LU.js";
17
17
 
18
18
  // src/domains/safety/protected-artifacts.ts
19
19
  init_esm_shims();
@@ -804,4 +804,4 @@ export {
804
804
  commandArgumentSegments,
805
805
  scanShellLike
806
806
  };
807
- //# sourceMappingURL=chunk-NXYCB2VD.js.map
807
+ //# sourceMappingURL=chunk-M6TAYK66.js.map