@iowarp/clio-coder 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +153 -0
- package/CONTRIBUTING.md +25 -15
- package/README.md +340 -27
- package/dist/{acp-H2NGRPWO.js → acp-H3CU2HBQ.js} +25 -25
- package/dist/{agents-TL5LLUQP.js → agents-IXQQZ7BD.js} +77 -75
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-E5SW4HMS.js → auth-R7KYF7N3.js} +38 -39
- package/dist/builtins-CRFDQUVP.js +22 -0
- package/dist/{chunk-7DRAWPTZ.js → chunk-22PQ4TX4.js} +4 -4
- 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-5TSRNF4G.js → chunk-3T4DXWP6.js} +170 -12
- package/dist/{chunk-DR52UMZW.js → chunk-3UW3KU4A.js} +2 -2
- package/dist/{chunk-XIVNBFZS.js → chunk-4SVIVOMC.js} +208 -39
- package/dist/{chunk-NMJXSHBJ.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-5DDOTTG4.js +402 -0
- package/dist/{chunk-D4CJV46V.js → chunk-5GZICIYO.js} +3 -3
- package/dist/{chunk-4IUZQIJ3.js → chunk-5PHVPU4G.js} +2 -2
- package/dist/{chunk-PUVDKJ2Y.js → chunk-5VTJP36Q.js} +5 -7
- package/dist/{chunk-JGRC33J2.js → chunk-5ZMXGW7P.js} +90 -9
- package/dist/chunk-5ZSZEYJK.js +119 -0
- package/dist/chunk-633EXGZA.js +44 -0
- package/dist/{chunk-IWT4SF4R.js → chunk-6CDNRHWH.js} +361 -89
- package/dist/{chunk-EBY63B7G.js → chunk-6EXUUOSN.js} +2 -2
- package/dist/{chunk-SVNXH4L2.js → chunk-6ICZKDUC.js} +2 -2
- package/dist/{chunk-INY6HTFL.js → chunk-6SYEGZI3.js} +12 -12
- package/dist/{chunk-SKHCAU7K.js → chunk-6YA46L5A.js} +5 -4
- package/dist/{chunk-NZMNUPZZ.js → chunk-77CZRFTE.js} +3 -3
- package/dist/{chunk-L47TF46W.js → chunk-7HBHHVCK.js} +24 -3
- package/dist/{chunk-DWUOQKRU.js → chunk-7TKWWPD7.js} +5 -4
- package/dist/{chunk-2VTFPG5O.js → chunk-7WLRF2U5.js} +2 -2
- package/dist/chunk-7WUZEB2M.js +165 -0
- package/dist/{chunk-6PTFB5VS.js → chunk-7YJWEF2L.js} +59 -28
- package/dist/{chunk-3EBYEESD.js → chunk-A46ILRS2.js} +5 -5
- package/dist/{chunk-UOIZ7DA4.js → chunk-AP7HDJOP.js} +2 -2
- package/dist/{chunk-APJ265NV.js → chunk-B5GGDIHT.js} +146 -146
- package/dist/{chunk-PMZVFWSR.js → chunk-B5ZTR6KZ.js} +2 -2
- package/dist/chunk-B6UM3OZC.js +15 -0
- package/dist/{chunk-MCEPRMZW.js → chunk-BBV5TKE6.js} +5 -5
- package/dist/{chunk-4O6MANBS.js → chunk-BS4GAMUB.js} +14 -10
- package/dist/{chunk-S66XZJOF.js → chunk-C27U2TYG.js} +2 -2
- package/dist/{chunk-42FMPA75.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-WCXUNS7U.js → chunk-DIMRLNIC.js} +35 -66
- package/dist/{chunk-NDDGJUXD.js → chunk-DNCE23JJ.js} +2 -2
- package/dist/{chunk-HVDIIIQW.js → chunk-DNHVRBH4.js} +3 -3
- package/dist/{chunk-2UG5F4C5.js → chunk-DRD2A54W.js} +116 -52
- package/dist/{chunk-D7E7WCDF.js → chunk-DVNAPPXU.js} +2 -2
- package/dist/{chunk-YXLYO42X.js → chunk-DXVMLM3Z.js} +3 -2
- package/dist/{chunk-5MEZN6CB.js → chunk-DZK63TZJ.js} +6 -6
- package/dist/{chunk-IGLP3ODT.js → chunk-E3BQTQUP.js} +15 -15
- package/dist/{chunk-IWHMRKLL.js → chunk-E3LEPLQ2.js} +2 -2
- 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-IJNZMHLA.js → chunk-EHCPSZJF.js} +4 -4
- package/dist/{chunk-K6BSR66V.js → chunk-EHOSNVVM.js} +6 -2
- package/dist/{chunk-RRNP2ANY.js → chunk-EQEJJ53P.js} +10 -10
- package/dist/{chunk-GWZNEVM2.js → chunk-EWD5P3GK.js} +9 -9
- package/dist/{chunk-JKKCYP3C.js → chunk-F34AR6O3.js} +21 -15
- package/dist/{chunk-GHS5EBTQ.js → chunk-FKIOX6DS.js} +29 -20
- package/dist/{chunk-HAXOFFRH.js → chunk-FQOOGXBH.js} +7 -7
- package/dist/{chunk-MWUZBSAQ.js → chunk-FSTIBAGM.js} +358 -63
- 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-JSC3U7TI.js → chunk-GJ24ODAX.js} +5 -5
- package/dist/{chunk-B4VEBZKF.js → chunk-GNQRWTMY.js} +139 -52
- package/dist/{chunk-5ICU3EUH.js → chunk-GVYWZNRK.js} +5 -5
- package/dist/chunk-GXCCHKN6.js +59 -0
- package/dist/{chunk-V2ANDPVT.js → chunk-HGSLRG33.js} +170 -8
- package/dist/{chunk-LLDJM5XK.js → chunk-HHVJNVUJ.js} +6 -6
- package/dist/{chunk-F4EKGO4N.js → chunk-HL26ADLH.js} +4 -2
- package/dist/{chunk-VA5FNYMT.js → chunk-HR3HPQ76.js} +42 -5
- package/dist/{chunk-ID64D7PE.js → chunk-HXHFDHB6.js} +24 -24
- package/dist/{chunk-OML5D5V5.js → chunk-I7VLWRK2.js} +8 -8
- package/dist/{chunk-VW6DOEDG.js → chunk-ICO4TQ2F.js} +16 -5
- package/dist/{chunk-SZAA6XDG.js → chunk-IFDRAD6F.js} +2 -2
- package/dist/{chunk-WBKFA554.js → chunk-ILJ7DWGE.js} +9 -9
- package/dist/{chunk-2JH2WHGE.js → chunk-J2FYEQ5L.js} +4 -4
- package/dist/{chunk-BMS5RKQY.js → chunk-JABWPKFY.js} +3 -3
- package/dist/{chunk-QDC3K2U3.js → chunk-K2BLQC5E.js} +3 -3
- package/dist/{chunk-EKCHAPYA.js → chunk-K2HL3GBL.js} +4 -4
- package/dist/{chunk-N2Z7HLVY.js → chunk-K6RDB7IA.js} +28 -28
- package/dist/{chunk-TM6LQDI3.js → chunk-KDWLXVMN.js} +85 -335
- package/dist/{chunk-OZNBF4L3.js → chunk-KECNXMDE.js} +2 -2
- package/dist/{chunk-RSJ25QSL.js → chunk-KF6GFW6O.js} +217 -50
- 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-IUE3Y34X.js → chunk-KTFSFCVN.js} +20 -9
- package/dist/{chunk-7E7I3WLS.js → chunk-KYKNBD4Y.js} +36 -34
- package/dist/chunk-L4N3DWNW.js +539 -0
- package/dist/{chunk-LCGCVYZ4.js → chunk-LQTKDAUO.js} +2 -2
- package/dist/{chunk-JIEGK6UF.js → chunk-LTR5QCLS.js} +51 -7
- package/dist/chunk-LUL5Z66S.js +221 -0
- package/dist/chunk-LVFANMOH.js +466 -0
- 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-I7ZPNEJM.js → chunk-M6TAYK66.js} +8 -8
- package/dist/{chunk-NEKRRTYW.js → chunk-MC3JSVR6.js} +2 -2
- package/dist/{chunk-CFGTUFWB.js → chunk-MCJKEGHO.js} +2 -2
- package/dist/chunk-MDU3C27C.js +674 -0
- package/dist/{chunk-6XLNIQDB.js → chunk-MYI32N4R.js} +2 -2
- package/dist/{chunk-4UVU7BJ5.js → chunk-NC4KV7EL.js} +6 -6
- package/dist/{chunk-JEQ3XTHC.js → chunk-NF3BK5WR.js} +5 -5
- package/dist/chunk-NTK3WTHM.js +141 -0
- package/dist/{chunk-GYV6VZOC.js → chunk-NTTS3O53.js} +2 -2
- package/dist/{chunk-UPZU6GE4.js → chunk-NY6IWDVU.js} +6 -6
- package/dist/chunk-O2RQ7LCK.js +283 -0
- package/dist/{chunk-4BJ5BYCE.js → chunk-O3VV6IVK.js} +2 -2
- package/dist/{chunk-W6GROXXM.js → chunk-O5F25NIE.js} +2 -2
- package/dist/{chunk-WRBAGUNF.js → chunk-ODUTYZIU.js} +5 -5
- package/dist/{chunk-E3TPLWFX.js → chunk-ONRTXOZY.js} +4 -4
- package/dist/{chunk-B4OAX3SI.js → chunk-OQM5IVJY.js} +118 -225
- package/dist/{chunk-XRZT5WY5.js → chunk-P5SC4DLJ.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-64I3JVYM.js → chunk-PWWSIB2A.js} +5 -5
- package/dist/{chunk-2STGEDFV.js → chunk-QEQISF75.js} +2 -2
- package/dist/{chunk-3DPEIQKN.js → chunk-QH3ZTUOA.js} +2 -2
- package/dist/{chunk-YAKGTXEV.js → chunk-QRFXEO6Y.js} +2 -2
- package/dist/{chunk-35MSIRKH.js → chunk-QUIJZSDW.js} +2 -2
- package/dist/{chunk-HHV2GANA.js → chunk-R2P2U3ZS.js} +2 -2
- package/dist/chunk-R6MAYTMS.js +108 -0
- package/dist/{chunk-MUW2BDDH.js → chunk-R6MICQYU.js} +6 -6
- package/dist/{chunk-JDAY6FIL.js → chunk-RLTT5GVY.js} +132 -17
- package/dist/{chunk-ZWPRK62N.js → chunk-RXIOCVBZ.js} +24 -6
- package/dist/{chunk-NIQJ66N4.js → chunk-S32UQ5GL.js} +62 -35
- package/dist/{chunk-AX2THNSA.js → chunk-SBZX6ARC.js} +12 -12
- package/dist/{chunk-TXOTCRLG.js → chunk-SD7SHNDW.js} +2 -2
- package/dist/{chunk-AF4YM7Z4.js → chunk-SDWNDICN.js} +10284 -3756
- package/dist/{chunk-UXCU4E3T.js → chunk-SE4ZKILO.js} +6 -6
- package/dist/chunk-SL2RDHKO.js +19 -0
- package/dist/{chunk-NUGM5KR6.js → chunk-SRCEQKQS.js} +2 -2
- package/dist/{chunk-KKOJXO6R.js → chunk-SRZOW5L2.js} +46 -14
- package/dist/{chunk-3M6DQK6S.js → chunk-T334FW2H.js} +7 -7
- package/dist/chunk-T52TPHYC.js +318 -0
- package/dist/{chunk-I7XBWTYH.js → chunk-T53XI6I7.js} +5 -5
- package/dist/{chunk-LDJG7DW3.js → chunk-T7FDXNRU.js} +13 -13
- package/dist/{chunk-XPWWI35G.js → chunk-TEG3RYVZ.js} +59 -41
- package/dist/{chunk-3I7MS7N2.js → chunk-TK2BMCBZ.js} +2 -2
- package/dist/{chunk-5OIVVPHF.js → chunk-TN5FW4XY.js} +13 -6
- package/dist/{chunk-PAJQJ7BS.js → chunk-TZ7MFRG4.js} +1263 -835
- package/dist/{chunk-GI7YYQ3F.js → chunk-U2JOLB7O.js} +415 -83
- package/dist/{chunk-LL4KHSZI.js → chunk-U2MSJ57E.js} +2 -2
- package/dist/{chunk-FTMGRKEF.js → chunk-U44YYLVV.js} +4 -4
- package/dist/{chunk-CE5AX47J.js → chunk-U7H5WRG5.js} +5 -5
- package/dist/{chunk-G76U63X4.js → chunk-U7VQ4NI4.js} +22 -22
- package/dist/{chunk-7ZYNNDKC.js → chunk-UFYNOQK4.js} +7 -7
- package/dist/{chunk-R346GLFC.js → chunk-UHW5V7HC.js} +2 -2
- package/dist/{chunk-QWGDJJYJ.js → chunk-UL36QJX6.js} +14 -14
- package/dist/{chunk-VIA6RFQZ.js → chunk-UQIVHSE4.js} +4 -4
- package/dist/{chunk-HEQY7ZFI.js → chunk-URBGEOH3.js} +5 -5
- package/dist/chunk-USZA7GWL.js +341 -0
- package/dist/{chunk-W6RRQCPQ.js → chunk-UTUNT5QL.js} +48 -579
- package/dist/{chunk-ZA4VCIGV.js → chunk-UUQ5G6EZ.js} +60 -41
- package/dist/{chunk-F5JHEYZM.js → chunk-UXAC2FX4.js} +73 -41
- package/dist/{chunk-VG7TBQIY.js → chunk-V552WL53.js} +68 -4
- package/dist/{chunk-BWH6N36D.js → chunk-VHKTOLEW.js} +272 -42
- package/dist/chunk-VLPTKCKT.js +396 -0
- 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-2UH2KFUP.js → chunk-WFKDPU7U.js} +4 -4
- package/dist/{chunk-ZDN3Y73Y.js → chunk-WJIMKGD6.js} +9 -51
- package/dist/{chunk-YQWYVTMC.js → chunk-WLMSOT73.js} +59 -12
- package/dist/{chunk-MXHC5QYU.js → chunk-WTQGRBHV.js} +5 -144
- package/dist/chunk-WXA2CFJO.js +23 -0
- package/dist/{chunk-QSNYB6ZV.js → chunk-XCUDZQLX.js} +3 -3
- package/dist/{chunk-2APPQIER.js → chunk-XXBQKW32.js} +11 -11
- package/dist/{chunk-2VIKGWFZ.js → chunk-YEJIG7LN.js} +332 -332
- package/dist/chunk-YGDMBK7O.js +567 -0
- package/dist/{chunk-4WR7VSYB.js → chunk-YYB3MC65.js} +23 -9
- package/dist/{chunk-2IR2NMPA.js → chunk-ZIDFQJRB.js} +2 -2
- package/dist/{chunk-54CBCGIR.js → chunk-ZMZQEBKI.js} +136 -81
- 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 +45 -44
- package/dist/clio-5I2IBFYL.js +26 -0
- package/dist/{code-nav-MDZNQS33.js → code-nav-YXIAEZVS.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-UCUQ4QXW.js → components-TNIKXCBH.js} +13 -14
- package/dist/{config-SVM5P5YI.js → config-Y2JDJ3JJ.js} +210 -119
- package/dist/configure-SML6UBZ5.js +55 -0
- package/dist/{context-2OHRKS42.js → context-P5YSEO55.js} +125 -115
- package/dist/{context-VNCR7KAG.js → context-QQ53HSGJ.js} +91 -62
- package/dist/{context-E3VC7RX5.js → context-S2EEC3EJ.js} +62 -31
- package/dist/context-clear-TMEQCOTH.js +183 -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-VDS25HXZ.js → context-working-set-CNLSQN5K.js} +31 -31
- package/dist/detail-5572VLBO.js +114 -0
- package/dist/{dispatch-runner-5AHT53RF.js → dispatch-runner-FRHD6P2O.js} +214 -126
- package/dist/{docs-PD3EXDKU.js → docs-BL7ROUFN.js} +5 -7
- package/dist/{doctor-WNNVO6FY.js → doctor-N3LCM2LG.js} +89 -66
- package/dist/{eval-7G7SGAYO.js → eval-BUU3ZOUZ.js} +493 -197
- package/dist/{eval-inventory-Y6QRFOH5.js → eval-inventory-QOYZERXJ.js} +7 -7
- package/dist/evidence-DTGEN456.js +224 -0
- package/dist/{evidence-VD6736FQ.js → evidence-SQ5DNFEN.js} +114 -195
- package/dist/{evolve-AL3NGVRL.js → evolve-IJNUFZDS.js} +107 -88
- package/dist/{extensions-MOVJ32NM.js → extensions-YVRHX6ZI.js} +16 -17
- package/dist/{fleet-QZHUMAGI.js → fleet-ZNNVSYFO.js} +147 -141
- package/dist/{fleet-commands-BAYT5FJZ.js → fleet-commands-5YE7NPJL.js} +27 -23
- package/dist/{fleet-decisions-IREVMRU4.js → fleet-decisions-3SBSCTCW.js} +16 -15
- package/dist/{fleet-graph-YCTT3HTI.js → fleet-graph-6HHPWF5T.js} +39 -38
- package/dist/{fleet-inspect-QVJTDAVB.js → fleet-inspect-JEYMGCGC.js} +107 -87
- package/dist/{fleet-new-RDVJLHHH.js → fleet-new-RCKGSRDV.js} +3 -3
- package/dist/{fleet-preflight-25QAFPK4.js → fleet-preflight-QRSHIIDE.js} +10 -10
- package/dist/{fleet-validate-5O57AAJ7.js → fleet-validate-4PM4GDDL.js} +46 -42
- package/dist/{fleet-verify-CPH2W2T6.js → fleet-verify-NJDTHTO3.js} +105 -85
- package/dist/fleet-view-UP2BWQQY.js +117 -0
- package/dist/{init-J477LKZH.js → init-S3GZQ5ZF.js} +123 -117
- package/dist/{install-NKNG7KD4.js → install-3RZDDP23.js} +5 -5
- package/dist/{interop-3FCM6XLG.js → interop-YOTGXFJM.js} +25 -26
- package/dist/inventory-K2OZ36YJ.js +117 -0
- package/dist/{library-QUQEIUG6.js → library-GJI6W6OK.js} +45 -45
- package/dist/{memory-SGGSEP65.js → memory-OQOXQGYD.js} +107 -90
- package/dist/{models-HEKUAXXK.js → models-3IK2Y5WE.js} +64 -65
- package/dist/{monitor-HKU57TYQ.js → monitor-FTJLTKCQ.js} +136 -101
- package/dist/{orchestrator-VDFAEFAI.js → orchestrator-N47O7SFD.js} +1442 -1671
- package/dist/{panes-DN2SSFOH.js → panes-7BTYH3XQ.js} +8 -8
- package/dist/{panes-TALGNPZT.js → panes-WPOMEMRH.js} +22 -23
- package/dist/{paths-NBMFAIEZ.js → paths-J3KN7UAO.js} +12 -13
- package/dist/preload-65U34NG6.js +115 -0
- package/dist/{registry-LG64LTF4.js → registry-DESGAXWK.js} +3 -3
- package/dist/{reset-EAJFFJVB.js → reset-MUVQDLNL.js} +20 -21
- package/dist/{resources-OVKSEFVE.js → resources-LM76COAO.js} +41 -40
- package/dist/{run-7DP7ZF2J.js → run-3VFZQ33N.js} +168 -166
- package/dist/{share-WML67FT3.js → share-4JUB4BL7.js} +43 -43
- package/dist/{skills-SG662R2K.js → skills-S36AAJHU.js} +47 -47
- package/dist/{skills-eval-VVZEUU46.js → skills-eval-G6T57L7M.js} +127 -104
- package/dist/{skills-inventory-I2E23GET.js → skills-inventory-WLM46PJH.js} +41 -40
- package/dist/slash-commands-GBARG3Y7.js +91 -0
- package/dist/{steer-2LQOMCPB.js → steer-S7D7IKPU.js} +7 -7
- package/dist/{support-CC2UJBJ6.js → support-5VAEC32W.js} +14 -14
- package/dist/{targets-4QC3HIEW.js → targets-N5REUETU.js} +147 -98
- package/dist/tasks-6BVY5YZF.js +36 -0
- package/dist/{terminal-lease-TUHIJ6Y2.js → terminal-lease-57UEOJKS.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-5PEVOE5B.js → uninstall-FXYMFFRT.js} +19 -20
- package/dist/{upgrade-M4WXY6KN.js → upgrade-4HD5HAIV.js} +49 -45
- package/dist/{usage-N7ZNVLEM.js → usage-4GWM2WWP.js} +143 -103
- package/dist/{verifiers-DJTP4XX6.js → verifiers-GSKWKWVG.js} +162 -28
- package/dist/verify-3AS3ULCY.js +30 -0
- package/dist/{version-KGEG7EPO.js → version-RFPKO6T7.js} +4 -4
- package/dist/{web-fetch-MPARV2K7.js → web-fetch-MQN4FH3X.js} +169 -18
- package/dist/wiki-generate-7BV7XWIY.js +614 -0
- package/dist/{with-panes-4GCGSL7J.js → with-panes-OFTNAR4Y.js} +34 -20
- package/dist/worker/entry.js +99 -85
- package/dist/{workspace-ZJ6BFM3Q.js → workspace-DZ7JADBG.js} +6 -6
- package/docs/README.md +10 -8
- package/docs/architecture/acp.md +27 -0
- package/docs/architecture/architecture.md +5 -5
- package/docs/architecture/artifact-versions.md +1 -1
- package/docs/architecture/context-engine.md +44 -59
- package/docs/architecture/context-working-set.md +7 -9
- package/docs/architecture/dispatch-architecture-rationale.md +1 -1
- package/docs/architecture/dispatch-typed-intent.md +1 -1
- package/docs/architecture/evidence-and-memory.md +11 -1
- package/docs/architecture/observability.md +7 -1
- package/docs/architecture/pi-boundary.md +37 -7
- package/docs/architecture/prompt-envelope-and-tools.md +22 -12
- package/docs/architecture/safety-model.md +10 -17
- package/docs/architecture/session-lifecycle.md +4 -4
- package/docs/architecture/tui-design.md +1 -1
- package/docs/architecture/worker-dispatch-mechanics.md +4 -0
- package/docs/guide/built-in-agents.md +8 -8
- package/docs/guide/commands-and-modes.md +66 -38
- package/docs/guide/configuration-and-targets.md +10 -3
- package/docs/guide/configuration-reference.md +23 -8
- package/docs/guide/environment-variables.md +8 -4
- package/docs/guide/fleet-dispatch.md +12 -0
- package/docs/guide/installation-and-lifecycle.md +35 -9
- package/docs/guide/proactive-memory.md +1 -1
- package/docs/guide/skills-marketplace.md +11 -3
- package/docs/guide/tool-usage.md +87 -5
- package/docs/history/config-knobs-audit.md +2 -2
- package/docs/process/development-pipeline.md +15 -10
- 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/git-commit-provenance.md +15 -0
- package/docs/process/release-cut-checklist.md +207 -0
- package/docs/process/scientific-validation.md +18 -17
- package/evals/README.md +4 -0
- package/evals/behavioral-corpus-grader.mjs +147 -14
- package/evals/behavioral-machinery-support.ts +1 -0
- package/evals/behavioral-machinery.yaml +1 -1
- 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/coding/coding-standards/SKILL.md +14 -4
- package/skills/context/context-handoff/SKILL.md +3 -3
- package/skills/context/context-prime/SKILL.md +3 -3
- package/skills/planning/architecture/SKILL.md +5 -5
- package/skills/planning/backlog/SKILL.md +4 -4
- package/skills/planning/prd/SKILL.md +4 -3
- package/skills/planning/product-intent/SKILL.md +8 -8
- package/skills/planning/tech-spec/SKILL.md +4 -4
- package/skills/registry.yaml +33 -33
- package/skills/research/arxiv-literature/SKILL.md +3 -3
- package/skills/research/experiment-protocol/SKILL.md +3 -3
- package/skills/research/scientific-debugging/SKILL.md +3 -2
- package/skills/research/scientific-modernization/SKILL.md +3 -3
- package/skills/skill-marketplace.json +17 -17
- package/skills/workflow/cut-it/SKILL.md +3 -4
- package/skills/workflow/design-council/SKILL.md +5 -10
- package/skills/workflow/grill-me/SKILL.md +14 -15
- package/skills/workflow/workflow-distiller/SKILL.md +4 -4
- package/src/cli/args.ts +0 -8
- 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.ts +2 -1
- package/src/cli/context-map.ts +75 -14
- package/src/cli/context.ts +46 -17
- package/src/cli/doctor-state-size.ts +1 -12
- package/src/cli/doctor-validation-contract.ts +28 -0
- package/src/cli/doctor.ts +5 -0
- package/src/cli/eval.ts +17 -3
- package/src/cli/evidence-detail.ts +1 -75
- package/src/cli/evidence-inventory.ts +1 -167
- package/src/cli/index.ts +2 -0
- package/src/cli/modes/print.ts +32 -4
- package/src/cli/run.ts +16 -16
- package/src/cli/skills-eval.ts +10 -8
- package/src/cli/steer-channel.ts +31 -18
- package/src/cli/targets.ts +84 -32
- package/src/cli/tasks.ts +93 -0
- package/src/cli/upgrade.ts +19 -11
- package/src/cli/usage.ts +30 -0
- package/src/cli/verifiers.ts +147 -1
- package/src/cli/wiki-generate.ts +240 -96
- package/src/core/bash-exec.ts +43 -15
- package/src/core/bus-events.ts +15 -0
- package/src/core/commit-attribution.ts +41 -1
- package/src/core/config.ts +33 -14
- package/src/core/defaults.ts +5 -4
- package/src/core/file-references.ts +11 -1
- package/src/core/git-commit-attribution.ts +46 -3
- package/src/core/incomplete-installation.ts +3 -1
- package/src/core/run-overrides.ts +0 -5
- package/src/core/settings-layers.ts +21 -5
- package/src/core/skill-activation.ts +3 -0
- package/src/core/termination.ts +26 -9
- package/src/core/tool-names.ts +5 -2
- package/src/core/untrusted-content.ts +16 -0
- package/src/core/workspace-trust.ts +179 -0
- package/src/domains/agents/builtins/architect.md +1 -1
- package/src/domains/agents/builtins/coder.md +5 -3
- package/src/domains/agents/builtins/context-bootstrap.md +3 -1
- package/src/domains/agents/builtins/documenter.md +8 -5
- package/src/domains/agents/builtins/git-master.md +1 -1
- package/src/domains/agents/builtins/provenance.md +7 -7
- package/src/domains/agents/builtins/researcher.md +1 -0
- package/src/domains/agents/builtins/scout.md +7 -1
- package/src/domains/agents/builtins/tester.md +1 -1
- package/src/domains/agents/builtins/verifier.md +2 -2
- package/src/domains/agents/builtins/wiki-writer.md +4 -3
- package/src/domains/agents/result-contract.ts +199 -26
- 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 +97 -11
- 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 +12 -57
- package/src/domains/context/wiki/assemble.ts +14 -10
- package/src/domains/context/wiki/evidence.ts +209 -0
- package/src/domains/context/wiki/frontmatter.ts +5 -2
- package/src/domains/context/wiki/generate.ts +207 -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 +85 -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 +10 -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/code-step.ts +11 -4
- package/src/domains/dispatch/contract.ts +41 -9
- 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 +4 -0
- package/src/domains/dispatch/extension.ts +240 -132
- package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
- package/src/domains/dispatch/fleet-run.ts +21 -0
- package/src/domains/dispatch/gate-role-prompts.ts +4 -2
- package/src/domains/dispatch/host-verification.ts +114 -13
- package/src/domains/dispatch/intent.ts +28 -18
- package/src/domains/dispatch/orphan-recovery.ts +2 -0
- package/src/domains/dispatch/parallel-writers.ts +34 -0
- package/src/domains/dispatch/receipt-integrity.ts +4 -0
- package/src/domains/dispatch/reservation-store.ts +13 -37
- 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/state.ts +15 -2
- package/src/domains/dispatch/types.ts +21 -5
- 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 +17 -10
- package/src/domains/eval/runners/context-index.ts +2 -7
- package/src/domains/eval/runners/context-init.ts +3 -6
- package/src/domains/eval/runners/external-command.ts +29 -11
- 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 +106 -17
- package/src/domains/evidence/detail.ts +69 -0
- package/src/domains/evidence/eval.ts +13 -1
- package/src/domains/evidence/finish-contract-map.ts +5 -1
- package/src/domains/evidence/inventory.ts +167 -0
- package/src/domains/evidence/store.ts +16 -0
- package/src/domains/evidence/types.ts +12 -0
- package/src/domains/extensions/resources.ts +7 -0
- 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/marketplace-offer.ts +20 -1
- package/src/domains/middleware/rules.ts +5 -1
- package/src/domains/middleware/runtime.ts +7 -3
- 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/detect.ts +3 -6
- 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/accountability.ts +15 -1
- package/src/domains/observability/contract.ts +54 -9
- package/src/domains/observability/evidence-index.ts +10 -0
- package/src/domains/observability/extension.ts +9 -5
- package/src/domains/observability/projection.ts +423 -53
- package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
- 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 +12 -0
- package/src/domains/prompts/fragments/operating/delegation.md +5 -0
- package/src/domains/prompts/fragments/wiki/page.md +36 -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/model-discovery.ts +1 -4
- package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +16 -14
- package/src/domains/providers/runtime-resolution.ts +11 -9
- package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
- package/src/domains/providers/runtimes/cloud/openrouter.ts +2 -0
- package/src/domains/providers/support.ts +1 -1
- package/src/domains/providers/types/runtime-descriptor.ts +1 -1
- package/src/domains/resources/skills/promotion.ts +8 -1
- package/src/domains/safety/action-classifier.ts +16 -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 +13 -0
- package/src/domains/safety/extension.ts +11 -2
- package/src/domains/safety/finish-contract-registration.ts +29 -14
- package/src/domains/safety/finish-contract.ts +252 -40
- package/src/domains/safety/index.ts +20 -1
- package/src/domains/safety/policy-engine.ts +211 -34
- package/src/domains/safety/project-policy.ts +7 -2
- package/src/domains/safety/rigor.ts +53 -39
- package/src/domains/safety/validation-contract.ts +388 -0
- package/src/domains/safety/workspace-trust.ts +43 -0
- package/src/domains/session/archive-readers.ts +10 -1
- 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 +137 -28
- package/src/domains/session/entries.ts +213 -11
- package/src/domains/session/extension.ts +4 -4
- package/src/domains/session/handoff.ts +2 -1
- package/src/domains/session/manager.ts +2 -3
- package/src/domains/session/prompt-manifest.ts +47 -8
- package/src/domains/session/task-board.ts +32 -1
- package/src/domains/session/tree/fork.ts +1 -2
- package/src/domains/session/tree/navigator.ts +1 -1
- package/src/domains/user-tasks/acceptance.ts +56 -0
- package/src/domains/user-tasks/active-acceptance.ts +40 -0
- package/src/domains/user-tasks/handoff.ts +16 -0
- package/src/domains/user-tasks/store.ts +34 -3
- package/src/engine/acp/adapter.ts +60 -10
- package/src/engine/acp/server.ts +22 -4
- package/src/engine/acp/transport.ts +55 -9
- package/src/engine/acp/types.ts +9 -0
- package/src/engine/antigravity/subprocess-runtime.ts +20 -4
- package/src/engine/api-registry.ts +19 -2
- package/src/engine/apis/ollama-native.ts +15 -0
- 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/claude/subprocess-runtime.ts +107 -60
- package/src/engine/env-api-keys.ts +2 -1
- package/src/engine/external-subprocess.ts +26 -7
- 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 +64 -17
- package/src/interactive/chat-loop-messages.ts +12 -4
- package/src/interactive/chat-loop.ts +115 -45
- package/src/interactive/chat-renderer.ts +60 -0
- package/src/interactive/context-recall-command.ts +2 -1
- package/src/interactive/dispatch-board.ts +58 -714
- package/src/interactive/editor-submit.ts +13 -0
- package/src/interactive/fleet-run-preview.ts +2 -1
- package/src/interactive/interactive-application.ts +11 -4
- package/src/interactive/interactive-event-projection.ts +7 -1
- package/src/interactive/interactive-presentation.ts +63 -12
- package/src/interactive/interactive-slash-runtime.ts +4 -1
- package/src/interactive/layout.ts +2 -1
- package/src/interactive/model-session-replay.ts +2 -2
- package/src/interactive/oracle.ts +5 -2
- package/src/interactive/overlay-frame.ts +1 -0
- package/src/interactive/overlay-general-openers.ts +3 -1
- package/src/interactive/overlay-session-lifecycle.ts +6 -0
- package/src/interactive/overlays/ask-user.ts +1 -0
- package/src/interactive/overlays/fleet-run-approval.ts +3 -2
- package/src/interactive/overlays/message-picker.ts +3 -3
- package/src/interactive/overlays/settings.ts +2 -2
- package/src/interactive/overlays/tree-selector.ts +2 -2
- package/src/interactive/renderers/branch-summary.ts +1 -1
- package/src/interactive/renderers/tool-execution.ts +17 -1
- package/src/interactive/renderers/worker-entry.ts +25 -10
- package/src/interactive/slash-autocomplete.ts +4 -6
- package/src/interactive/slash-commands.ts +31 -43
- package/src/interactive/slash-spec.ts +28 -0
- 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 +2 -0
- package/src/interactive/watch-pane.ts +18 -4
- package/src/interactive/worker-stream.ts +14 -10
- package/src/tools/agent-tools.ts +6 -3
- package/src/tools/bash.ts +1 -1
- package/src/tools/bootstrap.ts +4 -0
- package/src/tools/builtin-tool-catalog.ts +40 -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 +41 -1
- package/src/tools/context/index.ts +32 -7
- package/src/tools/context/surface.ts +15 -4
- package/src/tools/core-bootstrap.ts +16 -0
- package/src/tools/decide.ts +136 -0
- package/src/tools/dispatch-admission.ts +33 -1
- package/src/tools/dispatch-arguments.ts +38 -1
- package/src/tools/dispatch-plan.ts +12 -9
- package/src/tools/dispatch-runner.ts +63 -33
- 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/dispatch-types.ts +6 -0
- package/src/tools/evidence.ts +96 -0
- package/src/tools/find.ts +13 -4
- package/src/tools/grep.ts +13 -1
- package/src/tools/limitation.ts +76 -0
- 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/policy.ts +9 -0
- package/src/tools/presentation.ts +3 -0
- package/src/tools/read.ts +112 -15
- package/src/tools/registry.ts +55 -18
- package/src/tools/result-shaping.ts +127 -7
- package/src/tools/task-worktree.ts +13 -3
- package/src/tools/tasks.ts +40 -5
- package/src/tools/verify/authoring.ts +170 -83
- package/src/tools/verify/catalog.ts +122 -5
- package/src/tools/verify/frontend.ts +67 -30
- package/src/tools/verify/index.ts +2 -1
- package/src/tools/verify/numeric.ts +303 -0
- package/src/tools/verify/perf.ts +143 -0
- package/src/tools/verify/scripts.ts +229 -2
- 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-IA7V7FUC.js +0 -22
- package/dist/chunk-2WZ546HR.js +0 -792
- package/dist/chunk-5PSMVOLM.js +0 -56
- package/dist/chunk-7DICMOS6.js +0 -313
- package/dist/chunk-BEPZRGGU.js +0 -1560
- package/dist/chunk-JVCV3ICN.js +0 -47
- package/dist/chunk-KK4JZPBQ.js +0 -3982
- package/dist/chunk-MNJGS2IN.js +0 -33
- package/dist/chunk-NDINPTJ4.js +0 -641
- package/dist/chunk-O5CVSAG5.js +0 -122
- package/dist/chunk-OQE5J4C6.js +0 -73
- package/dist/chunk-RVG5JXAL.js +0 -41
- package/dist/chunk-T56WDKA5.js +0 -183
- package/dist/chunk-UUVG37B4.js +0 -244
- package/dist/chunk-VPKWYKEY.js +0 -169
- package/dist/chunk-Y3CBHOR6.js +0 -228
- package/dist/clio-CMMK4KRR.js +0 -25
- package/dist/configure-LE3IK2TJ.js +0 -56
- package/dist/context-clear-BW4O37TG.js +0 -176
- package/dist/fleet-view-SWBR3VGQ.js +0 -97
- package/dist/preload-P6DGH2PZ.js +0 -13
- package/dist/slash-commands-S7MBJDQK.js +0 -83
- package/dist/tools-TFGJICCU.js +0 -29
- package/dist/verify-RWE4PPEK.js +0 -27
- package/dist/wiki-generate-C7IQOXSP.js +0 -469
|
@@ -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-FKIOX6DS.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) {
|
|
@@ -101,6 +267,9 @@ var RECEIPT_INTEGRITY_FIELD_COVERAGE = {
|
|
|
101
267
|
plan: true,
|
|
102
268
|
fleetGate: true,
|
|
103
269
|
personaOverride: true,
|
|
270
|
+
// Absent unless the parent board held decisions, so older receipts and
|
|
271
|
+
// decision-free runs digest exactly as before.
|
|
272
|
+
decisionRefs: true,
|
|
104
273
|
projectContext: true,
|
|
105
274
|
// Always set on receipts written after #104 landed; absent only on older
|
|
106
275
|
// receipts, which omit these fields from canonical serialization.
|
|
@@ -188,6 +357,7 @@ function ledgerDigestFields(envelope) {
|
|
|
188
357
|
executionRole: envelope.executionRole,
|
|
189
358
|
task: envelope.task,
|
|
190
359
|
...envelope.budget !== void 0 ? { budget: envelope.budget } : {},
|
|
360
|
+
...envelope.decisionRefs !== void 0 ? { decisionRefs: envelope.decisionRefs } : {},
|
|
191
361
|
targetId: envelope.targetId,
|
|
192
362
|
wireModelId: envelope.wireModelId,
|
|
193
363
|
runtimeId: envelope.runtimeId,
|
|
@@ -240,7 +410,7 @@ function computeReceiptIntegrity(receipt, envelope, legacyNaming = false) {
|
|
|
240
410
|
return {
|
|
241
411
|
version: RUN_RECEIPT_INTEGRITY_VERSION,
|
|
242
412
|
algorithm: RUN_RECEIPT_INTEGRITY_ALGORITHM,
|
|
243
|
-
digest:
|
|
413
|
+
digest: sha2562(canonicalJson2(integrityPayload(receipt, envelope, legacyNaming)))
|
|
244
414
|
};
|
|
245
415
|
}
|
|
246
416
|
function isReceiptQuality(value) {
|
|
@@ -315,9 +485,9 @@ function firstLedgerMismatch(receipt, envelope) {
|
|
|
315
485
|
for (const [field, receiptValue, ledgerValue] of sharedFields) {
|
|
316
486
|
if (!Object.is(receiptValue, ledgerValue)) return field;
|
|
317
487
|
}
|
|
318
|
-
if (
|
|
319
|
-
if (
|
|
320
|
-
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";
|
|
321
491
|
return null;
|
|
322
492
|
}
|
|
323
493
|
function verifyReceiptIntegrity(receipt, envelope) {
|
|
@@ -448,19 +618,19 @@ function compareArtifactReferences(left, right) {
|
|
|
448
618
|
const rightKey = `${right.kind}\0${right.id}\0${right.digest?.value ?? ""}`;
|
|
449
619
|
return leftKey < rightKey ? -1 : leftKey > rightKey ? 1 : 0;
|
|
450
620
|
}
|
|
451
|
-
function normalizeArtifactReference(value,
|
|
452
|
-
if (!isRecord(value)) throw new Error(`${
|
|
621
|
+
function normalizeArtifactReference(value, path2) {
|
|
622
|
+
if (!isRecord(value)) throw new Error(`${path2} must be an object`);
|
|
453
623
|
if (!hasExactKeys(value, value.digest === void 0 ? ["kind", "id"] : ["kind", "id", "digest"])) {
|
|
454
|
-
throw new Error(`${
|
|
624
|
+
throw new Error(`${path2} has unknown or missing fields`);
|
|
455
625
|
}
|
|
456
626
|
if (typeof value.kind !== "string" || !ARTIFACT_KINDS.has(value.kind)) {
|
|
457
|
-
throw new Error(`${
|
|
627
|
+
throw new Error(`${path2}.kind is invalid`);
|
|
458
628
|
}
|
|
459
|
-
if (!isTrustStatusIdentifier(value.id)) throw new Error(`${
|
|
629
|
+
if (!isTrustStatusIdentifier(value.id)) throw new Error(`${path2}.id is invalid`);
|
|
460
630
|
const reference = { kind: value.kind, id: value.id };
|
|
461
631
|
if (value.digest !== void 0) {
|
|
462
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)) {
|
|
463
|
-
throw new Error(`${
|
|
633
|
+
throw new Error(`${path2}.digest is invalid`);
|
|
464
634
|
}
|
|
465
635
|
reference.digest = { algorithm: "sha256", value: value.digest.value };
|
|
466
636
|
}
|
|
@@ -536,6 +706,13 @@ function normalizeTrustStatus(value) {
|
|
|
536
706
|
completionEvidence: normalizeAxis("completionEvidence", value.completionEvidence)
|
|
537
707
|
};
|
|
538
708
|
}
|
|
709
|
+
function validateTrustStatus(value) {
|
|
710
|
+
try {
|
|
711
|
+
return { ok: true, status: normalizeTrustStatus(value) };
|
|
712
|
+
} catch (error) {
|
|
713
|
+
return { ok: false, reason: error instanceof Error ? error.message : String(error) };
|
|
714
|
+
}
|
|
715
|
+
}
|
|
539
716
|
function absentTrustStatus(reason) {
|
|
540
717
|
return { state: "absent", reason };
|
|
541
718
|
}
|
|
@@ -558,6 +735,18 @@ function composeTrustStatus(...projections) {
|
|
|
558
735
|
}
|
|
559
736
|
return normalizeTrustStatus({ version: TRUST_STATUS_VERSION, ...axes });
|
|
560
737
|
}
|
|
738
|
+
function projectTrustStatus(status, axes) {
|
|
739
|
+
const normalized = normalizeTrustStatus(status);
|
|
740
|
+
const projection = {};
|
|
741
|
+
const requested = new Set(axes);
|
|
742
|
+
if (requested.has("artifactIntegrity")) projection.artifactIntegrity = normalized.artifactIntegrity;
|
|
743
|
+
if (requested.has("validationGrounding")) projection.validationGrounding = normalized.validationGrounding;
|
|
744
|
+
if (requested.has("independentReview")) projection.independentReview = normalized.independentReview;
|
|
745
|
+
if (requested.has("contextProvenance")) projection.contextProvenance = normalized.contextProvenance;
|
|
746
|
+
if (requested.has("autonomyEnforcement")) projection.autonomyEnforcement = normalized.autonomyEnforcement;
|
|
747
|
+
if (requested.has("completionEvidence")) projection.completionEvidence = normalized.completionEvidence;
|
|
748
|
+
return projection;
|
|
749
|
+
}
|
|
561
750
|
function sha256Reference(kind, id, digest) {
|
|
562
751
|
const reference = { kind, id };
|
|
563
752
|
if (digest !== void 0 && /^[a-f0-9]{64}$/u.test(digest)) {
|
|
@@ -892,6 +1081,20 @@ function adaptGroundedEvidenceValidationStatus(input) {
|
|
|
892
1081
|
uniqueBoundedReferences([{ kind: "evidence_bundle", id: input.evidenceId }, ...observed])
|
|
893
1082
|
);
|
|
894
1083
|
}
|
|
1084
|
+
function adaptFinishContractCompletionStatus(assessment, options = {}) {
|
|
1085
|
+
const artifacts = uniqueBoundedReferences(
|
|
1086
|
+
options.artifacts ?? assessment.evidence.map((evidence, index) => ({
|
|
1087
|
+
kind: evidence.turnId === void 0 ? "finish_contract_evidence" : "session_entry",
|
|
1088
|
+
id: evidence.turnId ?? `${evidence.kind}:${index + 1}`
|
|
1089
|
+
}))
|
|
1090
|
+
);
|
|
1091
|
+
const source = { kind: "finish_contract", id: options.sourceId ?? assessment.reason };
|
|
1092
|
+
const authority = { kind: "clio", id: "finish-contract" };
|
|
1093
|
+
if (assessment.reason === "no_mutation") return attributed("not_applicable", source, authority, artifacts);
|
|
1094
|
+
if (assessment.reason === "validation_evidence") return attributed("evidenced", source, authority, artifacts);
|
|
1095
|
+
if (assessment.reason === "explicit_limitation") return attributed("limited", source, authority, artifacts);
|
|
1096
|
+
return attributed("incomplete", source, authority, artifacts);
|
|
1097
|
+
}
|
|
895
1098
|
function uniqueBoundedReferences(references) {
|
|
896
1099
|
const sorted = [...references].sort(compareArtifactReferences);
|
|
897
1100
|
const unique = sorted.filter(
|
|
@@ -904,6 +1107,13 @@ function uniqueBoundedReferences(references) {
|
|
|
904
1107
|
init_esm_shims();
|
|
905
1108
|
var TRUST_SUMMARY_VERSION = 1;
|
|
906
1109
|
var TRUST_SUMMARY_MAX_REFS = 8;
|
|
1110
|
+
var TRUST_VERDICTS = [
|
|
1111
|
+
"reviewed",
|
|
1112
|
+
"grounded",
|
|
1113
|
+
"unverified",
|
|
1114
|
+
"compromised",
|
|
1115
|
+
"unknown"
|
|
1116
|
+
];
|
|
907
1117
|
var TRUST_STATE_WORDS = {
|
|
908
1118
|
artifactIntegrity: {
|
|
909
1119
|
verified: "sealed",
|
|
@@ -1154,7 +1364,7 @@ function isRecord2(value) {
|
|
|
1154
1364
|
// src/domains/eval/task-file.ts
|
|
1155
1365
|
init_esm_shims();
|
|
1156
1366
|
var import_yaml = __toESM(require_dist(), 1);
|
|
1157
|
-
import { createHash as
|
|
1367
|
+
import { createHash as createHash3 } from "node:crypto";
|
|
1158
1368
|
import { readFile } from "node:fs/promises";
|
|
1159
1369
|
import { dirname, isAbsolute, relative, resolve } from "node:path";
|
|
1160
1370
|
|
|
@@ -1164,8 +1374,8 @@ var EVAL_TASK_FILE_VERSION = 1;
|
|
|
1164
1374
|
|
|
1165
1375
|
// src/domains/eval/task-file.ts
|
|
1166
1376
|
var TASK_KEYS = /* @__PURE__ */ new Set(["id", "prompt", "cwd", "setup", "verifier", "timeoutMs", "tags"]);
|
|
1167
|
-
async function loadEvalTaskFile(
|
|
1168
|
-
const resolved = resolve(
|
|
1377
|
+
async function loadEvalTaskFile(path2) {
|
|
1378
|
+
const resolved = resolve(path2);
|
|
1169
1379
|
const raw = await readFile(resolved, "utf8");
|
|
1170
1380
|
const result = parseEvalTaskFileYaml(raw);
|
|
1171
1381
|
if (!result.valid) {
|
|
@@ -1228,30 +1438,30 @@ var EvalTaskFileError = class extends Error {
|
|
|
1228
1438
|
this.issues = [...issues];
|
|
1229
1439
|
}
|
|
1230
1440
|
};
|
|
1231
|
-
function parseTask(value,
|
|
1441
|
+
function parseTask(value, path2, issues) {
|
|
1232
1442
|
if (!isRecord3(value)) {
|
|
1233
|
-
issues.push({ path, message: "expected object" });
|
|
1443
|
+
issues.push({ path: path2, message: "expected object" });
|
|
1234
1444
|
return null;
|
|
1235
1445
|
}
|
|
1236
1446
|
for (const key of Object.keys(value).sort((a, b) => a.localeCompare(b))) {
|
|
1237
|
-
if (!TASK_KEYS.has(key)) issues.push({ path: `${
|
|
1447
|
+
if (!TASK_KEYS.has(key)) issues.push({ path: `${path2}.${key}`, message: "unknown field" });
|
|
1238
1448
|
}
|
|
1239
|
-
const id = readNonEmptyString(value,
|
|
1449
|
+
const id = readNonEmptyString(value, path2, "id", issues);
|
|
1240
1450
|
if (id !== null && !/^[A-Za-z0-9._-]+$/.test(id)) {
|
|
1241
|
-
issues.push({ path: `${
|
|
1451
|
+
issues.push({ path: `${path2}.id`, message: "expected id with letters, numbers, dots, underscores, or hyphens" });
|
|
1242
1452
|
}
|
|
1243
|
-
const prompt = readNonEmptyString(value,
|
|
1244
|
-
const cwd = readNonEmptyString(value,
|
|
1453
|
+
const prompt = readNonEmptyString(value, path2, "prompt", issues);
|
|
1454
|
+
const cwd = readNonEmptyString(value, path2, "cwd", issues);
|
|
1245
1455
|
if (cwd !== null && isAbsolute(cwd)) {
|
|
1246
|
-
issues.push({ path: `${
|
|
1456
|
+
issues.push({ path: `${path2}.cwd`, message: "expected repo-local relative path" });
|
|
1247
1457
|
}
|
|
1248
|
-
const setup = readStringArray(value,
|
|
1249
|
-
const verifier = readStringArray(value,
|
|
1458
|
+
const setup = readStringArray(value, path2, "setup", issues, true);
|
|
1459
|
+
const verifier = readStringArray(value, path2, "verifier", issues, false);
|
|
1250
1460
|
if (verifier !== null && verifier.length === 0) {
|
|
1251
|
-
issues.push({ path: `${
|
|
1461
|
+
issues.push({ path: `${path2}.verifier`, message: "expected at least one command" });
|
|
1252
1462
|
}
|
|
1253
|
-
const timeoutMs = readPositiveInteger(value,
|
|
1254
|
-
const tags = readStringArray(value,
|
|
1463
|
+
const timeoutMs = readPositiveInteger(value, path2, "timeoutMs", issues);
|
|
1464
|
+
const tags = readStringArray(value, path2, "tags", issues, true);
|
|
1255
1465
|
if (id === null || prompt === null || cwd === null || setup === null || verifier === null || timeoutMs === null) {
|
|
1256
1466
|
return null;
|
|
1257
1467
|
}
|
|
@@ -1269,36 +1479,36 @@ function validateTaskCwds(tasks, baseDir) {
|
|
|
1269
1479
|
}
|
|
1270
1480
|
return issues;
|
|
1271
1481
|
}
|
|
1272
|
-
function readNonEmptyString(record,
|
|
1482
|
+
function readNonEmptyString(record, path2, field, issues) {
|
|
1273
1483
|
const value = record[field];
|
|
1274
1484
|
if (typeof value !== "string" || value.trim().length === 0) {
|
|
1275
|
-
issues.push({ path: `${
|
|
1485
|
+
issues.push({ path: `${path2}.${field}`, message: "expected non-empty string" });
|
|
1276
1486
|
return null;
|
|
1277
1487
|
}
|
|
1278
1488
|
return value;
|
|
1279
1489
|
}
|
|
1280
|
-
function readStringArray(record,
|
|
1490
|
+
function readStringArray(record, path2, field, issues, allowMissing) {
|
|
1281
1491
|
const value = record[field];
|
|
1282
1492
|
if (value === void 0 && allowMissing) return [];
|
|
1283
1493
|
if (!Array.isArray(value)) {
|
|
1284
|
-
issues.push({ path: `${
|
|
1494
|
+
issues.push({ path: `${path2}.${field}`, message: "expected string array" });
|
|
1285
1495
|
return null;
|
|
1286
1496
|
}
|
|
1287
1497
|
const out = [];
|
|
1288
1498
|
for (let index = 0; index < value.length; index += 1) {
|
|
1289
1499
|
const entry = value[index];
|
|
1290
1500
|
if (typeof entry !== "string" || entry.trim().length === 0) {
|
|
1291
|
-
issues.push({ path: `${
|
|
1501
|
+
issues.push({ path: `${path2}.${field}[${index}]`, message: "expected non-empty string" });
|
|
1292
1502
|
continue;
|
|
1293
1503
|
}
|
|
1294
1504
|
out.push(entry);
|
|
1295
1505
|
}
|
|
1296
1506
|
return out;
|
|
1297
1507
|
}
|
|
1298
|
-
function readPositiveInteger(record,
|
|
1508
|
+
function readPositiveInteger(record, path2, field, issues) {
|
|
1299
1509
|
const value = record[field];
|
|
1300
1510
|
if (typeof value !== "number" || !Number.isInteger(value) || value <= 0) {
|
|
1301
|
-
issues.push({ path: `${
|
|
1511
|
+
issues.push({ path: `${path2}.${field}`, message: "expected positive integer" });
|
|
1302
1512
|
return null;
|
|
1303
1513
|
}
|
|
1304
1514
|
return value;
|
|
@@ -1307,7 +1517,7 @@ function isRecord3(value) {
|
|
|
1307
1517
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1308
1518
|
}
|
|
1309
1519
|
function sha256Hex(content) {
|
|
1310
|
-
return
|
|
1520
|
+
return createHash3("sha256").update(content, "utf8").digest("hex");
|
|
1311
1521
|
}
|
|
1312
1522
|
|
|
1313
1523
|
// src/domains/eval/run-compare.ts
|
|
@@ -1325,84 +1535,145 @@ function assertComparableTrackedMetricSources(metric, baseline, candidate) {
|
|
|
1325
1535
|
throw new EvalTrackedMetricSourceMismatchError(metric, baseline, candidate);
|
|
1326
1536
|
}
|
|
1327
1537
|
|
|
1328
|
-
// src/domains/prompts/
|
|
1538
|
+
// src/domains/prompts/fragment-loader.ts
|
|
1329
1539
|
init_esm_shims();
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
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);
|
|
1342
1564
|
}
|
|
1343
|
-
return JSON.stringify(value);
|
|
1344
1565
|
}
|
|
1345
|
-
|
|
1346
|
-
|
|
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`);
|
|
1347
1575
|
}
|
|
1348
|
-
|
|
1349
|
-
|
|
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})`);
|
|
1350
1584
|
}
|
|
1351
|
-
if (
|
|
1352
|
-
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`);
|
|
1353
1587
|
}
|
|
1354
|
-
|
|
1355
|
-
|
|
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`);
|
|
1356
1592
|
}
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
if (!(i in value) || value[i] === void 0) {
|
|
1361
|
-
parts.push("null");
|
|
1362
|
-
continue;
|
|
1363
|
-
}
|
|
1364
|
-
parts.push(serialize(value[i]));
|
|
1365
|
-
}
|
|
1366
|
-
return `[${parts.join(",")}]`;
|
|
1593
|
+
const version = fm.version;
|
|
1594
|
+
if (version !== 1) {
|
|
1595
|
+
throw new Error(`fragment-loader: ${relPath}: frontmatter.version must be 1`);
|
|
1367
1596
|
}
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
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
|
+
);
|
|
1376
1628
|
}
|
|
1377
|
-
|
|
1629
|
+
byId.set(fragment.id, fragment);
|
|
1378
1630
|
}
|
|
1379
|
-
|
|
1631
|
+
return { byId, rootDir: resolvedRoot };
|
|
1380
1632
|
}
|
|
1381
1633
|
|
|
1382
1634
|
export {
|
|
1383
|
-
|
|
1384
|
-
|
|
1635
|
+
renderCodewikiDigest,
|
|
1636
|
+
sha256,
|
|
1637
|
+
canonicalJson,
|
|
1385
1638
|
RUN_RECEIPT_INTEGRITY_VERSION,
|
|
1386
1639
|
RUN_RECEIPT_INTEGRITY_ALGORITHM,
|
|
1387
1640
|
withReceiptIntegrity,
|
|
1388
1641
|
isReceiptIntegrity,
|
|
1389
1642
|
verifyReceiptIntegrity,
|
|
1643
|
+
TRUST_STATUS_VERSION,
|
|
1644
|
+
TRUST_STATUS_MAX_ARTIFACT_REFERENCES,
|
|
1645
|
+
TRUST_STATUS_MAX_IDENTIFIER_LENGTH,
|
|
1390
1646
|
TRUST_STATUS_AXES,
|
|
1647
|
+
TRUST_STATUS_STATES,
|
|
1391
1648
|
isTrustStatusIdentifier,
|
|
1392
1649
|
normalizeTrustStatus,
|
|
1650
|
+
validateTrustStatus,
|
|
1651
|
+
absentTrustStatus,
|
|
1393
1652
|
composeTrustStatus,
|
|
1653
|
+
projectTrustStatus,
|
|
1394
1654
|
retiredReceiptIntegrity,
|
|
1395
1655
|
retiredReceiptIntegrityReason,
|
|
1656
|
+
verifyReceiptIntegrityOutcome,
|
|
1396
1657
|
retiredIntegrityVersionOf,
|
|
1658
|
+
adaptReceiptIntegrityStatus,
|
|
1659
|
+
adaptRunReceiptValidationStatus,
|
|
1660
|
+
adaptRunReceiptContextStatus,
|
|
1661
|
+
adaptRunReceiptAutonomyStatus,
|
|
1397
1662
|
adaptRunReceiptTrustStatus,
|
|
1398
1663
|
inspectRunReceiptTrustStatus,
|
|
1399
1664
|
adaptGateDecisionReviewStatus,
|
|
1400
1665
|
adaptGroundedEvidenceValidationStatus,
|
|
1666
|
+
adaptFinishContractCompletionStatus,
|
|
1667
|
+
TRUST_SUMMARY_VERSION,
|
|
1668
|
+
TRUST_SUMMARY_MAX_REFS,
|
|
1669
|
+
TRUST_VERDICTS,
|
|
1670
|
+
TRUST_STATE_WORDS,
|
|
1401
1671
|
trustStateWord,
|
|
1402
1672
|
formatTrustSummary,
|
|
1403
1673
|
formatTrustSummaryLine,
|
|
1404
1674
|
formatTrustAxes,
|
|
1405
1675
|
trustVerdict,
|
|
1676
|
+
trustSummaryReferences,
|
|
1406
1677
|
summarizeTrustStatus,
|
|
1407
1678
|
evalClioProvenance,
|
|
1408
1679
|
evalEnvironmentProvenance,
|
|
@@ -1410,6 +1681,7 @@ export {
|
|
|
1410
1681
|
evalServingObservationFrom,
|
|
1411
1682
|
assertComparableTrackedMetricSources,
|
|
1412
1683
|
loadEvalTaskFile,
|
|
1413
|
-
EvalTaskFileError
|
|
1684
|
+
EvalTaskFileError,
|
|
1685
|
+
loadFragments
|
|
1414
1686
|
};
|
|
1415
|
-
//# sourceMappingURL=chunk-
|
|
1687
|
+
//# sourceMappingURL=chunk-6CDNRHWH.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/timers.ts
|
|
7
7
|
init_esm_shims();
|
|
@@ -23,4 +23,4 @@ export {
|
|
|
23
23
|
sleep,
|
|
24
24
|
rawDurationMs
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-6EXUUOSN.js.map
|