eser 4.1.37 → 4.1.39
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/chunks/add-V7YYHLFH.js +8 -0
- package/chunks/{anthropic-2MXDKLNX.js → anthropic-QBGNUIP3.js} +1 -1
- package/chunks/approve-HVIH2A3C.js +2 -0
- package/chunks/ask-PMB64QWG.js +3 -0
- package/chunks/block-JSK5CJPO.js +2 -0
- package/chunks/browser-JGBNWUEQ.js +2 -0
- package/chunks/{build-EJLFNB4I.js → build-HUKFUVPB.js} +2 -2
- package/chunks/bun-HIMXX54I.js +2 -0
- package/chunks/changelog-gen-JV3EHOMV.js +10 -0
- package/chunks/{chunk-GJ4LCA6D.js → chunk-2KKLYXSA.js} +1 -1
- package/chunks/{chunk-JYNHFD6B.js → chunk-2XNFZXHY.js} +1 -1
- package/chunks/{chunk-2EVWKUN6.js → chunk-3AA3RXKD.js} +1 -1
- package/chunks/{chunk-CUIMSX4V.js → chunk-3IZX4OZ7.js} +1 -1
- package/chunks/{chunk-KPWEJXPI.js → chunk-3QF3I2RD.js} +1 -1
- package/chunks/{chunk-K6H7JTIH.js → chunk-4EHAL3NK.js} +1 -1
- package/chunks/chunk-4FGLERUG.js +2 -0
- package/chunks/{chunk-IDMI5OBK.js → chunk-4QDEJUAF.js} +1 -1
- package/chunks/{chunk-4MVO4LD5.js → chunk-5224ZYEW.js} +1 -1
- package/chunks/{chunk-LCG4SK6K.js → chunk-5DWJ7WEE.js} +1 -1
- package/chunks/chunk-5WJ6AUNY.js +2 -0
- package/chunks/chunk-6E6JUBFH.js +2 -0
- package/chunks/chunk-7UASU4NU.js +10 -0
- package/chunks/chunk-A3JJKZ4C.js +4 -0
- package/chunks/chunk-A3MZV73T.js +32 -0
- package/chunks/chunk-A6K5L4SG.js +3 -0
- package/chunks/{chunk-YVIGHK4H.js → chunk-AHKNU2JM.js} +1 -1
- package/chunks/{chunk-BCPCQHDL.js → chunk-BBOEAL63.js} +1 -1
- package/chunks/chunk-BQT5RJZB.js +2 -0
- package/chunks/{chunk-EBCQCAQ7.js → chunk-BWDCKK63.js} +1 -1
- package/chunks/{chunk-FORPNESQ.js → chunk-CMSPX2RN.js} +1 -1
- package/chunks/{chunk-H4SPMUT6.js → chunk-DKFL6XPX.js} +1 -1
- package/chunks/{chunk-HVLKXRPA.js → chunk-DWLFTRZS.js} +1 -1
- package/chunks/{chunk-PVPMHMKP.js → chunk-ECY4MUD3.js} +1 -1
- package/chunks/{chunk-IIIMOOFE.js → chunk-EGMYM4TM.js} +1 -1
- package/chunks/{chunk-I4C675WP.js → chunk-F35K7YVH.js} +1 -1
- package/chunks/{chunk-IZONBJSX.js → chunk-F5HQDZLN.js} +1 -1
- package/chunks/{chunk-A6RDYP6R.js → chunk-FFWPJP7A.js} +1 -1
- package/chunks/chunk-H2O5G3XB.js +2 -0
- package/chunks/{chunk-Y53YTL4C.js → chunk-HLKFDKLZ.js} +1 -1
- package/chunks/{chunk-SOBOSRJB.js → chunk-HP5W5XT6.js} +1 -1
- package/chunks/{chunk-BP3IFAPO.js → chunk-HTJLIAH4.js} +1 -1
- package/chunks/{chunk-7BFBOLLC.js → chunk-HVTJ5LVU.js} +1 -1
- package/chunks/chunk-HZ2ALFWG.js +66 -0
- package/chunks/{chunk-YQVWAWMO.js → chunk-ILROPD5P.js} +1 -1
- package/chunks/{chunk-LKF6GBNU.js → chunk-ISQIZSXN.js} +1 -1
- package/chunks/chunk-JI536JLJ.js +2 -0
- package/chunks/{chunk-UJPVEQX7.js → chunk-K2MKYDPY.js} +1 -1
- package/chunks/{chunk-T2DRBZ4X.js → chunk-KEOTIPA6.js} +1 -1
- package/chunks/chunk-L2E2H7YT.js +2 -0
- package/chunks/chunk-L7UCWRDZ.js +3 -0
- package/chunks/{chunk-4WQGB7NO.js → chunk-LBMJGMDD.js} +1 -1
- package/chunks/{chunk-2VEVVX6U.js → chunk-LFNUSULJ.js} +1 -1
- package/chunks/{chunk-5GGGQJ4P.js → chunk-MBCPGD5L.js} +1 -1
- package/chunks/chunk-MEZCXQAX.js +2 -0
- package/chunks/{chunk-B6EATLKL.js → chunk-MOY4CXAZ.js} +2 -2
- package/chunks/{chunk-P2DMLPKI.js → chunk-MQ4EMT35.js} +1 -1
- package/chunks/chunk-NEHZOG23.js +7 -0
- package/chunks/{chunk-QZ44TAIY.js → chunk-NJUIBCQR.js} +1 -1
- package/chunks/{chunk-5MWX3POX.js → chunk-NZRU3N6C.js} +1 -1
- package/chunks/{chunk-N2VBT43E.js → chunk-O2TA7OHJ.js} +1 -1
- package/chunks/{chunk-ER4ZWF4Y.js → chunk-OAFB4A6D.js} +1 -1
- package/chunks/chunk-OAT2D23A.js +2 -0
- package/chunks/{chunk-3QIPK7NI.js → chunk-OPPOHKNZ.js} +1 -1
- package/chunks/{chunk-ZNGLZECE.js → chunk-OWV223WQ.js} +1 -1
- package/chunks/{chunk-3BEX5FYF.js → chunk-P2MUEKFT.js} +1 -1
- package/chunks/{chunk-455V3AE5.js → chunk-P72TUTYK.js} +1 -1
- package/chunks/{chunk-Q2KSOC32.js → chunk-PPSDIDOI.js} +1 -1
- package/chunks/chunk-PXCM4FHO.js +2 -0
- package/chunks/{chunk-KVTG56GS.js → chunk-QFFGKP3M.js} +1 -1
- package/chunks/{chunk-PZNCE6QK.js → chunk-QXATB6Z5.js} +1 -1
- package/chunks/chunk-RGUPFAEE.js +68 -0
- package/chunks/{chunk-SP43S32B.js → chunk-RVJZFWN7.js} +1 -1
- package/chunks/{chunk-B5IPHVXT.js → chunk-SBAXURB7.js} +1 -1
- package/chunks/{chunk-7NUMDHE2.js → chunk-T4WKRBQZ.js} +1 -1
- package/chunks/{chunk-UJ6LH5FY.js → chunk-TEOMM3RD.js} +1 -1
- package/chunks/{chunk-QOX7VSID.js → chunk-TLVGNOK3.js} +1 -1
- package/chunks/{chunk-HYT26FYU.js → chunk-U5Q5MC74.js} +1 -1
- package/chunks/chunk-ULNEO3RY.js +4 -0
- package/chunks/{chunk-MXGRYONZ.js → chunk-UMKCOU3N.js} +1 -1
- package/chunks/{chunk-536RBSFU.js → chunk-UQ2BC7UA.js} +1 -1
- package/chunks/{chunk-HVOPUZOM.js → chunk-VIQLCQOI.js} +1 -1
- package/chunks/chunk-VWQLQJVX.js +2 -0
- package/chunks/{chunk-CKNA5LIK.js → chunk-WAEXOK7L.js} +1 -1
- package/chunks/{chunk-NP723K5L.js → chunk-WILZ4OR2.js} +1 -1
- package/chunks/chunk-WJKE6XHF.js +2 -0
- package/chunks/{chunk-KQE6FMKW.js → chunk-XYUJCTPP.js} +1 -1
- package/chunks/{chunk-P2TABZ4A.js → chunk-YEWODYET.js} +1 -1
- package/chunks/{chunk-3SXTMY75.js → chunk-YVN2NZL4.js} +1 -1
- package/chunks/{chunk-GBM3TZFD.js → chunk-ZC4F4MYU.js} +1 -1
- package/chunks/{chunk-KBFKBL6A.js → chunk-ZWMJQZQF.js} +1 -1
- package/chunks/claude-code-ELUDT5TV.js +2 -0
- package/chunks/{clone-H3UAEVVP.js → clone-YEBQK7CG.js} +1 -1
- package/chunks/cmd-2DAVTVOF.js +2 -0
- package/chunks/{commitmsg-7XZGGERO.js → commitmsg-FQ3IZ3TH.js} +2 -2
- package/chunks/concern-TIGYH5DX.js +2 -0
- package/chunks/deno-XQHOVHKR.js +2 -0
- package/chunks/dev-BNGJJR2O.js +4 -0
- package/chunks/dist-QVOR7USR.js +13 -0
- package/chunks/done-GGPPHJW2.js +2 -0
- package/chunks/file-tools-shared-KBTCO2FV.js +2 -0
- package/chunks/{gemini-F4KLO5VU.js → gemini-43AWJEWI.js} +1 -1
- package/chunks/gh-Q7VEABJS.js +4 -0
- package/chunks/gh-contributors-4KGARSNL.js +12 -0
- package/chunks/init-45ODFAV3.js +2 -0
- package/chunks/{init-J4IHOVZL.js → init-RV7K5JC4.js} +3 -3
- package/chunks/{install-KNZDCGIB.js → install-6XIQS5E7.js} +2 -2
- package/chunks/invoke-hook-Q3NMJXDO.js +11 -0
- package/chunks/kiro-NZ7LM6HA.js +2 -0
- package/chunks/list-BOLPKAEY.js +2 -0
- package/chunks/{list-N4ZKDFW7.js → list-NYLFIF2U.js} +1 -1
- package/chunks/list-UQMPOF5Y.js +2 -0
- package/chunks/load-config-G4DHKB5K.js +2 -0
- package/chunks/{main-HJQEBLLN.js → main-236QYA7G.js} +2 -2
- package/chunks/manifest-3VJ4O6HR.js +2 -0
- package/chunks/{mod-4ILLF5PK.js → mod-5JT4O5L3.js} +1 -1
- package/chunks/mod-BQJDMCYC.js +2 -0
- package/chunks/mod-DXA25A4J.js +2 -0
- package/chunks/mod-EWLBSEHA.js +2 -0
- package/chunks/mod-GSWVSC2C.js +28 -0
- package/chunks/mod-IHYN4TEM.js +3 -0
- package/chunks/mod-IXVUQHXS.js +2 -0
- package/chunks/mod-P4AVZJNK.js +2 -0
- package/chunks/mod-PZSJGUM7.js +2 -0
- package/chunks/mod-QWYXFGRG.js +2 -0
- package/chunks/{mod-OS3BCM2G.js → mod-SXL6PDQM.js} +1 -1
- package/chunks/mod-YH5Z6G4Q.js +2 -0
- package/chunks/multipart-parser-SSRHOBFH.js +3 -0
- package/chunks/{new-BOGCXTIY.js → new-U5U4E6HR.js} +1 -1
- package/chunks/next-AQ4TIEL7.js +9 -0
- package/chunks/node-IN5OQP4N.js +68 -0
- package/chunks/node-ZGM6SXXI.js +2 -0
- package/chunks/ollama-LHWMXMLY.js +2 -0
- package/chunks/openai-2KONKHWL.js +2 -0
- package/chunks/openai-IRQY5SCR.js +24 -0
- package/chunks/opencode-24O2MW3L.js +2 -0
- package/chunks/purge-RM6OD5PV.js +5 -0
- package/chunks/recipe-applier-TTZEZGSC.js +2 -0
- package/chunks/registry-fetcher-SPENFEOH.js +2 -0
- package/chunks/release-UEX6YK4K.js +9 -0
- package/chunks/release-notes-GA7CTA54.js +4 -0
- package/chunks/release-tag-VJWBXG5G.js +2 -0
- package/chunks/reset-WHYTPTFB.js +2 -0
- package/chunks/rule-ZQOGLQQI.js +3 -0
- package/chunks/run-IX74MQTI.js +4 -0
- package/chunks/run-L35K3KRF.js +5 -0
- package/chunks/scripts-VI2TKQOH.js +2 -0
- package/chunks/sdk-L2SQCWYV.js +41 -0
- package/chunks/serve-AVVEYGQB.js +4 -0
- package/chunks/{server-KNWQV2HW.js → server-R347ON4B.js} +1 -1
- package/chunks/spec-KMKZDLV2.js +2 -0
- package/chunks/src-6SFGTAGT.js +4 -0
- package/chunks/status-MLX4O37A.js +2 -0
- package/chunks/sync-PB4KWB3R.js +2 -0
- package/chunks/system-BXJ2LV5O.js +2 -0
- package/chunks/system-YLXVXRXW.js +2 -0
- package/chunks/{unstable_chmod-GDQI7NKH.js → unstable_chmod-2W47KJY3.js} +1 -1
- package/chunks/update-522VXIKX.js +6 -0
- package/chunks/validate-bom-JCMRVAUT.js +2 -0
- package/chunks/validate-case-conflict-WZQCMKSZ.js +2 -0
- package/chunks/validate-circular-deps-7R4F2YDV.js +2 -0
- package/chunks/validate-commit-msg-PH7Y3JEI.js +2 -0
- package/chunks/validate-docs-WCIOHNYP.js +2 -0
- package/chunks/validate-eof-KRYQLTFQ.js +2 -0
- package/chunks/validate-export-names-OCQ2XSY6.js +2 -0
- package/chunks/validate-filenames-46O7FCXF.js +2 -0
- package/chunks/validate-json-3EZ2L64H.js +2 -0
- package/chunks/validate-large-files-7YX6MSOB.js +2 -0
- package/chunks/validate-licenses-OC7JRVAH.js +2 -0
- package/chunks/validate-line-endings-2DM5UGCJ.js +2 -0
- package/chunks/validate-merge-conflict-UDMWYMJ5.js +2 -0
- package/chunks/validate-mod-exports-W24IV367.js +2 -0
- package/chunks/validate-package-configs-3Y55ZLUY.js +2 -0
- package/chunks/validate-secrets-66VXCCUF.js +2 -0
- package/chunks/validate-shebangs-AMEAHVLB.js +2 -0
- package/chunks/validate-submodules-DYCE27WK.js +2 -0
- package/chunks/validate-symlinks-QN744GUH.js +2 -0
- package/chunks/validate-toml-5K2XNHAE.js +2 -0
- package/chunks/validate-trailing-whitespace-QYWHHIAK.js +2 -0
- package/chunks/validate-yaml-VGKLHEAQ.js +2 -0
- package/chunks/versions-FYALONNL.js +2 -0
- package/chunks/{vertexai-EXTYPVHK.js → vertexai-2F2A3VTE.js} +1 -1
- package/chunks/watch-P56QT3Q2.js +9 -0
- package/chunks/workerd-LOWXXQEU.js +2 -0
- package/eser.js +1 -1
- package/package.json +1 -1
- package/chunks/add-5SDE43IH.js +0 -8
- package/chunks/approve-DNKMQSPX.js +0 -2
- package/chunks/ask-L3N6REQI.js +0 -3
- package/chunks/block-GRKMCTGR.js +0 -2
- package/chunks/browser-SG2DBNGS.js +0 -2
- package/chunks/bun-3AACRJXG.js +0 -2
- package/chunks/changelog-gen-MX6L2Z24.js +0 -10
- package/chunks/chunk-25FUVC3C.js +0 -13
- package/chunks/chunk-2HBVIH7V.js +0 -3
- package/chunks/chunk-32HV3K27.js +0 -2
- package/chunks/chunk-46ZWBKIW.js +0 -2
- package/chunks/chunk-4DOMGQOO.js +0 -2
- package/chunks/chunk-6FNHSIZJ.js +0 -2
- package/chunks/chunk-CBGABZ5E.js +0 -2
- package/chunks/chunk-CDPSH56U.js +0 -2
- package/chunks/chunk-CZS6DCUY.js +0 -61
- package/chunks/chunk-DAK2I7UC.js +0 -2
- package/chunks/chunk-DTO2YJWZ.js +0 -2
- package/chunks/chunk-DYRTLYTU.js +0 -3
- package/chunks/chunk-G6NAG2EK.js +0 -2
- package/chunks/chunk-JOTAKQMZ.js +0 -2
- package/chunks/chunk-MRCBHVSB.js +0 -2
- package/chunks/chunk-PE2TDUXD.js +0 -19
- package/chunks/chunk-RGUETQSC.js +0 -4
- package/chunks/chunk-STI6DX7K.js +0 -2
- package/chunks/chunk-STTKPXTW.js +0 -2
- package/chunks/chunk-TFPT4BDY.js +0 -15
- package/chunks/chunk-V3WALAAO.js +0 -4
- package/chunks/chunk-VD5ZJBSR.js +0 -7
- package/chunks/chunk-W3RVRCUB.js +0 -2
- package/chunks/chunk-Y4ARZGGL.js +0 -2
- package/chunks/claude-code-VUBEU7RR.js +0 -2
- package/chunks/concern-T2NW35XI.js +0 -2
- package/chunks/deno-7BSPHDRG.js +0 -2
- package/chunks/dev-PTMXZEVC.js +0 -4
- package/chunks/done-RZD34AZF.js +0 -2
- package/chunks/file-tools-shared-G36OYF5S.js +0 -2
- package/chunks/fileFromPath-MB3IRZVW.js +0 -7
- package/chunks/gh-L25JQWOY.js +0 -5
- package/chunks/gh-contributors-E7IZ2LFS.js +0 -12
- package/chunks/init-J46SBNIS.js +0 -2
- package/chunks/invoke-hook-YTLAPETS.js +0 -10
- package/chunks/kiro-HQLXD6ZU.js +0 -2
- package/chunks/list-5TGTYMAU.js +0 -2
- package/chunks/list-PY3A762R.js +0 -2
- package/chunks/load-config-FTQMJVEW.js +0 -2
- package/chunks/manifest-NF2EK757.js +0 -2
- package/chunks/mod-FEGQZ3ZY.js +0 -2
- package/chunks/mod-GY6YJWVP.js +0 -2
- package/chunks/mod-HKYPZOU7.js +0 -2
- package/chunks/mod-JI2A2546.js +0 -2
- package/chunks/mod-JZNE2HH6.js +0 -2
- package/chunks/mod-MLRQFSBE.js +0 -2
- package/chunks/mod-NCF6OSXO.js +0 -2
- package/chunks/mod-PFWQZF3T.js +0 -28
- package/chunks/mod-W3DBWTCY.js +0 -11
- package/chunks/mod-YX3JRMSI.js +0 -2
- package/chunks/next-HAAR572Z.js +0 -4
- package/chunks/node-KCQF6QQA.js +0 -60
- package/chunks/node-MFKYO4CY.js +0 -2
- package/chunks/ollama-36F5QAOO.js +0 -2
- package/chunks/openai-EU5TJZ5T.js +0 -2
- package/chunks/openai-IKXRJYI3.js +0 -20
- package/chunks/opencode-7J3JDC44.js +0 -2
- package/chunks/purge-7QJOGWHM.js +0 -5
- package/chunks/recipe-applier-6QZYAZ57.js +0 -2
- package/chunks/registry-fetcher-76ISLGRR.js +0 -2
- package/chunks/release-J3PVDROM.js +0 -9
- package/chunks/release-notes-AARDYXYA.js +0 -4
- package/chunks/release-tag-H2YWUXRU.js +0 -2
- package/chunks/reset-WSJ47SUR.js +0 -2
- package/chunks/rule-J4FRRKOE.js +0 -3
- package/chunks/run-K6PMBZEQ.js +0 -4
- package/chunks/run-RGEZUAPM.js +0 -5
- package/chunks/scripts-JK6W2MCO.js +0 -2
- package/chunks/sdk-MXV452BR.js +0 -19
- package/chunks/serve-XVAIQ37L.js +0 -4
- package/chunks/spec-KTBVG2EX.js +0 -2
- package/chunks/status-3C2T6QAE.js +0 -2
- package/chunks/sync-WLEELRJW.js +0 -2
- package/chunks/system-GTHT75OL.js +0 -2
- package/chunks/system-WTPEDJU6.js +0 -2
- package/chunks/update-4C4WNXCE.js +0 -6
- package/chunks/validate-bom-QVE5HNBO.js +0 -2
- package/chunks/validate-case-conflict-XFS3URQN.js +0 -2
- package/chunks/validate-circular-deps-BMPAT3PF.js +0 -2
- package/chunks/validate-commit-msg-BPESCI7P.js +0 -2
- package/chunks/validate-docs-ITL4L6KY.js +0 -2
- package/chunks/validate-eof-DTFV74VL.js +0 -2
- package/chunks/validate-export-names-HLOH7D73.js +0 -2
- package/chunks/validate-filenames-J4RTDEBD.js +0 -2
- package/chunks/validate-json-KMODGNSU.js +0 -2
- package/chunks/validate-large-files-X5YF7D7T.js +0 -2
- package/chunks/validate-licenses-OZ7DXQTY.js +0 -2
- package/chunks/validate-line-endings-PFF6QJ3W.js +0 -2
- package/chunks/validate-merge-conflict-KB2X6QLW.js +0 -2
- package/chunks/validate-mod-exports-VHK2NVKI.js +0 -2
- package/chunks/validate-package-configs-ZNCAIYRO.js +0 -2
- package/chunks/validate-secrets-RM6DMZVG.js +0 -2
- package/chunks/validate-shebangs-WC66D7RK.js +0 -2
- package/chunks/validate-submodules-SPAXASAG.js +0 -2
- package/chunks/validate-symlinks-4LOWK2MQ.js +0 -2
- package/chunks/validate-toml-SG4IITMN.js +0 -2
- package/chunks/validate-trailing-whitespace-GRE2PJ6T.js +0 -2
- package/chunks/validate-yaml-RA22QNW6.js +0 -2
- package/chunks/versions-ODYWYT7U.js +0 -2
- package/chunks/watch-NEFCEWP5.js +0 -9
- package/chunks/workerd-VVSAKLDZ.js +0 -2
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as b,b as G,c as R}from"./chunk-MBCPGD5L.js";import{e as ee}from"./chunk-J2Z7NG2X.js";import{f as p,h as u,k as d}from"./chunk-ZC4F4MYU.js";import{b as r,d as i,f as w,g as C,h as Z,k as l}from"./chunk-YVN2NZL4.js";import{d as y}from"./chunk-ECY4MUD3.js";import{a as k}from"./chunk-ISQIZSXN.js";import{a as f,b as g}from"./chunk-FFWPJP7A.js";import{g as T,i as m}from"./chunk-WJKE6XHF.js";import{g as ie,m as O,n as J,o as I,p as le}from"./chunk-BQT5RJZB.js";var de="# eser CLI completions",B="eser",te=async e=>{try{return await m.fs.readTextFile(e)}catch{return""}},me=async e=>{try{return await m.fs.stat(e),!0}catch{return!1}},se=async e=>{let t=R(e,B);if(t.completionType==="file")return await me(t.completionsFile);let s=await te(t.rcFile),n=G(e,B);return s.includes(n)},ne=async e=>{let t=R(e,B),s=p({renderer:d.ansi(),sink:u.stdout()});try{if(t.completionType==="file"){let n=t.completionsFile,o=m.path.dirname(n);try{await m.fs.mkdir(o,{recursive:!0})}catch{}await m.fs.writeTextFile(n,`# eser CLI completions
|
|
3
|
+
# This file is auto-generated. Run 'eser system completions --shell fish' to regenerate.
|
|
4
|
+
complete -c eser -f
|
|
5
|
+
complete -c eser -n "__fish_use_subcommand" -a "codebase" -d "Codebase management tools"
|
|
6
|
+
complete -c eser -n "__fish_use_subcommand" -a "system" -d "Commands related with this CLI"
|
|
7
|
+
complete -c eser -n "__fish_use_subcommand" -a "install" -d "Install eser CLI globally"
|
|
8
|
+
complete -c eser -n "__fish_use_subcommand" -a "update" -d "Update eser CLI to latest version"
|
|
9
|
+
complete -c eser -n "__fish_seen_subcommand_from system" -a "install" -d "Install eser CLI globally"
|
|
10
|
+
complete -c eser -n "__fish_seen_subcommand_from system" -a "uninstall" -d "Uninstall eser CLI globally"
|
|
11
|
+
complete -c eser -n "__fish_seen_subcommand_from system" -a "update" -d "Update eser CLI to latest version"
|
|
12
|
+
complete -c eser -n "__fish_seen_subcommand_from system" -a "completions" -d "Generate shell completion scripts"
|
|
13
|
+
`),s.writeln(r(" "),i("Created"),r(" "),l(n))}else{let n=await te(t.rcFile),o=G(e,B);if(!n.includes(o)){let c=`
|
|
14
|
+
${de}
|
|
15
|
+
${o}
|
|
16
|
+
`;await m.fs.writeTextFile(t.rcFile,n+c),s.writeln(r(" "),i("Added completions to"),r(" "),l(t.rcFile))}}}catch(n){s.writeln(Z(` Warning: Could not add shell completions: ${n instanceof Error?n.message:String(n)}`))}await s.close()},pe=async e=>{let t=R(e,B),s=p({renderer:d.ansi(),sink:u.stdout()});try{if(t.completionType==="file"){let n=t.completionsFile;await me(n)&&(await m.fs.remove(n),s.writeln(r(" "),i("Removed"),r(" "),l(n)))}else{let n=await te(t.rcFile);if(n===""){await s.close();return}let o=G(e,B);if(!n.includes(o)){await s.close();return}let c=n.split(`
|
|
17
|
+
`).filter(a=>!a.includes("eser system completions")).filter(a=>a!==de).join(`
|
|
18
|
+
`).replace(/\n{3,}/g,`
|
|
19
|
+
|
|
20
|
+
`);await m.fs.writeTextFile(t.rcFile,c),s.writeln(r(" "),i("Removed completions from"),r(" "),l(t.rcFile))}}catch(n){s.writeln(Z(` Warning: Could not remove shell completions: ${n instanceof Error?n.message:String(n)}`))}await s.close()};var M=m,ye={command:"eser",devCommand:"deno task cli",npmPackage:"eser",jsrPackage:"@eser/cli"},ue={deno:{cmd:"deno",args:["install","-r","-g","-A","--name","eser","jsr:@eser/cli"]},node:{cmd:"npm",args:["install","-g","-f","eser"]},bun:{cmd:"bun",args:["install","-g","-f","eser"]}},ve=async()=>{let e=I(),t=M.path.join(e,".local","bin");try{return await M.fs.stat(t),t}catch{}return"/usr/local/bin"},ke=async()=>{let e=M.process.execPath(),t=await ve(),s=M.path.join(t,"eser"),n=p({renderer:d.ansi(),sink:u.stdout()});n.writeln(r("Install method: "),l("compiled binary")),n.writeln(i(`Copying to ${s}...`));try{await M.fs.copyFile(e,s),await M.fs.chmod(s,493)}catch(a){if(a instanceof Deno.errors.PermissionDenied)return n.writeln(w(`
|
|
21
|
+
Permission denied writing to ${t}.
|
|
22
|
+
Try: sudo eser install`)),await n.close(),g({exitCode:1});throw await n.close(),a}n.writeln(C(`
|
|
23
|
+
Installation complete!`)),n.writeln(r("You can now use "),l("eser"),r(" from anywhere in your terminal."));let o=b();if(!await se(o)){n.writeln(r(`
|
|
24
|
+
Setting up `),l(o),r(" completions...")),await ne(o);let a=R(o);a.completionType==="eval"&&n.writeln(i(` Restart your shell or run 'source ${a.rcFile}' to enable completions.`))}return await n.close(),f(void 0)},Ee=async e=>{let t=await T(ye);if(t.invoker==="binary")return await ke();let s=p({renderer:d.ansi(),sink:u.stdout()});s.writeln(r("Detected runtime: "),l(t.runtime));let n=ue[t.runtime]??ue.node,{cmd:o,args:c}=n;s.writeln(i(`Running: ${o} ${c.join(" ")}`)),s.writeln();let a=await y`${o} ${c}`.stdout("inherit").stderr("inherit").noThrow().spawn();if(!a.success)return s.writeln(w(`
|
|
25
|
+
Installation failed.`)),await s.close(),g({exitCode:a.code});s.writeln(C(`
|
|
26
|
+
Installation complete!`)),s.writeln(r("You can now use "),l("eser"),r(" from anywhere in your terminal."));let x=b();if(!await se(x)){s.writeln(r(`
|
|
27
|
+
Setting up `),l(x),r(" completions...")),await ne(x);let K=R(x);K.completionType==="eval"&&s.writeln(i(` Restart your shell or run 'source ${K.rcFile}' to enable completions.`))}return await s.close(),f(void 0)};var Pe={deno:{cmd:"deno",args:["uninstall","-g","eser"]},node:{cmd:"npm",args:["uninstall","-g","eser"]},bun:{cmd:"bun",args:["remove","-g","eser"]}},$e=async e=>{let t=ie(),s=p({renderer:d.ansi(),sink:u.stdout()});s.writeln(r("Detected runtime: "),l(t));let n=Pe[t];if(n===void 0){let H=d.ansi();return await s.close(),g({message:`${H.render([w(`
|
|
28
|
+
Unsupported runtime: ${t}`)])}
|
|
29
|
+
Global uninstallation is only supported for Deno, Node.js, and Bun.`,exitCode:1})}let{cmd:o,args:c}=n,a=b();s.writeln(r(`
|
|
30
|
+
Removing `),l(a),r(" completions...")),await pe(a),s.writeln(i(`
|
|
31
|
+
Running: ${o} ${c.join(" ")}`)),s.writeln();let x=await y`${o} ${c}`.stdout("inherit").stderr("inherit").noThrow().spawn();return x.success?(s.writeln(C(`
|
|
32
|
+
Uninstallation complete!`)),s.writeln(r("The "),l("eser"),r(" command has been removed from your system.")),await s.close(),f(void 0)):(s.writeln(w(`
|
|
33
|
+
Uninstallation failed.`)),await s.close(),g({exitCode:x.code}))};var z=m,fe=".cache/eser",Re="latest-version.json",_e=24*60*60*1e3,Ae="https://api.github.com/repos/eser/stack/releases/latest",he=()=>{let e=I();return z.path.join(e,fe,Re)},Te=()=>{let e=I();return z.path.join(e,fe)},be=async()=>{try{let e=he();if(!await z.fs.exists(e))return;let s=await z.fs.readTextFile(e),n=JSON.parse(s);return typeof n.latestVersion!="string"||typeof n.checkedAt!="number"?void 0:n}catch{return}},Se=async e=>{try{let t=Te();await z.fs.ensureDir(t);let s=he(),n={latestVersion:e,checkedAt:Date.now()};await z.fs.writeTextFile(s,JSON.stringify(n))}catch{}},He=async()=>{try{let e=await fetch(Ae,{headers:{Accept:"application/vnd.github.v3+json"}});if(!e.ok)return;let s=(await e.json()).tag_name;return typeof s!="string"?void 0:s.startsWith("v")?s.slice(1):s}catch{return}},q=async()=>{try{let e=k.version,t=await be();if(t!==void 0&&Date.now()-t.checkedAt<_e)return{latestVersion:t.latestVersion,currentVersion:e,updateAvailable:ee(e,t.latestVersion)};let s=await He();return s===void 0?void 0:(await Se(s),{latestVersion:s,currentVersion:e,updateAvailable:ee(e,s)})}catch{return}};var v=m,Ie={command:"eser",devCommand:"deno task cli",npmPackage:"eser",jsrPackage:"@eser/cli"},we={deno:{cmd:"deno",args:["install","-r","-g","-A","-f","--name","eser","jsr:@eser/cli"]},node:{cmd:"npm",args:["update","-g","-f","eser"]},bun:{cmd:"bun",args:["update","-g","-f","eser"]}},De={"linux-amd64":"x86_64-unknown-linux-gnu","linux-arm64":"aarch64-unknown-linux-gnu","darwin-amd64":"x86_64-apple-darwin","darwin-arm64":"aarch64-apple-darwin","windows-amd64":"x86_64-pc-windows-msvc"},Fe=()=>{let e=O(),t=J(),s=`${e}-${t}`;return De[s]},Ue=async()=>{let e=p({renderer:d.ansi(),sink:u.stdout()});e.writeln(r("Install method: "),l("compiled binary")),e.writeln(r("Current version: "),l(k.version),r(`
|
|
34
|
+
`)),e.writeln(r("Checking for updates..."));let t=await q();if(t===void 0)return e.writeln(w("Could not check for updates.")),await e.close(),g({exitCode:1});if(!t.updateAvailable)return e.writeln(C(`
|
|
35
|
+
Already up to date (v${k.version}).`)),await e.close(),f(void 0);e.writeln(r(`
|
|
36
|
+
New version available: `),l(`v${t.latestVersion}`));let s=Fe();if(s===void 0){let $=O(),N=J();return e.writeln(w(`
|
|
37
|
+
Unsupported platform: ${$}-${N}`)),await e.close(),g({exitCode:1})}let n=`v${t.latestVersion}`,o=O()==="windows",a=`eser-${n}-${s}.${o?"zip":"tar.gz"}`,x=`https://github.com/eser/stack/releases/download/${n}`;e.writeln(i(`Downloading ${a}...`));let H=await fetch(`${x}/${a}`);if(!H.ok)return e.writeln(w(`
|
|
38
|
+
Failed to download: HTTP ${H.status}`)),await e.close(),g({exitCode:1});let K=await fetch(`${x}/SHA256SUMS.txt`);if(K.ok){let N=(await K.text()).split(`
|
|
39
|
+
`).find(j=>j.includes(a));if(N!==void 0){let j=N.split(/\s+/)[0],V=new Uint8Array(await H.clone().arrayBuffer()),A=await crypto.subtle.digest("SHA-256",V);if(Array.from(new Uint8Array(A)).map(Ce=>Ce.toString(16).padStart(2,"0")).join("")!==j)return e.writeln(w(`
|
|
40
|
+
SHA256 checksum verification failed.`)),await e.close(),g({exitCode:1});e.writeln(i("Checksum verified."))}}let L=await v.fs.makeTempDir({prefix:"eser-update-"});try{let $=v.path.join(L,a),N=new Uint8Array(await H.arrayBuffer());await v.fs.writeFile($,N),o?await y`powershell -Command "Expand-Archive -Path ${$} -DestinationPath ${L}"`.spawn():await y`tar -xzf ${$} -C ${L}`.spawn();let j=o?v.path.join(L,"eser.exe"):v.path.join(L,"eser"),V=v.process.execPath();if(o){let A=V.replace(/\.exe$/i,".new.exe");await v.fs.copyFile(j,A),e.writeln(C(`
|
|
41
|
+
Downloaded v${t.latestVersion}!`)),e.writeln(r(`
|
|
42
|
+
To complete the update, close this terminal and rename:
|
|
43
|
+
`),l(A),r(`
|
|
44
|
+
to:
|
|
45
|
+
`),l(V))}else{let A=`${V}.new`;await v.fs.copyFile(j,A),await v.fs.chmod(A,493),await v.fs.rename(A,V),e.writeln(C(`
|
|
46
|
+
Updated to v${t.latestVersion}!`))}}catch($){if($ instanceof Deno.errors.PermissionDenied)return e.writeln(w(`
|
|
47
|
+
Permission denied. Try running with sudo:
|
|
48
|
+
sudo eser update`)),await e.close(),g({exitCode:1});throw await e.close(),$}finally{try{await v.fs.remove(L,{recursive:!0})}catch{}}return await e.close(),f(void 0)},Le=async e=>{let t=await T(Ie);if(t.invoker==="binary")return await Ue();let s=p({renderer:d.ansi(),sink:u.stdout()});s.writeln(r("Detected runtime: "),l(t.runtime));let n=we[t.runtime]??we.node,{cmd:o,args:c}=n;s.writeln(i(`Running: ${o} ${c.join(" ")}`)),s.writeln();let a=await y`${o} ${c}`.stdout("inherit").stderr("inherit").noThrow().spawn();return a.success?(s.writeln(C(`
|
|
49
|
+
Update complete!`)),s.writeln(r("The "),l("eser"),r(" command has been updated to the latest version.")),await s.close(),f(void 0)):(s.writeln(w(`
|
|
50
|
+
Update failed.`)),await s.close(),g({exitCode:a.code}))};var Ne=e=>{let t=R(e,"eser"),s=d.ansi();if(t.completionType==="file")return`
|
|
51
|
+
To install, run:
|
|
52
|
+
|
|
53
|
+
${s.render([i(`eser system completions --shell fish > ${t.completionsFile}`)])}
|
|
54
|
+
`;let n=G(e,"eser");return`
|
|
55
|
+
To install, add the following to your ${s.render([l(t.rcFile)])}:
|
|
56
|
+
|
|
57
|
+
${s.render([i(n)])}
|
|
58
|
+
`},je=e=>{let t=e.flags.shell,s=d.ansi(),n=p({renderer:s,sink:u.stdout()}),o;if(t!==void 0){if(!["bash","zsh","fish"].includes(t))return g({message:`${s.render([w(`Invalid shell: ${t}`)])}
|
|
59
|
+
Supported shells: bash, zsh, fish`,exitCode:1});o=t}else o=b();let a=e.root.completions(o);return t===void 0&&(n.writeln(r("Generating "),l(o),r(" completions...")),console.log(Ne(o)),n.writeln(i(`--- Completion script ---
|
|
60
|
+
`))),console.log(a),f(void 0)};var Ve=200,Oe=async e=>{let t=p({renderer:d.ansi(),sink:u.stdout()});if(e.flags.bare===!0)return t.writeln(r(k.version)),await t.close(),f(void 0);t.writeln(r(`eser ${k.version}`));try{let s=new Promise(o=>{setTimeout(()=>o(void 0),Ve)}),n=await Promise.race([q(),s]);n!==void 0&&n.updateAvailable&&t.writeln(i(` Update available: v${n.latestVersion} \u2014 run 'eser update'`))}catch{}return await t.close(),f(void 0)};var Q=m,Ge={command:"eser",devCommand:"deno task cli",npmPackage:"eser",jsrPackage:"@eser/cli"},X=17,S=p({renderer:d.ansi(),sink:u.stdout()}),U=(e,t)=>{let s=`${e}:`.padEnd(X);S.writeln(r(` ${s}`),C("\u2713"),r(` ${t}`))},E=(e,t)=>{let s=`${e}:`.padEnd(X);S.writeln(r(` ${s}`),w("\u2717"),r(` ${t}`))},ge=(e,t)=>{let s=`${e}:`.padEnd(X);S.writeln(r(` ${s}${t}`))},Be=(e,t)=>{let s=`${e}:`.padEnd(X);S.writeln(r(` ${s}`),i("-"),r(` ${t}`))},ae=async e=>{try{return await Q.fs.stat(e),!0}catch{return!1}},Me=async e=>{try{return await Q.fs.readTextFile(e)}catch{return""}},xe=(e,t)=>e.match(t)?.[1],We=async()=>{let e=Q.path.join(".",".git","hooks","pre-commit");if(!await ae(e)){E("Git hooks","Not installed");return}(await Me(e)).includes("eser")?U("Git hooks","Installed"):E("Git hooks","Not installed")},ze=async()=>{let e=Q.path.join(".",".eser","manifest.yml"),t=Q.path.join(".",".manifest.yml");if(await ae(e)){U("Manifest",".eser/manifest.yml found");return}if(await ae(t)){U("Manifest",".manifest.yml found (legacy path)");return}E("Manifest",".eser/manifest.yml not found")},qe=async()=>{try{let e=await y`deno --version`.noThrow().quiet().text(),t=xe(e,/deno\s+(\S+)/);t!==void 0?U("Deno",t):E("Deno","Not found")}catch{E("Deno","Not found")}},Ke=async()=>{try{let e=await y`go version`.noThrow().quiet().text(),t=xe(e,/go(\d+\.\d+(?:\.\d+)?)/);t!==void 0?U("Go",t):E("Go","Not found")}catch{E("Go","Not found")}},Je=async()=>{try{let t=(await y`node --version`.noThrow().quiet().text()).trim();t.length>0?U("Node",t):E("Node","Not found")}catch{E("Node","Not found")}},Ye=async e=>{S.writeln(r(`eser doctor
|
|
61
|
+
`));let t=await T(Ge);ge("Install method",`${t.invoker} (${t.mode})`),ge("Version",k.version);let s=await q();return s===void 0?Be("Update","Could not check for updates"):s.updateAvailable?E("Update",`Update available: v${s.latestVersion}`):U("Update","Up to date"),S.writeln(),await We(),await ze(),S.writeln(),await qe(),await Ke(),await Je(),await S.close(),f(void 0)};var P=m,Qe={command:"eser",devCommand:"deno task cli",npmPackage:"eser",jsrPackage:"@eser/cli"},Xe=20,_=p({renderer:d.ansi(),sink:u.stdout()}),h=(e,t)=>{let s=`${e}:`.padEnd(Xe);_.writeln(r(` ${s}${t}`))},Ze=async e=>{_.writeln(r("eser system info")),_.writeln(i(`
|
|
62
|
+
Runtime`)),h("Name",P.name),h("Version",P.version),h("Platform",O()),h("Arch",J());let t=P.capabilities,s=Object.entries(t).map(([c,a])=>`${c}=${a?"yes":"no"}`).join(", ");h("Capabilities",s),_.writeln(i(`
|
|
63
|
+
Locations`)),h("Homedir",I()),h("Tmpdir",le()),h("CWD",P.process.cwd()),h("PID",String(P.process.pid)),h("Exec path",P.process.execPath()),_.writeln(i(`
|
|
64
|
+
Process`)),h("argv0",P.process.argv0),h("argv",P.process.argv.join(" ")),h("args",P.process.args.join(" ")),_.writeln(i(`
|
|
65
|
+
Execution Context`));let n=await T(Qe);h("Runtime",n.runtime),h("Invoker",`${n.invoker} (${n.mode})`),h("Command",n.command),h("In PATH",n.isInPath?"yes":"no"),_.writeln(i(`
|
|
66
|
+
Environment`));let o=["PATH","HOME","SHELL","TERM","DENO_DIR","BUN_INSTALL","NODE_ENV"];for(let c of o){let a=P.env.get(c);if(a!==void 0){let x=c==="PATH"?`(${a.split(":").length} entries)`:a;h(c,x)}}return _.writeln(),await _.close(),f(void 0)};export{Ee as a,$e as b,Le as c,je as d,Oe as e,Ye as f,Ze as g};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as o}from"./chunk-
|
|
2
|
+
import{a as o}from"./chunk-ULNEO3RY.js";var n=o({name:"validate-trailing-whitespace",description:"Remove trailing whitespace from lines",canFix:!0,stacks:[],defaults:{},checkFile(a,i){if(i===void 0)return[];let t=[],r=i.split(`
|
|
3
3
|
`);for(let e=0;e<r.length;e++)/[ \t]+$/.test(r[e])&&t.push({path:a.path,line:e+1,message:"trailing whitespace"});return t},fixFile(a,i){let t=i.replace(/[ \t]+$/gm,"");if(t!==i)return{path:a.path,oldContent:i,newContent:t}}}),c=n.run,u=n.validator,d=n.main;export{n as a,c as b,u as c,d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
var r={name:"@eser/cli",version:"4.1.
|
|
2
|
+
var r={name:"@eser/cli",version:"4.1.39",type:"module",exports:"./main.ts",bin:{eser:"./bin.ts"},dependencies:{"@eser/ai":"workspace:*","@eser/codebase":"workspace:*","@eser/kit":"workspace:*","@eser/noskills":"workspace:*","@eser/laroux-server":"workspace:*","@eser/workflows":"workspace:*","@eser/functions":"workspace:*","@eser/logging":"workspace:*","@eser/shell":"workspace:*","@eser/standards":"workspace:*","@std/cli":"npm:@jsr/std__cli@^1.0.25","@std/fmt":"npm:@jsr/std__fmt@^1.0.8"},devDependencies:{"@std/assert":"npm:@jsr/std__assert@^1.0.16",esbuild:"^0.27.3"}};export{r as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{c as n}from"./chunk-NEHZOG23.js";var i={UNINITIALIZED:["IDLE"],IDLE:["DISCOVERY"],DISCOVERY:["DISCOVERY_REVIEW"],DISCOVERY_REVIEW:["DISCOVERY_REVIEW","SPEC_DRAFT"],SPEC_DRAFT:["SPEC_DRAFT","SPEC_APPROVED"],SPEC_APPROVED:["EXECUTING"],EXECUTING:["DONE","BLOCKED"],BLOCKED:["EXECUTING"],DONE:["IDLE"]},c=(e,s)=>i[e].includes(s),t=(e,s)=>{if(!c(e,s))throw new Error(`Invalid phase transition: ${e} \u2192 ${s}. Allowed: ${i[e].join(", ")}`)},p=(e,s)=>(t(e.phase,s),{...e,phase:s}),u=(e,s,a)=>(t(e.phase,"DISCOVERY"),{...e,phase:"DISCOVERY",spec:s,branch:a,discovery:{answers:[],completed:!1,currentQuestion:0,audience:"human"},specState:{path:null,status:"none"},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]},decisions:[]}),E=(e,s,a)=>{if(e.phase!=="DISCOVERY"&&e.phase!=="DISCOVERY_REVIEW")throw new Error(`Cannot add discovery answer in phase: ${e.phase}`);let r=[...e.discovery.answers.filter(o=>o.questionId!==s),{questionId:s,answer:a}];return{...e,discovery:{...e.discovery,answers:r}}},d=e=>{if(e.phase!=="DISCOVERY")throw new Error(`Cannot complete discovery in phase: ${e.phase}`);return{...e,phase:"DISCOVERY_REVIEW",discovery:{...e.discovery,completed:!0},specState:{path:n.specFile(e.spec),status:"draft"}}},S=e=>(t(e.phase,"SPEC_DRAFT"),{...e,phase:"SPEC_DRAFT"}),m=e=>{if(e.phase!=="DISCOVERY")throw new Error(`Cannot advance discovery question in phase: ${e.phase}`);return{...e,discovery:{...e.discovery,currentQuestion:e.discovery.currentQuestion+1}}},D=e=>(t(e.phase,"SPEC_APPROVED"),{...e,phase:"SPEC_APPROVED",specState:{...e.specState,status:"approved"}}),C=e=>(t(e.phase,"EXECUTING"),{...e,phase:"EXECUTING",discovery:{answers:[],completed:!0,currentQuestion:0,audience:"human"},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]}});var I=(e,s)=>(t(e.phase,"BLOCKED"),{...e,phase:"BLOCKED",execution:{...e.execution,lastProgress:`BLOCKED: ${s}`}}),F=(e,s)=>({...e,decisions:[...e.decisions,s]}),R=e=>({...e,phase:"IDLE",spec:null,branch:null,discovery:{answers:[],completed:!1,currentQuestion:0,audience:"human"},specState:{path:null,status:"none"},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]},decisions:[],classification:null});export{p as a,u as b,E as c,d,S as e,m as f,D as g,C as h,I as i,F as j,R as k};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as k}from"./chunk-NBA6EFWU.js";import{d as F,f as T,h as C,j as d,k as L,n as u}from"./chunk-7ATUODBM.js";import{a as g}from"./chunk-AP72BKVG.js";import{
|
|
2
|
+
import{b as k}from"./chunk-NBA6EFWU.js";import{d as F,f as T,h as C,j as d,k as L,n as u}from"./chunk-7ATUODBM.js";import{a as g}from"./chunk-AP72BKVG.js";import{i as D}from"./chunk-WJKE6XHF.js";var R={USE_CLIENT:"use client",USE_SERVER:"use server",USE_STRICT:"use strict"},M=[/node_modules/,/\.test\./,/\.spec\./],G=(t,e)=>{let r=t.split(`
|
|
3
3
|
`),i=e.toLowerCase(),o=!1;for(let s=0;s<Math.min(50,r.length);s++){let n=r[s]?.trim()??"";if(o){n.includes("*/")&&(o=!1);continue}if(n===""||n.startsWith("//"))continue;if(n.startsWith("/*")){n.includes("*/")||(o=!0);continue}let f=`"${i}";`,a=`'${i}';`,l=n.toLowerCase();if(l===f||l===a)return!0;if(n.startsWith("import")||n.startsWith("export")||n.startsWith("const")||n.startsWith("let")||n.startsWith("var")||n.startsWith("function")||n.startsWith("class"))break}return!1},W=t=>{let e=new Set,r=t.matchAll(/export\s+(?:async\s+)?function\s+(\w+)/g);for(let n of r)n[1]!==void 0&&e.add(n[1]);let i=t.matchAll(/export\s+(?:const|let)\s+(\w+)\s*=/g);for(let n of i)n[1]!==void 0&&e.add(n[1]);let o=t.matchAll(/export\s+class\s+(\w+)/g);for(let n of o)n[1]!==void 0&&e.add(n[1]);/export\s+default\s+/.test(t)&&e.add("default");let s=t.matchAll(/export\s*\{([\w\s,]+)\}/g);for(let n of s)if(n[1]!==void 0){let f=n[1].split(",").map(a=>{let l=a.trim().split(/ {1,10}as {1,10}/);return(l[1]??l[0])?.trim()});for(let a of f)a!==void 0&&a!==""&&e.add(a)}return[...e]},O=async t=>{try{return await D.fs.readTextFile(t)}catch{return null}},Q=async(t,e,r={})=>{let i=r.extensions??k,o=r.skip??M,s=r.projectRoot??t,n=[];for await(let f of D.fs.walk(t,{exts:[...i],skip:[...o]})){if(!f.isFile)continue;let a=await O(f.path);if(a!==null&&G(a,e)){let l=D.path.relative(s,f.path),m=W(a);n.push({filePath:f.path,relativePath:l,directive:e,exports:m})}}return n},Y=(t,e={})=>Q(t,R.USE_CLIENT,e),X=(t,e)=>{let r=`"${e}"`,i=`'${e}'`;return t.includes(r)||t.includes(i)},Z=async(t,e={})=>{let r=e.extensions??k,i=e.skip??M,o=e.projectRoot??t,s=[];for await(let n of D.fs.walk(t,{exts:[...r],skip:[...i]})){if(!n.isFile)continue;let f=await O(n.path);if(f!==null&&X(f,R.USE_SERVER)){let a=D.path.relative(o,n.path),l=W(f);s.push({filePath:n.path,relativePath:a,directive:R.USE_SERVER,exports:l})}}return s};function w(t){return t.isFile?"file":t.isDirectory?"dir":t.isSymlink?"symlink":void 0}async function x(t){try{let e=await Deno.stat(t);_(e);return}catch(e){if(!(e instanceof Deno.errors.NotFound))throw e}try{await Deno.mkdir(t,{recursive:!0})}catch(e){if(!(e instanceof Deno.errors.AlreadyExists))throw e;let r=await Deno.stat(t);_(r)}}function _(t){if(!t.isDirectory)throw new Error(`Failed to ensure directory exists: expected 'dir', got '${w(t)}'`)}function c(t){return t instanceof URL?C(t):t}function P(t,e,r=T){if(t=c(t),e=c(e),u(t)===u(e))return!1;let i=t.split(r),o=e.split(r);return i.every((s,n)=>o[n]===s)}function S(t,e){if(t===null)throw new Error(`${e} is unavailable`)}async function I(t,e,r){let i;try{i=await Deno.lstat(e)}catch(o){if(o instanceof Deno.errors.NotFound)return;throw o}if(r.isFolder&&!i.isDirectory)throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'`);if(!r.overwrite)throw new Deno.errors.AlreadyExists(`'${e}' already exists.`);return i}async function N(t,e,r){if(await I(t,e,r),await Deno.copyFile(t,e),r.preserveTimestamps){let i=await Deno.stat(t);S(i.atime,"statInfo.atime"),S(i.mtime,"statInfo.mtime"),await Deno.utime(e,i.atime,i.mtime)}}async function U(t,e,r){await I(t,e,r);let i=await Deno.readLink(t),o=w(await Deno.lstat(t));if(g?await Deno.symlink(i,e,{type:o==="dir"?"dir":"file"}):await Deno.symlink(i,e),r.preserveTimestamps){let s=await Deno.lstat(t);S(s.atime,"statInfo.atime"),S(s.mtime,"statInfo.mtime"),await Deno.utime(e,s.atime,s.mtime)}}async function j(t,e,r){if(await I(t,e,{...r,isFolder:!0})||await x(e),r.preserveTimestamps){let s=await Deno.stat(t);S(s.atime,"statInfo.atime"),S(s.mtime,"statInfo.mtime"),await Deno.utime(e,s.atime,s.mtime)}t=c(t),e=c(e);let o=[];for await(let s of Deno.readDir(t)){let n=d(t,s.name),f=d(e,F(n));s.isSymlink?o.push(U(n,f,r)):s.isDirectory?o.push(j(n,f,r)):s.isFile&&o.push(N(n,f,r))}await Promise.all(o)}async function wt(t,e,r={}){if(t=u(c(t)),e=u(c(e)),t===e)throw new Error("Source and destination cannot be the same");let i=await Deno.lstat(t);if(i.isDirectory&&P(t,e))throw new Error(`Cannot copy '${t}' to a subdirectory of itself: '${e}'`);i.isSymlink?await U(t,e,r):i.isDirectory?await j(t,e,r):i.isFile&&await N(t,e,r)}async function Ft(t){try{let e=await Array.fromAsync(Deno.readDir(t));await Promise.all(e.map(r=>{if(r&&r.name){let i=d(c(t),r.name);return Deno.remove(i,{recursive:!0})}}))}catch(e){if(!(e instanceof Deno.errors.NotFound))throw e;await Deno.mkdir(t,{recursive:!0})}}async function A(t){t=c(t),t=L(t);let e=F(t),r=await Deno.stat(t);return{path:t,name:e,isFile:r.isFile,isDirectory:r.isDirectory,isSymlink:r.isSymlink}}function E(t,e,r,i){return!(e&&!e.some(o=>t.endsWith(o))||r&&!r.some(o=>!!t.match(o))||i&&i.some(o=>!!t.match(o)))}async function*V(t,e){let{maxDepth:r=1/0,includeFiles:i=!0,includeDirs:o=!0,includeSymlinks:s=!0,followSymlinks:n=!1,canonicalize:f=!0,exts:a=void 0,match:l=void 0,skip:m=void 0}=e??{};if(!(r<0)&&(t=c(t),a&&(a=a.map(y=>y.startsWith(".")?y:`.${y}`)),o&&E(t,a,l,m)&&(yield await A(t)),!(r<1||!E(t,void 0,void 0,m))))for await(let y of Deno.readDir(t)){let p=d(t,y.name),{isSymlink:v,isDirectory:$}=y;if(v){if(!n){s&&E(p,a,l,m)&&(yield{path:p,...y});continue}let h=await Deno.realPath(p);f&&(p=h),{isSymlink:v,isDirectory:$}=await Deno.lstat(h)}if(v||$){let h={maxDepth:r-1,includeFiles:i,includeDirs:o,includeSymlinks:s,followSymlinks:n};a!==void 0&&(h.exts=a),l!==void 0&&(h.match=l),m!==void 0&&(h.skip=m),yield*V(p,h)}else i&&E(p,a,l,m)&&(yield{path:p,...y})}}var ue=globalThis.Deno?.build.os==="windows"?"`":"\\";var B=`
|
|
4
4
|
`,J=`\r
|
|
5
5
|
`,xe=globalThis.Deno?.build.os==="windows"?J:B;export{G as a,W as b,Y as c,Z as d,Ft as e,x as f,V as g,wt as h};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as C,c as E}from"./chunk-
|
|
2
|
+
import{a as C,c as E}from"./chunk-ZWMJQZQF.js";import{a as k}from"./chunk-LFNUSULJ.js";import{b as x}from"./chunk-4FGLERUG.js";import{f as h}from"./chunk-P2MUEKFT.js";import{b as i,f as d,g as f,h as u,i as g}from"./chunk-YVN2NZL4.js";import{g as n}from"./chunk-FFWPJP7A.js";import{j as c}from"./chunk-WJKE6XHF.js";var l=x(),b=t=>{let e=new Set,r=/export\s+\*\s+from\s+["']([^"']+)["']/g,a=/export\s+\{[^}]*\}\s+from\s+["']([^"']+)["']/g,o=/export\s+type\s+\{[^}]*\}\s+from\s+["']([^"']+)["']/g;for(let s of t.matchAll(r))s[1]!==void 0&&e.add(s[1]);for(let s of t.matchAll(a))s[1]!==void 0&&e.add(s[1]);for(let s of t.matchAll(o))s[1]!==void 0&&e.add(s[1]);return e},y=t=>{let e=t.startsWith("./")?t.slice(2):t;return e.endsWith(".ts")&&(e=e.slice(0,-3)),e},O=t=>!(t==="mod.ts"||t.endsWith("_test.ts")||t.endsWith("_bench.ts")||t.startsWith("_")||t.includes("/")),P=async(t={})=>{let{root:e=".",failFast:r=!1}=t,a=await C(e),o=[];for(let s of a){let v=c.runtime.path.join(s.path,"mod.ts"),m;try{m=await c.runtime.fs.readTextFile(v)}catch{continue}let M=b(m),w=new Set([...M].map(p=>y(p))),A=await E(s.path);for(let p of A){let R=c.runtime.path.basename(p);if(!O(R))continue;let F=y(p);if(!w.has(F)&&(o.push({packageName:s.name,file:p}),r))return{isComplete:!1,missingExports:o,packagesChecked:a.length}}}return{isComplete:o.length===0,missingExports:o,packagesChecked:a.length}},W=t=>h.fromPromise(()=>P(t)),_=t=>n.ok({root:"."}),z=t=>{if(n.isFail(t))return l.writeln(d("\u2717"),i(" "+String(t.error))),n.fail({exitCode:1});let{value:e}=t;if(l.writeln(g("\u2139"),i(` Checked ${e.packagesChecked} packages.`)),!e.isComplete){l.writeln(d("\u2717"),i(` Found ${e.missingExports.length} missing exports:`));for(let r of e.missingExports)l.writeln(u("\u26A0"),i(` ${r.packageName}: ${r.file}`));return n.fail({exitCode:1})}return l.writeln(f("\u2713"),i(" All mod.ts exports are complete.")),n.ok(void 0)},S=k.createTrigger({handler:W,adaptInput:_,adaptOutput:z}),N=async t=>await S({command:"validate-mod-exports",args:[],flags:{}});export{P as a,W as b,S as c,N as d};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as f}from"./chunk-2XNFZXHY.js";import{i as t}from"./chunk-WJKE6XHF.js";import{b as a}from"./chunk-BQT5RJZB.js";import{e as c}from"./chunk-5WJ6AUNY.js";var s=c(f());var i=[".eser/manifest.yml",".eser/manifest.yaml",".manifest.yml",".manifest.yaml"],m=async e=>{for(let o of i){let n=t.path.join(e,o);try{let r=await t.fs.readTextFile(n);return s.parse(r)}catch(r){if(r instanceof a)continue;throw r}}return null},u=async e=>{for(let o of i){let n=t.path.join(e,o);try{return await t.fs.stat(n),n}catch{continue}}return null};export{i as a,m as b,u as c};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{e as x,f as w}from"./chunk-A6K5L4SG.js";import{a as O}from"./chunk-LFNUSULJ.js";import{a as F,c as U}from"./chunk-4FGLERUG.js";import{l as i}from"./chunk-H2O5G3XB.js";import{a as S,b as v,c as P,d as u}from"./chunk-J2Z7NG2X.js";import{f as V}from"./chunk-P2MUEKFT.js";import{a as k}from"./chunk-MG65QJY6.js";import{g as a}from"./chunk-FFWPJP7A.js";import{j as y}from"./chunk-7ATUODBM.js";import{j as h}from"./chunk-WJKE6XHF.js";var{ctx:d,output:_}=F(),I=async(s={})=>{let{root:e="."}=s,o=y(e,"VERSION");try{return(await h.runtime.fs.readTextFile(o)).trim()}catch{return}},N=async(s,e)=>{let o=y(s,"VERSION");await h.runtime.fs.writeTextFile(o,e+`
|
|
3
|
+
`)},M=s=>{let e=u("0.0.0");for(let o of s){let n=u(o);S(n,e)>0&&(e=n)}return v(e)},T=async(s={})=>{let{root:e="."}=s,[o,n]=await w(e),l=o.version?.value??"0.0.0";return{packages:[{name:o.name?.value??"(root)",version:l},...n.map(p=>({name:p.name,version:p.version}))]}},j=async(s,e={})=>{let{root:o=".",dryRun:n=!1,updateVersionFile:l=!0}=e,[c,f]=await w(o),p=c.version?.value??"0.0.0",b=c.name?.value??"(root)",A=[p,...f.map(t=>t.version)],C=M(A),r;if(s==="explicit"){if(e.explicitVersion===void 0)throw new Error('explicitVersion is required when command is "explicit".');u(e.explicitVersion),r=e.explicitVersion}else s==="sync"?r=C:r=v(P(u(C),s));let m=[],E=p!==r;n||await x(c,r),m.push({name:b,from:p,to:r,changed:E});for(let t of f){let g=t.version!==r;n||await x(t.config,r),m.push({name:t.name,from:t.version,to:r,changed:g})}let R=[];if(l){let t=await I({root:o}),g=t!==r;!n&&g&&await N(o,r),R.push({path:"VERSION",from:t??"",to:r,changed:g})}let $=m.filter(t=>t.changed).length;return{command:s,targetVersion:r,updates:m,fileUpdates:R,changedCount:$,dryRun:n}},H=s=>s.mode==="show"?V.fromPromise(async()=>({mode:"show",result:await T()})):V.fromPromise(async()=>({mode:"update",result:await j(s.command,s.options)})),D=s=>{let e=s.args[0];if(e===void 0)return a.ok({mode:"show"});let o=["sync","patch","minor","major"],n,l;o.includes(e)?n=e:(n="explicit",l=e);let c=s.flags["dry-run"]===!0;return a.ok({mode:"update",command:n,options:{dryRun:c,explicitVersion:l}})},W=s=>{if(a.isFail(s))return a.fail({exitCode:1,message:String(s.error)});let e=s.value;if(e.mode==="show")return console.table(e.result.packages),a.ok(void 0);let{result:o}=e;o.command==="sync"?i.info(d,"Syncing all versions..."):o.command==="explicit"?i.info(d,`Setting all versions to ${o.targetVersion}...`):i.info(d,`Bumping all versions (${o.command})...`),i.info(d,`Target version: ${o.targetVersion}`),console.table(o.updates);for(let n of o.fileUpdates)n.changed&&i.info(d,`${n.path} (${n.from} \u2192 ${n.to})`);return o.dryRun?i.info(d,`Dry run - ${o.changedCount} packages would be modified.`):i.success(d,`Done. Updated ${o.changedCount} packages.`),a.ok(void 0)},q=O.createTrigger({handler:H,adaptInput:D,adaptOutput:W}),ee=async s=>{let e=k(s??[],{boolean:["dry-run"]}),o=U("versions",e);return await q(o)};export{I as a,T as b,j as c,H as d,q as e,ee as f};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as k,b as p,c as h,e as m,f as u,g as f}from"./chunk-
|
|
2
|
+
import{a as k,b as p,c as h,e as m,f as u,g as f}from"./chunk-P72TUTYK.js";import{a as c}from"./chunk-J7YTWK67.js";var y=class{capabilities=["text_generation","streaming","tool_calling"];provider="claude-code";modelId;binary;config;constructor(e,n){this.binary=e,this.config=n,this.modelId=n.model}async generateText(e,n){let r=w(this.config,e,"json"),s=f(e.messages,e.system);r.push("-p",s);let o=p(this.binary,r,{signal:n}),l=m(o.stderr),i=o.stdout.getReader(),a=[],d=new TextDecoder,g=await i.read();for(;g.done!==!0;)a.push(d.decode(g.value,{stream:!0})),g=await i.read();i.releaseLock();let T=await o.waitForExit(),_=await l,x=u("claude-code",T.code,_);if(x!==null)throw x;let S=a.join("");return v(S,this.modelId)}async*streamText(e,n){let r=this.config.properties?.streamFormat??"text",s=w(this.config,e,r),o=f(e.messages,e.system);s.push("-p",o);let l=p(this.binary,s,{signal:n}),i=m(l.stderr);try{r==="stream-json"?yield*this.#t(l,i):yield*this.#e(l,i)}catch(a){a instanceof c?yield{kind:"error",error:a}:yield{kind:"error",error:new c(a instanceof Error?a.message:String(a),{provider:"claude-code",cause:a instanceof Error?a:void 0})}}}async*#e(e,n){let r=new TextDecoder,s=e.stdout.getReader(),o=await s.read();for(;o.done!==!0;){let d=r.decode(o.value,{stream:!0});d.length>0&&(yield{kind:"content_delta",textDelta:d}),o=await s.read()}s.releaseLock();let l=await e.waitForExit(),i=await n,a=u("claude-code",l.code,i);a!==null?yield{kind:"error",error:a}:yield{kind:"message_done",stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0}}}async*#t(e,n){for await(let l of h(e.stdout)){let i=E(l);i!==null&&(yield i)}let r=await e.waitForExit(),s=await n,o=u("claude-code",r.code,s);o!==null&&(yield{kind:"error",error:o})}close(){return Promise.resolve()}getRawClient(){return null}},P={provider:"claude-code",async createModel(t){let e=await k("claude",t);return new y(e,t)}},w=(t,e,n)=>{let r=[];n!=="text"&&r.push("--output-format",n),n==="stream-json"&&r.push("--verbose"),r.push("--model",t.model);let s=t.properties?.maxTurns;s!==void 0&&r.push("--max-turns",String(s));let o=t.properties?.allowedTools;if(o!==void 0)for(let i of o)r.push("--allowedTools",i);let l=t.properties?.args;return l!==void 0&&r.push(...l),r},v=(t,e)=>{try{let n=JSON.parse(t);return b(n,e)}catch{return{content:[{kind:"text",text:t.trim()}],stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0},modelId:e}}},b=(t,e)=>{let n=[];if(t.result!==void 0)n.push({kind:"text",text:String(t.result)});else if(t.message?.content!==void 0)for(let r of t.message.content)r.type==="text"?n.push({kind:"text",text:r.text}):r.type==="tool_use"&&n.push({kind:"tool_call",toolCall:{id:r.id??r.name,name:r.name,arguments:r.input??{}}});else typeof t=="string"&&n.push({kind:"text",text:t});return n.length===0&&n.push({kind:"text",text:JSON.stringify(t)}),{content:n,stopReason:t.stop_reason==="tool_use"?"tool_use":"end_turn",usage:{inputTokens:t.usage?.input_tokens??0,outputTokens:t.usage?.output_tokens??0,totalTokens:(t.usage?.input_tokens??0)+(t.usage?.output_tokens??0)},modelId:e,rawResponse:t}},E=t=>{if(t===null||typeof t!="object")return null;let e=t;if(e.type==="assistant"){if(e.message?.content!==void 0){for(let n of e.message.content)if(n.type==="text")return{kind:"content_delta",textDelta:n.text}}return null}return e.type==="content_block_delta"?e.delta?.type==="text_delta"?{kind:"content_delta",textDelta:e.delta.text}:null:e.type==="result"?{kind:"message_done",stopReason:e.subtype==="tool_use"?"tool_use":"end_turn",usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)}}:e.type==="error"?{kind:"error",error:new c(e.error?.message??"Unknown Claude Code error",{provider:"claude-code"})}:e.content!==void 0&&typeof e.content=="string"?{kind:"content_delta",textDelta:e.content}:null};export{y as a,P as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as o,d as l}from"./chunk-
|
|
2
|
+
import{b as o,d as l}from"./chunk-P2MUEKFT.js";import{d as n}from"./chunk-FFWPJP7A.js";import{d as E}from"./chunk-5WJ6AUNY.js";var i={};E(i,{adaptError:()=>d,bind:()=>u,createTrigger:()=>c});var d=(e,r)=>({_tag:"AdaptError",message:e,source:r}),u=(e,r)=>s=>{let t=r(s);return n(t)?o(t.error):e(t.value)},c=e=>async(r,...s)=>{let t=u(e.handler,e.adaptInput),p=await l(t(r),...s);return e.adaptOutput(p)};export{i as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{
|
|
2
|
+
import{i as o}from"./chunk-WJKE6XHF.js";var r=()=>o.env.get("HOME")??"",l=()=>{let e=o.env.get("SHELL")??"";return e.includes("zsh")?"zsh":e.includes("fish")?"fish":"bash"},s=e=>{let t=r();switch(e){case"zsh":return o.path.join(t,".zshrc");case"bash":return o.path.join(t,".bashrc");case"fish":return o.path.join(t,".config","fish","config.fish")}},c=(e,t)=>{let n=r();switch(e){case"zsh":return o.path.join(n,".zshrc");case"bash":return o.path.join(n,".bashrc");case"fish":return o.path.join(n,".config","fish","completions",`${t}.fish`)}},g=(e,t)=>`eval "$(${t} system completions --shell ${e})"`,a=e=>e==="fish"?"file":"eval",p=(e,t="eser")=>{let n=e??l(),i=a(n);return{shell:n,rcFile:s(n),completionType:i,completionsFile:i==="file"?c(n,t):void 0}},f=[{envVars:["CLAUDE_CODE","CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_SESSION_ID"],tool:"claude-code"},{envVars:["CURSOR_SESSION","CURSOR"],tool:"cursor"},{envVars:["KIRO_SESSION","KIRO"],tool:"kiro"},{envVars:["WINDSURF_SESSION"],tool:"windsurf"},{envVars:["GITHUB_COPILOT"],tool:"copilot"}],h=()=>{for(let e of f)for(let t of e.envVars){let n=o.env.get(t);if(n!==void 0&&n!=="")return e.tool}return null},u=()=>h()!==null?"agent":"human";export{l as a,g as b,p as c,h as d,u as e};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as i}from"./chunk-ULNEO3RY.js";import{i as t}from"./chunk-WJKE6XHF.js";var s=i({name:"validate-submodules",description:"Detect new git submodules",canFix:!1,stacks:[],defaults:{},async checkAll(n,a){let o=t.path.join(a.root,".gitmodules");if(!await t.fs.exists(o))return[];let e=((await t.fs.readTextFile(o)).match(/\[submodule\s/g)??[]).length;return e>0?[{path:o,message:`found ${e} submodule(s) \u2014 submodules are not allowed`}]:[]}}),p=s.run,f=s.validator,x=s.main;export{s as a,p as b,f as c,x as d};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as ge,b as me,d as X,e as Ye,f as et,g as tt,h as U}from"./chunk-
|
|
2
|
+
import{n as $e}from"./chunk-3QF3I2RD.js";import{a as ge,b as me,d as X,e as Ye,f as et,g as tt,h as U}from"./chunk-K2MKYDPY.js";import{a as nt}from"./chunk-3IZX4OZ7.js";import{c as fe}from"./chunk-A6K5L4SG.js";import{a as pe,b as re,c as z,d as Be}from"./chunk-NBA6EFWU.js";import{e as S}from"./chunk-5DWJ7WEE.js";import{i as o}from"./chunk-WJKE6XHF.js";import{e as H,i as Qe}from"./chunk-BQT5RJZB.js";var I=S.getLogger(["laroux-bundler","server-action-transform"]);function mn(e,t){return`${e.replace(/\.[cm]?[jt]sx?$/,"")}#${t}`}function hn(e,t){let n=mn(e,t);return`Object.defineProperties(${t}, {
|
|
3
3
|
$$typeof: { value: Symbol.for("react.server.reference"), enumerable: false },
|
|
4
4
|
$$id: { value: "${n}", enumerable: false },
|
|
5
5
|
$$bound: { value: null, enumerable: false, writable: true }
|
|
@@ -125,4 +125,4 @@ ${l}`),{success:!1,clientBundle:"",moduleMap:{},clientComponents:0,duration:perf
|
|
|
125
125
|
</html>
|
|
126
126
|
`,{forceInclude:[/^\.flex/,/^\.grid/,/^\.block/,/^\.inline/,/^\.items-/,/^\.justify-/,/^\.gap-/,/^\.space-/,/^\.min-h-/,/^\.max-w-/,/^\.w-/,/^\.h-/,/^\.mx-/,/^\.my-/,/^\.px-/,/^\.py-/,/^\.p-/,/^\.m-/,/^\.mt-/,/^\.mb-/,/^\.ml-/,/^\.mr-/,/^\.pt-/,/^\.pb-/,/^\.pl-/,/^\.pr-/,/^\.sm:/,/^\.md:/,/^\.lg:/,/^\.xl:/,/^\.2xl:/,/^\.bg-neutral-/,/^\.bg-surface/,/^\.bg-primary-/,/^\.text-neutral-/,/^\.text-primary-/,/^\.text-white/,/^\.border/,/^\.rounded/,/^\.text-sm/,/^\.text-lg/,/^\.text-xl/,/^\.text-2xl/,/^\.text-3xl/,/^\.text-4xl/,/^\.text-5xl/,/^\.font-/,/^\.leading-/,/^\.overflow-/,/^\.visible/,/^\.invisible/,/^\.hidden/,/^\.relative/,/^\.absolute/,/^\.fixed/,/^\.sticky/,/^\.shadow/,/^html/,/^body/,/^#root/,/^\*/]}),a=o.path.resolve(t,"styles.critical.css"),c=o.path.resolve(t,"styles.deferred.css");await o.fs.writeTextFile(a,i.critical),await o.fs.writeTextFile(c,i.deferred);let u=i.stats;return u?g.debug(`\u2713 Critical CSS extracted: ${u.criticalSize} bytes critical, ${u.deferredSize} bytes deferred`):g.debug("\u2713 Critical CSS extracted"),{criticalPath:a,deferredPath:c}}catch(r){return g.error("Critical CSS extraction failed:",{error:r}),null}}async function Cr(e,t){if(!e.extractUniversalCss)return g.debug("CSS plugin doesn't support universal CSS extraction, skipping"),null;let n=o.path.resolve(t,"styles.css");if(!await o.fs.exists(n))return g.debug("No styles.css found, skipping universal CSS generation"),null;try{let r=await o.fs.readTextFile(n),s=e.extractUniversalCss(r),i=o.path.resolve(t,"styles.universal.css");return await o.fs.writeTextFile(i,s.css),g.debug(`\u2713 Universal CSS generated: ${s.css.length} bytes`),i}catch(r){return g.error("Universal CSS generation failed:",{error:r}),null}}async function vr(e,t){if(await o.fs.exists(e))if(t){g.debug("\u{1F9F9} Cleaning build directory (preserving CSS)");let n=o.path.resolve(e,G);await o.fs.exists(n)&&await o.fs.remove(n,{recursive:!0});let r=o.path.resolve(e,ke);if(await o.fs.exists(r))for await(let s of o.fs.readDir(r)){if(s.name.endsWith(".css")||s.name==="fonts"||s.name==="fonts.css"||s.name==="font-preloads.json")continue;let i=o.path.resolve(r,s.name);await o.fs.remove(i,{recursive:!0})}}else await o.fs.remove(e,{recursive:!0}),g.debug("\u{1F9F9} Cleaned build directory")}async function Sr(e,t){let r=Ve(t)[0];if(!r){g.debug("\u2713 No fonts configured, skipping font optimization");return}let s=o.path.resolve(e,"fonts"),i="/fonts";try{let a=await He(r,s,i),c=o.path.resolve(e,"fonts.css");await o.fs.writeTextFile(c,a.fontFaceCSS);let u=o.path.resolve(e,"font-preloads.json");await o.fs.writeTextFile(u,JSON.stringify(a.preloadHints,null,2)),g.debug(`\u2713 Fonts optimized: ${a.files.length} file(s), ${(a.totalSize/1024).toFixed(2)} KB`)}catch(a){g.error("Font optimization failed:",{error:a}),g.warn("Continuing build without font optimization")}}async function qe(e){let t=[];async function n(r){for await(let s of o.fs.readDir(r)){let i=o.path.resolve(r,s.name);s.isDirectory?await n(i):s.isFile&&s.name.endsWith(".module.css")&&t.push(i)}}return await n(e),t}async function an(e,t,n,r){let s=r?.cssModulePaths??await qe(n.srcDir);if(s.length===0)return g.debug("No CSS modules found, skipping CSS module processing"),new Map;g.debug(`Found ${s.length} CSS module(s)`);try{let i=await Ke(s,{generateDTS:n.cssModuleTypes,projectRoot:e,cache:r?.cache});for(let[a,c]of i)await nn(a,c,t,{skipCss:r?.skipCss,projectRoot:e});return g.debug(`\u2713 Processed ${s.length} CSS module(s)${n.cssModuleTypes?" with TypeScript definitions":""}`),i}catch(i){throw g.error("CSS module processing failed:",{error:i}),i}}async function ln(e,t,n){let r=0;for(let s of e){let i=o.path.relative(t,s),a=o.path.basename(s)+".json",c=o.path.join(t,o.path.dirname(i),a),u=o.path.join(n,o.path.dirname(i),a);await o.fs.ensureDir(o.path.dirname(u));try{await U(c,u,{overwrite:!0}),r++}catch(l){g.warn(` \u26A0 Failed to copy JSON for ${o.path.relative(t,s)}:`,{error:l})}}r>0&&g.debug(`\u2713 Copied ${r} CSS module JSON file(s)`)}async function Rr(e,t,n,r){if(e.length===0)return;let s;r?s=r:s=await Ke(e,{generateDTS:!1,projectRoot:t});let i=[];for(let[,a]of s)i.push(a.code);if(i.length>0){let a=o.path.resolve(n,"styles.css"),c="";try{c=await o.fs.readTextFile(a)}catch{}c=c.replace(/\x1B\[[0-9;]*[a-zA-Z]/g,"");let u=i.map(p=>p.replace(/\x1B\[[0-9;]*[a-zA-Z]/g,"")),l=c+`
|
|
127
127
|
`+u.join(`
|
|
128
|
-
`);await o.fs.writeTextFile(a,l),g.debug(`\u2713 Appended ${i.length} CSS module(s) to styles.css`)}}async function Pr(e,t,n){let{optimizeImages:r,scanImages:s}=await import("./mod-
|
|
128
|
+
`);await o.fs.writeTextFile(a,l),g.debug(`\u2713 Appended ${i.length} CSS module(s) to styles.css`)}}async function Pr(e,t,n){let{optimizeImages:r,scanImages:s}=await import("./mod-PZSJGUM7.js"),i=o.path.resolve(e,"public"),a=o.path.resolve(i,"images");if(!await o.fs.exists(a)){g.debug("\u2713 No images directory found, skipping image optimization");return}if((await s(a)).length===0){g.debug("\u2713 No images found, skipping image optimization");return}try{let u=o.path.resolve(t,"images"),l=await r(a,u,"/images",{formats:n.images.formats,widths:n.images.widths,quality:n.images.quality,generateBlurPlaceholder:n.images.placeholder==="blur"}),p=Object.keys(l.images).length;p>0&&g.debug(`\u2713 Optimized ${p} image(s)`)}catch(u){g.error("Image optimization failed:",{error:u}),g.warn("Continuing build without image optimization")}}export{Pe as a,_s as b,ai as c,dn as d,li as e,ui as f};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{c as o}from"./chunk-
|
|
2
|
+
import{c as o}from"./chunk-NEHZOG23.js";import{i as e}from"./chunk-WJKE6XHF.js";var d=async(r,i,n)=>{let s=`${r}/${o.specFile(i)}`;try{let t=await e.fs.readTextFile(s);t=t.replace(/^## Status: .+$/m,`## Status: ${n}`),await e.fs.writeTextFile(s,t)}catch{}},u=async(r,i,n)=>{let s=`${r}/${o.specFile(i)}`;try{let t=await e.fs.readTextFile(s),a=new RegExp(`^(- )\\[ \\]( ${n}:.*)$`,"m");t=t.replace(a,"$1[x]$2"),await e.fs.writeTextFile(s,t)}catch{}},w=async(r,i,n,s)=>{let t=`${r}/${o.specDir(i)}/progress.json`;try{let a=await e.fs.readTextFile(t),c=JSON.parse(a);for(let p of c.tasks)p.id===n&&(p.status=s);c.updatedAt=new Date().toISOString(),await e.fs.writeTextFile(t,JSON.stringify(c,null,2)+`
|
|
3
3
|
`)}catch{}},f=async(r,i,n)=>{let s=`${r}/${o.specDir(i)}/progress.json`;try{let t=await e.fs.readTextFile(s),a=JSON.parse(t);a.status=n,a.updatedAt=new Date().toISOString(),await e.fs.writeTextFile(s,JSON.stringify(a,null,2)+`
|
|
4
4
|
`)}catch{}};export{d as a,u as b,w as c,f as d};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{a as D}from"./chunk-2XNFZXHY.js";import{i as s}from"./chunk-WJKE6XHF.js";import{e as w}from"./chunk-5WJ6AUNY.js";var m=()=>({version:"0.1.0",phase:"IDLE",spec:null,branch:null,discovery:{answers:[],completed:!1,currentQuestion:0,audience:"human"},specState:{path:null,status:"none"},execution:{iteration:0,lastProgress:null,modifiedFiles:[],lastVerification:null,awaitingStatusReport:!1,debt:null,completedTasks:[],debtCounter:0,naItems:[]},decisions:[],lastCalledAt:null,classification:null}),b=(e,t,r,n)=>({concerns:e,tools:t,providers:r,project:n,maxIterationsBeforeRestart:15,verifyCommand:null,allowGit:!1,command:"npx eser@latest noskills"});var o=w(D(),1);var a=".eser",l=`${a}/.state`,S=`${l}/state.json`,g=`${a}/manifest.yml`,d=`${a}/concerns`,h=`${a}/rules`,p=`${a}/specs`,x=`${a}/workflows`,y=`${l}/specs`,F=`${l}/active.json`,c={eserDir:a,stateDir:l,stateFile:S,manifestFile:g,concernsDir:d,rulesDir:h,specsDir:p,workflowsDir:x,specStatesDir:y,activeFile:F,specDir:e=>`${p}/${e}`,specFile:e=>`${p}/${e}/spec.md`,specStateFile:e=>`${y}/${e}.json`,concernFile:e=>`${d}/${e}.json`,eserGitignore:`${a}/.gitignore`},f=async e=>{let t=`${e}/${S}`;try{let r=await s.fs.readTextFile(t);return JSON.parse(r)}catch{return m()}},T=async(e,t)=>{if(t==null)return f(e);let r=`${e}/${c.specDir(t)}`;try{await s.fs.stat(r)}catch{throw new Error(`Spec '${t}' not found. Run \`noskills spec list\` to see available specs.`)}let n=await P(e,t);if(n.spec===t)return n;let i=await f(e);return i.spec===t?i:{...n,spec:t}},E=e=>{if(e===void 0)return null;for(let t of e)if(t.startsWith("--spec="))return t.slice(7);return null},I=async(e,t)=>{let r=`${e}/${l}`,n=`${e}/${S}`;await s.fs.mkdir(r,{recursive:!0}),await s.fs.writeTextFile(n,JSON.stringify(t,null,2)+`
|
|
3
|
+
`)},R=async e=>(await f(e)).spec;var P=async(e,t)=>{let r=`${e}/${c.specStateFile(t)}`;try{let n=await s.fs.readTextFile(r);return JSON.parse(n)}catch{return m()}},v=async(e,t,r)=>{let n=`${e}/${y}`,i=`${e}/${c.specStateFile(t)}`;await s.fs.mkdir(n,{recursive:!0}),await s.fs.writeTextFile(i,JSON.stringify(r,null,2)+`
|
|
4
|
+
`)},k=async e=>{let t=`${e}/${y}`,r=[];try{for await(let n of s.fs.readDir(t))if(n.isFile&&n.name.endsWith(".json")){let i=n.name.replace(/\.json$/,""),u=await s.fs.readTextFile(`${t}/${n.name}`);r.push({name:i,state:JSON.parse(u)})}}catch{}return r},N=async e=>{let t=`${e}/${g}`;try{let r=await s.fs.readTextFile(t),n=o.parse(r);return n?.noskills===void 0?null:n.noskills}catch{return null}},A=async(e,t)=>{let r=`${e}/${g}`,n;try{let u=await s.fs.readTextFile(r);n=o.parseDocument(u)}catch{n=new o.Document({})}let i=n.createNode(t);i.commentBefore=" noskills orchestrator \u2014 inline comments in this section won't be preserved on next write",n.set("noskills",i),await s.fs.writeTextFile(r,n.toString())},O=async(e,t)=>{let r=`${e}/${c.concernFile(t)}`;try{let n=await s.fs.readTextFile(r);return JSON.parse(n)}catch{return null}},_=async(e,t)=>{let r=`${e}/${d}`,n=`${e}/${c.concernFile(t.id)}`;await s.fs.mkdir(r,{recursive:!0}),await s.fs.writeTextFile(n,JSON.stringify(t,null,2)+`
|
|
5
|
+
`)},j=async e=>{let t=`${e}/${d}`,r=[];try{for await(let n of s.fs.readDir(t))if(n.isFile&&n.name.endsWith(".json")){let i=await s.fs.readTextFile(`${t}/${n.name}`);r.push(JSON.parse(i))}}catch{}return r},L=async e=>{let t=[a,l,y,d,h,p,x];for(let n of t)await s.fs.mkdir(`${e}/${n}`,{recursive:!0});let r=`${e}/${c.eserGitignore}`;try{await s.fs.stat(r)}catch{await s.fs.writeTextFile(r,`# eser toolchain runtime state \u2014 not tracked by git
|
|
6
|
+
.state/
|
|
7
|
+
`)}},M=async(e,t)=>{await I(e,t),t.spec!==null&&await v(e,t.spec,t)},V=async e=>{try{let t=await s.fs.readTextFile(`${e}/${g}`);return o.parse(t)?.noskills!==void 0}catch{return!1}};export{m as a,b,c,f as d,T as e,E as f,I as g,R as h,P as i,v as j,k,N as l,A as m,O as n,_ as o,j as p,L as q,M as r,V as s};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as E,b as A,c as I}from"./chunk-
|
|
2
|
+
import{a as E,b as A,c as I}from"./chunk-ZWMJQZQF.js";import{a as w}from"./chunk-LFNUSULJ.js";import{b as v}from"./chunk-4FGLERUG.js";import{f as D}from"./chunk-P2MUEKFT.js";import{b as l,f as g,g as k,h as C,i as h}from"./chunk-YVN2NZL4.js";import{g as a}from"./chunk-FFWPJP7A.js";import{j as b}from"./chunk-WJKE6XHF.js";var u=v(),O=/\/\*\*\s*([\s\S]*?)\s*\*\//g,R=/export\s+(const|function|class|type|interface)\s+(\w+)/g,$=/@example/,S=s=>{let n=[],i;for(R.lastIndex=0;(i=R.exec(s))!==null;){let e=i.index,t=i[2];if(t===void 0)continue;let c=s.substring(0,e).split(`
|
|
3
3
|
`).length,p=null,m=[...s.substring(0,e).matchAll(O)];if(m.length>0){let r=m[m.length-1];if(r!==void 0){let d=(r.index??0)+r[0].length,f=s.substring(d,e);/^\s*$/.test(f)&&(p=r[1]??null)}}n.push({jsdoc:p,symbolName:t,line:c})}return n},_=(s,n,i)=>{let e=[];if(s===null)return e.push("missing-description"),e;let t=s.split(`
|
|
4
4
|
`)[0]?.trim();return(!t||t.startsWith("@"))&&e.push("empty-description"),i&&!$.test(s)&&e.push("missing-example"),e},F=async(s={})=>{let{root:n=".",requireExamples:i=!1}=s,e=await E(n),t=[],o=0,c=0;for(let p of e){let y=await I(p.path);for(let m of y){let r=A(m,p.path),d;try{d=await b.runtime.fs.readTextFile(r)}catch{continue}o++;let f=S(d);for(let{jsdoc:T,symbolName:x,line:P}of f){c++;let M=_(T,x,i);for(let N of M)t.push({file:r,symbol:x,issue:N,line:P})}}}return{isValid:t.length===0,issues:t,filesChecked:o,symbolsChecked:c}},J=s=>{switch(s){case"missing-description":return"Missing JSDoc documentation";case"missing-param":return"Missing @param documentation";case"missing-returns":return"Missing @returns documentation";case"missing-example":return"Missing @example";case"empty-description":return"Empty description"}},j=s=>D.fromPromise(()=>F(s)),V=s=>a.ok({root:"."}),q=s=>{if(a.isFail(s))return u.writeln(g("\u2717"),l(" "+String(s.error))),a.fail({exitCode:1});let{value:n}=s;if(u.writeln(h("\u2139"),l(` Checked ${n.filesChecked} files, ${n.symbolsChecked} symbols.`)),!n.isValid){u.writeln(g("\u2717"),l(` Found ${n.issues.length} documentation issues:`));let i=new Map;for(let e of n.issues){let t=i.get(e.file)??[];t.push(e),i.set(e.file,t)}for(let[e,t]of i){u.writeln(C("\u26A0"),l(" "+e));for(let o of t){let c=o.line!==void 0?`:${o.line}`:"";u.writeln(h("\u2139"),l(` ${o.symbol}${c}: ${J(o.issue)}`))}}return a.fail({exitCode:1})}return u.writeln(k("\u2713"),l(" All documentation is valid.")),a.ok(void 0)},B=w.createTrigger({handler:j,adaptInput:V,adaptOutput:q}),Q=async s=>await B({command:"validate-docs",args:[],flags:{}});export{F as a,j as b,B as c,Q as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as o}from"./chunk-
|
|
2
|
+
import{a as o}from"./chunk-ULNEO3RY.js";var a=1024,s=o({name:"validate-large-files",description:"Detect files exceeding size limit",canFix:!1,stacks:[],defaults:{maxKb:a},checkAll(n,r){let e=r.maxKb??a,l=e*1024,t=[];for(let i of n)if(i.size>l){let c=Math.round(i.size/1024);t.push({path:i.path,message:`file is ${c}KB (max: ${e}KB)`})}return t}}),d=s.run,f=s.validator,x=s.main;export{s as a,d as b,f as c,x as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as i}from"./chunk-
|
|
2
|
+
import{a as i}from"./chunk-ULNEO3RY.js";import{j as a}from"./chunk-WJKE6XHF.js";var s=i({name:"validate-symlinks",description:"Detect broken symlinks",canFix:!1,stacks:[],defaults:{},async checkAll(n){let o=[];for(let t of n)if(t.isSymlink)try{await a.runtime.fs.stat(t.path)}catch{o.push({path:t.path,message:"broken symlink \u2014 target not found"})}return o}}),l=s.run,c=s.validator,m=s.main;export{s as a,l as b,c,m as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as o}from"./chunk-
|
|
2
|
+
import{a as o}from"./chunk-ULNEO3RY.js";var a=o({name:"validate-shebangs",description:"Validate shebang/executable consistency",canFix:!1,stacks:[],defaults:{},checkFile(t,i){return[]}}),r=a.run,l=a.validator,c=a.main;export{a,r as b,l as c,c as d};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{f as e}from"./chunk-WJKE6XHF.js";var n={command:"eser",devCommand:"deno task cli",npmPackage:"eser",jsrPackage:"@eser/cli"},r="npx eser@latest noskills",t=r,i=s=>{t=s},m=()=>t,a=s=>`${t} ${s}`,c=async()=>await e(n,["noskills","nos"])??r;export{i as a,m as b,a as c,c as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as l}from"./chunk-
|
|
2
|
+
import{a as l}from"./chunk-ULNEO3RY.js";var p=new Set(["con","prn","aux","nul","com1","com2","com3","com4","com5","com6","com7","com8","com9","lpt1","lpt2","lpt3","lpt4","lpt5","lpt6","lpt7","lpt8","lpt9"]),E=/^[a-z0-9_./[\]@-]+$/,u=/^[a-z0-9./[\]@-]+$/,g=[".claude/",".github/",".git/","CLAUDE.md","AGENTS.md","CHANGELOG.md","Makefile","Dockerfile","LICENSE","README.md","VERSION"],d=(o,s)=>{for(let e of s)if(e.includes("*")){let a=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^/]+");if(new RegExp(a).test(o))return!0}else if(o.includes(e)||o.endsWith(e))return!0;return!1},c=l({name:"validate-filenames",description:"Enforce filename conventions (kebab-case / snake_case)",canFix:!1,stacks:[],defaults:{},checkAll(o,s){let e=[],a=s.rules,f=s.exclude??g;for(let t of o){if(d(t.path,f))continue;let i=t.name,m=i.replace(/\.[^.]+$/,"");if(p.has(m.toLowerCase())){e.push({path:t.path,message:`Windows-reserved filename: ${i}`});continue}if(a!==void 0){let r=!1;for(let n of a)if(n.directory==="*"||t.path.includes(n.directory)){if(n.exclude!==void 0&&d(t.path,n.exclude)){r=!0;break}(n.convention==="snake_case"?E:u).test(i)||e.push({path:t.path,message:`filename must be ${n.convention}`}),r=!0;break}if(r)continue}u.test(i)||e.push({path:t.path,message:"filename must be kebab-case"})}return e}}),S=c.run,k=c.validator,v=c.main;export{c as a,S as b,k as c,v as d};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as g}from"./chunk-GTHXGAMQ.js";import{e as l}from"./chunk-
|
|
2
|
+
import{a as g}from"./chunk-GTHXGAMQ.js";import{e as l}from"./chunk-5DWJ7WEE.js";import{a as n}from"./chunk-N7DXBY3O.js";import{i as s}from"./chunk-WJKE6XHF.js";var a={port:8e3,host:"localhost",hmr:!0,open:!1},f=["@eser/laroux","@eser/laroux-server"],d={minify:!0,sourcemap:!0,target:["es2022"],external:[],serverExternals:f},p={mode:"always",streamMode:"streaming-optimal"},c={webp:80,avif:75,jpeg:85,png:90},C={formats:["webp","original"],widths:[640,768,1024,1280,1920],quality:c,placeholder:"blur"},R={width:1300,height:900},u={enabled:!0,viewport:R,forceInclude:[],forceExclude:[]},m={runtimeBundleEndpoint:"/__runtime_bundle.js",runtimeModuleMapEndpoint:"/__runtime_module_map.json",staticAssetsPrefix:"/dist"},v={isDev:!1,isBuild:!1,isServe:!1,isWatch:!1},S={jsr:{"@eser/logging":`
|
|
3
3
|
// Browser shim for @eser/logging
|
|
4
4
|
const noop = () => {};
|
|
5
5
|
const noopLogger = { debug: noop, info: noop, warn: noop, error: noop };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as i,b as n,c as u,d as R}from"./chunk-
|
|
2
|
+
import{a as i,b as n,c as u,d as R}from"./chunk-FFWPJP7A.js";import{d as y}from"./chunk-5WJ6AUNY.js";var U={};y(U,{all:()=>A,allPar:()=>O,failTask:()=>d,flatMap:()=>v,flatMapW:()=>w,fromPromise:()=>x,map:()=>k,provideContext:()=>P,runTask:()=>g,succeed:()=>m,task:()=>a,validate:()=>C,withAbort:()=>b,withLogging:()=>h,withRetry:()=>z,withTimeout:()=>F});var c=async(r,t,s=0)=>{let e=n(new Error("No attempts made"));for(let o=0;o<t;o++){if(e=await r(),u(e))return e;o<t-1&&s>0&&await new Promise(l=>setTimeout(l,s))}return e};var E=async(r,t,s)=>{let e=null,o=new Promise(l=>{e=setTimeout(()=>l(n(s)),t)});try{return await Promise.race([r(),o])}finally{e!==null&&clearTimeout(e)}};var a=r=>({_tag:"Task",execute:r}),m=r=>a(()=>Promise.resolve(i(r))),d=r=>a(()=>Promise.resolve(n(r))),x=(r,t=s=>s)=>a(async()=>{try{return i(await r())}catch(s){return n(t(s))}}),k=(r,t)=>a(async s=>{let e=await r.execute(s);return u(e)?i(t(e.value)):e}),v=(r,t)=>a(async s=>{let e=await r.execute(s);return R(e)?e:t(e.value).execute(s)}),w=(r,t)=>a(async s=>{let e=await r.execute(s);return R(e)?e:t(e.value).execute(s)}),g=(r,...t)=>r.execute(t[0]),P=(r,t)=>a(()=>r.execute(t)),b=(r,t)=>a(async s=>{let{signal:e}=s,o=s;if(e.aborted)return n({_tag:"AbortError",message:"Operation was already aborted"});let l;try{let p=new Promise(T=>{e.addEventListener("abort",()=>T(n({_tag:"AbortError",message:"Operation aborted"})),{once:!0}),t>0&&(l=setTimeout(()=>T(n({_tag:"AbortError",message:`Operation timed out after ${t}ms`})),t))});return await Promise.race([r.execute(o),p])}finally{l!==void 0&&clearTimeout(l)}}),h=(r,t)=>a(async s=>{let{logger:e}=s,o=s;e.info(`[${t}] started`);let l=await r.execute(o);return u(l)?e.info(`[${t}] completed`):e.error(`[${t}] failed`,{error:l.error}),l}),C=(r,t)=>s=>r(s)?m(s):d({_tag:"ValidationError",message:t}),A=r=>a(async t=>{let s=[];for(let e of r){let o=await e.execute(t);if(R(o))return o;s.push(o.value)}return i(s)}),O=r=>a(async t=>{let s=await Promise.all(r.map(o=>o.execute(t))),e=[];for(let o of s){if(R(o))return o;e.push(o.value)}return i(e)}),z=(r,t,s=0)=>a(e=>c(()=>r.execute(e),t,s)),F=(r,t,s)=>a(e=>E(()=>r.execute(e),t,s));export{a,d as b,x as c,g as d,F as e,U as f};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as i}from"./chunk-J7YTWK67.js";import{b as d,d as c}from"./chunk-
|
|
2
|
+
import{a as i}from"./chunk-J7YTWK67.js";import{b as d,d as c}from"./chunk-ECY4MUD3.js";var y=async(r,t)=>{let e=t.properties?.binPath;if(e!==void 0)return e;try{let n=await c`which ${r}`.noThrow().text();if(n.length>0)return n}catch{}throw new i(`Binary "${r}" not found. Set properties.binPath in config or ensure it is on PATH.`,{provider:r})},f=(r,t,e)=>{let s=new d(r,[...t],{stdin:"null",stdout:"piped",stderr:"piped",cwd:e?.cwd,env:e?.env}).child();if(e?.signal!==void 0){let o=e.signal;o.aborted?s.kill("SIGTERM"):o.addEventListener("abort",()=>{s.kill("SIGTERM")},{once:!0})}return{stdout:s.stdout,stderr:s.stderr,waitForExit:async()=>{let o=await s.status;return{code:o.code,success:o.success}},kill:o=>{s.kill(o??"SIGTERM")}}},a=new TextDecoder;async function*m(r){let t=r.getReader(),e="";try{let n=await t.read();for(;n.done!==!0;){e+=a.decode(n.value,{stream:!0});let o=e.split(`
|
|
3
3
|
`);e=o.pop()??"";for(let u of o){let l=u.trim();if(l.length!==0)try{yield JSON.parse(l)}catch{}}n=await t.read()}let s=e.trim();if(s.length>0)try{yield JSON.parse(s)}catch{}}finally{t.releaseLock()}}var h=async(r,t)=>{let e=r.getReader(),n=[],s=await e.read();for(;s.done!==!0;)n.push(a.decode(s.value,{stream:!0})),s=await e.read();return e.releaseLock(),{content:[{kind:"text",text:n.join("").trim()}],stopReason:"end_turn",usage:{inputTokens:0,outputTokens:0,totalTokens:0},modelId:t}},w=async r=>{let t=r.getReader(),e=[],n=await t.read();for(;n.done!==!0;)e.push(a.decode(n.value,{stream:!0})),n=await t.read();return t.releaseLock(),e.join("").trim()},x=(r,t,e)=>{if(t===0)return null;let n=e.length>0?`${r} exited with code ${t}: ${e}`:`${r} exited with code ${t}`;return t===1?new i(n,{provider:r}):t===126||t===127?new i(`${r} binary not found or not executable (exit code ${t})`,{provider:r}):new i(n,{provider:r})},b=(r,t)=>{let e=[];t!==void 0&&(e.push(t),e.push(""));for(let n of r)for(let s of n.content)s.kind==="text"&&e.push(s.text);return e.join(`
|
|
4
4
|
`)};export{y as a,f as b,m as c,h as d,w as e,x as f,b as g};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as _,c as b}from"./chunk-BNQAZLIQ.js";import{a as y,e as f}from"./chunk-J7YTWK67.js";var h=class{capabilities=["text_generation","streaming","tool_calling","vision","batch_processing"];provider="anthropic";modelId;client;config;constructor(t,n){this.client=t,this.config=n,this.modelId=n.model}async generateText(t,n){let o=p(this.config,t);try{let a=await this.client.messages.create(o,{signal:n,timeout:this.config.requestTimeoutMs});return k(a,this.modelId)}catch(a){throw i(a)}}async*streamText(t,n){let o=p(this.config,t);try{let a=await this.client.messages.create({...o,stream:!0},{signal:n,timeout:this.config.requestTimeoutMs}),r=null,l=null,c="",d=0,u=0;for await(let s of a)if(s.type==="message_start")d=s.message?.usage?.input_tokens??0;else if(s.type==="content_block_start")s.content_block?.type==="tool_use"&&(r=s.content_block.id??null,l=s.content_block.name??null,c="");else if(s.type==="content_block_delta")s.delta?.type==="text_delta"?yield{kind:"content_delta",textDelta:s.delta.text}:s.delta?.type==="input_json_delta"&&(c+=s.delta.partial_json??"",yield{kind:"tool_call_delta",textDelta:s.delta.partial_json});else if(s.type==="content_block_stop"){if(r!==null&&l!==null){let m={};try{m=JSON.parse(c||"{}")}catch{}yield{kind:"tool_call_delta",toolCall:{id:r,name:l,arguments:m}},r=null,l=null,c=""}}else s.type==="message_delta"&&(u=s.usage?.output_tokens??u,yield{kind:"message_done",stopReason:x(s.delta?.stop_reason),usage:{inputTokens:d,outputTokens:u,totalTokens:d+u}})}catch(a){yield{kind:"error",error:i(a)}}}async submitBatch(t,n){let o=t.items.map(a=>({custom_id:a.customId,params:p(this.config,a.options)}));try{let a=await this.client.beta.messages.batches.create({requests:o},{signal:n});return g(a)}catch(a){throw i(a)}}async getBatchJob(t,n){try{let o=await this.client.beta.messages.batches.retrieve(t,{signal:n});return g(o)}catch(o){throw i(o)}}async listBatchJobs(t,n){try{let o=await this.client.beta.messages.batches.list({limit:t?.limit,after_id:t?.after},{signal:n}),a=[];for(let r of o.data??[])a.push(g(r));return a}catch(o){throw i(o)}}async downloadBatchResults(t,n){try{let o=await this.client.beta.messages.batches.results(t.id,{signal:n}),a=[];for await(let r of o)r.result?.type==="succeeded"?a.push({customId:r.custom_id,result:k(r.result.message,this.modelId)}):a.push({customId:r.custom_id,error:r.result?.error?.message??"Unknown error"});return a}catch(o){throw i(o)}}async cancelBatchJob(t,n){try{await this.client.beta.messages.batches.cancel(t,{signal:n})}catch(o){throw i(o)}}async close(){}getRawClient(){return this.client}},A={provider:"anthropic",async createModel(e){let{default:t}=await import("./sdk-
|
|
2
|
+
import{b as _,c as b}from"./chunk-BNQAZLIQ.js";import{a as y,e as f}from"./chunk-J7YTWK67.js";var h=class{capabilities=["text_generation","streaming","tool_calling","vision","batch_processing"];provider="anthropic";modelId;client;config;constructor(t,n){this.client=t,this.config=n,this.modelId=n.model}async generateText(t,n){let o=p(this.config,t);try{let a=await this.client.messages.create(o,{signal:n,timeout:this.config.requestTimeoutMs});return k(a,this.modelId)}catch(a){throw i(a)}}async*streamText(t,n){let o=p(this.config,t);try{let a=await this.client.messages.create({...o,stream:!0},{signal:n,timeout:this.config.requestTimeoutMs}),r=null,l=null,c="",d=0,u=0;for await(let s of a)if(s.type==="message_start")d=s.message?.usage?.input_tokens??0;else if(s.type==="content_block_start")s.content_block?.type==="tool_use"&&(r=s.content_block.id??null,l=s.content_block.name??null,c="");else if(s.type==="content_block_delta")s.delta?.type==="text_delta"?yield{kind:"content_delta",textDelta:s.delta.text}:s.delta?.type==="input_json_delta"&&(c+=s.delta.partial_json??"",yield{kind:"tool_call_delta",textDelta:s.delta.partial_json});else if(s.type==="content_block_stop"){if(r!==null&&l!==null){let m={};try{m=JSON.parse(c||"{}")}catch{}yield{kind:"tool_call_delta",toolCall:{id:r,name:l,arguments:m}},r=null,l=null,c=""}}else s.type==="message_delta"&&(u=s.usage?.output_tokens??u,yield{kind:"message_done",stopReason:x(s.delta?.stop_reason),usage:{inputTokens:d,outputTokens:u,totalTokens:d+u}})}catch(a){yield{kind:"error",error:i(a)}}}async submitBatch(t,n){let o=t.items.map(a=>({custom_id:a.customId,params:p(this.config,a.options)}));try{let a=await this.client.beta.messages.batches.create({requests:o},{signal:n});return g(a)}catch(a){throw i(a)}}async getBatchJob(t,n){try{let o=await this.client.beta.messages.batches.retrieve(t,{signal:n});return g(o)}catch(o){throw i(o)}}async listBatchJobs(t,n){try{let o=await this.client.beta.messages.batches.list({limit:t?.limit,after_id:t?.after},{signal:n}),a=[];for(let r of o.data??[])a.push(g(r));return a}catch(o){throw i(o)}}async downloadBatchResults(t,n){try{let o=await this.client.beta.messages.batches.results(t.id,{signal:n}),a=[];for await(let r of o)r.result?.type==="succeeded"?a.push({customId:r.custom_id,result:k(r.result.message,this.modelId)}):a.push({customId:r.custom_id,error:r.result?.error?.message??"Unknown error"});return a}catch(o){throw i(o)}}async cancelBatchJob(t,n){try{await this.client.beta.messages.batches.cancel(t,{signal:n})}catch(o){throw i(o)}}async close(){}getRawClient(){return this.client}},A={provider:"anthropic",async createModel(e){let{default:t}=await import("./sdk-L2SQCWYV.js"),n={};e.apiKey!==void 0&&(n.apiKey=e.apiKey),e.baseUrl!==void 0&&(n.baseURL=e.baseUrl);let o=new t(n);return new h(o,e)}},p=(e,t)=>{let n={model:e.model,max_tokens:t.maxTokens??e.maxTokens,messages:R(t.messages)};return t.system!==void 0&&(n.system=t.system),t.temperature!==void 0&&(n.temperature=t.temperature),t.topP!==void 0&&(n.top_p=t.topP),t.stopWords!==void 0&&(n.stop_sequences=t.stopWords),t.tools!==void 0&&(n.tools=t.tools.map(o=>({name:o.name,description:o.description,input_schema:o.parameters??{type:"object",properties:{}}}))),t.toolChoice!==void 0&&(n.tool_choice={type:t.toolChoice}),t.thinkingBudget!==void 0&&(n.thinking={type:"enabled",budget_tokens:t.thinkingBudget}),n},R=e=>{let t=[];for(let n of e){if(n.role==="system")continue;let o=n.content.map(C);t.push({role:n.role==="tool"?"user":n.role,content:o})}return t},C=e=>{switch(e.kind){case"text":return{type:"text",text:e.text};case"image":{if(e.image.data!==void 0)return{type:"image",source:{type:"base64",media_type:e.image.mimeType??"image/png",data:w(e.image.data)}};if(e.image.url!==void 0){if(_(e.image.url)){let t=b(e.image.url);if(t!==null)return{type:"image",source:{type:"base64",media_type:t.mimeType,data:w(t.data)}}}return{type:"image",source:{type:"url",url:e.image.url}}}return{type:"text",text:"[unsupported image]"}}case"tool_call":return{type:"tool_use",id:e.toolCall.id,name:e.toolCall.name,input:e.toolCall.arguments};case"tool_result":return{type:"tool_result",tool_use_id:e.toolResult.toolCallId,content:e.toolResult.content,is_error:e.toolResult.isError};default:return{type:"text",text:`[unsupported content: ${e.kind}]`}}},k=(e,t)=>{let n=[];for(let o of e.content??[])o.type==="text"?n.push({kind:"text",text:o.text}):o.type==="thinking"?n.push({kind:"text",text:`[thinking] ${o.thinking}`}):o.type==="tool_use"&&n.push({kind:"tool_call",toolCall:{id:o.id,name:o.name,arguments:o.input??{}}});return{content:n,stopReason:x(e.stop_reason),usage:{inputTokens:e.usage?.input_tokens??0,outputTokens:e.usage?.output_tokens??0,totalTokens:(e.usage?.input_tokens??0)+(e.usage?.output_tokens??0)},modelId:t,rawResponse:e}},x=e=>e==="end_turn"?"end_turn":e==="max_tokens"?"max_tokens":e==="tool_use"?"tool_use":e==="stop_sequence"?"stop":"end_turn",g=e=>({id:e.id,status:B(e.processing_status),createdAt:new Date(e.created_at),completedAt:e.ended_at!==void 0?new Date(e.ended_at):void 0,totalCount:e.request_counts?.total??0,doneCount:e.request_counts?.succeeded??0,failedCount:e.request_counts?.errored??0}),B=e=>e==="in_progress"?"processing":e==="ended"?"completed":e==="canceling"||e==="canceled"?"cancelled":"pending",i=e=>{if(e instanceof y)return e;let t=e instanceof Error?e:new Error(String(e)),n=e?.status??e?.statusCode??500;return f("anthropic",n,t)},w=e=>{let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)};export{h as a,A as b};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{d as r}from"./chunk-ECY4MUD3.js";import{i}from"./chunk-WJKE6XHF.js";var t=async e=>{try{return await r`which ${e}`.noThrow().code()===0}catch{return!1}},s=async()=>{try{return(await fetch("http://localhost:11434/api/version",{signal:AbortSignal.timeout(1e3)})).ok}catch{return!1}},a=e=>i.env.has(e),d=async()=>{let[e,o,l,n]=await Promise.all([t("claude"),s(),t("opencode"),t("kiro")]);return[{name:"claude-code",alias:"cc",type:"CLI",available:e,detail:e?"claude binary found":"claude not on PATH"},{name:"ollama",alias:"ol",type:"HTTP",available:o,detail:o?"localhost:11434 reachable":"localhost:11434 not reachable"},{name:"opencode",alias:"oc",type:"CLI",available:l,detail:l?"opencode binary found":"opencode not on PATH"},{name:"kiro",alias:"kr",type:"CLI",available:n,detail:n?"kiro binary found":"kiro not on PATH"},{name:"anthropic",alias:"ant",type:"API",available:a("ANTHROPIC_API_KEY"),detail:a("ANTHROPIC_API_KEY")?"ANTHROPIC_API_KEY set":"ANTHROPIC_API_KEY not set"},{name:"openai",alias:"oai",type:"API",available:a("OPENAI_API_KEY"),detail:a("OPENAI_API_KEY")?"OPENAI_API_KEY set":"OPENAI_API_KEY not set"},{name:"gemini",alias:"gem",type:"API",available:a("GEMINI_API_KEY")||a("GOOGLE_API_KEY"),detail:a("GEMINI_API_KEY")||a("GOOGLE_API_KEY")?"API key set":"GEMINI_API_KEY not set"},{name:"vertexai",alias:"vtx",type:"API",available:a("GOOGLE_CLOUD_PROJECT"),detail:a("GOOGLE_CLOUD_PROJECT")?"GOOGLE_CLOUD_PROJECT set":"GOOGLE_CLOUD_PROJECT not set"}]};export{d as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{b as r}from"./chunk-
|
|
2
|
+
import{b as r}from"./chunk-QXATB6Z5.js";var n=class{description;#o;#s;#e=[];constructor(o){this.description=o.description,this.#o=o.modules??{},this.#s=o.aliases??{}}addSubmodule(o,e){return this.#e.push({registration:o,module:e}),this}async addSubmoduleAsync(o,e){let s=await e;return this.#e.push({registration:o,module:s}),this}toGroupOptions(){return{description:this.description,modules:this.#o,aliases:Object.keys(this.#s).length>0?this.#s:void 0}}toCommand(o,e){let s=new r(o).description(this.description);e!==void 0&&s.version(e),Object.keys(this.#o).length>0&&s.modules(this.toGroupOptions());for(let{registration:t,module:d}of this.#e){let i=d.toGroupOptions();if(s.group(t.name,i),t.aliases!==void 0)for(let a of t.aliases)s.groupAlias(a,t.name,i)}return s}};export{n as a};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as u}from"./chunk-MG65QJY6.js";import{a as p,b as f}from"./chunk-
|
|
2
|
+
import{a as u}from"./chunk-MG65QJY6.js";import{a as p,b as f}from"./chunk-FFWPJP7A.js";import{i as x}from"./chunk-WJKE6XHF.js";var h=t=>{let e=[],n=[],i={},s={};for(let r of t)r.type==="boolean"?e.push(r.name):n.push(r.name),r.short!==void 0&&(i[r.short]=r.name),r.default!==void 0&&(s[r.name]=r.default);return{boolean:e,string:n,alias:i,default:s}},T=t=>t!=null&&t.constructor===String,V={boolean:t=>!!t,number:t=>T(t)?Number(t):t,string:t=>String(t),"string[]":t=>Array.isArray(t)?t.map(String):[String(t)]},v=(t,e)=>{if(t!==void 0)return V[e]?.(t)??t},$=(t,e)=>{let n={};for(let i of e){let s=t[i.name];n[i.name]=v(s,i.type)}return n},ie=(t,e)=>{let n=h(e),i=u(t,n);return{positional:i._,flags:$(i,e)}},_=(t,e)=>{let n=[];for(let i of e)if(i.required===!0){let s=t[i.name];(s===void 0||s===""||s===!1)&&n.push(`Required flag --${i.name} is missing`)}return n};var O=(t,e)=>t+" ".repeat(Math.max(0,e-t.length)),U=t=>{let e=t.short!==void 0?`-${t.short}, `:"",n=t.type!=="boolean"?` <${t.type}>`:"";return`${e}--${t.name}${n}`},q=(t,e)=>[t.description!==void 0?`${e} - ${t.description}`:e,""],B=(t,e)=>{if(t.usage!==void 0)return["Usage:",` ${t.usage}`,""];let n=t.children.length>0?" <command>":"",i=t.flags.length>0?" [options]":"";return["Usage:",` ${e}${n}${i}`,""]},I=t=>{if(t.length===0)return[];let e=s=>s.aliases!==void 0&&s.aliases.length>0?`${s.name}, ${s.aliases.join(", ")}`:s.name,n=Math.max(...t.map(s=>e(s).length));return["Commands:",...t.map(s=>` ${O(e(s),n+2)}${s.description??""}`),""]},Y=t=>{if(t.length===0)return[];let e=t.map(s=>({flag:U(s),desc:s.description})),n=Math.max(...e.map(s=>s.flag.length));return["Options:",...e.map(({flag:s,desc:r})=>` ${O(s,n+2)}${r}`),""]},Z=t=>t?.length?["Examples:",...t.map(e=>` ${e}`),""]:[],M=(t,e)=>{let n=e.join(" "),i=[...q(t,n),...B(t,n),...I(t.children),...Y(t.flags),...Z(t.examples)];return t.children.length>0&&i.push(`Run '${n} <command> --help' for more information on a command.`),i.join(`
|
|
3
3
|
`)};var w=t=>{let e=[];for(let n of t)e.push(`--${n.name}`),n.short!==void 0&&e.push(`-${n.short}`);return e.join(" ")},k=(t,e)=>{if(t.children===void 0||t.children.length===0)return"";let n=t.children.map(o=>o.name).join(" "),i=t.flags!==void 0?w(t.flags):"",s=[n,i].filter(o=>o.length>0).join(" "),r=` ${e})
|
|
4
4
|
`;r+=` COMPREPLY=( $(compgen -W "${s}" -- "\${cur}") )
|
|
5
5
|
`,r+=` return 0
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
+
import{c as d}from"./chunk-NEHZOG23.js";import{a as h}from"./chunk-OAT2D23A.js";import{i as n}from"./chunk-WJKE6XHF.js";var p="<!-- noskills:start -->",u="<!-- noskills:end -->",v=(t,o,s="npx eser noskills")=>{let e=[p,"## noskills orchestrator","","This project uses noskills for state-driven orchestration.","Do NOT read `.eser/rules/`, `.eser/specs/`, or concern files directly.","noskills gives you exactly what you need via JSON output.","","### Protocol","",` ${s} next # get current instruction`,` ${s} next --answer="your response" # submit result and advance`,"","### When to call noskills next","",`You MUST call \`${s} next\` in these situations:`,"","1. At the **START** of every conversation (first thing you do)","2. **BEFORE** creating or modifying any file (to verify you have an active task)","3. **AFTER** completing a logical unit of work (to report progress)","4. When you encounter a **DECISION** that affects architecture or scope","5. When you are **UNSURE** what to do next","","NEVER proceed with implementation without checking noskills first.","NEVER make architectural decisions independently \u2014 noskills routes them to the user."];if((o?.allowGit??!1)||e.push("","### Git is read-only","","You MUST NOT run git write commands: commit, add, push, checkout, stash,","reset, merge, rebase, cherry-pick. The user controls git. You control files.","You MAY read from git: log, diff, status, show, blame."),e.push("","### Convention discovery","","When you discover a pattern, receive a correction, or identify a recurring",'preference from the user, ask: "Should this be a permanent rule for this',`project, or just for this task?" If permanent, run: \`${s} rule add`,'"<description>"`. If just this task, note it and move on.',"Never write to `.eser/rules/` directly.","","### Decision principle: Explicit > Clever","","You NEVER skip steps, bypass questions, or make assumptions on behalf of the user.","- Discovery questions \u2192 ask the user, don't answer yourself","- Classification \u2192 ask the user, don't infer","- Spec approval \u2192 ask the user, don't auto-approve","- Task refinement \u2192 ask the user, don't self-assign","- Rule promotion \u2192 ask the user, don't decide",`If you think something can be skipped, ASK "would you like to skip this?" \u2014 don't skip it.`,"","### Command execution","","When told to run a noskills command, execute it IMMEDIATELY. Do not explore,","research, read source code, or plan first. The command output contains all the","context you need. Exploring noskills internals wastes tokens and delays the user.","","### JSON output","","noskills returns JSON with a `phase` field and phase-specific instructions.","The `meta` block contains resume context - use it to orient yourself,","especially after compaction or at the start of a new session.","Follow the `instruction` field. Use `transition` commands to advance state."),t.length>0){e.push("","### Active Rules","");for(let i of t)e.push(`- ${i}`)}return e.push(u),e.join(`
|
|
3
|
+
`)},f=async(t,o,s,e="npx eser noskills")=>{let i=`${t}/CLAUDE.md`,a=v(o,s,e),r;try{r=await n.fs.readTextFile(i);let c=r.indexOf(p),l=r.indexOf(u);c!==-1&&l!==-1?r=r.slice(0,c)+a+r.slice(l+u.length):r=r.trimEnd()+`
|
|
4
|
+
|
|
5
|
+
`+a+`
|
|
6
|
+
`}catch{r=a+`
|
|
7
|
+
`}await n.fs.writeTextFile(i,r)};var m=async(t,o,s="npx eser noskills")=>{let e=["# Generated by noskills \u2014 do not edit manually","","## noskills orchestrator","","This project uses noskills for state-driven orchestration.","Do NOT read `.eser/specs/` or `.eser/rules/` directly. noskills gives you what you need.","",`Run \`${s} next\` to get your current instruction.`,`Submit results with \`${s} next --answer="..."\``,"","## When to call noskills next","","1. At the START of every conversation","2. BEFORE creating or modifying any file","3. AFTER completing a logical unit of work","4. When you encounter a DECISION that affects architecture","5. When you are UNSURE what to do next","","NEVER proceed with implementation without checking noskills first.",""];if(o.length>0){e.push("## Rules","");for(let i of o)e.push(`- ${i}`);e.push("")}await n.fs.writeTextFile(`${t}/.cursorrules`,e.join(`
|
|
8
|
+
`))};var y=async(t,o,s="npx eser noskills")=>{let e=["# Generated by noskills \u2014 do not edit manually","","## noskills orchestrator","","This project uses noskills for state-driven orchestration.","Do NOT read `.eser/specs/` or `.eser/rules/` directly. noskills gives you what you need.","",`Run \`${s} next\` to get your current instruction.`,`Submit results with \`${s} next --answer="..."\``,"","## When to call noskills next","","1. At the START of every conversation","2. BEFORE creating or modifying any file","3. AFTER completing a logical unit of work","4. When you encounter a DECISION that affects architecture","5. When you are UNSURE what to do next","","NEVER proceed with implementation without checking noskills first.",""];if(o.length>0){e.push("## Rules","");for(let i of o)e.push(`- ${i}`);e.push("")}await n.fs.mkdir(`${t}/.kiro/steering`,{recursive:!0}),await n.fs.writeTextFile(`${t}/.kiro/steering/conventions.md`,e.join(`
|
|
9
|
+
`))};var k=async(t,o,s="npx eser noskills")=>{let e=["# Generated by noskills \u2014 do not edit manually","","## noskills orchestrator","","This project uses noskills for state-driven orchestration.","Do NOT read `.eser/specs/` or `.eser/rules/` directly. noskills gives you what you need.","",`Run \`${s} next\` to get your current instruction.`,`Submit results with \`${s} next --answer="..."\``,"","## When to call noskills next","","1. At the START of every conversation","2. BEFORE creating or modifying any file","3. AFTER completing a logical unit of work","4. When you encounter a DECISION that affects architecture","5. When you are UNSURE what to do next","","NEVER proceed with implementation without checking noskills first.",""];if(o.length>0){e.push("## Rules","");for(let i of o)e.push(`- ${i}`);e.push("")}await n.fs.mkdir(`${t}/.github`,{recursive:!0}),await n.fs.writeTextFile(`${t}/.github/copilot-instructions.md`,e.join(`
|
|
10
|
+
`))};var g=async(t,o,s="npx eser noskills")=>{let e=["# Generated by noskills \u2014 do not edit manually","","## noskills orchestrator","","This project uses noskills for state-driven orchestration.","Do NOT read `.eser/specs/` or `.eser/rules/` directly. noskills gives you what you need.","",`Run \`${s} next\` to get your current instruction.`,`Submit results with \`${s} next --answer="..."\``,"","## When to call noskills next","","1. At the START of every conversation","2. BEFORE creating or modifying any file","3. AFTER completing a logical unit of work","4. When you encounter a DECISION that affects architecture","5. When you are UNSURE what to do next","","NEVER proceed with implementation without checking noskills first.",""];if(o.length>0){e.push("## Rules","");for(let i of o)e.push(`- ${i}`);e.push("")}await n.fs.writeTextFile(`${t}/.windsurfrules`,e.join(`
|
|
11
|
+
`))};var N=t=>({hooks:{PreToolUse:[{matcher:"Write|Edit|MultiEdit|Bash",hooks:[{type:"command",command:`${t} invoke-hook pre-tool-use`,timeout:5}]}],PostToolUse:[{matcher:"Write|Edit|MultiEdit",hooks:[{type:"command",command:`${t} invoke-hook post-file-write`,timeout:3}]},{matcher:"Bash",hooks:[{type:"command",command:`${t} invoke-hook post-bash`,timeout:3}]}],Stop:[{hooks:[{type:"command",command:`${t} invoke-hook stop`,timeout:10}]}],SessionStart:[{hooks:[{type:"command",command:`${t} invoke-hook session-start`,timeout:5}]}]}}),w=async(t,o="npx eser@latest noskills")=>{let s=`${t}/.claude/settings.json`,e={};try{let r=await n.fs.readTextFile(s);e=JSON.parse(r)}catch{}let i=N(o),a={...e,...i};await n.fs.mkdir(`${t}/.claude`,{recursive:!0}),await n.fs.writeTextFile(s,JSON.stringify(a,null,2)+`
|
|
12
|
+
`)};var O=async t=>{let o=`${t}/${d.rulesDir}`,s=[];try{for await(let e of n.fs.readDir(o))if(e.isFile&&(e.name.endsWith(".md")||e.name.endsWith(".txt"))){let i=await n.fs.readTextFile(`${o}/${e.name}`),a=i.trim().split(`
|
|
13
|
+
`)[0]??i.trim();s.push(a)}}catch{}return s},b={cursor:m,kiro:y,copilot:k,windsurf:g},P=async(t,o,s)=>{let e=await O(t),i=[],a={allowGit:s?.allowGit??!1},r=s?.command??"npx eser@latest noskills";h(r);for(let c of o){if(c==="claude-code"){await f(t,e,a,r),i.push(c);continue}let l=b[c];l!==void 0&&(await l(t,e,r),i.push(c))}return o.includes("claude-code")&&(await w(t,r),await A(t,r),await F(t,r),i.push("hooks")),i},A=async(t,o)=>{let s=`${t}/.claude/agents`;await n.fs.mkdir(s,{recursive:!0});let e=`---
|
|
14
|
+
name: noskills-executor
|
|
15
|
+
description: "Executes a single noskills task."
|
|
16
|
+
tools: Read, Edit, MultiEdit, Write, Bash, Grep, Glob, LS
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
You are executing a single task from a noskills spec.
|
|
20
|
+
Your ONLY job is to complete the task described in the prompt.
|
|
21
|
+
Follow all behavioral rules provided in the prompt.
|
|
22
|
+
Do NOT start new tasks, explore unrelated code, or make architectural decisions.
|
|
23
|
+
If the task is too vague to execute, say so immediately.
|
|
24
|
+
|
|
25
|
+
## Self-Verification
|
|
26
|
+
After completing the task, you MUST verify your own work before reporting:
|
|
27
|
+
1. Run type check: \`deno check\` on all modified files
|
|
28
|
+
2. Run test suite: \`deno test\` on the relevant test files
|
|
29
|
+
3. If type check or tests fail, fix the issues before reporting
|
|
30
|
+
|
|
31
|
+
## Reporting
|
|
32
|
+
When finished, provide a structured JSON summary:
|
|
33
|
+
\\\`\\\`\\\`json
|
|
34
|
+
{"completed": ["<item IDs done>"], "remaining": ["<item IDs not done>"], "blocked": ["<item IDs needing decisions>"], "filesModified": ["<paths>"], "verification": {"typeCheck": "pass|fail", "tests": "pass|fail (N passed, M failed)"}}
|
|
35
|
+
\\\`\\\`\\\`
|
|
36
|
+
|
|
37
|
+
Do NOT return raw test output \u2014 summarize it in the verification field.
|
|
38
|
+
The orchestrator will submit this to \`${o} next --answer\` on your behalf.
|
|
39
|
+
`;await n.fs.writeTextFile(`${s}/noskills-executor.md`,e)},F=async(t,o)=>{let s=`${t}/.claude/agents`;await n.fs.mkdir(s,{recursive:!0}),await n.fs.writeTextFile(`${s}/noskills-verifier.md`,`---
|
|
40
|
+
name: noskills-verifier
|
|
41
|
+
description: "Independently verifies completed task work. Read-only. Never sees the executor's context."
|
|
42
|
+
tools: Read, Bash, Grep, Glob, LS
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
You are verifying another agent's work. You have NO context about how it was done.
|
|
46
|
+
Read the changed files. Run the test suite. Check each acceptance criterion independently.
|
|
47
|
+
|
|
48
|
+
For each acceptance criterion:
|
|
49
|
+
- PASS: with evidence \u2014 show the grep result, the test output, or the file content that proves it
|
|
50
|
+
- FAIL: with specific reason \u2014 what's missing, what's wrong, what doesn't match
|
|
51
|
+
|
|
52
|
+
Be skeptical. Don't assume anything works \u2014 verify it yourself.
|
|
53
|
+
You CANNOT edit files. Read-only access only.
|
|
54
|
+
|
|
55
|
+
## Verification Steps
|
|
56
|
+
1. Read each modified file and verify the changes are correct
|
|
57
|
+
2. Run type check: \\\`deno check\\\` on modified files
|
|
58
|
+
3. Run tests: \\\`deno test\\\` on relevant test files
|
|
59
|
+
4. Check each acceptance criterion against actual file contents
|
|
60
|
+
|
|
61
|
+
## Report Format
|
|
62
|
+
When finished, provide a structured JSON summary:
|
|
63
|
+
\\\`\\\`\\\`json
|
|
64
|
+
{"results": [{"id": "ac-1", "status": "PASS", "evidence": "..."}, {"id": "ac-2", "status": "FAIL", "reason": "..."}]}
|
|
65
|
+
\\\`\\\`\\\`
|
|
66
|
+
|
|
67
|
+
The orchestrator will use this report for the noskills status report.
|
|
68
|
+
`)};export{O as a,P as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
|
-
import{e as o}from"./chunk-
|
|
2
|
+
import{e as o}from"./chunk-MBCPGD5L.js";var d=(e,n)=>{if(e!==void 0)for(let r of e){if(r==="--agent")return"agent";if(r==="--human")return"human"}let t=n?.agentMode;return t===!0?"agent":t===!1?"human":o()};var u=e=>e===void 0?[]:e.filter(n=>n!=="--agent"&&n!=="--human"&&n!=="--non-interactive");export{d as a,u as b};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from "node:module"; const require = createRequire(import.meta.url);
|
|
2
2
|
import{a as _,e as b}from"./chunk-J7YTWK67.js";var h=class{capabilities=["text_generation","streaming","tool_calling","vision","batch_processing","structured_output","reasoning"];provider="openai";modelId;client;config;constructor(t,n){this.client=t,this.config=n,this.modelId=n.model}async generateText(t,n){let o=p(this.config,t);try{let s=await this.client.chat.completions.create(o,{signal:n,timeout:this.config.requestTimeoutMs});return w(s,this.modelId)}catch(s){throw d(s)}}async*streamText(t,n){let o=p(this.config,t);try{let s=await this.client.chat.completions.create({...o,stream:!0},{signal:n,timeout:this.config.requestTimeoutMs}),r=new Map,a=0,i=0;for await(let u of s){let c=u.choices?.[0];if(c===void 0)continue;let m=c.delta;if(m?.content!==void 0&&m.content!==null&&(yield{kind:"content_delta",textDelta:m.content}),m?.tool_calls!==void 0)for(let l of m.tool_calls){let f=l.index??0,y=r.get(f);y===void 0?r.set(f,{id:l.id??"",name:l.function?.name??"",args:l.function?.arguments??""}):y.args+=l.function?.arguments??""}if(c.finish_reason!==void 0&&c.finish_reason!==null){for(let[,l]of r){let f={};try{f=JSON.parse(l.args||"{}")}catch{}yield{kind:"tool_call_delta",toolCall:{id:l.id,name:l.name,arguments:f}}}u.usage!==void 0&&(a=u.usage.prompt_tokens??0,i=u.usage.completion_tokens??0),yield{kind:"message_done",stopReason:R(c.finish_reason),usage:{inputTokens:a,outputTokens:i,totalTokens:a+i}}}}}catch(s){yield{kind:"error",error:d(s)}}}async submitBatch(t,n){let s=t.items.map(a=>{let i=p(this.config,a.options);return JSON.stringify({custom_id:a.customId,method:"POST",url:"/v1/chat/completions",body:i})}).join(`
|
|
3
3
|
`),r=new Blob([s],{type:"application/jsonl"});try{let a=await this.client.files.create({file:r,purpose:"batch"},{signal:n}),i=await this.client.batches.create({input_file_id:a.id,endpoint:"/v1/chat/completions",completion_window:"24h"},{signal:n});return g(i)}catch(a){throw d(a)}}async getBatchJob(t,n){try{let o=await this.client.batches.retrieve(t,{signal:n});return g(o)}catch(o){throw d(o)}}async listBatchJobs(t,n){try{let o=await this.client.batches.list({limit:t?.limit,after:t?.after},{signal:n}),s=[];for(let r of o.data??[])s.push(g(r));return s}catch(o){throw d(o)}}async downloadBatchResults(t,n){let o=t.storage?.outputRef;if(o===void 0)return[];try{let a=(await(await this.client.files.content(o,{signal:n})).text()).split(`
|
|
4
|
-
`).filter(u=>u.length>0),i=[];for(let u of a){let c=JSON.parse(u);c.response?.status_code===200?i.push({customId:c.custom_id,result:w(c.response.body,this.modelId)}):i.push({customId:c.custom_id,error:c.error?.message??"Unknown error"})}return i}catch(s){throw d(s)}}async cancelBatchJob(t,n){try{await this.client.batches.cancel(t,{signal:n})}catch(o){throw d(o)}}async close(){}getRawClient(){return this.client}},P={provider:"openai",async createModel(e){let{default:t}=await import("./openai-
|
|
4
|
+
`).filter(u=>u.length>0),i=[];for(let u of a){let c=JSON.parse(u);c.response?.status_code===200?i.push({customId:c.custom_id,result:w(c.response.body,this.modelId)}):i.push({customId:c.custom_id,error:c.error?.message??"Unknown error"})}return i}catch(s){throw d(s)}}async cancelBatchJob(t,n){try{await this.client.batches.cancel(t,{signal:n})}catch(o){throw d(o)}}async close(){}getRawClient(){return this.client}},P={provider:"openai",async createModel(e){let{default:t}=await import("./openai-IRQY5SCR.js"),n={};e.apiKey!==void 0&&(n.apiKey=e.apiKey),e.baseUrl!==void 0&&(n.baseURL=e.baseUrl);let o=new t(n);return new h(o,e)}},p=(e,t)=>{let n=k(t.messages,t.system),o={model:e.model,messages:n,max_tokens:t.maxTokens??e.maxTokens};return t.temperature!==void 0&&(o.temperature=t.temperature),t.topP!==void 0&&(o.top_p=t.topP),t.stopWords!==void 0&&(o.stop=t.stopWords),t.tools!==void 0&&(o.tools=t.tools.map(s=>({type:"function",function:{name:s.name,description:s.description,parameters:s.parameters??{type:"object",properties:{}}}}))),t.toolChoice!==void 0&&(o.tool_choice=t.toolChoice),t.responseFormat!==void 0&&(t.responseFormat.type==="json_schema"?o.response_format={type:"json_schema",json_schema:{name:t.responseFormat.name??"response",schema:t.responseFormat.jsonSchema,strict:!0}}:t.responseFormat.type==="json_object"&&(o.response_format={type:"json_object"})),t.thinkingBudget!==void 0&&(o.reasoning_effort=T(t.thinkingBudget)),o},k=(e,t)=>{let n=[];t!==void 0&&n.push({role:"system",content:t});for(let o of e){if(o.role==="system"){let r=[];for(let a of o.content)a.kind==="text"&&r.push(a.text);n.push({role:"system",content:r.join(`
|
|
5
5
|
`)});continue}if(o.role==="tool"){for(let r of o.content)r.kind==="tool_result"&&n.push({role:"tool",tool_call_id:r.toolResult.toolCallId,content:r.toolResult.content});continue}let s=o.content.map(C);s.length===1&&s[0]?.type==="text"?n.push({role:o.role,content:s[0].text}):n.push({role:o.role,content:s})}return n},C=e=>{switch(e.kind){case"text":return{type:"text",text:e.text};case"image":{let t;if(e.image.url!==void 0)t=e.image.url;else if(e.image.data!==void 0)t=`data:${e.image.mimeType??"image/png"};base64,${x(e.image.data)}`;else return{type:"text",text:"[unsupported image]"};return{type:"image_url",image_url:{url:t,detail:e.image.detail??"auto"}}}case"audio":{if(e.audio.data!==void 0){let t=e.audio.mimeType??"audio/mpeg",n=S(t);return{type:"input_audio",input_audio:{data:x(e.audio.data),format:n}}}return{type:"text",text:"[unsupported audio format]"}}case"tool_call":return{type:"function",id:e.toolCall.id,function:{name:e.toolCall.name,arguments:JSON.stringify(e.toolCall.arguments)}};default:return{type:"text",text:`[unsupported content: ${e.kind}]`}}},w=(e,t)=>{let n=[],o="end_turn",s=e.choices?.[0];if(s!==void 0){if(s.message?.content!==void 0&&s.message.content!==null&&n.push({kind:"text",text:s.message.content}),s.message?.tool_calls!==void 0)for(let r of s.message.tool_calls){let a={};try{a=JSON.parse(r.function?.arguments??"{}")}catch{}n.push({kind:"tool_call",toolCall:{id:r.id,name:r.function?.name??"",arguments:a}})}o=R(s.finish_reason)}return{content:n,stopReason:o,usage:{inputTokens:e.usage?.prompt_tokens??0,outputTokens:e.usage?.completion_tokens??0,totalTokens:e.usage?.total_tokens??0},modelId:t,rawResponse:e}},R=e=>e==="stop"?"end_turn":e==="length"?"max_tokens":e==="tool_calls"?"tool_use":"end_turn",g=e=>({id:e.id,status:B(e.status),createdAt:new Date(e.created_at*1e3),completedAt:e.completed_at!==void 0?new Date(e.completed_at*1e3):void 0,totalCount:e.request_counts?.total??0,doneCount:e.request_counts?.completed??0,failedCount:e.request_counts?.failed??0,storage:{type:"openai_file",inputRef:e.input_file_id,outputRef:e.output_file_id}}),B=e=>e==="completed"?"completed":e==="failed"?"failed":e==="cancelled"||e==="cancelling"?"cancelled":e==="in_progress"||e==="finalizing"?"processing":"pending",T=e=>e<=1e3?"low":e>=1e4?"high":"medium",S=e=>e.includes("mp3")||e.includes("mpeg")?"mp3":e.includes("wav")?"wav":e.includes("flac")?"flac":e.includes("ogg")?"ogg":"mp3",d=e=>{if(e instanceof _)return e;let t=e instanceof Error?e:new Error(String(e)),n=e?.status??e?.statusCode??500;return b("openai",n,t)},x=e=>{let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)};export{h as a,P as b};
|