@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
|
@@ -2,73 +2,56 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
|
|
|
2
2
|
import {
|
|
3
3
|
resolveFdBinary,
|
|
4
4
|
resolveRgBinary
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JABWPKFY.js";
|
|
6
6
|
import {
|
|
7
7
|
webFetchToolSurface
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-BBV5TKE6.js";
|
|
9
9
|
import {
|
|
10
|
-
gitTool,
|
|
11
10
|
verifyToolSurface
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-GXCCHKN6.js";
|
|
13
12
|
import {
|
|
14
13
|
codeNavToolSurface
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import {
|
|
17
|
-
compileGlobRegex,
|
|
18
|
-
fallbackIgnoredDirs,
|
|
19
|
-
fdIgnoreArgs,
|
|
20
|
-
normalizeGlobInput,
|
|
21
|
-
rgIgnoreArgs
|
|
22
|
-
} from "./chunk-VG7TBQIY.js";
|
|
14
|
+
} from "./chunk-PWWSIB2A.js";
|
|
23
15
|
import {
|
|
24
16
|
contextToolSurface
|
|
25
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-KTFSFCVN.js";
|
|
26
18
|
import {
|
|
27
19
|
RESPONSE_SCHEMA_RUNTIME_ID,
|
|
28
20
|
bashTool,
|
|
29
21
|
builtin,
|
|
30
22
|
createAskUserTool,
|
|
31
|
-
networkToolsDisabled,
|
|
32
23
|
readMaxBytes,
|
|
33
24
|
readTool,
|
|
34
25
|
renderAgentLedger
|
|
35
|
-
} from "./chunk-
|
|
36
|
-
import {
|
|
37
|
-
createTaskBoardStore,
|
|
38
|
-
taskBoardCounts
|
|
39
|
-
} from "./chunk-L47TF46W.js";
|
|
26
|
+
} from "./chunk-TZ7MFRG4.js";
|
|
40
27
|
import {
|
|
41
28
|
hashToolCall
|
|
42
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-KF6GFW6O.js";
|
|
43
30
|
import {
|
|
44
|
-
|
|
45
|
-
|
|
31
|
+
createTaskBoardStore,
|
|
32
|
+
taskBoardCounts
|
|
33
|
+
} from "./chunk-7HBHHVCK.js";
|
|
46
34
|
import {
|
|
47
35
|
describeCallAction
|
|
48
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-2GPGAE5W.js";
|
|
49
37
|
import {
|
|
50
|
-
|
|
51
|
-
} from "./chunk-
|
|
38
|
+
networkToolsDisabled
|
|
39
|
+
} from "./chunk-SL2RDHKO.js";
|
|
52
40
|
import {
|
|
41
|
+
compileGlobRegex,
|
|
42
|
+
fallbackIgnoredDirs,
|
|
43
|
+
fdIgnoreArgs,
|
|
44
|
+
normalizeGlobInput,
|
|
53
45
|
resolveReadPath,
|
|
54
46
|
resolveToCwd,
|
|
47
|
+
rgIgnoreArgs,
|
|
55
48
|
toPosixPath
|
|
56
|
-
} from "./chunk-
|
|
57
|
-
import {
|
|
58
|
-
classify
|
|
59
|
-
} from "./chunk-B4OAX3SI.js";
|
|
60
|
-
import {
|
|
61
|
-
protectArtifact,
|
|
62
|
-
protectedArtifactMutationBlockReason
|
|
63
|
-
} from "./chunk-I7ZPNEJM.js";
|
|
64
|
-
import {
|
|
65
|
-
CLIO_ARTIFACT_DIR,
|
|
66
|
-
artifactDefaultPath
|
|
67
|
-
} from "./chunk-GYV6VZOC.js";
|
|
49
|
+
} from "./chunk-V552WL53.js";
|
|
68
50
|
import {
|
|
69
51
|
OBSERVATION_POLICY_SLACK_BYTES,
|
|
70
52
|
OBSERVE_SELF_CAPS,
|
|
71
53
|
commitObservationReservation,
|
|
54
|
+
createObservationPathFilter,
|
|
72
55
|
finalizeObservation,
|
|
73
56
|
isDispositionedToolResultError,
|
|
74
57
|
observationBudgetExhausted,
|
|
@@ -76,36 +59,58 @@ import {
|
|
|
76
59
|
reserveObservation,
|
|
77
60
|
toolResultContextText,
|
|
78
61
|
truncateHead
|
|
79
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-RLTT5GVY.js";
|
|
80
63
|
import {
|
|
81
64
|
GREP_MAX_LINE_LENGTH,
|
|
82
65
|
truncateLine
|
|
83
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-KECNXMDE.js";
|
|
84
67
|
import {
|
|
85
|
-
|
|
86
|
-
} from "./chunk-
|
|
68
|
+
formatModelRejection
|
|
69
|
+
} from "./chunk-4SVIVOMC.js";
|
|
70
|
+
import {
|
|
71
|
+
applyToolProfile
|
|
72
|
+
} from "./chunk-CBSKDFWL.js";
|
|
73
|
+
import {
|
|
74
|
+
classify
|
|
75
|
+
} from "./chunk-LUL5Z66S.js";
|
|
76
|
+
import {
|
|
77
|
+
protectArtifact,
|
|
78
|
+
protectedArtifactMutationBlockReason
|
|
79
|
+
} from "./chunk-M6TAYK66.js";
|
|
80
|
+
import {
|
|
81
|
+
gitTool
|
|
82
|
+
} from "./chunk-WJIMKGD6.js";
|
|
83
|
+
import {
|
|
84
|
+
CLIO_ARTIFACT_DIR,
|
|
85
|
+
artifactDefaultPath
|
|
86
|
+
} from "./chunk-NTTS3O53.js";
|
|
87
87
|
import {
|
|
88
88
|
typebox_exports
|
|
89
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-GH5ZR6JP.js";
|
|
90
90
|
import {
|
|
91
91
|
parseAgentLedgerBody
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-VQD7NH7Z.js";
|
|
93
93
|
import {
|
|
94
|
+
decisionRef,
|
|
94
95
|
skillActivationFromToolDetails
|
|
95
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-5ZMXGW7P.js";
|
|
97
|
+
import {
|
|
98
|
+
byteLength,
|
|
99
|
+
truncateUtf8
|
|
100
|
+
} from "./chunk-MYI32N4R.js";
|
|
96
101
|
import {
|
|
97
102
|
ToolNames,
|
|
98
103
|
isBuiltinToolName
|
|
99
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-EHOSNVVM.js";
|
|
105
|
+
import {
|
|
106
|
+
assertSafeId
|
|
107
|
+
} from "./chunk-UHW5V7HC.js";
|
|
100
108
|
import {
|
|
101
109
|
BusChannels
|
|
102
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-HL26ADLH.js";
|
|
103
111
|
import {
|
|
104
112
|
incompleteInstallationAdvice
|
|
105
|
-
} from "./chunk-
|
|
106
|
-
import {
|
|
107
|
-
buildSafeToolEnv
|
|
108
|
-
} from "./chunk-JSC3U7TI.js";
|
|
113
|
+
} from "./chunk-3A3CUMKA.js";
|
|
109
114
|
import {
|
|
110
115
|
GUARDRAIL_DEFAULTS,
|
|
111
116
|
resolveGuardrail,
|
|
@@ -113,14 +118,21 @@ import {
|
|
|
113
118
|
workerSynthesisReserveDirective,
|
|
114
119
|
workerToolCallCapExceededReason,
|
|
115
120
|
workerToolCallCapSynthesisReason
|
|
116
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-C27U2TYG.js";
|
|
122
|
+
import {
|
|
123
|
+
buildSafeToolEnv
|
|
124
|
+
} from "./chunk-GJ24ODAX.js";
|
|
117
125
|
import {
|
|
118
126
|
StringEnum,
|
|
119
127
|
engineStreamSimple
|
|
120
|
-
} from "./chunk-
|
|
128
|
+
} from "./chunk-5CMARGPF.js";
|
|
129
|
+
import {
|
|
130
|
+
clioDataDir,
|
|
131
|
+
clioStateDir
|
|
132
|
+
} from "./chunk-CTTI7G3T.js";
|
|
121
133
|
import {
|
|
122
134
|
init_esm_shims
|
|
123
|
-
} from "./chunk-
|
|
135
|
+
} from "./chunk-ECBHH7LU.js";
|
|
124
136
|
|
|
125
137
|
// src/domains/safety/protected-artifacts-registration.ts
|
|
126
138
|
init_esm_shims();
|
|
@@ -385,8 +397,9 @@ function readOrchTurnToolCallBudget() {
|
|
|
385
397
|
}
|
|
386
398
|
function createLoopGuardRegistration(options) {
|
|
387
399
|
const budget = options.turnBlockBudget ?? INTERACTIVE_LOOP_BLOCK_BUDGET;
|
|
388
|
-
const cap = options.toolCallCap;
|
|
389
|
-
let
|
|
400
|
+
const cap = options.toolBudgetAdvisory ? void 0 : options.toolCallCap;
|
|
401
|
+
let advisoryEmitted = false;
|
|
402
|
+
let softLimit = !options.toolBudgetAdvisory && options.toolCallSoftLimit !== void 0 && Number.isSafeInteger(options.toolCallSoftLimit) && options.toolCallSoftLimit > 0 && (cap === void 0 || options.toolCallSoftLimit <= cap) ? options.toolCallSoftLimit : void 0;
|
|
390
403
|
const synthesisLockout = options.turnSynthesisLockout === true;
|
|
391
404
|
let softReadReserve = options.toolCallSoftReadReserve ?? 0;
|
|
392
405
|
let softReadReserveThreshold = softLimit !== void 0 && softReadReserve > 0 && softLimit > softReadReserve ? softLimit - softReadReserve : null;
|
|
@@ -396,7 +409,7 @@ function createLoopGuardRegistration(options) {
|
|
|
396
409
|
let softReadReserveEntered = false;
|
|
397
410
|
let reserveDenials = { denials: 0 };
|
|
398
411
|
let deniedAttempts = 0;
|
|
399
|
-
const denialBudget =
|
|
412
|
+
const denialBudget = options.toolCallCap === void 0 ? void 0 : Math.max(options.toolCallCap, WIDE_BATCH_DENIAL_FLOOR);
|
|
400
413
|
const boundRunDenials = (effects, input) => {
|
|
401
414
|
if (denialBudget === void 0 || !effects.some((effect) => effect.kind === "block_tool")) return effects;
|
|
402
415
|
deniedAttempts += 1;
|
|
@@ -623,6 +636,14 @@ function createLoopGuardRegistration(options) {
|
|
|
623
636
|
recordSuccessfulResult(input);
|
|
624
637
|
recordResultForStagnation(input);
|
|
625
638
|
const effects = [...crossArgumentResultEffects(input)];
|
|
639
|
+
if (options.toolBudgetAdvisory && !advisoryEmitted && count >= (options.toolCallSoftLimit ?? options.toolCallCap ?? Infinity)) {
|
|
640
|
+
advisoryEmitted = true;
|
|
641
|
+
effects.push({
|
|
642
|
+
kind: "annotate_tool_result",
|
|
643
|
+
message: `Advisory tool estimate reached (${count} calls). Reassess remaining work and finish the assignment; tools remain available. Explicit task requirements still apply.`,
|
|
644
|
+
severity: "warn"
|
|
645
|
+
});
|
|
646
|
+
}
|
|
626
647
|
if (softReadReserveEntered && softLockout === null && deliveryTools.length === 0 && input.toolName === ToolNames.Read) {
|
|
627
648
|
effects.push({ kind: "require_tool", toolName: ToolNames.Read });
|
|
628
649
|
}
|
|
@@ -835,7 +856,7 @@ function projectToolResult(result) {
|
|
|
835
856
|
return { content: [{ type: "text", text: toolResultContextText(result) }], details };
|
|
836
857
|
}
|
|
837
858
|
return {
|
|
838
|
-
content: [{ type: "text", text: toolResultContextText(result) }],
|
|
859
|
+
content: [{ type: "text", text: toolResultContextText(result) }, ...result.images ?? []],
|
|
839
860
|
details,
|
|
840
861
|
...result.terminate === true ? { terminate: true } : {}
|
|
841
862
|
};
|
|
@@ -905,7 +926,7 @@ async function runValidatedToolCall(input) {
|
|
|
905
926
|
const toolDetails = isRecord(verdict.result.details) ? verdict.result.details : {};
|
|
906
927
|
const skillActivation = spec.name === ToolNames.Context ? skillActivationFromToolDetails(toolDetails, input.invokeOptions?.turnId) : null;
|
|
907
928
|
const result = {
|
|
908
|
-
content: [{ type: "text", text: toolResultContextText(verdict.result) }],
|
|
929
|
+
content: [{ type: "text", text: toolResultContextText(verdict.result) }, ...verdict.result.images ?? []],
|
|
909
930
|
details: { ...toolDetails, kind: "ok" }
|
|
910
931
|
};
|
|
911
932
|
if (verdict.result.terminate === true) {
|
|
@@ -1023,7 +1044,10 @@ function effectiveToolNames(input) {
|
|
|
1023
1044
|
function resolveSessionTools(runtime, toolRegistry, invokeOptions, telemetry) {
|
|
1024
1045
|
if (!toolRegistry || runtime.runtimeResolution.capabilityDecisions.tools !== true) return [];
|
|
1025
1046
|
const input = { registry: toolRegistry };
|
|
1026
|
-
|
|
1047
|
+
input.invokeOptions = () => ({
|
|
1048
|
+
...invokeOptions?.(),
|
|
1049
|
+
supportsImages: runtime.runtimeResolution.capabilityDecisions.vision === true
|
|
1050
|
+
});
|
|
1027
1051
|
if (telemetry) input.telemetry = telemetry;
|
|
1028
1052
|
return resolveAgentTools(input);
|
|
1029
1053
|
}
|
|
@@ -1111,7 +1135,7 @@ function patchToolChoiceNamedPayload(payload, model, toolName) {
|
|
|
1111
1135
|
if (Object.keys(outputConfig).length > 0) patched.output_config = outputConfig;
|
|
1112
1136
|
else delete patched.output_config;
|
|
1113
1137
|
}
|
|
1114
|
-
return { ...patched,
|
|
1138
|
+
return { ...patched, tool_choice: { type: "tool", name: toolName } };
|
|
1115
1139
|
}
|
|
1116
1140
|
if (model.api === "google-generative-ai" || model.api === "google-vertex") {
|
|
1117
1141
|
if (!isRecord2(payload.config) || payload.config.tools === void 0 || payload.config.tools === null)
|
|
@@ -1486,6 +1510,115 @@ var credentialPresentTool = {
|
|
|
1486
1510
|
}
|
|
1487
1511
|
};
|
|
1488
1512
|
|
|
1513
|
+
// src/tools/decide.ts
|
|
1514
|
+
init_esm_shims();
|
|
1515
|
+
var DECIDE_CAPS = Object.freeze({
|
|
1516
|
+
keyBytes: 64,
|
|
1517
|
+
valueBytes: 512,
|
|
1518
|
+
alternatives: 6,
|
|
1519
|
+
alternativeBytes: 256,
|
|
1520
|
+
rationaleBytes: 1024,
|
|
1521
|
+
labelBytes: 128
|
|
1522
|
+
});
|
|
1523
|
+
var KEBAB_KEY = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
|
|
1524
|
+
function boundedText(value, field, cap) {
|
|
1525
|
+
if (typeof value !== "string") return new Error(`decide: ${field} must be a string`);
|
|
1526
|
+
const trimmed = value.trim();
|
|
1527
|
+
if (trimmed.length === 0) return new Error(`decide: ${field} is required`);
|
|
1528
|
+
if (byteLength(trimmed) > cap) return new Error(`decide: ${field} exceeds the ${cap}-byte cap`);
|
|
1529
|
+
return trimmed;
|
|
1530
|
+
}
|
|
1531
|
+
function boundedAlternatives(value) {
|
|
1532
|
+
if (!Array.isArray(value) || value.length === 0) {
|
|
1533
|
+
return new Error("decide: alternatives must list at least one option you rejected");
|
|
1534
|
+
}
|
|
1535
|
+
if (value.length > DECIDE_CAPS.alternatives) {
|
|
1536
|
+
return new Error(`decide: alternatives exceeds the ${DECIDE_CAPS.alternatives}-entry cap`);
|
|
1537
|
+
}
|
|
1538
|
+
const alternatives = [];
|
|
1539
|
+
for (const [index, entry] of value.entries()) {
|
|
1540
|
+
const text = boundedText(entry, `alternatives[${index}]`, DECIDE_CAPS.alternativeBytes);
|
|
1541
|
+
if (text instanceof Error) return text;
|
|
1542
|
+
alternatives.push(text);
|
|
1543
|
+
}
|
|
1544
|
+
return alternatives;
|
|
1545
|
+
}
|
|
1546
|
+
function createDecideTool(deps = {}) {
|
|
1547
|
+
return {
|
|
1548
|
+
name: ToolNames.Decide,
|
|
1549
|
+
description: "Record a design decision between viable options, with rejected alternatives and rationale, before implementing. Verify implementation against the active choice before commit; decision trailers do not prove adherence. If policy changes, a call with the same key revises your earlier agent choice; operator choices require operator revision through ask_user. Record the revision before commit.",
|
|
1550
|
+
parameters: typebox_exports.Object({
|
|
1551
|
+
key: typebox_exports.String({
|
|
1552
|
+
description: `Stable kebab-case name for the decision, e.g. "cache-key-shape" (at most ${DECIDE_CAPS.keyBytes} bytes).`
|
|
1553
|
+
}),
|
|
1554
|
+
value: typebox_exports.String({ description: `The option you chose (at most ${DECIDE_CAPS.valueBytes} bytes).` }),
|
|
1555
|
+
alternatives: typebox_exports.Array(typebox_exports.String(), {
|
|
1556
|
+
description: `Options you considered and rejected, 1 to ${DECIDE_CAPS.alternatives} entries.`
|
|
1557
|
+
}),
|
|
1558
|
+
rationale: typebox_exports.String({
|
|
1559
|
+
description: `Why the chosen option won over the alternatives (at most ${DECIDE_CAPS.rationaleBytes} bytes).`
|
|
1560
|
+
}),
|
|
1561
|
+
label: typebox_exports.Optional(typebox_exports.String({ description: "Short human-readable title for the decision." }))
|
|
1562
|
+
}),
|
|
1563
|
+
// Read class on purpose: the only effect is one session-ledger append,
|
|
1564
|
+
// so it must stay available at every autonomy level without a prompt.
|
|
1565
|
+
baseActionClass: "read",
|
|
1566
|
+
executionMode: "sequential",
|
|
1567
|
+
async run(args) {
|
|
1568
|
+
const key = boundedText(args.key, "key", DECIDE_CAPS.keyBytes);
|
|
1569
|
+
if (key instanceof Error) return { kind: "error", message: key.message };
|
|
1570
|
+
if (!KEBAB_KEY.test(key)) {
|
|
1571
|
+
return { kind: "error", message: "decide: key must be kebab-case (lowercase letters, digits, single hyphens)" };
|
|
1572
|
+
}
|
|
1573
|
+
const value = boundedText(args.value, "value", DECIDE_CAPS.valueBytes);
|
|
1574
|
+
if (value instanceof Error) return { kind: "error", message: value.message };
|
|
1575
|
+
const alternatives = boundedAlternatives(args.alternatives);
|
|
1576
|
+
if (alternatives instanceof Error) return { kind: "error", message: alternatives.message };
|
|
1577
|
+
const rationale = boundedText(args.rationale, "rationale", DECIDE_CAPS.rationaleBytes);
|
|
1578
|
+
if (rationale instanceof Error) return { kind: "error", message: rationale.message };
|
|
1579
|
+
let label;
|
|
1580
|
+
if (args.label !== void 0 && args.label !== null) {
|
|
1581
|
+
const bounded = boundedText(args.label, "label", DECIDE_CAPS.labelBytes);
|
|
1582
|
+
if (bounded instanceof Error) return { kind: "error", message: bounded.message };
|
|
1583
|
+
label = bounded;
|
|
1584
|
+
}
|
|
1585
|
+
if (deps.decisionBoard === void 0) {
|
|
1586
|
+
return { kind: "error", message: "decide: no session decision board is available in this context" };
|
|
1587
|
+
}
|
|
1588
|
+
let outcome;
|
|
1589
|
+
try {
|
|
1590
|
+
outcome = deps.decisionBoard.recordAgentDecision({
|
|
1591
|
+
key,
|
|
1592
|
+
value,
|
|
1593
|
+
alternatives,
|
|
1594
|
+
rationale,
|
|
1595
|
+
...label !== void 0 ? { label } : {}
|
|
1596
|
+
});
|
|
1597
|
+
} catch (error) {
|
|
1598
|
+
return { kind: "error", message: error instanceof Error ? error.message : String(error) };
|
|
1599
|
+
}
|
|
1600
|
+
const ref = decisionRef(outcome.entry.interviewId, key);
|
|
1601
|
+
const supersededNote = outcome.superseded === null ? "" : ` (supersedes ${decisionRef(outcome.superseded.interviewId, outcome.superseded.key)})`;
|
|
1602
|
+
return {
|
|
1603
|
+
kind: "ok",
|
|
1604
|
+
output: `decision recorded: ${key} = ${value} [${ref}]${supersededNote}
|
|
1605
|
+
`,
|
|
1606
|
+
details: {
|
|
1607
|
+
decision: {
|
|
1608
|
+
ref,
|
|
1609
|
+
key,
|
|
1610
|
+
value,
|
|
1611
|
+
alternatives,
|
|
1612
|
+
rationale,
|
|
1613
|
+
...label !== void 0 ? { label } : {},
|
|
1614
|
+
...outcome.superseded !== null ? { superseded: decisionRef(outcome.superseded.interviewId, outcome.superseded.key) } : {}
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
};
|
|
1618
|
+
}
|
|
1619
|
+
};
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1489
1622
|
// src/tools/edit.ts
|
|
1490
1623
|
init_esm_shims();
|
|
1491
1624
|
import { readFileSync, writeFileSync as writeFileSync2 } from "node:fs";
|
|
@@ -1493,10 +1626,10 @@ import { readFileSync, writeFileSync as writeFileSync2 } from "node:fs";
|
|
|
1493
1626
|
// src/tools/edit-diff.ts
|
|
1494
1627
|
init_esm_shims();
|
|
1495
1628
|
|
|
1496
|
-
// node_modules/diff/libesm/index.js
|
|
1629
|
+
// node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/index.js
|
|
1497
1630
|
init_esm_shims();
|
|
1498
1631
|
|
|
1499
|
-
// node_modules/diff/libesm/diff/base.js
|
|
1632
|
+
// node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/base.js
|
|
1500
1633
|
init_esm_shims();
|
|
1501
1634
|
var Diff = class {
|
|
1502
1635
|
diff(oldStr, newStr, options = {}) {
|
|
@@ -1699,10 +1832,10 @@ var Diff = class {
|
|
|
1699
1832
|
}
|
|
1700
1833
|
};
|
|
1701
1834
|
|
|
1702
|
-
// node_modules/diff/libesm/diff/word.js
|
|
1835
|
+
// node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
|
|
1703
1836
|
init_esm_shims();
|
|
1704
1837
|
|
|
1705
|
-
// node_modules/diff/libesm/util/string.js
|
|
1838
|
+
// node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/util/string.js
|
|
1706
1839
|
init_esm_shims();
|
|
1707
1840
|
function longestCommonPrefix(str1, str2) {
|
|
1708
1841
|
let i;
|
|
@@ -1831,7 +1964,7 @@ function leadingAndTrailingWs(string, segmenter) {
|
|
|
1831
1964
|
return [head, tail];
|
|
1832
1965
|
}
|
|
1833
1966
|
|
|
1834
|
-
// node_modules/diff/libesm/diff/word.js
|
|
1967
|
+
// node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
|
|
1835
1968
|
var extendedWordChars = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";
|
|
1836
1969
|
var tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`, "ug");
|
|
1837
1970
|
var WordDiff = class extends Diff {
|
|
@@ -1974,7 +2107,7 @@ function diffWordsWithSpace(oldStr, newStr, options) {
|
|
|
1974
2107
|
return wordsWithSpaceDiff.diff(oldStr, newStr, options);
|
|
1975
2108
|
}
|
|
1976
2109
|
|
|
1977
|
-
// node_modules/diff/libesm/diff/line.js
|
|
2110
|
+
// node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/line.js
|
|
1978
2111
|
init_esm_shims();
|
|
1979
2112
|
var LineDiff = class extends Diff {
|
|
1980
2113
|
constructor() {
|
|
@@ -2515,6 +2648,88 @@ var editTool = {
|
|
|
2515
2648
|
}
|
|
2516
2649
|
};
|
|
2517
2650
|
|
|
2651
|
+
// src/tools/evidence.ts
|
|
2652
|
+
init_esm_shims();
|
|
2653
|
+
var EVIDENCE_TOOL_MAX_BYTES = 16384;
|
|
2654
|
+
function boundedResult(value) {
|
|
2655
|
+
const serialized = JSON.stringify(value, null, 2);
|
|
2656
|
+
if (Buffer.byteLength(serialized, "utf8") <= EVIDENCE_TOOL_MAX_BYTES) {
|
|
2657
|
+
return { kind: "ok", output: serialized, details: { truncated: false } };
|
|
2658
|
+
}
|
|
2659
|
+
const hint = "Inspect one run to narrow the output; this preview is incomplete JSON text.";
|
|
2660
|
+
let preview = truncateUtf8(serialized, EVIDENCE_TOOL_MAX_BYTES, "");
|
|
2661
|
+
let output = JSON.stringify({ truncated: true, hint, preview });
|
|
2662
|
+
while (Buffer.byteLength(output, "utf8") > EVIDENCE_TOOL_MAX_BYTES) {
|
|
2663
|
+
const excess = Buffer.byteLength(output, "utf8") - EVIDENCE_TOOL_MAX_BYTES;
|
|
2664
|
+
preview = truncateUtf8(preview, Math.max(0, Buffer.byteLength(preview, "utf8") - excess), "");
|
|
2665
|
+
output = JSON.stringify({ truncated: true, hint, preview });
|
|
2666
|
+
}
|
|
2667
|
+
return { kind: "ok", output, details: { truncated: true } };
|
|
2668
|
+
}
|
|
2669
|
+
var evidenceTool = {
|
|
2670
|
+
name: ToolNames.Evidence,
|
|
2671
|
+
description: "Read canonical evidence as JSON. List recent bundles, inspect a bundle's overview, trust axes and tier, gate decisions, and findings, or build/read evidence for a run.",
|
|
2672
|
+
parameters: typebox_exports.Object({
|
|
2673
|
+
mode: StringEnum(["list", "inspect", "run"]),
|
|
2674
|
+
id: typebox_exports.Optional(typebox_exports.String({ description: "Evidence bundle id for inspect." })),
|
|
2675
|
+
runId: typebox_exports.Optional(typebox_exports.String({ description: "Run id for run." }))
|
|
2676
|
+
}),
|
|
2677
|
+
baseActionClass: "read",
|
|
2678
|
+
// Run mode may materialize a derived bundle in Clio's data directory.
|
|
2679
|
+
executionMode: "sequential",
|
|
2680
|
+
async run(args) {
|
|
2681
|
+
const mode = args.mode;
|
|
2682
|
+
if (mode !== "list" && mode !== "inspect" && mode !== "run") {
|
|
2683
|
+
return { kind: "error", message: "evidence: mode must be list, inspect, or run" };
|
|
2684
|
+
}
|
|
2685
|
+
try {
|
|
2686
|
+
const dataDir = clioDataDir();
|
|
2687
|
+
if (mode === "list") {
|
|
2688
|
+
const { evidenceInventorySnapshot } = await import("./inventory-K2OZ36YJ.js");
|
|
2689
|
+
return boundedResult(await evidenceInventorySnapshot(Date.now, dataDir));
|
|
2690
|
+
}
|
|
2691
|
+
const id = mode === "inspect" ? args.id : args.runId;
|
|
2692
|
+
if (typeof id !== "string" || id.length === 0) {
|
|
2693
|
+
return { kind: "error", message: `evidence: ${mode} requires ${mode === "inspect" ? "id" : "runId"}` };
|
|
2694
|
+
}
|
|
2695
|
+
assertSafeId(id, mode === "inspect" ? "evidence" : "run");
|
|
2696
|
+
const { buildEvidence, EvidenceNotFoundError, inspectEvidence, loadEvidenceGateDecisions } = await import("./evidence-DTGEN456.js");
|
|
2697
|
+
const { evidenceDetailSnapshot } = await import("./detail-5572VLBO.js");
|
|
2698
|
+
let evidenceId = mode === "run" ? `run-${id}` : id;
|
|
2699
|
+
let inspected;
|
|
2700
|
+
try {
|
|
2701
|
+
inspected = await inspectEvidence(dataDir, evidenceId);
|
|
2702
|
+
} catch (error) {
|
|
2703
|
+
if (mode !== "run" || !(error instanceof EvidenceNotFoundError)) throw error;
|
|
2704
|
+
try {
|
|
2705
|
+
evidenceId = (await buildEvidence({ dataDir, stateDir: clioStateDir(), runId: id })).evidenceId;
|
|
2706
|
+
} catch (buildError) {
|
|
2707
|
+
if (buildError instanceof Error && (buildError.message === "run ledger not found" || buildError.message === `run not found: ${id}`))
|
|
2708
|
+
throw new EvidenceNotFoundError(evidenceId);
|
|
2709
|
+
throw buildError;
|
|
2710
|
+
}
|
|
2711
|
+
inspected = await inspectEvidence(dataDir, evidenceId);
|
|
2712
|
+
}
|
|
2713
|
+
return boundedResult({
|
|
2714
|
+
...inspected,
|
|
2715
|
+
...await evidenceDetailSnapshot(evidenceId, Date.now, dataDir),
|
|
2716
|
+
gateDecisions: await loadEvidenceGateDecisions(dataDir, evidenceId)
|
|
2717
|
+
});
|
|
2718
|
+
} catch (error) {
|
|
2719
|
+
const absent = error instanceof Error && error.name === "EvidenceNotFoundError";
|
|
2720
|
+
return {
|
|
2721
|
+
kind: "error",
|
|
2722
|
+
message: truncateUtf8(
|
|
2723
|
+
`evidence: ${error instanceof Error ? error.message : String(error)}`,
|
|
2724
|
+
EVIDENCE_TOOL_MAX_BYTES - 3,
|
|
2725
|
+
"..."
|
|
2726
|
+
),
|
|
2727
|
+
details: { code: absent ? "artifact_absent" : "evidence_error", artifactAbsent: absent }
|
|
2728
|
+
};
|
|
2729
|
+
}
|
|
2730
|
+
}
|
|
2731
|
+
};
|
|
2732
|
+
|
|
2518
2733
|
// src/tools/find.ts
|
|
2519
2734
|
init_esm_shims();
|
|
2520
2735
|
import { existsSync, statSync } from "node:fs";
|
|
@@ -2729,11 +2944,13 @@ function renderFindResult(input) {
|
|
|
2729
2944
|
if (ordered.paths.length === 0) {
|
|
2730
2945
|
return finalizeObservation({
|
|
2731
2946
|
tool: ToolNames.Find,
|
|
2947
|
+
withheldPaths: input.withheldPaths,
|
|
2732
2948
|
unit: "paths",
|
|
2733
|
-
output: "No files found matching pattern",
|
|
2949
|
+
output: "No visible files found matching pattern",
|
|
2734
2950
|
shownCount: 0,
|
|
2735
|
-
totalCount: 0,
|
|
2736
|
-
truncated:
|
|
2951
|
+
totalCount: collected >= collectLimit ? null : 0,
|
|
2952
|
+
truncated: collected >= collectLimit,
|
|
2953
|
+
...collected >= collectLimit ? { next: `limit=${limit * 2}` } : {},
|
|
2737
2954
|
reservation,
|
|
2738
2955
|
...options ? { options } : {}
|
|
2739
2956
|
});
|
|
@@ -2758,6 +2975,7 @@ function renderFindResult(input) {
|
|
|
2758
2975
|
}
|
|
2759
2976
|
return finalizeObservation({
|
|
2760
2977
|
tool: ToolNames.Find,
|
|
2978
|
+
withheldPaths: input.withheldPaths,
|
|
2761
2979
|
unit: "paths",
|
|
2762
2980
|
output: truncation.content,
|
|
2763
2981
|
// Offload only when the byte cap cut collected paths; a bare result
|
|
@@ -2827,10 +3045,14 @@ var findTool = {
|
|
|
2827
3045
|
return { kind: "error", message: `find: ${message}` };
|
|
2828
3046
|
}
|
|
2829
3047
|
}
|
|
3048
|
+
const collectedCount = collectedPaths.length;
|
|
3049
|
+
const pathFilter = createObservationPathFilter(process.cwd(), options?.allowsObservationPath);
|
|
3050
|
+
collectedPaths = collectedPaths.filter((entry) => pathFilter.allows(join(searchPath, entry)));
|
|
2830
3051
|
const ordered = order === "mtime" ? orderByMtime(collectedPaths, searchPath, limit, collectLimit) : { paths: collectedPaths.slice(0, limit), candidateCapHit: false, candidateCap: null };
|
|
2831
3052
|
return renderFindResult({
|
|
3053
|
+
withheldPaths: pathFilter.withheldPaths,
|
|
2832
3054
|
ordered,
|
|
2833
|
-
collected:
|
|
3055
|
+
collected: collectedCount,
|
|
2834
3056
|
collectLimit,
|
|
2835
3057
|
limit,
|
|
2836
3058
|
order,
|
|
@@ -2880,6 +3102,7 @@ function renderGrepResult(input) {
|
|
|
2880
3102
|
if (lines.length === 0) {
|
|
2881
3103
|
return finalizeObservation({
|
|
2882
3104
|
tool: ToolNames.Grep,
|
|
3105
|
+
withheldPaths: input.withheldPaths,
|
|
2883
3106
|
unit: MODE_UNITS[mode],
|
|
2884
3107
|
output: NO_MATCH_OUTPUT,
|
|
2885
3108
|
shownCount: 0,
|
|
@@ -2910,6 +3133,7 @@ function renderGrepResult(input) {
|
|
|
2910
3133
|
}
|
|
2911
3134
|
return finalizeObservation({
|
|
2912
3135
|
tool: ToolNames.Grep,
|
|
3136
|
+
withheldPaths: input.withheldPaths,
|
|
2913
3137
|
unit: MODE_UNITS[mode],
|
|
2914
3138
|
output,
|
|
2915
3139
|
// Offload only when the byte cap cut collected content; a bare match
|
|
@@ -2965,6 +3189,7 @@ async function runRipgrep(input) {
|
|
|
2965
3189
|
const lineNumber = data?.line_number;
|
|
2966
3190
|
const lineText = data?.lines?.text;
|
|
2967
3191
|
if (typeof filePath !== "string" || typeof lineNumber !== "number" || typeof lineText !== "string") return;
|
|
3192
|
+
if (!input.pathFilter.allows(filePath)) return;
|
|
2968
3193
|
const { text, wasTruncated } = truncateLine(sanitizeMatchText(lineText));
|
|
2969
3194
|
if (wasTruncated) linesTruncated = true;
|
|
2970
3195
|
const isMatch = type === "match";
|
|
@@ -2983,6 +3208,8 @@ async function runRipgrep(input) {
|
|
|
2983
3208
|
const onListLine = (line, stop) => {
|
|
2984
3209
|
const trimmed = line.replace(/\r$/, "");
|
|
2985
3210
|
if (trimmed.length === 0) return;
|
|
3211
|
+
const filePath = input.mode === "count" ? trimmed.slice(0, trimmed.lastIndexOf(":")) : trimmed;
|
|
3212
|
+
if (!input.pathFilter.allows(filePath)) return;
|
|
2986
3213
|
let text;
|
|
2987
3214
|
if (input.mode === "count") {
|
|
2988
3215
|
const sep = trimmed.lastIndexOf(":");
|
|
@@ -3013,6 +3240,7 @@ async function runRipgrep(input) {
|
|
|
3013
3240
|
return { kind: "error", message: `grep: ${result.stderr.trim() || `ripgrep exited with code ${result.exitCode}`}` };
|
|
3014
3241
|
}
|
|
3015
3242
|
return renderGrepResult({
|
|
3243
|
+
withheldPaths: input.pathFilter.withheldPaths,
|
|
3016
3244
|
mode: input.mode,
|
|
3017
3245
|
lines: rendered,
|
|
3018
3246
|
matchCount,
|
|
@@ -3065,7 +3293,7 @@ function fallbackGrep(input) {
|
|
|
3065
3293
|
rendered.push({ text: truncatedLine.text, isMatch });
|
|
3066
3294
|
};
|
|
3067
3295
|
const searchFile = (filePath) => {
|
|
3068
|
-
if (limitHit) return;
|
|
3296
|
+
if (limitHit || !input.pathFilter.allows(filePath)) return;
|
|
3069
3297
|
let buffer;
|
|
3070
3298
|
try {
|
|
3071
3299
|
const stat = statSync2(filePath);
|
|
@@ -3138,6 +3366,7 @@ function fallbackGrep(input) {
|
|
|
3138
3366
|
else searchFile(input.searchPath);
|
|
3139
3367
|
if (signal?.aborted) return { kind: "error", message: "grep: operation aborted" };
|
|
3140
3368
|
return renderGrepResult({
|
|
3369
|
+
withheldPaths: input.pathFilter.withheldPaths,
|
|
3141
3370
|
mode: input.mode,
|
|
3142
3371
|
lines: rendered,
|
|
3143
3372
|
matchCount,
|
|
@@ -3195,6 +3424,7 @@ var grepTool = {
|
|
|
3195
3424
|
});
|
|
3196
3425
|
}
|
|
3197
3426
|
const shared = {
|
|
3427
|
+
pathFilter: createObservationPathFilter(process.cwd(), options?.allowsObservationPath),
|
|
3198
3428
|
mode,
|
|
3199
3429
|
pattern,
|
|
3200
3430
|
searchPath,
|
|
@@ -3370,6 +3600,59 @@ ${output}`,
|
|
|
3370
3600
|
};
|
|
3371
3601
|
}
|
|
3372
3602
|
|
|
3603
|
+
// src/tools/limitation.ts
|
|
3604
|
+
init_esm_shims();
|
|
3605
|
+
var LIMITATION_REASONS = ["no-runner", "blocked", "out-of-scope", "environment", "other"];
|
|
3606
|
+
function isLimitationReason(value) {
|
|
3607
|
+
return typeof value === "string" && LIMITATION_REASONS.includes(value);
|
|
3608
|
+
}
|
|
3609
|
+
function trimString2(value) {
|
|
3610
|
+
if (typeof value !== "string") return null;
|
|
3611
|
+
const trimmed = value.trim();
|
|
3612
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
3613
|
+
}
|
|
3614
|
+
function normalizePaths(value) {
|
|
3615
|
+
if (value === void 0 || value === null) return [];
|
|
3616
|
+
if (!Array.isArray(value)) return null;
|
|
3617
|
+
const paths = [];
|
|
3618
|
+
for (const item of value) {
|
|
3619
|
+
const path4 = trimString2(item);
|
|
3620
|
+
if (path4 === null) return null;
|
|
3621
|
+
if (!paths.includes(path4)) paths.push(path4);
|
|
3622
|
+
}
|
|
3623
|
+
return paths;
|
|
3624
|
+
}
|
|
3625
|
+
var limitationTool = {
|
|
3626
|
+
name: ToolNames.Limitation,
|
|
3627
|
+
description: "Record what this turn could not verify and why. Call it once, before your final reply, when you changed files but could not run validation; the receipt stands in for validation evidence at the finish gate.",
|
|
3628
|
+
parameters: typebox_exports.Object({
|
|
3629
|
+
scope: typebox_exports.String({ description: "What could not be verified, in one sentence." }),
|
|
3630
|
+
reason: StringEnum(LIMITATION_REASONS, {
|
|
3631
|
+
description: "no-runner: no test or build runner is available; blocked: a safety gate or denial stopped the check; out-of-scope: verification was excluded by the task; environment: the environment cannot run the check; other."
|
|
3632
|
+
}),
|
|
3633
|
+
paths: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String(), { description: "Repository-relative paths left unverified." }))
|
|
3634
|
+
}),
|
|
3635
|
+
baseActionClass: "read",
|
|
3636
|
+
executionMode: "parallel",
|
|
3637
|
+
async run(args) {
|
|
3638
|
+
const scope = trimString2(args.scope);
|
|
3639
|
+
if (scope === null) return { kind: "error", message: "limitation: scope is required" };
|
|
3640
|
+
if (!isLimitationReason(args.reason)) {
|
|
3641
|
+
return { kind: "error", message: `limitation: reason must be one of ${LIMITATION_REASONS.join(", ")}` };
|
|
3642
|
+
}
|
|
3643
|
+
const paths = normalizePaths(args.paths);
|
|
3644
|
+
if (paths === null) return { kind: "error", message: "limitation: paths must be an array of non-empty strings" };
|
|
3645
|
+
const limitation = { scope, reason: args.reason, paths };
|
|
3646
|
+
const pathSuffix = paths.length > 0 ? ` paths=${paths.join(",")}` : "";
|
|
3647
|
+
return {
|
|
3648
|
+
kind: "ok",
|
|
3649
|
+
output: `limitation recorded: ${scope} (reason=${limitation.reason}${pathSuffix})
|
|
3650
|
+
`,
|
|
3651
|
+
details: { limitation }
|
|
3652
|
+
};
|
|
3653
|
+
}
|
|
3654
|
+
};
|
|
3655
|
+
|
|
3373
3656
|
// src/tools/ls.ts
|
|
3374
3657
|
init_esm_shims();
|
|
3375
3658
|
import { readdirSync as readdirSync2, statSync as statSync3 } from "node:fs";
|
|
@@ -3411,7 +3694,8 @@ var lsTool = {
|
|
|
3411
3694
|
});
|
|
3412
3695
|
}
|
|
3413
3696
|
try {
|
|
3414
|
-
const
|
|
3697
|
+
const pathFilter = createObservationPathFilter(process.cwd(), options?.allowsObservationPath);
|
|
3698
|
+
const entries = readdirSync2(root).filter((entry) => pathFilter.allows(path3.join(root, entry))).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase()));
|
|
3415
3699
|
const outputEntries = [];
|
|
3416
3700
|
let entryLimitReached = false;
|
|
3417
3701
|
for (const entry of entries) {
|
|
@@ -3428,6 +3712,7 @@ var lsTool = {
|
|
|
3428
3712
|
if (outputEntries.length === 0) {
|
|
3429
3713
|
return finalizeObservation({
|
|
3430
3714
|
tool: ToolNames.Ls,
|
|
3715
|
+
withheldPaths: pathFilter.withheldPaths,
|
|
3431
3716
|
unit: "entries",
|
|
3432
3717
|
output: "(empty directory)",
|
|
3433
3718
|
shownCount: 0,
|
|
@@ -3445,6 +3730,7 @@ var lsTool = {
|
|
|
3445
3730
|
const truncated = entryLimitReached || truncation.truncated;
|
|
3446
3731
|
return finalizeObservation({
|
|
3447
3732
|
tool: ToolNames.Ls,
|
|
3733
|
+
withheldPaths: pathFilter.withheldPaths,
|
|
3448
3734
|
unit: "entries",
|
|
3449
3735
|
output: truncation.content,
|
|
3450
3736
|
// Offload only when the byte cap cut collected entries; a bare
|
|
@@ -3467,6 +3753,7 @@ var lsTool = {
|
|
|
3467
3753
|
// src/tools/policy.ts
|
|
3468
3754
|
init_esm_shims();
|
|
3469
3755
|
var TOOL_PLANES = {
|
|
3756
|
+
[ToolNames.Evidence]: { plane: "observe", actionClass: "read", executionMode: "sequential" },
|
|
3470
3757
|
[ToolNames.Read]: { plane: "observe", actionClass: "read", executionMode: "parallel" },
|
|
3471
3758
|
[ToolNames.Grep]: { plane: "observe", actionClass: "read", executionMode: "parallel" },
|
|
3472
3759
|
[ToolNames.Find]: { plane: "observe", actionClass: "read", executionMode: "parallel" },
|
|
@@ -3499,6 +3786,14 @@ var TOOL_PLANES = {
|
|
|
3499
3786
|
// panes. It mutates no workspace, so it stays read class; sequential because
|
|
3500
3787
|
// two pane operations in one batch would race the same pane registry.
|
|
3501
3788
|
[ToolNames.Panes]: { plane: "orchestrate", actionClass: "read", executionMode: "sequential" },
|
|
3789
|
+
// limitation records a typed receipt in the session ledger and nothing
|
|
3790
|
+
// else: no filesystem, no shell. Read class so it never trips a safety
|
|
3791
|
+
// gate; parallel because the call is pure and idempotent.
|
|
3792
|
+
[ToolNames.Limitation]: { plane: "orchestrate", actionClass: "read", executionMode: "parallel" },
|
|
3793
|
+
// decide appends one decision-board entry to the session ledger and
|
|
3794
|
+
// nothing else. Read class so it never trips a safety gate; sequential so
|
|
3795
|
+
// two decisions in one batch never race the supersede lookup.
|
|
3796
|
+
[ToolNames.Decide]: { plane: "orchestrate", actionClass: "read", executionMode: "sequential" },
|
|
3502
3797
|
[ToolNames.WebFetch]: { plane: "retrieve", actionClass: "read", executionMode: "parallel" },
|
|
3503
3798
|
[ToolNames.AskUser]: { plane: "interact", actionClass: "read", executionMode: "sequential" },
|
|
3504
3799
|
[ToolNames.Artifact]: { plane: "artifact", actionClass: "write", executionMode: "sequential" }
|
|
@@ -3593,7 +3888,7 @@ var STATUS_MARK = {
|
|
|
3593
3888
|
};
|
|
3594
3889
|
function waitingTrailer(tasks) {
|
|
3595
3890
|
return tasks.filter((task) => task.status === "open" || task.status === "handed").map(
|
|
3596
|
-
(task) => `operator tasks waiting: ${task.id} ${JSON.stringify(task.title)} \u2014 pick
|
|
3891
|
+
(task) => `operator tasks waiting: ${task.id} ${JSON.stringify(task.title)} \u2014 durable status=${task.status}; not completed; pick only if this is the intended operator task, with action="pick" id="${task.id}" before work`
|
|
3597
3892
|
);
|
|
3598
3893
|
}
|
|
3599
3894
|
function renderTaskBoardText(board, userTasks = []) {
|
|
@@ -3605,9 +3900,28 @@ function renderTaskBoardText(board, userTasks = []) {
|
|
|
3605
3900
|
if (task.status === "blocked" && task.reason) line += ` \u2014 blocked: ${task.reason}`;
|
|
3606
3901
|
if (task.status === "cancelled" && task.reason) line += ` \u2014 dropped: ${task.reason}`;
|
|
3607
3902
|
lines.push(line);
|
|
3903
|
+
const operatorTask = userTasks.find((item) => item.id === task.userTaskId);
|
|
3904
|
+
if (task.userTaskId) {
|
|
3905
|
+
lines.push(
|
|
3906
|
+
` operator task ${task.userTaskId}: durable status=${operatorTask?.status ?? "unavailable"}; session=${operatorTask?.handedSessionId ?? "unlinked"}; board task=${operatorTask?.boardTaskId ?? "unlinked"}`
|
|
3907
|
+
);
|
|
3908
|
+
}
|
|
3909
|
+
const outputs = operatorTask?.acceptance?.expectedOutputs;
|
|
3910
|
+
if (outputs?.length) lines.push(` expected outputs: ${outputs.join(", ")}`);
|
|
3911
|
+
for (const item of task.requiredValidationEvidence ?? []) {
|
|
3912
|
+
if (item.status === "required") {
|
|
3913
|
+
lines.push(
|
|
3914
|
+
` acceptance requirement: ${item.command} (${item.notes}; declaration only; execution status is in verification receipts)`
|
|
3915
|
+
);
|
|
3916
|
+
} else {
|
|
3917
|
+
lines.push(` acceptance: ${item.command} (${item.status}; ${item.notes})`);
|
|
3918
|
+
}
|
|
3919
|
+
}
|
|
3608
3920
|
}
|
|
3609
3921
|
if (counts.open > 0 && counts.active === 0) {
|
|
3610
|
-
lines.push(
|
|
3922
|
+
lines.push(
|
|
3923
|
+
`next: start only an authorized task with action="start" before working it; block proposed implementation with a note naming the pending operator decision, or drop it, and wait`
|
|
3924
|
+
);
|
|
3611
3925
|
}
|
|
3612
3926
|
lines.push(...waitingTrailer(userTasks));
|
|
3613
3927
|
return lines.join("\n");
|
|
@@ -3672,7 +3986,7 @@ function createTasksTool(deps) {
|
|
|
3672
3986
|
};
|
|
3673
3987
|
return {
|
|
3674
3988
|
name: ToolNames.Tasks,
|
|
3675
|
-
description: "Session task board. plan declares a titled board (replaces any prior board); add appends tasks; pick moves one operator task uN onto the board; start marks one task active (the current focus); done completes a task (started or still pending) and requires note as the evidence the work actually finished; block parks it with a required reason; drop cancels it; list shows the board. Work that did not happen is blocked or dropped, never done.",
|
|
3989
|
+
description: "Session task board. plan declares a titled board (replaces any prior board); add appends tasks; pick moves one operator task uN onto the board; start marks one task active (the current focus); done completes a task (started or still pending) and requires note as the evidence the work actually finished; block parks it with a required reason; drop cancels it; list shows the board. For an operator handoff, pick the intended uN before work and use its returned linked tN; CLI hand alone does not pick it. Never pick unrelated inbox tasks. Before claiming operator completion, list and confirm the linked board row is completed and the durable operator status is done with the same session/board link; report those IDs and actual states. Work that did not happen is blocked or dropped, never done. A self-created plan is not operator authorization. For proposal-only work, block deferred implementation with note naming the pending operator decision, or drop it; wait for an explicit operator go-ahead before start or implementation. A skill-install choice does not grant that go-ahead.",
|
|
3676
3990
|
parameters: typebox_exports.Object({
|
|
3677
3991
|
action: StringEnum(TASKS_ACTIONS, { description: "Board action." }),
|
|
3678
3992
|
title: typebox_exports.Optional(typebox_exports.String({ description: "Board title (plan)." })),
|
|
@@ -3716,7 +4030,10 @@ function createTasksTool(deps) {
|
|
|
3716
4030
|
if (typedAction === "list") {
|
|
3717
4031
|
const board = deps.board.snapshot();
|
|
3718
4032
|
if (!board) {
|
|
3719
|
-
const output2 = [
|
|
4033
|
+
const output2 = [
|
|
4034
|
+
'no task board yet; for an operator handoff, pick the intended uN before work; otherwise declare one with action="plan"',
|
|
4035
|
+
...waitingTrailer(userTasks)
|
|
4036
|
+
].join("\n");
|
|
3720
4037
|
return {
|
|
3721
4038
|
kind: "ok",
|
|
3722
4039
|
output: output2,
|
|
@@ -3738,7 +4055,12 @@ function createTasksTool(deps) {
|
|
|
3738
4055
|
if (userTask.status !== "open" && userTask.status !== "handed") {
|
|
3739
4056
|
return { kind: "error", message: `tasks: operator task ${id} is ${userTask.status}; it cannot be picked` };
|
|
3740
4057
|
}
|
|
3741
|
-
const result2 = deps.board.apply({
|
|
4058
|
+
const result2 = deps.board.apply({
|
|
4059
|
+
op: "pick",
|
|
4060
|
+
title: userTask.title,
|
|
4061
|
+
userTaskId: userTask.id,
|
|
4062
|
+
...userTask.acceptance ? { verification: userTask.acceptance.verification } : {}
|
|
4063
|
+
});
|
|
3742
4064
|
if (!result2.ok) return { kind: "error", message: `tasks: ${result2.message}` };
|
|
3743
4065
|
const picked = result2.board.tasks.find((task) => task.userTaskId === userTask.id && task.status === "pending");
|
|
3744
4066
|
if (!picked) return { kind: "error", message: `tasks: durable pickup for ${id} did not produce a board row` };
|
|
@@ -3840,6 +4162,7 @@ note: ${pathArg} no longer ends with a newline; the previous content did`;
|
|
|
3840
4162
|
// src/tools/core-bootstrap.ts
|
|
3841
4163
|
function registerCoreTools(registry, deps = {}) {
|
|
3842
4164
|
const includeNetworkTools = !networkToolsDisabled();
|
|
4165
|
+
registry.register(builtin(evidenceTool, { path: "src/tools/evidence.ts", scope: "core" }));
|
|
3843
4166
|
registry.register({
|
|
3844
4167
|
...builtin(readTool, { path: "src/tools/read.ts", scope: "core" })
|
|
3845
4168
|
});
|
|
@@ -3864,7 +4187,7 @@ function registerCoreTools(registry, deps = {}) {
|
|
|
3864
4187
|
if (includeNetworkTools) {
|
|
3865
4188
|
registry.register({
|
|
3866
4189
|
...builtin(
|
|
3867
|
-
lazyTool(webFetchToolSurface, async () => (await import("./web-fetch-
|
|
4190
|
+
lazyTool(webFetchToolSurface, async () => (await import("./web-fetch-MQN4FH3X.js")).webFetchTool),
|
|
3868
4191
|
{ path: "src/tools/web-fetch.ts", scope: "core" }
|
|
3869
4192
|
)
|
|
3870
4193
|
});
|
|
@@ -3874,13 +4197,13 @@ function registerCoreTools(registry, deps = {}) {
|
|
|
3874
4197
|
});
|
|
3875
4198
|
registry.register({
|
|
3876
4199
|
...builtin(
|
|
3877
|
-
lazyTool(verifyToolSurface, async () => (await import("./verify-
|
|
4200
|
+
lazyTool(verifyToolSurface, async () => (await import("./verify-3AS3ULCY.js")).verifyTool),
|
|
3878
4201
|
{ path: "src/tools/verify/index.ts", scope: "core" }
|
|
3879
4202
|
)
|
|
3880
4203
|
});
|
|
3881
4204
|
registry.register({
|
|
3882
4205
|
...builtin(
|
|
3883
|
-
lazyTool(codeNavToolSurface, async () => (await import("./code-nav-
|
|
4206
|
+
lazyTool(codeNavToolSurface, async () => (await import("./code-nav-YXIAEZVS.js")).codeNavTool),
|
|
3884
4207
|
{ path: "src/tools/codewiki/code-nav.ts", scope: "core" }
|
|
3885
4208
|
)
|
|
3886
4209
|
});
|
|
@@ -3900,14 +4223,23 @@ function registerCoreTools(registry, deps = {}) {
|
|
|
3900
4223
|
registry.register({
|
|
3901
4224
|
...builtin(credentialPresentTool, { path: "src/tools/credential-present.ts", scope: "core" })
|
|
3902
4225
|
});
|
|
4226
|
+
registry.register({
|
|
4227
|
+
...builtin(limitationTool, { path: "src/tools/limitation.ts", scope: "core" })
|
|
4228
|
+
});
|
|
4229
|
+
registry.register({
|
|
4230
|
+
...builtin(createDecideTool(deps.decisionBoard ? { decisionBoard: deps.decisionBoard } : {}), {
|
|
4231
|
+
path: "src/tools/decide.ts",
|
|
4232
|
+
scope: "core"
|
|
4233
|
+
})
|
|
4234
|
+
});
|
|
3903
4235
|
const session = deps.session;
|
|
3904
4236
|
const readSessionEntries = deps.readSessionEntries;
|
|
3905
4237
|
registry.register({
|
|
3906
4238
|
...builtin(
|
|
3907
4239
|
lazyTool(contextToolSurface, async () => {
|
|
3908
|
-
const { createContextTool } = await import("./context-
|
|
4240
|
+
const { createContextTool } = await import("./context-QQ53HSGJ.js");
|
|
3909
4241
|
if (!session) return createContextTool(skillToolDeps);
|
|
3910
|
-
const { probeWorkspace } = await import("./workspace-
|
|
4242
|
+
const { probeWorkspace } = await import("./workspace-DZ7JADBG.js");
|
|
3911
4243
|
return createContextTool({
|
|
3912
4244
|
...skillToolDeps,
|
|
3913
4245
|
...readSessionEntries ? {
|
|
@@ -4003,4 +4335,4 @@ export {
|
|
|
4003
4335
|
registerCoreTools,
|
|
4004
4336
|
assertRegisteredBuiltinTools
|
|
4005
4337
|
};
|
|
4006
|
-
//# sourceMappingURL=chunk-
|
|
4338
|
+
//# sourceMappingURL=chunk-U2JOLB7O.js.map
|