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