@iowarp/clio-coder 0.4.4 → 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 +92 -2
- package/CONTRIBUTING.md +25 -15
- package/README.md +340 -27
- package/dist/{acp-WNAYYF4F.js → acp-H3CU2HBQ.js} +25 -24
- package/dist/{agents-3OKXHLOI.js → agents-IXQQZ7BD.js} +77 -77
- package/dist/assets/codewiki.json +1 -1
- package/dist/{auth-VKNNMGPU.js → auth-R7KYF7N3.js} +38 -38
- package/dist/builtins-CRFDQUVP.js +22 -0
- package/dist/{chunk-TQAHXW6Y.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-JCI2ROMZ.js → chunk-3T4DXWP6.js} +7 -7
- package/dist/{chunk-DR52UMZW.js → chunk-3UW3KU4A.js} +2 -2
- package/dist/{chunk-6Q3CYFD3.js → chunk-4SVIVOMC.js} +184 -33
- package/dist/{chunk-W54I7H25.js → chunk-5A6XR3RJ.js} +44 -19
- package/dist/{chunk-YPC6ZR5L.js → chunk-5CMARGPF.js} +119 -5
- package/dist/{chunk-KXDSS5WJ.js → chunk-5CY4Q6QI.js} +4 -4
- package/dist/{chunk-I2DWJ4GM.js → chunk-5DDOTTG4.js} +54 -42
- package/dist/{chunk-D4CJV46V.js → chunk-5GZICIYO.js} +3 -3
- package/dist/{chunk-4IUZQIJ3.js → chunk-5PHVPU4G.js} +2 -2
- package/dist/{chunk-3ODX73FK.js → chunk-5VTJP36Q.js} +4 -4
- package/dist/{chunk-54X7T7DK.js → chunk-5ZMXGW7P.js} +79 -7
- package/dist/chunk-5ZSZEYJK.js +119 -0
- package/dist/{chunk-IXIY2H4R.js → chunk-633EXGZA.js} +5 -5
- package/dist/{chunk-CUSRQKPU.js → chunk-6CDNRHWH.js} +299 -89
- package/dist/{chunk-EBY63B7G.js → chunk-6EXUUOSN.js} +2 -2
- package/dist/{chunk-SVNXH4L2.js → chunk-6ICZKDUC.js} +2 -2
- package/dist/{chunk-JEIYHLOR.js → chunk-6SYEGZI3.js} +12 -12
- package/dist/{chunk-DQOVN6KV.js → chunk-6YA46L5A.js} +4 -4
- package/dist/{chunk-NZMNUPZZ.js → chunk-77CZRFTE.js} +3 -3
- package/dist/{chunk-6PAZTBPA.js → chunk-7HBHHVCK.js} +15 -6
- package/dist/{chunk-25QBEXRS.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-3UUXNFEX.js → chunk-7YJWEF2L.js} +61 -34
- 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-I5FWO7L5.js → chunk-B6UM3OZC.js} +2 -2
- package/dist/{chunk-2CU2H6KE.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-QZWQA4DE.js → chunk-CBSKDFWL.js} +3 -3
- package/dist/{chunk-2LEAKD4C.js → chunk-CKK25WN3.js} +3 -3
- package/dist/{chunk-BYP5D4HI.js → chunk-CTTI7G3T.js} +2 -2
- package/dist/{chunk-XAKHZX5N.js → chunk-CVDAFGPW.js} +4 -4
- package/dist/{chunk-RKKLTLYB.js → chunk-CXQ37WJH.js} +3 -3
- package/dist/{chunk-GTUD2WMY.js → chunk-DBREN25X.js} +44 -9
- package/dist/{chunk-YNFKXPEC.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-XULDXHTN.js → chunk-DRD2A54W.js} +102 -50
- 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-FEAXX7B6.js → chunk-EHCPSZJF.js} +4 -4
- package/dist/{chunk-4NSRCOYP.js → chunk-EHOSNVVM.js} +3 -2
- package/dist/{chunk-7UGL4MB5.js → chunk-EQEJJ53P.js} +10 -10
- package/dist/{chunk-GWZNEVM2.js → chunk-EWD5P3GK.js} +9 -9
- package/dist/{chunk-6UINWWS6.js → chunk-F34AR6O3.js} +14 -14
- package/dist/{chunk-GHS5EBTQ.js → chunk-FKIOX6DS.js} +29 -20
- package/dist/{chunk-HAXOFFRH.js → chunk-FQOOGXBH.js} +7 -7
- package/dist/{chunk-Y55JBDO5.js → chunk-FSTIBAGM.js} +38 -23
- package/dist/{chunk-ZTJUVLTU.js → chunk-FXFVDPWY.js} +2 -2
- package/dist/{chunk-XPLRXC72.js → chunk-GD55RTIW.js} +3 -3
- package/dist/{chunk-5B2AEOW5.js → chunk-GH5ZR6JP.js} +472 -472
- package/dist/{chunk-TOIVGRUX.js → chunk-GJ24ODAX.js} +5 -5
- package/dist/{chunk-QUFRYSWI.js → chunk-GNQRWTMY.js} +129 -48
- package/dist/{chunk-5ICU3EUH.js → chunk-GVYWZNRK.js} +5 -5
- package/dist/{chunk-GX5WYQO4.js → chunk-GXCCHKN6.js} +6 -6
- package/dist/{chunk-K6T2ZAMZ.js → chunk-HGSLRG33.js} +6 -6
- package/dist/{chunk-26QSH3EJ.js → chunk-HHVJNVUJ.js} +5 -5
- package/dist/{chunk-F4EKGO4N.js → chunk-HL26ADLH.js} +4 -2
- package/dist/{chunk-JT2RFCC5.js → chunk-HR3HPQ76.js} +5 -5
- package/dist/{chunk-ID64D7PE.js → chunk-HXHFDHB6.js} +24 -24
- package/dist/{chunk-ELWDPP3Y.js → chunk-I7VLWRK2.js} +8 -8
- package/dist/{chunk-6OSVSQL5.js → chunk-ICO4TQ2F.js} +7 -5
- package/dist/{chunk-SZAA6XDG.js → chunk-IFDRAD6F.js} +2 -2
- package/dist/{chunk-72YIHOZQ.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-AUPNRN7C.js → chunk-K2HL3GBL.js} +4 -4
- package/dist/{chunk-2ASED4PZ.js → chunk-K6RDB7IA.js} +26 -26
- package/dist/{chunk-FFUPXJC4.js → chunk-KDWLXVMN.js} +23 -24
- package/dist/{chunk-OZNBF4L3.js → chunk-KECNXMDE.js} +2 -2
- package/dist/{chunk-6QOTUPRG.js → chunk-KF6GFW6O.js} +66 -18
- package/dist/{chunk-BTK3SSSK.js → chunk-KMF54VH3.js} +2 -2
- package/dist/chunk-KPRLAMP4.js +32 -0
- package/dist/{chunk-ECH6PKUQ.js → chunk-KQ6IDQIB.js} +2 -2
- package/dist/{chunk-3UNOLWNZ.js → chunk-KTFSFCVN.js} +20 -9
- package/dist/{chunk-57XXR6DR.js → chunk-KYKNBD4Y.js} +24 -23
- package/dist/{chunk-IRXAATOX.js → chunk-L4N3DWNW.js} +3 -3
- package/dist/{chunk-LCGCVYZ4.js → chunk-LQTKDAUO.js} +2 -2
- package/dist/{chunk-U6TMQNSI.js → chunk-LTR5QCLS.js} +4 -4
- package/dist/chunk-LUL5Z66S.js +221 -0
- package/dist/{chunk-ELZVTCGV.js → chunk-LVFANMOH.js} +151 -327
- package/dist/{chunk-H7IXIC72.js → chunk-LY4N4TTL.js} +17 -3
- package/dist/{chunk-VKPAQYEB.js → chunk-LZBMXNLP.js} +5 -5
- package/dist/{chunk-UL3WSD3F.js → chunk-M4KFUXS7.js} +2 -2
- package/dist/{chunk-NXYCB2VD.js → chunk-M6TAYK66.js} +6 -6
- package/dist/{chunk-NEKRRTYW.js → chunk-MC3JSVR6.js} +2 -2
- package/dist/{chunk-CFGTUFWB.js → chunk-MCJKEGHO.js} +2 -2
- package/dist/{chunk-DXKJURES.js → chunk-MDU3C27C.js} +10 -7
- package/dist/{chunk-6XLNIQDB.js → chunk-MYI32N4R.js} +2 -2
- package/dist/{chunk-3GY4F45V.js → chunk-NC4KV7EL.js} +6 -6
- package/dist/{chunk-LLXSDWXS.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-RZDWV63N.js → chunk-NY6IWDVU.js} +6 -6
- package/dist/{chunk-XXYSBZIQ.js → chunk-O2RQ7LCK.js} +4 -4
- package/dist/{chunk-4BJ5BYCE.js → chunk-O3VV6IVK.js} +2 -2
- package/dist/{chunk-W6GROXXM.js → chunk-O5F25NIE.js} +2 -2
- package/dist/{chunk-NXIMQY5W.js → chunk-ODUTYZIU.js} +5 -5
- package/dist/{chunk-LTIKRKFL.js → chunk-ONRTXOZY.js} +4 -4
- package/dist/{chunk-KFV5L5SK.js → chunk-OQM5IVJY.js} +118 -232
- 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-RXTN6AKH.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-2DSOYNFC.js → chunk-R6MAYTMS.js} +7 -7
- package/dist/{chunk-JQLNNIKT.js → chunk-R6MICQYU.js} +6 -6
- package/dist/{chunk-NAI6ZFCY.js → chunk-RLTT5GVY.js} +122 -11
- package/dist/{chunk-DT3LWJOB.js → chunk-RXIOCVBZ.js} +24 -6
- package/dist/{chunk-N56KALIC.js → chunk-S32UQ5GL.js} +61 -34
- package/dist/{chunk-UEPWCCTY.js → chunk-SBZX6ARC.js} +12 -12
- package/dist/chunk-SD7SHNDW.js +15 -0
- package/dist/{chunk-NRO2BJRH.js → chunk-SDWNDICN.js} +10235 -4015
- 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-OMQNJVKW.js → chunk-SRZOW5L2.js} +43 -13
- package/dist/{chunk-3M6DQK6S.js → chunk-T334FW2H.js} +7 -7
- package/dist/{chunk-V76WTFTW.js → chunk-T52TPHYC.js} +6 -6
- package/dist/{chunk-I7XBWTYH.js → chunk-T53XI6I7.js} +5 -5
- package/dist/{chunk-2ZSONWVL.js → chunk-T7FDXNRU.js} +13 -13
- package/dist/{chunk-JSD46VO2.js → chunk-TEG3RYVZ.js} +43 -36
- package/dist/{chunk-3I7MS7N2.js → chunk-TK2BMCBZ.js} +2 -2
- package/dist/{chunk-5OIVVPHF.js → chunk-TN5FW4XY.js} +13 -6
- package/dist/{chunk-75W7L2E2.js → chunk-TZ7MFRG4.js} +1041 -162
- package/dist/{chunk-36CT5VVL.js → chunk-U2JOLB7O.js} +126 -77
- package/dist/{chunk-LL4KHSZI.js → chunk-U2MSJ57E.js} +2 -2
- package/dist/{chunk-FTMGRKEF.js → chunk-U44YYLVV.js} +4 -4
- package/dist/{chunk-YECAMM3D.js → chunk-U7H5WRG5.js} +5 -5
- package/dist/{chunk-RQCKCSRL.js → chunk-U7VQ4NI4.js} +22 -22
- package/dist/{chunk-5TUB6SLS.js → chunk-UFYNOQK4.js} +7 -7
- package/dist/{chunk-R346GLFC.js → chunk-UHW5V7HC.js} +2 -2
- package/dist/{chunk-USR47QNF.js → chunk-UL36QJX6.js} +14 -14
- package/dist/{chunk-VIA6RFQZ.js → chunk-UQIVHSE4.js} +4 -4
- package/dist/{chunk-RAY4OVGZ.js → chunk-URBGEOH3.js} +5 -5
- package/dist/chunk-USZA7GWL.js +341 -0
- package/dist/{chunk-YD5GIKET.js → chunk-UTUNT5QL.js} +48 -579
- package/dist/{chunk-ZA4VCIGV.js → chunk-UUQ5G6EZ.js} +60 -41
- package/dist/{chunk-23L32XTI.js → chunk-UXAC2FX4.js} +68 -39
- package/dist/{chunk-VG7TBQIY.js → chunk-V552WL53.js} +68 -4
- package/dist/{chunk-BWH6N36D.js → chunk-VHKTOLEW.js} +272 -42
- package/dist/{chunk-EXLD33WO.js → chunk-VLPTKCKT.js} +24 -9
- 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-S6PYF2XF.js → chunk-WFKDPU7U.js} +4 -4
- package/dist/{chunk-BJVFZO5U.js → chunk-WJIMKGD6.js} +7 -7
- package/dist/{chunk-5636DCO5.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-4M6Z5QVF.js → chunk-XXBQKW32.js} +11 -11
- package/dist/{chunk-OEJSLEPW.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-Q4WO54TA.js → chunk-ZMZQEBKI.js} +14 -14
- package/dist/{chunk-6EJMN2Y3.js → chunk-ZTNFYMIO.js} +2 -2
- package/dist/{chunk-WEPFGWHJ.js → chunk-ZZFWWYLX.js} +2 -2
- package/dist/cli/index.js +44 -44
- package/dist/clio-5I2IBFYL.js +26 -0
- package/dist/{code-nav-IJR2DBPR.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-2TGAI2RC.js → components-TNIKXCBH.js} +13 -13
- package/dist/{config-IUA6OYNS.js → config-Y2JDJ3JJ.js} +210 -124
- package/dist/configure-SML6UBZ5.js +55 -0
- package/dist/{context-4MPR7WKB.js → context-P5YSEO55.js} +125 -121
- package/dist/{context-2DKHWH2T.js → context-QQ53HSGJ.js} +91 -62
- package/dist/{context-BOYF5EJM.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-3I3FYX6Y.js → context-working-set-CNLSQN5K.js} +31 -31
- package/dist/detail-5572VLBO.js +114 -0
- package/dist/{dispatch-runner-RJ5I2F2O.js → dispatch-runner-FRHD6P2O.js} +191 -116
- package/dist/{docs-SPOV3BAN.js → docs-BL7ROUFN.js} +4 -4
- package/dist/{doctor-DKICC2SN.js → doctor-N3LCM2LG.js} +58 -58
- package/dist/{eval-OQOQUDHK.js → eval-BUU3ZOUZ.js} +473 -168
- package/dist/{eval-inventory-Y6QRFOH5.js → eval-inventory-QOYZERXJ.js} +7 -7
- package/dist/evidence-DTGEN456.js +224 -0
- package/dist/{evidence-4DQ25GUQ.js → evidence-SQ5DNFEN.js} +110 -94
- package/dist/{evolve-GSS52E5J.js → evolve-IJNUFZDS.js} +107 -91
- package/dist/{extensions-G7MFLYHT.js → extensions-YVRHX6ZI.js} +16 -16
- package/dist/{fleet-Q37YHHAQ.js → fleet-ZNNVSYFO.js} +147 -147
- package/dist/{fleet-commands-G7E4N7SM.js → fleet-commands-5YE7NPJL.js} +27 -26
- package/dist/{fleet-decisions-O7M6QBA2.js → fleet-decisions-3SBSCTCW.js} +16 -15
- package/dist/{fleet-graph-TOUBW6OW.js → fleet-graph-6HHPWF5T.js} +39 -38
- package/dist/{fleet-inspect-SW33JJNI.js → fleet-inspect-JEYMGCGC.js} +107 -91
- package/dist/{fleet-new-RDVJLHHH.js → fleet-new-RCKGSRDV.js} +3 -3
- package/dist/{fleet-preflight-CV2655TW.js → fleet-preflight-QRSHIIDE.js} +10 -9
- package/dist/{fleet-validate-KESZX2YH.js → fleet-validate-4PM4GDDL.js} +46 -42
- package/dist/{fleet-verify-UQPMTVE3.js → fleet-verify-NJDTHTO3.js} +105 -89
- package/dist/fleet-view-UP2BWQQY.js +117 -0
- package/dist/{init-PXEXQSBF.js → init-S3GZQ5ZF.js} +123 -123
- package/dist/{install-NKNG7KD4.js → install-3RZDDP23.js} +5 -5
- package/dist/{interop-ZG5T62U3.js → interop-YOTGXFJM.js} +25 -25
- package/dist/inventory-K2OZ36YJ.js +117 -0
- package/dist/{library-B2W4N74O.js → library-GJI6W6OK.js} +45 -44
- package/dist/{memory-YCANYS5A.js → memory-OQOXQGYD.js} +107 -93
- package/dist/{models-GERTU3YI.js → models-3IK2Y5WE.js} +63 -62
- package/dist/{monitor-CPNIUULB.js → monitor-FTJLTKCQ.js} +136 -107
- package/dist/{orchestrator-J4BSH4WQ.js → orchestrator-N47O7SFD.js} +1159 -697
- package/dist/{panes-BOHAEGYC.js → panes-7BTYH3XQ.js} +8 -8
- package/dist/{panes-NXSLDQZ2.js → panes-WPOMEMRH.js} +22 -22
- package/dist/{paths-VSUWNC22.js → paths-J3KN7UAO.js} +12 -12
- package/dist/preload-65U34NG6.js +115 -0
- package/dist/{registry-LG64LTF4.js → registry-DESGAXWK.js} +3 -3
- package/dist/{reset-TNWTB5LU.js → reset-MUVQDLNL.js} +20 -20
- package/dist/{resources-4PXNMD5G.js → resources-LM76COAO.js} +41 -40
- package/dist/{run-D6XJ34CN.js → run-3VFZQ33N.js} +162 -156
- package/dist/{share-2NWMJJEE.js → share-4JUB4BL7.js} +43 -42
- package/dist/{skills-KR7WON5G.js → skills-S36AAJHU.js} +47 -46
- package/dist/{skills-eval-O2ZNOLDS.js → skills-eval-G6T57L7M.js} +127 -107
- package/dist/{skills-inventory-ZZOUBK7O.js → skills-inventory-WLM46PJH.js} +41 -40
- package/dist/slash-commands-GBARG3Y7.js +91 -0
- package/dist/{steer-XA25PSCS.js → steer-S7D7IKPU.js} +7 -7
- package/dist/{support-7EMVWYG2.js → support-5VAEC32W.js} +14 -14
- package/dist/{targets-OMH2XCSN.js → targets-N5REUETU.js} +145 -94
- package/dist/tasks-6BVY5YZF.js +36 -0
- package/dist/{terminal-lease-C2J3JYRE.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-HALS6BLF.js → uninstall-FXYMFFRT.js} +17 -17
- package/dist/{upgrade-MS72RJEP.js → upgrade-4HD5HAIV.js} +40 -39
- package/dist/{usage-NHG6MCJM.js → usage-4GWM2WWP.js} +136 -105
- package/dist/{verifiers-7AUNVXDY.js → verifiers-GSKWKWVG.js} +28 -27
- package/dist/verify-3AS3ULCY.js +30 -0
- package/dist/{version-KGEG7EPO.js → version-RFPKO6T7.js} +4 -4
- package/dist/{web-fetch-V4FKSDAV.js → web-fetch-MQN4FH3X.js} +169 -18
- package/dist/wiki-generate-7BV7XWIY.js +614 -0
- package/dist/{with-panes-BDQEWBRT.js → with-panes-OFTNAR4Y.js} +34 -20
- package/dist/worker/entry.js +99 -88
- package/dist/{workspace-ZJ6BFM3Q.js → workspace-DZ7JADBG.js} +6 -6
- package/docs/README.md +7 -6
- package/docs/architecture/acp.md +10 -0
- package/docs/architecture/architecture.md +5 -5
- package/docs/architecture/context-engine.md +44 -59
- package/docs/architecture/context-working-set.md +7 -9
- package/docs/architecture/dispatch-architecture-rationale.md +1 -1
- package/docs/architecture/evidence-and-memory.md +10 -0
- package/docs/architecture/pi-boundary.md +37 -7
- package/docs/architecture/prompt-envelope-and-tools.md +7 -7
- package/docs/architecture/session-lifecycle.md +4 -4
- package/docs/architecture/worker-dispatch-mechanics.md +4 -0
- package/docs/guide/commands-and-modes.md +49 -36
- package/docs/guide/configuration-and-targets.md +7 -2
- package/docs/guide/configuration-reference.md +13 -3
- package/docs/guide/environment-variables.md +6 -2
- 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 +9 -2
- package/docs/process/development-pipeline.md +10 -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/release-cut-checklist.md +6 -6
- package/evals/README.md +4 -0
- package/evals/behavioral-corpus-grader.mjs +147 -14
- package/evals/behavioral-model-negative-control.yaml +1 -0
- package/evals/behavioral-model.yaml +266 -1
- package/evals/fixtures/docs-retrieval.json +102 -0
- package/evals/fixtures/scalar-decision.json +17 -0
- package/evals/fixtures/scout-citation-pipeline.json +55 -0
- package/evals/fixtures/source-explanation.json +74 -0
- package/evals/fixtures/tool-arguments.json +18 -0
- package/evals/fixtures/tool-surface/read.txt +4 -0
- package/evals/fixtures/tool-surface/subdir/keep.txt +1 -0
- package/evals/no-edit-memory-grader.mjs +149 -0
- package/evals/scalar-decision-grader.py +41 -0
- package/evals/scalar-decision-machinery.ts +145 -0
- package/evals/source-explanation-grader.mjs +118 -0
- package/evals/tool-surface-grader.mjs +53 -0
- package/evals/tool-surface-model.yaml +274 -0
- package/package.json +14 -14
- package/skills/README.md +6 -6
- package/skills/registry.yaml +1 -1
- package/skills/skill-marketplace.json +1 -1
- package/src/cli/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/context-map.ts +75 -14
- package/src/cli/context.ts +46 -17
- package/src/cli/eval.ts +17 -3
- package/src/cli/modes/print.ts +32 -4
- package/src/cli/run.ts +16 -14
- package/src/cli/skills-eval.ts +10 -8
- package/src/cli/steer-channel.ts +31 -18
- package/src/cli/targets.ts +83 -31
- package/src/cli/tasks.ts +10 -1
- package/src/cli/upgrade.ts +9 -6
- package/src/cli/usage.ts +24 -0
- package/src/cli/wiki-generate.ts +239 -96
- package/src/core/bash-exec.ts +43 -15
- package/src/core/bus-events.ts +15 -0
- package/src/core/config.ts +33 -14
- package/src/core/defaults.ts +5 -4
- package/src/core/file-references.ts +11 -1
- package/src/core/incomplete-installation.ts +3 -1
- package/src/core/settings-layers.ts +21 -5
- package/src/core/termination.ts +26 -9
- package/src/core/untrusted-content.ts +16 -0
- package/src/core/workspace-trust.ts +179 -0
- package/src/domains/agents/builtins/coder.md +4 -2
- package/src/domains/agents/builtins/context-bootstrap.md +3 -1
- package/src/domains/agents/builtins/documenter.md +7 -4
- package/src/domains/agents/builtins/researcher.md +1 -0
- package/src/domains/agents/builtins/scout.md +7 -1
- package/src/domains/agents/result-contract.ts +199 -26
- package/src/domains/context/bootstrap-prompt.ts +11 -9
- package/src/domains/context/bootstrap.ts +74 -39
- package/src/domains/context/clio-md.ts +88 -26
- package/src/domains/context/codewiki/build-operation.ts +121 -0
- package/src/domains/context/codewiki/build-worker-protocol.ts +37 -3
- package/src/domains/context/codewiki/build-worker.ts +3 -35
- package/src/domains/context/codewiki/coordinator.ts +36 -6
- package/src/domains/context/codewiki/indexer.ts +59 -19
- package/src/domains/context/contract.ts +6 -2
- package/src/domains/context/extension.ts +72 -10
- package/src/domains/context/fingerprint.ts +39 -34
- package/src/domains/context/index.ts +7 -1
- package/src/domains/context/prompt-context.ts +55 -14
- package/src/domains/context/refresh.ts +9 -57
- package/src/domains/context/wiki/assemble.ts +14 -10
- package/src/domains/context/wiki/evidence.ts +209 -0
- package/src/domains/context/wiki/generate.ts +201 -67
- package/src/domains/context/wiki/meta.ts +10 -2
- package/src/domains/context/wiki/plan-store.ts +70 -14
- package/src/domains/context/wiki/plan.ts +71 -14
- package/src/domains/context/wiki/prompts.ts +42 -1
- package/src/domains/context/wiki/source-content.ts +106 -0
- package/src/domains/context/wiki/staleness.ts +33 -22
- package/src/domains/context/working-set/contract.ts +8 -2
- package/src/domains/context/working-set/engine.ts +17 -4
- package/src/domains/context/working-set/fold.ts +15 -2
- package/src/domains/context/working-set/marker.ts +2 -1
- package/src/domains/context/working-set/project.ts +18 -7
- package/src/domains/context/working-set/recall.ts +82 -56
- package/src/domains/dispatch/active-route-planner.ts +6 -3
- package/src/domains/dispatch/admission-queue.ts +19 -7
- package/src/domains/dispatch/admission.ts +3 -3
- package/src/domains/dispatch/budget-envelope.ts +47 -82
- package/src/domains/dispatch/capacity-lease.ts +57 -19
- package/src/domains/dispatch/contract.ts +10 -2
- package/src/domains/dispatch/event-pump.ts +28 -7
- package/src/domains/dispatch/execution-role.ts +49 -2
- package/src/domains/dispatch/execution-scheduler.ts +2 -0
- package/src/domains/dispatch/extension.ts +190 -105
- package/src/domains/dispatch/fleet-run.ts +20 -0
- package/src/domains/dispatch/gate-role-prompts.ts +4 -2
- package/src/domains/dispatch/parallel-writers.ts +34 -0
- package/src/domains/dispatch/reservation-store.ts +8 -34
- package/src/domains/dispatch/route-approval.ts +3 -3
- package/src/domains/dispatch/route-observer.ts +4 -2
- package/src/domains/dispatch/route-quality.ts +6 -1
- package/src/domains/dispatch/types.ts +4 -3
- package/src/domains/dispatch/worker-spawn.ts +58 -21
- package/src/domains/dispatch/workspace-checkpoint.ts +57 -0
- package/src/domains/eval/compare/behavioral.ts +81 -14
- package/src/domains/eval/compare/compare.ts +15 -5
- package/src/domains/eval/compare/envelope.ts +12 -5
- package/src/domains/eval/metrics/context.ts +24 -1
- package/src/domains/eval/metrics/tracked.ts +4 -28
- package/src/domains/eval/reports/comparison.ts +9 -9
- package/src/domains/eval/runners/clio-run.ts +5 -1
- package/src/domains/eval/schema/suite.ts +2 -0
- package/src/domains/eval/schema/validate.ts +1 -0
- package/src/domains/eval/suites/run.ts +189 -13
- package/src/domains/eval/verifiers/integrity.ts +39 -0
- package/src/domains/eval/verifiers/patch.ts +58 -2
- package/src/domains/eval/workspaces/temp-copy.ts +3 -0
- package/src/domains/evidence/build.ts +4 -2
- package/src/domains/interop/registry.ts +2 -2
- package/src/domains/middleware/hooks-io.ts +45 -26
- package/src/domains/middleware/hooks.ts +6 -0
- package/src/domains/middleware/injection-screen.ts +23 -0
- package/src/domains/middleware/rules.ts +5 -1
- package/src/domains/middleware/stalled-turn.ts +18 -3
- package/src/domains/middleware/task-board-reminder.ts +4 -2
- package/src/domains/middleware/task-nudge.ts +4 -1
- package/src/domains/mux/contract.ts +34 -1
- package/src/domains/mux/dock-controller.ts +8 -1
- package/src/domains/mux/index.ts +1 -0
- package/src/domains/mux/socket-client.ts +13 -3
- package/src/domains/observability/contract.ts +2 -2
- package/src/domains/observability/projection.ts +30 -9
- package/src/domains/prompts/compiler.ts +10 -2
- package/src/domains/prompts/contract.ts +7 -4
- package/src/domains/prompts/extension.ts +28 -64
- package/src/domains/prompts/fragments/identity/clio.md +23 -0
- package/src/domains/prompts/fragments/operating/contract.md +10 -0
- package/src/domains/prompts/fragments/operating/delegation.md +5 -0
- package/src/domains/prompts/fragments/wiki/page.md +28 -15
- package/src/domains/prompts/fragments/wiki/plan.md +4 -4
- package/src/domains/prompts/preload-prefix.ts +31 -0
- package/src/domains/prompts/preload.ts +135 -61
- package/src/domains/providers/auth/backend-file.ts +15 -11
- package/src/domains/providers/auth/storage.ts +3 -5
- package/src/domains/providers/catalog.ts +18 -3
- package/src/domains/providers/runtime-resolution.ts +11 -9
- package/src/domains/providers/runtimes/cloud/openrouter.ts +2 -0
- package/src/domains/resources/skills/promotion.ts +8 -1
- package/src/domains/safety/action-classifier.ts +9 -0
- package/src/domains/safety/autonomy.ts +10 -1
- package/src/domains/safety/contract.ts +5 -1
- package/src/domains/safety/default-path-policy.ts +11 -0
- package/src/domains/safety/extension.ts +11 -2
- package/src/domains/safety/policy-engine.ts +189 -32
- package/src/domains/safety/project-policy.ts +7 -2
- package/src/domains/safety/workspace-trust.ts +43 -0
- package/src/domains/session/compaction/compact.ts +384 -21
- package/src/domains/session/compaction/cut-point.ts +42 -5
- package/src/domains/session/compaction/tokens.ts +9 -1
- package/src/domains/session/decision-board.ts +43 -33
- package/src/domains/session/entries.ts +169 -4
- package/src/domains/session/prompt-manifest.ts +47 -8
- package/src/domains/session/task-board.ts +21 -3
- package/src/domains/user-tasks/handoff.ts +16 -0
- package/src/engine/acp/adapter.ts +44 -12
- package/src/engine/acp/server.ts +1 -0
- package/src/engine/acp/transport.ts +2 -1
- package/src/engine/acp/types.ts +6 -1
- package/src/engine/antigravity/subprocess-runtime.ts +20 -4
- package/src/engine/api-registry.ts +19 -2
- package/src/engine/apis/openai-completions.ts +13 -6
- package/src/engine/apis/output-budget.ts +26 -10
- package/src/engine/claude/sdk-runtime.ts +4 -3
- package/src/engine/env-api-keys.ts +2 -1
- package/src/engine/external-subprocess.ts +14 -3
- package/src/engine/loop-guard.ts +19 -2
- package/src/engine/provider-diagnostics.ts +129 -0
- package/src/engine/provider-payload.ts +3 -1
- package/src/engine/worker-runtime.ts +13 -2
- package/src/engine/worker-tools.ts +5 -1
- package/src/entry/extension-reload.ts +1 -0
- package/src/entry/orchestrator.ts +53 -15
- package/src/interactive/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 +17 -2
- package/src/interactive/editor-submit.ts +13 -0
- package/src/interactive/interactive-application.ts +8 -2
- package/src/interactive/interactive-event-projection.ts +7 -1
- package/src/interactive/interactive-presentation.ts +15 -7
- package/src/interactive/interactive-slash-runtime.ts +2 -0
- package/src/interactive/layout.ts +2 -1
- package/src/interactive/model-session-replay.ts +2 -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/message-picker.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-commands.ts +9 -7
- 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/watch-pane.ts +18 -4
- package/src/interactive/worker-stream.ts +7 -7
- package/src/tools/agent-tools.ts +6 -3
- package/src/tools/bash.ts +1 -1
- package/src/tools/builtin-tool-catalog.ts +9 -2
- package/src/tools/codewiki/code-nav.ts +4 -10
- package/src/tools/compete-judge-task.ts +71 -0
- package/src/tools/compete-worktrees.ts +34 -0
- package/src/tools/context/index.ts +32 -7
- package/src/tools/context/surface.ts +15 -4
- package/src/tools/decide.ts +1 -1
- package/src/tools/dispatch-admission.ts +12 -1
- package/src/tools/dispatch-arguments.ts +38 -1
- package/src/tools/dispatch-plan.ts +7 -7
- package/src/tools/dispatch-runner.ts +48 -32
- package/src/tools/dispatch-schema.ts +30 -23
- package/src/tools/dispatch-scout-admission.ts +10 -44
- package/src/tools/dispatch-scout.ts +2 -3
- package/src/tools/find.ts +13 -4
- package/src/tools/grep.ts +13 -1
- package/src/tools/ls.ts +7 -1
- package/src/tools/monitor.ts +26 -11
- package/src/tools/network-policy.ts +11 -24
- package/src/tools/observation.ts +39 -2
- package/src/tools/read.ts +112 -15
- package/src/tools/registry.ts +54 -17
- package/src/tools/result-shaping.ts +110 -2
- package/src/tools/tasks.ts +33 -7
- package/src/tools/verify/frontend.ts +67 -30
- package/src/tools/verify/numeric.ts +6 -1
- package/src/tools/web-fetch-network.ts +179 -0
- package/src/tools/web-fetch-surface.ts +2 -1
- package/src/tools/web-fetch.ts +15 -13
- package/src/tools/worker-evidence.ts +27 -0
- package/src/worker/spec-contract.ts +12 -8
- package/dist/builtins-WGALA46I.js +0 -22
- package/dist/chunk-2WZ546HR.js +0 -792
- package/dist/chunk-5PSMVOLM.js +0 -56
- package/dist/chunk-EL24TAU4.js +0 -1560
- package/dist/chunk-IZXGRF7P.js +0 -4048
- package/dist/chunk-JVCV3ICN.js +0 -47
- package/dist/chunk-MNJGS2IN.js +0 -33
- package/dist/chunk-O5CVSAG5.js +0 -122
- package/dist/chunk-ODGTEFFI.js +0 -50
- package/dist/chunk-OQE5J4C6.js +0 -73
- package/dist/chunk-UUVG37B4.js +0 -244
- package/dist/chunk-V6HJFQZE.js +0 -228
- package/dist/clio-QLICPCF5.js +0 -25
- package/dist/configure-VEPX4NMX.js +0 -55
- package/dist/context-clear-S4ZJCQUX.js +0 -182
- package/dist/detail-A7JAVSIG.js +0 -98
- package/dist/evidence-4F5USFKH.js +0 -208
- package/dist/fleet-view-MN2VG4MR.js +0 -101
- package/dist/inventory-C26CFDRR.js +0 -101
- package/dist/preload-P6DGH2PZ.js +0 -13
- package/dist/slash-commands-ZXPJD64J.js +0 -92
- package/dist/tasks-IPAGMEIX.js +0 -36
- package/dist/tools-EFFEAIDP.js +0 -28
- package/dist/verify-FWYGPKMR.js +0 -29
- package/dist/wiki-generate-743CIGJW.js +0 -476
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
projectSurfaceTrust,
|
|
4
|
+
safetySurfaceTrustHash,
|
|
5
|
+
workspaceTrustDirectory
|
|
6
|
+
} from "./chunk-NTK3WTHM.js";
|
|
2
7
|
import {
|
|
3
8
|
classify
|
|
4
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LUL5Z66S.js";
|
|
5
10
|
import {
|
|
6
11
|
extractCommandCdTargets,
|
|
7
12
|
extractCommandDeleteTargets,
|
|
@@ -9,39 +14,39 @@ import {
|
|
|
9
14
|
inlineShellScript,
|
|
10
15
|
invokesClioSkillMutation,
|
|
11
16
|
scanShellLike
|
|
12
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-M6TAYK66.js";
|
|
13
18
|
import {
|
|
14
19
|
canonicalizeExistingPath
|
|
15
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-KQ6IDQIB.js";
|
|
16
21
|
import {
|
|
17
22
|
loadProjectVerifierCatalog
|
|
18
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-MDU3C27C.js";
|
|
19
24
|
import {
|
|
20
25
|
pathBoundaryCovers,
|
|
21
26
|
resolvePathBoundary
|
|
22
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-R2P2U3ZS.js";
|
|
23
28
|
import {
|
|
24
29
|
artifactDefaultPath
|
|
25
|
-
} from "./chunk-
|
|
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
|
|
@@ -269,12 +275,20 @@ function mergePathPolicyInputs(base, override) {
|
|
|
269
275
|
noDeletePaths: [...base.noDeletePaths ?? [], ...override.noDeletePaths ?? []]
|
|
270
276
|
};
|
|
271
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
|
+
};
|
|
272
286
|
|
|
273
287
|
// src/domains/safety/project-policy.ts
|
|
274
288
|
init_esm_shims();
|
|
275
289
|
var import_yaml = __toESM(require_dist(), 1);
|
|
276
290
|
import { createHash } from "node:crypto";
|
|
277
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
291
|
+
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
278
292
|
import path2 from "node:path";
|
|
279
293
|
var POLICY_RELATIVE_PATH = path2.join(".clio-coder", "safety.yaml");
|
|
280
294
|
var ACTION_CLASSES = /* @__PURE__ */ new Set([
|
|
@@ -315,7 +329,7 @@ function projectSafetyPolicyPath(cwd = process.cwd()) {
|
|
|
315
329
|
}
|
|
316
330
|
}
|
|
317
331
|
function loadProjectSafetyPolicy(cwd = process.cwd()) {
|
|
318
|
-
|
|
332
|
+
let policyPath = projectSafetyPolicyPath(cwd);
|
|
319
333
|
if (policyPath === null) {
|
|
320
334
|
return {
|
|
321
335
|
path: null,
|
|
@@ -329,6 +343,7 @@ function loadProjectSafetyPolicy(cwd = process.cwd()) {
|
|
|
329
343
|
}
|
|
330
344
|
let raw;
|
|
331
345
|
try {
|
|
346
|
+
policyPath = realpathSync(policyPath);
|
|
332
347
|
raw = readFileSync(policyPath, "utf8");
|
|
333
348
|
} catch (err) {
|
|
334
349
|
return {
|
|
@@ -772,13 +787,38 @@ function expandHome(value) {
|
|
|
772
787
|
return value === "~" ? homedir2() : value.startsWith("~/") ? path3.join(homedir2(), value.slice(2)) : value;
|
|
773
788
|
}
|
|
774
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
|
+
|
|
775
813
|
// src/domains/safety/policy-engine.ts
|
|
776
814
|
var BUILTIN_ALLOWLIST = [
|
|
777
815
|
{ id: "builtin:pwd", re: /^pwd$/ },
|
|
778
816
|
{ id: "builtin:ls", re: /^ls(?:\s+(-[A-Za-z0-9]+|\.[/\w.-]*|[/\w.-]+))*$/ },
|
|
779
817
|
{ id: "builtin:git-status", re: /^git\s+status(?:\s+--short|\s+--branch|\s+-sb)*$/ },
|
|
780
818
|
{ id: "builtin:git-diff", re: /^git\s+diff(?:\s+--cached|\s+--stat|\s+--name-only|\s+--\s+[\w./-]+)*$/ },
|
|
781
|
-
{ 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 = [
|
|
782
822
|
{ id: "builtin:npm-test", re: /^npm\s+(?:test|run\s+test)(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
|
|
783
823
|
{ id: "builtin:npm-lint", re: /^npm\s+run\s+lint(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
|
|
784
824
|
{ id: "builtin:npm-build", re: /^npm\s+run\s+build(?:\s+--\s+[\w=./:-]+(?:\s+[\w=./:-]+)*)?$/ },
|
|
@@ -823,12 +863,12 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
823
863
|
const writeRoots = (options.writeRoots ?? []).map((root) => resolvePathBoundary(writeRootCwd, root));
|
|
824
864
|
const skillRoots = activeClioSkillRoots(cwd);
|
|
825
865
|
const packs = options.rulePacks ?? getCachedDefaultRulePacks();
|
|
826
|
-
const projectPolicy = options.projectPolicy ?? loadProjectSafetyPolicy(cwd);
|
|
827
|
-
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)));
|
|
828
868
|
const pathPolicyInput = projectPolicy.disableDefaultPathPolicy ? projectPolicy.pathPolicy : mergePathPolicyInputs(DEFAULT_DAMAGE_CONTROL_PATH_POLICY, projectPolicy.pathPolicy);
|
|
829
|
-
const expandedDefaults =
|
|
869
|
+
const expandedDefaults = mergePathPolicyInputs(mergePathPolicyInputs(pathPolicyInput, OPERATOR_PATH_POLICY), {
|
|
830
870
|
zeroAccessPaths: clioCredentialStorePaths(),
|
|
831
|
-
readOnlyPaths: clioSkillsRootPaths()
|
|
871
|
+
readOnlyPaths: [...clioSkillsRootPaths(), path4.join(clioConfigDir(), "settings.yaml"), workspaceTrustDirectory()]
|
|
832
872
|
});
|
|
833
873
|
const pathPolicy = compilePathPolicy(expandedDefaults, projectPolicyRoot);
|
|
834
874
|
const zeroAccessPolicy = {
|
|
@@ -890,6 +930,27 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
890
930
|
return blockDecision(base, blockInput);
|
|
891
931
|
}
|
|
892
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
|
+
}
|
|
893
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(
|
|
894
955
|
skillRoots,
|
|
895
956
|
pathPolicyTargets(catalogCommand === null ? call : { tool: ToolNames.Bash, args: { command: catalogCommand } }),
|
|
@@ -960,8 +1021,25 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
960
1021
|
};
|
|
961
1022
|
return posture === "confirmed" ? allowDecision(base, input) : askDecision(base, input);
|
|
962
1023
|
}
|
|
963
|
-
|
|
964
|
-
|
|
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
|
+
}
|
|
965
1043
|
if (bash.kind === "block") return blockDecision(base, bash);
|
|
966
1044
|
if (bash.kind === "ask") return askDecision(base, bash);
|
|
967
1045
|
return allowDecision(base, bash);
|
|
@@ -973,15 +1051,7 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
973
1051
|
};
|
|
974
1052
|
if (hit?.match.ruleId !== void 0) allowInput.ruleId = hit.match.ruleId;
|
|
975
1053
|
if (hit?.match !== void 0) allowInput.match = hit.match;
|
|
976
|
-
if (classification.actionClass === "execute")
|
|
977
|
-
allowInput.execRecognition = catalogCheck === null ? "recognized" : "unrecognized";
|
|
978
|
-
if (catalogCheck !== null) {
|
|
979
|
-
allowInput.reasons = [
|
|
980
|
-
...allowInput.reasons,
|
|
981
|
-
`project verifier '${catalogCheck.id}' runs declared argv: ${catalogCommand ?? ""}`
|
|
982
|
-
];
|
|
983
|
-
}
|
|
984
|
-
}
|
|
1054
|
+
if (classification.actionClass === "execute") allowInput.execRecognition = "recognized";
|
|
985
1055
|
return allowDecision(base, allowInput);
|
|
986
1056
|
},
|
|
987
1057
|
metadata() {
|
|
@@ -994,6 +1064,8 @@ function createSafetyPolicyEngine(options = {}) {
|
|
|
994
1064
|
projectPolicyHash: projectPolicy.hash,
|
|
995
1065
|
projectPolicyValid: projectPolicy.valid,
|
|
996
1066
|
projectPolicyErrors: [...projectPolicy.errors, ...pathPolicy.diagnostics],
|
|
1067
|
+
disableDefaultPathPolicy: projectPolicy.disableDefaultPathPolicy,
|
|
1068
|
+
workspaceTrustVerdict: projectPolicy.trustVerdict ?? "trusted",
|
|
997
1069
|
cwd
|
|
998
1070
|
};
|
|
999
1071
|
}
|
|
@@ -1092,7 +1164,18 @@ function pathPolicyTargets(call) {
|
|
|
1092
1164
|
return [];
|
|
1093
1165
|
}
|
|
1094
1166
|
}
|
|
1095
|
-
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(" ");
|
|
1096
1179
|
if (command.trim().length === 0) {
|
|
1097
1180
|
return {
|
|
1098
1181
|
kind: "block",
|
|
@@ -1102,6 +1185,16 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
|
|
|
1102
1185
|
policySource: "builtin-command-allowlist"
|
|
1103
1186
|
};
|
|
1104
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
|
+
}
|
|
1105
1198
|
const projectMatch = matchingProjectCommand(policy, command, callCwd);
|
|
1106
1199
|
if (projectMatch) {
|
|
1107
1200
|
const base = {
|
|
@@ -1144,15 +1237,34 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
|
|
|
1144
1237
|
execRecognition: "unrecognized"
|
|
1145
1238
|
};
|
|
1146
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
|
+
}
|
|
1147
1253
|
const chain = recognizeCommandChain(recognitionCommand, callCwd, workspaceRoot, policy);
|
|
1148
1254
|
if (chain !== null) {
|
|
1149
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
|
+
}
|
|
1150
1262
|
if (chain.requiresConfirmation && posture !== "confirmed") {
|
|
1151
1263
|
return {
|
|
1152
1264
|
kind: "ask",
|
|
1153
1265
|
ruleId: "bash-recognized-chain",
|
|
1154
1266
|
reasonCode: "bash-recognized-chain",
|
|
1155
|
-
reasons: [...chainReasons, "project policy requires confirmation for one step"],
|
|
1267
|
+
reasons: [...chainReasons, "repository code or project policy requires confirmation for one step"],
|
|
1156
1268
|
policySource: "builtin-command-allowlist",
|
|
1157
1269
|
execRecognition: "recognized"
|
|
1158
1270
|
};
|
|
@@ -1167,6 +1279,20 @@ function evaluateBashPolicy(command, callCwd, workspaceRoot, posture, policy) {
|
|
|
1167
1279
|
};
|
|
1168
1280
|
}
|
|
1169
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
|
+
}
|
|
1170
1296
|
return {
|
|
1171
1297
|
kind: "allow",
|
|
1172
1298
|
ruleId: "bash-shell-operators",
|
|
@@ -1316,6 +1442,11 @@ function recognizeCommandChain(command, callCwd, workspaceRoot, policy) {
|
|
|
1316
1442
|
if (projectMatch.requireConfirmation) requiresConfirmation = true;
|
|
1317
1443
|
continue;
|
|
1318
1444
|
}
|
|
1445
|
+
if (PROJECT_SCRIPT_COMMANDS.some((entry) => entry.re.test(rendered))) {
|
|
1446
|
+
ruleIds.push("project-script-confirm");
|
|
1447
|
+
requiresConfirmation = true;
|
|
1448
|
+
continue;
|
|
1449
|
+
}
|
|
1319
1450
|
const builtin = BUILTIN_ALLOWLIST.find((entry) => entry.re.test(rendered));
|
|
1320
1451
|
if (builtin === void 0) return null;
|
|
1321
1452
|
ruleIds.push(builtin.id);
|
|
@@ -1407,10 +1538,30 @@ function packPayload(rules) {
|
|
|
1407
1538
|
...rule.ask !== void 0 ? { ask: rule.ask } : {}
|
|
1408
1539
|
}));
|
|
1409
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
|
+
}
|
|
1410
1561
|
|
|
1411
1562
|
export {
|
|
1412
1563
|
formatModelRejection,
|
|
1413
1564
|
WRITE_ROOT_REFUSED_TOOLS,
|
|
1414
1565
|
createSafetyPolicyEngine
|
|
1415
1566
|
};
|
|
1416
|
-
//# 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
|