@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,21 +1,14 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from "./chunk-I7ZPNEJM.js";
|
|
6
|
-
import {
|
|
7
|
-
artifactDefaultPath
|
|
8
|
-
} from "./chunk-GYV6VZOC.js";
|
|
9
|
-
import {
|
|
10
|
-
canonicalizeExistingPath
|
|
11
|
-
} from "./chunk-ECH6PKUQ.js";
|
|
3
|
+
classify
|
|
4
|
+
} from "./chunk-LUL5Z66S.js";
|
|
12
5
|
import {
|
|
13
6
|
ToolNames,
|
|
14
7
|
isBuiltinToolName
|
|
15
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-EHOSNVVM.js";
|
|
16
9
|
import {
|
|
17
10
|
init_esm_shims
|
|
18
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ECBHH7LU.js";
|
|
19
12
|
|
|
20
13
|
// src/core/json-payload.ts
|
|
21
14
|
init_esm_shims();
|
|
@@ -48,192 +41,6 @@ function parseJsonObjectPayload(text) {
|
|
|
48
41
|
// src/domains/agents/spec.ts
|
|
49
42
|
init_esm_shims();
|
|
50
43
|
import { createHash } from "node:crypto";
|
|
51
|
-
|
|
52
|
-
// src/domains/safety/action-classifier.ts
|
|
53
|
-
init_esm_shims();
|
|
54
|
-
import path from "node:path";
|
|
55
|
-
var GIT_DESTRUCTIVE_PATTERNS = [
|
|
56
|
-
{ name: "git-push-force-long", re: /\bgit\s+push\s+--force\b/i },
|
|
57
|
-
{ name: "git-push-force-short", re: /\bgit\s+push\s+-f\b/i },
|
|
58
|
-
{ name: "git-reset-hard", re: /\bgit\s+reset\s+--hard\b/i },
|
|
59
|
-
{ name: "git-clean-fd", re: /\bgit\s+clean\s+-fd?\b/i },
|
|
60
|
-
{ name: "git-checkout-dot", re: /\bgit\s+checkout\s+--\s+\./i },
|
|
61
|
-
{ name: "git-branch-D", re: /\bgit\s+branch\s+-D\b/i },
|
|
62
|
-
{ name: "git-restore-source", re: /\bgit\s+restore\s+--source\b/i }
|
|
63
|
-
];
|
|
64
|
-
var SYSTEM_MODIFY_PATTERNS = [
|
|
65
|
-
{ name: "sudo-or-doas", re: /\b(sudo|doas)\b/i },
|
|
66
|
-
// allow rm -rf /tmp/... and /var/tmp/... but flag everything else rooted at /
|
|
67
|
-
{ name: "rm-rf-root", re: /\brm\s+-rf?\s+\/(?!(tmp|var\/tmp)(?:\/|\s|$))/i },
|
|
68
|
-
{ name: "apt-install", re: /\bapt(-get)?\s+(install|remove|purge)/i },
|
|
69
|
-
{ name: "brew-install", re: /\bbrew\s+(install|uninstall|reinstall)/i },
|
|
70
|
-
{ name: "npm-install-global", re: /\bnpm\s+install\s+-g\b/i },
|
|
71
|
-
{ name: "pip-install", re: /\bpip\s+install\b/i },
|
|
72
|
-
{ name: "systemctl", re: /\bsystemctl\s+/i },
|
|
73
|
-
{ name: "chmod-root", re: /\bchmod\s+[0-7]{3,4}\s+\//i },
|
|
74
|
-
{ name: "chown", re: /\bchown\s+/i }
|
|
75
|
-
];
|
|
76
|
-
var SYSTEM_WRITE_ROOT_PREFIXES = ["/etc", "/usr", "/var", "/bin", "/sbin", "/run"];
|
|
77
|
-
var SYSTEM_WRITE_EXEMPT_PREFIXES = ["/var/tmp", "/var/folders"];
|
|
78
|
-
function isUnderPrefix(abs, prefix) {
|
|
79
|
-
return abs === prefix || abs.startsWith(`${prefix}/`);
|
|
80
|
-
}
|
|
81
|
-
function baseClassify(tool) {
|
|
82
|
-
switch (tool) {
|
|
83
|
-
case ToolNames.Read:
|
|
84
|
-
case ToolNames.Grep:
|
|
85
|
-
case ToolNames.Find:
|
|
86
|
-
case ToolNames.Ls:
|
|
87
|
-
case ToolNames.WebFetch:
|
|
88
|
-
case ToolNames.Git:
|
|
89
|
-
case ToolNames.CodeNav:
|
|
90
|
-
case ToolNames.Context:
|
|
91
|
-
case ToolNames.Monitor:
|
|
92
|
-
case ToolNames.AskUser:
|
|
93
|
-
case ToolNames.CredentialPresent:
|
|
94
|
-
// tasks pick mutates only Clio-owned session-ledger and project-local
|
|
95
|
-
// .clio-coder runtime state, never source-workspace files. By intentional
|
|
96
|
-
// policy it stays read class and ungated; the tool itself still requires
|
|
97
|
-
// a durable operator task id before it can mutate either store.
|
|
98
|
-
case ToolNames.Tasks:
|
|
99
|
-
// ledger posts a typed contribution to a coordination board and reads a
|
|
100
|
-
// local mirror. Neither touches the workspace, so it is never gated
|
|
101
|
-
// behind a confirmation.
|
|
102
|
-
case ToolNames.Ledger:
|
|
103
|
-
// panes focuses, opens, and closes terminal panes Clio itself created, in
|
|
104
|
-
// a pane host that lives outside the workspace. Nothing it does writes a
|
|
105
|
-
// file, runs a model-supplied command (its schema exposes presets only),
|
|
106
|
-
// or survives the session, so it is reversible, local, and never gated
|
|
107
|
-
// behind a confirmation.
|
|
108
|
-
case ToolNames.Panes:
|
|
109
|
-
return "read";
|
|
110
|
-
case ToolNames.Write:
|
|
111
|
-
case ToolNames.Edit:
|
|
112
|
-
case ToolNames.Artifact:
|
|
113
|
-
return "write";
|
|
114
|
-
case ToolNames.Bash:
|
|
115
|
-
case ToolNames.Verify:
|
|
116
|
-
return "execute";
|
|
117
|
-
case ToolNames.Dispatch:
|
|
118
|
-
case ToolNames.Steer:
|
|
119
|
-
return "dispatch";
|
|
120
|
-
default:
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
function scanStringOf(args) {
|
|
125
|
-
if (!args) return "";
|
|
126
|
-
const parts = [];
|
|
127
|
-
for (const value of Object.values(args)) {
|
|
128
|
-
if (value == null) continue;
|
|
129
|
-
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
130
|
-
parts.push(String(value));
|
|
131
|
-
} else {
|
|
132
|
-
try {
|
|
133
|
-
parts.push(JSON.stringify(value));
|
|
134
|
-
} catch {
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return parts.join(" ");
|
|
139
|
-
}
|
|
140
|
-
function matchFirst(patterns, haystack) {
|
|
141
|
-
for (const p of patterns) {
|
|
142
|
-
if (p.re.test(haystack)) return p;
|
|
143
|
-
}
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
function resolveCandidate(p, baseCwd) {
|
|
147
|
-
if (p.startsWith("~")) return p;
|
|
148
|
-
const base = canonicalizeExistingPath(path.resolve(baseCwd ?? process.cwd()));
|
|
149
|
-
const resolved = path.isAbsolute(p) ? path.resolve(p) : path.resolve(base, p);
|
|
150
|
-
return canonicalizeExistingPath(resolved);
|
|
151
|
-
}
|
|
152
|
-
function isInsideCwd(abs) {
|
|
153
|
-
const cwd = canonicalizeExistingPath(path.resolve(process.cwd()));
|
|
154
|
-
const candidate = canonicalizeExistingPath(abs);
|
|
155
|
-
const rel = path.relative(cwd, candidate);
|
|
156
|
-
return rel === "" || !rel.startsWith("..") && !path.isAbsolute(rel);
|
|
157
|
-
}
|
|
158
|
-
function writePathClass(pathArg, baseCwd) {
|
|
159
|
-
if (pathArg.startsWith("~")) {
|
|
160
|
-
return { cls: "system_modify", reason: `write-path-home-escape: ${pathArg}` };
|
|
161
|
-
}
|
|
162
|
-
const abs = resolveCandidate(pathArg, baseCwd);
|
|
163
|
-
const exempt = SYSTEM_WRITE_EXEMPT_PREFIXES.some((prefix) => isUnderPrefix(abs, prefix));
|
|
164
|
-
if (!exempt) {
|
|
165
|
-
for (const prefix of SYSTEM_WRITE_ROOT_PREFIXES) {
|
|
166
|
-
if (isUnderPrefix(abs, prefix)) {
|
|
167
|
-
return { cls: "system_modify", reason: `write-path-system-root: ${prefix}` };
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (!isInsideCwd(abs)) {
|
|
172
|
-
return { cls: "system_modify", reason: `write-path-outside-cwd: ${abs}` };
|
|
173
|
-
}
|
|
174
|
-
return { cls: "write" };
|
|
175
|
-
}
|
|
176
|
-
function extractWritePath(tool, args) {
|
|
177
|
-
const candidate = args?.path ?? args?.file_path ?? args?.filePath;
|
|
178
|
-
if (typeof candidate === "string" && candidate.length > 0) return candidate;
|
|
179
|
-
return tool === ToolNames.Artifact ? artifactDefaultPath(args?.kind) : null;
|
|
180
|
-
}
|
|
181
|
-
function classify(call) {
|
|
182
|
-
const base = baseClassify(call.tool);
|
|
183
|
-
if (base === null) {
|
|
184
|
-
return { actionClass: "unknown", reasons: [`unknown tool: ${call.tool}`] };
|
|
185
|
-
}
|
|
186
|
-
const reasons = [];
|
|
187
|
-
if (call.tool === ToolNames.Bash) {
|
|
188
|
-
const scan = scanStringOf(call.args);
|
|
189
|
-
const gitHit = matchFirst(GIT_DESTRUCTIVE_PATTERNS, scan);
|
|
190
|
-
if (gitHit) {
|
|
191
|
-
return { actionClass: "git_destructive", reasons: [`pattern:${gitHit.name}`] };
|
|
192
|
-
}
|
|
193
|
-
const sysHit = matchFirst(SYSTEM_MODIFY_PATTERNS, scan);
|
|
194
|
-
if (sysHit) {
|
|
195
|
-
return { actionClass: "system_modify", reasons: [`pattern:${sysHit.name}`] };
|
|
196
|
-
}
|
|
197
|
-
const command = typeof call.args?.command === "string" ? call.args.command : null;
|
|
198
|
-
const argCwd = typeof call.args?.cwd === "string" && call.args.cwd.length > 0 ? call.args.cwd : void 0;
|
|
199
|
-
if (command !== null) {
|
|
200
|
-
const targetReasons = [];
|
|
201
|
-
for (const target of extractCommandWriteTargets(command)) {
|
|
202
|
-
const decision = writePathClass(target, argCwd);
|
|
203
|
-
if (decision.cls === "system_modify") {
|
|
204
|
-
targetReasons.push(decision.reason ?? `bash-write-target: ${target}`);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
for (const target of extractCommandCdTargets(command)) {
|
|
208
|
-
if (target.startsWith("~")) {
|
|
209
|
-
targetReasons.push(`bash-cd-home-escape: ${target}`);
|
|
210
|
-
continue;
|
|
211
|
-
}
|
|
212
|
-
const abs = resolveCandidate(target, argCwd);
|
|
213
|
-
if (!isInsideCwd(abs)) {
|
|
214
|
-
targetReasons.push(`bash-cd-outside-workspace: ${abs}`);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
if (targetReasons.length > 0) {
|
|
218
|
-
return { actionClass: "system_modify", reasons: targetReasons };
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
return { actionClass: "execute", reasons };
|
|
222
|
-
}
|
|
223
|
-
if (base === "write") {
|
|
224
|
-
const pathArg = extractWritePath(call.tool, call.args);
|
|
225
|
-
if (pathArg) {
|
|
226
|
-
const decision = writePathClass(pathArg);
|
|
227
|
-
if (decision.cls === "system_modify") {
|
|
228
|
-
return { actionClass: "system_modify", reasons: decision.reason ? [decision.reason] : [] };
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return { actionClass: "write", reasons };
|
|
232
|
-
}
|
|
233
|
-
return { actionClass: base, reasons };
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// src/domains/agents/spec.ts
|
|
237
44
|
var AGENT_AUTOMATION_AUTHORITIES = ["read-only", "verification", "artifact-write", "workspace-edit"];
|
|
238
45
|
var AGENT_PRODUCTS = ["orientation"];
|
|
239
46
|
var AGENT_CATEGORIES = [
|
|
@@ -469,7 +276,7 @@ ${errors.map((error) => `- ${error}`).join("\n")}`);
|
|
|
469
276
|
// src/domains/agents/result-contract.ts
|
|
470
277
|
init_esm_shims();
|
|
471
278
|
import { createHash as createHash2 } from "node:crypto";
|
|
472
|
-
import
|
|
279
|
+
import path from "node:path";
|
|
473
280
|
function parseDelegationPlanResult(output) {
|
|
474
281
|
const parsed = parseJson(output);
|
|
475
282
|
if (!parsed.ok || !hasOnlyKeys(parsed.value, ["tasks"]) || !Array.isArray(parsed.value.tasks) || parsed.value.tasks.length === 0)
|
|
@@ -792,17 +599,17 @@ function parseChecks(value) {
|
|
|
792
599
|
return checks;
|
|
793
600
|
}
|
|
794
601
|
function citationWithinWorkspace(cwd, citedPath) {
|
|
795
|
-
const relative =
|
|
602
|
+
const relative = path.relative(cwd, citedPath);
|
|
796
603
|
if (relative === "") return true;
|
|
797
|
-
return !(relative === ".." || relative.startsWith(`..${
|
|
604
|
+
return !(relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative));
|
|
798
605
|
}
|
|
799
606
|
function directoryCitationDigest(cwd, citedPath) {
|
|
800
|
-
const relative =
|
|
607
|
+
const relative = path.relative(cwd, citedPath);
|
|
801
608
|
return createHash2("sha256").update(`directory:${relative === "" ? "." : relative}`, "utf8").digest("hex");
|
|
802
609
|
}
|
|
803
610
|
function validateScoutCitation(input, citation) {
|
|
804
|
-
const cwd =
|
|
805
|
-
const citedPath =
|
|
611
|
+
const cwd = path.resolve(input.cwd);
|
|
612
|
+
const citedPath = path.resolve(cwd, citation.path);
|
|
806
613
|
if (!citationWithinWorkspace(cwd, citedPath)) {
|
|
807
614
|
return { ok: false, reason: `Scout citation path escapes the workspace: ${citation.path}` };
|
|
808
615
|
}
|
|
@@ -967,6 +774,27 @@ function validateCodeReport(contract, output) {
|
|
|
967
774
|
return success(contract, "unmeasured", value);
|
|
968
775
|
}
|
|
969
776
|
var RESULT_COMMIT_MESSAGE_MAX_BYTES = 1e3;
|
|
777
|
+
var RESULT_SUMMARY_DEFAULT_MAX_BYTES = 16384;
|
|
778
|
+
var RESULT_SUMMARY_MAX_BYTES_CEILING = 32768;
|
|
779
|
+
var RESULT_OUTPUT_ENVELOPE_HEADROOM_BYTES = 4096;
|
|
780
|
+
function resultSummaryMaxBytes(contract) {
|
|
781
|
+
if (contract.kind !== "mutation-report") return RESULT_COMMIT_MESSAGE_MAX_BYTES;
|
|
782
|
+
return contract.maxSummaryBytes ?? RESULT_SUMMARY_DEFAULT_MAX_BYTES;
|
|
783
|
+
}
|
|
784
|
+
function parseResultSummaryMaxBytes(value, label) {
|
|
785
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1 || value > RESULT_SUMMARY_MAX_BYTES_CEILING) {
|
|
786
|
+
throw new Error(`${label} must be an integer between 1 and ${RESULT_SUMMARY_MAX_BYTES_CEILING}`);
|
|
787
|
+
}
|
|
788
|
+
return value;
|
|
789
|
+
}
|
|
790
|
+
function withResultSummaryAllowance(contract, maxSummaryBytes) {
|
|
791
|
+
if (contract.kind !== "mutation-report") return contract;
|
|
792
|
+
return { kind: "mutation-report", maxSummaryBytes: parseResultSummaryMaxBytes(maxSummaryBytes, "maxSummaryBytes") };
|
|
793
|
+
}
|
|
794
|
+
function resultContractOutputBytes(contract) {
|
|
795
|
+
if (contract === null || contract === void 0 || contract.kind !== "mutation-report") return null;
|
|
796
|
+
return 2 * resultSummaryMaxBytes(contract) + 2 * RESULT_COMMIT_MESSAGE_MAX_BYTES + RESULT_OUTPUT_ENVELOPE_HEADROOM_BYTES;
|
|
797
|
+
}
|
|
970
798
|
var AUTHORSHIP_FIELDS = ["commitMessage", "summary"];
|
|
971
799
|
function hasControlCharacters(value) {
|
|
972
800
|
for (const character of value) {
|
|
@@ -979,15 +807,15 @@ function hasControlCharacters(value) {
|
|
|
979
807
|
function normalizeAuthored(value) {
|
|
980
808
|
return value.replace(/\r\n/gu, "\n").replace(/\r/gu, "\n").trim();
|
|
981
809
|
}
|
|
982
|
-
function validateAuthorship(value) {
|
|
810
|
+
function validateAuthorship(value, summaryMaxBytes) {
|
|
983
811
|
for (const field of AUTHORSHIP_FIELDS) {
|
|
812
|
+
const maxBytes = field === "summary" ? summaryMaxBytes : RESULT_COMMIT_MESSAGE_MAX_BYTES;
|
|
984
813
|
const raw = value[field];
|
|
985
814
|
if (raw === void 0 || raw === null) continue;
|
|
986
815
|
if (typeof raw !== "string") return `${field} must be a string when present`;
|
|
987
816
|
if (raw.trim().length === 0) continue;
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
}
|
|
817
|
+
const bytes = Buffer.byteLength(raw, "utf8");
|
|
818
|
+
if (bytes > maxBytes) return `${field} must be at most ${maxBytes} UTF-8 bytes (${bytes} given)`;
|
|
991
819
|
if (hasControlCharacters(raw)) return `${field} must not contain control characters`;
|
|
992
820
|
}
|
|
993
821
|
return null;
|
|
@@ -996,7 +824,7 @@ function resultContractAuthorship(contract, output) {
|
|
|
996
824
|
const empty = { commitMessage: null, summary: null };
|
|
997
825
|
if (contract.kind !== "mutation-report" && contract.kind !== "architect-plan") return empty;
|
|
998
826
|
const parsed = parseJson(output);
|
|
999
|
-
if (!parsed.ok || validateAuthorship(parsed.value) !== null) return empty;
|
|
827
|
+
if (!parsed.ok || validateAuthorship(parsed.value, resultSummaryMaxBytes(contract)) !== null) return empty;
|
|
1000
828
|
const read = (field) => {
|
|
1001
829
|
const raw = parsed.value[field];
|
|
1002
830
|
if (typeof raw !== "string") return null;
|
|
@@ -1141,7 +969,7 @@ function validateWorldKnowledge(contract, output, externalSourcesAllowed) {
|
|
|
1141
969
|
}
|
|
1142
970
|
function describeWriteSet(effects, cwd) {
|
|
1143
971
|
if (effects.mutatedPaths.size === 0) return "this run wrote nothing";
|
|
1144
|
-
const written = [...effects.mutatedPaths].map((target) =>
|
|
972
|
+
const written = [...effects.mutatedPaths].map((target) => path.relative(cwd, target) || target).sort().slice(0, MUTATION_WRITE_SET_REASON_LIMIT);
|
|
1145
973
|
const more = effects.mutatedPaths.size - written.length;
|
|
1146
974
|
return `this run wrote ${written.join(", ")}${more > 0 ? ` (+${more} more)` : ""}`;
|
|
1147
975
|
}
|
|
@@ -1159,23 +987,31 @@ function mutationValidationsReason(value) {
|
|
|
1159
987
|
return `Mutation result must carry typed validation results: every validations entry is shaped like ${MUTATION_VALIDATION_EXAMPLE}, with a string name, a boolean passed, a string evidence, and no other keys.`;
|
|
1160
988
|
}
|
|
1161
989
|
function validateMutation(contract, input) {
|
|
990
|
+
if (input.outputTruncated === true && input.output !== null) {
|
|
991
|
+
const bound = resultContractOutputBytes(contract) ?? Buffer.byteLength(input.output, "utf8");
|
|
992
|
+
return failure(
|
|
993
|
+
contract,
|
|
994
|
+
"unmeasured",
|
|
995
|
+
`result exceeded the sealed output bound of ${bound} bytes and was truncated; keep summary within ${resultSummaryMaxBytes(contract)} UTF-8 bytes or state the limitation`
|
|
996
|
+
);
|
|
997
|
+
}
|
|
1162
998
|
const parsed = parseJson(input.output);
|
|
1163
999
|
if (!parsed.ok) return failure(contract, "unmeasured", parsed.reason);
|
|
1164
1000
|
const value = parsed.value;
|
|
1165
1001
|
if (!hasOnlyKeys(value, ["mutatedPaths", "validations", "commitMessage", "summary"]) || !Array.isArray(value.mutatedPaths) || value.mutatedPaths.some((entry) => !string(entry))) {
|
|
1166
1002
|
return failure(contract, "unmeasured", "Mutation result must carry mutatedPaths and validations");
|
|
1167
1003
|
}
|
|
1168
|
-
const authorship = validateAuthorship(value);
|
|
1004
|
+
const authorship = validateAuthorship(value, resultSummaryMaxBytes(contract));
|
|
1169
1005
|
if (authorship !== null) return failure(contract, "unmeasured", authorship);
|
|
1170
1006
|
const validations = parseChecks(value.validations);
|
|
1171
1007
|
if (validations === null) return failure(contract, "unmeasured", mutationValidationsReason(value.validations));
|
|
1172
1008
|
const reportedFailure = !validations.every((check) => check.passed);
|
|
1173
1009
|
const effects = input.observedRunEffects;
|
|
1174
1010
|
if (effects === void 0) return success(contract, reportedFailure ? "fail" : "pass", value);
|
|
1175
|
-
const cwd =
|
|
1011
|
+
const cwd = path.resolve(input.cwd);
|
|
1176
1012
|
let unverifiedMutation = false;
|
|
1177
1013
|
for (const reported of value.mutatedPaths) {
|
|
1178
|
-
const target =
|
|
1014
|
+
const target = path.resolve(cwd, reported);
|
|
1179
1015
|
if (effects.mutatedPaths.has(target)) continue;
|
|
1180
1016
|
if (effects.failedMutationPaths.has(target)) {
|
|
1181
1017
|
return failure(
|
|
@@ -1214,7 +1050,7 @@ function validateProvenance(contract, output) {
|
|
|
1214
1050
|
return success(contract, "unmeasured", value);
|
|
1215
1051
|
}
|
|
1216
1052
|
function validateArchitect(contract, input) {
|
|
1217
|
-
const artifactPath =
|
|
1053
|
+
const artifactPath = path.resolve(input.cwd, contract.path);
|
|
1218
1054
|
const content = input.filesystem.readFile(artifactPath);
|
|
1219
1055
|
if (content === null || content.trim().length === 0) {
|
|
1220
1056
|
return failure(contract, "unmeasured", `required plan artifact is missing or empty: ${contract.path}`);
|
|
@@ -1278,8 +1114,22 @@ function validateResultContract(input) {
|
|
|
1278
1114
|
return validateOracle(input.contract, input.output);
|
|
1279
1115
|
case "external-delegation":
|
|
1280
1116
|
return success(input.contract, "unmeasured", { external: true });
|
|
1281
|
-
case "artifact-report":
|
|
1117
|
+
case "artifact-report": {
|
|
1118
|
+
if (input.contract.path !== void 0) {
|
|
1119
|
+
const content = input.filesystem.readFile(path.resolve(input.cwd, input.contract.path));
|
|
1120
|
+
if (content === null) {
|
|
1121
|
+
return failure(
|
|
1122
|
+
input.contract,
|
|
1123
|
+
"unmeasured",
|
|
1124
|
+
`Required artifact is missing or unreadable: ${JSON.stringify(input.contract.path)}`
|
|
1125
|
+
);
|
|
1126
|
+
}
|
|
1127
|
+
if (content.trim().length === 0) {
|
|
1128
|
+
return failure(input.contract, "unmeasured", `Required artifact is empty: ${JSON.stringify(input.contract.path)}`);
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1282
1131
|
return success(input.contract, "unmeasured", { artifact: true });
|
|
1132
|
+
}
|
|
1283
1133
|
case "context-handbook":
|
|
1284
1134
|
return validateContextHandbook(input.contract, input.output);
|
|
1285
1135
|
case "code-report":
|
|
@@ -1305,7 +1155,8 @@ function validateRecipeResult(input) {
|
|
|
1305
1155
|
cwd: input.cwd,
|
|
1306
1156
|
networkAllowed: input.networkAllowed,
|
|
1307
1157
|
filesystem: input.filesystem,
|
|
1308
|
-
...input.observedRunEffects !== void 0 ? { observedRunEffects: input.observedRunEffects } : {}
|
|
1158
|
+
...input.observedRunEffects !== void 0 ? { observedRunEffects: input.observedRunEffects } : {},
|
|
1159
|
+
...input.outputTruncated !== void 0 ? { outputTruncated: input.outputTruncated } : {}
|
|
1309
1160
|
});
|
|
1310
1161
|
return {
|
|
1311
1162
|
applicable: true,
|
|
@@ -1339,7 +1190,7 @@ function resultContractShape(contract) {
|
|
|
1339
1190
|
case "world-knowledge-report":
|
|
1340
1191
|
return '{"discovery":"performed|caller-supplied-only|unavailable","facts":[{"claim":"...","evidence":"...","sources":["URL or document id"]}],"synthesis":["comparison or advisory conclusion"],"uncertainties":["..."],"followUpVerification":["..."]}';
|
|
1341
1192
|
case "mutation-report":
|
|
1342
|
-
return
|
|
1193
|
+
return `{"mutatedPaths":["src/file.ts"],"validations":[{"name":"npm test","passed":true,"evidence":"exit 0"}],"commitMessage":"optional: the commit message for this change","summary":"the requested explanation or deliverable, or a specific limitation; otherwise optional"}. summary allows at most ${resultSummaryMaxBytes(contract)} UTF-8 bytes and commitMessage at most ${RESULT_COMMIT_MESSAGE_MAX_BYTES} UTF-8 bytes. Preserve the requested explanation and citations in summary when repairing the report; if they cannot fit or be grounded, state that specific limitation. Report only actual mutations and checks; a read-only task has mutatedPaths:[] and names the source read in validations, never a command that did not run`;
|
|
1343
1194
|
case "provenance-report":
|
|
1344
1195
|
return '{"confirmedFacts":["..."],"missingEvidence":["..."],"nextInspections":["..."]}';
|
|
1345
1196
|
case "delegation-plan":
|
|
@@ -1349,7 +1200,7 @@ function resultContractShape(contract) {
|
|
|
1349
1200
|
case "external-delegation":
|
|
1350
1201
|
return "any final text";
|
|
1351
1202
|
case "artifact-report":
|
|
1352
|
-
return "any final text; the artifact you wrote at the location the task named is the result";
|
|
1203
|
+
return contract.path === void 0 ? "any final text; the artifact you wrote at the location the task named is the result" : `any final text; the required artifact at ${JSON.stringify(contract.path)} must be readable and non-empty on disk`;
|
|
1353
1204
|
case "context-handbook":
|
|
1354
1205
|
return '{"projectName":"string","identity":"one sentence","conventions":[],"invariants":[],"sections":[{"title":"Architecture","body":"markdown that cites `real/path.ts` tokens"}]}';
|
|
1355
1206
|
case "code-report":
|
|
@@ -1358,20 +1209,32 @@ function resultContractShape(contract) {
|
|
|
1358
1209
|
}
|
|
1359
1210
|
function resultContractRepairMessage(input) {
|
|
1360
1211
|
const last = input.attempt >= RESULT_CONTRACT_REPAIR_LIMIT;
|
|
1212
|
+
const boundArtifact = input.contract.kind === "artifact-report" && input.contract.path !== void 0;
|
|
1361
1213
|
const lines = [
|
|
1362
1214
|
last ? "FINAL RESULT REQUIRED IN THIS RESPONSE. Your previous response still did not satisfy this run's result contract." : "Your previous response did not satisfy this run's result contract.",
|
|
1363
1215
|
`Validator reason: ${input.reason}`,
|
|
1364
1216
|
input.toolsAvailable === true ? "You may use the admitted tools to repair this validator failure, then emit the required terminal result." : "Tool use is over. Answer from the evidence you already gathered.",
|
|
1365
|
-
|
|
1366
|
-
|
|
1217
|
+
...boundArtifact ? [
|
|
1218
|
+
`Required result: ${resultContractShape(input.contract)}`,
|
|
1219
|
+
input.toolsAvailable === true ? "Repair the required artifact on disk, then give a brief final status. Literal tool-call markup in final text does not write a file." : "State the limitation in a brief final status; the required artifact remains unsatisfied."
|
|
1220
|
+
] : [
|
|
1221
|
+
`Emit exactly this shape and nothing else: ${resultContractShape(input.contract)}`,
|
|
1222
|
+
"Do not add prose, code fences, or commentary around it. Do not describe work you intend to do next."
|
|
1223
|
+
]
|
|
1367
1224
|
];
|
|
1368
1225
|
if (input.anchors.length > 0) {
|
|
1369
1226
|
lines.push(
|
|
1370
1227
|
"",
|
|
1371
|
-
"
|
|
1228
|
+
"Source ranges you read successfully in this run (path:start-end, inclusive):",
|
|
1372
1229
|
...input.anchors.slice(-RESULT_CONTRACT_ANCHOR_LIMIT).map((anchor) => `- ${anchor}`)
|
|
1373
1230
|
);
|
|
1374
1231
|
}
|
|
1232
|
+
if (input.contract.kind === "scout-report") {
|
|
1233
|
+
lines.push(
|
|
1234
|
+
"For each finding, use the exact source line that supports its claim inside a listed read range. Range endpoints are not suggested citations.",
|
|
1235
|
+
"If a finding's supporting line cannot be confirmed from the source already returned, remove that finding and keep the confirmed findings. Never shift a rejected citation into range just to pass validation."
|
|
1236
|
+
);
|
|
1237
|
+
}
|
|
1375
1238
|
return lines.join("\n");
|
|
1376
1239
|
}
|
|
1377
1240
|
var RESULT_CONTRACT_REPAIR_TOOL = "result_contract";
|
|
@@ -1420,7 +1283,7 @@ var RECIPE_DECLARABLE_KINDS = [
|
|
|
1420
1283
|
"delegation-plan"
|
|
1421
1284
|
];
|
|
1422
1285
|
var COORDINATOR_AUTHORED_KINDS = ["council-ballot"];
|
|
1423
|
-
function parseContract(value, sourcePath, kinds) {
|
|
1286
|
+
function parseContract(value, sourcePath, kinds, callerBoundArtifacts = false) {
|
|
1424
1287
|
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
1425
1288
|
throw new Error(`agent recipe: ${sourcePath}: resultContract must be an object`);
|
|
1426
1289
|
}
|
|
@@ -1432,11 +1295,38 @@ function parseContract(value, sourcePath, kinds) {
|
|
|
1432
1295
|
if (!only("kind", "path") || !string(record.path)) {
|
|
1433
1296
|
throw new Error(`agent recipe: ${sourcePath}: architect-plan requires only non-empty path`);
|
|
1434
1297
|
}
|
|
1435
|
-
if (
|
|
1298
|
+
if (path.isAbsolute(record.path) || record.path.split(/[\\/]/u).includes("..")) {
|
|
1436
1299
|
throw new Error(`agent recipe: ${sourcePath}: architect-plan path must be workspace-relative`);
|
|
1437
1300
|
}
|
|
1438
1301
|
return { kind: "architect-plan", path: record.path };
|
|
1439
1302
|
}
|
|
1303
|
+
if (record.kind === "artifact-report" && callerBoundArtifacts) {
|
|
1304
|
+
if (!only("kind", "path")) {
|
|
1305
|
+
throw new Error(`agent recipe: ${sourcePath}: artifact-report admits only kind and path`);
|
|
1306
|
+
}
|
|
1307
|
+
if (record.path === void 0) return { kind: "artifact-report" };
|
|
1308
|
+
if (!string(record.path) || record.path.includes("\0")) {
|
|
1309
|
+
throw new Error(`agent recipe: ${sourcePath}: artifact-report requires a non-empty path without NUL`);
|
|
1310
|
+
}
|
|
1311
|
+
if (path.posix.isAbsolute(record.path) || path.win32.isAbsolute(record.path) || /^[a-z]:/iu.test(record.path) || record.path.split(/[\\/]/u).includes("..")) {
|
|
1312
|
+
throw new Error(`agent recipe: ${sourcePath}: artifact-report path must be workspace-relative`);
|
|
1313
|
+
}
|
|
1314
|
+
return { kind: "artifact-report", path: record.path };
|
|
1315
|
+
}
|
|
1316
|
+
if (record.kind === "mutation-report") {
|
|
1317
|
+
if (!only("kind", "maxSummaryBytes")) {
|
|
1318
|
+
throw new Error(`agent recipe: ${sourcePath}: mutation-report admits only kind and maxSummaryBytes`);
|
|
1319
|
+
}
|
|
1320
|
+
if (record.maxSummaryBytes === void 0) return { kind: "mutation-report" };
|
|
1321
|
+
try {
|
|
1322
|
+
return {
|
|
1323
|
+
kind: "mutation-report",
|
|
1324
|
+
maxSummaryBytes: parseResultSummaryMaxBytes(record.maxSummaryBytes, "maxSummaryBytes")
|
|
1325
|
+
};
|
|
1326
|
+
} catch (error) {
|
|
1327
|
+
throw new Error(`agent recipe: ${sourcePath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1440
1330
|
if (!kinds.includes(record.kind) || !only("kind")) {
|
|
1441
1331
|
throw new Error(`agent recipe: ${sourcePath}: resultContract.kind is unsupported or has unknown keys`);
|
|
1442
1332
|
}
|
|
@@ -1446,12 +1336,11 @@ function parseResultContract(value, sourcePath) {
|
|
|
1446
1336
|
return parseContract(value, sourcePath, RECIPE_DECLARABLE_KINDS);
|
|
1447
1337
|
}
|
|
1448
1338
|
function parseWorkerResultContract(value, sourcePath) {
|
|
1449
|
-
return parseContract(value, sourcePath, [...RECIPE_DECLARABLE_KINDS, ...COORDINATOR_AUTHORED_KINDS]);
|
|
1339
|
+
return parseContract(value, sourcePath, [...RECIPE_DECLARABLE_KINDS, ...COORDINATOR_AUTHORED_KINDS], true);
|
|
1450
1340
|
}
|
|
1451
1341
|
|
|
1452
1342
|
export {
|
|
1453
1343
|
parseJsonObjectPayload,
|
|
1454
|
-
classify,
|
|
1455
1344
|
AGENT_AUTOMATION_AUTHORITIES,
|
|
1456
1345
|
isAgentCategory,
|
|
1457
1346
|
isAgentCapabilityClass,
|
|
@@ -1471,6 +1360,10 @@ export {
|
|
|
1471
1360
|
resultContractSourceId,
|
|
1472
1361
|
parseVerifierResult,
|
|
1473
1362
|
parseOracleResult,
|
|
1363
|
+
RESULT_SUMMARY_MAX_BYTES_CEILING,
|
|
1364
|
+
parseResultSummaryMaxBytes,
|
|
1365
|
+
withResultSummaryAllowance,
|
|
1366
|
+
resultContractOutputBytes,
|
|
1474
1367
|
resultContractAuthorship,
|
|
1475
1368
|
parseScoutResult,
|
|
1476
1369
|
validateResultContract,
|
|
@@ -1481,4 +1374,4 @@ export {
|
|
|
1481
1374
|
parseResultContract,
|
|
1482
1375
|
parseWorkerResultContract
|
|
1483
1376
|
};
|
|
1484
|
-
//# sourceMappingURL=chunk-
|
|
1377
|
+
//# sourceMappingURL=chunk-OQM5IVJY.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
atomicWrite
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FQOOGXBH.js";
|
|
5
5
|
import {
|
|
6
6
|
clioStateDir
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CTTI7G3T.js";
|
|
8
8
|
import {
|
|
9
9
|
init_esm_shims
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ECBHH7LU.js";
|
|
11
11
|
|
|
12
12
|
// src/domains/dispatch/code-step-store.ts
|
|
13
13
|
init_esm_shims();
|
|
@@ -44,4 +44,4 @@ export {
|
|
|
44
44
|
writeCodeStepRecord,
|
|
45
45
|
readCodeStepRecords
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-P5SC4DLJ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
init_esm_shims
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ECBHH7LU.js";
|
|
5
5
|
|
|
6
6
|
// src/domains/context/wiki/plan.ts
|
|
7
7
|
init_esm_shims();
|
|
@@ -60,12 +60,17 @@ function overviewPage(source) {
|
|
|
60
60
|
return {
|
|
61
61
|
path: "architecture.md",
|
|
62
62
|
title: "Architecture",
|
|
63
|
-
intent: "Explain what this repository is
|
|
63
|
+
intent: "Explain what this repository is and its top-level composition; describe relationships, boundaries, and request or command flow where the inspected source establishes them.",
|
|
64
64
|
sources: rankedSources(entries.length > 0 ? entries : source),
|
|
65
65
|
status: "pending",
|
|
66
66
|
attempts: 0
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
|
+
function intentForScope(files, areaDepth) {
|
|
70
|
+
const lines = files.reduce((total, file) => total + Math.max(0, file.loc), 0);
|
|
71
|
+
const scopes = [...new Set(files.map((file) => areaForPath(file.path, areaDepth)))];
|
|
72
|
+
return `Assigned scope (${files.length} indexed files, ${lines} lines): document responsibilities and key entry points/symbols; explain lifecycle rules, callers, dependencies, and specific test cases only where inspected source or tests establish them. Anchors are starting points, not the full assignment. Assigned areas: ` + scopes.join(", ") + ".";
|
|
73
|
+
}
|
|
69
74
|
function buildCandidatePlan(codewiki, depth) {
|
|
70
75
|
const source = codewiki.files.filter((file) => file.lang !== "config");
|
|
71
76
|
const totalLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
|
|
@@ -83,21 +88,38 @@ function buildCandidatePlan(codewiki, depth) {
|
|
|
83
88
|
if (host === void 0) continue;
|
|
84
89
|
extras.set(host, [...extras.get(host) ?? [], ...area.files]);
|
|
85
90
|
}
|
|
91
|
+
const overview = overviewPage(source);
|
|
92
|
+
const [onlyArea] = selected;
|
|
93
|
+
if (depth === "simple" && selected.length === 1 && onlyArea) {
|
|
94
|
+
const files = [...onlyArea.files, ...extras.get(onlyArea.key) ?? []];
|
|
95
|
+
return {
|
|
96
|
+
version: 1,
|
|
97
|
+
depth,
|
|
98
|
+
overview: "",
|
|
99
|
+
pages: [
|
|
100
|
+
{ ...overview, intent: `${overview.intent} ${intentForScope(files, areaDepth)}`, sources: rankedSources(files) }
|
|
101
|
+
]
|
|
102
|
+
};
|
|
103
|
+
}
|
|
86
104
|
const pages = selected.map((area) => {
|
|
87
105
|
const files = [...area.files, ...extras.get(area.key) ?? []];
|
|
88
106
|
return {
|
|
89
107
|
path: pagePathForArea(area.key),
|
|
90
108
|
title: titleForArea(area.key),
|
|
91
|
-
intent:
|
|
109
|
+
intent: intentForScope(files, areaDepth),
|
|
92
110
|
sources: rankedSources(files),
|
|
93
111
|
status: "pending",
|
|
94
112
|
attempts: 0
|
|
95
113
|
};
|
|
96
114
|
});
|
|
115
|
+
if (pages.length > 0) {
|
|
116
|
+
overview.intent += " Link to the area pages for detailed behavior; keep this page focused on their composition and relationships.";
|
|
117
|
+
}
|
|
97
118
|
return dedupePagePaths({
|
|
98
119
|
version: 1,
|
|
120
|
+
depth,
|
|
99
121
|
overview: "",
|
|
100
|
-
pages: [
|
|
122
|
+
pages: [overview, ...pages]
|
|
101
123
|
});
|
|
102
124
|
}
|
|
103
125
|
function dedupePagePaths(plan) {
|
|
@@ -120,7 +142,13 @@ function planWikiGeneration(codewiki, requestedDepth = "auto") {
|
|
|
120
142
|
const sourceFiles = source.length;
|
|
121
143
|
const sourceLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
|
|
122
144
|
const depth = requestedDepth === "auto" ? classifyDepth(sourceFiles, sourceLines) : requestedDepth;
|
|
123
|
-
return {
|
|
145
|
+
return {
|
|
146
|
+
requestedDepth,
|
|
147
|
+
depth,
|
|
148
|
+
sourceFiles,
|
|
149
|
+
sourceLines,
|
|
150
|
+
plan: { ...buildCandidatePlan(codewiki, depth), requestedDepth }
|
|
151
|
+
};
|
|
124
152
|
}
|
|
125
153
|
|
|
126
154
|
export {
|
|
@@ -131,4 +159,4 @@ export {
|
|
|
131
159
|
buildCandidatePlan,
|
|
132
160
|
planWikiGeneration
|
|
133
161
|
};
|
|
134
|
-
//# sourceMappingURL=chunk-
|
|
162
|
+
//# sourceMappingURL=chunk-PECBKCDK.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
init_esm_shims
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ECBHH7LU.js";
|
|
5
5
|
|
|
6
6
|
// src/core/workspace-files.ts
|
|
7
7
|
init_esm_shims();
|
|
@@ -336,4 +336,4 @@ export {
|
|
|
336
336
|
enumerateWorkspaceFilesAsync,
|
|
337
337
|
filterWorkspaceFileCandidates
|
|
338
338
|
};
|
|
339
|
-
//# sourceMappingURL=chunk-
|
|
339
|
+
//# sourceMappingURL=chunk-PPEZJWUG.js.map
|