@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
|
@@ -4,44 +4,51 @@ import {
|
|
|
4
4
|
discoverVerifierAuthoring,
|
|
5
5
|
previewVerifierDraft,
|
|
6
6
|
runVerifierAuthoringWorkflow
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZMZQEBKI.js";
|
|
8
8
|
import {
|
|
9
9
|
verifyTool
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import
|
|
12
|
-
|
|
10
|
+
} from "./chunk-UXAC2FX4.js";
|
|
11
|
+
import {
|
|
12
|
+
recordPerfBaseline
|
|
13
|
+
} from "./chunk-HGSLRG33.js";
|
|
14
|
+
import "./chunk-T52TPHYC.js";
|
|
15
|
+
import "./chunk-LQTKDAUO.js";
|
|
13
16
|
import {
|
|
14
17
|
printError,
|
|
15
18
|
printOk
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-3T4DXWP6.js";
|
|
20
|
+
import "./chunk-GXCCHKN6.js";
|
|
21
|
+
import "./chunk-YGDMBK7O.js";
|
|
22
|
+
import "./chunk-V552WL53.js";
|
|
23
|
+
import "./chunk-KQ6IDQIB.js";
|
|
24
|
+
import "./chunk-WJIMKGD6.js";
|
|
20
25
|
import {
|
|
26
|
+
DECLARED_CHECK_KINDS,
|
|
21
27
|
PROJECT_VERIFIER_CATALOG_RELATIVE_PATH,
|
|
22
|
-
loadProjectVerifierCatalog
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
loadProjectVerifierCatalog,
|
|
29
|
+
normalizeNumericTolerance
|
|
30
|
+
} from "./chunk-MDU3C27C.js";
|
|
25
31
|
import {
|
|
26
32
|
isProjectVerifierCheckId
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
33
|
+
} from "./chunk-M4KFUXS7.js";
|
|
34
|
+
import "./chunk-GH5ZR6JP.js";
|
|
35
|
+
import "./chunk-B6UM3OZC.js";
|
|
36
|
+
import "./chunk-MYI32N4R.js";
|
|
37
|
+
import "./chunk-EHOSNVVM.js";
|
|
32
38
|
import {
|
|
33
39
|
SAFE_EXEC_DEFAULT_TIMEOUT_MS
|
|
34
|
-
} from "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
40
|
+
} from "./chunk-GJ24ODAX.js";
|
|
41
|
+
import "./chunk-LTR5QCLS.js";
|
|
42
|
+
import "./chunk-6EXUUOSN.js";
|
|
43
|
+
import "./chunk-ZTNFYMIO.js";
|
|
44
|
+
import "./chunk-VNBICSS2.js";
|
|
45
|
+
import "./chunk-B5GGDIHT.js";
|
|
46
|
+
import "./chunk-5CMARGPF.js";
|
|
47
|
+
import "./chunk-DXVMLM3Z.js";
|
|
48
|
+
import "./chunk-CTTI7G3T.js";
|
|
42
49
|
import {
|
|
43
50
|
init_esm_shims
|
|
44
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-ECBHH7LU.js";
|
|
45
52
|
|
|
46
53
|
// src/cli/verifiers.ts
|
|
47
54
|
init_esm_shims();
|
|
@@ -208,11 +215,22 @@ Usage:
|
|
|
208
215
|
clio-coder verifiers edit <id> [--description <text>] [--command <json-argv>] [fields] [--yes]
|
|
209
216
|
clio-coder verifiers rename <old> <new> [--yes]
|
|
210
217
|
clio-coder verifiers remove <id> [--yes]
|
|
218
|
+
clio-coder verifiers baseline <id>
|
|
211
219
|
|
|
212
220
|
Fields:
|
|
213
221
|
--cwd <path> repository-relative working directory (default .)
|
|
214
222
|
--timeout-ms <number> bounded timeout in milliseconds (default 120000)
|
|
215
223
|
--tags <a,b> comma-separated catalog tags
|
|
224
|
+
--kind <kind> command (default), numeric-compare, or perf-budget
|
|
225
|
+
--reference <path> numeric-compare: repository-relative reference JSON of string -> number | number[]
|
|
226
|
+
--tolerance <json> numeric-compare: {"relative"?,"absolute"?,"ulp"?}, at least one;
|
|
227
|
+
perf-budget with --baseline: {"relative"} headroom over the baseline
|
|
228
|
+
--budget-ms <number> perf-budget: wall-time bound in milliseconds
|
|
229
|
+
--budget-relative <r> perf-budget with --budget-ms: fractional headroom over the bound
|
|
230
|
+
--baseline <path> perf-budget: repository-relative baseline JSON written by 'verifiers baseline <id>'
|
|
231
|
+
|
|
232
|
+
baseline runs a perf-budget check once and records its wall time at the check's
|
|
233
|
+
baseline path; a failing or timed-out command records nothing.
|
|
216
234
|
|
|
217
235
|
Discovery and every preview are read-only. Mutating commands write only with
|
|
218
236
|
--yes after printing the exact argv, cwd, timeout, tags, source provenance, and
|
|
@@ -231,7 +249,13 @@ var VALUE_OPTIONS = /* @__PURE__ */ new Set([
|
|
|
231
249
|
"--tags",
|
|
232
250
|
"--exclude",
|
|
233
251
|
"--rename",
|
|
234
|
-
"--dry-run"
|
|
252
|
+
"--dry-run",
|
|
253
|
+
"--kind",
|
|
254
|
+
"--reference",
|
|
255
|
+
"--tolerance",
|
|
256
|
+
"--budget-ms",
|
|
257
|
+
"--budget-relative",
|
|
258
|
+
"--baseline"
|
|
235
259
|
]);
|
|
236
260
|
function parseAuthoringArgs(argv) {
|
|
237
261
|
const positional = [];
|
|
@@ -289,6 +313,82 @@ function parseTimeout(value) {
|
|
|
289
313
|
function tags(value) {
|
|
290
314
|
return value === void 0 ? [] : value.split(",").map((tag) => tag.trim()).filter((tag) => tag.length > 0);
|
|
291
315
|
}
|
|
316
|
+
function parseJsonObject(value, option) {
|
|
317
|
+
try {
|
|
318
|
+
const parsed = JSON.parse(value);
|
|
319
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
320
|
+
return new Error(`${option} must be a JSON object`);
|
|
321
|
+
}
|
|
322
|
+
return parsed;
|
|
323
|
+
} catch (error) {
|
|
324
|
+
return new Error(`${option} must be valid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
function kindFieldsFromArgs(parsed) {
|
|
328
|
+
const kindValue = oneValue(parsed, "--kind") ?? "command";
|
|
329
|
+
if (!DECLARED_CHECK_KINDS.includes(kindValue)) {
|
|
330
|
+
return new Error(`--kind must be one of ${DECLARED_CHECK_KINDS.join(", ")}`);
|
|
331
|
+
}
|
|
332
|
+
const kind = kindValue;
|
|
333
|
+
const reference = oneValue(parsed, "--reference");
|
|
334
|
+
const toleranceValue = oneValue(parsed, "--tolerance");
|
|
335
|
+
const budgetMs = oneValue(parsed, "--budget-ms");
|
|
336
|
+
const budgetRelative = oneValue(parsed, "--budget-relative");
|
|
337
|
+
const baseline = oneValue(parsed, "--baseline");
|
|
338
|
+
if (kind === "command") {
|
|
339
|
+
const stray = [
|
|
340
|
+
["--reference", reference],
|
|
341
|
+
["--tolerance", toleranceValue],
|
|
342
|
+
["--budget-ms", budgetMs],
|
|
343
|
+
["--budget-relative", budgetRelative],
|
|
344
|
+
["--baseline", baseline]
|
|
345
|
+
].filter(([, value]) => value !== void 0);
|
|
346
|
+
if (stray.length > 0)
|
|
347
|
+
return new Error(`${stray.map(([name]) => name).join(", ")} require --kind numeric-compare or perf-budget`);
|
|
348
|
+
return {};
|
|
349
|
+
}
|
|
350
|
+
if (kind === "numeric-compare") {
|
|
351
|
+
if (budgetMs !== void 0 || budgetRelative !== void 0 || baseline !== void 0) {
|
|
352
|
+
return new Error("--budget-ms, --budget-relative, and --baseline belong to --kind perf-budget");
|
|
353
|
+
}
|
|
354
|
+
if (reference === void 0) return new Error("--reference is required for --kind numeric-compare");
|
|
355
|
+
if (toleranceValue === void 0) return new Error("--tolerance is required for --kind numeric-compare");
|
|
356
|
+
const toleranceJson = parseJsonObject(toleranceValue, "--tolerance");
|
|
357
|
+
if (toleranceJson instanceof Error) return toleranceJson;
|
|
358
|
+
const tolerance = normalizeNumericTolerance(toleranceJson);
|
|
359
|
+
if (tolerance instanceof Error) return new Error(`--tolerance ${tolerance.message}`);
|
|
360
|
+
return { kind, numeric: { reference, tolerance } };
|
|
361
|
+
}
|
|
362
|
+
if (reference !== void 0) return new Error("--reference belongs to --kind numeric-compare");
|
|
363
|
+
if (budgetMs === void 0 === (baseline === void 0)) {
|
|
364
|
+
return new Error("--kind perf-budget requires exactly one of --budget-ms or --baseline");
|
|
365
|
+
}
|
|
366
|
+
if (budgetMs !== void 0) {
|
|
367
|
+
if (toleranceValue !== void 0) return new Error("use --budget-relative for headroom over --budget-ms");
|
|
368
|
+
const wallTimeMs = Number(budgetMs);
|
|
369
|
+
if (!Number.isFinite(wallTimeMs) || wallTimeMs <= 0) return new Error("--budget-ms must be a positive number");
|
|
370
|
+
const budget = { wallTimeMs };
|
|
371
|
+
if (budgetRelative !== void 0) {
|
|
372
|
+
const relative = Number(budgetRelative);
|
|
373
|
+
if (!Number.isFinite(relative) || relative < 0) return new Error("--budget-relative must be a non-negative number");
|
|
374
|
+
budget.tolerance = { relative };
|
|
375
|
+
}
|
|
376
|
+
return { kind, perf: { budget } };
|
|
377
|
+
}
|
|
378
|
+
if (budgetRelative !== void 0)
|
|
379
|
+
return new Error("--budget-relative belongs with --budget-ms; use --tolerance with --baseline");
|
|
380
|
+
const perf = { baseline };
|
|
381
|
+
if (toleranceValue !== void 0) {
|
|
382
|
+
const toleranceJson = parseJsonObject(toleranceValue, "--tolerance");
|
|
383
|
+
if (toleranceJson instanceof Error) return toleranceJson;
|
|
384
|
+
const relative = toleranceJson.relative;
|
|
385
|
+
if (typeof relative !== "number" || !Number.isFinite(relative) || relative < 0) {
|
|
386
|
+
return new Error('--tolerance for a baseline must be {"relative": <non-negative number>}');
|
|
387
|
+
}
|
|
388
|
+
perf.tolerance = { relative };
|
|
389
|
+
}
|
|
390
|
+
return { kind, perf };
|
|
391
|
+
}
|
|
292
392
|
function requiredValue(parsed, option) {
|
|
293
393
|
const value = oneValue(parsed, option);
|
|
294
394
|
return value === void 0 || value.length === 0 ? new Error(`${option} is required`) : value;
|
|
@@ -314,6 +414,8 @@ function addRevision(parsed) {
|
|
|
314
414
|
if (command instanceof Error) return command;
|
|
315
415
|
const timeoutMs = parseTimeout(oneValue(parsed, "--timeout-ms"));
|
|
316
416
|
if (timeoutMs instanceof Error) return timeoutMs;
|
|
417
|
+
const kindFields = kindFieldsFromArgs(parsed);
|
|
418
|
+
if (kindFields instanceof Error) return kindFields;
|
|
317
419
|
return {
|
|
318
420
|
kind: "add",
|
|
319
421
|
check: {
|
|
@@ -322,7 +424,8 @@ function addRevision(parsed) {
|
|
|
322
424
|
command,
|
|
323
425
|
cwd: oneValue(parsed, "--cwd") ?? ".",
|
|
324
426
|
timeoutMs,
|
|
325
|
-
tags: tags(oneValue(parsed, "--tags"))
|
|
427
|
+
tags: tags(oneValue(parsed, "--tags")),
|
|
428
|
+
...kindFields
|
|
326
429
|
}
|
|
327
430
|
};
|
|
328
431
|
}
|
|
@@ -348,6 +451,13 @@ function editRevision(parsed) {
|
|
|
348
451
|
}
|
|
349
452
|
const tagValue = oneValue(parsed, "--tags");
|
|
350
453
|
if (tagValue !== void 0) changes.tags = tags(tagValue);
|
|
454
|
+
if (oneValue(parsed, "--kind") !== void 0) {
|
|
455
|
+
const kindFields = kindFieldsFromArgs(parsed);
|
|
456
|
+
if (kindFields instanceof Error) return kindFields;
|
|
457
|
+
changes.kind = kindFields.kind ?? "command";
|
|
458
|
+
if (kindFields.numeric !== void 0) changes.numeric = kindFields.numeric;
|
|
459
|
+
if (kindFields.perf !== void 0) changes.perf = kindFields.perf;
|
|
460
|
+
}
|
|
351
461
|
if (Object.keys(changes).length === 0) return new Error("edit requires at least one changed field");
|
|
352
462
|
return { kind: "edit", id, changes };
|
|
353
463
|
}
|
|
@@ -419,6 +529,29 @@ async function executeWorkflow(parsed, options) {
|
|
|
419
529
|
for (const dryRun of result.dryRuns) code = Math.max(code, printDryRun(dryRun.id, dryRun.result));
|
|
420
530
|
return code;
|
|
421
531
|
}
|
|
532
|
+
async function baselineCommand(id) {
|
|
533
|
+
if (id === void 0) {
|
|
534
|
+
printError("baseline requires a check ID");
|
|
535
|
+
return 2;
|
|
536
|
+
}
|
|
537
|
+
const loaded = loadProjectVerifierCatalog(process.cwd());
|
|
538
|
+
if (!loaded.ok) {
|
|
539
|
+
printError(`production catalog parser rejected ${loaded.reason}`);
|
|
540
|
+
return 1;
|
|
541
|
+
}
|
|
542
|
+
const check = loaded.source?.checks.find((candidate) => candidate.id === id);
|
|
543
|
+
if (check === void 0) {
|
|
544
|
+
printError(`no catalog check '${id}' in ${PROJECT_VERIFIER_CATALOG_RELATIVE_PATH}`);
|
|
545
|
+
return 1;
|
|
546
|
+
}
|
|
547
|
+
const recorded = await recordPerfBaseline(check);
|
|
548
|
+
if (!recorded.ok) {
|
|
549
|
+
printError(`baseline '${id}' not recorded: ${recorded.message}`);
|
|
550
|
+
return 1;
|
|
551
|
+
}
|
|
552
|
+
printOk(`recorded baseline for '${id}': ${Math.round(recorded.wallTimeMs)}ms at ${recorded.path}`);
|
|
553
|
+
return 0;
|
|
554
|
+
}
|
|
422
555
|
async function discoverCommand() {
|
|
423
556
|
const discovery = discoverVerifierAuthoring();
|
|
424
557
|
if (!discovery.ok) {
|
|
@@ -462,6 +595,7 @@ async function runVerifiersCommand(argv) {
|
|
|
462
595
|
const command = parsed.positional[0];
|
|
463
596
|
if (command === "discover") return discoverCommand();
|
|
464
597
|
if (command === "validate") return validateCommand();
|
|
598
|
+
if (command === "baseline") return baselineCommand(parsed.positional[1]);
|
|
465
599
|
if (command === "dry-run") {
|
|
466
600
|
const id = parsed.positional[1];
|
|
467
601
|
if (id === void 0) {
|
|
@@ -493,4 +627,4 @@ async function runVerifiersCommand(argv) {
|
|
|
493
627
|
export {
|
|
494
628
|
runVerifiersCommand
|
|
495
629
|
};
|
|
496
|
-
//# sourceMappingURL=verifiers-
|
|
630
|
+
//# sourceMappingURL=verifiers-GSKWKWVG.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
verifyTool
|
|
4
|
+
} from "./chunk-UXAC2FX4.js";
|
|
5
|
+
import "./chunk-HGSLRG33.js";
|
|
6
|
+
import "./chunk-GXCCHKN6.js";
|
|
7
|
+
import "./chunk-YGDMBK7O.js";
|
|
8
|
+
import "./chunk-V552WL53.js";
|
|
9
|
+
import "./chunk-KQ6IDQIB.js";
|
|
10
|
+
import "./chunk-WJIMKGD6.js";
|
|
11
|
+
import "./chunk-MDU3C27C.js";
|
|
12
|
+
import "./chunk-M4KFUXS7.js";
|
|
13
|
+
import "./chunk-GH5ZR6JP.js";
|
|
14
|
+
import "./chunk-B6UM3OZC.js";
|
|
15
|
+
import "./chunk-MYI32N4R.js";
|
|
16
|
+
import "./chunk-EHOSNVVM.js";
|
|
17
|
+
import "./chunk-GJ24ODAX.js";
|
|
18
|
+
import "./chunk-LTR5QCLS.js";
|
|
19
|
+
import "./chunk-6EXUUOSN.js";
|
|
20
|
+
import "./chunk-ZTNFYMIO.js";
|
|
21
|
+
import "./chunk-VNBICSS2.js";
|
|
22
|
+
import "./chunk-B5GGDIHT.js";
|
|
23
|
+
import "./chunk-5CMARGPF.js";
|
|
24
|
+
import "./chunk-DXVMLM3Z.js";
|
|
25
|
+
import "./chunk-CTTI7G3T.js";
|
|
26
|
+
import "./chunk-ECBHH7LU.js";
|
|
27
|
+
export {
|
|
28
|
+
verifyTool
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=verify-3AS3ULCY.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
getVersionInfo
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-GD55RTIW.js";
|
|
5
|
+
import "./chunk-E3LEPLQ2.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esm_shims
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ECBHH7LU.js";
|
|
9
9
|
|
|
10
10
|
// src/cli/version.ts
|
|
11
11
|
init_esm_shims();
|
|
@@ -18,4 +18,4 @@ function runVersionCommand() {
|
|
|
18
18
|
export {
|
|
19
19
|
runVersionCommand
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=version-
|
|
21
|
+
//# sourceMappingURL=version-RFPKO6T7.js.map
|
|
@@ -1,18 +1,164 @@
|
|
|
1
1
|
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
webFetchToolSurface
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BBV5TKE6.js";
|
|
5
|
+
import {
|
|
6
|
+
WEB_FETCH_ALLOW_PRIVATE_NETWORK_ENV
|
|
7
|
+
} from "./chunk-SL2RDHKO.js";
|
|
8
|
+
import {
|
|
9
|
+
UNTRUSTED_CONTENT_BANNER
|
|
10
|
+
} from "./chunk-WXA2CFJO.js";
|
|
11
|
+
import "./chunk-GH5ZR6JP.js";
|
|
5
12
|
import {
|
|
6
13
|
truncateUtf8
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-K6BSR66V.js";
|
|
14
|
+
} from "./chunk-MYI32N4R.js";
|
|
15
|
+
import "./chunk-EHOSNVVM.js";
|
|
10
16
|
import {
|
|
11
17
|
init_esm_shims
|
|
12
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-ECBHH7LU.js";
|
|
13
19
|
|
|
14
20
|
// src/tools/web-fetch.ts
|
|
15
21
|
init_esm_shims();
|
|
22
|
+
|
|
23
|
+
// src/tools/web-fetch-network.ts
|
|
24
|
+
init_esm_shims();
|
|
25
|
+
import { lookup } from "node:dns/promises";
|
|
26
|
+
import { request as httpRequest } from "node:http";
|
|
27
|
+
import { request as httpsRequest } from "node:https";
|
|
28
|
+
import { BlockList, isIP } from "node:net";
|
|
29
|
+
import { Readable } from "node:stream";
|
|
30
|
+
import { createBrotliDecompress, createGunzip, createInflate } from "node:zlib";
|
|
31
|
+
var blocked = new BlockList();
|
|
32
|
+
for (const [address, prefix] of [
|
|
33
|
+
["0.0.0.0", 8],
|
|
34
|
+
["10.0.0.0", 8],
|
|
35
|
+
["100.64.0.0", 10],
|
|
36
|
+
["127.0.0.0", 8],
|
|
37
|
+
["169.254.0.0", 16],
|
|
38
|
+
["172.16.0.0", 12],
|
|
39
|
+
["192.168.0.0", 16],
|
|
40
|
+
["192.0.0.0", 24],
|
|
41
|
+
["192.0.2.0", 24],
|
|
42
|
+
["198.18.0.0", 15],
|
|
43
|
+
["198.51.100.0", 24],
|
|
44
|
+
["203.0.113.0", 24],
|
|
45
|
+
["224.0.0.0", 4],
|
|
46
|
+
["240.0.0.0", 4]
|
|
47
|
+
])
|
|
48
|
+
blocked.addSubnet(address, prefix, "ipv4");
|
|
49
|
+
for (const [address, prefix] of [
|
|
50
|
+
["2001::", 32],
|
|
51
|
+
["2001:db8::", 32],
|
|
52
|
+
["2002::", 16]
|
|
53
|
+
])
|
|
54
|
+
blocked.addSubnet(address, prefix, "ipv6");
|
|
55
|
+
var globalV6 = new BlockList();
|
|
56
|
+
globalV6.addSubnet("2000::", 3, "ipv6");
|
|
57
|
+
function isPublicWebAddress(address) {
|
|
58
|
+
const family = isIP(address);
|
|
59
|
+
if (family === 4) return !blocked.check(address, "ipv4");
|
|
60
|
+
return family === 6 && globalV6.check(address, "ipv6") && !blocked.check(address, "ipv6");
|
|
61
|
+
}
|
|
62
|
+
var WebFetchNetworkError = class extends Error {
|
|
63
|
+
constructor(message) {
|
|
64
|
+
super(`WEB_FETCH_PRIVATE_NETWORK: ${message}`);
|
|
65
|
+
this.name = "WebFetchNetworkError";
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
async function requestPinnedWebUrl(url, init, address) {
|
|
69
|
+
return new Promise((resolve, reject) => {
|
|
70
|
+
const headers = new Headers(init.headers);
|
|
71
|
+
headers.delete("host");
|
|
72
|
+
const request = (url.protocol === "https:" ? httpsRequest : httpRequest)(
|
|
73
|
+
url,
|
|
74
|
+
{
|
|
75
|
+
method: init.method ?? "GET",
|
|
76
|
+
headers: Object.fromEntries(headers),
|
|
77
|
+
agent: false,
|
|
78
|
+
...init.signal ? { signal: init.signal } : {},
|
|
79
|
+
lookup: (_hostname, options, callback) => {
|
|
80
|
+
if (options.all) callback(null, [address]);
|
|
81
|
+
else callback(null, address.address, address.family);
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
(response) => {
|
|
85
|
+
const responseHeaders = new Headers();
|
|
86
|
+
for (const [key, value] of Object.entries(response.headers)) {
|
|
87
|
+
if (value !== void 0) responseHeaders.set(key, Array.isArray(value) ? value.join(", ") : value);
|
|
88
|
+
}
|
|
89
|
+
const status = response.statusCode ?? 500;
|
|
90
|
+
let stream = response;
|
|
91
|
+
const encoding = responseHeaders.get("content-encoding");
|
|
92
|
+
const decoder = encoding === "gzip" ? createGunzip() : encoding === "br" ? createBrotliDecompress() : encoding === "deflate" ? createInflate() : null;
|
|
93
|
+
if (decoder) {
|
|
94
|
+
response.on("error", (error) => decoder.destroy(error));
|
|
95
|
+
decoder.on("close", () => response.destroy());
|
|
96
|
+
stream = response.pipe(decoder);
|
|
97
|
+
responseHeaders.delete("content-encoding");
|
|
98
|
+
responseHeaders.delete("content-length");
|
|
99
|
+
}
|
|
100
|
+
const noBody = init.method === "HEAD" || [204, 205, 304].includes(status);
|
|
101
|
+
if (noBody) response.resume();
|
|
102
|
+
const result = new Response(noBody ? null : Readable.toWeb(stream), {
|
|
103
|
+
status,
|
|
104
|
+
statusText: response.statusMessage ?? "",
|
|
105
|
+
headers: responseHeaders
|
|
106
|
+
});
|
|
107
|
+
Object.defineProperty(result, "url", { value: url.toString() });
|
|
108
|
+
resolve(result);
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
request.on("error", reject);
|
|
112
|
+
request.end(typeof init.body === "string" ? init.body : void 0);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
async function abortableLookup(pending, signal) {
|
|
116
|
+
if (!signal) return pending;
|
|
117
|
+
signal.throwIfAborted();
|
|
118
|
+
return new Promise((resolve, reject) => {
|
|
119
|
+
const onAbort = () => reject(signal.reason);
|
|
120
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
121
|
+
pending.then(resolve, reject).finally(() => signal.removeEventListener("abort", onAbort));
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
async function fetchWebUrl(input, initial = {}, dependencies = {}) {
|
|
125
|
+
let url = new URL(input);
|
|
126
|
+
const init = { ...initial, headers: new Headers(initial.headers) };
|
|
127
|
+
const allowPrivate = dependencies.allowPrivateNetwork ?? process.env[WEB_FETCH_ALLOW_PRIVATE_NETWORK_ENV] === "1";
|
|
128
|
+
for (let hop = 0; hop <= 10; hop++) {
|
|
129
|
+
init.signal?.throwIfAborted();
|
|
130
|
+
if (!["http:", "https:"].includes(url.protocol) || url.username || url.password)
|
|
131
|
+
throw new Error("web_fetch: unsupported URL scheme or embedded credentials");
|
|
132
|
+
const hostname = url.hostname.replace(/^\[|\]$/g, "");
|
|
133
|
+
const addresses = isIP(hostname) ? [{ address: hostname, family: isIP(hostname) }] : await abortableLookup((dependencies.resolve ?? ((host) => lookup(host, { all: true })))(hostname), init.signal);
|
|
134
|
+
init.signal?.throwIfAborted();
|
|
135
|
+
const address = addresses[0];
|
|
136
|
+
if (address === void 0) throw new Error("web_fetch: DNS returned no addresses");
|
|
137
|
+
if (!allowPrivate && addresses.some((address2) => !isPublicWebAddress(address2.address)))
|
|
138
|
+
throw new WebFetchNetworkError(
|
|
139
|
+
`destination ${url.hostname} is not public; operator opt-in ${WEB_FETCH_ALLOW_PRIVATE_NETWORK_ENV}=1 is required`
|
|
140
|
+
);
|
|
141
|
+
const response = await (dependencies.request ?? requestPinnedWebUrl)(url, init, address);
|
|
142
|
+
const location = response.headers.get("location");
|
|
143
|
+
if (![301, 302, 303, 307, 308].includes(response.status) || location === null) return response;
|
|
144
|
+
await response.body?.cancel();
|
|
145
|
+
if (hop === 10) throw new Error("web_fetch: too many redirects");
|
|
146
|
+
const next = new URL(location, url);
|
|
147
|
+
if (next.origin !== url.origin) {
|
|
148
|
+
init.headers = new Headers();
|
|
149
|
+
}
|
|
150
|
+
if (response.status === 303 && init.method !== "HEAD" || [301, 302].includes(response.status) && init.method === "POST") {
|
|
151
|
+
init.method = "GET";
|
|
152
|
+
delete init.body;
|
|
153
|
+
init.headers.delete("content-type");
|
|
154
|
+
init.headers.delete("content-length");
|
|
155
|
+
}
|
|
156
|
+
url = next;
|
|
157
|
+
}
|
|
158
|
+
throw new Error("web_fetch: too many redirects");
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// src/tools/web-fetch.ts
|
|
16
162
|
var DEFAULT_TIMEOUT_MS = 3e4;
|
|
17
163
|
var DEFAULT_MAX_BYTES = 6e5;
|
|
18
164
|
var HARD_MAX_BYTES = 5e6;
|
|
@@ -298,7 +444,7 @@ function parseArxivEntry(entry, fallbackId) {
|
|
|
298
444
|
}
|
|
299
445
|
async function fetchArxivPaperSummary(paperId, init, maxBytes) {
|
|
300
446
|
const metadataUrl = `https://export.arxiv.org/api/query?id_list=${encodeURIComponent(paperId)}`;
|
|
301
|
-
const response = await
|
|
447
|
+
const response = await fetchWebUrl(metadataUrl, init);
|
|
302
448
|
if (response.status < 200 || response.status >= 300) return null;
|
|
303
449
|
const read = await readResponseText(response, Math.min(12e4, maxBytes));
|
|
304
450
|
const entry = /<entry\b[^>]*>([\s\S]*?)<\/entry>/i.exec(read.text)?.[1];
|
|
@@ -307,7 +453,7 @@ async function fetchArxivPaperSummary(paperId, init, maxBytes) {
|
|
|
307
453
|
let alphaxivRead = null;
|
|
308
454
|
const alphaUrl = `https://alphaxiv.org/overview/${encodeURIComponent(paperId)}.md`;
|
|
309
455
|
try {
|
|
310
|
-
const alpha = await
|
|
456
|
+
const alpha = await fetchWebUrl(alphaUrl, init);
|
|
311
457
|
if (alpha.status >= 200 && alpha.status < 300) {
|
|
312
458
|
alphaxivRead = await readResponseText(alpha, Math.min(8e4, Math.max(0, maxBytes - read.bytesRead)));
|
|
313
459
|
if (alphaxivRead.text.trim().length > 0) paper.alphaxivOverview = alphaxivRead.text.trim();
|
|
@@ -337,7 +483,8 @@ async function fetchArxivPaperSummary(paperId, init, maxBytes) {
|
|
|
337
483
|
const bytesRead = read.bytesRead + (alphaxivRead?.bytesRead ?? 0);
|
|
338
484
|
return {
|
|
339
485
|
kind: "ok",
|
|
340
|
-
output: truncate(
|
|
486
|
+
output: truncate(`${UNTRUSTED_CONTENT_BANNER}
|
|
487
|
+
${lines.join("\n")}`, maxBytes),
|
|
341
488
|
details: {
|
|
342
489
|
url: `https://arxiv.org/abs/${paper.id}`,
|
|
343
490
|
status: 200,
|
|
@@ -352,7 +499,7 @@ function arxivApiUrl(url) {
|
|
|
352
499
|
return url.hostname === "export.arxiv.org" && url.pathname === "/api/query";
|
|
353
500
|
}
|
|
354
501
|
async function fetchArxivApiSummary(url, init, maxBytes) {
|
|
355
|
-
const response = await
|
|
502
|
+
const response = await fetchWebUrl(url, init);
|
|
356
503
|
if (response.status < 200 || response.status >= 300) return null;
|
|
357
504
|
const read = await readResponseText(response, Math.min(24e4, maxBytes));
|
|
358
505
|
const entries = Array.from(read.text.matchAll(/<entry\b[^>]*>([\s\S]*?)<\/entry>/gi)).map((match, index) => match[1] ? parseArxivEntry(match[1], `entry-${index + 1}`) : null).filter((entry) => entry !== null);
|
|
@@ -382,7 +529,8 @@ async function fetchArxivApiSummary(url, init, maxBytes) {
|
|
|
382
529
|
}
|
|
383
530
|
return {
|
|
384
531
|
kind: "ok",
|
|
385
|
-
output: truncate(
|
|
532
|
+
output: truncate(`${UNTRUSTED_CONTENT_BANNER}
|
|
533
|
+
${lines.join("\n")}`, maxBytes),
|
|
386
534
|
details: {
|
|
387
535
|
url: url.toString(),
|
|
388
536
|
status: 200,
|
|
@@ -447,7 +595,7 @@ function importantRepoFiles(entries) {
|
|
|
447
595
|
return selected;
|
|
448
596
|
}
|
|
449
597
|
async function fetchRepoTreeSummary(target, init, maxBytes) {
|
|
450
|
-
const apiResponse = await
|
|
598
|
+
const apiResponse = await fetchWebUrl(target.apiUrl, init);
|
|
451
599
|
if (apiResponse.status < 200 || apiResponse.status >= 300) return null;
|
|
452
600
|
const apiRead = await readResponseText(apiResponse, Math.min(2e5, maxBytes));
|
|
453
601
|
let entries;
|
|
@@ -472,7 +620,7 @@ async function fetchRepoTreeSummary(target, init, maxBytes) {
|
|
|
472
620
|
for (const file of files) {
|
|
473
621
|
if (remaining <= 2e3) break;
|
|
474
622
|
const rawUrl = `${target.rawBaseUrl}/${file}`;
|
|
475
|
-
const rawResponse = await
|
|
623
|
+
const rawResponse = await fetchWebUrl(rawUrl, init);
|
|
476
624
|
if (rawResponse.status < 200 || rawResponse.status >= 300) continue;
|
|
477
625
|
const rawRead = await readResponseText(rawResponse, Math.min(8e4, remaining));
|
|
478
626
|
sections.push("", `--- ${file} ---`, rawRead.text.trim());
|
|
@@ -480,7 +628,8 @@ async function fetchRepoTreeSummary(target, init, maxBytes) {
|
|
|
480
628
|
}
|
|
481
629
|
return {
|
|
482
630
|
kind: "ok",
|
|
483
|
-
output: truncate(
|
|
631
|
+
output: truncate(`${UNTRUSTED_CONTENT_BANNER}
|
|
632
|
+
${sections.join("\n")}`, maxBytes),
|
|
484
633
|
details: {
|
|
485
634
|
url: target.apiUrl,
|
|
486
635
|
status: 200,
|
|
@@ -503,7 +652,8 @@ function formatOutput(args) {
|
|
|
503
652
|
if (args.extracted.description) lines.push(`Description: ${args.extracted.description}`);
|
|
504
653
|
if (args.extracted.canonical) lines.push(`Canonical: ${args.extracted.canonical}`);
|
|
505
654
|
lines.push("", "Content:", args.extracted.content || "[empty]");
|
|
506
|
-
return truncate(
|
|
655
|
+
return truncate(`${UNTRUSTED_CONTENT_BANNER}
|
|
656
|
+
${lines.join("\n")}`, args.maxBytes);
|
|
507
657
|
}
|
|
508
658
|
var webFetchTool = {
|
|
509
659
|
...webFetchToolSurface,
|
|
@@ -556,10 +706,10 @@ var webFetchTool = {
|
|
|
556
706
|
method,
|
|
557
707
|
headers,
|
|
558
708
|
signal: controller.signal,
|
|
559
|
-
redirect: "
|
|
709
|
+
redirect: "manual"
|
|
560
710
|
};
|
|
561
711
|
if (body !== void 0) init.body = body;
|
|
562
|
-
if (method === "GET" && body === void 0 && format !== "raw") {
|
|
712
|
+
if (method === "GET" && body === void 0 && format !== "raw" && Object.keys(userHeaders).length === 0) {
|
|
563
713
|
if (arxivApiUrl(parsed)) {
|
|
564
714
|
const arxivApiSummary = await fetchArxivApiSummary(parsed, init, maxBytes);
|
|
565
715
|
if (arxivApiSummary) return arxivApiSummary;
|
|
@@ -575,7 +725,7 @@ var webFetchTool = {
|
|
|
575
725
|
if (repoSummary) return repoSummary;
|
|
576
726
|
}
|
|
577
727
|
}
|
|
578
|
-
const response = await
|
|
728
|
+
const response = await fetchWebUrl(parsed, init);
|
|
579
729
|
const contentType = headerValue(response, "content-type");
|
|
580
730
|
const readLimit = response.status >= 200 && response.status < 300 ? maxBytes : Math.min(ERROR_PREVIEW_BYTES, maxBytes);
|
|
581
731
|
const read = await readResponseText(response, readLimit);
|
|
@@ -584,6 +734,7 @@ var webFetchTool = {
|
|
|
584
734
|
return {
|
|
585
735
|
kind: "error",
|
|
586
736
|
message: `web_fetch: HTTP ${response.status}: ${response.statusText}${preview ? `
|
|
737
|
+
${UNTRUSTED_CONTENT_BANNER}
|
|
587
738
|
Preview:
|
|
588
739
|
${truncate(preview, ERROR_PREVIEW_BYTES)}` : ""}`
|
|
589
740
|
};
|
|
@@ -634,4 +785,4 @@ ${truncate(preview, ERROR_PREVIEW_BYTES)}` : ""}`
|
|
|
634
785
|
export {
|
|
635
786
|
webFetchTool
|
|
636
787
|
};
|
|
637
|
-
//# sourceMappingURL=web-fetch-
|
|
788
|
+
//# sourceMappingURL=web-fetch-MQN4FH3X.js.map
|