@bytespell/shella 0.1.5 → 0.1.7
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/dist/bin/cli.js +921 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/index.js +849 -0
- package/dist/index.js.map +1 -0
- package/dist/public/assets/_baseUniq-D9TYleYv.js +1 -0
- package/dist/public/assets/apex-D8_7TLub.js +1 -0
- package/dist/public/assets/arc-Bqkc3LZm.js +1 -0
- package/dist/public/assets/architectureDiagram-VXUJARFQ-C7pQ9eBc.js +36 -0
- package/dist/public/assets/ayu-dark-CmMr59Fi.js +1 -0
- package/dist/public/assets/blade-D4QpJJKB.js +1 -0
- package/dist/public/assets/blockDiagram-VD42YOAC-C47kjU51.js +122 -0
- package/dist/public/assets/c3-VCDPK7BO.js +1 -0
- package/dist/public/assets/c4Diagram-YG6GDRKO-hYDGImzM.js +10 -0
- package/dist/public/assets/channel-CZbjQww4.js +1 -0
- package/dist/public/assets/chunk-4BX2VUAB-d6tzfYU_.js +1 -0
- package/dist/public/assets/chunk-55IACEB6-hAlvgHob.js +1 -0
- package/dist/public/assets/chunk-B4BG7PRW-DcHYkNpL.js +165 -0
- package/dist/public/assets/chunk-DI55MBZ5-DmYTN3pZ.js +220 -0
- package/dist/public/assets/chunk-FMBD7UC4-D7fqP24E.js +15 -0
- package/dist/public/assets/chunk-QN33PNHL-DHEaHAkH.js +1 -0
- package/dist/public/assets/chunk-QZHKN3VN-CUEecr31.js +1 -0
- package/dist/public/assets/chunk-TZMSLE5B-CQC5olzQ.js +1 -0
- package/dist/public/assets/classDiagram-2ON5EDUG-DdwUVrxi.js +1 -0
- package/dist/public/assets/classDiagram-v2-WZHVMYZB-DdwUVrxi.js +1 -0
- package/dist/public/assets/clone-OD5JE1Cw.js +1 -0
- package/dist/public/assets/code-block-IT6T5CEO-BNFAFcIE.js +2 -0
- package/dist/public/assets/cose-bilkent-S5V4N54A-XGPrPsXQ.js +1 -0
- package/dist/public/assets/dagre-6UL2VRFP-BcyWIYPE.js +4 -0
- package/dist/public/assets/diagram-PSM6KHXK-CBJyRzHu.js +24 -0
- package/dist/public/assets/diagram-QEK2KX5R-BBxj1vYL.js +43 -0
- package/dist/public/assets/diagram-S2PKOQOG-BTSvV1S3.js +24 -0
- package/dist/public/assets/erDiagram-Q2GNP2WA-Cmcj_23w.js +60 -0
- package/dist/public/assets/flowDiagram-NV44I4VS-CshqyJY8.js +162 -0
- package/dist/public/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
- package/dist/public/assets/fortran-free-form-BxgE0vQu.js +1 -0
- package/dist/public/assets/ganttDiagram-JELNMOA3-o7FTrO1I.js +267 -0
- package/dist/public/assets/gitGraphDiagram-NY62KEGX-DMYNojPU.js +65 -0
- package/dist/public/assets/gn-n2N0HUVH.js +1 -0
- package/dist/public/assets/graph-C1exCUhk.js +1 -0
- package/dist/public/assets/index-Bk8vmlSI.css +1 -0
- package/dist/public/assets/index-DpDVi1Yh.js +1701 -0
- package/dist/public/assets/infoDiagram-WHAUD3N6-BtpyTGJr.js +2 -0
- package/dist/public/assets/journeyDiagram-XKPGCS4Q-Ca9OoHtc.js +139 -0
- package/dist/public/assets/julia-CxzCAyBv.js +1 -0
- package/dist/public/assets/kanban-definition-3W4ZIXB7-CsE7CD0y.js +89 -0
- package/dist/public/assets/kusto-DZf3V79B.js +1 -0
- package/dist/public/assets/latex-B4uzh10-.js +1 -0
- package/dist/public/assets/layout-BPf4wWku.js +1 -0
- package/dist/public/assets/lean-BZvkOJ9d.js +1 -0
- package/dist/public/assets/linear-Hmh70sq7.js +1 -0
- package/dist/public/assets/luau-C-HG3fhB.js +1 -0
- package/dist/public/assets/marko-DZsq8hO1.js +1 -0
- package/dist/public/assets/mermaid-mWjccvbQ.js +1 -0
- package/dist/public/assets/mermaid.core-E3JM4XVX.js +191 -0
- package/dist/public/assets/min-6ojrcLrh.js +1 -0
- package/dist/public/assets/mindmap-definition-VGOIOE7T-BjpBHYC_.js +68 -0
- package/dist/public/assets/mojo-B93PlW-d.js +1 -0
- package/dist/public/assets/moonbit-Ba13S78F.js +1 -0
- package/dist/public/assets/nix-CwoSXNpI.js +1 -0
- package/dist/public/assets/pieDiagram-ADFJNKIX-D6FIx46U.js +30 -0
- package/dist/public/assets/proto-C7zT0LnQ.js +1 -0
- package/dist/public/assets/quadrantDiagram-AYHSOK5B-Dc3CfRHY.js +7 -0
- package/dist/public/assets/r-Dspwwk_N.js +1 -0
- package/dist/public/assets/razor-C1TweQQi.js +1 -0
- package/dist/public/assets/requirementDiagram-UZGBJVZJ-tmNqVojO.js +64 -0
- package/dist/public/assets/sankeyDiagram-TZEHDZUN-C2bvNED8.js +10 -0
- package/dist/public/assets/sequenceDiagram-WL72ISMW-DoNmZswJ.js +145 -0
- package/dist/public/assets/stateDiagram-FKZM4ZOC-B8Lk-Kak.js +1 -0
- package/dist/public/assets/stateDiagram-v2-4FDKWEC3-Cvy-UNc6.js +1 -0
- package/dist/public/assets/svelte-zxCyuUbr.js +1 -0
- package/dist/public/assets/tex-CvyZ59Mk.js +1 -0
- package/dist/public/assets/timeline-definition-IT6M3QCI-UdDQrtnd.js +61 -0
- package/dist/public/assets/treemap-KMMF4GRG-Dkfqpf3u.js +128 -0
- package/dist/public/assets/vue-DN_0RTcg.js +1 -0
- package/dist/public/assets/vue-html-AaS7Mt5G.js +1 -0
- package/dist/public/assets/vue-vine-CQOfvN7w.js +1 -0
- package/dist/public/assets/xychartDiagram-PRI3JC2R-BiR50II_.js +7 -0
- package/dist/public/favicon.svg +4 -0
- package/dist/public/index.html +20 -0
- package/package.json +29 -60
- package/public/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/public/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/public/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/public/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/public/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/public/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/public/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/public/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/public/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/public/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/public/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/public/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/public/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/public/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/public/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/public/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/public/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/public/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/public/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/public/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/public/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/public/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/public/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/public/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/public/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/public/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/public/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/public/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/public/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/public/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/public/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/public/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/public/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/public/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/public/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/public/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/public/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/public/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/public/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/public/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/public/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/public/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/public/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/public/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/public/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/public/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/public/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/public/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/public/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/public/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/public/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/public/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/public/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/public/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/public/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/public/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/public/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/public/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/public/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/public/assets/_baseUniq-D9TYleYv.js +1 -0
- package/public/assets/abap-BdImnpbu.js +1 -0
- package/public/assets/actionscript-3-CfeIJUat.js +1 -0
- package/public/assets/ada-bCR0ucgS.js +1 -0
- package/public/assets/andromeeda-C-Jbm3Hp.js +1 -0
- package/public/assets/angular-html-CU67Zn6k.js +1 -0
- package/public/assets/angular-ts-BwZT4LLn.js +1 -0
- package/public/assets/apache-Pmp26Uib.js +1 -0
- package/public/assets/apex-D8_7TLub.js +1 -0
- package/public/assets/apl-dKokRX4l.js +1 -0
- package/public/assets/applescript-Co6uUVPk.js +1 -0
- package/public/assets/ara-BRHolxvo.js +1 -0
- package/public/assets/arc-Bqkc3LZm.js +1 -0
- package/public/assets/architectureDiagram-VXUJARFQ-C7pQ9eBc.js +36 -0
- package/public/assets/asciidoc-Dv7Oe6Be.js +1 -0
- package/public/assets/asm-D_Q5rh1f.js +1 -0
- package/public/assets/astro-CbQHKStN.js +1 -0
- package/public/assets/aurora-x-D-2ljcwZ.js +1 -0
- package/public/assets/awk-DMzUqQB5.js +1 -0
- package/public/assets/ayu-dark-CmMr59Fi.js +1 -0
- package/public/assets/ballerina-BFfxhgS-.js +1 -0
- package/public/assets/bat-BkioyH1T.js +1 -0
- package/public/assets/beancount-k_qm7-4y.js +1 -0
- package/public/assets/berry-uYugtg8r.js +1 -0
- package/public/assets/bibtex-CHM0blh-.js +1 -0
- package/public/assets/bicep-Bmn6On1c.js +1 -0
- package/public/assets/blade-D4QpJJKB.js +1 -0
- package/public/assets/blockDiagram-VD42YOAC-C47kjU51.js +122 -0
- package/public/assets/bsl-BO_Y6i37.js +1 -0
- package/public/assets/c-BIGW1oBm.js +1 -0
- package/public/assets/c3-VCDPK7BO.js +1 -0
- package/public/assets/c4Diagram-YG6GDRKO-hYDGImzM.js +10 -0
- package/public/assets/cadence-Bv_4Rxtq.js +1 -0
- package/public/assets/cairo-KRGpt6FW.js +1 -0
- package/public/assets/catppuccin-frappe-DFWUc33u.js +1 -0
- package/public/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
- package/public/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
- package/public/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
- package/public/assets/channel-CZbjQww4.js +1 -0
- package/public/assets/chunk-4BX2VUAB-d6tzfYU_.js +1 -0
- package/public/assets/chunk-55IACEB6-hAlvgHob.js +1 -0
- package/public/assets/chunk-B4BG7PRW-DcHYkNpL.js +165 -0
- package/public/assets/chunk-DI55MBZ5-DmYTN3pZ.js +220 -0
- package/public/assets/chunk-FMBD7UC4-D7fqP24E.js +15 -0
- package/public/assets/chunk-QN33PNHL-DHEaHAkH.js +1 -0
- package/public/assets/chunk-QZHKN3VN-CUEecr31.js +1 -0
- package/public/assets/chunk-TZMSLE5B-CQC5olzQ.js +1 -0
- package/public/assets/clarity-D53aC0YG.js +1 -0
- package/public/assets/classDiagram-2ON5EDUG-DdwUVrxi.js +1 -0
- package/public/assets/classDiagram-v2-WZHVMYZB-DdwUVrxi.js +1 -0
- package/public/assets/clojure-P80f7IUj.js +1 -0
- package/public/assets/clone-OD5JE1Cw.js +1 -0
- package/public/assets/cmake-D1j8_8rp.js +1 -0
- package/public/assets/cobol-nwyudZeR.js +1 -0
- package/public/assets/code-block-IT6T5CEO-BNFAFcIE.js +2 -0
- package/public/assets/codeowners-Bp6g37R7.js +1 -0
- package/public/assets/codeql-DsOJ9woJ.js +1 -0
- package/public/assets/coffee-Ch7k5sss.js +1 -0
- package/public/assets/common-lisp-Cg-RD9OK.js +1 -0
- package/public/assets/coq-DkFqJrB1.js +1 -0
- package/public/assets/cose-bilkent-S5V4N54A-XGPrPsXQ.js +1 -0
- package/public/assets/cpp-CofmeUqb.js +1 -0
- package/public/assets/crystal-tKQVLTB8.js +1 -0
- package/public/assets/csharp-K5feNrxe.js +1 -0
- package/public/assets/css-DPfMkruS.js +1 -0
- package/public/assets/csv-fuZLfV_i.js +1 -0
- package/public/assets/cue-D82EKSYY.js +1 -0
- package/public/assets/cypher-COkxafJQ.js +1 -0
- package/public/assets/cytoscape.esm-5J0xJHOV.js +321 -0
- package/public/assets/d-85-TOEBH.js +1 -0
- package/public/assets/dagre-6UL2VRFP-BcyWIYPE.js +4 -0
- package/public/assets/dark-plus-C3mMm8J8.js +1 -0
- package/public/assets/dart-CF10PKvl.js +1 -0
- package/public/assets/dax-CEL-wOlO.js +1 -0
- package/public/assets/defaultLocale-C4B-KCzX.js +1 -0
- package/public/assets/desktop-BmXAJ9_W.js +1 -0
- package/public/assets/diagram-PSM6KHXK-CBJyRzHu.js +24 -0
- package/public/assets/diagram-QEK2KX5R-BBxj1vYL.js +43 -0
- package/public/assets/diagram-S2PKOQOG-BTSvV1S3.js +24 -0
- package/public/assets/diff-D97Zzqfu.js +1 -0
- package/public/assets/docker-BcOcwvcX.js +1 -0
- package/public/assets/dotenv-Da5cRb03.js +1 -0
- package/public/assets/dracula-BzJJZx-M.js +1 -0
- package/public/assets/dracula-soft-BXkSAIEj.js +1 -0
- package/public/assets/dream-maker-BtqSS_iP.js +1 -0
- package/public/assets/edge-BkV0erSs.js +1 -0
- package/public/assets/elixir-CDX3lj18.js +1 -0
- package/public/assets/elm-DbKCFpqz.js +1 -0
- package/public/assets/emacs-lisp-C9XAeP06.js +1 -0
- package/public/assets/erDiagram-Q2GNP2WA-Cmcj_23w.js +60 -0
- package/public/assets/erb-BOJIQeun.js +1 -0
- package/public/assets/erlang-DsQrWhSR.js +1 -0
- package/public/assets/everforest-dark-BgDCqdQA.js +1 -0
- package/public/assets/everforest-light-C8M2exoo.js +1 -0
- package/public/assets/fennel-BYunw83y.js +1 -0
- package/public/assets/fish-BvzEVeQv.js +1 -0
- package/public/assets/flowDiagram-NV44I4VS-CshqyJY8.js +162 -0
- package/public/assets/fluent-C4IJs8-o.js +1 -0
- package/public/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
- package/public/assets/fortran-free-form-BxgE0vQu.js +1 -0
- package/public/assets/fsharp-CXgrBDvD.js +1 -0
- package/public/assets/ganttDiagram-JELNMOA3-o7FTrO1I.js +267 -0
- package/public/assets/gdresource-B7Tvp0Sc.js +1 -0
- package/public/assets/gdscript-DTMYz4Jt.js +1 -0
- package/public/assets/gdshader-DkwncUOv.js +1 -0
- package/public/assets/genie-D0YGMca9.js +1 -0
- package/public/assets/gherkin-DyxjwDmM.js +1 -0
- package/public/assets/git-commit-F4YmCXRG.js +1 -0
- package/public/assets/git-rebase-r7XF79zn.js +1 -0
- package/public/assets/gitGraphDiagram-NY62KEGX-DMYNojPU.js +65 -0
- package/public/assets/github-dark-DHJKELXO.js +1 -0
- package/public/assets/github-dark-default-Cuk6v7N8.js +1 -0
- package/public/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
- package/public/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
- package/public/assets/github-light-DAi9KRSo.js +1 -0
- package/public/assets/github-light-default-D7oLnXFd.js +1 -0
- package/public/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
- package/public/assets/gleam-BspZqrRM.js +1 -0
- package/public/assets/glimmer-js-Rg0-pVw9.js +1 -0
- package/public/assets/glimmer-ts-U6CK756n.js +1 -0
- package/public/assets/glsl-DplSGwfg.js +1 -0
- package/public/assets/gn-n2N0HUVH.js +1 -0
- package/public/assets/gnuplot-DdkO51Og.js +1 -0
- package/public/assets/go-Dn2_MT6a.js +1 -0
- package/public/assets/graph-C1exCUhk.js +1 -0
- package/public/assets/graphql-ChdNCCLP.js +1 -0
- package/public/assets/groovy-gcz8RCvz.js +1 -0
- package/public/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
- package/public/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
- package/public/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
- package/public/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
- package/public/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
- package/public/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
- package/public/assets/hack-CaT9iCJl.js +1 -0
- package/public/assets/haml-B8DHNrY2.js +1 -0
- package/public/assets/handlebars-BL8al0AC.js +1 -0
- package/public/assets/haskell-Df6bDoY_.js +1 -0
- package/public/assets/haxe-CzTSHFRz.js +1 -0
- package/public/assets/hcl-BWvSN4gD.js +1 -0
- package/public/assets/hjson-D5-asLiD.js +1 -0
- package/public/assets/hlsl-D3lLCCz7.js +1 -0
- package/public/assets/houston-DnULxvSX.js +1 -0
- package/public/assets/html-GMplVEZG.js +1 -0
- package/public/assets/html-derivative-BFtXZ54Q.js +1 -0
- package/public/assets/http-jrhK8wxY.js +1 -0
- package/public/assets/hurl-irOxFIW8.js +1 -0
- package/public/assets/hxml-Bvhsp5Yf.js +1 -0
- package/public/assets/hy-DFXneXwc.js +1 -0
- package/public/assets/imba-DGztddWO.js +1 -0
- package/public/assets/index-Bk8vmlSI.css +1 -0
- package/public/assets/index-DpDVi1Yh.js +1701 -0
- package/public/assets/infoDiagram-WHAUD3N6-BtpyTGJr.js +2 -0
- package/public/assets/ini-BEwlwnbL.js +1 -0
- package/public/assets/init-Gi6I4Gst.js +1 -0
- package/public/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
- package/public/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
- package/public/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
- package/public/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
- package/public/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
- package/public/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
- package/public/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
- package/public/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
- package/public/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- package/public/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
- package/public/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
- package/public/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
- package/public/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
- package/public/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- package/public/assets/java-CylS5w8V.js +1 -0
- package/public/assets/javascript-wDzz0qaB.js +1 -0
- package/public/assets/jinja-4LBKfQ-Z.js +1 -0
- package/public/assets/jison-wvAkD_A8.js +1 -0
- package/public/assets/journeyDiagram-XKPGCS4Q-Ca9OoHtc.js +139 -0
- package/public/assets/json-Cp-IABpG.js +1 -0
- package/public/assets/json5-C9tS-k6U.js +1 -0
- package/public/assets/jsonc-Des-eS-w.js +1 -0
- package/public/assets/jsonl-DcaNXYhu.js +1 -0
- package/public/assets/jsonnet-DFQXde-d.js +1 -0
- package/public/assets/jssm-C2t-YnRu.js +1 -0
- package/public/assets/jsx-g9-lgVsj.js +1 -0
- package/public/assets/julia-CxzCAyBv.js +1 -0
- package/public/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
- package/public/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
- package/public/assets/kanagawa-wave-DWedfzmr.js +1 -0
- package/public/assets/kanban-definition-3W4ZIXB7-CsE7CD0y.js +89 -0
- package/public/assets/katex-DvXFAOB1.css +1 -0
- package/public/assets/kdl-DV7GczEv.js +1 -0
- package/public/assets/kotlin-BdnUsdx6.js +1 -0
- package/public/assets/kusto-DZf3V79B.js +1 -0
- package/public/assets/laserwave-DUszq2jm.js +1 -0
- package/public/assets/latex-B4uzh10-.js +1 -0
- package/public/assets/layout-BPf4wWku.js +1 -0
- package/public/assets/lean-BZvkOJ9d.js +1 -0
- package/public/assets/less-B1dDrJ26.js +1 -0
- package/public/assets/light-plus-B7mTdjB0.js +1 -0
- package/public/assets/linear-Hmh70sq7.js +1 -0
- package/public/assets/liquid-DYVedYrR.js +1 -0
- package/public/assets/llvm-BtvRca6l.js +1 -0
- package/public/assets/log-2UxHyX5q.js +1 -0
- package/public/assets/logo-BtOb2qkB.js +1 -0
- package/public/assets/lua-BbnMAYS6.js +1 -0
- package/public/assets/luau-C-HG3fhB.js +1 -0
- package/public/assets/make-CHLpvVh8.js +1 -0
- package/public/assets/markdown-Cvjx9yec.js +1 -0
- package/public/assets/marko-DZsq8hO1.js +1 -0
- package/public/assets/material-theme-D5KoaKCx.js +1 -0
- package/public/assets/material-theme-darker-BfHTSMKl.js +1 -0
- package/public/assets/material-theme-lighter-B0m2ddpp.js +1 -0
- package/public/assets/material-theme-ocean-CyktbL80.js +1 -0
- package/public/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
- package/public/assets/matlab-D7o27uSR.js +1 -0
- package/public/assets/mdc-DUICxH0z.js +1 -0
- package/public/assets/mdx-Cmh6b_Ma.js +1 -0
- package/public/assets/mermaid-mWjccvbQ.js +1 -0
- package/public/assets/mermaid.core-E3JM4XVX.js +191 -0
- package/public/assets/min-6ojrcLrh.js +1 -0
- package/public/assets/min-dark-CafNBF8u.js +1 -0
- package/public/assets/min-light-CTRr51gU.js +1 -0
- package/public/assets/mindmap-definition-VGOIOE7T-BjpBHYC_.js +68 -0
- package/public/assets/mipsasm-CKIfxQSi.js +1 -0
- package/public/assets/mojo-B93PlW-d.js +1 -0
- package/public/assets/monokai-D4h5O-jR.js +1 -0
- package/public/assets/moonbit-Ba13S78F.js +1 -0
- package/public/assets/move-Bu9oaDYs.js +1 -0
- package/public/assets/narrat-DRg8JJMk.js +1 -0
- package/public/assets/nextflow-BrzmwbiE.js +1 -0
- package/public/assets/nginx-DknmC5AR.js +1 -0
- package/public/assets/night-owl-C39BiMTA.js +1 -0
- package/public/assets/nim-CVrawwO9.js +1 -0
- package/public/assets/nix-CwoSXNpI.js +1 -0
- package/public/assets/nord-Ddv68eIx.js +1 -0
- package/public/assets/nushell-C-sUppwS.js +1 -0
- package/public/assets/objective-c-DXmwc3jG.js +1 -0
- package/public/assets/objective-cpp-CLxacb5B.js +1 -0
- package/public/assets/ocaml-C0hk2d4L.js +1 -0
- package/public/assets/one-dark-pro-DVMEJ2y_.js +1 -0
- package/public/assets/one-light-PoHY5YXO.js +1 -0
- package/public/assets/openscad-C4EeE6gA.js +1 -0
- package/public/assets/ordinal-Cboi1Yqb.js +1 -0
- package/public/assets/pascal-D93ZcfNL.js +1 -0
- package/public/assets/perl-C0TMdlhV.js +1 -0
- package/public/assets/php-CDn_0X-4.js +1 -0
- package/public/assets/pieDiagram-ADFJNKIX-D6FIx46U.js +30 -0
- package/public/assets/pierre-dark-BXuwtOqb.js +1 -0
- package/public/assets/pierre-light-dckrK0oj.js +1 -0
- package/public/assets/pkl-u5AG7uiY.js +1 -0
- package/public/assets/plastic-3e1v2bzS.js +1 -0
- package/public/assets/plsql-ChMvpjG-.js +1 -0
- package/public/assets/po-BTJTHyun.js +1 -0
- package/public/assets/poimandres-CS3Unz2-.js +1 -0
- package/public/assets/polar-C0HS_06l.js +1 -0
- package/public/assets/postcss-CXtECtnM.js +1 -0
- package/public/assets/powerquery-CEu0bR-o.js +1 -0
- package/public/assets/powershell-Dpen1YoG.js +1 -0
- package/public/assets/prisma-Dd19v3D-.js +1 -0
- package/public/assets/prolog-CbFg5uaA.js +1 -0
- package/public/assets/proto-C7zT0LnQ.js +1 -0
- package/public/assets/pug-CGlum2m_.js +1 -0
- package/public/assets/puppet-BMWR74SV.js +1 -0
- package/public/assets/purescript-CklMAg4u.js +1 -0
- package/public/assets/python-B6aJPvgy.js +1 -0
- package/public/assets/qml-3beO22l8.js +1 -0
- package/public/assets/qmldir-C8lEn-DE.js +1 -0
- package/public/assets/qss-IeuSbFQv.js +1 -0
- package/public/assets/quadrantDiagram-AYHSOK5B-Dc3CfRHY.js +7 -0
- package/public/assets/r-Dspwwk_N.js +1 -0
- package/public/assets/racket-BqYA7rlc.js +1 -0
- package/public/assets/raku-DXvB9xmW.js +1 -0
- package/public/assets/razor-C1TweQQi.js +1 -0
- package/public/assets/red-bN70gL4F.js +1 -0
- package/public/assets/reg-C-SQnVFl.js +1 -0
- package/public/assets/regexp-CDVJQ6XC.js +1 -0
- package/public/assets/rel-C3B-1QV4.js +1 -0
- package/public/assets/requirementDiagram-UZGBJVZJ-tmNqVojO.js +64 -0
- package/public/assets/riscv-BM1_JUlF.js +1 -0
- package/public/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
- package/public/assets/rose-pine-moon-D4_iv3hh.js +1 -0
- package/public/assets/rose-pine-qdsjHGoJ.js +1 -0
- package/public/assets/rosmsg-BJDFO7_C.js +1 -0
- package/public/assets/rst-B0xPkSld.js +1 -0
- package/public/assets/ruby-BvKwtOVI.js +1 -0
- package/public/assets/rust-B1yitclQ.js +1 -0
- package/public/assets/sankeyDiagram-TZEHDZUN-C2bvNED8.js +10 -0
- package/public/assets/sas-cz2c8ADy.js +1 -0
- package/public/assets/sass-Cj5Yp3dK.js +1 -0
- package/public/assets/scala-C151Ov-r.js +1 -0
- package/public/assets/scheme-C98Dy4si.js +1 -0
- package/public/assets/scss-OYdSNvt2.js +1 -0
- package/public/assets/sdbl-DVxCFoDh.js +1 -0
- package/public/assets/sequenceDiagram-WL72ISMW-DoNmZswJ.js +145 -0
- package/public/assets/shaderlab-Dg9Lc6iA.js +1 -0
- package/public/assets/shellscript-Yzrsuije.js +1 -0
- package/public/assets/shellsession-BADoaaVG.js +1 -0
- package/public/assets/slack-dark-BthQWCQV.js +1 -0
- package/public/assets/slack-ochin-DqwNpetd.js +1 -0
- package/public/assets/smalltalk-BERRCDM3.js +1 -0
- package/public/assets/snazzy-light-Bw305WKR.js +1 -0
- package/public/assets/solarized-dark-DXbdFlpD.js +1 -0
- package/public/assets/solarized-light-L9t79GZl.js +1 -0
- package/public/assets/solidity-rGO070M0.js +1 -0
- package/public/assets/soy-Brmx7dQM.js +1 -0
- package/public/assets/sparql-rVzFXLq3.js +1 -0
- package/public/assets/splunk-BtCnVYZw.js +1 -0
- package/public/assets/sql-BLtJtn59.js +1 -0
- package/public/assets/ssh-config-_ykCGR6B.js +1 -0
- package/public/assets/stata-BH5u7GGu.js +1 -0
- package/public/assets/stateDiagram-FKZM4ZOC-B8Lk-Kak.js +1 -0
- package/public/assets/stateDiagram-v2-4FDKWEC3-Cvy-UNc6.js +1 -0
- package/public/assets/stylus-BEDo0Tqx.js +1 -0
- package/public/assets/svelte-zxCyuUbr.js +1 -0
- package/public/assets/swift-Dg5xB15N.js +1 -0
- package/public/assets/synthwave-84-CbfX1IO0.js +1 -0
- package/public/assets/system-verilog-CnnmHF94.js +1 -0
- package/public/assets/systemd-4A_iFExJ.js +1 -0
- package/public/assets/talonscript-CkByrt1z.js +1 -0
- package/public/assets/tasl-QIJgUcNo.js +1 -0
- package/public/assets/tcl-dwOrl1Do.js +1 -0
- package/public/assets/templ-W15q3VgB.js +1 -0
- package/public/assets/terraform-BETggiCN.js +1 -0
- package/public/assets/tex-CvyZ59Mk.js +1 -0
- package/public/assets/timeline-definition-IT6M3QCI-UdDQrtnd.js +61 -0
- package/public/assets/tokyo-night-hegEt444.js +1 -0
- package/public/assets/toml-vGWfd6FD.js +1 -0
- package/public/assets/treemap-KMMF4GRG-Dkfqpf3u.js +128 -0
- package/public/assets/ts-tags-zn1MmPIZ.js +1 -0
- package/public/assets/tsv-B_m7g4N7.js +1 -0
- package/public/assets/tsx-COt5Ahok.js +1 -0
- package/public/assets/turtle-BsS91CYL.js +1 -0
- package/public/assets/twig-CO9l9SDP.js +1 -0
- package/public/assets/typescript-BPQ3VLAy.js +1 -0
- package/public/assets/typespec-BGHnOYBU.js +1 -0
- package/public/assets/typst-DHCkPAjA.js +1 -0
- package/public/assets/v-BcVCzyr7.js +1 -0
- package/public/assets/vala-CsfeWuGM.js +1 -0
- package/public/assets/vb-D17OF-Vu.js +1 -0
- package/public/assets/verilog-BQ8w6xss.js +1 -0
- package/public/assets/vesper-DU1UobuO.js +1 -0
- package/public/assets/vhdl-CeAyd5Ju.js +1 -0
- package/public/assets/viml-CJc9bBzg.js +1 -0
- package/public/assets/vitesse-black-Bkuqu6BP.js +1 -0
- package/public/assets/vitesse-dark-D0r3Knsf.js +1 -0
- package/public/assets/vitesse-light-CVO1_9PV.js +1 -0
- package/public/assets/vue-DN_0RTcg.js +1 -0
- package/public/assets/vue-html-AaS7Mt5G.js +1 -0
- package/public/assets/vue-vine-CQOfvN7w.js +1 -0
- package/public/assets/vyper-CDx5xZoG.js +1 -0
- package/public/assets/wasm-CG6Dc4jp.js +1 -0
- package/public/assets/wasm-MzD3tlZU.js +1 -0
- package/public/assets/wenyan-BV7otONQ.js +1 -0
- package/public/assets/wgsl-Dx-B1_4e.js +1 -0
- package/public/assets/wikitext-BhOHFoWU.js +1 -0
- package/public/assets/wit-5i3qLPDT.js +1 -0
- package/public/assets/wolfram-lXgVvXCa.js +1 -0
- package/public/assets/xml-sdJ4AIDG.js +1 -0
- package/public/assets/xsl-CtQFsRM5.js +1 -0
- package/public/assets/xychartDiagram-PRI3JC2R-BiR50II_.js +7 -0
- package/public/assets/yaml-Buea-lGh.js +1 -0
- package/public/assets/zenscript-DVFEvuxE.js +1 -0
- package/public/assets/zig-VOosw3JB.js +1 -0
- package/public/favicon.svg +4 -0
- package/public/index.html +20 -0
- package/README.md +0 -150
- package/bin/cli.js +0 -370
- package/dev/cli.tsx +0 -38
- package/dist/config/openai-codex-models.json +0 -205
- package/dist/server/index.d.ts +0 -6
- package/dist/server/index.js +0 -180
- package/dist/server/lib/opencode-client.d.ts +0 -14
- package/dist/server/lib/opencode-client.js +0 -17
- package/dist/server/lib/opencode-config.d.ts +0 -14
- package/dist/server/lib/opencode-config.js +0 -25
- package/dist/server/middleware/cors.d.ts +0 -6
- package/dist/server/middleware/cors.js +0 -8
- package/dist/server/routes/config.d.ts +0 -12
- package/dist/server/routes/config.js +0 -207
- package/dist/server/routes/directory.d.ts +0 -8
- package/dist/server/routes/directory.js +0 -84
- package/dist/server/routes/init.d.ts +0 -16
- package/dist/server/routes/init.js +0 -39
- package/dist/server/routes/local-llm.d.ts +0 -8
- package/dist/server/routes/local-llm.js +0 -255
- package/dist/server/routes/logs.d.ts +0 -2
- package/dist/server/routes/logs.js +0 -53
- package/dist/server/routes/model-state.d.ts +0 -2
- package/dist/server/routes/model-state.js +0 -81
- package/dist/server/routes/prompt.d.ts +0 -16
- package/dist/server/routes/prompt.js +0 -173
- package/dist/server/routes/proxy.d.ts +0 -2
- package/dist/server/routes/proxy.js +0 -122
- package/dist/server/routes/session.d.ts +0 -8
- package/dist/server/routes/session.js +0 -63
- package/dist/server/routes/status.d.ts +0 -9
- package/dist/server/routes/status.js +0 -54
- package/dist/server/routes/usage.d.ts +0 -12
- package/dist/server/routes/usage.js +0 -60
- package/dist/server/routes/windows.d.ts +0 -2
- package/dist/server/routes/windows.js +0 -125
- package/dist/server/schema.d.ts +0 -235
- package/dist/server/schema.js +0 -25
- package/dist/server/services/database.d.ts +0 -14
- package/dist/server/services/database.js +0 -123
- package/dist/server/services/sse-manager.d.ts +0 -16
- package/dist/server/services/sse-manager.js +0 -44
- package/dist/web/assets/_baseUniq-BxVG561Z.js +0 -1
- package/dist/web/assets/amazon-bedrock-B_u4Gv8g.svg +0 -3
- package/dist/web/assets/apex-DDbsPZ6N.js +0 -1
- package/dist/web/assets/arc-B9TFF79T.js +0 -1
- package/dist/web/assets/architectureDiagram-VXUJARFQ-BMRLMpf8.js +0 -36
- package/dist/web/assets/ayu-dark-Cv9koXgw.js +0 -1
- package/dist/web/assets/blade-DVc8C-J4.js +0 -1
- package/dist/web/assets/blockDiagram-VD42YOAC-DBQKFxeQ.js +0 -122
- package/dist/web/assets/c4Diagram-YG6GDRKO-TiYEZrdu.js +0 -10
- package/dist/web/assets/channel-aOIIaiSs.js +0 -1
- package/dist/web/assets/chunk-4BX2VUAB-CWCp0N17.js +0 -1
- package/dist/web/assets/chunk-55IACEB6-CeVCFKqv.js +0 -1
- package/dist/web/assets/chunk-B4BG7PRW-B-AoaHJt.js +0 -165
- package/dist/web/assets/chunk-DI55MBZ5-CCGkXnX-.js +0 -220
- package/dist/web/assets/chunk-FMBD7UC4-Bcupjeb_.js +0 -15
- package/dist/web/assets/chunk-QN33PNHL-DlyUQaTO.js +0 -1
- package/dist/web/assets/chunk-QZHKN3VN-THN-at_3.js +0 -1
- package/dist/web/assets/chunk-TZMSLE5B-CtErOFJM.js +0 -1
- package/dist/web/assets/classDiagram-2ON5EDUG-BFLMv18M.js +0 -1
- package/dist/web/assets/classDiagram-v2-WZHVMYZB-BFLMv18M.js +0 -1
- package/dist/web/assets/clone-BR_FHSwu.js +0 -1
- package/dist/web/assets/code-block-QI2IAROF-CPI-88R6.js +0 -2
- package/dist/web/assets/cose-bilkent-S5V4N54A-YrHmsLe4.js +0 -1
- package/dist/web/assets/dagre-6UL2VRFP-Dcvw3qhj.js +0 -4
- package/dist/web/assets/deepinfra-Dq_BB8I0.svg +0 -4
- package/dist/web/assets/diagram-PSM6KHXK-B135EOe6.js +0 -24
- package/dist/web/assets/diagram-QEK2KX5R-w3KdB_-u.js +0 -43
- package/dist/web/assets/diagram-S2PKOQOG-DYssvOTP.js +0 -24
- package/dist/web/assets/erDiagram-Q2GNP2WA-DpnuE7B_.js +0 -60
- package/dist/web/assets/flowDiagram-NV44I4VS-BhcJ-8Yu.js +0 -162
- package/dist/web/assets/fortran-fixed-form-BZjJHVRy.js +0 -1
- package/dist/web/assets/fortran-free-form-D22FLkUw.js +0 -1
- package/dist/web/assets/ganttDiagram-JELNMOA3-ButVkRCz.js +0 -267
- package/dist/web/assets/gitGraphDiagram-NY62KEGX-ZLz8eoSo.js +0 -65
- package/dist/web/assets/google-vertex-BCu5nGvk.svg +0 -10
- package/dist/web/assets/graph-CKmCFGqF.js +0 -1
- package/dist/web/assets/huggingface-DlwzPJmc.svg +0 -3
- package/dist/web/assets/index-BHJDUcNL.js +0 -1719
- package/dist/web/assets/index-CcAJUkQw.css +0 -1
- package/dist/web/assets/index-DEiKajXR.js +0 -1
- package/dist/web/assets/infoDiagram-WHAUD3N6-C_h94brE.js +0 -2
- package/dist/web/assets/journeyDiagram-XKPGCS4Q-u0bPRxxb.js +0 -139
- package/dist/web/assets/julia-C8NyazO9.js +0 -1
- package/dist/web/assets/kanban-definition-3W4ZIXB7-DkM-KD6Y.js +0 -89
- package/dist/web/assets/kimi-for-coding-eVEHug_h.svg +0 -3
- package/dist/web/assets/kusto-BvAqAH-y.js +0 -1
- package/dist/web/assets/latex-BdAV_C_H.js +0 -1
- package/dist/web/assets/layout-DGSU3MQw.js +0 -1
- package/dist/web/assets/lean-Bc6EcWN3.js +0 -1
- package/dist/web/assets/linear-Dck9QCb9.js +0 -1
- package/dist/web/assets/luau-CXu1NL6O.js +0 -1
- package/dist/web/assets/lucidquery-DRFbix82.svg +0 -3
- package/dist/web/assets/marko-CPi9NSCl.js +0 -1
- package/dist/web/assets/mermaid-DKYwYmdq.js +0 -1
- package/dist/web/assets/mermaid.core-DfB-jqaz.js +0 -191
- package/dist/web/assets/min-CqEcl9J0.js +0 -1
- package/dist/web/assets/mindmap-definition-VGOIOE7T-D1KrSALz.js +0 -68
- package/dist/web/assets/mojo-1DNp92w6.js +0 -1
- package/dist/web/assets/moonshotai-BeF2wtIV.svg +0 -3
- package/dist/web/assets/nix-c8nO5XWb.js +0 -1
- package/dist/web/assets/ollama-cloud-BIdeu-re.svg +0 -7
- package/dist/web/assets/pieDiagram-ADFJNKIX-CZ-507Bd.js +0 -30
- package/dist/web/assets/proto-DyJlTyXw.js +0 -1
- package/dist/web/assets/quadrantDiagram-AYHSOK5B-Jw0og6Ix.js +0 -7
- package/dist/web/assets/r-DiinP2Uv.js +0 -1
- package/dist/web/assets/razor-CE9lU5zL.js +0 -1
- package/dist/web/assets/requirementDiagram-UZGBJVZJ-5JWD7TEH.js +0 -64
- package/dist/web/assets/sankeyDiagram-TZEHDZUN-DzlxPj37.js +0 -10
- package/dist/web/assets/sequenceDiagram-WL72ISMW-Cui1ykiA.js +0 -145
- package/dist/web/assets/stateDiagram-FKZM4ZOC-CCdGE_zt.js +0 -1
- package/dist/web/assets/stateDiagram-v2-4FDKWEC3-CsLg9bzy.js +0 -1
- package/dist/web/assets/svelte-3Dk4HxPD.js +0 -1
- package/dist/web/assets/tex-CxkMU7Pf.js +0 -1
- package/dist/web/assets/timeline-definition-IT6M3QCI-CP2T8mHI.js +0 -61
- package/dist/web/assets/treemap-KMMF4GRG-DGBVlHVf.js +0 -128
- package/dist/web/assets/venice-CeIHfrIB.svg +0 -4
- package/dist/web/assets/vue-DnHKYNfI.js +0 -1
- package/dist/web/assets/vue-html-CChd_i61.js +0 -1
- package/dist/web/assets/vue-vine-8moa0y9V.js +0 -1
- package/dist/web/assets/welcome-screen-test-DnIwI3hf.js +0 -1
- package/dist/web/assets/xychartDiagram-PRI3JC2R-DDlMipkA.js +0 -7
- package/dist/web/favicon.svg +0 -4
- package/dist/web/index.html +0 -20
- /package/dist/{web → public}/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- /package/dist/{web → public}/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- /package/dist/{web → public}/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- /package/dist/{web → public}/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- /package/dist/{web → public}/assets/abap-BdImnpbu.js +0 -0
- /package/dist/{web → public}/assets/actionscript-3-CfeIJUat.js +0 -0
- /package/dist/{web → public}/assets/ada-bCR0ucgS.js +0 -0
- /package/dist/{web → public}/assets/andromeeda-C-Jbm3Hp.js +0 -0
- /package/dist/{web → public}/assets/angular-html-CU67Zn6k.js +0 -0
- /package/dist/{web → public}/assets/angular-ts-BwZT4LLn.js +0 -0
- /package/dist/{web → public}/assets/apache-Pmp26Uib.js +0 -0
- /package/dist/{web → public}/assets/apl-dKokRX4l.js +0 -0
- /package/dist/{web → public}/assets/applescript-Co6uUVPk.js +0 -0
- /package/dist/{web → public}/assets/ara-BRHolxvo.js +0 -0
- /package/dist/{web → public}/assets/asciidoc-Dv7Oe6Be.js +0 -0
- /package/dist/{web → public}/assets/asm-D_Q5rh1f.js +0 -0
- /package/dist/{web → public}/assets/astro-CbQHKStN.js +0 -0
- /package/dist/{web → public}/assets/aurora-x-D-2ljcwZ.js +0 -0
- /package/dist/{web → public}/assets/awk-DMzUqQB5.js +0 -0
- /package/dist/{web → public}/assets/ballerina-BFfxhgS-.js +0 -0
- /package/dist/{web → public}/assets/bat-BkioyH1T.js +0 -0
- /package/dist/{web → public}/assets/beancount-k_qm7-4y.js +0 -0
- /package/dist/{web → public}/assets/berry-uYugtg8r.js +0 -0
- /package/dist/{web → public}/assets/bibtex-CHM0blh-.js +0 -0
- /package/dist/{web → public}/assets/bicep-Bmn6On1c.js +0 -0
- /package/dist/{web → public}/assets/bsl-BO_Y6i37.js +0 -0
- /package/dist/{web → public}/assets/c-BIGW1oBm.js +0 -0
- /package/dist/{web → public}/assets/cadence-Bv_4Rxtq.js +0 -0
- /package/dist/{web → public}/assets/cairo-KRGpt6FW.js +0 -0
- /package/dist/{web → public}/assets/catppuccin-frappe-DFWUc33u.js +0 -0
- /package/dist/{web → public}/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
- /package/dist/{web → public}/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
- /package/dist/{web → public}/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
- /package/dist/{web → public}/assets/clarity-D53aC0YG.js +0 -0
- /package/dist/{web → public}/assets/clojure-P80f7IUj.js +0 -0
- /package/dist/{web → public}/assets/cmake-D1j8_8rp.js +0 -0
- /package/dist/{web → public}/assets/cobol-nwyudZeR.js +0 -0
- /package/dist/{web → public}/assets/codeowners-Bp6g37R7.js +0 -0
- /package/dist/{web → public}/assets/codeql-DsOJ9woJ.js +0 -0
- /package/dist/{web → public}/assets/coffee-Ch7k5sss.js +0 -0
- /package/dist/{web → public}/assets/common-lisp-Cg-RD9OK.js +0 -0
- /package/dist/{web → public}/assets/coq-DkFqJrB1.js +0 -0
- /package/dist/{web → public}/assets/cpp-CofmeUqb.js +0 -0
- /package/dist/{web → public}/assets/crystal-tKQVLTB8.js +0 -0
- /package/dist/{web → public}/assets/csharp-K5feNrxe.js +0 -0
- /package/dist/{web → public}/assets/css-DPfMkruS.js +0 -0
- /package/dist/{web → public}/assets/csv-fuZLfV_i.js +0 -0
- /package/dist/{web → public}/assets/cue-D82EKSYY.js +0 -0
- /package/dist/{web → public}/assets/cypher-COkxafJQ.js +0 -0
- /package/dist/{web → public}/assets/cytoscape.esm-5J0xJHOV.js +0 -0
- /package/dist/{web → public}/assets/d-85-TOEBH.js +0 -0
- /package/dist/{web → public}/assets/dark-plus-C3mMm8J8.js +0 -0
- /package/dist/{web → public}/assets/dart-CF10PKvl.js +0 -0
- /package/dist/{web → public}/assets/dax-CEL-wOlO.js +0 -0
- /package/dist/{web → public}/assets/defaultLocale-C4B-KCzX.js +0 -0
- /package/dist/{web → public}/assets/desktop-BmXAJ9_W.js +0 -0
- /package/dist/{web → public}/assets/diff-D97Zzqfu.js +0 -0
- /package/dist/{web → public}/assets/docker-BcOcwvcX.js +0 -0
- /package/dist/{web → public}/assets/dotenv-Da5cRb03.js +0 -0
- /package/dist/{web → public}/assets/dracula-BzJJZx-M.js +0 -0
- /package/dist/{web → public}/assets/dracula-soft-BXkSAIEj.js +0 -0
- /package/dist/{web → public}/assets/dream-maker-BtqSS_iP.js +0 -0
- /package/dist/{web → public}/assets/edge-BkV0erSs.js +0 -0
- /package/dist/{web → public}/assets/elixir-CDX3lj18.js +0 -0
- /package/dist/{web → public}/assets/elm-DbKCFpqz.js +0 -0
- /package/dist/{web → public}/assets/emacs-lisp-C9XAeP06.js +0 -0
- /package/dist/{web → public}/assets/erb-BOJIQeun.js +0 -0
- /package/dist/{web → public}/assets/erlang-DsQrWhSR.js +0 -0
- /package/dist/{web → public}/assets/everforest-dark-BgDCqdQA.js +0 -0
- /package/dist/{web → public}/assets/everforest-light-C8M2exoo.js +0 -0
- /package/dist/{web → public}/assets/fennel-BYunw83y.js +0 -0
- /package/dist/{web → public}/assets/fish-BvzEVeQv.js +0 -0
- /package/dist/{web → public}/assets/fluent-C4IJs8-o.js +0 -0
- /package/dist/{web → public}/assets/fsharp-CXgrBDvD.js +0 -0
- /package/dist/{web → public}/assets/gdresource-B7Tvp0Sc.js +0 -0
- /package/dist/{web → public}/assets/gdscript-DTMYz4Jt.js +0 -0
- /package/dist/{web → public}/assets/gdshader-DkwncUOv.js +0 -0
- /package/dist/{web → public}/assets/genie-D0YGMca9.js +0 -0
- /package/dist/{web → public}/assets/gherkin-DyxjwDmM.js +0 -0
- /package/dist/{web → public}/assets/git-commit-F4YmCXRG.js +0 -0
- /package/dist/{web → public}/assets/git-rebase-r7XF79zn.js +0 -0
- /package/dist/{web → public}/assets/github-dark-DHJKELXO.js +0 -0
- /package/dist/{web → public}/assets/github-dark-default-Cuk6v7N8.js +0 -0
- /package/dist/{web → public}/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
- /package/dist/{web → public}/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
- /package/dist/{web → public}/assets/github-light-DAi9KRSo.js +0 -0
- /package/dist/{web → public}/assets/github-light-default-D7oLnXFd.js +0 -0
- /package/dist/{web → public}/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
- /package/dist/{web → public}/assets/gleam-BspZqrRM.js +0 -0
- /package/dist/{web → public}/assets/glimmer-js-Rg0-pVw9.js +0 -0
- /package/dist/{web → public}/assets/glimmer-ts-U6CK756n.js +0 -0
- /package/dist/{web → public}/assets/glsl-DplSGwfg.js +0 -0
- /package/dist/{web → public}/assets/gnuplot-DdkO51Og.js +0 -0
- /package/dist/{web → public}/assets/go-Dn2_MT6a.js +0 -0
- /package/dist/{web → public}/assets/graphql-ChdNCCLP.js +0 -0
- /package/dist/{web → public}/assets/groovy-gcz8RCvz.js +0 -0
- /package/dist/{web → public}/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
- /package/dist/{web → public}/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
- /package/dist/{web → public}/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
- /package/dist/{web → public}/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
- /package/dist/{web → public}/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
- /package/dist/{web → public}/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
- /package/dist/{web → public}/assets/hack-CaT9iCJl.js +0 -0
- /package/dist/{web → public}/assets/haml-B8DHNrY2.js +0 -0
- /package/dist/{web → public}/assets/handlebars-BL8al0AC.js +0 -0
- /package/dist/{web → public}/assets/haskell-Df6bDoY_.js +0 -0
- /package/dist/{web → public}/assets/haxe-CzTSHFRz.js +0 -0
- /package/dist/{web → public}/assets/hcl-BWvSN4gD.js +0 -0
- /package/dist/{web → public}/assets/hjson-D5-asLiD.js +0 -0
- /package/dist/{web → public}/assets/hlsl-D3lLCCz7.js +0 -0
- /package/dist/{web → public}/assets/houston-DnULxvSX.js +0 -0
- /package/dist/{web → public}/assets/html-GMplVEZG.js +0 -0
- /package/dist/{web → public}/assets/html-derivative-BFtXZ54Q.js +0 -0
- /package/dist/{web → public}/assets/http-jrhK8wxY.js +0 -0
- /package/dist/{web → public}/assets/hurl-irOxFIW8.js +0 -0
- /package/dist/{web → public}/assets/hxml-Bvhsp5Yf.js +0 -0
- /package/dist/{web → public}/assets/hy-DFXneXwc.js +0 -0
- /package/dist/{web → public}/assets/imba-DGztddWO.js +0 -0
- /package/dist/{web → public}/assets/ini-BEwlwnbL.js +0 -0
- /package/dist/{web → public}/assets/init-Gi6I4Gst.js +0 -0
- /package/dist/{web → public}/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
- /package/dist/{web → public}/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
- /package/dist/{web → public}/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
- /package/dist/{web → public}/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
- /package/dist/{web → public}/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
- /package/dist/{web → public}/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
- /package/dist/{web → public}/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
- /package/dist/{web → public}/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
- /package/dist/{web → public}/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- /package/dist/{web → public}/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
- /package/dist/{web → public}/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
- /package/dist/{web → public}/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
- /package/dist/{web → public}/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
- /package/dist/{web → public}/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- /package/dist/{web → public}/assets/java-CylS5w8V.js +0 -0
- /package/dist/{web → public}/assets/javascript-wDzz0qaB.js +0 -0
- /package/dist/{web → public}/assets/jinja-4LBKfQ-Z.js +0 -0
- /package/dist/{web → public}/assets/jison-wvAkD_A8.js +0 -0
- /package/dist/{web → public}/assets/json-Cp-IABpG.js +0 -0
- /package/dist/{web → public}/assets/json5-C9tS-k6U.js +0 -0
- /package/dist/{web → public}/assets/jsonc-Des-eS-w.js +0 -0
- /package/dist/{web → public}/assets/jsonl-DcaNXYhu.js +0 -0
- /package/dist/{web → public}/assets/jsonnet-DFQXde-d.js +0 -0
- /package/dist/{web → public}/assets/jssm-C2t-YnRu.js +0 -0
- /package/dist/{web → public}/assets/jsx-g9-lgVsj.js +0 -0
- /package/dist/{web → public}/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
- /package/dist/{web → public}/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
- /package/dist/{web → public}/assets/kanagawa-wave-DWedfzmr.js +0 -0
- /package/dist/{web → public}/assets/katex-DvXFAOB1.css +0 -0
- /package/dist/{web → public}/assets/kdl-DV7GczEv.js +0 -0
- /package/dist/{web → public}/assets/kotlin-BdnUsdx6.js +0 -0
- /package/dist/{web → public}/assets/laserwave-DUszq2jm.js +0 -0
- /package/dist/{web → public}/assets/less-B1dDrJ26.js +0 -0
- /package/dist/{web → public}/assets/light-plus-B7mTdjB0.js +0 -0
- /package/dist/{web → public}/assets/liquid-DYVedYrR.js +0 -0
- /package/dist/{web → public}/assets/llvm-BtvRca6l.js +0 -0
- /package/dist/{web → public}/assets/log-2UxHyX5q.js +0 -0
- /package/dist/{web → public}/assets/logo-BtOb2qkB.js +0 -0
- /package/dist/{web → public}/assets/lua-BbnMAYS6.js +0 -0
- /package/dist/{web → public}/assets/make-CHLpvVh8.js +0 -0
- /package/dist/{web → public}/assets/markdown-Cvjx9yec.js +0 -0
- /package/dist/{web → public}/assets/material-theme-D5KoaKCx.js +0 -0
- /package/dist/{web → public}/assets/material-theme-darker-BfHTSMKl.js +0 -0
- /package/dist/{web → public}/assets/material-theme-lighter-B0m2ddpp.js +0 -0
- /package/dist/{web → public}/assets/material-theme-ocean-CyktbL80.js +0 -0
- /package/dist/{web → public}/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
- /package/dist/{web → public}/assets/matlab-D7o27uSR.js +0 -0
- /package/dist/{web → public}/assets/mdc-DUICxH0z.js +0 -0
- /package/dist/{web → public}/assets/mdx-Cmh6b_Ma.js +0 -0
- /package/dist/{web → public}/assets/min-dark-CafNBF8u.js +0 -0
- /package/dist/{web → public}/assets/min-light-CTRr51gU.js +0 -0
- /package/dist/{web → public}/assets/mipsasm-CKIfxQSi.js +0 -0
- /package/dist/{web → public}/assets/monokai-D4h5O-jR.js +0 -0
- /package/dist/{web → public}/assets/move-Bu9oaDYs.js +0 -0
- /package/dist/{web → public}/assets/narrat-DRg8JJMk.js +0 -0
- /package/dist/{web → public}/assets/nextflow-BrzmwbiE.js +0 -0
- /package/dist/{web → public}/assets/nginx-DknmC5AR.js +0 -0
- /package/dist/{web → public}/assets/night-owl-C39BiMTA.js +0 -0
- /package/dist/{web → public}/assets/nim-CVrawwO9.js +0 -0
- /package/dist/{web → public}/assets/nord-Ddv68eIx.js +0 -0
- /package/dist/{web → public}/assets/nushell-C-sUppwS.js +0 -0
- /package/dist/{web → public}/assets/objective-c-DXmwc3jG.js +0 -0
- /package/dist/{web → public}/assets/objective-cpp-CLxacb5B.js +0 -0
- /package/dist/{web → public}/assets/ocaml-C0hk2d4L.js +0 -0
- /package/dist/{web → public}/assets/one-dark-pro-DVMEJ2y_.js +0 -0
- /package/dist/{web → public}/assets/one-light-PoHY5YXO.js +0 -0
- /package/dist/{web → public}/assets/openscad-C4EeE6gA.js +0 -0
- /package/dist/{web → public}/assets/ordinal-Cboi1Yqb.js +0 -0
- /package/dist/{web → public}/assets/pascal-D93ZcfNL.js +0 -0
- /package/dist/{web → public}/assets/perl-C0TMdlhV.js +0 -0
- /package/dist/{web → public}/assets/php-CDn_0X-4.js +0 -0
- /package/dist/{web → public}/assets/pierre-dark-BXuwtOqb.js +0 -0
- /package/dist/{web → public}/assets/pierre-light-dckrK0oj.js +0 -0
- /package/dist/{web → public}/assets/pkl-u5AG7uiY.js +0 -0
- /package/dist/{web → public}/assets/plastic-3e1v2bzS.js +0 -0
- /package/dist/{web → public}/assets/plsql-ChMvpjG-.js +0 -0
- /package/dist/{web → public}/assets/po-BTJTHyun.js +0 -0
- /package/dist/{web → public}/assets/poimandres-CS3Unz2-.js +0 -0
- /package/dist/{web → public}/assets/polar-C0HS_06l.js +0 -0
- /package/dist/{web → public}/assets/postcss-CXtECtnM.js +0 -0
- /package/dist/{web → public}/assets/powerquery-CEu0bR-o.js +0 -0
- /package/dist/{web → public}/assets/powershell-Dpen1YoG.js +0 -0
- /package/dist/{web → public}/assets/prisma-Dd19v3D-.js +0 -0
- /package/dist/{web → public}/assets/prolog-CbFg5uaA.js +0 -0
- /package/dist/{web → public}/assets/pug-CGlum2m_.js +0 -0
- /package/dist/{web → public}/assets/puppet-BMWR74SV.js +0 -0
- /package/dist/{web → public}/assets/purescript-CklMAg4u.js +0 -0
- /package/dist/{web → public}/assets/python-B6aJPvgy.js +0 -0
- /package/dist/{web → public}/assets/qml-3beO22l8.js +0 -0
- /package/dist/{web → public}/assets/qmldir-C8lEn-DE.js +0 -0
- /package/dist/{web → public}/assets/qss-IeuSbFQv.js +0 -0
- /package/dist/{web → public}/assets/racket-BqYA7rlc.js +0 -0
- /package/dist/{web → public}/assets/raku-DXvB9xmW.js +0 -0
- /package/dist/{web → public}/assets/red-bN70gL4F.js +0 -0
- /package/dist/{web → public}/assets/reg-C-SQnVFl.js +0 -0
- /package/dist/{web → public}/assets/regexp-CDVJQ6XC.js +0 -0
- /package/dist/{web → public}/assets/rel-C3B-1QV4.js +0 -0
- /package/dist/{web → public}/assets/riscv-BM1_JUlF.js +0 -0
- /package/dist/{web → public}/assets/rose-pine-dawn-DHQR4-dF.js +0 -0
- /package/dist/{web → public}/assets/rose-pine-moon-D4_iv3hh.js +0 -0
- /package/dist/{web → public}/assets/rose-pine-qdsjHGoJ.js +0 -0
- /package/dist/{web → public}/assets/rosmsg-BJDFO7_C.js +0 -0
- /package/dist/{web → public}/assets/rst-B0xPkSld.js +0 -0
- /package/dist/{web → public}/assets/ruby-BvKwtOVI.js +0 -0
- /package/dist/{web → public}/assets/rust-B1yitclQ.js +0 -0
- /package/dist/{web → public}/assets/sas-cz2c8ADy.js +0 -0
- /package/dist/{web → public}/assets/sass-Cj5Yp3dK.js +0 -0
- /package/dist/{web → public}/assets/scala-C151Ov-r.js +0 -0
- /package/dist/{web → public}/assets/scheme-C98Dy4si.js +0 -0
- /package/dist/{web → public}/assets/scss-OYdSNvt2.js +0 -0
- /package/dist/{web → public}/assets/sdbl-DVxCFoDh.js +0 -0
- /package/dist/{web → public}/assets/shaderlab-Dg9Lc6iA.js +0 -0
- /package/dist/{web → public}/assets/shellscript-Yzrsuije.js +0 -0
- /package/dist/{web → public}/assets/shellsession-BADoaaVG.js +0 -0
- /package/dist/{web → public}/assets/slack-dark-BthQWCQV.js +0 -0
- /package/dist/{web → public}/assets/slack-ochin-DqwNpetd.js +0 -0
- /package/dist/{web → public}/assets/smalltalk-BERRCDM3.js +0 -0
- /package/dist/{web → public}/assets/snazzy-light-Bw305WKR.js +0 -0
- /package/dist/{web → public}/assets/solarized-dark-DXbdFlpD.js +0 -0
- /package/dist/{web → public}/assets/solarized-light-L9t79GZl.js +0 -0
- /package/dist/{web → public}/assets/solidity-rGO070M0.js +0 -0
- /package/dist/{web → public}/assets/soy-Brmx7dQM.js +0 -0
- /package/dist/{web → public}/assets/sparql-rVzFXLq3.js +0 -0
- /package/dist/{web → public}/assets/splunk-BtCnVYZw.js +0 -0
- /package/dist/{web → public}/assets/sql-BLtJtn59.js +0 -0
- /package/dist/{web → public}/assets/ssh-config-_ykCGR6B.js +0 -0
- /package/dist/{web → public}/assets/stata-BH5u7GGu.js +0 -0
- /package/dist/{web → public}/assets/stylus-BEDo0Tqx.js +0 -0
- /package/dist/{web → public}/assets/swift-Dg5xB15N.js +0 -0
- /package/dist/{web → public}/assets/synthwave-84-CbfX1IO0.js +0 -0
- /package/dist/{web → public}/assets/system-verilog-CnnmHF94.js +0 -0
- /package/dist/{web → public}/assets/systemd-4A_iFExJ.js +0 -0
- /package/dist/{web → public}/assets/talonscript-CkByrt1z.js +0 -0
- /package/dist/{web → public}/assets/tasl-QIJgUcNo.js +0 -0
- /package/dist/{web → public}/assets/tcl-dwOrl1Do.js +0 -0
- /package/dist/{web → public}/assets/templ-W15q3VgB.js +0 -0
- /package/dist/{web → public}/assets/terraform-BETggiCN.js +0 -0
- /package/dist/{web → public}/assets/tokyo-night-hegEt444.js +0 -0
- /package/dist/{web → public}/assets/toml-vGWfd6FD.js +0 -0
- /package/dist/{web → public}/assets/ts-tags-zn1MmPIZ.js +0 -0
- /package/dist/{web → public}/assets/tsv-B_m7g4N7.js +0 -0
- /package/dist/{web → public}/assets/tsx-COt5Ahok.js +0 -0
- /package/dist/{web → public}/assets/turtle-BsS91CYL.js +0 -0
- /package/dist/{web → public}/assets/twig-CO9l9SDP.js +0 -0
- /package/dist/{web → public}/assets/typescript-BPQ3VLAy.js +0 -0
- /package/dist/{web → public}/assets/typespec-BGHnOYBU.js +0 -0
- /package/dist/{web → public}/assets/typst-DHCkPAjA.js +0 -0
- /package/dist/{web → public}/assets/v-BcVCzyr7.js +0 -0
- /package/dist/{web → public}/assets/vala-CsfeWuGM.js +0 -0
- /package/dist/{web → public}/assets/vb-D17OF-Vu.js +0 -0
- /package/dist/{web → public}/assets/verilog-BQ8w6xss.js +0 -0
- /package/dist/{web → public}/assets/vesper-DU1UobuO.js +0 -0
- /package/dist/{web → public}/assets/vhdl-CeAyd5Ju.js +0 -0
- /package/dist/{web → public}/assets/viml-CJc9bBzg.js +0 -0
- /package/dist/{web → public}/assets/vitesse-black-Bkuqu6BP.js +0 -0
- /package/dist/{web → public}/assets/vitesse-dark-D0r3Knsf.js +0 -0
- /package/dist/{web → public}/assets/vitesse-light-CVO1_9PV.js +0 -0
- /package/dist/{web → public}/assets/vyper-CDx5xZoG.js +0 -0
- /package/dist/{web → public}/assets/wasm-CG6Dc4jp.js +0 -0
- /package/dist/{web → public}/assets/wasm-MzD3tlZU.js +0 -0
- /package/dist/{web → public}/assets/wenyan-BV7otONQ.js +0 -0
- /package/dist/{web → public}/assets/wgsl-Dx-B1_4e.js +0 -0
- /package/dist/{web → public}/assets/wikitext-BhOHFoWU.js +0 -0
- /package/dist/{web → public}/assets/wit-5i3qLPDT.js +0 -0
- /package/dist/{web → public}/assets/wolfram-lXgVvXCa.js +0 -0
- /package/dist/{web → public}/assets/xml-sdJ4AIDG.js +0 -0
- /package/dist/{web → public}/assets/xsl-CtQFsRM5.js +0 -0
- /package/dist/{web → public}/assets/yaml-Buea-lGh.js +0 -0
- /package/dist/{web → public}/assets/zenscript-DVFEvuxE.js +0 -0
- /package/dist/{web → public}/assets/zig-VOosw3JB.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../bin/cli.ts","../../src/index.ts","../../src/db/index.ts","../../src/lib/paths.ts","../../src/db/schema.ts","../../src/amuxBridge.ts","../../src/trpc/trpc.ts","../../src/trpc/windows.ts","../../client/lib/layout.ts","../../src/trpc/layout.ts","../../src/trpc/agents.ts","../../src/trpc/files.ts","../../src/trpc/router.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * Shella CLI - Self-hosted AI coding agents\n *\n * Usage:\n * npx @bytespell/shella Start in current directory\n * npx @bytespell/shella --port 3070 Custom port\n */\n\nimport { program } from 'commander';\nimport { networkInterfaces } from 'os';\nimport { spawn } from 'child_process';\nimport * as p from '@clack/prompts';\nimport { createShellaServer } from '../src/index.js';\n\nconst VERSION = '0.1.0';\n\n// Brand color (indigo) for terminal output\nconst BRAND = '\\x1b[38;2;99;102;241m'; // rgb(99, 102, 241)\nconst RESET = '\\x1b[0m';\nconst DIM = '\\x1b[2m';\nconst brand = (text: string) => `${BRAND}${text}${RESET}`;\nconst dim = (text: string) => `${DIM}${text}${RESET}`;\n\nfunction getLanIp(): string {\n const interfaces = networkInterfaces();\n for (const [name, addrs] of Object.entries(interfaces)) {\n if (/^(lo|docker|veth|br-|virbr)/.test(name)) continue;\n for (const addr of addrs || []) {\n if (addr.family === 'IPv4' && !addr.internal) {\n return addr.address;\n }\n }\n }\n return 'localhost';\n}\n\ninterface StartOptions {\n port: string;\n open: boolean;\n verbose: boolean;\n}\n\nasync function startCommand(options: StartOptions) {\n const port = parseInt(options.port, 10);\n const verbose = options.verbose;\n\n const s = verbose ? null : p.spinner();\n const log = (msg: string) => verbose && console.log(msg);\n\n if (!verbose) {\n p.intro(`${brand('shella')} ${dim(`v${VERSION}`)}`);\n } else {\n log(`${brand('shella')} ${dim(`v${VERSION}`)}`);\n }\n\n if (s) s.start('Starting server...');\n else log('Starting server...');\n\n const shella = createShellaServer({\n port,\n onReady: (url) => {\n if (s) s.stop('Ready');\n\n const lanIp = getLanIp();\n const lanUrl = `http://${lanIp}:${port}`;\n\n if (verbose) {\n log(`\\n${brand(lanUrl)}`);\n log(dim('access from any device'));\n log(`\\n${dim('press ctrl+c to stop')}\\n`);\n } else {\n p.log.success(`${brand(lanUrl)}`);\n p.log.message(dim('access from any device'));\n p.outro(dim('press ctrl+c to stop'));\n }\n\n // Open browser if requested\n if (options.open) {\n const openCommand =\n process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start' : 'xdg-open';\n spawn(openCommand, [url], { stdio: 'ignore', detached: true }).unref();\n }\n },\n });\n\n await shella.start();\n\n // Graceful shutdown\n const shutdown = async () => {\n console.log('');\n console.log(dim('stopping...'));\n await shella.stop();\n console.log(`${brand('shella')} ${dim('stopped')}`);\n process.exit(0);\n };\n\n process.on('SIGTERM', shutdown);\n process.on('SIGINT', shutdown);\n}\n\nprogram\n .name('shella')\n .description(`${brand('shella')} - Self-hosted AI coding agents. Access from your phone.`)\n .version(VERSION)\n .option('-p, --port <port>', 'Server port', '3067')\n .option('--no-open', \"Don't open browser automatically\")\n .option('-v, --verbose', 'Show detailed logs', false)\n .action(startCommand);\n\nprogram.parse();\n","/**\n * Shella Server - Full product combining Amux + UI\n *\n * Creates a server that:\n * 1. Initializes Shella's database (windows, panes, ui_state)\n * 2. Creates an amux bridge for session/agent operations\n * 3. Serves the bundled UI static files\n * 4. Mounts Shella's tRPC API at /trpc (which proxies to amux internally)\n * 5. Handles WebSocket connections for subscriptions\n */\n\nimport express from 'express';\nimport { createServer } from 'http';\nimport { WebSocketServer } from 'ws';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { createExpressMiddleware } from '@trpc/server/adapters/express';\nimport { applyWSSHandler } from '@trpc/server/adapters/ws';\nimport { agentManager } from '@bytespell/amux/agents/manager';\n\n// Import to trigger amux database initialization\nimport '@bytespell/amux/db';\n\n// Import to trigger shella database initialization\nimport './db/index.js';\n\nimport { createAmuxBridge } from './amuxBridge.js';\nimport { shellaRouter, initializeRouters } from './trpc/router.js';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport interface ShellaServerOptions {\n port?: number;\n onReady?: (url: string) => void;\n}\n\nexport interface ShellaServer {\n start: () => Promise<void>;\n stop: () => Promise<void>;\n}\n\nexport function createShellaServer(options: ShellaServerOptions = {}): ShellaServer {\n const port = options.port ?? 3067;\n\n // Initialize amux bridge\n const amuxBridge = createAmuxBridge();\n\n // Initialize routers with the bridge\n initializeRouters(amuxBridge);\n\n // Create main express app\n const app = express();\n app.use(express.json());\n\n // Serve static UI files first\n const publicPath = path.join(__dirname, '..', 'public');\n app.use(express.static(publicPath));\n\n // tRPC HTTP endpoint\n app.use('/trpc', createExpressMiddleware({ router: shellaRouter }));\n\n // Health check\n app.get('/health', (_req, res) => res.json({ status: 'ok' }));\n\n // SPA fallback - serve index.html for all non-API routes\n // Express 5 requires named parameter for wildcards\n app.get('/{*splat}', (_req, res) => {\n res.sendFile(path.join(publicPath, 'index.html'));\n });\n\n // Create HTTP server\n const server = createServer(app);\n\n // WebSocket for subscriptions\n const wss = new WebSocketServer({ server, path: '/trpc' });\n applyWSSHandler({ wss, router: shellaRouter });\n\n return {\n start: () => {\n return new Promise((resolve) => {\n server.listen(port, () => {\n const url = `http://localhost:${port}`;\n console.log(`[shella] Running on ${url}`);\n options.onReady?.(url);\n resolve();\n });\n });\n },\n\n stop: async () => {\n console.log('[shella] Shutting down...');\n wss.close();\n await agentManager.stopAll();\n server.close();\n },\n };\n}\n\n// Re-export router type for UI\nexport { shellaRouter, type ShellaRouter } from './trpc/router.js';\n","import Database from 'better-sqlite3';\nimport { drizzle } from 'drizzle-orm/better-sqlite3';\nimport { getShellaDbPath, ensureDir, getDataDir } from '../lib/paths.js';\nimport * as schema from './schema.js';\n\nensureDir(getDataDir());\n\nconst sqlite = new Database(getShellaDbPath());\nsqlite.pragma('journal_mode = WAL');\nsqlite.pragma('foreign_keys = ON');\n\nexport const db = drizzle(sqlite, { schema });\n\n// Create tables if they don't exist\nsqlite.exec(`\n CREATE TABLE IF NOT EXISTS windows (\n id TEXT PRIMARY KEY,\n title TEXT NOT NULL,\n has_custom_title INTEGER NOT NULL DEFAULT 0,\n layout TEXT NOT NULL,\n active_pane_id TEXT NOT NULL,\n created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000),\n last_accessed_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)\n );\n\n CREATE TABLE IF NOT EXISTS panes (\n id TEXT PRIMARY KEY,\n window_id TEXT NOT NULL REFERENCES windows(id) ON DELETE CASCADE,\n session_id TEXT NOT NULL,\n created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)\n );\n\n CREATE TABLE IF NOT EXISTS ui_state (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n );\n`);\n\nexport { schema };\n","import path from 'path';\nimport os from 'os';\nimport fs from 'fs';\n\n/**\n * Get the data directory following XDG Base Directory spec\n * Shared with amux in the same directory.\n */\nexport function getDataDir(): string {\n const home = os.homedir();\n\n let dataDir: string;\n\n switch (process.platform) {\n case 'darwin':\n dataDir = path.join(home, 'Library', 'Application Support', 'shella');\n break;\n case 'win32':\n dataDir = path.join(process.env.APPDATA || path.join(home, 'AppData', 'Roaming'), 'shella');\n break;\n default:\n // Linux and others - follow XDG spec\n dataDir = path.join(process.env.XDG_DATA_HOME || path.join(home, '.local', 'share'), 'shella');\n }\n\n return dataDir;\n}\n\n/**\n * Check if running in mock mode\n */\nexport function isMockMode(): boolean {\n return process.env.SHELLA_MOCK_MODE === 'true';\n}\n\n/**\n * Get the path to Shella's database file (UI state: windows, panes, layouts)\n * This is separate from amux's database (sessions, events, agent configs)\n */\nexport function getShellaDbPath(): string {\n const filename = isMockMode() ? 'shella-ui.mock.db' : 'shella-ui.db';\n return path.join(getDataDir(), filename);\n}\n\n/**\n * Ensure a directory exists, creating it if necessary\n */\nexport function ensureDir(dir: string): void {\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true });\n }\n}\n","import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';\nimport { sql } from 'drizzle-orm';\nimport type { LayoutNode } from '../../client/lib/layout.js';\n\n/**\n * Windows - top-level UI containers with layout trees.\n * Each window contains one or more panes arranged in a layout.\n */\nexport const windows = sqliteTable('windows', {\n id: text('id').primaryKey(),\n title: text('title').notNull(),\n hasCustomTitle: integer('has_custom_title', { mode: 'boolean' }).notNull().default(false),\n /** JSON-serialized LayoutNode tree */\n layout: text('layout', { mode: 'json' }).$type<LayoutNode>().notNull(),\n activePaneId: text('active_pane_id').notNull(),\n createdAt: integer('created_at', { mode: 'timestamp_ms' })\n .notNull()\n .default(sql`(unixepoch() * 1000)`),\n lastAccessedAt: integer('last_accessed_at', { mode: 'timestamp_ms' })\n .notNull()\n .default(sql`(unixepoch() * 1000)`),\n});\n\n/**\n * Panes - individual agent session containers within a window.\n * Each pane references an amux session (cross-database reference).\n */\nexport const panes = sqliteTable('panes', {\n id: text('id').primaryKey(),\n windowId: text('window_id')\n .notNull()\n .references(() => windows.id, { onDelete: 'cascade' }),\n /** References amux session ID (cross-database) */\n sessionId: text('session_id').notNull(),\n createdAt: integer('created_at', { mode: 'timestamp_ms' })\n .notNull()\n .default(sql`(unixepoch() * 1000)`),\n});\n\n/**\n * UI state - key/value store for UI preferences.\n * Examples: active_window_id, theme, sidebar_collapsed\n */\nexport const uiState = sqliteTable('ui_state', {\n key: text('key').primaryKey(),\n value: text('value').notNull(),\n});\n\n// Type exports\nexport type Window = typeof windows.$inferSelect;\nexport type NewWindow = typeof windows.$inferInsert;\nexport type Pane = typeof panes.$inferSelect;\nexport type NewPane = typeof panes.$inferInsert;\nexport type UiState = typeof uiState.$inferSelect;\n","/**\n * Bridge between Shella and Amux.\n *\n * Since Shella embeds Amux (same process), this bridge directly calls\n * Amux's internal functions rather than going through tRPC.\n */\n\nimport { randomUUID } from 'crypto';\nimport { eq, inArray } from 'drizzle-orm';\nimport { db, schema } from '@bytespell/amux/db';\nimport { agentManager } from '@bytespell/amux/agents/manager';\nimport { clearEventsForSession } from '@bytespell/amux/agents/eventStore';\nimport { listFilesForAutocomplete, type FileEntry } from '@bytespell/amux/trpc/files';\nimport type { WindowUpdate } from '@bytespell/amux/types';\n\nconst { sessions, agentConfigs, appState } = schema;\n\n// Types that match Amux's internal types\nexport interface AmuxSession {\n id: string;\n directory: string;\n agentConfigId: string;\n acpSessionId: string | null;\n title: string | null;\n model: string | null;\n mode: string | null;\n createdAt: Date;\n}\n\nexport interface AmuxAgentConfig {\n id: string;\n name: string;\n command: string;\n args: string[] | null;\n env: Record<string, string> | null;\n createdAt: Date;\n}\n\nexport interface AmuxAgentSession {\n acpSessionId: string;\n replayEvents: any[];\n models?: Array<{ modelId: string; name: string }>;\n modes?: Array<{ id: string; name: string; description?: string }>;\n}\n\nexport interface AmuxBridge {\n // Session operations\n getSessions(ids: string[]): Promise<AmuxSession[]>;\n getSession(id: string): Promise<AmuxSession | null>;\n createSession(params: { id?: string; directory: string; agentConfigId?: string }): Promise<AmuxSession>;\n deleteSession(id: string): Promise<void>;\n\n // Agent config operations\n getAgentConfigs(): Promise<AmuxAgentConfig[]>;\n\n // Agent operations (start/stop/prompt/etc)\n startAgent(sessionId: string): Promise<AmuxAgentSession>;\n stopAgent(sessionId: string): Promise<void>;\n prompt(sessionId: string, message: string): Promise<void>;\n cancel(sessionId: string): Promise<void>;\n setMode(sessionId: string, modeId: string): Promise<void>;\n setModel(sessionId: string, modelId: string): Promise<void>;\n respondPermission(sessionId: string, requestId: string, optionId: string): void;\n switchAgent(sessionId: string, agentConfigId: string): Promise<void>;\n\n // Subscriptions\n subscribeToSession(sessionId: string, callback: (update: WindowUpdate) => void): () => void;\n\n // File operations\n listFilesForAutocomplete(sessionId: string, partialPath: string, limit: number): Promise<FileEntry[]>;\n}\n\n/**\n * Create an AmuxBridge from the embedded Amux instance.\n * This connects to Amux running in the same process.\n */\nexport function createAmuxBridge(): AmuxBridge {\n return {\n async getSessions(ids: string[]): Promise<AmuxSession[]> {\n if (ids.length === 0) return [];\n return db.select().from(sessions).where(inArray(sessions.id, ids)).all();\n },\n\n async getSession(id: string): Promise<AmuxSession | null> {\n return db.select().from(sessions).where(eq(sessions.id, id)).get() ?? null;\n },\n\n async createSession(params: { id?: string; directory: string; agentConfigId?: string }): Promise<AmuxSession> {\n // Get agent config\n let configId = params.agentConfigId;\n if (!configId) {\n const lastUsedRow = db.select().from(appState).where(eq(appState.key, 'last_used_agent_config_id')).get();\n if (lastUsedRow?.value) {\n const config = db.select().from(agentConfigs).where(eq(agentConfigs.id, lastUsedRow.value)).get();\n if (config) configId = config.id;\n }\n if (!configId) {\n const firstConfig = db.select().from(agentConfigs).get();\n if (!firstConfig) {\n throw new Error('No agent configs available');\n }\n configId = firstConfig.id;\n }\n } else {\n // Save as last used\n db.insert(appState)\n .values({ key: 'last_used_agent_config_id', value: configId })\n .onConflictDoUpdate({ target: appState.key, set: { value: configId } })\n .run();\n }\n\n // Use client-provided ID if available (for optimistic updates)\n const id = params.id ?? randomUUID();\n const now = new Date();\n db.insert(sessions).values({\n id,\n directory: params.directory,\n agentConfigId: configId,\n acpSessionId: null,\n model: null,\n mode: null,\n createdAt: now,\n }).run();\n\n return db.select().from(sessions).where(eq(sessions.id, id)).get()!;\n },\n\n async deleteSession(id: string): Promise<void> {\n await agentManager.stopForSession(id);\n clearEventsForSession(id);\n db.delete(sessions).where(eq(sessions.id, id)).run();\n },\n\n async getAgentConfigs(): Promise<AmuxAgentConfig[]> {\n return db.select().from(agentConfigs).all();\n },\n\n async startAgent(sessionId: string): Promise<AmuxAgentSession> {\n return agentManager.startForSession(sessionId);\n },\n\n async stopAgent(sessionId: string): Promise<void> {\n await agentManager.stopForSession(sessionId);\n },\n\n async prompt(sessionId: string, message: string): Promise<void> {\n await agentManager.prompt(sessionId, message);\n },\n\n async cancel(sessionId: string): Promise<void> {\n await agentManager.cancel(sessionId);\n },\n\n async setMode(sessionId: string, modeId: string): Promise<void> {\n await agentManager.setMode(sessionId, modeId);\n },\n\n async setModel(sessionId: string, modelId: string): Promise<void> {\n await agentManager.setModel(sessionId, modelId);\n },\n\n respondPermission(sessionId: string, requestId: string, optionId: string): void {\n agentManager.respondPermission(sessionId, requestId, optionId);\n },\n\n async switchAgent(sessionId: string, agentConfigId: string): Promise<void> {\n // Stop old agent\n await agentManager.stopForSession(sessionId);\n // Clear events\n clearEventsForSession(sessionId);\n // Update session\n db.update(sessions)\n .set({\n agentConfigId,\n acpSessionId: null,\n model: null,\n mode: null,\n })\n .where(eq(sessions.id, sessionId))\n .run();\n // Save as last used\n db.insert(appState)\n .values({ key: 'last_used_agent_config_id', value: agentConfigId })\n .onConflictDoUpdate({ target: appState.key, set: { value: agentConfigId } })\n .run();\n },\n\n subscribeToSession(sessionId: string, callback: (update: WindowUpdate) => void): () => void {\n const handler = (event: { sessionId: string; update: WindowUpdate }) => {\n if (event.sessionId === sessionId) {\n callback(event.update);\n }\n };\n agentManager.on('update', handler);\n return () => agentManager.off('update', handler);\n },\n\n async listFilesForAutocomplete(sessionId: string, partialPath: string, limit: number): Promise<FileEntry[]> {\n const session = db.select().from(sessions).where(eq(sessions.id, sessionId)).get();\n if (!session) throw new Error(`Session ${sessionId} not found`);\n return listFilesForAutocomplete(session.directory, partialPath, limit);\n },\n };\n}\n","import { initTRPC } from '@trpc/server';\n\nconst t = initTRPC.create();\n\nexport const router = t.router;\nexport const publicProcedure = t.procedure;\n","import { z } from 'zod';\nimport { randomUUID } from 'crypto';\nimport { eq } from 'drizzle-orm';\nimport { router, publicProcedure } from './trpc.js';\nimport { db } from '../db/index.js';\nimport { windows, panes, uiState } from '../db/schema.js';\nimport { createLeaf, type LayoutNode } from '../../client/lib/layout.js';\nimport type { AmuxBridge } from '../amuxBridge.js';\n\n// AmuxBridge is injected at server startup\nlet amux: AmuxBridge;\n\nexport function setAmuxBridge(bridge: AmuxBridge) {\n amux = bridge;\n}\n\nfunction generateTitle(existingCount: number, directory: string): string {\n // Use directory name as title, or generic \"Window N\"\n const dirName = directory.split('/').pop();\n if (dirName && dirName !== '~' && dirName !== '') {\n return dirName;\n }\n return `Window ${existingCount + 1}`;\n}\n\nexport const windowsRouter = router({\n /**\n * List all windows with their panes and sessions.\n */\n list: publicProcedure.query(async () => {\n const allWindows = db.select().from(windows).orderBy(windows.createdAt).all();\n const allPanes = db.select().from(panes).all();\n const activeRow = db.select().from(uiState).where(eq(uiState.key, 'active_window_id')).get();\n\n // Get all unique session IDs\n const sessionIds = [...new Set(allPanes.map(p => p.sessionId))];\n\n // Fetch sessions from amux\n const sessionsData = await amux.getSessions(sessionIds);\n const sessionMap = new Map(sessionsData.map(s => [s.id, s]));\n\n // Get agent configs from amux\n const agentConfigs = await amux.getAgentConfigs();\n\n return {\n windows: allWindows.map(w => ({\n ...w,\n panes: allPanes\n .filter(p => p.windowId === w.id)\n .map(p => ({\n ...p,\n session: sessionMap.get(p.sessionId) ?? null,\n })),\n })),\n activeWindowId: activeRow?.value ?? allWindows[allWindows.length - 1]?.id ?? null,\n agentConfigs,\n };\n }),\n\n /**\n * Get a single window by ID.\n */\n get: publicProcedure\n .input(z.object({ id: z.string() }))\n .query(async ({ input }) => {\n const window = db.select().from(windows).where(eq(windows.id, input.id)).get();\n if (!window) {\n throw new Error(`Window ${input.id} not found`);\n }\n const windowPanes = db.select().from(panes).where(eq(panes.windowId, input.id)).all();\n\n // Fetch sessions\n const sessionIds = windowPanes.map(p => p.sessionId);\n const sessionsData = await amux.getSessions(sessionIds);\n const sessionMap = new Map(sessionsData.map(s => [s.id, s]));\n\n return {\n ...window,\n panes: windowPanes.map(p => ({\n ...p,\n session: sessionMap.get(p.sessionId) ?? null,\n })),\n };\n }),\n\n /**\n * Create a new window with a single pane.\n */\n create: publicProcedure\n .input(z.object({\n id: z.string().optional(),\n title: z.string().optional(),\n directory: z.string().optional(),\n agentConfigId: z.string().optional(),\n }))\n .mutation(async ({ input }) => {\n const directory = input.directory ?? process.cwd();\n\n // 1. Create session in amux\n const session = await amux.createSession({\n directory,\n agentConfigId: input.agentConfigId,\n });\n\n // 2. Create window + pane in shella\n const windowId = input.id ?? randomUUID();\n const paneId = randomUUID();\n const existingCount = db.select().from(windows).all().length;\n const layout: LayoutNode = createLeaf(paneId);\n\n db.insert(windows).values({\n id: windowId,\n title: input.title || generateTitle(existingCount, directory),\n hasCustomTitle: !!input.title, // Only true if title is non-empty string\n layout,\n activePaneId: paneId,\n }).run();\n\n db.insert(panes).values({\n id: paneId,\n windowId,\n sessionId: session.id,\n }).run();\n\n // 3. Set as active window\n db.insert(uiState)\n .values({ key: 'active_window_id', value: windowId })\n .onConflictDoUpdate({ target: uiState.key, set: { value: windowId } })\n .run();\n\n // Fetch the full window with panes for the response\n const newWindow = db.select().from(windows).where(eq(windows.id, windowId)).get()!;\n const newPanes = db.select().from(panes).where(eq(panes.windowId, windowId)).all();\n\n return {\n ...newWindow,\n panes: newPanes.map(p => ({\n ...p,\n session: p.sessionId === session.id ? session : null,\n })),\n };\n }),\n\n /**\n * Update a window (title, etc).\n */\n update: publicProcedure\n .input(z.object({\n id: z.string(),\n title: z.string().optional(),\n }))\n .mutation(async ({ input }) => {\n const updates: Record<string, unknown> = {};\n if (input.title !== undefined) {\n updates.title = input.title;\n updates.hasCustomTitle = true;\n }\n updates.lastAccessedAt = new Date();\n\n db.update(windows)\n .set(updates)\n .where(eq(windows.id, input.id))\n .run();\n\n return db.select().from(windows).where(eq(windows.id, input.id)).get()!;\n }),\n\n /**\n * Delete a window and all its panes/sessions.\n */\n delete: publicProcedure\n .input(z.object({ id: z.string() }))\n .mutation(async ({ input }) => {\n // Get all panes for this window\n const windowPanes = db.select().from(panes).where(eq(panes.windowId, input.id)).all();\n\n // Delete sessions in amux\n for (const pane of windowPanes) {\n await amux.deleteSession(pane.sessionId);\n }\n\n // Delete window (cascades to panes)\n db.delete(windows).where(eq(windows.id, input.id)).run();\n\n // Update active window if needed\n const activeRow = db.select().from(uiState).where(eq(uiState.key, 'active_window_id')).get();\n if (activeRow?.value === input.id) {\n const remaining = db.select().from(windows).orderBy(windows.createdAt).all();\n const newActiveId = remaining[remaining.length - 1]?.id ?? null;\n if (newActiveId) {\n db.update(uiState)\n .set({ value: newActiveId })\n .where(eq(uiState.key, 'active_window_id'))\n .run();\n } else {\n db.delete(uiState).where(eq(uiState.key, 'active_window_id')).run();\n }\n }\n\n return { ok: true };\n }),\n\n /**\n * Set the active window.\n */\n setActive: publicProcedure\n .input(z.object({ id: z.string() }))\n .mutation(async ({ input }) => {\n db.insert(uiState)\n .values({ key: 'active_window_id', value: input.id })\n .onConflictDoUpdate({ target: uiState.key, set: { value: input.id } })\n .run();\n\n // Update last accessed\n db.update(windows)\n .set({ lastAccessedAt: new Date() })\n .where(eq(windows.id, input.id))\n .run();\n\n return { ok: true };\n }),\n});\n","/**\n * Layout types for tmux-like pane splitting.\n *\n * Layout is a binary tree where:\n * - Leaf nodes are panes (contain a paneId)\n * - Branch nodes split space horizontally or vertically\n */\n\nexport type SplitDirection = 'horizontal' | 'vertical';\n\nexport interface LayoutLeaf {\n type: 'leaf';\n paneId: string;\n}\n\nexport interface LayoutBranch {\n type: 'branch';\n direction: SplitDirection;\n /** Percentage of space for first child (0-100) */\n ratio: number;\n first: LayoutNode;\n second: LayoutNode;\n}\n\nexport type LayoutNode = LayoutLeaf | LayoutBranch;\n\n/**\n * Create a leaf node for a pane.\n */\nexport function createLeaf(paneId: string): LayoutLeaf {\n return { type: 'leaf', paneId };\n}\n\n/**\n * Create a branch node splitting two children.\n */\nexport function createBranch(\n direction: SplitDirection,\n first: LayoutNode,\n second: LayoutNode,\n ratio = 50\n): LayoutBranch {\n return { type: 'branch', direction, ratio, first, second };\n}\n\n/**\n * Find all pane IDs in a layout tree.\n */\nexport function getAllPaneIds(node: LayoutNode): string[] {\n if (node.type === 'leaf') {\n return [node.paneId];\n }\n return [...getAllPaneIds(node.first), ...getAllPaneIds(node.second)];\n}\n\n/**\n * Find a pane in the layout and return its path.\n * Returns null if not found.\n */\nexport function findPanePath(\n node: LayoutNode,\n paneId: string,\n path: ('first' | 'second')[] = []\n): ('first' | 'second')[] | null {\n if (node.type === 'leaf') {\n return node.paneId === paneId ? path : null;\n }\n const firstPath = findPanePath(node.first, paneId, [...path, 'first']);\n if (firstPath) return firstPath;\n return findPanePath(node.second, paneId, [...path, 'second']);\n}\n\n/**\n * Replace a pane in the layout with a new node.\n */\nexport function replacePaneWithNode(\n root: LayoutNode,\n paneId: string,\n newNode: LayoutNode\n): LayoutNode {\n if (root.type === 'leaf') {\n return root.paneId === paneId ? newNode : root;\n }\n return {\n ...root,\n first: replacePaneWithNode(root.first, paneId, newNode),\n second: replacePaneWithNode(root.second, paneId, newNode),\n };\n}\n\n/**\n * Split a pane, creating a new branch with the original and new pane.\n */\nexport function splitPane(\n root: LayoutNode,\n paneId: string,\n newPaneId: string,\n direction: SplitDirection\n): LayoutNode {\n const originalLeaf = createLeaf(paneId);\n const newLeaf = createLeaf(newPaneId);\n const branch = createBranch(direction, originalLeaf, newLeaf);\n return replacePaneWithNode(root, paneId, branch);\n}\n\n/**\n * Remove a pane from the layout.\n * Returns the modified layout, or null if removing the only pane.\n */\nexport function removePane(root: LayoutNode, paneId: string): LayoutNode | null {\n if (root.type === 'leaf') {\n return root.paneId === paneId ? null : root;\n }\n\n // Check if either child is the pane to remove\n if (root.first.type === 'leaf' && root.first.paneId === paneId) {\n return root.second;\n }\n if (root.second.type === 'leaf' && root.second.paneId === paneId) {\n return root.first;\n }\n\n // Recursively remove from children\n const newFirst = removePane(root.first, paneId);\n const newSecond = removePane(root.second, paneId);\n\n // If a child was removed entirely, return the other\n if (newFirst === null) return newSecond;\n if (newSecond === null) return newFirst;\n\n // If either child changed, return updated branch\n if (newFirst !== root.first || newSecond !== root.second) {\n return { ...root, first: newFirst, second: newSecond };\n }\n\n return root;\n}\n\n/**\n * Update the split ratio at a specific path.\n */\nexport function updateRatio(\n root: LayoutNode,\n path: ('first' | 'second')[],\n newRatio: number\n): LayoutNode {\n if (path.length === 0) {\n if (root.type === 'branch') {\n return { ...root, ratio: Math.max(10, Math.min(90, newRatio)) };\n }\n return root;\n }\n\n if (root.type === 'leaf') return root;\n\n const [next, ...rest] = path;\n if (next === 'first') {\n return { ...root, first: updateRatio(root.first, rest, newRatio) };\n } else {\n return { ...root, second: updateRatio(root.second, rest, newRatio) };\n }\n}\n\n/**\n * Get the sibling pane ID when navigating in a direction.\n * Returns null if there's no sibling in that direction.\n */\nexport function getAdjacentPane(\n root: LayoutNode,\n currentPaneId: string,\n direction: 'left' | 'right' | 'up' | 'down'\n): string | null {\n const path = findPanePath(root, currentPaneId);\n if (!path) return null;\n\n // Navigate up the tree to find a branch going the right direction\n let node = root;\n const pathNodes: { node: LayoutBranch; childSide: 'first' | 'second' }[] = [];\n\n for (const step of path) {\n if (node.type === 'branch') {\n pathNodes.push({ node, childSide: step });\n node = step === 'first' ? node.first : node.second;\n }\n }\n\n // Find the closest branch that allows movement in the desired direction\n for (let i = pathNodes.length - 1; i >= 0; i--) {\n const { node: branch, childSide } = pathNodes[i];\n const isHorizontal = branch.direction === 'horizontal';\n const isVertical = branch.direction === 'vertical';\n\n // Check if this branch allows movement in the desired direction\n const canMove =\n (direction === 'left' && isHorizontal && childSide === 'second') ||\n (direction === 'right' && isHorizontal && childSide === 'first') ||\n (direction === 'up' && isVertical && childSide === 'second') ||\n (direction === 'down' && isVertical && childSide === 'first');\n\n if (canMove) {\n // Get the other child and find the closest pane in it\n const otherChild = childSide === 'first' ? branch.second : branch.first;\n return getFirstPaneInDirection(otherChild, direction);\n }\n }\n\n return null;\n}\n\n/**\n * Get the first pane when entering a subtree from a direction.\n */\nfunction getFirstPaneInDirection(\n node: LayoutNode,\n fromDirection: 'left' | 'right' | 'up' | 'down'\n): string {\n if (node.type === 'leaf') {\n return node.paneId;\n }\n\n // When entering from left, prefer the leftmost pane (first in horizontal split)\n // When entering from right, prefer the rightmost pane (second in horizontal split)\n // Similar for up/down with vertical splits\n const isHorizontal = node.direction === 'horizontal';\n\n if (fromDirection === 'left' || fromDirection === 'up') {\n // Coming from left/up, go to the first (left/top) child\n const targetChild = isHorizontal\n ? (fromDirection === 'left' ? node.first : node.first)\n : (fromDirection === 'up' ? node.first : node.first);\n return getFirstPaneInDirection(targetChild, fromDirection);\n } else {\n // Coming from right/down, go to the second (right/bottom) child\n const targetChild = isHorizontal\n ? (fromDirection === 'right' ? node.second : node.second)\n : (fromDirection === 'down' ? node.second : node.second);\n return getFirstPaneInDirection(targetChild, fromDirection);\n }\n}\n","import { z } from 'zod';\nimport { randomUUID } from 'crypto';\nimport { eq } from 'drizzle-orm';\nimport { router, publicProcedure } from './trpc.js';\nimport { db } from '../db/index.js';\nimport { windows, panes } from '../db/schema.js';\nimport {\n splitPane,\n removePane,\n getAllPaneIds,\n getAdjacentPane,\n updateRatio,\n type LayoutNode,\n type SplitDirection,\n} from '../../client/lib/layout.js';\nimport type { AmuxBridge } from '../amuxBridge.js';\n\nlet amux: AmuxBridge;\n\nexport function setAmuxBridge(bridge: AmuxBridge) {\n amux = bridge;\n}\n\nexport const layoutRouter = router({\n /**\n * Split a pane horizontally or vertically.\n * Creates a new session in amux and a new pane in shella.\n */\n split: publicProcedure\n .input(z.object({\n windowId: z.string(),\n paneId: z.string(),\n direction: z.enum(['horizontal', 'vertical']),\n // Client can provide IDs for optimistic updates\n newPaneId: z.string().optional(),\n newSessionId: z.string().optional(),\n }))\n .mutation(async ({ input }) => {\n // 1. Get source pane and its session\n const sourcePane = db.select().from(panes).where(eq(panes.id, input.paneId)).get();\n if (!sourcePane) {\n throw new Error(`Pane ${input.paneId} not found`);\n }\n\n const sourceSession = await amux.getSession(sourcePane.sessionId);\n if (!sourceSession) {\n throw new Error(`Session ${sourcePane.sessionId} not found`);\n }\n\n // 2. Create new session in amux (inherits directory and agent config)\n // Use client-provided ID if available for optimistic updates\n const newSession = await amux.createSession({\n id: input.newSessionId,\n directory: sourceSession.directory,\n agentConfigId: sourceSession.agentConfigId,\n });\n\n // 3. Create new pane (use client-provided ID if available)\n const newPaneId = input.newPaneId ?? randomUUID();\n db.insert(panes).values({\n id: newPaneId,\n windowId: input.windowId,\n sessionId: newSession.id,\n }).run();\n\n // 4. Update window layout\n const window = db.select().from(windows).where(eq(windows.id, input.windowId)).get();\n if (!window) {\n throw new Error(`Window ${input.windowId} not found`);\n }\n\n const currentLayout = window.layout as LayoutNode;\n const newLayout = splitPane(currentLayout, input.paneId, newPaneId, input.direction as SplitDirection);\n\n db.update(windows)\n .set({\n layout: newLayout,\n activePaneId: newPaneId,\n lastAccessedAt: new Date(),\n })\n .where(eq(windows.id, input.windowId))\n .run();\n\n // 5. Start agent for new pane\n await amux.startAgent(newSession.id);\n\n const now = new Date();\n return {\n newPaneId,\n newSessionId: newSession.id,\n layout: newLayout,\n // Match exact shape from windows.list: { ...pane, session }\n newPane: {\n id: newPaneId,\n windowId: input.windowId,\n sessionId: newSession.id,\n createdAt: now.toISOString(),\n session: {\n id: newSession.id,\n directory: newSession.directory,\n agentConfigId: newSession.agentConfigId,\n model: newSession.model,\n mode: newSession.mode,\n createdAt: newSession.createdAt.toISOString(),\n acpSessionId: newSession.acpSessionId,\n },\n },\n };\n }),\n\n /**\n * Close a pane. If it's the last pane, close the window.\n */\n closePane: publicProcedure\n .input(z.object({\n windowId: z.string(),\n paneId: z.string(),\n }))\n .mutation(async ({ input }) => {\n const window = db.select().from(windows).where(eq(windows.id, input.windowId)).get();\n if (!window) {\n throw new Error(`Window ${input.windowId} not found`);\n }\n\n const pane = db.select().from(panes).where(eq(panes.id, input.paneId)).get();\n if (!pane) {\n throw new Error(`Pane ${input.paneId} not found`);\n }\n\n const currentLayout = window.layout as LayoutNode;\n const allPaneIds = getAllPaneIds(currentLayout);\n\n // Check if this is the last pane\n if (allPaneIds.length === 1) {\n // Delete session in amux\n await amux.deleteSession(pane.sessionId);\n // Delete window (cascades to pane)\n db.delete(windows).where(eq(windows.id, input.windowId)).run();\n return { windowClosed: true, layout: null, activePaneId: null };\n }\n\n // Delete session in amux\n await amux.deleteSession(pane.sessionId);\n // Delete pane\n db.delete(panes).where(eq(panes.id, input.paneId)).run();\n\n // Update layout\n const newLayout = removePane(currentLayout, input.paneId);\n if (!newLayout) {\n throw new Error('Failed to remove pane from layout');\n }\n\n // Determine new active pane\n const newActivePaneId = window.activePaneId === input.paneId\n ? getAllPaneIds(newLayout)[0]\n : window.activePaneId;\n\n db.update(windows)\n .set({\n layout: newLayout,\n activePaneId: newActivePaneId,\n lastAccessedAt: new Date(),\n })\n .where(eq(windows.id, input.windowId))\n .run();\n\n return {\n windowClosed: false,\n layout: newLayout,\n activePaneId: newActivePaneId,\n };\n }),\n\n /**\n * Set the active pane within a window.\n */\n setActivePane: publicProcedure\n .input(z.object({\n windowId: z.string(),\n paneId: z.string(),\n }))\n .mutation(async ({ input }) => {\n db.update(windows)\n .set({\n activePaneId: input.paneId,\n lastAccessedAt: new Date(),\n })\n .where(eq(windows.id, input.windowId))\n .run();\n\n return { ok: true };\n }),\n\n /**\n * Navigate to an adjacent pane.\n */\n navigate: publicProcedure\n .input(z.object({\n windowId: z.string(),\n currentPaneId: z.string(),\n direction: z.enum(['left', 'right', 'up', 'down']),\n }))\n .mutation(async ({ input }) => {\n const window = db.select().from(windows).where(eq(windows.id, input.windowId)).get();\n if (!window) {\n throw new Error(`Window ${input.windowId} not found`);\n }\n\n const currentLayout = window.layout as LayoutNode;\n const adjacentPaneId = getAdjacentPane(currentLayout, input.currentPaneId, input.direction);\n\n if (adjacentPaneId) {\n db.update(windows)\n .set({\n activePaneId: adjacentPaneId,\n lastAccessedAt: new Date(),\n })\n .where(eq(windows.id, input.windowId))\n .run();\n\n return { newActivePaneId: adjacentPaneId };\n }\n\n return { newActivePaneId: null };\n }),\n\n /**\n * Update the split ratio at a specific position.\n */\n setRatio: publicProcedure\n .input(z.object({\n windowId: z.string(),\n path: z.array(z.enum(['first', 'second'])),\n ratio: z.number().min(10).max(90),\n }))\n .mutation(async ({ input }) => {\n const window = db.select().from(windows).where(eq(windows.id, input.windowId)).get();\n if (!window) {\n throw new Error(`Window ${input.windowId} not found`);\n }\n\n const currentLayout = window.layout as LayoutNode;\n const newLayout = updateRatio(currentLayout, input.path, input.ratio);\n\n db.update(windows)\n .set({ layout: newLayout })\n .where(eq(windows.id, input.windowId))\n .run();\n\n return { layout: newLayout };\n }),\n});\n","import { z } from 'zod';\nimport { eq } from 'drizzle-orm';\nimport { observable } from '@trpc/server/observable';\nimport { router, publicProcedure } from './trpc.js';\nimport { db } from '../db/index.js';\nimport { panes } from '../db/schema.js';\nimport type { WindowUpdate } from '@bytespell/amux/types';\nimport type { AmuxBridge } from '../amuxBridge.js';\n\nlet amux: AmuxBridge;\n\nexport function setAmuxBridge(bridge: AmuxBridge) {\n amux = bridge;\n}\n\nconst paneInput = z.object({\n paneId: z.string(),\n});\n\n// Helper to get sessionId from paneId\nfunction getSessionIdForPane(paneId: string): string {\n const pane = db.select().from(panes).where(eq(panes.id, paneId)).get();\n if (!pane) {\n throw new Error(`Pane ${paneId} not found`);\n }\n return pane.sessionId;\n}\n\nexport const agentsRouter = router({\n /**\n * Start agent for a pane.\n */\n start: publicProcedure\n .input(paneInput)\n .mutation(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n return amux.startAgent(sessionId);\n }),\n\n /**\n * Stop agent for a pane.\n */\n stop: publicProcedure\n .input(paneInput)\n .mutation(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n await amux.stopAgent(sessionId);\n return { ok: true };\n }),\n\n /**\n * Send a prompt to a pane's agent.\n */\n prompt: publicProcedure\n .input(z.object({\n paneId: z.string(),\n message: z.string(),\n }))\n .mutation(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n await amux.prompt(sessionId, input.message);\n return { ok: true };\n }),\n\n /**\n * Cancel the current prompt.\n */\n cancel: publicProcedure\n .input(paneInput)\n .mutation(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n await amux.cancel(sessionId);\n return { ok: true };\n }),\n\n /**\n * Set agent mode.\n */\n setMode: publicProcedure\n .input(z.object({\n paneId: z.string(),\n modeId: z.string(),\n }))\n .mutation(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n await amux.setMode(sessionId, input.modeId);\n return { ok: true };\n }),\n\n /**\n * Set agent model.\n */\n setModel: publicProcedure\n .input(z.object({\n paneId: z.string(),\n modelId: z.string(),\n }))\n .mutation(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n await amux.setModel(sessionId, input.modelId);\n return { ok: true };\n }),\n\n /**\n * Respond to a permission request.\n */\n respondPermission: publicProcedure\n .input(z.object({\n paneId: z.string(),\n requestId: z.string(),\n optionId: z.string(),\n }))\n .mutation(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n amux.respondPermission(sessionId, input.requestId, input.optionId);\n return { ok: true };\n }),\n\n /**\n * Switch to a different agent.\n */\n switchAgent: publicProcedure\n .input(z.object({\n paneId: z.string(),\n agentConfigId: z.string(),\n }))\n .mutation(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n await amux.switchAgent(sessionId, input.agentConfigId);\n return { ok: true };\n }),\n\n /**\n * Subscribe to updates for a pane's agent session.\n */\n subscribe: publicProcedure\n .input(paneInput)\n .subscription(({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n return observable<WindowUpdate>((emit) => {\n return amux.subscribeToSession(sessionId, (update) => {\n emit.next(update);\n });\n });\n }),\n});\n","import { z } from 'zod';\nimport { eq } from 'drizzle-orm';\nimport { router, publicProcedure } from './trpc.js';\nimport { db } from '../db/index.js';\nimport { panes } from '../db/schema.js';\nimport type { AmuxBridge } from '../amuxBridge.js';\n\nlet amux: AmuxBridge;\n\nexport function setAmuxBridge(bridge: AmuxBridge) {\n amux = bridge;\n}\n\n// Helper to get sessionId from paneId\nfunction getSessionIdForPane(paneId: string): string {\n const pane = db.select().from(panes).where(eq(panes.id, paneId)).get();\n if (!pane) {\n throw new Error(`Pane ${paneId} not found`);\n }\n return pane.sessionId;\n}\n\nexport const filesRouter = router({\n /**\n * List files/directories matching a partial path for autocomplete.\n * Returns files in the session's working directory.\n */\n listForAutocomplete: publicProcedure\n .input(z.object({\n paneId: z.string(),\n partialPath: z.string(),\n limit: z.number().default(20),\n }))\n .query(async ({ input }) => {\n const sessionId = getSessionIdForPane(input.paneId);\n return amux.listFilesForAutocomplete(sessionId, input.partialPath, input.limit);\n }),\n});\n","import { router } from './trpc.js';\nimport { windowsRouter, setAmuxBridge as setWindowsAmux } from './windows.js';\nimport { layoutRouter, setAmuxBridge as setLayoutAmux } from './layout.js';\nimport { agentsRouter, setAmuxBridge as setAgentsAmux } from './agents.js';\nimport { filesRouter, setAmuxBridge as setFilesAmux } from './files.js';\nimport type { AmuxBridge } from '../amuxBridge.js';\n\n/**\n * Initialize all routers with the amux bridge.\n * Must be called before any routes are used.\n */\nexport function initializeRouters(amux: AmuxBridge) {\n setWindowsAmux(amux);\n setLayoutAmux(amux);\n setAgentsAmux(amux);\n setFilesAmux(amux);\n}\n\n/**\n * Shella's tRPC router.\n *\n * Provides UI-layer endpoints:\n * - windows: Window CRUD (with panes)\n * - layout: Split, close, navigate panes\n * - agents: Proxy to amux for agent operations\n */\nexport const shellaRouter = router({\n windows: windowsRouter,\n layout: layoutRouter,\n agents: agentsRouter,\n files: filesRouter,\n});\n\nexport type ShellaRouter = typeof shellaRouter;\n"],"mappings":"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","names":["path","agentManager","db","randomUUID","eq","path","eq","p","agentConfigs","randomUUID","z","randomUUID","eq","amux","setAmuxBridge","z","eq","randomUUID","z","eq","amux","setAmuxBridge","z","eq","z","eq","amux","setAmuxBridge","getSessionIdForPane","eq","z","amux","setAmuxBridge","path","agentManager","text","log"]}
|