@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
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { strict as assert } from "node:assert";
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { dirname } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
|
|
6
|
+
export const fixture = JSON.parse(readFileSync(new URL("./fixtures/source-explanation.json", import.meta.url), "utf8"));
|
|
7
|
+
|
|
8
|
+
// A bounded content screen, not a semantic judge. Root must still review the
|
|
9
|
+
// cited claims. In particular, schema success and pane lifecycle are not delivery.
|
|
10
|
+
export function assessExplanation(agentId, output, conformance) {
|
|
11
|
+
let value;
|
|
12
|
+
try {
|
|
13
|
+
value = JSON.parse(output);
|
|
14
|
+
} catch {
|
|
15
|
+
value = {};
|
|
16
|
+
}
|
|
17
|
+
const findings = Array.isArray(value.findings) ? value.findings : [];
|
|
18
|
+
const prose = agentId === "scout" ? findings.map((finding) => finding.claim ?? "").join(" ") : (value.summary ?? "");
|
|
19
|
+
const words = typeof prose === "string" && prose.trim() ? prose.trim().split(/\s+/u).length : 0;
|
|
20
|
+
// Scout cites through structured findings; Coder cites inline as file:line
|
|
21
|
+
// inside its summary, the declared place for a read-only explanation.
|
|
22
|
+
const cited = Object.keys(fixture.files).every((path) =>
|
|
23
|
+
agentId === "scout"
|
|
24
|
+
? findings.some((finding) => finding.path === path && Number.isSafeInteger(finding.line) && finding.line > 0)
|
|
25
|
+
: new RegExp(`${path.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&")}:[1-9]\\d*`, "u").test(prose),
|
|
26
|
+
);
|
|
27
|
+
const topics = [
|
|
28
|
+
/uniform/iu,
|
|
29
|
+
/nonuniform/iu,
|
|
30
|
+
/forward/iu,
|
|
31
|
+
/backward/iu,
|
|
32
|
+
/spacing/iu,
|
|
33
|
+
/coordinate/iu,
|
|
34
|
+
/convergence/iu,
|
|
35
|
+
/linspace|equidistant/iu,
|
|
36
|
+
/does not|do not|not .*irregular/iu,
|
|
37
|
+
].every((pattern) => pattern.test(prose));
|
|
38
|
+
// Both recipes carry a 1200-word cited explanation: Scout as findings, Coder
|
|
39
|
+
// in its mutation-report summary under the contract's summary allowance.
|
|
40
|
+
const suitable = agentId === "scout" || agentId === "coder";
|
|
41
|
+
const limited = agentId === "coder" && /cannot deliver/iu.test(prose) && /allowance|UTF-8 bytes/iu.test(prose);
|
|
42
|
+
return {
|
|
43
|
+
"explanation.recipeSuitable": suitable,
|
|
44
|
+
"explanation.conforms": conformance === "pass",
|
|
45
|
+
"explanation.delivered":
|
|
46
|
+
conformance === "pass" &&
|
|
47
|
+
suitable &&
|
|
48
|
+
cited &&
|
|
49
|
+
topics &&
|
|
50
|
+
words >= fixture.wordRange[0] &&
|
|
51
|
+
words <= fixture.wordRange[1],
|
|
52
|
+
"explanation.limited": limited,
|
|
53
|
+
"explanation.words": words,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function prepare() {
|
|
58
|
+
for (const path of Object.keys(fixture.files)) assert.ok(!existsSync(path), `refuse to overwrite ${path}`);
|
|
59
|
+
for (const [path, content] of Object.entries(fixture.files)) {
|
|
60
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
61
|
+
writeFileSync(path, content);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async function grade(agentId) {
|
|
66
|
+
assert.ok(agentId === "coder" || agentId === "scout");
|
|
67
|
+
const events = readFileSync(process.env.CLIO_CODER_EVAL_RUNNER_STDOUT_FILE, "utf8")
|
|
68
|
+
.split(/\r?\n/u)
|
|
69
|
+
.flatMap((line) => {
|
|
70
|
+
try {
|
|
71
|
+
return [JSON.parse(line)];
|
|
72
|
+
} catch {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
const starts = events.filter((event) => event.type === "tool_execution_start" && event.toolName === "dispatch");
|
|
77
|
+
assert.equal(starts.length, 1, "one explicitly selected worker; no substituted or extra recovery dispatch");
|
|
78
|
+
assert.equal(starts[0].args.agent, agentId);
|
|
79
|
+
assert.equal(starts[0].args.task, fixture.task);
|
|
80
|
+
const end = events.find((event) => event.type === "tool_execution_end" && event.toolCallId === starts[0].toolCallId);
|
|
81
|
+
const runs = end?.result?.details?.runs;
|
|
82
|
+
assert.equal(runs?.length, 1, "one terminal receipt required");
|
|
83
|
+
const receipt = JSON.parse(readFileSync(runs[0].receiptPath, "utf8"));
|
|
84
|
+
assert.equal(receipt.agentId, agentId);
|
|
85
|
+
const metrics = assessExplanation(agentId, receipt.output?.text ?? "", receipt.quality?.resultContract?.conformance);
|
|
86
|
+
if (
|
|
87
|
+
receipt.outcome !== "succeeded" ||
|
|
88
|
+
receipt.exitCode !== 0 ||
|
|
89
|
+
receipt.quality?.resultContract?.quality === "fail" ||
|
|
90
|
+
receipt.output?.state !== "final" ||
|
|
91
|
+
receipt.output?.truncated !== false
|
|
92
|
+
)
|
|
93
|
+
metrics["explanation.delivered"] = false;
|
|
94
|
+
metrics["task.solved"] = metrics["explanation.delivered"];
|
|
95
|
+
process.stdout.write(`${JSON.stringify({ schema: "clio-coder.eval.measure.v1", metrics })}\n`);
|
|
96
|
+
assert.equal(receipt.outcome, "succeeded");
|
|
97
|
+
assert.equal(receipt.exitCode, 0);
|
|
98
|
+
assert.equal(receipt.output?.state, "final");
|
|
99
|
+
assert.equal(receipt.output?.truncated, false, "a truncated report is not complete delivery");
|
|
100
|
+
assert.equal(metrics["explanation.conforms"], true);
|
|
101
|
+
assert.notEqual(receipt.quality?.resultContract?.quality, "fail");
|
|
102
|
+
assert.equal(metrics["explanation.recipeSuitable"], true);
|
|
103
|
+
assert.equal(metrics["explanation.delivered"], true);
|
|
104
|
+
assert.equal(metrics["explanation.limited"], false);
|
|
105
|
+
for (const [path, content] of Object.entries(fixture.files)) assert.equal(readFileSync(path, "utf8"), content);
|
|
106
|
+
// Headless runs cannot assert watch-pane lifecycle. Root records it separately.
|
|
107
|
+
assert.ok(metrics["task.solved"], "the requested explanation was not delivered in the declared result shape");
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
111
|
+
try {
|
|
112
|
+
if (process.argv[2] === "--prepare") prepare();
|
|
113
|
+
else await grade(process.argv[2]);
|
|
114
|
+
} catch (error) {
|
|
115
|
+
process.stderr.write(`${error instanceof Error ? error.stack : String(error)}\n`);
|
|
116
|
+
process.exitCode = 1;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
|
|
5
|
+
const events = readFileSync(process.env.CLIO_CODER_EVAL_RUNNER_STDOUT_FILE, "utf8")
|
|
6
|
+
.split(/\r?\n/u)
|
|
7
|
+
.flatMap((line) => {
|
|
8
|
+
try {
|
|
9
|
+
return [JSON.parse(line)];
|
|
10
|
+
} catch {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
const starts = events.filter((event) => event.type === "tool_execution_start");
|
|
15
|
+
const ends = events.filter((event) => event.type === "tool_execution_end");
|
|
16
|
+
function output(call) {
|
|
17
|
+
const end = ends.find((event) => event.toolCallId === call.toolCallId);
|
|
18
|
+
assert.ok(end, "required tool call did not finish");
|
|
19
|
+
return JSON.stringify(end.result);
|
|
20
|
+
}
|
|
21
|
+
switch (process.argv[2]) {
|
|
22
|
+
case "read-tail": {
|
|
23
|
+
assert.equal(starts.length, 1);
|
|
24
|
+
const call = starts[0];
|
|
25
|
+
assert.equal(call.toolName, "read");
|
|
26
|
+
assert.equal(resolve(call.args.path), resolve("evals/fixtures/tool-surface/read.txt"));
|
|
27
|
+
assert.equal(call.args.tail, 2, "last-line probe must use the advertised tail argument");
|
|
28
|
+
assert.match(output(call), /gamma/u);
|
|
29
|
+
assert.match(output(call), /delta/u);
|
|
30
|
+
assert.doesNotMatch(output(call), /alpha|beta/u);
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
case "bash-cwd-reset": {
|
|
34
|
+
assert.equal(starts.length, 2);
|
|
35
|
+
assert.ok(starts.every((call) => call.toolName === "bash"));
|
|
36
|
+
assert.equal(starts[0].args.command.trim(), "cd evals/fixtures/tool-surface/subdir && pwd");
|
|
37
|
+
assert.equal(starts[1].args.command.trim(), "pwd");
|
|
38
|
+
assert.equal(starts[1].args.cwd, undefined);
|
|
39
|
+
assert.ok(output(starts[0]).includes(resolve("evals/fixtures/tool-surface/subdir")));
|
|
40
|
+
assert.ok(output(starts[1]).includes(process.cwd()));
|
|
41
|
+
assert.ok(!output(starts[1]).includes("/tool-surface/subdir"));
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case "web-fetch-scheme": {
|
|
45
|
+
assert.equal(starts.length, 1);
|
|
46
|
+
assert.equal(starts[0].toolName, "web_fetch");
|
|
47
|
+
assert.equal(starts[0].args.url, "file:///tool-surface-fixture");
|
|
48
|
+
assert.match(output(starts[0]), /(?:unsupported|invalid|only)[\s\S]*(?:scheme|https?)/iu);
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
default:
|
|
52
|
+
throw new Error("unknown tool surface case");
|
|
53
|
+
}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
suite:
|
|
3
|
+
id: tool-surface-model
|
|
4
|
+
title: Tool description and argument behavior
|
|
5
|
+
visibility: public
|
|
6
|
+
description: Model-required probes of read tail selection, bash child directory
|
|
7
|
+
reset, and web_fetch URL rejection. Expected rejection is distinct from
|
|
8
|
+
unintended tool errors.
|
|
9
|
+
matrix:
|
|
10
|
+
targets:
|
|
11
|
+
- id: mini
|
|
12
|
+
repeats: 3
|
|
13
|
+
tasks:
|
|
14
|
+
- id: read-tail
|
|
15
|
+
tags:
|
|
16
|
+
- behavioral
|
|
17
|
+
- model-required
|
|
18
|
+
- tool:read
|
|
19
|
+
behavioral:
|
|
20
|
+
schema: clio-coder.eval.scenario.v1
|
|
21
|
+
corpus:
|
|
22
|
+
id: tool-surface-model
|
|
23
|
+
version: 1.0.0
|
|
24
|
+
execution:
|
|
25
|
+
mode: model-required
|
|
26
|
+
subject:
|
|
27
|
+
kind: main-agent
|
|
28
|
+
role: main
|
|
29
|
+
toolTarget: available
|
|
30
|
+
expectedBehavior:
|
|
31
|
+
- id: read-tail-calls
|
|
32
|
+
category: tool_choice
|
|
33
|
+
fact:
|
|
34
|
+
source: tool
|
|
35
|
+
key: tools.calls.read
|
|
36
|
+
op: eq
|
|
37
|
+
value: 1
|
|
38
|
+
- id: read-tail-errors
|
|
39
|
+
category: tool_choice
|
|
40
|
+
fact:
|
|
41
|
+
source: tool
|
|
42
|
+
key: tools.failed.read
|
|
43
|
+
op: eq
|
|
44
|
+
value: 0
|
|
45
|
+
- id: read-tail-blocks
|
|
46
|
+
category: safety_comprehension
|
|
47
|
+
fact:
|
|
48
|
+
source: tool
|
|
49
|
+
key: tools.blocked.read
|
|
50
|
+
op: eq
|
|
51
|
+
value: 0
|
|
52
|
+
- id: read-tail-successes
|
|
53
|
+
category: tool_choice
|
|
54
|
+
fact:
|
|
55
|
+
source: tool
|
|
56
|
+
key: tools.succeeded.read
|
|
57
|
+
op: eq
|
|
58
|
+
value: 1
|
|
59
|
+
- id: read-tail-correct
|
|
60
|
+
category: task_correctness
|
|
61
|
+
fact:
|
|
62
|
+
source: grader
|
|
63
|
+
key: task.solved
|
|
64
|
+
op: eq
|
|
65
|
+
value: true
|
|
66
|
+
forbiddenBehavior: []
|
|
67
|
+
judge:
|
|
68
|
+
maxEvidenceItems: 32
|
|
69
|
+
maxExplanationChars: 500
|
|
70
|
+
workspace:
|
|
71
|
+
kind: temp-copy
|
|
72
|
+
path: ..
|
|
73
|
+
excludes:
|
|
74
|
+
- .git
|
|
75
|
+
- .superpowers
|
|
76
|
+
- node_modules
|
|
77
|
+
- dist
|
|
78
|
+
runner:
|
|
79
|
+
kind: clio-coder-run
|
|
80
|
+
autonomy: auto-edit
|
|
81
|
+
prompt: Read only the final two lines of evals/fixtures/tool-surface/read.txt
|
|
82
|
+
using one read call. Do not read the entire file or use other tools.
|
|
83
|
+
Report those lines. Do not edit files.
|
|
84
|
+
verify:
|
|
85
|
+
measure:
|
|
86
|
+
- node evals/tool-surface-grader.mjs read-tail
|
|
87
|
+
protectedFiles:
|
|
88
|
+
- evals/tool-surface-grader.mjs
|
|
89
|
+
- evals/fixtures/tool-surface/read.txt
|
|
90
|
+
- evals/fixtures/tool-surface/subdir/keep.txt
|
|
91
|
+
metrics:
|
|
92
|
+
collect:
|
|
93
|
+
- task.solved
|
|
94
|
+
- tools.totalCalls
|
|
95
|
+
- tools.calls.read
|
|
96
|
+
- tools.failed.read
|
|
97
|
+
- tools.blocked.read
|
|
98
|
+
- tools.succeeded.read
|
|
99
|
+
timeoutMs: 120000
|
|
100
|
+
- id: bash-cwd-reset
|
|
101
|
+
tags:
|
|
102
|
+
- behavioral
|
|
103
|
+
- model-required
|
|
104
|
+
- tool:bash
|
|
105
|
+
behavioral:
|
|
106
|
+
schema: clio-coder.eval.scenario.v1
|
|
107
|
+
corpus:
|
|
108
|
+
id: tool-surface-model
|
|
109
|
+
version: 1.0.0
|
|
110
|
+
execution:
|
|
111
|
+
mode: model-required
|
|
112
|
+
subject:
|
|
113
|
+
kind: main-agent
|
|
114
|
+
role: main
|
|
115
|
+
toolTarget: available
|
|
116
|
+
expectedBehavior:
|
|
117
|
+
- id: bash-cwd-reset-calls
|
|
118
|
+
category: tool_choice
|
|
119
|
+
fact:
|
|
120
|
+
source: tool
|
|
121
|
+
key: tools.calls.bash
|
|
122
|
+
op: eq
|
|
123
|
+
value: 2
|
|
124
|
+
- id: bash-cwd-reset-errors
|
|
125
|
+
category: tool_choice
|
|
126
|
+
fact:
|
|
127
|
+
source: tool
|
|
128
|
+
key: tools.failed.bash
|
|
129
|
+
op: eq
|
|
130
|
+
value: 0
|
|
131
|
+
- id: bash-cwd-reset-blocks
|
|
132
|
+
category: safety_comprehension
|
|
133
|
+
fact:
|
|
134
|
+
source: tool
|
|
135
|
+
key: tools.blocked.bash
|
|
136
|
+
op: eq
|
|
137
|
+
value: 0
|
|
138
|
+
- id: bash-cwd-reset-successes
|
|
139
|
+
category: tool_choice
|
|
140
|
+
fact:
|
|
141
|
+
source: tool
|
|
142
|
+
key: tools.succeeded.bash
|
|
143
|
+
op: eq
|
|
144
|
+
value: 2
|
|
145
|
+
- id: bash-cwd-reset-correct
|
|
146
|
+
category: task_correctness
|
|
147
|
+
fact:
|
|
148
|
+
source: grader
|
|
149
|
+
key: task.solved
|
|
150
|
+
op: eq
|
|
151
|
+
value: true
|
|
152
|
+
forbiddenBehavior: []
|
|
153
|
+
judge:
|
|
154
|
+
maxEvidenceItems: 32
|
|
155
|
+
maxExplanationChars: 500
|
|
156
|
+
workspace:
|
|
157
|
+
kind: temp-copy
|
|
158
|
+
path: ..
|
|
159
|
+
excludes:
|
|
160
|
+
- .git
|
|
161
|
+
- .superpowers
|
|
162
|
+
- node_modules
|
|
163
|
+
- dist
|
|
164
|
+
runner:
|
|
165
|
+
kind: clio-coder-run
|
|
166
|
+
autonomy: auto-edit
|
|
167
|
+
prompt: Use exactly two bash calls and no other tools. First run cd
|
|
168
|
+
evals/fixtures/tool-surface/subdir && pwd. Then run pwd with no cwd
|
|
169
|
+
argument, relying on the documented default directory of a new bash
|
|
170
|
+
call. Report whether the second call starts at the workspace root. Do
|
|
171
|
+
not edit files.
|
|
172
|
+
verify:
|
|
173
|
+
measure:
|
|
174
|
+
- node evals/tool-surface-grader.mjs bash-cwd-reset
|
|
175
|
+
protectedFiles:
|
|
176
|
+
- evals/tool-surface-grader.mjs
|
|
177
|
+
- evals/fixtures/tool-surface/read.txt
|
|
178
|
+
- evals/fixtures/tool-surface/subdir/keep.txt
|
|
179
|
+
metrics:
|
|
180
|
+
collect:
|
|
181
|
+
- task.solved
|
|
182
|
+
- tools.totalCalls
|
|
183
|
+
- tools.calls.bash
|
|
184
|
+
- tools.failed.bash
|
|
185
|
+
- tools.blocked.bash
|
|
186
|
+
- tools.succeeded.bash
|
|
187
|
+
timeoutMs: 120000
|
|
188
|
+
- id: web-fetch-scheme
|
|
189
|
+
tags:
|
|
190
|
+
- behavioral
|
|
191
|
+
- model-required
|
|
192
|
+
- tool:web_fetch
|
|
193
|
+
behavioral:
|
|
194
|
+
schema: clio-coder.eval.scenario.v1
|
|
195
|
+
corpus:
|
|
196
|
+
id: tool-surface-model
|
|
197
|
+
version: 1.0.0
|
|
198
|
+
execution:
|
|
199
|
+
mode: model-required
|
|
200
|
+
subject:
|
|
201
|
+
kind: main-agent
|
|
202
|
+
role: main
|
|
203
|
+
toolTarget: available
|
|
204
|
+
expectedBehavior:
|
|
205
|
+
- id: web-fetch-scheme-calls
|
|
206
|
+
category: tool_choice
|
|
207
|
+
fact:
|
|
208
|
+
source: tool
|
|
209
|
+
key: tools.calls.web_fetch
|
|
210
|
+
op: eq
|
|
211
|
+
value: 1
|
|
212
|
+
- id: web-fetch-scheme-errors
|
|
213
|
+
category: tool_choice
|
|
214
|
+
fact:
|
|
215
|
+
source: tool
|
|
216
|
+
key: tools.failed.web_fetch
|
|
217
|
+
op: eq
|
|
218
|
+
value: 1
|
|
219
|
+
- id: web-fetch-scheme-blocks
|
|
220
|
+
category: safety_comprehension
|
|
221
|
+
fact:
|
|
222
|
+
source: tool
|
|
223
|
+
key: tools.blocked.web_fetch
|
|
224
|
+
op: eq
|
|
225
|
+
value: 0
|
|
226
|
+
- id: web-fetch-scheme-successes
|
|
227
|
+
category: tool_choice
|
|
228
|
+
fact:
|
|
229
|
+
source: tool
|
|
230
|
+
key: tools.succeeded.web_fetch
|
|
231
|
+
op: eq
|
|
232
|
+
value: 0
|
|
233
|
+
- id: web-fetch-scheme-correct
|
|
234
|
+
category: task_correctness
|
|
235
|
+
fact:
|
|
236
|
+
source: grader
|
|
237
|
+
key: task.solved
|
|
238
|
+
op: eq
|
|
239
|
+
value: true
|
|
240
|
+
forbiddenBehavior: []
|
|
241
|
+
judge:
|
|
242
|
+
maxEvidenceItems: 32
|
|
243
|
+
maxExplanationChars: 500
|
|
244
|
+
workspace:
|
|
245
|
+
kind: temp-copy
|
|
246
|
+
path: ..
|
|
247
|
+
excludes:
|
|
248
|
+
- .git
|
|
249
|
+
- .superpowers
|
|
250
|
+
- node_modules
|
|
251
|
+
- dist
|
|
252
|
+
runner:
|
|
253
|
+
kind: clio-coder-run
|
|
254
|
+
autonomy: auto-edit
|
|
255
|
+
prompt: "Probe the web_fetch URL validation once with
|
|
256
|
+
file:///tool-surface-fixture. This is an intentional invalid-scheme
|
|
257
|
+
test: invoke web_fetch exactly once, report the rejection, and do not
|
|
258
|
+
retry or use other tools. Do not edit files."
|
|
259
|
+
verify:
|
|
260
|
+
measure:
|
|
261
|
+
- node evals/tool-surface-grader.mjs web-fetch-scheme
|
|
262
|
+
protectedFiles:
|
|
263
|
+
- evals/tool-surface-grader.mjs
|
|
264
|
+
- evals/fixtures/tool-surface/read.txt
|
|
265
|
+
- evals/fixtures/tool-surface/subdir/keep.txt
|
|
266
|
+
metrics:
|
|
267
|
+
collect:
|
|
268
|
+
- task.solved
|
|
269
|
+
- tools.totalCalls
|
|
270
|
+
- tools.calls.web_fetch
|
|
271
|
+
- tools.failed.web_fetch
|
|
272
|
+
- tools.blocked.web_fetch
|
|
273
|
+
- tools.succeeded.web_fetch
|
|
274
|
+
timeoutMs: 120000
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iowarp/clio-coder",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "The terminal coding agent for people who maintain the code that science runs on, with user-chosen models and inspectable evidence.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -76,15 +76,15 @@
|
|
|
76
76
|
"pi:surface-diff": "node --import tsx scripts/pi-surface-diff.ts",
|
|
77
77
|
"pi:surface-snapshot": "node --import tsx scripts/pi-surface-diff.ts --write",
|
|
78
78
|
"test:file": "node --import tsx --import ./tests/harness/tmp-root.ts --test",
|
|
79
|
-
"pretest": "test -f dist/cli/index.js ||
|
|
79
|
+
"pretest": "test -f dist/cli/index.js || pnpm run build",
|
|
80
80
|
"test": "node --import tsx --import ./tests/harness/tmp-root.ts --test tests/contracts/*.test.ts tests/smoke/*.test.ts",
|
|
81
|
-
"test:trace-viewer": "
|
|
81
|
+
"test:trace-viewer": "pnpm --filter @iowarp/clio-trace-viewer test",
|
|
82
82
|
"trace:ui": "node apps/trace-viewer/server.mjs",
|
|
83
|
-
"ci": "
|
|
84
|
-
"ci:release": "
|
|
83
|
+
"ci": "pnpm run typecheck && pnpm run lint && pnpm run build && pnpm run test && pnpm run test:trace-viewer",
|
|
84
|
+
"ci:release": "pnpm run ci && node scripts/check-release.mjs",
|
|
85
85
|
"install:local": "bash scripts/install-local.sh",
|
|
86
86
|
"smoke:real-home": "bash scripts/smoke-real-home.sh",
|
|
87
|
-
"prepublishOnly": "CLIO_CODER_RELEASE_CONTEXT=publish
|
|
87
|
+
"prepublishOnly": "CLIO_CODER_RELEASE_CONTEXT=publish pnpm run ci:release",
|
|
88
88
|
"skills:pin": "node --import tsx scripts/pin-skills.ts",
|
|
89
89
|
"skills:check": "node --import tsx scripts/pin-skills.ts --check"
|
|
90
90
|
},
|
|
@@ -92,18 +92,14 @@
|
|
|
92
92
|
"@anthropic-ai/claude-agent-sdk": "0.3.186"
|
|
93
93
|
},
|
|
94
94
|
"dependencies": {
|
|
95
|
-
"@earendil-works/pi-agent-core": "0.
|
|
96
|
-
"@earendil-works/pi-ai": "0.
|
|
97
|
-
"@earendil-works/pi-tui": "0.
|
|
95
|
+
"@earendil-works/pi-agent-core": "0.85.1",
|
|
96
|
+
"@earendil-works/pi-ai": "0.85.1",
|
|
97
|
+
"@earendil-works/pi-tui": "0.85.1",
|
|
98
98
|
"@silvia-odwyer/photon-node": "^0.3.4",
|
|
99
99
|
"grok-mermaid": "0.2.2",
|
|
100
100
|
"ollama": "0.6.3",
|
|
101
101
|
"smol-toml": "1.8.0"
|
|
102
102
|
},
|
|
103
|
-
"overrides": {
|
|
104
|
-
"@anthropic-ai/sdk": "0.105.0",
|
|
105
|
-
"esbuild": "0.28.1"
|
|
106
|
-
},
|
|
107
103
|
"devDependencies": {
|
|
108
104
|
"@biomejs/biome": "2.5.1",
|
|
109
105
|
"@types/node": "24.12.2",
|
|
@@ -119,5 +115,9 @@
|
|
|
119
115
|
"typescript": "6.0.3",
|
|
120
116
|
"uuid": "14.0.1",
|
|
121
117
|
"yaml": "2.9.0"
|
|
122
|
-
}
|
|
118
|
+
},
|
|
119
|
+
"packageManager": "pnpm@10.34.5",
|
|
120
|
+
"workspaces": [
|
|
121
|
+
"apps/*"
|
|
122
|
+
]
|
|
123
123
|
}
|
package/skills/README.md
CHANGED
|
@@ -193,7 +193,7 @@ clio-coder skills install find-skills --project # strongest discovered project
|
|
|
193
193
|
|
|
194
194
|
## Publishing: the marketplace index
|
|
195
195
|
|
|
196
|
-
`
|
|
196
|
+
`pnpm run skills:pin` writes two files. `registry.yaml` pins content hashes and
|
|
197
197
|
is what drift is measured against. `skill-marketplace.json` is the published
|
|
198
198
|
index: one entry per skill with `name`, `description`, optional `triggers`,
|
|
199
199
|
`sourceUrl` (the skill's own `clio-coder.source-url`), `version`, `audit`, and
|
|
@@ -213,7 +213,7 @@ Install then clones the repository named in that entry's `sourceUrl` and copies
|
|
|
213
213
|
the skill out of it, so the index is only as live as the branch its URLs name.
|
|
214
214
|
The catalog's `source-url` values all point at `main`; until a release branch
|
|
215
215
|
lands there, an install through the index fails naming the repository, the
|
|
216
|
-
branch, and the missing path. `
|
|
216
|
+
branch, and the missing path. `pnpm run skills:check` fails if a skill's
|
|
217
217
|
`source-url` stops ending with its catalog path, which is how a skill moved
|
|
218
218
|
between categories cannot ship a stale pointer.
|
|
219
219
|
|
|
@@ -292,7 +292,7 @@ dependency warnings, and other harnesses ignore it like any unknown key.
|
|
|
292
292
|
|
|
293
293
|
The deprecated nested `clio:` mapping and legacy flat keys (`registry-id`,
|
|
294
294
|
`source-url`, `audit` at the top level) are still read as fallbacks for older
|
|
295
|
-
installed copies. The catalog itself must use `clio-coder:`, and `
|
|
295
|
+
installed copies. The catalog itself must use `clio-coder:`, and `pnpm run
|
|
296
296
|
skills:check` enforces that.
|
|
297
297
|
|
|
298
298
|
### Versioning policy
|
|
@@ -350,7 +350,7 @@ names rather than mapping them. Translating `bash` to `Bash` for
|
|
|
350
350
|
Claude-compatibility would not restrict anything; it would silently add `Bash`
|
|
351
351
|
to the always-allow rules of every session that loaded the skill. The same goes
|
|
352
352
|
for a `clio-coder skills export --for claude` lane, so there is no such lane. To keep
|
|
353
|
-
a well-meaning edit from introducing that, `
|
|
353
|
+
a well-meaning edit from introducing that, `pnpm run skills:check` fails on any
|
|
354
354
|
`allowed-tools` entry that is not a Clio tool name in canonical lowercase.
|
|
355
355
|
|
|
356
356
|
The rest of the surface, read from the same build:
|
|
@@ -401,10 +401,10 @@ observed writing outside its workspace. Eval numbers are evidence about a
|
|
|
401
401
|
cooperative model, not an isolation guarantee. Run campaigns with `CLIO_CODER_*`
|
|
402
402
|
pointed at throwaway directories.
|
|
403
403
|
|
|
404
|
-
`
|
|
404
|
+
`pnpm run skills:pin` enforces this contract structurally: it refuses to pin a
|
|
405
405
|
catalog where any skill is missing the required frontmatter, `audit: pass`, or
|
|
406
406
|
its `evals.md`, declares a tool name Clio does not have, or carries a
|
|
407
|
-
`source-url` that no longer ends with its catalog path. `
|
|
407
|
+
`source-url` that no longer ends with its catalog path. `pnpm run skills:check`
|
|
408
408
|
(run in CI) fails on any drift between the catalog and either generated file,
|
|
409
409
|
`registry.yaml` or `skill-marketplace.json`. Each pin covers the normalized
|
|
410
410
|
`SKILL.md`, not the whole skill directory. Install-lifecycle stamps such as
|
|
@@ -7,8 +7,17 @@ triggers:
|
|
|
7
7
|
- parse don't validate
|
|
8
8
|
- illegal states unrepresentable
|
|
9
9
|
- functional core imperative shell
|
|
10
|
-
version: 0.
|
|
10
|
+
version: 0.4.0
|
|
11
11
|
license: Apache-2.0
|
|
12
|
+
allowed-tools:
|
|
13
|
+
- read
|
|
14
|
+
- grep
|
|
15
|
+
- find
|
|
16
|
+
- ls
|
|
17
|
+
- code_nav
|
|
18
|
+
- bash
|
|
19
|
+
- write
|
|
20
|
+
- edit
|
|
12
21
|
clio-coder:
|
|
13
22
|
registry-id: iowarp/clio-coder
|
|
14
23
|
source-url: https://github.com/iowarp/clio-coder/tree/main/skills/coding/coding-standards
|
|
@@ -33,9 +42,10 @@ code, and never rewrite unrelated old code without an explicit migration
|
|
|
33
42
|
request. **The host project's own documented standards always win over
|
|
34
43
|
this file.**
|
|
35
44
|
|
|
36
|
-
This skill
|
|
37
|
-
|
|
38
|
-
|
|
45
|
+
This skill's tool surface covers the whole write-code loop (read, grep,
|
|
46
|
+
find, ls, code_nav, bash, write, edit) so a solo run can apply the rules
|
|
47
|
+
it names. When it rides along with another skill, the surfaces merge as a
|
|
48
|
+
union, so it never narrows the tools the task in flight needs.
|
|
39
49
|
|
|
40
50
|
## Arguments
|
|
41
51
|
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- handoff to another agent
|
|
8
8
|
- context is about to be lost
|
|
9
9
|
- write a continuation brief
|
|
10
|
-
version: 0.5.
|
|
10
|
+
version: 0.5.1
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- read
|
|
@@ -65,8 +65,8 @@ Distinct from two things it is often confused with:
|
|
|
65
65
|
actionable one as the focus; state that reading in the draft's "Next
|
|
66
66
|
session focus" line rather than leaving it blank.
|
|
67
67
|
|
|
68
|
-
There is no operator in a headless run: `ask_user` is not registered
|
|
69
|
-
|
|
68
|
+
There is no operator in a headless run: `ask_user` is not registered, so
|
|
69
|
+
any call is refused as an unregistered tool rather than answered. If the focus, slug, or a
|
|
70
70
|
redaction call is ambiguous, state your best reading in the draft and in your
|
|
71
71
|
final reply, and proceed — never stall a step waiting on `ask_user`.
|
|
72
72
|
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- where were we
|
|
8
8
|
- get up to speed
|
|
9
9
|
- resume repository work after a break
|
|
10
|
-
version: 0.4.
|
|
10
|
+
version: 0.4.1
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- read
|
|
@@ -96,8 +96,8 @@ Work top to bottom; stop early once you have enough to state where things stand.
|
|
|
96
96
|
ending with the focus to confirm. `ask_user` is only registered in an
|
|
97
97
|
interactive session with an operator present; call it there, offering
|
|
98
98
|
the handoff's suggested focus as the first option. **A headless run has
|
|
99
|
-
no operator: `ask_user` is not registered
|
|
100
|
-
|
|
99
|
+
no operator: `ask_user` is not registered, so any call is refused as an
|
|
100
|
+
unregistered tool rather than answered.** If it is not among your available tools, do not
|
|
101
101
|
attempt it and do not keep re-reading files hoping for more certainty
|
|
102
102
|
first — state the focus as the orientation's `Next` line, in plain
|
|
103
103
|
text, and stop; that written statement is the confirmation for this
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- architecture for this feature
|
|
8
8
|
- decide the engineering approach
|
|
9
9
|
- compare architecture options
|
|
10
|
-
version: 0.4.
|
|
10
|
+
version: 0.4.1
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- read
|
|
@@ -64,10 +64,10 @@ expensive calls only).
|
|
|
64
64
|
to Step 0's own question — what are we building, and is there a written
|
|
65
65
|
intent to read — rather than inventing a project to architect.
|
|
66
66
|
|
|
67
|
-
There is no operator in a headless run: `ask_user`
|
|
68
|
-
|
|
69
|
-
time
|
|
70
|
-
the first
|
|
67
|
+
There is no operator in a headless run: `ask_user` is not registered, so
|
|
68
|
+
any call is refused as an unregistered tool rather than answered, every
|
|
69
|
+
time; calling it again will not produce a different result. From wherever
|
|
70
|
+
the first refusal lands — Step 0's "ask whether reference docs
|
|
71
71
|
exist", Step 1's greenfield/brownfield call, or any decision in Step 2 —
|
|
72
72
|
switch immediately to the treatment already described above (state the
|
|
73
73
|
options, the recommendation, the reasoning, adopt it, mark it `assumed —
|
|
@@ -7,7 +7,7 @@ triggers:
|
|
|
7
7
|
- build the backlog
|
|
8
8
|
- decompose this plan into tickets
|
|
9
9
|
- create GitHub issues from this architecture
|
|
10
|
-
version: 0.4.
|
|
10
|
+
version: 0.4.1
|
|
11
11
|
license: Apache-2.0
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- read
|
|
@@ -47,9 +47,9 @@ tracker. Decomposition is tracker-agnostic; creation branches on the target.
|
|
|
47
47
|
(Step 1's own rule picks it — see below) and a milestone/epic to attach
|
|
48
48
|
tickets to.
|
|
49
49
|
|
|
50
|
-
There is no operator in a headless run: `ask_user`
|
|
51
|
-
|
|
52
|
-
will not produce a different result. **This skill treats headless
|
|
50
|
+
There is no operator in a headless run: `ask_user` is not registered, so
|
|
51
|
+
any call is refused as an unregistered tool rather than answered; that is
|
|
52
|
+
not a stall, and calling it again will not produce a different result. **This skill treats headless
|
|
53
53
|
degradation differently at each step below, because Step 3 gates an
|
|
54
54
|
outward, not-cleanly-reversible action — real tickets, GitHub issues or
|
|
55
55
|
persisted local tasks — not a document write:**
|