@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
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
resolvePathBoundary
|
|
8
|
-
} from "./chunk-HHV2GANA.js";
|
|
3
|
+
projectSurfaceTrust,
|
|
4
|
+
safetySurfaceTrustHash,
|
|
5
|
+
workspaceTrustDirectory
|
|
6
|
+
} from "./chunk-NTK3WTHM.js";
|
|
9
7
|
import {
|
|
10
8
|
classify
|
|
11
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LUL5Z66S.js";
|
|
12
10
|
import {
|
|
13
11
|
extractCommandCdTargets,
|
|
14
12
|
extractCommandDeleteTargets,
|
|
@@ -16,32 +14,39 @@ import {
|
|
|
16
14
|
inlineShellScript,
|
|
17
15
|
invokesClioSkillMutation,
|
|
18
16
|
scanShellLike
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import {
|
|
21
|
-
artifactDefaultPath
|
|
22
|
-
} from "./chunk-GYV6VZOC.js";
|
|
17
|
+
} from "./chunk-M6TAYK66.js";
|
|
23
18
|
import {
|
|
24
19
|
canonicalizeExistingPath
|
|
25
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-KQ6IDQIB.js";
|
|
21
|
+
import {
|
|
22
|
+
loadProjectVerifierCatalog
|
|
23
|
+
} from "./chunk-MDU3C27C.js";
|
|
24
|
+
import {
|
|
25
|
+
pathBoundaryCovers,
|
|
26
|
+
resolvePathBoundary
|
|
27
|
+
} from "./chunk-R2P2U3ZS.js";
|
|
28
|
+
import {
|
|
29
|
+
artifactDefaultPath
|
|
30
|
+
} from "./chunk-NTTS3O53.js";
|
|
26
31
|
import {
|
|
27
32
|
ToolNames
|
|
28
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-EHOSNVVM.js";
|
|
29
34
|
import {
|
|
30
35
|
foreignAgentDirs
|
|
31
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-5CY4Q6QI.js";
|
|
32
37
|
import {
|
|
33
38
|
resolvePackageRoot
|
|
34
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-E3LEPLQ2.js";
|
|
35
40
|
import {
|
|
36
41
|
require_dist
|
|
37
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-B5GGDIHT.js";
|
|
38
43
|
import {
|
|
39
44
|
clioConfigDir
|
|
40
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-CTTI7G3T.js";
|
|
41
46
|
import {
|
|
42
47
|
__toESM,
|
|
43
48
|
init_esm_shims
|
|
44
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-ECBHH7LU.js";
|
|
45
50
|
|
|
46
51
|
// src/domains/safety/path-policy.ts
|
|
47
52
|
init_esm_shims();
|
|
@@ -149,6 +154,7 @@ function normalizeSeparators(value) {
|
|
|
149
154
|
// src/domains/safety/policy-engine.ts
|
|
150
155
|
init_esm_shims();
|
|
151
156
|
import { createHash as createHash2 } from "node:crypto";
|
|
157
|
+
import { readFileSync as readFileSync3 } from "node:fs";
|
|
152
158
|
import path4 from "node:path";
|
|
153
159
|
|
|
154
160
|
// src/domains/safety/default-path-policy.ts
|
|
@@ -212,8 +218,10 @@ var DEFAULT_DAMAGE_CONTROL_PATH_POLICY = {
|
|
|
212
218
|
// widen its own permissions in two tool calls. Both are authored by the
|
|
213
219
|
// operator through the CLI (`clio-coder verifiers author` lands nothing
|
|
214
220
|
// before `--yes`), so model-side writes and deletes are refused.
|
|
221
|
+
// Skills also refuse model-side writes and deletes; installs go through `clio-coder skills install`.
|
|
215
222
|
".clio-coder/safety.yaml",
|
|
216
223
|
".clio-coder/verifiers.yaml",
|
|
224
|
+
".clio-coder/skills/",
|
|
217
225
|
"/etc/",
|
|
218
226
|
"/usr/",
|
|
219
227
|
"/bin/",
|
|
@@ -267,12 +275,20 @@ function mergePathPolicyInputs(base, override) {
|
|
|
267
275
|
noDeletePaths: [...base.noDeletePaths ?? [], ...override.noDeletePaths ?? []]
|
|
268
276
|
};
|
|
269
277
|
}
|
|
278
|
+
var OPERATOR_PATH_POLICY = {
|
|
279
|
+
zeroAccessPaths: DEFAULT_DAMAGE_CONTROL_PATH_POLICY.zeroAccessPaths?.filter((entry) => entry.startsWith("~/")) ?? [],
|
|
280
|
+
readOnlyPaths: DEFAULT_DAMAGE_CONTROL_PATH_POLICY.readOnlyPaths?.filter(
|
|
281
|
+
(entry) => entry.startsWith("~/") || entry.startsWith("/") || entry.startsWith(".clio-coder/")
|
|
282
|
+
) ?? [],
|
|
283
|
+
noWritePaths: DEFAULT_DAMAGE_CONTROL_PATH_POLICY.noWritePaths ?? [],
|
|
284
|
+
noDeletePaths: DEFAULT_DAMAGE_CONTROL_PATH_POLICY.noDeletePaths?.filter((entry) => entry.startsWith("~/")) ?? []
|
|
285
|
+
};
|
|
270
286
|
|
|
271
287
|
// src/domains/safety/project-policy.ts
|
|
272
288
|
init_esm_shims();
|
|
273
289
|
var import_yaml = __toESM(require_dist(), 1);
|
|
274
290
|
import { createHash } from "node:crypto";
|
|
275
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
291
|
+
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
276
292
|
import path2 from "node:path";
|
|
277
293
|
var POLICY_RELATIVE_PATH = path2.join(".clio-coder", "safety.yaml");
|
|
278
294
|
var ACTION_CLASSES = /* @__PURE__ */ new Set([
|
|
@@ -313,7 +329,7 @@ function projectSafetyPolicyPath(cwd = process.cwd()) {
|
|
|
313
329
|
}
|
|
314
330
|
}
|
|
315
331
|
function loadProjectSafetyPolicy(cwd = process.cwd()) {
|
|
316
|
-
|
|
332
|
+
let policyPath = projectSafetyPolicyPath(cwd);
|
|
317
333
|
if (policyPath === null) {
|
|
318
334
|
return {
|
|
319
335
|
path: null,
|
|
@@ -327,6 +343,7 @@ function loadProjectSafetyPolicy(cwd = process.cwd()) {
|
|
|
327
343
|
}
|
|
328
344
|
let raw;
|
|
329
345
|
try {
|
|
346
|
+
policyPath = realpathSync(policyPath);
|
|
330
347
|
raw = readFileSync(policyPath, "utf8");
|
|
331
348
|
} catch (err) {
|
|
332
349
|
return {
|
|
@@ -770,13 +787,38 @@ function expandHome(value) {
|
|
|
770
787
|
return value === "~" ? homedir2() : value.startsWith("~/") ? path3.join(homedir2(), value.slice(2)) : value;
|
|
771
788
|
}
|
|
772
789
|
|
|
790
|
+
// src/domains/safety/workspace-trust.ts
|
|
791
|
+
init_esm_shims();
|
|
792
|
+
function gateProjectSafetyPolicy(workspaceRoot, policy) {
|
|
793
|
+
if (policy.path === null) return policy;
|
|
794
|
+
const trustVerdict = policy.hash === null ? "untrusted" : projectSurfaceTrust(workspaceRoot, "safety", safetySurfaceTrustHash(policy.path, policy.hash));
|
|
795
|
+
if (trustVerdict === "trusted") return { ...policy, trustVerdict };
|
|
796
|
+
return {
|
|
797
|
+
...policy,
|
|
798
|
+
trustVerdict,
|
|
799
|
+
// This is the admitted empty policy, whose execution defaults are valid.
|
|
800
|
+
// Unapproved parse failures retain diagnostics below but cannot acquire the
|
|
801
|
+
// authority to block execution. An approved malformed policy stays invalid.
|
|
802
|
+
valid: true,
|
|
803
|
+
commands: [],
|
|
804
|
+
pathPolicy: {},
|
|
805
|
+
disableDefaultPathPolicy: false,
|
|
806
|
+
errors: [
|
|
807
|
+
...policy.errors,
|
|
808
|
+
`${policy.path} is ${trustVerdict}; project safety ignored. Review with clio-coder config trust safety.`
|
|
809
|
+
]
|
|
810
|
+
};
|
|
811
|
+
}
|
|
812
|
+
|
|
773
813
|
// src/domains/safety/policy-engine.ts
|
|
774
814
|
var BUILTIN_ALLOWLIST = [
|
|
775
815
|
{ id: "builtin:pwd", re: /^pwd$/ },
|
|
776
816
|
{ id: "builtin:ls", re: /^ls(?:\s+(-[A-Za-z0-9]+|\.[/\w.-]*|[/\w.-]+))*$/ },
|
|
777
817
|
{ id: "builtin:git-status", re: /^git\s+status(?:\s+--short|\s+--branch|\s+-sb)*$/ },
|
|
778
818
|
{ id: "builtin:git-diff", re: /^git\s+diff(?:\s+--cached|\s+--stat|\s+--name-only|\s+--\s+[\w./-]+)*$/ },
|
|
779
|
-
{ id: "builtin:git-log", re: /^git\s+log\s+--oneline(?:\s+-n\s+[1-9]\d{0,2})?(?:\s+--\s+[\w./-]+)?$/ }
|
|
819
|
+
{ id: "builtin:git-log", re: /^git\s+log\s+--oneline(?:\s+-n\s+[1-9]\d{0,2})?(?:\s+--\s+[\w./-]+)?$/ }
|
|
820
|
+
];
|
|
821
|
+
var PROJECT_SCRIPT_COMMANDS = [
|
|
780
822
|
{ id: "builtin:npm-test", re: /^npm\s+(?:test|run\s+test)(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
|
|
781
823
|
{ id: "builtin:npm-lint", re: /^npm\s+run\s+lint(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
|
|
782
824
|
{ id: "builtin:npm-build", re: /^npm\s+run\s+build(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
|
|
@@ -821,10 +863,13 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
821
863
|
const writeRoots = (options.writeRoots ?? []).map((root) => resolvePathBoundary(writeRootCwd, root));
|
|
822
864
|
const skillRoots = activeClioSkillRoots(cwd);
|
|
823
865
|
const packs = options.rulePacks ?? getCachedDefaultRulePacks();
|
|
824
|
-
const projectPolicy = options.projectPolicy ?? loadProjectSafetyPolicy(cwd);
|
|
825
|
-
const projectPolicyRoot = projectPolicy.path === null ? cwd : path4.dirname(path4.dirname(
|
|
866
|
+
const projectPolicy = options.projectPolicy ?? gateProjectSafetyPolicy(cwd, loadProjectSafetyPolicy(cwd));
|
|
867
|
+
const projectPolicyRoot = projectPolicy.path === null ? cwd : path4.dirname(path4.dirname(path4.resolve(projectPolicy.path)));
|
|
826
868
|
const pathPolicyInput = projectPolicy.disableDefaultPathPolicy ? projectPolicy.pathPolicy : mergePathPolicyInputs(DEFAULT_DAMAGE_CONTROL_PATH_POLICY, projectPolicy.pathPolicy);
|
|
827
|
-
const expandedDefaults =
|
|
869
|
+
const expandedDefaults = mergePathPolicyInputs(mergePathPolicyInputs(pathPolicyInput, OPERATOR_PATH_POLICY), {
|
|
870
|
+
zeroAccessPaths: clioCredentialStorePaths(),
|
|
871
|
+
readOnlyPaths: [...clioSkillsRootPaths(), path4.join(clioConfigDir(), "settings.yaml"), workspaceTrustDirectory()]
|
|
872
|
+
});
|
|
828
873
|
const pathPolicy = compilePathPolicy(expandedDefaults, projectPolicyRoot);
|
|
829
874
|
const zeroAccessPolicy = {
|
|
830
875
|
root: pathPolicy.root,
|
|
@@ -885,6 +930,27 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
885
930
|
return blockDecision(base, blockInput);
|
|
886
931
|
}
|
|
887
932
|
const mutationCommand = call.tool === ToolNames.Bash ? command : catalogCommand;
|
|
933
|
+
if (mutationCommand !== null && invokesTrustMutation(mutationCommand)) {
|
|
934
|
+
return blockDecision(base, {
|
|
935
|
+
reasonCode: "trust-authority",
|
|
936
|
+
ruleId: "trust-authority",
|
|
937
|
+
reasons: ["workspace trust grants require the operator CLI"],
|
|
938
|
+
policySource: "builtin-classifier"
|
|
939
|
+
});
|
|
940
|
+
}
|
|
941
|
+
if (skillMutationReason(
|
|
942
|
+
[path4.join(clioConfigDir(), "settings.yaml"), workspaceTrustDirectory()],
|
|
943
|
+
pathPolicyTargets(catalogCommand === null ? call : { tool: ToolNames.Bash, args: { command: catalogCommand } }),
|
|
944
|
+
callCwd,
|
|
945
|
+
mutationCommand
|
|
946
|
+
) !== null) {
|
|
947
|
+
return blockDecision(base, {
|
|
948
|
+
reasonCode: "path-policy:readOnlyPaths",
|
|
949
|
+
ruleId: "path-policy:readOnlyPaths",
|
|
950
|
+
reasons: ["Clio settings and workspace trust records are operator-owned and cannot be mutated by tools"],
|
|
951
|
+
policySource: "builtin-classifier"
|
|
952
|
+
});
|
|
953
|
+
}
|
|
888
954
|
const skillReason = mutationCommand !== null && invokesClioSkillMutation(mutationCommand) ? "skill installation and updates require the operator CLI or an explicit operator install choice; draft outside active skill roots" : skillMutationReason(
|
|
889
955
|
skillRoots,
|
|
890
956
|
pathPolicyTargets(catalogCommand === null ? call : { tool: ToolNames.Bash, args: { command: catalogCommand } }),
|
|
@@ -955,8 +1021,25 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
955
1021
|
};
|
|
956
1022
|
return posture === "confirmed" ? allowDecision(base, input) : askDecision(base, input);
|
|
957
1023
|
}
|
|
958
|
-
|
|
959
|
-
|
|
1024
|
+
const packageCommand = call.tool === ToolNames.Verify && catalogCheck === null && typeof call.args?.check === "string" && call.args.check !== "frontend" ? `npm run ${call.args.check}` : null;
|
|
1025
|
+
if ((call.tool === ToolNames.Bash || catalogCheck !== null || packageCommand !== null) && classification.actionClass === "execute") {
|
|
1026
|
+
const bash = evaluateBashPolicy(
|
|
1027
|
+
catalogCheck?.command ?? packageCommand ?? command ?? "",
|
|
1028
|
+
catalogCheck === null ? callCwd : path4.resolve(cwd, catalogCheck.cwd),
|
|
1029
|
+
cwd,
|
|
1030
|
+
posture,
|
|
1031
|
+
projectPolicy
|
|
1032
|
+
);
|
|
1033
|
+
if ((catalogCheck !== null || packageCommand !== null) && bash.kind === "allow" && bash.execRecognition !== "recognized" && posture !== "confirmed") {
|
|
1034
|
+
return askDecision(base, {
|
|
1035
|
+
...bash,
|
|
1036
|
+
reasonCode: "project-verifier-confirm",
|
|
1037
|
+
reasons: [
|
|
1038
|
+
...bash.reasons,
|
|
1039
|
+
`Repository verifier requires confirmation or an approved safety declaration: ${catalogCommand ?? packageCommand}`
|
|
1040
|
+
]
|
|
1041
|
+
});
|
|
1042
|
+
}
|
|
960
1043
|
if (bash.kind === "block") return blockDecision(base, bash);
|
|
961
1044
|
if (bash.kind === "ask") return askDecision(base, bash);
|
|
962
1045
|
return allowDecision(base, bash);
|
|
@@ -968,15 +1051,7 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
968
1051
|
};
|
|
969
1052
|
if (hit?.match.ruleId !== void 0) allowInput.ruleId = hit.match.ruleId;
|
|
970
1053
|
if (hit?.match !== void 0) allowInput.match = hit.match;
|
|
971
|
-
if (classification.actionClass === "execute")
|
|
972
|
-
allowInput.execRecognition = catalogCheck === null ? "recognized" : "unrecognized";
|
|
973
|
-
if (catalogCheck !== null) {
|
|
974
|
-
allowInput.reasons = [
|
|
975
|
-
...allowInput.reasons,
|
|
976
|
-
`project verifier '${catalogCheck.id}' runs declared argv: ${catalogCommand ?? ""}`
|
|
977
|
-
];
|
|
978
|
-
}
|
|
979
|
-
}
|
|
1054
|
+
if (classification.actionClass === "execute") allowInput.execRecognition = "recognized";
|
|
980
1055
|
return allowDecision(base, allowInput);
|
|
981
1056
|
},
|
|
982
1057
|
metadata() {
|
|
@@ -989,6 +1064,8 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
989
1064
|
projectPolicyHash: projectPolicy.hash,
|
|
990
1065
|
projectPolicyValid: projectPolicy.valid,
|
|
991
1066
|
projectPolicyErrors: [...projectPolicy.errors, ...pathPolicy.diagnostics],
|
|
1067
|
+
disableDefaultPathPolicy: projectPolicy.disableDefaultPathPolicy,
|
|
1068
|
+
workspaceTrustVerdict: projectPolicy.trustVerdict ?? "trusted",
|
|
992
1069
|
cwd
|
|
993
1070
|
};
|
|
994
1071
|
}
|
|
@@ -1001,6 +1078,13 @@ function clioCredentialStorePaths() {
|
|
|
1001
1078
|
return [];
|
|
1002
1079
|
}
|
|
1003
1080
|
}
|
|
1081
|
+
function clioSkillsRootPaths() {
|
|
1082
|
+
try {
|
|
1083
|
+
return [path4.join(clioConfigDir(), "skills")];
|
|
1084
|
+
} catch {
|
|
1085
|
+
return [];
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1004
1088
|
var SAFE_PRESENCE_RE = /^\s*grep\s+(?:-(?:q|sq|qs)\s+)('[^']*'|"[^"]*"|\S+)\s+\S+\s*$/;
|
|
1005
1089
|
function isSafePresenceCheck(command) {
|
|
1006
1090
|
const match = SAFE_PRESENCE_RE.exec(command);
|
|
@@ -1080,7 +1164,18 @@ function pathPolicyTargets(call) {
|
|
|
1080
1164
|
return [];
|
|
1081
1165
|
}
|
|
1082
1166
|
}
|
|
1083
|
-
function evaluateBashPolicy(
|
|
1167
|
+
function evaluateBashPolicy(input, callCwd, workspaceRoot, posture, policy) {
|
|
1168
|
+
if (typeof input !== "string" && !input.every((arg) => /^[\w=./:-]+$/u.test(arg))) {
|
|
1169
|
+
return {
|
|
1170
|
+
kind: posture === "confirmed" ? "allow" : "ask",
|
|
1171
|
+
ruleId: "verify-unrecognized-argv",
|
|
1172
|
+
reasonCode: "verify-unrecognized-argv",
|
|
1173
|
+
reasons: ["project verifier argv is outside the bare-word no-prompt command set"],
|
|
1174
|
+
policySource: "builtin-command-allowlist",
|
|
1175
|
+
execRecognition: "unrecognized"
|
|
1176
|
+
};
|
|
1177
|
+
}
|
|
1178
|
+
const command = typeof input === "string" ? input : input.join(" ");
|
|
1084
1179
|
if (command.trim().length === 0) {
|
|
1085
1180
|
return {
|
|
1086
1181
|
kind: "block",
|
|
@@ -1090,6 +1185,16 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
|
|
|
1090
1185
|
policySource: "builtin-command-allowlist"
|
|
1091
1186
|
};
|
|
1092
1187
|
}
|
|
1188
|
+
if (typeof input === "string" && (/\$(?:[A-Za-z_{0-9@*#?!-])/.test(command) || /(?:^|[\s;&|])(?:python[\d.]*|node|ruby|perl|php|lua)\s+(?:[^\n]*?\s)?-[ce]\b/.test(command)) && posture !== "confirmed") {
|
|
1189
|
+
return {
|
|
1190
|
+
kind: "ask",
|
|
1191
|
+
reasonCode: "bash-hidden-content",
|
|
1192
|
+
ruleId: "bash-hidden-content",
|
|
1193
|
+
reasons: ["shell variables or interpreter source hide paths from the safety scan and require one-shot confirmation"],
|
|
1194
|
+
policySource: "builtin-command-allowlist",
|
|
1195
|
+
execRecognition: "unrecognized"
|
|
1196
|
+
};
|
|
1197
|
+
}
|
|
1093
1198
|
const projectMatch = matchingProjectCommand(policy, command, callCwd);
|
|
1094
1199
|
if (projectMatch) {
|
|
1095
1200
|
const base = {
|
|
@@ -1132,15 +1237,34 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
|
|
|
1132
1237
|
execRecognition: "unrecognized"
|
|
1133
1238
|
};
|
|
1134
1239
|
}
|
|
1240
|
+
if (PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(recognitionCommand))) {
|
|
1241
|
+
return {
|
|
1242
|
+
kind: posture === "confirmed" ? "allow" : "ask",
|
|
1243
|
+
reasonCode: "project-script-confirm",
|
|
1244
|
+
ruleId: "project-script-confirm",
|
|
1245
|
+
reasons: [
|
|
1246
|
+
"Repository-authored code requires one-shot confirmation or an operator-approved safety command declaration.",
|
|
1247
|
+
projectScriptPreview(recognitionCommand, callCwd)
|
|
1248
|
+
],
|
|
1249
|
+
policySource: "builtin-command-allowlist",
|
|
1250
|
+
execRecognition: "unrecognized"
|
|
1251
|
+
};
|
|
1252
|
+
}
|
|
1135
1253
|
const chain = recognizeCommandChain(recognitionCommand, callCwd, workspaceRoot, policy);
|
|
1136
1254
|
if (chain !== null) {
|
|
1137
1255
|
const chainReasons = [`every step of the && chain is recognized: ${chain.ruleIds.join(", ")}`];
|
|
1256
|
+
if (chain.requiresConfirmation) {
|
|
1257
|
+
for (const segment of recognitionCommand.split("&&").map((part) => part.trim())) {
|
|
1258
|
+
if (PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(segment)))
|
|
1259
|
+
chainReasons.push(projectScriptPreview(segment, callCwd));
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1138
1262
|
if (chain.requiresConfirmation && posture !== "confirmed") {
|
|
1139
1263
|
return {
|
|
1140
1264
|
kind: "ask",
|
|
1141
1265
|
ruleId: "bash-recognized-chain",
|
|
1142
1266
|
reasonCode: "bash-recognized-chain",
|
|
1143
|
-
reasons: [...chainReasons, "project policy requires confirmation for one step"],
|
|
1267
|
+
reasons: [...chainReasons, "repository code or project policy requires confirmation for one step"],
|
|
1144
1268
|
policySource: "builtin-command-allowlist",
|
|
1145
1269
|
execRecognition: "recognized"
|
|
1146
1270
|
};
|
|
@@ -1155,6 +1279,20 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
|
|
|
1155
1279
|
};
|
|
1156
1280
|
}
|
|
1157
1281
|
if (hasSequencingOperators(command)) {
|
|
1282
|
+
const scriptSegments = recognitionCommand.split(/&&|\|\||[;|\n]/).map((part) => part.trim()).filter((part) => PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(part)));
|
|
1283
|
+
if (scriptSegments.length > 0 && posture !== "confirmed") {
|
|
1284
|
+
return {
|
|
1285
|
+
kind: "ask",
|
|
1286
|
+
ruleId: "project-script-confirm",
|
|
1287
|
+
reasonCode: "project-script-confirm",
|
|
1288
|
+
reasons: [
|
|
1289
|
+
"Repository scripts in compound commands require one-shot confirmation",
|
|
1290
|
+
...scriptSegments.map((part) => projectScriptPreview(part, callCwd))
|
|
1291
|
+
],
|
|
1292
|
+
policySource: "builtin-command-allowlist",
|
|
1293
|
+
execRecognition: "unrecognized"
|
|
1294
|
+
};
|
|
1295
|
+
}
|
|
1158
1296
|
return {
|
|
1159
1297
|
kind: "allow",
|
|
1160
1298
|
ruleId: "bash-shell-operators",
|
|
@@ -1304,6 +1442,11 @@ function recognizeCommandChain(command, callCwd, workspaceRoot, policy) {
|
|
|
1304
1442
|
if (projectMatch.requireConfirmation) requiresConfirmation = true;
|
|
1305
1443
|
continue;
|
|
1306
1444
|
}
|
|
1445
|
+
if (PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(rendered))) {
|
|
1446
|
+
ruleIds.push("project-script-confirm");
|
|
1447
|
+
requiresConfirmation = true;
|
|
1448
|
+
continue;
|
|
1449
|
+
}
|
|
1307
1450
|
const builtin = BUILTIN_ALLOWLIST.find((entry) => entry.re.test(rendered));
|
|
1308
1451
|
if (builtin === void 0) return null;
|
|
1309
1452
|
ruleIds.push(builtin.id);
|
|
@@ -1338,7 +1481,13 @@ function cwdArg(args, fallback) {
|
|
|
1338
1481
|
const resolved = typeof args?.cwd === "string" && args.cwd.length > 0 ? path4.resolve(fallback, args.cwd) : fallback;
|
|
1339
1482
|
return canonicalizeExistingPath(resolved);
|
|
1340
1483
|
}
|
|
1341
|
-
var CONTENT_BEARING_TOOLS = /* @__PURE__ */ new Set([
|
|
1484
|
+
var CONTENT_BEARING_TOOLS = /* @__PURE__ */ new Set([
|
|
1485
|
+
ToolNames.Write,
|
|
1486
|
+
ToolNames.Edit,
|
|
1487
|
+
ToolNames.Artifact,
|
|
1488
|
+
ToolNames.Dispatch,
|
|
1489
|
+
ToolNames.Tasks
|
|
1490
|
+
]);
|
|
1342
1491
|
function damageControlScan(call) {
|
|
1343
1492
|
if (!CONTENT_BEARING_TOOLS.has(call.tool)) return serializeArgs(call.args);
|
|
1344
1493
|
const pathArg2 = call.args?.path;
|
|
@@ -1389,10 +1538,30 @@ function packPayload(rules) {
|
|
|
1389
1538
|
...rule.ask !== void 0 ? { ask: rule.ask } : {}
|
|
1390
1539
|
}));
|
|
1391
1540
|
}
|
|
1541
|
+
function invokesTrustMutation(command) {
|
|
1542
|
+
const words = scanShellLike(command).filter((token) => !token.operator).map((token) => token.value);
|
|
1543
|
+
return words.some((word, index) => word === "config" && words[index + 1] === "trust") || /\bconfig\s+trust\b/.test(inlineShellScript(command) ?? "");
|
|
1544
|
+
}
|
|
1545
|
+
function projectScriptPreview(command, cwd) {
|
|
1546
|
+
const match = /^npm\s+(?:run\s+)?([\w:-]+)/.exec(command);
|
|
1547
|
+
if (match) {
|
|
1548
|
+
try {
|
|
1549
|
+
const manifest = JSON.parse(readFileSync3(path4.join(cwd, "package.json"), "utf8"));
|
|
1550
|
+
const name = match[1] ?? "test";
|
|
1551
|
+
const scripts = [`pre${name}`, name, `post${name}`].flatMap(
|
|
1552
|
+
(key) => typeof manifest.scripts?.[key] === "string" ? [`${key}: ${manifest.scripts[key]}`] : []
|
|
1553
|
+
);
|
|
1554
|
+
return `package.json scripts (repository data): ${scripts.join("; ") || "no script resolved"}`;
|
|
1555
|
+
} catch {
|
|
1556
|
+
return "package.json script body could not be resolved; repository code will execute.";
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1559
|
+
return `Repository command: ${command}. Its test/build files and dependencies execute with the child process permissions.`;
|
|
1560
|
+
}
|
|
1392
1561
|
|
|
1393
1562
|
export {
|
|
1394
1563
|
formatModelRejection,
|
|
1395
1564
|
WRITE_ROOT_REFUSED_TOOLS,
|
|
1396
1565
|
createSafetyPolicyEngine
|
|
1397
1566
|
};
|
|
1398
|
-
//# sourceMappingURL=chunk-
|
|
1567
|
+
//# sourceMappingURL=chunk-4SVIVOMC.js.map
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
isSecretArgKey
|
|
4
|
+
} from "./chunk-EFSEIZE6.js";
|
|
2
5
|
import {
|
|
3
6
|
gitCommitAttributionEnabled,
|
|
4
7
|
reportCommitAttributionDiagnostic,
|
|
5
8
|
withManagedGitCommitAttributionEnvironment
|
|
6
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LTR5QCLS.js";
|
|
7
10
|
import {
|
|
8
11
|
clampTimerDelayMs
|
|
9
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-6EXUUOSN.js";
|
|
10
13
|
import {
|
|
11
14
|
AI_AGENT_NAME
|
|
12
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZTNFYMIO.js";
|
|
13
16
|
import {
|
|
14
17
|
init_esm_shims
|
|
15
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-ECBHH7LU.js";
|
|
16
19
|
|
|
17
20
|
// src/core/bash-exec.ts
|
|
18
21
|
init_esm_shims();
|
|
19
22
|
import { spawn } from "node:child_process";
|
|
20
23
|
import { StringDecoder } from "node:string_decoder";
|
|
21
24
|
var BASH_HARD_CAP_BYTES = 16 * 1024 * 1024;
|
|
22
|
-
var CLIO_CONTROL_ENV_KEYS = ["CLIO_CODER_INTERACTIVE"];
|
|
25
|
+
var CLIO_CONTROL_ENV_KEYS = ["CLIO_CODER_INTERACTIVE", "BASH_ENV", "ENV"];
|
|
23
26
|
var BASH_UPDATE_THROTTLE_MS = 100;
|
|
24
27
|
var SYSTEM_PROGRESS_SCHEDULER = {
|
|
25
28
|
now: Date.now,
|
|
@@ -107,8 +110,10 @@ function createBashOutputProgressController(onUpdate, scheduler = SYSTEM_PROGRES
|
|
|
107
110
|
}
|
|
108
111
|
};
|
|
109
112
|
}
|
|
110
|
-
function buildToolEnv() {
|
|
111
|
-
const env = { ...
|
|
113
|
+
function buildToolEnv(source = process.env) {
|
|
114
|
+
const env = { ...source };
|
|
115
|
+
for (const key of Object.keys(env))
|
|
116
|
+
if (isSecretArgKey(key) || key.startsWith("BASH_FUNC_")) Reflect.deleteProperty(env, key);
|
|
112
117
|
env.AI_AGENT = AI_AGENT_NAME;
|
|
113
118
|
for (const key of CLIO_CONTROL_ENV_KEYS) {
|
|
114
119
|
Reflect.deleteProperty(env, key);
|
|
@@ -155,12 +160,8 @@ function captureLoginEnv() {
|
|
|
155
160
|
async function bashSpawnPlan() {
|
|
156
161
|
loginEnvCapture ??= captureLoginEnv();
|
|
157
162
|
const captured = await loginEnvCapture;
|
|
158
|
-
if (captured === null) return { mode: "-
|
|
159
|
-
const env = { ...process.env, ...captured };
|
|
160
|
-
env.AI_AGENT = AI_AGENT_NAME;
|
|
161
|
-
for (const key of CLIO_CONTROL_ENV_KEYS) {
|
|
162
|
-
Reflect.deleteProperty(env, key);
|
|
163
|
-
}
|
|
163
|
+
if (captured === null) return { mode: "-c", env: buildToolEnv() };
|
|
164
|
+
const env = buildToolEnv({ ...process.env, ...captured });
|
|
164
165
|
return { mode: "-c", env };
|
|
165
166
|
}
|
|
166
167
|
function combineBashOutput(result) {
|
|
@@ -182,6 +183,7 @@ async function runBashCommand(command, options = {}) {
|
|
|
182
183
|
let timeoutId = null;
|
|
183
184
|
let killGraceTimer = null;
|
|
184
185
|
let killSent = false;
|
|
186
|
+
let pendingClose = null;
|
|
185
187
|
const output = createBashOutputProgressController(options.onUpdate);
|
|
186
188
|
const child = spawn("/bin/bash", [plan.mode, command], {
|
|
187
189
|
...options.cwd === void 0 ? {} : { cwd: options.cwd },
|
|
@@ -206,12 +208,37 @@ async function runBashCommand(command, options = {}) {
|
|
|
206
208
|
}
|
|
207
209
|
child.kill(signalName);
|
|
208
210
|
};
|
|
211
|
+
const hasOwnedProcesses = () => {
|
|
212
|
+
const pid = child.pid;
|
|
213
|
+
if (pid === void 0) return false;
|
|
214
|
+
if (process.platform !== "win32") {
|
|
215
|
+
try {
|
|
216
|
+
process.kill(-pid, 0);
|
|
217
|
+
return true;
|
|
218
|
+
} catch (error) {
|
|
219
|
+
if (error.code === "EPERM") return true;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return child.exitCode === null && child.signalCode === null;
|
|
223
|
+
};
|
|
224
|
+
const resolveAfterCancellation = (result) => {
|
|
225
|
+
if (killGraceTimer !== null && hasOwnedProcesses()) {
|
|
226
|
+
pendingClose = () => resolve(result);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
clearKillGraceTimer();
|
|
230
|
+
resolve(result);
|
|
231
|
+
};
|
|
209
232
|
const killChild = () => {
|
|
210
233
|
if (killSent) return;
|
|
211
234
|
killSent = true;
|
|
212
235
|
sendSignal("SIGTERM");
|
|
213
236
|
killGraceTimer = setTimeout(() => {
|
|
214
|
-
|
|
237
|
+
killGraceTimer = null;
|
|
238
|
+
if (hasOwnedProcesses()) sendSignal("SIGKILL");
|
|
239
|
+
const finish = pendingClose;
|
|
240
|
+
pendingClose = null;
|
|
241
|
+
finish?.();
|
|
215
242
|
}, 5e3);
|
|
216
243
|
};
|
|
217
244
|
function onAbort() {
|
|
@@ -238,10 +265,9 @@ async function runBashCommand(command, options = {}) {
|
|
|
238
265
|
if (settled) return;
|
|
239
266
|
settled = true;
|
|
240
267
|
if (timeoutId) clearTimeout(timeoutId);
|
|
241
|
-
clearKillGraceTimer();
|
|
242
268
|
const finalOutput = output.settle();
|
|
243
269
|
options.signal?.removeEventListener("abort", onAbort);
|
|
244
|
-
|
|
270
|
+
resolveAfterCancellation({
|
|
245
271
|
error,
|
|
246
272
|
...finalOutput,
|
|
247
273
|
exitCode: null,
|
|
@@ -254,7 +280,6 @@ async function runBashCommand(command, options = {}) {
|
|
|
254
280
|
if (settled) return;
|
|
255
281
|
settled = true;
|
|
256
282
|
if (timeoutId) clearTimeout(timeoutId);
|
|
257
|
-
clearKillGraceTimer();
|
|
258
283
|
const finalOutput = output.settle();
|
|
259
284
|
options.signal?.removeEventListener("abort", onAbort);
|
|
260
285
|
const error = code === 0 && signalName === null ? null : {
|
|
@@ -263,7 +288,7 @@ async function runBashCommand(command, options = {}) {
|
|
|
263
288
|
code: code ?? void 0,
|
|
264
289
|
signal: signalName ?? void 0
|
|
265
290
|
};
|
|
266
|
-
|
|
291
|
+
resolveAfterCancellation({
|
|
267
292
|
error,
|
|
268
293
|
...finalOutput,
|
|
269
294
|
exitCode: code,
|
|
@@ -280,4 +305,4 @@ export {
|
|
|
280
305
|
combineBashOutput,
|
|
281
306
|
runBashCommand
|
|
282
307
|
};
|
|
283
|
-
//# sourceMappingURL=chunk-
|
|
308
|
+
//# sourceMappingURL=chunk-5A6XR3RJ.js.map
|