@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
|
@@ -3,34 +3,200 @@ import {
|
|
|
3
3
|
ROUTE_POLICY_VERSION,
|
|
4
4
|
isRouteDecisionAgentSelection,
|
|
5
5
|
isRoutingIntent
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-K2HL3GBL.js";
|
|
7
7
|
import {
|
|
8
8
|
isExecutionRole
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LY4N4TTL.js";
|
|
10
10
|
import {
|
|
11
11
|
readSettings
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WNGF5AJX.js";
|
|
13
13
|
import {
|
|
14
14
|
readClioVersion,
|
|
15
15
|
resolvePackageRoot
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-E3LEPLQ2.js";
|
|
17
17
|
import {
|
|
18
18
|
require_dist
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-B5GGDIHT.js";
|
|
20
20
|
import {
|
|
21
21
|
__toESM,
|
|
22
22
|
init_esm_shims
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-ECBHH7LU.js";
|
|
24
24
|
|
|
25
|
-
// src/domains/
|
|
25
|
+
// src/domains/context/codewiki/digest.ts
|
|
26
|
+
init_esm_shims();
|
|
27
|
+
function compareStrings(a, b) {
|
|
28
|
+
return a.localeCompare(b);
|
|
29
|
+
}
|
|
30
|
+
function topTwoSegments(path2) {
|
|
31
|
+
const parts = path2.split("/").slice(0, -1);
|
|
32
|
+
if (parts.length === 0) return ".";
|
|
33
|
+
return parts.slice(0, 2).join("/");
|
|
34
|
+
}
|
|
35
|
+
function sourceFiles(codewiki) {
|
|
36
|
+
return codewiki.files.filter((file) => file.lang !== "config").sort((a, b) => a.path.localeCompare(b.path));
|
|
37
|
+
}
|
|
38
|
+
function countBy(items) {
|
|
39
|
+
const counts = /* @__PURE__ */ new Map();
|
|
40
|
+
for (const item of items) counts.set(item, (counts.get(item) ?? 0) + 1);
|
|
41
|
+
return [...counts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
|
|
42
|
+
}
|
|
43
|
+
function entryPoints(codewiki, limit) {
|
|
44
|
+
const files = sourceFiles(codewiki);
|
|
45
|
+
const tagged = files.filter((file) => file.role === "entry");
|
|
46
|
+
if (tagged.length >= limit) return tagged.slice(0, limit);
|
|
47
|
+
const fileById = new Map(files.map((file) => [file.id, file]));
|
|
48
|
+
const inDegree = /* @__PURE__ */ new Map();
|
|
49
|
+
for (const edge of codewiki.edges) {
|
|
50
|
+
if ("toFileId" in edge) inDegree.set(edge.toFileId, (inDegree.get(edge.toFileId) ?? 0) + 1);
|
|
51
|
+
}
|
|
52
|
+
const taggedIds = new Set(tagged.map((file) => file.id));
|
|
53
|
+
const ranked = [...inDegree.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])).map(([id]) => fileById.get(id)).filter((file) => file !== void 0 && !taggedIds.has(file.id));
|
|
54
|
+
return [...tagged, ...ranked].slice(0, limit);
|
|
55
|
+
}
|
|
56
|
+
function keySymbols(codewiki, limit) {
|
|
57
|
+
const rank = /* @__PURE__ */ new Map([
|
|
58
|
+
["class", 0],
|
|
59
|
+
["trait", 1],
|
|
60
|
+
["iface", 2],
|
|
61
|
+
["type", 3],
|
|
62
|
+
["func", 4],
|
|
63
|
+
["method", 5],
|
|
64
|
+
["const", 6],
|
|
65
|
+
["var", 7]
|
|
66
|
+
]);
|
|
67
|
+
return [...codewiki.symbols].sort((a, b) => {
|
|
68
|
+
const rankCmp = (rank.get(a.kind) ?? 99) - (rank.get(b.kind) ?? 99);
|
|
69
|
+
return rankCmp || a.name.localeCompare(b.name) || a.fileId.localeCompare(b.fileId) || a.line - b.line;
|
|
70
|
+
}).slice(0, limit);
|
|
71
|
+
}
|
|
72
|
+
function dependencyLines(codewiki, limit) {
|
|
73
|
+
const fileById = new Map(codewiki.files.map((file) => [file.id, file]));
|
|
74
|
+
const byFile = /* @__PURE__ */ new Map();
|
|
75
|
+
for (const edge of codewiki.edges) {
|
|
76
|
+
const deps = byFile.get(edge.fileId) ?? { internal: [], external: [] };
|
|
77
|
+
if ("toFileId" in edge) {
|
|
78
|
+
const target = fileById.get(edge.toFileId);
|
|
79
|
+
if (target) deps.internal.push(target.path);
|
|
80
|
+
} else {
|
|
81
|
+
deps.external.push(edge.externalModule);
|
|
82
|
+
}
|
|
83
|
+
byFile.set(edge.fileId, deps);
|
|
84
|
+
}
|
|
85
|
+
return [...byFile.entries()].map(([fileId, deps]) => {
|
|
86
|
+
const file = fileById.get(fileId);
|
|
87
|
+
if (!file) return "";
|
|
88
|
+
const internal = [...new Set(deps.internal)].sort(compareStrings).slice(0, 4);
|
|
89
|
+
const external = [...new Set(deps.external)].sort(compareStrings).slice(0, 4);
|
|
90
|
+
return `- ${file.path}: internal=[${internal.join(", ")}] external=[${external.join(", ")}]`;
|
|
91
|
+
}).filter((line) => line.length > 0).sort(compareStrings).slice(0, limit);
|
|
92
|
+
}
|
|
93
|
+
function fitLines(lines, tokenBudget) {
|
|
94
|
+
const maxChars = Math.max(256, Math.floor(tokenBudget * 4));
|
|
95
|
+
const out = [];
|
|
96
|
+
let used = 0;
|
|
97
|
+
for (const line of lines) {
|
|
98
|
+
const next = used + line.length + 1;
|
|
99
|
+
if (next > maxChars) {
|
|
100
|
+
out.push("[digest truncated]");
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
out.push(line);
|
|
104
|
+
used = next;
|
|
105
|
+
}
|
|
106
|
+
return out.join("\n");
|
|
107
|
+
}
|
|
108
|
+
function entryPointLine(file) {
|
|
109
|
+
const base = `- ${file.path} (${file.lang}, ${file.loc} loc)`;
|
|
110
|
+
return file.summary ? `${base}: ${file.summary.slice(0, 160)}` : base;
|
|
111
|
+
}
|
|
112
|
+
function renderCodewikiDigest(codewiki, tokenBudget = 1200) {
|
|
113
|
+
const files = sourceFiles(codewiki);
|
|
114
|
+
const areaCounts = countBy(files.map((file) => topTwoSegments(file.path))).slice(0, 10).map(([area, count]) => `${area}=${count}`);
|
|
115
|
+
const languageCounts = countBy(files.map((file) => file.lang)).map(([language, count]) => `${language}=${count}`).join(", ");
|
|
116
|
+
const roleCounts = countBy(files.map((file) => file.role)).map(([role, count]) => `${role}=${count}`).join(", ");
|
|
117
|
+
const fileById = new Map(codewiki.files.map((file) => [file.id, file]));
|
|
118
|
+
const lines = [
|
|
119
|
+
`codewiki v${codewiki.version} language=${codewiki.language} files=${files.length} configs=${codewiki.files.length - files.length} symbols=${codewiki.symbols.length} edges=${codewiki.edges.length}`,
|
|
120
|
+
`languages: ${languageCounts || "none"}`,
|
|
121
|
+
`roles: ${roleCounts || "none"}`,
|
|
122
|
+
`areas: ${areaCounts.join(", ") || "none"}`,
|
|
123
|
+
"entry points:",
|
|
124
|
+
...entryPoints(codewiki, 12).map(entryPointLine),
|
|
125
|
+
"key symbols:",
|
|
126
|
+
...keySymbols(codewiki, 40).map((symbol) => {
|
|
127
|
+
const file = fileById.get(symbol.fileId);
|
|
128
|
+
const location = file ? `${file.path}:${symbol.line}` : `${symbol.fileId}:${symbol.line}`;
|
|
129
|
+
return `- ${symbol.name} ${symbol.kind} ${location}`;
|
|
130
|
+
}),
|
|
131
|
+
"dependencies:",
|
|
132
|
+
...dependencyLines(codewiki, 24)
|
|
133
|
+
];
|
|
134
|
+
return fitLines(lines, tokenBudget);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// src/domains/prompts/hash.ts
|
|
26
138
|
init_esm_shims();
|
|
27
139
|
import { createHash } from "node:crypto";
|
|
28
|
-
var RUN_RECEIPT_INTEGRITY_VERSION = 20;
|
|
29
|
-
var RUN_RECEIPT_INTEGRITY_ALGORITHM = "sha256";
|
|
30
140
|
function sha256(input) {
|
|
31
141
|
return createHash("sha256").update(input, "utf8").digest("hex");
|
|
32
142
|
}
|
|
33
143
|
function canonicalJson(value) {
|
|
144
|
+
return serialize(value);
|
|
145
|
+
}
|
|
146
|
+
function serialize(value) {
|
|
147
|
+
if (value === null) return "null";
|
|
148
|
+
if (typeof value === "number") {
|
|
149
|
+
if (!Number.isFinite(value)) {
|
|
150
|
+
throw new Error(`canonicalJson: non-finite number ${String(value)} is not representable`);
|
|
151
|
+
}
|
|
152
|
+
return JSON.stringify(value);
|
|
153
|
+
}
|
|
154
|
+
if (typeof value === "string" || typeof value === "boolean") {
|
|
155
|
+
return JSON.stringify(value);
|
|
156
|
+
}
|
|
157
|
+
if (typeof value === "bigint") {
|
|
158
|
+
throw new Error("canonicalJson: bigint is not representable");
|
|
159
|
+
}
|
|
160
|
+
if (typeof value === "symbol" || typeof value === "function") {
|
|
161
|
+
throw new Error(`canonicalJson: ${typeof value} is not representable`);
|
|
162
|
+
}
|
|
163
|
+
if (value === void 0) {
|
|
164
|
+
throw new Error("canonicalJson: undefined is not representable at root");
|
|
165
|
+
}
|
|
166
|
+
if (Array.isArray(value)) {
|
|
167
|
+
const parts = [];
|
|
168
|
+
for (let i = 0; i < value.length; i++) {
|
|
169
|
+
if (!(i in value) || value[i] === void 0) {
|
|
170
|
+
parts.push("null");
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
parts.push(serialize(value[i]));
|
|
174
|
+
}
|
|
175
|
+
return `[${parts.join(",")}]`;
|
|
176
|
+
}
|
|
177
|
+
if (typeof value === "object") {
|
|
178
|
+
const obj = value;
|
|
179
|
+
const keys = Object.keys(obj).sort();
|
|
180
|
+
const parts = [];
|
|
181
|
+
for (const key of keys) {
|
|
182
|
+
const child = obj[key];
|
|
183
|
+
if (child === void 0) continue;
|
|
184
|
+
parts.push(`${JSON.stringify(key)}:${serialize(child)}`);
|
|
185
|
+
}
|
|
186
|
+
return `{${parts.join(",")}}`;
|
|
187
|
+
}
|
|
188
|
+
throw new Error(`canonicalJson: unsupported value of type ${typeof value}`);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// src/domains/dispatch/receipt-integrity.ts
|
|
192
|
+
init_esm_shims();
|
|
193
|
+
import { createHash as createHash2 } from "node:crypto";
|
|
194
|
+
var RUN_RECEIPT_INTEGRITY_VERSION = 20;
|
|
195
|
+
var RUN_RECEIPT_INTEGRITY_ALGORITHM = "sha256";
|
|
196
|
+
function sha2562(input) {
|
|
197
|
+
return createHash2("sha256").update(input, "utf8").digest("hex");
|
|
198
|
+
}
|
|
199
|
+
function canonicalJson2(value) {
|
|
34
200
|
return serializeCanonical(value);
|
|
35
201
|
}
|
|
36
202
|
function serializeCanonical(value) {
|
|
@@ -244,7 +410,7 @@ function computeReceiptIntegrity(receipt, envelope, legacyNaming = false) {
|
|
|
244
410
|
return {
|
|
245
411
|
version: RUN_RECEIPT_INTEGRITY_VERSION,
|
|
246
412
|
algorithm: RUN_RECEIPT_INTEGRITY_ALGORITHM,
|
|
247
|
-
digest:
|
|
413
|
+
digest: sha2562(canonicalJson2(integrityPayload(receipt, envelope, legacyNaming)))
|
|
248
414
|
};
|
|
249
415
|
}
|
|
250
416
|
function isReceiptQuality(value) {
|
|
@@ -319,9 +485,9 @@ function firstLedgerMismatch(receipt, envelope) {
|
|
|
319
485
|
for (const [field, receiptValue, ledgerValue] of sharedFields) {
|
|
320
486
|
if (!Object.is(receiptValue, ledgerValue)) return field;
|
|
321
487
|
}
|
|
322
|
-
if (
|
|
323
|
-
if (
|
|
324
|
-
if (
|
|
488
|
+
if (canonicalJson2(receipt.briefing ?? null) !== canonicalJson2(envelope.briefing ?? null)) return "briefing";
|
|
489
|
+
if (canonicalJson2(receipt.budget ?? null) !== canonicalJson2(envelope.budget ?? null)) return "budget";
|
|
490
|
+
if (canonicalJson2(receipt.steering ?? null) !== canonicalJson2(envelope.steering ?? null)) return "steering";
|
|
325
491
|
return null;
|
|
326
492
|
}
|
|
327
493
|
function verifyReceiptIntegrity(receipt, envelope) {
|
|
@@ -452,19 +618,19 @@ function compareArtifactReferences(left, right) {
|
|
|
452
618
|
const rightKey = `${right.kind}\0${right.id}\0${right.digest?.value ?? ""}`;
|
|
453
619
|
return leftKey < rightKey ? -1 : leftKey > rightKey ? 1 : 0;
|
|
454
620
|
}
|
|
455
|
-
function normalizeArtifactReference(value,
|
|
456
|
-
if (!isRecord(value)) throw new Error(`${
|
|
621
|
+
function normalizeArtifactReference(value, path2) {
|
|
622
|
+
if (!isRecord(value)) throw new Error(`${path2} must be an object`);
|
|
457
623
|
if (!hasExactKeys(value, value.digest === void 0 ? ["kind", "id"] : ["kind", "id", "digest"])) {
|
|
458
|
-
throw new Error(`${
|
|
624
|
+
throw new Error(`${path2} has unknown or missing fields`);
|
|
459
625
|
}
|
|
460
626
|
if (typeof value.kind !== "string" || !ARTIFACT_KINDS.has(value.kind)) {
|
|
461
|
-
throw new Error(`${
|
|
627
|
+
throw new Error(`${path2}.kind is invalid`);
|
|
462
628
|
}
|
|
463
|
-
if (!isTrustStatusIdentifier(value.id)) throw new Error(`${
|
|
629
|
+
if (!isTrustStatusIdentifier(value.id)) throw new Error(`${path2}.id is invalid`);
|
|
464
630
|
const reference = { kind: value.kind, id: value.id };
|
|
465
631
|
if (value.digest !== void 0) {
|
|
466
632
|
if (!isRecord(value.digest) || !hasExactKeys(value.digest, ["algorithm", "value"]) || value.digest.algorithm !== "sha256" || typeof value.digest.value !== "string" || !/^[a-f0-9]{64}$/u.test(value.digest.value)) {
|
|
467
|
-
throw new Error(`${
|
|
633
|
+
throw new Error(`${path2}.digest is invalid`);
|
|
468
634
|
}
|
|
469
635
|
reference.digest = { algorithm: "sha256", value: value.digest.value };
|
|
470
636
|
}
|
|
@@ -1198,7 +1364,7 @@ function isRecord2(value) {
|
|
|
1198
1364
|
// src/domains/eval/task-file.ts
|
|
1199
1365
|
init_esm_shims();
|
|
1200
1366
|
var import_yaml = __toESM(require_dist(), 1);
|
|
1201
|
-
import { createHash as
|
|
1367
|
+
import { createHash as createHash3 } from "node:crypto";
|
|
1202
1368
|
import { readFile } from "node:fs/promises";
|
|
1203
1369
|
import { dirname, isAbsolute, relative, resolve } from "node:path";
|
|
1204
1370
|
|
|
@@ -1208,8 +1374,8 @@ var EVAL_TASK_FILE_VERSION = 1;
|
|
|
1208
1374
|
|
|
1209
1375
|
// src/domains/eval/task-file.ts
|
|
1210
1376
|
var TASK_KEYS = /* @__PURE__ */ new Set(["id", "prompt", "cwd", "setup", "verifier", "timeoutMs", "tags"]);
|
|
1211
|
-
async function loadEvalTaskFile(
|
|
1212
|
-
const resolved = resolve(
|
|
1377
|
+
async function loadEvalTaskFile(path2) {
|
|
1378
|
+
const resolved = resolve(path2);
|
|
1213
1379
|
const raw = await readFile(resolved, "utf8");
|
|
1214
1380
|
const result = parseEvalTaskFileYaml(raw);
|
|
1215
1381
|
if (!result.valid) {
|
|
@@ -1272,30 +1438,30 @@ var EvalTaskFileError = class extends Error {
|
|
|
1272
1438
|
this.issues = [...issues];
|
|
1273
1439
|
}
|
|
1274
1440
|
};
|
|
1275
|
-
function parseTask(value,
|
|
1441
|
+
function parseTask(value, path2, issues) {
|
|
1276
1442
|
if (!isRecord3(value)) {
|
|
1277
|
-
issues.push({ path, message: "expected object" });
|
|
1443
|
+
issues.push({ path: path2, message: "expected object" });
|
|
1278
1444
|
return null;
|
|
1279
1445
|
}
|
|
1280
1446
|
for (const key of Object.keys(value).sort((a, b) => a.localeCompare(b))) {
|
|
1281
|
-
if (!TASK_KEYS.has(key)) issues.push({ path: `${
|
|
1447
|
+
if (!TASK_KEYS.has(key)) issues.push({ path: `${path2}.${key}`, message: "unknown field" });
|
|
1282
1448
|
}
|
|
1283
|
-
const id = readNonEmptyString(value,
|
|
1449
|
+
const id = readNonEmptyString(value, path2, "id", issues);
|
|
1284
1450
|
if (id !== null && !/^[A-Za-z0-9._-]+$/.test(id)) {
|
|
1285
|
-
issues.push({ path: `${
|
|
1451
|
+
issues.push({ path: `${path2}.id`, message: "expected id with letters, numbers, dots, underscores, or hyphens" });
|
|
1286
1452
|
}
|
|
1287
|
-
const prompt = readNonEmptyString(value,
|
|
1288
|
-
const cwd = readNonEmptyString(value,
|
|
1453
|
+
const prompt = readNonEmptyString(value, path2, "prompt", issues);
|
|
1454
|
+
const cwd = readNonEmptyString(value, path2, "cwd", issues);
|
|
1289
1455
|
if (cwd !== null && isAbsolute(cwd)) {
|
|
1290
|
-
issues.push({ path: `${
|
|
1456
|
+
issues.push({ path: `${path2}.cwd`, message: "expected repo-local relative path" });
|
|
1291
1457
|
}
|
|
1292
|
-
const setup = readStringArray(value,
|
|
1293
|
-
const verifier = readStringArray(value,
|
|
1458
|
+
const setup = readStringArray(value, path2, "setup", issues, true);
|
|
1459
|
+
const verifier = readStringArray(value, path2, "verifier", issues, false);
|
|
1294
1460
|
if (verifier !== null && verifier.length === 0) {
|
|
1295
|
-
issues.push({ path: `${
|
|
1461
|
+
issues.push({ path: `${path2}.verifier`, message: "expected at least one command" });
|
|
1296
1462
|
}
|
|
1297
|
-
const timeoutMs = readPositiveInteger(value,
|
|
1298
|
-
const tags = readStringArray(value,
|
|
1463
|
+
const timeoutMs = readPositiveInteger(value, path2, "timeoutMs", issues);
|
|
1464
|
+
const tags = readStringArray(value, path2, "tags", issues, true);
|
|
1299
1465
|
if (id === null || prompt === null || cwd === null || setup === null || verifier === null || timeoutMs === null) {
|
|
1300
1466
|
return null;
|
|
1301
1467
|
}
|
|
@@ -1313,36 +1479,36 @@ function validateTaskCwds(tasks, baseDir) {
|
|
|
1313
1479
|
}
|
|
1314
1480
|
return issues;
|
|
1315
1481
|
}
|
|
1316
|
-
function readNonEmptyString(record,
|
|
1482
|
+
function readNonEmptyString(record, path2, field, issues) {
|
|
1317
1483
|
const value = record[field];
|
|
1318
1484
|
if (typeof value !== "string" || value.trim().length === 0) {
|
|
1319
|
-
issues.push({ path: `${
|
|
1485
|
+
issues.push({ path: `${path2}.${field}`, message: "expected non-empty string" });
|
|
1320
1486
|
return null;
|
|
1321
1487
|
}
|
|
1322
1488
|
return value;
|
|
1323
1489
|
}
|
|
1324
|
-
function readStringArray(record,
|
|
1490
|
+
function readStringArray(record, path2, field, issues, allowMissing) {
|
|
1325
1491
|
const value = record[field];
|
|
1326
1492
|
if (value === void 0 && allowMissing) return [];
|
|
1327
1493
|
if (!Array.isArray(value)) {
|
|
1328
|
-
issues.push({ path: `${
|
|
1494
|
+
issues.push({ path: `${path2}.${field}`, message: "expected string array" });
|
|
1329
1495
|
return null;
|
|
1330
1496
|
}
|
|
1331
1497
|
const out = [];
|
|
1332
1498
|
for (let index = 0; index < value.length; index += 1) {
|
|
1333
1499
|
const entry = value[index];
|
|
1334
1500
|
if (typeof entry !== "string" || entry.trim().length === 0) {
|
|
1335
|
-
issues.push({ path: `${
|
|
1501
|
+
issues.push({ path: `${path2}.${field}[${index}]`, message: "expected non-empty string" });
|
|
1336
1502
|
continue;
|
|
1337
1503
|
}
|
|
1338
1504
|
out.push(entry);
|
|
1339
1505
|
}
|
|
1340
1506
|
return out;
|
|
1341
1507
|
}
|
|
1342
|
-
function readPositiveInteger(record,
|
|
1508
|
+
function readPositiveInteger(record, path2, field, issues) {
|
|
1343
1509
|
const value = record[field];
|
|
1344
1510
|
if (typeof value !== "number" || !Number.isInteger(value) || value <= 0) {
|
|
1345
|
-
issues.push({ path: `${
|
|
1511
|
+
issues.push({ path: `${path2}.${field}`, message: "expected positive integer" });
|
|
1346
1512
|
return null;
|
|
1347
1513
|
}
|
|
1348
1514
|
return value;
|
|
@@ -1351,7 +1517,7 @@ function isRecord3(value) {
|
|
|
1351
1517
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1352
1518
|
}
|
|
1353
1519
|
function sha256Hex(content) {
|
|
1354
|
-
return
|
|
1520
|
+
return createHash3("sha256").update(content, "utf8").digest("hex");
|
|
1355
1521
|
}
|
|
1356
1522
|
|
|
1357
1523
|
// src/domains/eval/run-compare.ts
|
|
@@ -1369,63 +1535,106 @@ function assertComparableTrackedMetricSources(metric, baseline, candidate) {
|
|
|
1369
1535
|
throw new EvalTrackedMetricSourceMismatchError(metric, baseline, candidate);
|
|
1370
1536
|
}
|
|
1371
1537
|
|
|
1372
|
-
// src/domains/prompts/
|
|
1538
|
+
// src/domains/prompts/fragment-loader.ts
|
|
1373
1539
|
init_esm_shims();
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1540
|
+
var import_yaml2 = __toESM(require_dist(), 1);
|
|
1541
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
1542
|
+
import path from "node:path";
|
|
1543
|
+
var frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
|
|
1544
|
+
var fragmentIdRegex = /^[a-z0-9-]+(?:\.[a-z0-9-]+)+$/;
|
|
1545
|
+
function defaultRootDir() {
|
|
1546
|
+
return path.join(resolvePackageRoot(), "src", "domains", "prompts", "fragments");
|
|
1547
|
+
}
|
|
1548
|
+
function walk(root) {
|
|
1549
|
+
const out = [];
|
|
1550
|
+
let entries;
|
|
1551
|
+
try {
|
|
1552
|
+
entries = readdirSync(root, { withFileTypes: true });
|
|
1553
|
+
} catch {
|
|
1554
|
+
return out;
|
|
1555
|
+
}
|
|
1556
|
+
for (const entry of entries) {
|
|
1557
|
+
const full = path.join(root, entry.name);
|
|
1558
|
+
if (entry.isDirectory()) {
|
|
1559
|
+
out.push(...walk(full));
|
|
1560
|
+
continue;
|
|
1561
|
+
}
|
|
1562
|
+
if (entry.isFile() && entry.name.endsWith(".md")) {
|
|
1563
|
+
out.push(full);
|
|
1386
1564
|
}
|
|
1387
|
-
return JSON.stringify(value);
|
|
1388
1565
|
}
|
|
1389
|
-
|
|
1390
|
-
|
|
1566
|
+
return out.sort((left, right) => left.localeCompare(right));
|
|
1567
|
+
}
|
|
1568
|
+
function parseFragment(filePath, rootDir) {
|
|
1569
|
+
const raw = readFileSync(filePath, "utf8");
|
|
1570
|
+
const rawRel = path.relative(rootDir, filePath);
|
|
1571
|
+
const relPath = rawRel.split(path.sep).join("/");
|
|
1572
|
+
const match = raw.match(frontmatterRegex);
|
|
1573
|
+
if (!match) {
|
|
1574
|
+
throw new Error(`fragment-loader: ${relPath}: missing or malformed YAML frontmatter`);
|
|
1391
1575
|
}
|
|
1392
|
-
|
|
1393
|
-
|
|
1576
|
+
const frontmatterText = match[1] ?? "";
|
|
1577
|
+
const body = match[2] ?? "";
|
|
1578
|
+
let parsed;
|
|
1579
|
+
try {
|
|
1580
|
+
parsed = import_yaml2.default.parse(frontmatterText);
|
|
1581
|
+
} catch (err) {
|
|
1582
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
1583
|
+
throw new Error(`fragment-loader: ${relPath}: invalid YAML frontmatter (${reason})`);
|
|
1394
1584
|
}
|
|
1395
|
-
if (
|
|
1396
|
-
throw new Error(`
|
|
1585
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
1586
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter must be a YAML object`);
|
|
1397
1587
|
}
|
|
1398
|
-
|
|
1399
|
-
|
|
1588
|
+
const fm = parsed;
|
|
1589
|
+
const id = fm.id;
|
|
1590
|
+
if (typeof id !== "string" || !fragmentIdRegex.test(id)) {
|
|
1591
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.id must be a dot-separated namespace`);
|
|
1400
1592
|
}
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
if (!(i in value) || value[i] === void 0) {
|
|
1405
|
-
parts.push("null");
|
|
1406
|
-
continue;
|
|
1407
|
-
}
|
|
1408
|
-
parts.push(serialize(value[i]));
|
|
1409
|
-
}
|
|
1410
|
-
return `[${parts.join(",")}]`;
|
|
1593
|
+
const version = fm.version;
|
|
1594
|
+
if (version !== 1) {
|
|
1595
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.version must be 1`);
|
|
1411
1596
|
}
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1597
|
+
const description = fm.description;
|
|
1598
|
+
if (typeof description !== "string" || description.trim() === "") {
|
|
1599
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.description must be a non-empty string`);
|
|
1600
|
+
}
|
|
1601
|
+
const dynamicRaw = fm.dynamic;
|
|
1602
|
+
if (dynamicRaw !== void 0 && typeof dynamicRaw !== "boolean") {
|
|
1603
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.dynamic must be a boolean when present`);
|
|
1604
|
+
}
|
|
1605
|
+
return {
|
|
1606
|
+
path: filePath,
|
|
1607
|
+
relPath,
|
|
1608
|
+
id,
|
|
1609
|
+
version,
|
|
1610
|
+
description,
|
|
1611
|
+
dynamic: dynamicRaw === true,
|
|
1612
|
+
body,
|
|
1613
|
+
contentHash: sha256(raw)
|
|
1614
|
+
};
|
|
1615
|
+
}
|
|
1616
|
+
function loadFragments(options) {
|
|
1617
|
+
const rootDir = typeof options === "string" ? options : options?.rootDir;
|
|
1618
|
+
const resolvedRoot = rootDir ? path.resolve(rootDir) : defaultRootDir();
|
|
1619
|
+
const files = walk(resolvedRoot);
|
|
1620
|
+
const byId = /* @__PURE__ */ new Map();
|
|
1621
|
+
for (const file of files) {
|
|
1622
|
+
const fragment = parseFragment(file, resolvedRoot);
|
|
1623
|
+
const existing = byId.get(fragment.id);
|
|
1624
|
+
if (existing) {
|
|
1625
|
+
throw new Error(
|
|
1626
|
+
`fragment-loader: duplicate fragment id "${fragment.id}" in ${existing.relPath} and ${fragment.relPath}`
|
|
1627
|
+
);
|
|
1420
1628
|
}
|
|
1421
|
-
|
|
1629
|
+
byId.set(fragment.id, fragment);
|
|
1422
1630
|
}
|
|
1423
|
-
|
|
1631
|
+
return { byId, rootDir: resolvedRoot };
|
|
1424
1632
|
}
|
|
1425
1633
|
|
|
1426
1634
|
export {
|
|
1427
|
-
|
|
1428
|
-
|
|
1635
|
+
renderCodewikiDigest,
|
|
1636
|
+
sha256,
|
|
1637
|
+
canonicalJson,
|
|
1429
1638
|
RUN_RECEIPT_INTEGRITY_VERSION,
|
|
1430
1639
|
RUN_RECEIPT_INTEGRITY_ALGORITHM,
|
|
1431
1640
|
withReceiptIntegrity,
|
|
@@ -1472,6 +1681,7 @@ export {
|
|
|
1472
1681
|
evalServingObservationFrom,
|
|
1473
1682
|
assertComparableTrackedMetricSources,
|
|
1474
1683
|
loadEvalTaskFile,
|
|
1475
|
-
EvalTaskFileError
|
|
1684
|
+
EvalTaskFileError,
|
|
1685
|
+
loadFragments
|
|
1476
1686
|
};
|
|
1477
|
-
//# sourceMappingURL=chunk-
|
|
1687
|
+
//# sourceMappingURL=chunk-HZ2T2YED.js.map
|