@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
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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-
|
|
12
|
+
} from "./chunk-B5GGDIHT.js";
|
|
9
13
|
import {
|
|
10
14
|
safeResourceWrite
|
|
11
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZZFWWYLX.js";
|
|
12
16
|
import {
|
|
13
17
|
__toESM,
|
|
14
18
|
init_esm_shims
|
|
15
|
-
} from "./chunk-
|
|
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
|
|
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
|
|
257
|
-
intent
|
|
258
|
-
sources
|
|
259
|
-
|
|
260
|
-
|
|
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
|
-
|
|
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) ?? []])
|
|
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-
|
|
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-
|
|
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
|
-
|
|
113
|
+
dispatchResultContract,
|
|
100
114
|
routeCorrelationFactsForRun,
|
|
101
115
|
gateRouteCorrelation
|
|
102
116
|
};
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
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-
|
|
5
|
+
} from "./chunk-O3VV6IVK.js";
|
|
6
6
|
import {
|
|
7
7
|
normalizeClioCoderEventType
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KMF54VH3.js";
|
|
9
9
|
import {
|
|
10
10
|
processAlive,
|
|
11
11
|
processBirthToken
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TK2BMCBZ.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esm_shims
|
|
15
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
+
} from "./chunk-KQ6IDQIB.js";
|
|
5
5
|
import {
|
|
6
6
|
artifactDefaultPath
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-NTTS3O53.js";
|
|
8
8
|
import {
|
|
9
9
|
isVerificationScriptName
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-M4KFUXS7.js";
|
|
11
11
|
import {
|
|
12
12
|
ToolNames
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-EHOSNVVM.js";
|
|
14
14
|
import {
|
|
15
15
|
init_esm_shims
|
|
16
|
-
} from "./chunk-
|
|
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-
|
|
807
|
+
//# sourceMappingURL=chunk-M6TAYK66.js.map
|