@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,16 +3,16 @@ import {
|
|
|
3
3
|
gitCommitAttributionEnabled,
|
|
4
4
|
reportCommitAttributionDiagnostic,
|
|
5
5
|
withManagedGitCommitAttributionEnvironment
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LTR5QCLS.js";
|
|
7
7
|
import {
|
|
8
8
|
clampTimerDelayMs
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6EXUUOSN.js";
|
|
10
10
|
import {
|
|
11
11
|
AI_AGENT_NAME
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ZTNFYMIO.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esm_shims
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ECBHH7LU.js";
|
|
16
16
|
|
|
17
17
|
// src/core/safe-exec.ts
|
|
18
18
|
init_esm_shims();
|
|
@@ -193,4 +193,4 @@ export {
|
|
|
193
193
|
runCommandVector,
|
|
194
194
|
combineSafeOutput
|
|
195
195
|
};
|
|
196
|
-
//# sourceMappingURL=chunk-
|
|
196
|
+
//# sourceMappingURL=chunk-GJ24ODAX.js.map
|
|
@@ -4,24 +4,27 @@ import {
|
|
|
4
4
|
normalizeWriteBoundary,
|
|
5
5
|
normalizeWriteBoundaryEntry,
|
|
6
6
|
writeBoundaryCovers
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YEJIG7LN.js";
|
|
8
8
|
import {
|
|
9
9
|
asDirectoryPathBoundary,
|
|
10
10
|
pathBoundaryEntryCovers
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-R2P2U3ZS.js";
|
|
12
12
|
import {
|
|
13
13
|
atomicWrite
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FQOOGXBH.js";
|
|
15
|
+
import {
|
|
16
|
+
buildSafeToolEnv
|
|
17
|
+
} from "./chunk-GJ24ODAX.js";
|
|
15
18
|
import {
|
|
16
19
|
clioStateDir
|
|
17
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-CTTI7G3T.js";
|
|
18
21
|
import {
|
|
19
22
|
init_esm_shims
|
|
20
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-ECBHH7LU.js";
|
|
21
24
|
|
|
22
25
|
// src/tools/compete-worktrees.ts
|
|
23
26
|
init_esm_shims();
|
|
24
|
-
import { execFileSync as
|
|
27
|
+
import { execFileSync as execFileSync3 } from "node:child_process";
|
|
25
28
|
import { randomBytes as randomBytes2 } from "node:crypto";
|
|
26
29
|
import {
|
|
27
30
|
existsSync as existsSync2,
|
|
@@ -32,26 +35,74 @@ import {
|
|
|
32
35
|
realpathSync as realpathSync2,
|
|
33
36
|
renameSync,
|
|
34
37
|
rmdirSync,
|
|
35
|
-
rmSync as
|
|
38
|
+
rmSync as rmSync3,
|
|
36
39
|
unlinkSync,
|
|
37
40
|
writeFileSync as writeFileSync2
|
|
38
41
|
} from "node:fs";
|
|
39
42
|
import { hostname } from "node:os";
|
|
40
|
-
import { join as
|
|
43
|
+
import { join as join3, relative as relative2, resolve as resolve2 } from "node:path";
|
|
41
44
|
|
|
42
|
-
// src/
|
|
45
|
+
// src/domains/dispatch/workspace-checkpoint.ts
|
|
43
46
|
init_esm_shims();
|
|
44
47
|
import { execFileSync } from "node:child_process";
|
|
45
|
-
import { createHash
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
+
import { createHash } from "node:crypto";
|
|
49
|
+
import { mkdtempSync, rmSync } from "node:fs";
|
|
50
|
+
import { tmpdir } from "node:os";
|
|
51
|
+
import { join } from "node:path";
|
|
52
|
+
function workspaceCheckpointRef(kind, identity) {
|
|
53
|
+
return `refs/clio-coder/${kind}/${createHash("sha256").update(identity).digest("hex")}`;
|
|
54
|
+
}
|
|
55
|
+
function captureWorkspaceCheckpoint(cwd, ref, message) {
|
|
56
|
+
if (!/^refs\/clio-coder\/(loop|compete)\/[a-f0-9]{64}$/.test(ref)) throw new Error("invalid workspace checkpoint ref");
|
|
57
|
+
const directory = mkdtempSync(join(tmpdir(), "clio-checkpoint-index-"));
|
|
58
|
+
const env = buildSafeToolEnv({
|
|
59
|
+
GIT_INDEX_FILE: join(directory, "index"),
|
|
60
|
+
GIT_AUTHOR_NAME: "Clio checkpoint",
|
|
61
|
+
GIT_AUTHOR_EMAIL: "checkpoint@clio.invalid",
|
|
62
|
+
GIT_COMMITTER_NAME: "Clio checkpoint",
|
|
63
|
+
GIT_COMMITTER_EMAIL: "checkpoint@clio.invalid"
|
|
64
|
+
});
|
|
65
|
+
const config = ["-c", "core.hooksPath=/dev/null", "-c", "core.fsmonitor=false"];
|
|
66
|
+
const git4 = (args) => execFileSync("git", ["-C", cwd, ...config, ...args], {
|
|
67
|
+
env,
|
|
68
|
+
encoding: "utf8",
|
|
69
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
70
|
+
timeout: 3e4,
|
|
71
|
+
maxBuffer: 1024 * 1024
|
|
72
|
+
}).trim();
|
|
73
|
+
try {
|
|
74
|
+
try {
|
|
75
|
+
git4(["rev-parse", "--verify", ref]);
|
|
76
|
+
return ref;
|
|
77
|
+
} catch {
|
|
78
|
+
}
|
|
79
|
+
const head = git4(["rev-parse", "HEAD"]);
|
|
80
|
+
const filterKeys = git4(["config", "--null", "--name-only", "--list"]).split("\0").filter((key) => /^filter\..*\.(?:clean|process|required)$/.test(key));
|
|
81
|
+
for (const key of filterKeys) config.push("-c", `${key}=${key.endsWith(".required") ? "false" : ""}`);
|
|
82
|
+
git4(["read-tree", head]);
|
|
83
|
+
git4(["add", "-A", "--", "."]);
|
|
84
|
+
const tree = git4(["write-tree"]);
|
|
85
|
+
const commit = git4(["commit-tree", tree, "-p", head, "-m", message]);
|
|
86
|
+
git4(["update-ref", ref, commit, ""]);
|
|
87
|
+
return ref;
|
|
88
|
+
} finally {
|
|
89
|
+
rmSync(directory, { recursive: true, force: true });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// src/tools/task-worktree.ts
|
|
94
|
+
init_esm_shims();
|
|
95
|
+
import { execFileSync as execFileSync2 } from "node:child_process";
|
|
96
|
+
import { createHash as createHash2, randomBytes } from "node:crypto";
|
|
97
|
+
import { existsSync, mkdirSync, readFileSync, realpathSync, rmSync as rmSync2, writeFileSync } from "node:fs";
|
|
98
|
+
import { isAbsolute, join as join2, relative, resolve, sep } from "node:path";
|
|
48
99
|
var SAFE_RUN_ID = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
|
|
49
100
|
var OWNER_FILE_SUFFIX = ".task-owner.json";
|
|
50
101
|
var TASK_WORKTREE_KIND = "clio-coder-task-worktree";
|
|
51
102
|
var LEGACY_TASK_WORKTREE_KIND = "clio-task-worktree";
|
|
52
103
|
var COMMIT_IDENTITY = "clio-coder-task";
|
|
53
104
|
function gitBytes(root, args) {
|
|
54
|
-
return
|
|
105
|
+
return execFileSync2("git", ["-C", root, ...args], {
|
|
55
106
|
stdio: ["ignore", "pipe", "pipe"],
|
|
56
107
|
timeout: 3e4
|
|
57
108
|
});
|
|
@@ -75,9 +126,12 @@ function isCanonicalWorktreePathInside(parent, candidate) {
|
|
|
75
126
|
const rel = relative(canonicalParent, canonicalCandidate);
|
|
76
127
|
return rel.length > 0 && rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel);
|
|
77
128
|
}
|
|
78
|
-
function commitWorktreePath(path, identity, message) {
|
|
79
|
-
|
|
80
|
-
|
|
129
|
+
function commitWorktreePath(path, identity, message, excludedPaths = []) {
|
|
130
|
+
if (excludedPaths.length > 0) {
|
|
131
|
+
git(path, ["reset", "-q", "HEAD", "--", ...excludedPaths.map((entry) => `:(top,literal)${entry}`)]);
|
|
132
|
+
}
|
|
133
|
+
git(path, ["add", "-A", "--", ".", ...excludedPaths.map((entry) => `:(top,exclude,literal)${entry}`)]);
|
|
134
|
+
if (git(path, ["diff", "--cached", "--name-only", "-z"]).length === 0) return false;
|
|
81
135
|
git(path, [
|
|
82
136
|
"-c",
|
|
83
137
|
`user.name=${identity}`,
|
|
@@ -155,8 +209,8 @@ function createTaskWorktree(root, runId, base) {
|
|
|
155
209
|
validateRunId(runId);
|
|
156
210
|
const canonical = realpathSync(root);
|
|
157
211
|
const resolvedBase = base ?? git(canonical, ["rev-parse", "HEAD"]);
|
|
158
|
-
const parent =
|
|
159
|
-
const path =
|
|
212
|
+
const parent = join2(canonical, ".clio-coder", "worktrees");
|
|
213
|
+
const path = join2(parent, runId);
|
|
160
214
|
const branch = `clio-coder/task/${runId}`;
|
|
161
215
|
mkdirSync(parent, { recursive: true });
|
|
162
216
|
if (!isCanonicalWorktreePathInside(parent, path))
|
|
@@ -172,8 +226,8 @@ function createTaskWorktree(root, runId, base) {
|
|
|
172
226
|
return { root: canonical, runId, path, branch, base: resolvedBase, ownerToken };
|
|
173
227
|
}
|
|
174
228
|
function assertOwnership(worktree) {
|
|
175
|
-
const expected =
|
|
176
|
-
if (resolve(worktree.path) !== resolve(expected) || !isCanonicalWorktreePathInside(
|
|
229
|
+
const expected = join2(worktree.root, ".clio-coder", "worktrees", worktree.runId);
|
|
230
|
+
if (resolve(worktree.path) !== resolve(expected) || !isCanonicalWorktreePathInside(join2(worktree.root, ".clio-coder", "worktrees"), worktree.path)) {
|
|
177
231
|
throw new Error(`task worktree ${worktree.runId} has an invalid ownership path`);
|
|
178
232
|
}
|
|
179
233
|
const ownerPath = `${worktree.path}${OWNER_FILE_SUFFIX}`;
|
|
@@ -196,7 +250,7 @@ function commitTaskWorktree(worktree, message = `Clio Coder task ${worktree.runI
|
|
|
196
250
|
}
|
|
197
251
|
function taskWorktreeDiffHash(worktree) {
|
|
198
252
|
const bytes = gitBytes(worktree.root, ["diff", `${worktree.base}..${worktree.branch}`]);
|
|
199
|
-
return
|
|
253
|
+
return createHash2("sha256").update(bytes).digest("hex");
|
|
200
254
|
}
|
|
201
255
|
function protectedPathsChangedByTaskBranch(worktree, protectedPaths) {
|
|
202
256
|
return protectedPathsChangedByWorktreeBranch(worktree.root, worktree.branch, protectedPaths);
|
|
@@ -223,11 +277,11 @@ function cleanupTaskWorktree(worktree, deleteBranch) {
|
|
|
223
277
|
try {
|
|
224
278
|
git(worktree.root, ["worktree", "remove", "--force", worktree.path]);
|
|
225
279
|
} catch {
|
|
226
|
-
if (existsSync(worktree.path))
|
|
280
|
+
if (existsSync(worktree.path)) rmSync2(worktree.path, { recursive: true, force: true });
|
|
227
281
|
git(worktree.root, ["worktree", "prune"]);
|
|
228
282
|
}
|
|
229
283
|
if (deleteBranch) git(worktree.root, ["branch", "-D", worktree.branch]);
|
|
230
|
-
|
|
284
|
+
rmSync2(`${worktree.path}${OWNER_FILE_SUFFIX}`, { force: true });
|
|
231
285
|
}
|
|
232
286
|
|
|
233
287
|
// src/tools/compete-worktrees.ts
|
|
@@ -240,7 +294,7 @@ var SAFE_GROUP = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
|
240
294
|
var PROCESS_EXIT_GRACE_MS = 750;
|
|
241
295
|
var PROCESS_POLL_MS = 25;
|
|
242
296
|
function git2(root, args) {
|
|
243
|
-
return
|
|
297
|
+
return execFileSync3("git", ["-C", root, ...args], {
|
|
244
298
|
encoding: "utf8",
|
|
245
299
|
stdio: ["ignore", "pipe", "pipe"],
|
|
246
300
|
timeout: 3e4
|
|
@@ -270,7 +324,7 @@ function processSnapshot(pid) {
|
|
|
270
324
|
} catch {
|
|
271
325
|
}
|
|
272
326
|
try {
|
|
273
|
-
const started =
|
|
327
|
+
const started = execFileSync3("ps", ["-o", "lstart=", "-p", String(pid)], {
|
|
274
328
|
encoding: "utf8",
|
|
275
329
|
stdio: ["ignore", "pipe", "ignore"],
|
|
276
330
|
timeout: 2e3
|
|
@@ -346,14 +400,14 @@ function canonicalRoot(root) {
|
|
|
346
400
|
return realpathSync2(root);
|
|
347
401
|
}
|
|
348
402
|
function competeParent(root) {
|
|
349
|
-
return
|
|
403
|
+
return join3(root, ...COMPETE_PARENT_SEGMENTS);
|
|
350
404
|
}
|
|
351
405
|
function groupDirectory(root, group) {
|
|
352
406
|
validateGroup(group);
|
|
353
|
-
return
|
|
407
|
+
return join3(competeParent(root), group);
|
|
354
408
|
}
|
|
355
409
|
function manifestPath(directory) {
|
|
356
|
-
return
|
|
410
|
+
return join3(directory, COMPETE_MANIFEST_FILE);
|
|
357
411
|
}
|
|
358
412
|
function isPlainDirectory(path) {
|
|
359
413
|
try {
|
|
@@ -430,7 +484,7 @@ function replaceManifest(ownership, manifest) {
|
|
|
430
484
|
`, { encoding: "utf8", flag: "wx" });
|
|
431
485
|
renameSync(temporary, destination);
|
|
432
486
|
} finally {
|
|
433
|
-
if (existsSync2(temporary))
|
|
487
|
+
if (existsSync2(temporary)) rmSync3(temporary, { force: true });
|
|
434
488
|
}
|
|
435
489
|
}
|
|
436
490
|
function isGitRepository(root) {
|
|
@@ -552,7 +606,7 @@ function markCompeteGroupWinnerPreserved(ownership, winnerIndex) {
|
|
|
552
606
|
function createCandidateWorktree(ownership, index, baseline) {
|
|
553
607
|
assertOwnership2(ownership);
|
|
554
608
|
const branch = competeBranch(ownership.group, index);
|
|
555
|
-
const path =
|
|
609
|
+
const path = join3(ownership.directory, `candidate-${index}`);
|
|
556
610
|
if (!isCanonicalPathInside(ownership.directory, path)) {
|
|
557
611
|
throw new Error(`candidate ${index} path escapes compete group ${ownership.group}`);
|
|
558
612
|
}
|
|
@@ -562,7 +616,7 @@ function createCandidateWorktree(ownership, index, baseline) {
|
|
|
562
616
|
async function createCandidateWorktreeMapped(ownership, index, baseline, mux) {
|
|
563
617
|
assertOwnership2(ownership);
|
|
564
618
|
const branch = competeBranch(ownership.group, index);
|
|
565
|
-
const path =
|
|
619
|
+
const path = join3(ownership.directory, `candidate-${index}`);
|
|
566
620
|
if (!isCanonicalPathInside(ownership.directory, path)) {
|
|
567
621
|
throw new Error(`candidate ${index} path escapes compete group ${ownership.group}`);
|
|
568
622
|
}
|
|
@@ -593,7 +647,10 @@ async function createCandidateWorktreeMapped(ownership, index, baseline, mux) {
|
|
|
593
647
|
return { ...native, provenance: { backend: "native", path, branch, fallback } };
|
|
594
648
|
}
|
|
595
649
|
function commitCandidateWork(worktree, message) {
|
|
596
|
-
return commitWorktreePath(worktree.path, COMPETE_COMMIT_IDENTITY, message
|
|
650
|
+
return commitWorktreePath(worktree.path, COMPETE_COMMIT_IDENTITY, message, [
|
|
651
|
+
".clio-coder/codewiki.json",
|
|
652
|
+
".clio-coder/state.json"
|
|
653
|
+
]);
|
|
597
654
|
}
|
|
598
655
|
function candidateDiffStat(root, branch) {
|
|
599
656
|
return worktreeBranchDiffStat(root, branch);
|
|
@@ -619,16 +676,33 @@ function removeRegisteredWorktree(root, path) {
|
|
|
619
676
|
try {
|
|
620
677
|
git2(root, ["worktree", "remove", "--force", path]);
|
|
621
678
|
} catch {
|
|
622
|
-
if (existsSync2(path))
|
|
679
|
+
if (existsSync2(path)) rmSync3(path, { recursive: true, force: true });
|
|
623
680
|
git2(root, ["worktree", "prune"]);
|
|
624
681
|
}
|
|
625
682
|
}
|
|
683
|
+
function preserveCandidateWorktree(ownership, path, index) {
|
|
684
|
+
if (resolve2(path) !== resolve2(join3(ownership.directory, `candidate-${index}`)) || !isCanonicalPathInside(ownership.directory, path))
|
|
685
|
+
throw new Error("candidate checkpoint path is outside its proven group");
|
|
686
|
+
const ref = workspaceCheckpointRef("compete", `${ownership.group}:${index}`);
|
|
687
|
+
if (existsSync2(path)) captureWorkspaceCheckpoint(path, ref, `Compete ${ownership.group} candidate ${index}`);
|
|
688
|
+
else {
|
|
689
|
+
const branch = competeBranchForCandidate(ownership.root, ownership.group, index);
|
|
690
|
+
if (exactGroupBranches(ownership.root, ownership.group).includes(branch)) {
|
|
691
|
+
try {
|
|
692
|
+
git2(ownership.root, ["rev-parse", "--verify", ref]);
|
|
693
|
+
} catch {
|
|
694
|
+
git2(ownership.root, ["update-ref", ref, branch, ""]);
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}
|
|
626
699
|
function removeCandidateWorktree(ownership, worktree, deleteBranch) {
|
|
627
700
|
assertOwnership2(ownership);
|
|
628
|
-
const expectedPath =
|
|
701
|
+
const expectedPath = join3(ownership.directory, `candidate-${worktree.index}`);
|
|
629
702
|
if (resolve2(worktree.path) !== resolve2(expectedPath) || !competeBranchMatches(worktree.branch, ownership.group, worktree.index) || !isCanonicalPathInside(ownership.directory, worktree.path)) {
|
|
630
703
|
throw new Error(`candidate ${worktree.index} does not belong to compete group ${ownership.group}`);
|
|
631
704
|
}
|
|
705
|
+
preserveCandidateWorktree(ownership, worktree.path, worktree.index);
|
|
632
706
|
removeRegisteredWorktree(ownership.root, worktree.path);
|
|
633
707
|
if (deleteBranch && exactGroupBranches(ownership.root, ownership.group).includes(worktree.branch)) {
|
|
634
708
|
git2(ownership.root, ["branch", "-D", worktree.branch]);
|
|
@@ -642,6 +716,8 @@ function removeCandidateWorktree(ownership, worktree, deleteBranch) {
|
|
|
642
716
|
}
|
|
643
717
|
}
|
|
644
718
|
async function removeCandidateWorktreeMapped(ownership, worktree, deleteBranch, mux) {
|
|
719
|
+
assertOwnership2(ownership);
|
|
720
|
+
preserveCandidateWorktree(ownership, worktree.path, worktree.index);
|
|
645
721
|
const workspaceId = worktree.provenance?.backend === "herdr" ? worktree.provenance.workspaceId : void 0;
|
|
646
722
|
if (workspaceId && mux?.available()) {
|
|
647
723
|
await mux.worktreeRemove(workspaceId, { force: true }).catch(() => false);
|
|
@@ -655,6 +731,8 @@ function cleanupWorktreeGroup(ownership) {
|
|
|
655
731
|
assertOwnership2(ownership);
|
|
656
732
|
for (const path of registeredWorktreePaths(ownership.root)) {
|
|
657
733
|
if (!isCanonicalPathInside(ownership.directory, path)) continue;
|
|
734
|
+
const index = Number.parseInt(path.split(/[\\/]/).at(-1)?.replace("candidate-", "") ?? "", 10);
|
|
735
|
+
if (Number.isInteger(index)) preserveCandidateWorktree(ownership, path, index);
|
|
658
736
|
removeRegisteredWorktree(ownership.root, path);
|
|
659
737
|
}
|
|
660
738
|
git2(ownership.root, ["worktree", "prune"]);
|
|
@@ -667,6 +745,13 @@ function cleanupWorktreeGroup(ownership) {
|
|
|
667
745
|
);
|
|
668
746
|
}
|
|
669
747
|
for (const branch of exactGroupBranches(ownership.root, ownership.group)) {
|
|
748
|
+
const index = Number.parseInt(branch.split("/").at(-1) ?? "", 10);
|
|
749
|
+
const ref = workspaceCheckpointRef("compete", `${ownership.group}:${index}`);
|
|
750
|
+
try {
|
|
751
|
+
git2(ownership.root, ["rev-parse", "--verify", ref]);
|
|
752
|
+
} catch {
|
|
753
|
+
git2(ownership.root, ["update-ref", ref, branch, ""]);
|
|
754
|
+
}
|
|
670
755
|
git2(ownership.root, ["branch", "-D", branch]);
|
|
671
756
|
}
|
|
672
757
|
const branchesRemain = exactGroupBranches(ownership.root, ownership.group);
|
|
@@ -676,7 +761,7 @@ function cleanupWorktreeGroup(ownership) {
|
|
|
676
761
|
assertOwnership2(ownership);
|
|
677
762
|
for (const entry of readdirSync(ownership.directory)) {
|
|
678
763
|
if (entry === COMPETE_MANIFEST_FILE) continue;
|
|
679
|
-
|
|
764
|
+
rmSync3(join3(ownership.directory, entry), { recursive: true, force: true });
|
|
680
765
|
}
|
|
681
766
|
assertOwnership2(ownership);
|
|
682
767
|
const unexpected = readdirSync(ownership.directory).filter((entry) => entry !== COMPETE_MANIFEST_FILE);
|
|
@@ -719,7 +804,7 @@ function settleRecoveredCompeteDecision(root, group, winnerIndex) {
|
|
|
719
804
|
}
|
|
720
805
|
const branches = exactGroupBranches(ownership.root, group);
|
|
721
806
|
const winnerBranch = competeBranchForCandidate(ownership.root, group, winnerIndex);
|
|
722
|
-
const winnerPath =
|
|
807
|
+
const winnerPath = join3(ownership.directory, `candidate-${winnerIndex}`);
|
|
723
808
|
if (!branches.includes(winnerBranch) || !registeredWorktreePaths(ownership.root).some((path) => resolve2(path) === resolve2(winnerPath))) {
|
|
724
809
|
throw new Error(`recovered winner ${winnerBranch} has no intact candidate worktree`);
|
|
725
810
|
}
|
|
@@ -727,7 +812,7 @@ function settleRecoveredCompeteDecision(root, group, winnerIndex) {
|
|
|
727
812
|
for (const branch of branches) {
|
|
728
813
|
const index = Number.parseInt(branch.split("/").at(-1) ?? "", 10);
|
|
729
814
|
if (index === winnerIndex) continue;
|
|
730
|
-
removeCandidateWorktree(ownership, { index, branch, path:
|
|
815
|
+
removeCandidateWorktree(ownership, { index, branch, path: join3(ownership.directory, `candidate-${index}`) }, true);
|
|
731
816
|
}
|
|
732
817
|
return ownership;
|
|
733
818
|
}
|
|
@@ -792,15 +877,15 @@ function recoverCleanupReadyCompeteGroups(root, options = {}) {
|
|
|
792
877
|
|
|
793
878
|
// src/domains/dispatch/write-boundary.ts
|
|
794
879
|
init_esm_shims();
|
|
795
|
-
import { execFileSync as
|
|
796
|
-
import { createHash as
|
|
797
|
-
import { existsSync as existsSync3, lstatSync as lstatSync2, mkdirSync as mkdirSync3, readlinkSync, realpathSync as realpathSync3, rmSync as
|
|
798
|
-
import { dirname, isAbsolute as isAbsolute2, join as
|
|
880
|
+
import { execFileSync as execFileSync4 } from "node:child_process";
|
|
881
|
+
import { createHash as createHash3 } from "node:crypto";
|
|
882
|
+
import { existsSync as existsSync3, lstatSync as lstatSync2, mkdirSync as mkdirSync3, readlinkSync, realpathSync as realpathSync3, rmSync as rmSync4, writeFileSync as writeFileSync3 } from "node:fs";
|
|
883
|
+
import { dirname, isAbsolute as isAbsolute2, join as join4, relative as relative3, resolve as resolve3, sep as sep2 } from "node:path";
|
|
799
884
|
var WRITE_BOUNDARY_VIOLATION_REASON = "writes_boundary_violation";
|
|
800
885
|
var ABSENT = "absent";
|
|
801
886
|
var GIT_TIMEOUT_MS = 3e4;
|
|
802
887
|
function git3(root, args, input) {
|
|
803
|
-
return
|
|
888
|
+
return execFileSync4("git", ["-C", root, ...args], {
|
|
804
889
|
encoding: "utf8",
|
|
805
890
|
stdio: ["pipe", "pipe", "pipe"],
|
|
806
891
|
timeout: GIT_TIMEOUT_MS,
|
|
@@ -809,7 +894,7 @@ function git3(root, args, input) {
|
|
|
809
894
|
});
|
|
810
895
|
}
|
|
811
896
|
function gitBytes2(root, args) {
|
|
812
|
-
return
|
|
897
|
+
return execFileSync4("git", ["-C", root, ...args], {
|
|
813
898
|
stdio: ["ignore", "pipe", "pipe"],
|
|
814
899
|
timeout: GIT_TIMEOUT_MS,
|
|
815
900
|
maxBuffer: 256 * 1024 * 1024
|
|
@@ -824,7 +909,7 @@ function contentTokens(root, paths) {
|
|
|
824
909
|
const tokens = /* @__PURE__ */ new Map();
|
|
825
910
|
const hashable = [];
|
|
826
911
|
for (const path of paths) {
|
|
827
|
-
const full =
|
|
912
|
+
const full = join4(root, path);
|
|
828
913
|
let stat;
|
|
829
914
|
try {
|
|
830
915
|
stat = lstatSync2(full);
|
|
@@ -851,7 +936,7 @@ function contentTokens(root, paths) {
|
|
|
851
936
|
hashable.push(path);
|
|
852
937
|
}
|
|
853
938
|
if (hashable.length > 0) {
|
|
854
|
-
const hashes = git3(root, ["hash-object", "--stdin-paths"], `${hashable.map((path) =>
|
|
939
|
+
const hashes = git3(root, ["hash-object", "--stdin-paths"], `${hashable.map((path) => join4(root, path)).join("\n")}
|
|
855
940
|
`).split("\n").filter((line) => line.length > 0);
|
|
856
941
|
hashable.forEach((path, index) => {
|
|
857
942
|
tokens.set(path, `blob:${hashes[index] ?? "unknown"}`);
|
|
@@ -917,7 +1002,7 @@ function canonicalVerdict(verdict) {
|
|
|
917
1002
|
return JSON.stringify(verdict);
|
|
918
1003
|
}
|
|
919
1004
|
function rollbackPath(snapshot, change) {
|
|
920
|
-
const full =
|
|
1005
|
+
const full = join4(snapshot.root, change.path);
|
|
921
1006
|
if (snapshot.entries.has(change.path)) {
|
|
922
1007
|
return {
|
|
923
1008
|
unrecoverable: {
|
|
@@ -928,7 +1013,7 @@ function rollbackPath(snapshot, change) {
|
|
|
928
1013
|
}
|
|
929
1014
|
if (change.before === ABSENT) {
|
|
930
1015
|
try {
|
|
931
|
-
|
|
1016
|
+
rmSync4(full, { force: true, recursive: false });
|
|
932
1017
|
} catch (error) {
|
|
933
1018
|
return {
|
|
934
1019
|
unrecoverable: { path: change.path, reason: `could not remove: ${error.message}` }
|
|
@@ -1024,13 +1109,13 @@ function enforceWriteBoundary(input) {
|
|
|
1024
1109
|
reason: violations.length === 0 ? null : WRITE_BOUNDARY_VIOLATION_REASON,
|
|
1025
1110
|
detail: detail.length === 0 ? null : detail.join(" ")
|
|
1026
1111
|
};
|
|
1027
|
-
return { ...body, digest:
|
|
1112
|
+
return { ...body, digest: createHash3("sha256").update(canonicalVerdict(body), "utf8").digest("hex") };
|
|
1028
1113
|
}
|
|
1029
1114
|
function assertWriteBoundaryInsideRoot(root, allow) {
|
|
1030
1115
|
const realRoot = realpathSync3(resolve3(root));
|
|
1031
1116
|
for (const entry of allow) {
|
|
1032
1117
|
const relativeEntry = entry.endsWith("/") ? entry.slice(0, -1) : entry;
|
|
1033
|
-
let probe =
|
|
1118
|
+
let probe = join4(realRoot, relativeEntry);
|
|
1034
1119
|
while (probe !== realRoot && !existsSync3(probe)) probe = dirname(probe);
|
|
1035
1120
|
const resolved = realpathSync3(probe);
|
|
1036
1121
|
if (resolved !== realRoot && !pathBoundaryEntryCovers(asDirectoryPathBoundary(realRoot), resolved)) {
|
|
@@ -1071,10 +1156,10 @@ function repoRelative(root, path) {
|
|
|
1071
1156
|
return rel.split(sep2).join("/");
|
|
1072
1157
|
}
|
|
1073
1158
|
function writeBoundaryDir(rootId) {
|
|
1074
|
-
return
|
|
1159
|
+
return join4(clioStateDir(), "write-boundaries", rootId);
|
|
1075
1160
|
}
|
|
1076
1161
|
function writeBoundaryVerdictPath(rootId, window) {
|
|
1077
|
-
return
|
|
1162
|
+
return join4(writeBoundaryDir(rootId), `${window.replace(/[^A-Za-z0-9._-]/gu, "_")}.json`);
|
|
1078
1163
|
}
|
|
1079
1164
|
function writeWriteBoundaryVerdict(rootId, verdict) {
|
|
1080
1165
|
const path = writeBoundaryVerdictPath(rootId, verdict.window);
|
|
@@ -1176,6 +1261,8 @@ export {
|
|
|
1176
1261
|
createTaskWorktree,
|
|
1177
1262
|
applyTaskWorktree,
|
|
1178
1263
|
cleanupTaskWorktree,
|
|
1264
|
+
workspaceCheckpointRef,
|
|
1265
|
+
captureWorkspaceCheckpoint,
|
|
1179
1266
|
isGitRepository,
|
|
1180
1267
|
claimCompeteGroup,
|
|
1181
1268
|
loadCompeteGroup,
|
|
@@ -1199,4 +1286,4 @@ export {
|
|
|
1199
1286
|
preflightWriteBoundaries,
|
|
1200
1287
|
createWriteBoundaryEnforcer
|
|
1201
1288
|
};
|
|
1202
|
-
//# sourceMappingURL=chunk-
|
|
1289
|
+
//# sourceMappingURL=chunk-GNQRWTMY.js.map
|
|
@@ -4,17 +4,17 @@ import {
|
|
|
4
4
|
settingsPath,
|
|
5
5
|
validateSettings,
|
|
6
6
|
withSettingsLock
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FKIOX6DS.js";
|
|
8
8
|
import {
|
|
9
9
|
require_dist
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-B5GGDIHT.js";
|
|
11
11
|
import {
|
|
12
12
|
safeResourceWrite
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ZZFWWYLX.js";
|
|
14
14
|
import {
|
|
15
15
|
__toESM,
|
|
16
16
|
init_esm_shims
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-ECBHH7LU.js";
|
|
18
18
|
|
|
19
19
|
// src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts
|
|
20
20
|
init_esm_shims();
|
|
@@ -305,4 +305,4 @@ export {
|
|
|
305
305
|
migrateSettingsV1Document,
|
|
306
306
|
settings_v2_default
|
|
307
307
|
};
|
|
308
|
-
//# sourceMappingURL=chunk-
|
|
308
|
+
//# sourceMappingURL=chunk-GVYWZNRK.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
VERIFICATION_SCRIPT_FAMILY_HINT
|
|
4
|
+
} from "./chunk-M4KFUXS7.js";
|
|
5
|
+
import {
|
|
6
|
+
typebox_exports
|
|
7
|
+
} from "./chunk-GH5ZR6JP.js";
|
|
8
|
+
import {
|
|
9
|
+
ToolNames
|
|
10
|
+
} from "./chunk-EHOSNVVM.js";
|
|
11
|
+
import {
|
|
12
|
+
StringEnum
|
|
13
|
+
} from "./chunk-5CMARGPF.js";
|
|
14
|
+
import {
|
|
15
|
+
init_esm_shims
|
|
16
|
+
} from "./chunk-ECBHH7LU.js";
|
|
17
|
+
|
|
18
|
+
// src/tools/verify/surface.ts
|
|
19
|
+
init_esm_shims();
|
|
20
|
+
var BROWSER_MODES = ["auto", "required", "off"];
|
|
21
|
+
function prepareVerifyArguments(args) {
|
|
22
|
+
if (!args || typeof args !== "object" || Array.isArray(args)) return args;
|
|
23
|
+
const next = { ...args };
|
|
24
|
+
if (typeof next.args === "string") {
|
|
25
|
+
try {
|
|
26
|
+
const parsed = JSON.parse(next.args);
|
|
27
|
+
if (Array.isArray(parsed)) next.args = parsed;
|
|
28
|
+
} catch {
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return next;
|
|
32
|
+
}
|
|
33
|
+
var verifyToolSurface = {
|
|
34
|
+
name: ToolNames.Verify,
|
|
35
|
+
description: 'Run a declared verification check: no arguments lists package scripts and .clio-coder/verifiers.yaml entries, check=<id> runs one, and check="frontend" with path validates an HTML/CSS/JS artifact.',
|
|
36
|
+
parameters: typebox_exports.Object({
|
|
37
|
+
check: typebox_exports.Optional(
|
|
38
|
+
typebox_exports.String({
|
|
39
|
+
description: `Check id, package script (${VERIFICATION_SCRIPT_FAMILY_HINT}), or "frontend"; omit to list.`
|
|
40
|
+
})
|
|
41
|
+
),
|
|
42
|
+
path: typebox_exports.Optional(typebox_exports.String({ description: "frontend: artifact file under the workspace root." })),
|
|
43
|
+
args: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String(), { description: "Package scripts only: arguments after --." })),
|
|
44
|
+
browser: typebox_exports.Optional(StringEnum(BROWSER_MODES, { description: "frontend: headless browser mode (default auto)." })),
|
|
45
|
+
cwd: typebox_exports.Optional(typebox_exports.String({ description: "Package scripts only: working directory." })),
|
|
46
|
+
timeout_ms: typebox_exports.Optional(typebox_exports.Number({ description: "Package and frontend checks only: timeout in ms." })),
|
|
47
|
+
max_output_bytes: typebox_exports.Optional(typebox_exports.Number({ description: "Output cap in bytes (default 600000)." }))
|
|
48
|
+
}),
|
|
49
|
+
baseActionClass: "execute",
|
|
50
|
+
executionMode: "sequential",
|
|
51
|
+
prepareArguments: prepareVerifyArguments
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
BROWSER_MODES,
|
|
56
|
+
prepareVerifyArguments,
|
|
57
|
+
verifyToolSurface
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=chunk-GXCCHKN6.js.map
|