@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
package/dist/chunk-MNJGS2IN.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
resolveGuardrail
|
|
4
|
-
} from "./chunk-S66XZJOF.js";
|
|
5
|
-
import {
|
|
6
|
-
init_esm_shims
|
|
7
|
-
} from "./chunk-3R73A4XB.js";
|
|
8
|
-
|
|
9
|
-
// src/cli/internal-dispatch.ts
|
|
10
|
-
init_esm_shims();
|
|
11
|
-
function armInternalDispatchDeadline(dispatch, runId, label, maxTimeoutMs) {
|
|
12
|
-
const configuredTimeoutMs = resolveGuardrail("internalDispatchTimeoutMs");
|
|
13
|
-
const timeoutMs = maxTimeoutMs === void 0 ? configuredTimeoutMs : Math.min(configuredTimeoutMs, Math.max(1, maxTimeoutMs));
|
|
14
|
-
const productCapped = timeoutMs < configuredTimeoutMs;
|
|
15
|
-
let fired = false;
|
|
16
|
-
const timer = setTimeout(() => {
|
|
17
|
-
fired = true;
|
|
18
|
-
try {
|
|
19
|
-
dispatch.abort(runId, { cause: "timeout", detail: `${label} timed out after ${timeoutMs}ms` });
|
|
20
|
-
} catch {
|
|
21
|
-
}
|
|
22
|
-
}, timeoutMs);
|
|
23
|
-
return {
|
|
24
|
-
timedOut: () => fired,
|
|
25
|
-
clear: () => clearTimeout(timer),
|
|
26
|
-
message: () => productCapped ? `${label} exceeded its ${Math.round(timeoutMs / 1e3)}s latency ceiling and was aborted.` : `${label} timed out after ${Math.round(timeoutMs / 1e3)}s and was aborted. Raise fleet.limits.internalRunTimeoutMs for slower targets.`
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export {
|
|
31
|
-
armInternalDispatchDeadline
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=chunk-MNJGS2IN.js.map
|
package/dist/chunk-NDINPTJ4.js
DELETED
|
@@ -1,641 +0,0 @@
|
|
|
1
|
-
import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
computeFingerprint,
|
|
4
|
-
computeFingerprintAsync
|
|
5
|
-
} from "./chunk-UUVG37B4.js";
|
|
6
|
-
import {
|
|
7
|
-
require_dist
|
|
8
|
-
} from "./chunk-APJ265NV.js";
|
|
9
|
-
import {
|
|
10
|
-
safeResourceWrite
|
|
11
|
-
} from "./chunk-WEPFGWHJ.js";
|
|
12
|
-
import {
|
|
13
|
-
__toESM,
|
|
14
|
-
init_esm_shims
|
|
15
|
-
} from "./chunk-3R73A4XB.js";
|
|
16
|
-
|
|
17
|
-
// src/domains/context/wiki/frontmatter.ts
|
|
18
|
-
init_esm_shims();
|
|
19
|
-
var import_yaml = __toESM(require_dist(), 1);
|
|
20
|
-
import { existsSync } from "node:fs";
|
|
21
|
-
import { isAbsolute, join, normalize, relative } from "node:path";
|
|
22
|
-
var FRONTMATTER_BLOCK = /^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/;
|
|
23
|
-
var LIST_FIELDS = ["sources", "symbols", "tests", "invariants", "validate"];
|
|
24
|
-
var SUMMARY_MAX_CHARS = 240;
|
|
25
|
-
function isRecord(value) {
|
|
26
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
27
|
-
}
|
|
28
|
-
function usableString(value) {
|
|
29
|
-
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
30
|
-
}
|
|
31
|
-
function stringList(value) {
|
|
32
|
-
if (!Array.isArray(value)) return [];
|
|
33
|
-
const seen = /* @__PURE__ */ new Set();
|
|
34
|
-
for (const entry of value) {
|
|
35
|
-
const usable = usableString(entry);
|
|
36
|
-
if (usable) seen.add(usable);
|
|
37
|
-
}
|
|
38
|
-
return [...seen];
|
|
39
|
-
}
|
|
40
|
-
function wikiPageHeading(text) {
|
|
41
|
-
return usableString(/^#\s+(.+?)\s*$/m.exec(stripFrontmatter(text).body)?.[1]);
|
|
42
|
-
}
|
|
43
|
-
function titleFromPagePath(pagePath) {
|
|
44
|
-
const base = pagePath.replace(/^.*\//, "").replace(/\.md$/i, "");
|
|
45
|
-
const spaced = base.replace(/[-_]+/g, " ").trim();
|
|
46
|
-
return spaced.length > 0 ? spaced.charAt(0).toUpperCase() + spaced.slice(1) : base;
|
|
47
|
-
}
|
|
48
|
-
function stripFrontmatter(content) {
|
|
49
|
-
const match = FRONTMATTER_BLOCK.exec(content);
|
|
50
|
-
if (!match) return { block: null, body: content };
|
|
51
|
-
return { block: match[1] ?? "", body: content.slice(match[0].length) };
|
|
52
|
-
}
|
|
53
|
-
function summaryFromBody(body) {
|
|
54
|
-
const skipped = ["#", "|", "```", "-", "*", ">", "<!--"];
|
|
55
|
-
const paragraphs = body.split(/\r?\n\s*\r?\n/).map((paragraph) => paragraph.replace(/\s+/g, " ").trim()).filter((paragraph) => paragraph.length > 0 && !skipped.some((prefix) => paragraph.startsWith(prefix)));
|
|
56
|
-
const first = paragraphs[0] ?? "";
|
|
57
|
-
return first.length > SUMMARY_MAX_CHARS ? `${first.slice(0, SUMMARY_MAX_CHARS - 1).trimEnd()}\u2026` : first;
|
|
58
|
-
}
|
|
59
|
-
function isWithin(root, candidate) {
|
|
60
|
-
const rel = relative(root, candidate);
|
|
61
|
-
return rel.length === 0 || !rel.startsWith("..") && !isAbsolute(rel);
|
|
62
|
-
}
|
|
63
|
-
function resolveSourcePath(sourceRoot, cited) {
|
|
64
|
-
if (cited.length === 0 || isAbsolute(cited) || /[*?{}<>]/.test(cited)) return null;
|
|
65
|
-
const direct = normalize(join(sourceRoot, cited));
|
|
66
|
-
if (!isWithin(sourceRoot, direct)) return null;
|
|
67
|
-
if (existsSync(direct)) return direct;
|
|
68
|
-
if (cited.endsWith(".js")) {
|
|
69
|
-
for (const extension of [".ts", ".tsx"]) {
|
|
70
|
-
const authored = normalize(join(sourceRoot, `${cited.slice(0, -3)}${extension}`));
|
|
71
|
-
if (isWithin(sourceRoot, authored) && existsSync(authored)) return authored;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
function readWikiPage(input) {
|
|
77
|
-
const { block, body } = stripFrontmatter(input.content);
|
|
78
|
-
let fields;
|
|
79
|
-
if (block !== null) {
|
|
80
|
-
try {
|
|
81
|
-
fields = (0, import_yaml.parse)(`
|
|
82
|
-
${block}`, { schema: "core", uniqueKeys: true });
|
|
83
|
-
} catch {
|
|
84
|
-
fields = void 0;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
const authored = isRecord(fields) ? fields : {};
|
|
88
|
-
const metadata = {
|
|
89
|
-
title: usableString(authored.title) ?? wikiPageHeading(body) ?? titleFromPagePath(input.pagePath),
|
|
90
|
-
summary: usableString(authored.summary) ?? summaryFromBody(body),
|
|
91
|
-
sources: [],
|
|
92
|
-
symbols: stringList(authored.symbols),
|
|
93
|
-
tests: [],
|
|
94
|
-
invariants: stringList(authored.invariants),
|
|
95
|
-
validate: stringList(authored.validate)
|
|
96
|
-
};
|
|
97
|
-
const unresolvedPaths = [];
|
|
98
|
-
for (const field of ["sources", "tests"]) {
|
|
99
|
-
for (const cited of stringList(authored[field])) {
|
|
100
|
-
if (input.sourceRoot === void 0 || resolveSourcePath(input.sourceRoot, cited) !== null) {
|
|
101
|
-
metadata[field].push(cited);
|
|
102
|
-
} else {
|
|
103
|
-
unresolvedPaths.push(cited);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return { metadata, body, unresolvedPaths };
|
|
108
|
-
}
|
|
109
|
-
function renderList(name, values) {
|
|
110
|
-
if (values.length === 0) return [];
|
|
111
|
-
return [`${name}:`, ...values.map((value) => ` - ${JSON.stringify(value)}`)];
|
|
112
|
-
}
|
|
113
|
-
function renderFrontmatter(metadata) {
|
|
114
|
-
const lines = [`title: ${JSON.stringify(metadata.title)}`];
|
|
115
|
-
if (metadata.summary.length > 0) lines.push(`summary: ${JSON.stringify(metadata.summary)}`);
|
|
116
|
-
for (const field of LIST_FIELDS) lines.push(...renderList(field, metadata[field]));
|
|
117
|
-
return `---
|
|
118
|
-
${lines.join("\n")}
|
|
119
|
-
---
|
|
120
|
-
`;
|
|
121
|
-
}
|
|
122
|
-
function renderWikiPage(metadata, body) {
|
|
123
|
-
const trimmed = body.replace(/^\s+/, "").replace(/\s+$/, "");
|
|
124
|
-
const hasHeading = /^#\s+\S/m.test(trimmed);
|
|
125
|
-
const withHeading = hasHeading ? trimmed : `# ${metadata.title}
|
|
126
|
-
|
|
127
|
-
${trimmed}`;
|
|
128
|
-
return `${renderFrontmatter(metadata)}
|
|
129
|
-
${withHeading}
|
|
130
|
-
`;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// src/domains/context/wiki/layout.ts
|
|
134
|
-
init_esm_shims();
|
|
135
|
-
import { readdirSync, readFileSync } from "node:fs";
|
|
136
|
-
import { join as join2 } from "node:path";
|
|
137
|
-
var WIKI_QUICKSTART = "quickstart.md";
|
|
138
|
-
var WIKI_INDEX = "index.md";
|
|
139
|
-
var WIKI_PLAN_FILE = "_plan.json";
|
|
140
|
-
var NON_PAGE_FILES = /* @__PURE__ */ new Set(["meta.json", WIKI_PLAN_FILE]);
|
|
141
|
-
function compareStrings(a, b) {
|
|
142
|
-
return a.localeCompare(b);
|
|
143
|
-
}
|
|
144
|
-
function wikiDir(cwd) {
|
|
145
|
-
return join2(cwd, ".clio-coder", "wiki");
|
|
146
|
-
}
|
|
147
|
-
function wikiMarkdownFilesInDir(dir, prefix = "") {
|
|
148
|
-
let entries;
|
|
149
|
-
try {
|
|
150
|
-
entries = readdirSync(join2(dir, prefix), { withFileTypes: true });
|
|
151
|
-
} catch {
|
|
152
|
-
return [];
|
|
153
|
-
}
|
|
154
|
-
const files = [];
|
|
155
|
-
for (const entry of entries) {
|
|
156
|
-
if (entry.name.startsWith(".")) continue;
|
|
157
|
-
const relPath = prefix.length > 0 ? `${prefix}/${entry.name}` : entry.name;
|
|
158
|
-
if (entry.isDirectory()) {
|
|
159
|
-
files.push(...wikiMarkdownFilesInDir(dir, relPath));
|
|
160
|
-
continue;
|
|
161
|
-
}
|
|
162
|
-
if (entry.isFile() && entry.name.endsWith(".md") && !NON_PAGE_FILES.has(entry.name)) {
|
|
163
|
-
files.push(relPath);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return files.sort(compareStrings);
|
|
167
|
-
}
|
|
168
|
-
function isGeneratedWikiFile(relPath) {
|
|
169
|
-
return relPath === WIKI_QUICKSTART || relPath === WIKI_INDEX || relPath.endsWith(`/${WIKI_INDEX}`);
|
|
170
|
-
}
|
|
171
|
-
function listWikiPagesInDir(dir) {
|
|
172
|
-
const pages = [];
|
|
173
|
-
for (const relPath of wikiMarkdownFilesInDir(dir)) {
|
|
174
|
-
if (relPath !== WIKI_QUICKSTART && isGeneratedWikiFile(relPath)) continue;
|
|
175
|
-
let content = "";
|
|
176
|
-
try {
|
|
177
|
-
content = readFileSync(join2(dir, relPath), "utf8");
|
|
178
|
-
} catch {
|
|
179
|
-
content = "";
|
|
180
|
-
}
|
|
181
|
-
const { metadata } = readWikiPage({ pagePath: relPath, content });
|
|
182
|
-
pages.push({
|
|
183
|
-
path: relPath,
|
|
184
|
-
title: metadata.title,
|
|
185
|
-
...metadata.summary.length > 0 ? { summary: metadata.summary } : {}
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
return pages;
|
|
189
|
-
}
|
|
190
|
-
function listWikiPages(cwd) {
|
|
191
|
-
return listWikiPagesInDir(wikiDir(cwd));
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// src/domains/context/wiki/plan-store.ts
|
|
195
|
-
init_esm_shims();
|
|
196
|
-
import { existsSync as existsSync2, readFileSync as readFileSync2 } from "node:fs";
|
|
197
|
-
import { join as join3 } from "node:path";
|
|
198
|
-
var MAX_PAGE_ATTEMPTS = 3;
|
|
199
|
-
var MAX_INTENT_CHARS = 600;
|
|
200
|
-
var MAX_PLAN_PAGES = 200;
|
|
201
|
-
function isRecord2(value) {
|
|
202
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
203
|
-
}
|
|
204
|
-
function usableString2(value) {
|
|
205
|
-
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
|
|
206
|
-
}
|
|
207
|
-
function stringList2(value, limit) {
|
|
208
|
-
if (!Array.isArray(value)) return [];
|
|
209
|
-
const out = [];
|
|
210
|
-
for (const entry of value) {
|
|
211
|
-
const usable = usableString2(entry);
|
|
212
|
-
if (usable && !out.includes(usable)) out.push(usable);
|
|
213
|
-
if (out.length >= limit) break;
|
|
214
|
-
}
|
|
215
|
-
return out;
|
|
216
|
-
}
|
|
217
|
-
function sanitizePagePath(value) {
|
|
218
|
-
const raw = usableString2(value);
|
|
219
|
-
if (raw === null) return null;
|
|
220
|
-
const normalized = raw.replace(/\\/g, "/").replace(/^\.\//, "").replace(/^\/+/, "");
|
|
221
|
-
if (!normalized.endsWith(".md") || normalized.length > 200) return null;
|
|
222
|
-
const segments = normalized.split("/");
|
|
223
|
-
if (segments.some((segment) => segment.length === 0 || segment === "." || segment === ".." || segment.startsWith("."))) {
|
|
224
|
-
return null;
|
|
225
|
-
}
|
|
226
|
-
if (isGeneratedWikiFile(normalized)) return null;
|
|
227
|
-
return normalized;
|
|
228
|
-
}
|
|
229
|
-
function wikiPlanPath(dir) {
|
|
230
|
-
return join3(dir, WIKI_PLAN_FILE);
|
|
231
|
-
}
|
|
232
|
-
function parsedStatus(value) {
|
|
233
|
-
return value === "written" || value === "pending" ? value : null;
|
|
234
|
-
}
|
|
235
|
-
function parsedAttempts(value) {
|
|
236
|
-
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : null;
|
|
237
|
-
}
|
|
238
|
-
function sanitizeWikiPlan(value, previous, options = { trustStatus: true }) {
|
|
239
|
-
if (!isRecord2(value) || !Array.isArray(value.pages)) return null;
|
|
240
|
-
const priorByPath = new Map((previous?.pages ?? []).map((page) => [page.path, page]));
|
|
241
|
-
const pages = [];
|
|
242
|
-
const seen = /* @__PURE__ */ new Set();
|
|
243
|
-
for (const entry of value.pages) {
|
|
244
|
-
if (pages.length >= MAX_PLAN_PAGES) break;
|
|
245
|
-
if (!isRecord2(entry)) continue;
|
|
246
|
-
const path = sanitizePagePath(entry.path);
|
|
247
|
-
if (path === null || seen.has(path)) continue;
|
|
248
|
-
const intent = usableString2(entry.intent);
|
|
249
|
-
const prior = priorByPath.get(path);
|
|
250
|
-
const recorded = options.trustStatus ? parsedStatus(entry.status) : null;
|
|
251
|
-
const recordedAttempts = options.trustStatus ? parsedAttempts(entry.attempts) : null;
|
|
252
|
-
seen.add(path);
|
|
253
|
-
pages.push({
|
|
254
|
-
path,
|
|
255
|
-
title: usableString2(entry.title) ?? path.replace(/\.md$/, ""),
|
|
256
|
-
intent: intent === null ? "" : intent.slice(0, MAX_INTENT_CHARS),
|
|
257
|
-
sources: stringList2(entry.sources, 16),
|
|
258
|
-
status: prior?.status ?? recorded ?? "pending",
|
|
259
|
-
attempts: prior?.attempts ?? recordedAttempts ?? 0
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
if (pages.length === 0) return null;
|
|
263
|
-
return { version: 1, overview: usableString2(value.overview) ?? previous?.overview ?? "", pages };
|
|
264
|
-
}
|
|
265
|
-
function readPlanDocument(dir) {
|
|
266
|
-
const filePath = wikiPlanPath(dir);
|
|
267
|
-
if (!existsSync2(filePath)) return void 0;
|
|
268
|
-
try {
|
|
269
|
-
return JSON.parse(readFileSync2(filePath, "utf8"));
|
|
270
|
-
} catch {
|
|
271
|
-
return void 0;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
function readWikiPlanFile(dir, previous) {
|
|
275
|
-
const document = readPlanDocument(dir);
|
|
276
|
-
return document === void 0 ? null : sanitizeWikiPlan(document, previous, { trustStatus: true });
|
|
277
|
-
}
|
|
278
|
-
function readAuthoredWikiPlan(dir, previous) {
|
|
279
|
-
const document = readPlanDocument(dir);
|
|
280
|
-
return document === void 0 ? null : sanitizeWikiPlan(document, previous, { trustStatus: false });
|
|
281
|
-
}
|
|
282
|
-
function writeWikiPlanFile(dir, plan) {
|
|
283
|
-
safeResourceWrite(wikiPlanPath(dir), `${JSON.stringify(plan, null, 2)}
|
|
284
|
-
`, { encoding: "utf8" });
|
|
285
|
-
}
|
|
286
|
-
function unclaimedCandidates(plan, candidate, pageSources = /* @__PURE__ */ new Map()) {
|
|
287
|
-
const knownPaths = new Set(plan.pages.map((page) => page.path));
|
|
288
|
-
const claimed = /* @__PURE__ */ new Set();
|
|
289
|
-
for (const page of plan.pages) {
|
|
290
|
-
for (const source of [...page.sources, ...pageSources.get(page.path) ?? []]) claimed.add(source);
|
|
291
|
-
}
|
|
292
|
-
return candidate.pages.filter(
|
|
293
|
-
(page) => !knownPaths.has(page.path) && !page.sources.some((source) => claimed.has(source))
|
|
294
|
-
);
|
|
295
|
-
}
|
|
296
|
-
function scopePlanForUpdate(input) {
|
|
297
|
-
const changedPrefixes = [...input.changedPaths];
|
|
298
|
-
const pages = input.plan.pages.map((page) => {
|
|
299
|
-
if (!input.existingPages.has(page.path)) return { ...page, status: "pending", attempts: 0 };
|
|
300
|
-
const claimed = [...input.pageSources.get(page.path) ?? [], ...page.sources];
|
|
301
|
-
const touched = claimed.some(
|
|
302
|
-
(source) => changedPrefixes.some((changed) => changed === source || changed.startsWith(`${source}/`))
|
|
303
|
-
);
|
|
304
|
-
return touched ? { ...page, status: "pending", attempts: 0 } : { ...page, status: "written" };
|
|
305
|
-
});
|
|
306
|
-
return { ...input.plan, pages };
|
|
307
|
-
}
|
|
308
|
-
function pendingPages(plan) {
|
|
309
|
-
return plan.pages.filter((page) => page.status !== "written" && page.attempts < MAX_PAGE_ATTEMPTS);
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
// src/domains/context/wiki/meta.ts
|
|
313
|
-
init_esm_shims();
|
|
314
|
-
import { execFileSync } from "node:child_process";
|
|
315
|
-
import { createHash } from "node:crypto";
|
|
316
|
-
import { existsSync as existsSync3, readFileSync as readFileSync3 } from "node:fs";
|
|
317
|
-
import { join as join4 } from "node:path";
|
|
318
|
-
function compareStrings2(a, b) {
|
|
319
|
-
return a.localeCompare(b);
|
|
320
|
-
}
|
|
321
|
-
function isRecord3(value) {
|
|
322
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
323
|
-
}
|
|
324
|
-
function stringValue(value) {
|
|
325
|
-
return typeof value === "string" && value.trim().length > 0 ? value : null;
|
|
326
|
-
}
|
|
327
|
-
function nonNegativeSafeInteger(value) {
|
|
328
|
-
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
329
|
-
}
|
|
330
|
-
var REQUESTED_DEPTHS = ["auto", "simple", "medium", "detailed"];
|
|
331
|
-
var RESOLVED_DEPTHS = ["simple", "medium", "detailed"];
|
|
332
|
-
function parseGeneration(value) {
|
|
333
|
-
if (!isRecord3(value)) return void 0;
|
|
334
|
-
const { requestedDepth, depth, sourceFiles, sourceLines, pagesPlanned, pagesWritten } = value;
|
|
335
|
-
if (!REQUESTED_DEPTHS.includes(requestedDepth) || !RESOLVED_DEPTHS.includes(depth) || !nonNegativeSafeInteger(sourceFiles) || !nonNegativeSafeInteger(sourceLines) || !nonNegativeSafeInteger(pagesPlanned) || !nonNegativeSafeInteger(pagesWritten)) {
|
|
336
|
-
return void 0;
|
|
337
|
-
}
|
|
338
|
-
return {
|
|
339
|
-
requestedDepth,
|
|
340
|
-
depth,
|
|
341
|
-
sourceFiles,
|
|
342
|
-
sourceLines,
|
|
343
|
-
pagesPlanned,
|
|
344
|
-
pagesWritten
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
function normalizePages(pages) {
|
|
348
|
-
return pages.map((page) => ({ path: page.path, title: page.title, ...page.summary ? { summary: page.summary } : {} })).sort((a, b) => a.path.localeCompare(b.path));
|
|
349
|
-
}
|
|
350
|
-
function wikiMetaPath(cwd) {
|
|
351
|
-
return join4(wikiDir(cwd), "meta.json");
|
|
352
|
-
}
|
|
353
|
-
function currentWikiGitHead(cwd) {
|
|
354
|
-
try {
|
|
355
|
-
return execFileSync("git", ["rev-parse", "--verify", "HEAD"], {
|
|
356
|
-
cwd,
|
|
357
|
-
encoding: "utf8",
|
|
358
|
-
stdio: ["ignore", "pipe", "ignore"]
|
|
359
|
-
}).trim();
|
|
360
|
-
} catch {
|
|
361
|
-
return null;
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
function validateWikiMeta(value) {
|
|
365
|
-
const problems = [];
|
|
366
|
-
if (!isRecord3(value)) {
|
|
367
|
-
return { ok: false, problems: ["meta must be a JSON object"] };
|
|
368
|
-
}
|
|
369
|
-
if (value.version !== 1) problems.push("version must be 1");
|
|
370
|
-
const updatedAt = stringValue(value.updatedAt);
|
|
371
|
-
if (!updatedAt) problems.push("updatedAt must be a non-empty string");
|
|
372
|
-
const gitHead = value.gitHead;
|
|
373
|
-
if (gitHead !== null && typeof gitHead !== "string") problems.push("gitHead must be a string or null");
|
|
374
|
-
const sourceTreeHash = value.sourceTreeHash;
|
|
375
|
-
if (sourceTreeHash !== void 0 && (typeof sourceTreeHash !== "string" || !/^[a-f0-9]{64}$/.test(sourceTreeHash))) {
|
|
376
|
-
problems.push("sourceTreeHash must be a sha256 hex string when present");
|
|
377
|
-
}
|
|
378
|
-
const model = stringValue(value.model);
|
|
379
|
-
if (!model) problems.push("model must be a non-empty string");
|
|
380
|
-
const contentHash = stringValue(value.contentHash);
|
|
381
|
-
if (!contentHash || !/^[a-f0-9]{64}$/.test(contentHash)) {
|
|
382
|
-
problems.push("contentHash must be a sha256 hex string");
|
|
383
|
-
}
|
|
384
|
-
if (!Array.isArray(value.pages)) {
|
|
385
|
-
problems.push("pages must be an array");
|
|
386
|
-
} else {
|
|
387
|
-
for (const [index, page] of value.pages.entries()) {
|
|
388
|
-
if (!isRecord3(page)) {
|
|
389
|
-
problems.push(`pages[${index}] must be an object`);
|
|
390
|
-
continue;
|
|
391
|
-
}
|
|
392
|
-
if (!stringValue(page.path)) problems.push(`pages[${index}].path must be a non-empty string`);
|
|
393
|
-
if (!stringValue(page.title)) problems.push(`pages[${index}].title must be a non-empty string`);
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
if (problems.length > 0) return { ok: false, problems };
|
|
397
|
-
const generation = parseGeneration(value.generation);
|
|
398
|
-
const plan = sanitizeWikiPlan(value.plan, void 0, { trustStatus: true });
|
|
399
|
-
return {
|
|
400
|
-
ok: true,
|
|
401
|
-
value: {
|
|
402
|
-
version: 1,
|
|
403
|
-
updatedAt,
|
|
404
|
-
gitHead,
|
|
405
|
-
...sourceTreeHash !== void 0 ? { sourceTreeHash } : {},
|
|
406
|
-
model,
|
|
407
|
-
contentHash,
|
|
408
|
-
pages: normalizePages(value.pages),
|
|
409
|
-
...generation !== void 0 ? { generation } : {},
|
|
410
|
-
...plan !== null ? { plan } : {}
|
|
411
|
-
}
|
|
412
|
-
};
|
|
413
|
-
}
|
|
414
|
-
function isWikiMeta(value) {
|
|
415
|
-
return validateWikiMeta(value).ok;
|
|
416
|
-
}
|
|
417
|
-
function readWikiMeta(cwd) {
|
|
418
|
-
const filePath = wikiMetaPath(cwd);
|
|
419
|
-
if (!existsSync3(filePath)) return null;
|
|
420
|
-
let parsed;
|
|
421
|
-
try {
|
|
422
|
-
parsed = JSON.parse(readFileSync3(filePath, "utf8"));
|
|
423
|
-
} catch {
|
|
424
|
-
return null;
|
|
425
|
-
}
|
|
426
|
-
const validation = validateWikiMeta(parsed);
|
|
427
|
-
return validation.ok ? validation.value : null;
|
|
428
|
-
}
|
|
429
|
-
function writeWikiMeta(cwd, meta) {
|
|
430
|
-
const normalized = {
|
|
431
|
-
version: 1,
|
|
432
|
-
updatedAt: meta.updatedAt,
|
|
433
|
-
gitHead: meta.gitHead,
|
|
434
|
-
...meta.sourceTreeHash ? { sourceTreeHash: meta.sourceTreeHash } : {},
|
|
435
|
-
model: meta.model,
|
|
436
|
-
contentHash: meta.contentHash,
|
|
437
|
-
pages: normalizePages(meta.pages),
|
|
438
|
-
...meta.generation !== void 0 ? { generation: { ...meta.generation } } : {},
|
|
439
|
-
...meta.plan !== void 0 ? { plan: meta.plan } : {}
|
|
440
|
-
};
|
|
441
|
-
safeResourceWrite(wikiMetaPath(cwd), `${JSON.stringify(normalized)}
|
|
442
|
-
`, { encoding: "utf8" });
|
|
443
|
-
}
|
|
444
|
-
function computeWikiContentHashOfDir(dir) {
|
|
445
|
-
const hash = createHash("sha256");
|
|
446
|
-
for (const relPath of wikiMarkdownFilesInDir(dir).sort(compareStrings2)) {
|
|
447
|
-
let text = "";
|
|
448
|
-
try {
|
|
449
|
-
text = readFileSync3(join4(dir, relPath), "utf8");
|
|
450
|
-
} catch {
|
|
451
|
-
text = "";
|
|
452
|
-
}
|
|
453
|
-
hash.update(`${relPath}\0${text.length}\0`);
|
|
454
|
-
hash.update(text);
|
|
455
|
-
hash.update("\0");
|
|
456
|
-
}
|
|
457
|
-
return hash.digest("hex");
|
|
458
|
-
}
|
|
459
|
-
function computeWikiContentHash(cwd) {
|
|
460
|
-
return computeWikiContentHashOfDir(wikiDir(cwd));
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
// src/domains/context/wiki/staleness.ts
|
|
464
|
-
init_esm_shims();
|
|
465
|
-
import { execFile, execFileSync as execFileSync2 } from "node:child_process";
|
|
466
|
-
import { promisify } from "node:util";
|
|
467
|
-
var execFileAsync = promisify(execFile);
|
|
468
|
-
var GIT_DIFF_LINE_CAP = 200;
|
|
469
|
-
function splitNullTerminatedPaths(output) {
|
|
470
|
-
return output.split("\0").filter((path) => path.length > 0);
|
|
471
|
-
}
|
|
472
|
-
function currentGitHead(cwd) {
|
|
473
|
-
try {
|
|
474
|
-
const out = execFileSync2("git", ["rev-parse", "--verify", "HEAD"], {
|
|
475
|
-
cwd,
|
|
476
|
-
encoding: "utf8",
|
|
477
|
-
stdio: ["ignore", "pipe", "ignore"]
|
|
478
|
-
}).trim();
|
|
479
|
-
return out.length > 0 ? out : null;
|
|
480
|
-
} catch {
|
|
481
|
-
return null;
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
async function currentGitHeadAsync(cwd) {
|
|
485
|
-
try {
|
|
486
|
-
const { stdout } = await execFileAsync("git", ["rev-parse", "--verify", "HEAD"], { cwd, encoding: "utf8" });
|
|
487
|
-
const out = stdout.trim();
|
|
488
|
-
return out.length > 0 ? out : null;
|
|
489
|
-
} catch {
|
|
490
|
-
return null;
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
function collectChangedPaths(cwd, gitHead) {
|
|
494
|
-
const committed = execFileSync2("git", ["diff", "--name-only", "-z", `${gitHead}..HEAD`], {
|
|
495
|
-
cwd,
|
|
496
|
-
encoding: "utf8",
|
|
497
|
-
stdio: ["ignore", "pipe", "ignore"]
|
|
498
|
-
});
|
|
499
|
-
const trackedWorking = execFileSync2("git", ["diff", "--name-only", "-z", "HEAD"], {
|
|
500
|
-
cwd,
|
|
501
|
-
encoding: "utf8",
|
|
502
|
-
stdio: ["ignore", "pipe", "ignore"]
|
|
503
|
-
});
|
|
504
|
-
const untracked = execFileSync2("git", ["ls-files", "--others", "--exclude-standard", "-z"], {
|
|
505
|
-
cwd,
|
|
506
|
-
encoding: "utf8",
|
|
507
|
-
stdio: ["ignore", "pipe", "ignore"]
|
|
508
|
-
});
|
|
509
|
-
return /* @__PURE__ */ new Set([
|
|
510
|
-
...splitNullTerminatedPaths(committed),
|
|
511
|
-
...splitNullTerminatedPaths(trackedWorking),
|
|
512
|
-
...splitNullTerminatedPaths(untracked)
|
|
513
|
-
]);
|
|
514
|
-
}
|
|
515
|
-
function changedPathsSince(cwd, gitHead) {
|
|
516
|
-
if (!gitHead) return [];
|
|
517
|
-
try {
|
|
518
|
-
return [...collectChangedPaths(cwd, gitHead)];
|
|
519
|
-
} catch {
|
|
520
|
-
return [];
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
async function collectChangedPathsAsync(cwd, gitHead) {
|
|
524
|
-
const run = async (args) => {
|
|
525
|
-
const { stdout } = await execFileAsync("git", args, { cwd, encoding: "utf8" });
|
|
526
|
-
return stdout;
|
|
527
|
-
};
|
|
528
|
-
const [committed, trackedWorking, untracked] = await Promise.all([
|
|
529
|
-
run(["diff", "--name-only", "-z", `${gitHead}..HEAD`]),
|
|
530
|
-
run(["diff", "--name-only", "-z", "HEAD"]),
|
|
531
|
-
run(["ls-files", "--others", "--exclude-standard", "-z"])
|
|
532
|
-
]);
|
|
533
|
-
return /* @__PURE__ */ new Set([
|
|
534
|
-
...splitNullTerminatedPaths(committed),
|
|
535
|
-
...splitNullTerminatedPaths(trackedWorking),
|
|
536
|
-
...splitNullTerminatedPaths(untracked)
|
|
537
|
-
]);
|
|
538
|
-
}
|
|
539
|
-
function capChangedPaths(paths) {
|
|
540
|
-
const capped = [...paths].slice(0, GIT_DIFF_LINE_CAP);
|
|
541
|
-
return {
|
|
542
|
-
count: capped.length,
|
|
543
|
-
...paths.size > capped.length ? { warning: `changed file count capped at ${GIT_DIFF_LINE_CAP}` } : {}
|
|
544
|
-
};
|
|
545
|
-
}
|
|
546
|
-
var CHANGED_COUNT_FAILURE = "wiki staleness unavailable: git diff failed for the recorded wiki gitHead";
|
|
547
|
-
function changedFileCount(cwd, gitHead) {
|
|
548
|
-
try {
|
|
549
|
-
return capChangedPaths(collectChangedPaths(cwd, gitHead));
|
|
550
|
-
} catch {
|
|
551
|
-
return { warning: CHANGED_COUNT_FAILURE };
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
async function changedFileCountAsync(cwd, gitHead) {
|
|
555
|
-
try {
|
|
556
|
-
return capChangedPaths(await collectChangedPathsAsync(cwd, gitHead));
|
|
557
|
-
} catch {
|
|
558
|
-
return { warning: CHANGED_COUNT_FAILURE };
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
function wikiCompletenessFromMeta(meta) {
|
|
562
|
-
const generation = meta?.generation;
|
|
563
|
-
if (!generation) return null;
|
|
564
|
-
return {
|
|
565
|
-
pagesPlanned: generation.pagesPlanned,
|
|
566
|
-
pagesWritten: generation.pagesWritten,
|
|
567
|
-
owed: Math.max(0, generation.pagesPlanned - generation.pagesWritten)
|
|
568
|
-
};
|
|
569
|
-
}
|
|
570
|
-
function wikiCompleteness(cwd) {
|
|
571
|
-
return wikiCompletenessFromMeta(readWikiMeta(cwd));
|
|
572
|
-
}
|
|
573
|
-
var MISSING_RECORDED_HEAD = "wiki staleness unavailable: recorded gitHead is missing";
|
|
574
|
-
var MISSING_CURRENT_HEAD = "wiki staleness unavailable: current git HEAD is missing";
|
|
575
|
-
function wikiStaleness(cwd) {
|
|
576
|
-
const meta = readWikiMeta(cwd);
|
|
577
|
-
if (!meta) return { state: "absent" };
|
|
578
|
-
if (!meta.gitHead) return { state: "fresh", warning: MISSING_RECORDED_HEAD };
|
|
579
|
-
const head = currentGitHead(cwd);
|
|
580
|
-
if (!head) return { state: "fresh", warning: MISSING_CURRENT_HEAD };
|
|
581
|
-
if (meta.sourceTreeHash && computeFingerprint(cwd).treeHash === meta.sourceTreeHash && head === meta.gitHead) {
|
|
582
|
-
return { state: "fresh" };
|
|
583
|
-
}
|
|
584
|
-
if (!meta.sourceTreeHash && head === meta.gitHead) return { state: "fresh" };
|
|
585
|
-
const diff = changedFileCount(cwd, meta.gitHead);
|
|
586
|
-
if (!("count" in diff)) return { state: "fresh", warning: diff.warning };
|
|
587
|
-
return { state: "stale", changedFiles: diff.count, ...diff.warning ? { warning: diff.warning } : {} };
|
|
588
|
-
}
|
|
589
|
-
async function wikiStalenessAsync(cwd) {
|
|
590
|
-
const meta = readWikiMeta(cwd);
|
|
591
|
-
if (!meta) return { state: "absent" };
|
|
592
|
-
if (!meta.gitHead) return { state: "fresh", warning: MISSING_RECORDED_HEAD };
|
|
593
|
-
const head = await currentGitHeadAsync(cwd);
|
|
594
|
-
if (!head) return { state: "fresh", warning: MISSING_CURRENT_HEAD };
|
|
595
|
-
if (meta.sourceTreeHash) {
|
|
596
|
-
const fingerprint = await computeFingerprintAsync(cwd);
|
|
597
|
-
if (fingerprint.treeHash === meta.sourceTreeHash && head === meta.gitHead) return { state: "fresh" };
|
|
598
|
-
} else if (head === meta.gitHead) {
|
|
599
|
-
return { state: "fresh" };
|
|
600
|
-
}
|
|
601
|
-
const diff = await changedFileCountAsync(cwd, meta.gitHead);
|
|
602
|
-
if (!("count" in diff)) return { state: "fresh", warning: diff.warning };
|
|
603
|
-
return { state: "stale", changedFiles: diff.count, ...diff.warning ? { warning: diff.warning } : {} };
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
export {
|
|
607
|
-
resolveSourcePath,
|
|
608
|
-
readWikiPage,
|
|
609
|
-
renderWikiPage,
|
|
610
|
-
WIKI_QUICKSTART,
|
|
611
|
-
WIKI_INDEX,
|
|
612
|
-
WIKI_PLAN_FILE,
|
|
613
|
-
wikiDir,
|
|
614
|
-
wikiMarkdownFilesInDir,
|
|
615
|
-
isGeneratedWikiFile,
|
|
616
|
-
listWikiPagesInDir,
|
|
617
|
-
listWikiPages,
|
|
618
|
-
MAX_PAGE_ATTEMPTS,
|
|
619
|
-
sanitizePagePath,
|
|
620
|
-
sanitizeWikiPlan,
|
|
621
|
-
readWikiPlanFile,
|
|
622
|
-
readAuthoredWikiPlan,
|
|
623
|
-
writeWikiPlanFile,
|
|
624
|
-
unclaimedCandidates,
|
|
625
|
-
scopePlanForUpdate,
|
|
626
|
-
pendingPages,
|
|
627
|
-
wikiMetaPath,
|
|
628
|
-
currentWikiGitHead,
|
|
629
|
-
validateWikiMeta,
|
|
630
|
-
isWikiMeta,
|
|
631
|
-
readWikiMeta,
|
|
632
|
-
writeWikiMeta,
|
|
633
|
-
computeWikiContentHashOfDir,
|
|
634
|
-
computeWikiContentHash,
|
|
635
|
-
changedPathsSince,
|
|
636
|
-
wikiCompletenessFromMeta,
|
|
637
|
-
wikiCompleteness,
|
|
638
|
-
wikiStaleness,
|
|
639
|
-
wikiStalenessAsync
|
|
640
|
-
};
|
|
641
|
-
//# sourceMappingURL=chunk-NDINPTJ4.js.map
|