@vibelet/cli 1.2.181 → 1.2.182
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/index.cjs +1 -1
- package/dist/inventory-scan-worker.cjs +1 -1
- package/dist/runtime-version.cjs +1 -1
- package/dist/web/assets/App-20rnW-dS.js +11 -0
- package/dist/web/assets/ArchiveSyncPanel-CQW9sGn8.js +1 -0
- package/dist/web/assets/ConnectionSettingsPanel-CvgjycC_.js +1 -0
- package/dist/web/assets/DaemonSettingsPanel-8WGOLUs-.js +1 -0
- package/dist/web/assets/DiffDrawer-8wyT-3Bj.js +2 -0
- package/dist/web/assets/FilesControlPanel-CM73JghJ.js +2 -0
- package/dist/web/assets/LanguageSettingsPanel-3P8xvsNr.js +1 -0
- package/dist/web/assets/NotificationSettingsPanel--Ov_1saA.js +1 -0
- package/dist/web/assets/SavedTargetsPanel-B4UDMnAq.js +1 -0
- package/dist/web/assets/file-text-B-0kY5qg.js +1 -0
- package/dist/web/assets/{highlighted-body-TPN3WLV5-BZSSUaE0.js → highlighted-body-TPN3WLV5-BgMEhjMq.js} +1 -1
- package/dist/web/assets/index-DRV2XMZs.js +15 -0
- package/dist/web/assets/index-nF-4Ar2D.css +1 -0
- package/dist/web/assets/mermaid-O7DHMXV3-COP4-7nw.js +124 -0
- package/dist/web/assets/mermaid-O7DHMXV3-DaZ-aNWp.css +1 -0
- package/dist/web/icon.svg +1 -1
- package/dist/web/index.html +4 -3
- package/dist/web/manifest.webmanifest +1 -1
- package/dist/web/sw.js +73 -4
- package/package.json +1 -1
- package/dist/web/assets/abap-BdImnpbu.js +0 -1
- package/dist/web/assets/actionscript-3-CoDkCxhg.js +0 -1
- package/dist/web/assets/ada-bCR0ucgS.js +0 -1
- package/dist/web/assets/andromeeda-C4gqWexZ.js +0 -1
- package/dist/web/assets/angular-html-CU67Zn6k.js +0 -1
- package/dist/web/assets/angular-ts-BwZT4LLn.js +0 -1
- package/dist/web/assets/apache-Pmp26Uib.js +0 -1
- package/dist/web/assets/apex-D8_7TLub.js +0 -1
- package/dist/web/assets/apl-dKokRX4l.js +0 -1
- package/dist/web/assets/applescript-Co6uUVPk.js +0 -1
- package/dist/web/assets/ara-BRHolxvo.js +0 -1
- package/dist/web/assets/asciidoc-Ve4PFQV2.js +0 -1
- package/dist/web/assets/asm-D_Q5rh1f.js +0 -1
- package/dist/web/assets/astro-CbQHKStN.js +0 -1
- package/dist/web/assets/aurora-x-D-2ljcwZ.js +0 -1
- package/dist/web/assets/awk-DMzUqQB5.js +0 -1
- package/dist/web/assets/ayu-dark-DYE7WIF3.js +0 -1
- package/dist/web/assets/ayu-light-BA47KaF1.js +0 -1
- package/dist/web/assets/ayu-mirage-32ctXXKs.js +0 -1
- package/dist/web/assets/ballerina-BFfxhgS-.js +0 -1
- package/dist/web/assets/bat-BkioyH1T.js +0 -1
- package/dist/web/assets/beancount-k_qm7-4y.js +0 -1
- package/dist/web/assets/berry-uYugtg8r.js +0 -1
- package/dist/web/assets/bibtex-CHM0blh-.js +0 -1
- package/dist/web/assets/bicep-Bmn6On1c.js +0 -1
- package/dist/web/assets/bird2-DPOp833l.js +0 -1
- package/dist/web/assets/blade-D4QpJJKB.js +0 -1
- package/dist/web/assets/bsl-BO_Y6i37.js +0 -1
- package/dist/web/assets/c-BIGW1oBm.js +0 -1
- package/dist/web/assets/c3-eo99z4R2.js +0 -1
- package/dist/web/assets/cadence-Bv_4Rxtq.js +0 -1
- package/dist/web/assets/cairo-KRGpt6FW.js +0 -1
- package/dist/web/assets/catppuccin-frappe-DFWUc33u.js +0 -1
- package/dist/web/assets/catppuccin-latte-C9dUb6Cb.js +0 -1
- package/dist/web/assets/catppuccin-macchiato-DQyhUUbL.js +0 -1
- package/dist/web/assets/catppuccin-mocha-D87Tk5Gz.js +0 -1
- package/dist/web/assets/clarity-D53aC0YG.js +0 -1
- package/dist/web/assets/clojure-P80f7IUj.js +0 -1
- package/dist/web/assets/cmake-D1j8_8rp.js +0 -1
- package/dist/web/assets/cobol-nwyudZeR.js +0 -1
- package/dist/web/assets/codeowners-Bp6g37R7.js +0 -1
- package/dist/web/assets/codeql-DsOJ9woJ.js +0 -1
- package/dist/web/assets/coffee-Ch7k5sss.js +0 -1
- package/dist/web/assets/common-lisp-Cg-RD9OK.js +0 -1
- package/dist/web/assets/coq-DkFqJrB1.js +0 -1
- package/dist/web/assets/cpp-CofmeUqb.js +0 -1
- package/dist/web/assets/crystal-tKQVLTB8.js +0 -1
- package/dist/web/assets/csharp-COcwbKMJ.js +0 -1
- package/dist/web/assets/css-DPfMkruS.js +0 -1
- package/dist/web/assets/csv-fuZLfV_i.js +0 -1
- package/dist/web/assets/cue-D82EKSYY.js +0 -1
- package/dist/web/assets/cypher-COkxafJQ.js +0 -1
- package/dist/web/assets/d-85-TOEBH.js +0 -1
- package/dist/web/assets/dark-plus-C3mMm8J8.js +0 -1
- package/dist/web/assets/dart-CF10PKvl.js +0 -1
- package/dist/web/assets/dax-CEL-wOlO.js +0 -1
- package/dist/web/assets/desktop-BmXAJ9_W.js +0 -1
- package/dist/web/assets/diff-D97Zzqfu.js +0 -1
- package/dist/web/assets/docker-BcOcwvcX.js +0 -1
- package/dist/web/assets/dotenv-Da5cRb03.js +0 -1
- package/dist/web/assets/dracula-BzJJZx-M.js +0 -1
- package/dist/web/assets/dracula-soft-BXkSAIEj.js +0 -1
- package/dist/web/assets/dream-maker-BtqSS_iP.js +0 -1
- package/dist/web/assets/edge-BkV0erSs.js +0 -1
- package/dist/web/assets/elixir-CDX3lj18.js +0 -1
- package/dist/web/assets/elm-DbKCFpqz.js +0 -1
- package/dist/web/assets/emacs-lisp-C9XAeP06.js +0 -1
- package/dist/web/assets/erb-B12qg9BL.js +0 -1
- package/dist/web/assets/erlang-DsQrWhSR.js +0 -1
- package/dist/web/assets/everforest-dark-BgDCqdQA.js +0 -1
- package/dist/web/assets/everforest-light-C8M2exoo.js +0 -1
- package/dist/web/assets/fennel-BYunw83y.js +0 -1
- package/dist/web/assets/fish-BvzEVeQv.js +0 -1
- package/dist/web/assets/fluent-C4IJs8-o.js +0 -1
- package/dist/web/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
- package/dist/web/assets/fortran-free-form-BxgE0vQu.js +0 -1
- package/dist/web/assets/fsharp-CXgrBDvD.js +0 -1
- package/dist/web/assets/gdresource-BOOCDP_w.js +0 -1
- package/dist/web/assets/gdscript-C5YyOfLZ.js +0 -1
- package/dist/web/assets/gdshader-DkwncUOv.js +0 -1
- package/dist/web/assets/genie-D0YGMca9.js +0 -1
- package/dist/web/assets/gherkin-DyxjwDmM.js +0 -1
- package/dist/web/assets/git-commit-F4YmCXRG.js +0 -1
- package/dist/web/assets/git-rebase-r7XF79zn.js +0 -1
- package/dist/web/assets/github-dark-DHJKELXO.js +0 -1
- package/dist/web/assets/github-dark-default-Cuk6v7N8.js +0 -1
- package/dist/web/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
- package/dist/web/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
- package/dist/web/assets/github-light-DAi9KRSo.js +0 -1
- package/dist/web/assets/github-light-default-D7oLnXFd.js +0 -1
- package/dist/web/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
- package/dist/web/assets/gleam-BspZqrRM.js +0 -1
- package/dist/web/assets/glimmer-js-Rg0-pVw9.js +0 -1
- package/dist/web/assets/glimmer-ts-U6CK756n.js +0 -1
- package/dist/web/assets/glsl-DplSGwfg.js +0 -1
- package/dist/web/assets/gn-n2N0HUVH.js +0 -1
- package/dist/web/assets/gnuplot-DdkO51Og.js +0 -1
- package/dist/web/assets/go-CxLEBnE3.js +0 -1
- package/dist/web/assets/graphql-ChdNCCLP.js +0 -1
- package/dist/web/assets/groovy-gcz8RCvz.js +0 -1
- package/dist/web/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
- package/dist/web/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
- package/dist/web/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
- package/dist/web/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
- package/dist/web/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
- package/dist/web/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
- package/dist/web/assets/hack-CaT9iCJl.js +0 -1
- package/dist/web/assets/haml-B8DHNrY2.js +0 -1
- package/dist/web/assets/handlebars-BL8al0AC.js +0 -1
- package/dist/web/assets/haskell-Df6bDoY_.js +0 -1
- package/dist/web/assets/haxe-CzTSHFRz.js +0 -1
- package/dist/web/assets/hcl-BWvSN4gD.js +0 -1
- package/dist/web/assets/hjson-D5-asLiD.js +0 -1
- package/dist/web/assets/hlsl-D3lLCCz7.js +0 -1
- package/dist/web/assets/horizon-BUw7H-hv.js +0 -1
- package/dist/web/assets/horizon-bright-Cn-bp-IR.js +0 -1
- package/dist/web/assets/houston-DnULxvSX.js +0 -1
- package/dist/web/assets/html-GMplVEZG.js +0 -1
- package/dist/web/assets/html-derivative-BFtXZ54Q.js +0 -1
- package/dist/web/assets/http-jrhK8wxY.js +0 -1
- package/dist/web/assets/hurl-irOxFIW8.js +0 -1
- package/dist/web/assets/hxml-Bvhsp5Yf.js +0 -1
- package/dist/web/assets/hy-DFXneXwc.js +0 -1
- package/dist/web/assets/imba-DGztddWO.js +0 -1
- package/dist/web/assets/index-B1hOfdbo.css +0 -1
- package/dist/web/assets/index-BsjmWDxJ.js +0 -22
- package/dist/web/assets/ini-BEwlwnbL.js +0 -1
- package/dist/web/assets/java-CylS5w8V.js +0 -1
- package/dist/web/assets/javascript-wDzz0qaB.js +0 -1
- package/dist/web/assets/jinja-4LBKfQ-Z.js +0 -1
- package/dist/web/assets/jison-wvAkD_A8.js +0 -1
- package/dist/web/assets/json-Cp-IABpG.js +0 -1
- package/dist/web/assets/json5-C9tS-k6U.js +0 -1
- package/dist/web/assets/jsonc-Des-eS-w.js +0 -1
- package/dist/web/assets/jsonl-DcaNXYhu.js +0 -1
- package/dist/web/assets/jsonnet-DFQXde-d.js +0 -1
- package/dist/web/assets/jssm-C2t-YnRu.js +0 -1
- package/dist/web/assets/jsx-g9-lgVsj.js +0 -1
- package/dist/web/assets/julia-CxzCAyBv.js +0 -1
- package/dist/web/assets/just-Cw27pwNe.js +0 -1
- package/dist/web/assets/kanagawa-dragon-CkXjmgJE.js +0 -1
- package/dist/web/assets/kanagawa-lotus-CfQXZHmo.js +0 -1
- package/dist/web/assets/kanagawa-wave-DWedfzmr.js +0 -1
- package/dist/web/assets/kdl-DV7GczEv.js +0 -1
- package/dist/web/assets/kotlin-BdnUsdx6.js +0 -1
- package/dist/web/assets/kusto-DZf3V79B.js +0 -1
- package/dist/web/assets/laserwave-DUszq2jm.js +0 -1
- package/dist/web/assets/latex-CWtU0Tv5.js +0 -1
- package/dist/web/assets/lean-BZvkOJ9d.js +0 -1
- package/dist/web/assets/less-B1dDrJ26.js +0 -1
- package/dist/web/assets/light-plus-B7mTdjB0.js +0 -1
- package/dist/web/assets/liquid-DYVedYrR.js +0 -1
- package/dist/web/assets/llvm-DjAJT7YJ.js +0 -1
- package/dist/web/assets/log-2UxHyX5q.js +0 -1
- package/dist/web/assets/logo-BtOb2qkB.js +0 -1
- package/dist/web/assets/lua-BaeVxFsk.js +0 -1
- package/dist/web/assets/luau-C-HG3fhB.js +0 -1
- package/dist/web/assets/make-CHLpvVh8.js +0 -1
- package/dist/web/assets/markdown-Cvjx9yec.js +0 -1
- package/dist/web/assets/marko-CnJfTvn9.js +0 -1
- package/dist/web/assets/material-theme-D5KoaKCx.js +0 -1
- package/dist/web/assets/material-theme-darker-BfHTSMKl.js +0 -1
- package/dist/web/assets/material-theme-lighter-B0m2ddpp.js +0 -1
- package/dist/web/assets/material-theme-ocean-CyktbL80.js +0 -1
- package/dist/web/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
- package/dist/web/assets/matlab-D7o27uSR.js +0 -1
- package/dist/web/assets/mdc-BMNejdWA.js +0 -1
- package/dist/web/assets/mdx-Cmh6b_Ma.js +0 -1
- package/dist/web/assets/mermaid-O7DHMXV3-CmRYLWnX.js +0 -275
- package/dist/web/assets/mermaid-O7DHMXV3-CxQgajYu.css +0 -1
- package/dist/web/assets/mermaid-mWjccvbQ.js +0 -1
- package/dist/web/assets/min-dark-CafNBF8u.js +0 -1
- package/dist/web/assets/min-light-CTRr51gU.js +0 -1
- package/dist/web/assets/mipsasm-CKIfxQSi.js +0 -1
- package/dist/web/assets/mojo-rZm6bMo-.js +0 -1
- package/dist/web/assets/monokai-D4h5O-jR.js +0 -1
- package/dist/web/assets/moonbit-_H4v1dQx.js +0 -1
- package/dist/web/assets/move-IF9eRakj.js +0 -1
- package/dist/web/assets/narrat-DRg8JJMk.js +0 -1
- package/dist/web/assets/nextflow-Zz6hmt5N.js +0 -1
- package/dist/web/assets/nextflow-groovy-BeH2EWoN.js +0 -1
- package/dist/web/assets/nginx-BpAMiNFr.js +0 -1
- package/dist/web/assets/night-owl-C39BiMTA.js +0 -1
- package/dist/web/assets/night-owl-light-CMTm3GFP.js +0 -1
- package/dist/web/assets/nim-CVrawwO9.js +0 -1
- package/dist/web/assets/nix-CwoSXNpI.js +0 -1
- package/dist/web/assets/nord-Ddv68eIx.js +0 -1
- package/dist/web/assets/nushell-Cz2AlsmD.js +0 -1
- package/dist/web/assets/objective-c-DXmwc3jG.js +0 -1
- package/dist/web/assets/objective-cpp-CLxacb5B.js +0 -1
- package/dist/web/assets/ocaml-C0hk2d4L.js +0 -1
- package/dist/web/assets/odin-BBf5iR-q.js +0 -1
- package/dist/web/assets/one-dark-pro-DVMEJ2y_.js +0 -1
- package/dist/web/assets/one-light-C3Wv6jpd.js +0 -1
- package/dist/web/assets/openscad-C4EeE6gA.js +0 -1
- package/dist/web/assets/pascal-D93ZcfNL.js +0 -1
- package/dist/web/assets/perl-C0TMdlhV.js +0 -1
- package/dist/web/assets/php-Dhbhpdrm.js +0 -1
- package/dist/web/assets/pkl-u5AG7uiY.js +0 -1
- package/dist/web/assets/plastic-3e1v2bzS.js +0 -1
- package/dist/web/assets/plsql-ChMvpjG-.js +0 -1
- package/dist/web/assets/po-BTJTHyun.js +0 -1
- package/dist/web/assets/poimandres-CS3Unz2-.js +0 -1
- package/dist/web/assets/polar-C0HS_06l.js +0 -1
- package/dist/web/assets/postcss-CXtECtnM.js +0 -1
- package/dist/web/assets/powerquery-CEu0bR-o.js +0 -1
- package/dist/web/assets/powershell-Dpen1YoG.js +0 -1
- package/dist/web/assets/prisma-Dd19v3D-.js +0 -1
- package/dist/web/assets/prolog-CbFg5uaA.js +0 -1
- package/dist/web/assets/proto-C7zT0LnQ.js +0 -1
- package/dist/web/assets/pug-CGlum2m_.js +0 -1
- package/dist/web/assets/puppet-BMWR74SV.js +0 -1
- package/dist/web/assets/purescript-CklMAg4u.js +0 -1
- package/dist/web/assets/python-B6aJPvgy.js +0 -1
- package/dist/web/assets/qml-3beO22l8.js +0 -1
- package/dist/web/assets/qmldir-C8lEn-DE.js +0 -1
- package/dist/web/assets/qss-IeuSbFQv.js +0 -1
- package/dist/web/assets/r-Dspwwk_N.js +0 -1
- package/dist/web/assets/racket-BqYA7rlc.js +0 -1
- package/dist/web/assets/raku-DXvB9xmW.js +0 -1
- package/dist/web/assets/razor-Uh8Bk_45.js +0 -1
- package/dist/web/assets/red-bN70gL4F.js +0 -1
- package/dist/web/assets/reg-C-SQnVFl.js +0 -1
- package/dist/web/assets/regexp-CDVJQ6XC.js +0 -1
- package/dist/web/assets/rel-C3B-1QV4.js +0 -1
- package/dist/web/assets/riscv-BM1_JUlF.js +0 -1
- package/dist/web/assets/ron-D8l8udqQ.js +0 -1
- package/dist/web/assets/rose-pine-dawn-DHQR4-dF.js +0 -1
- package/dist/web/assets/rose-pine-moon-D4_iv3hh.js +0 -1
- package/dist/web/assets/rose-pine-qdsjHGoJ.js +0 -1
- package/dist/web/assets/rosmsg-BJDFO7_C.js +0 -1
- package/dist/web/assets/rst-BrH8l1NY.js +0 -1
- package/dist/web/assets/ruby-Dw2BHqvy.js +0 -1
- package/dist/web/assets/rust-B1yitclQ.js +0 -1
- package/dist/web/assets/sas-cz2c8ADy.js +0 -1
- package/dist/web/assets/sass-Cj5Yp3dK.js +0 -1
- package/dist/web/assets/scala-C151Ov-r.js +0 -1
- package/dist/web/assets/scheme-C98Dy4si.js +0 -1
- package/dist/web/assets/scss-OYdSNvt2.js +0 -1
- package/dist/web/assets/sdbl-DVxCFoDh.js +0 -1
- package/dist/web/assets/shaderlab-Dg9Lc6iA.js +0 -1
- package/dist/web/assets/shellscript-Yzrsuije.js +0 -1
- package/dist/web/assets/shellsession-BADoaaVG.js +0 -1
- package/dist/web/assets/slack-dark-BthQWCQV.js +0 -1
- package/dist/web/assets/slack-ochin-DqwNpetd.js +0 -1
- package/dist/web/assets/smalltalk-BERRCDM3.js +0 -1
- package/dist/web/assets/snazzy-light-Bw305WKR.js +0 -1
- package/dist/web/assets/solarized-dark-DXbdFlpD.js +0 -1
- package/dist/web/assets/solarized-light-L9t79GZl.js +0 -1
- package/dist/web/assets/solidity-rGO070M0.js +0 -1
- package/dist/web/assets/soy-Brmx7dQM.js +0 -1
- package/dist/web/assets/sparql-rVzFXLq3.js +0 -1
- package/dist/web/assets/splunk-BtCnVYZw.js +0 -1
- package/dist/web/assets/sql-BLtJtn59.js +0 -1
- package/dist/web/assets/ssh-config-_ykCGR6B.js +0 -1
- package/dist/web/assets/stata-BH5u7GGu.js +0 -1
- package/dist/web/assets/stylus-BEDo0Tqx.js +0 -1
- package/dist/web/assets/surrealql-Bq5Q-fJD.js +0 -1
- package/dist/web/assets/svelte-C_ipcX3V.js +0 -1
- package/dist/web/assets/swift-D82vCrfD.js +0 -1
- package/dist/web/assets/synthwave-84-CbfX1IO0.js +0 -1
- package/dist/web/assets/system-verilog-CnnmHF94.js +0 -1
- package/dist/web/assets/systemd-4A_iFExJ.js +0 -1
- package/dist/web/assets/talonscript-CkByrt1z.js +0 -1
- package/dist/web/assets/tasl-QIJgUcNo.js +0 -1
- package/dist/web/assets/tcl-dwOrl1Do.js +0 -1
- package/dist/web/assets/templ-P3uqSqPl.js +0 -1
- package/dist/web/assets/terraform-BETggiCN.js +0 -1
- package/dist/web/assets/tex-idrVyKtj.js +0 -1
- package/dist/web/assets/tokyo-night-hegEt444.js +0 -1
- package/dist/web/assets/toml-vGWfd6FD.js +0 -1
- package/dist/web/assets/ts-tags-zn1MmPIZ.js +0 -1
- package/dist/web/assets/tsv-B_m7g4N7.js +0 -1
- package/dist/web/assets/tsx-COt5Ahok.js +0 -1
- package/dist/web/assets/turtle-BsS91CYL.js +0 -1
- package/dist/web/assets/twig-DNn4PbVi.js +0 -1
- package/dist/web/assets/typescript-BPQ3VLAy.js +0 -1
- package/dist/web/assets/typespec-BGHnOYBU.js +0 -1
- package/dist/web/assets/typst-DHCkPAjA.js +0 -1
- package/dist/web/assets/v-BcVCzyr7.js +0 -1
- package/dist/web/assets/vala-CsfeWuGM.js +0 -1
- package/dist/web/assets/vb-D17OF-Vu.js +0 -1
- package/dist/web/assets/verilog-BQ8w6xss.js +0 -1
- package/dist/web/assets/vesper-DU1UobuO.js +0 -1
- package/dist/web/assets/vhdl-CeAyd5Ju.js +0 -1
- package/dist/web/assets/viml-CJc9bBzg.js +0 -1
- package/dist/web/assets/vitesse-black-Bkuqu6BP.js +0 -1
- package/dist/web/assets/vitesse-dark-D0r3Knsf.js +0 -1
- package/dist/web/assets/vitesse-light-CVO1_9PV.js +0 -1
- package/dist/web/assets/vue-DN_0RTcg.js +0 -1
- package/dist/web/assets/vue-html-AaS7Mt5G.js +0 -1
- package/dist/web/assets/vue-vine-CQOfvN7w.js +0 -1
- package/dist/web/assets/vyper-CDx5xZoG.js +0 -1
- package/dist/web/assets/wasm-CG6Dc4jp.js +0 -1
- package/dist/web/assets/wasm-MzD3tlZU.js +0 -1
- package/dist/web/assets/wenyan-BV7otONQ.js +0 -1
- package/dist/web/assets/wgsl-Dx-B1_4e.js +0 -1
- package/dist/web/assets/wikitext-BhOHFoWU.js +0 -1
- package/dist/web/assets/wit-5i3qLPDT.js +0 -1
- package/dist/web/assets/wolfram-lXgVvXCa.js +0 -1
- package/dist/web/assets/xml-sdJ4AIDG.js +0 -1
- package/dist/web/assets/xsl-CtQFsRM5.js +0 -1
- package/dist/web/assets/yaml-Buea-lGh.js +0 -1
- package/dist/web/assets/zenscript-DVFEvuxE.js +0 -1
- package/dist/web/assets/zig-VOosw3JB.js +0 -1
package/dist/runtime-version.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var c=require("node:fs"),n=require("node:path"),p="@vibelet/cli";function i(r){try{let e=JSON.parse((0,c.readFileSync)(r,"utf8"));if(e.name===p&&typeof e.version=="string"&&e.version.length>0)return e.version}catch{}return null}function l(){return"1.2.
|
|
1
|
+
var c=require("node:fs"),n=require("node:path"),p="@vibelet/cli";function i(r){try{let e=JSON.parse((0,c.readFileSync)(r,"utf8"));if(e.name===p&&typeof e.version=="string"&&e.version.length>0)return e.version}catch{}return null}function l(){return"1.2.182"}var a=l();process.stdout.write(`${a}
|
|
2
2
|
`);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid-O7DHMXV3-COP4-7nw.js","assets/index-DRV2XMZs.js","assets/index-nF-4Ar2D.css","assets/mermaid-O7DHMXV3-DaZ-aNWp.css","assets/FilesControlPanel-CM73JghJ.js","assets/file-text-B-0kY5qg.js","assets/ArchiveSyncPanel-CQW9sGn8.js","assets/ConnectionSettingsPanel-CvgjycC_.js","assets/DaemonSettingsPanel-8WGOLUs-.js","assets/LanguageSettingsPanel-3P8xvsNr.js","assets/NotificationSettingsPanel--Ov_1saA.js","assets/SavedTargetsPanel-B4UDMnAq.js","assets/DiffDrawer-8wyT-3Bj.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{c as L,j as s,r as a,E as Qs,_ as Je,D as Wi,n as zi,f as Ui,p as Vi,s as Ki,a as Yt,b as Qi,l as Gi,W as ps,d as gs,e as Ji,g as Zi,h as Yi}from"./index-DRV2XMZs.js";const Xi=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]],On=L("archive",Xi);const ea=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],ta=L("arrow-down",ea);const na=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],sa=L("arrow-up",na);const ra=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],ia=L("bot",ra);const aa=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],at=L("check",aa);const oa=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],ca=L("chevron-right",oa);const la=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],da=L("chevron-up",la);const ua=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],fa=L("circle-dot",ua);const ha=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]],ma=L("clipboard",ha);const pa=[["path",{d:"M12 6v6h4",key:"135r8i"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Gs=L("clock-3",pa);const ga=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],ya=L("code-xml",ga);const ba=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],$t=L("copy",ba);const xa=[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]],ys=L("corner-down-left",xa);const Sa=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],jn=L("cpu",Sa);const wa=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],va=L("ellipsis",wa);const ka=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],ja=L("eye",ka);const Ca=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],gt=L("folder-open",Ca);const Ia=[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],Na=L("folder-plus",Ia);const Ra=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],bs=L("folder",Ra);const Ma=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Ta=L("funnel",Ma);const Aa=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],ze=L("gauge",Aa);const Ea=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]],Js=L("git-compare",Ea);const _a=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Da=L("hash",_a);const Pa=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Fa=L("info",Pa);const $a=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],Zs=L("key-round",$a);const La=[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]],Oa=L("keyboard",La);const qa=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],xs=L("loader-circle",qa);const Ba=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],Ha=L("message-circle",Ba);const Wa=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],Ys=L("panel-left",Wa);const za=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]],Ss=L("panel-right",za);const Ua=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],qn=L("paperclip",Ua);const Va=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],Bn=L("pin",Va);const Ka=[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]],Qa=L("plug-zap",Ka);const Ga=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Tn=L("plus",Ga);const Ja=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],Dt=L("refresh-cw",Ja);const Za=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Ya=L("rotate-ccw",Za);const Xa=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Hn=L("search",Xa);const eo=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],to=L("settings",eo);const no=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],cn=L("shield-check",no);const so=[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]],Xs=L("sliders-horizontal",so);const ro=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],io=L("sparkles",ro);const ao=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],An=L("square-terminal",ao);const oo=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],co=L("square",oo);const lo=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],uo=L("tag",lo);const fo=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Wn=L("terminal",fo);const ho=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],mo=L("trash-2",ho);const po=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],go=L("wrench",po);const yo=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],ke=L("x",yo);const bo=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Mt=L("zap",bo);function er(e){if(!e||typeof e!="object"||Array.isArray(e))return;const t=e;return typeof t.lastActivityAt=="string"&&typeof t.sessionId=="string"?{lastActivityAt:t.lastActivityAt,sessionId:t.sessionId}:void 0}const Me=".",En="normal",xo=80,So=1600,tr="vibelet.web.notificationSettings",wo="pending_local_",st={enabled:!1,approvals:!0,questions:!0,replies:!0,hiddenOnly:!0};function Tt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function zn(e,t=Date.now()){if(!e)return"unknown";const n=Date.parse(e);if(!Number.isFinite(n))return e;const r=t-n,i=60*1e3,o=60*i,d=24*o;return r<i?"now":r<o?`${Math.floor(r/i)}m ago`:r<d?`${Math.floor(r/o)}h ago`:`${Math.floor(r/d)}d ago`}function vo(e){if(!Number.isFinite(e))return"unknown";const t=e??0;return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function qe(e){return e.customTitle||e.title||e.sessionId.slice(0,10)}function Un(e,t){const n=e[e.length-1];return n?.role==="assistant"&&n.type!=="info"?[...e.slice(0,-1),{...n,content:`${n.content}${t}`}]:[...e,{role:"assistant",content:t,timestamp:new Date().toISOString()}]}function nr(e){const t=e;return{sessions:Array.isArray(t.sessions)?t.sessions:[],nextCursor:er(t.nextCursor),inventoryVersion:t.inventoryVersion,inventoryBackfillInFlight:t.inventoryBackfillInFlight,folderCounts:t.folderCounts}}function ko(e){const t=e;return typeof t.sessionId=="string"?t.sessionId:null}function jo(e){const t=e;return typeof t.path=="string"?t.path:null}function ln(e){return e.split("/").filter(Boolean).at(-1)??e}function sr(e){return Object.entries(e).length===0?"No structured input.":JSON.stringify(e,null,2)}function _n(e){return Object.fromEntries(e.questions.map(t=>[t.id,t.options[0]?[t.options[0].label]:[]]))}function Xt(e){return e.trim()||void 0}function ws(e){if(e==="7d")return Date.now()-7*864e5;if(e==="30d")return Date.now()-30*864e5;if(e==="90d")return Date.now()-90*864e5}function en(e,t){const n=new Map;for(const r of e)n.set(r.sessionId,r);for(const r of t)n.set(r.sessionId,{...n.get(r.sessionId),...r});return Array.from(n.values()).sort((r,i)=>{const o=r.pinned?r.pinnedAt??0:0,d=i.pinned?i.pinnedAt??0:0;return o!==d?d-o:Date.parse(i.lastActivityAt)-Date.parse(r.lastActivityAt)})}let Cn=0;function Co(e=Date.now()){return Cn=(Cn+1)%1e4,`${wo}${e}_${Cn}`}function Io(e){const t=e.now??new Date().toISOString();return{sessionId:e.sessionId,agent:e.agent,cwd:e.cwd||Me,...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{},fastMode:e.fastMode??!1,...e.title?{title:e.title}:{},createdAt:t,lastActivityAt:t,sources:["daemon"],runtime:{state:"daemonActive",confidence:"high",resumeMode:"reuseDriver"},managed:!0,approvalMode:e.approvalMode}}function No(e,t,n=new Date().toISOString()){return{...e,sessionId:t,lastActivityAt:n}}function In(e,t,n){if(!t||!n||t===n||!Object.hasOwn(e,t))return e;const{[t]:r,...i}=e;return{...i,[n]:r}}function vs(e,t,n){if(!t||!n||t===n||!e.has(t))return e;const r=new Set(e);return r.delete(t),r.add(n),r}function Ro(e){const t=new Map;for(const n of e){const r=n.cwd||Me;t.set(r,[...t.get(r)??[],n])}return Array.from(t.entries()).map(([n,r])=>({folder:n,sessions:r}))}function Dn(e,t){const n=e.replace(/\\/g,"/").replace(/\/+$/,"");return!n||n==="."?t:`${n}/${t}`}function ks(e){const t=e.replace(/\\/g,"/").replace(/\/+$/,"");if(!t||t==="/"||t==="~"||t===".")return null;const n=t.lastIndexOf("/");return n<0?".":n===0?"/":t.slice(0,n)}function Mo(e,t){return t.startsWith("text/")||t.includes("json")||t.includes("xml")||t.includes("javascript")?!0:/\.(md|txt|json|ya?ml|toml|csv|log|ts|tsx|js|jsx|css|html|xml|py|rb|go|rs|java|kt|swift|sh|zsh|bash)$/i.test(e)}function To(e,t){return t.startsWith("image/")||/\.(png|jpe?g|gif|webp|heic|heif|svg)$/i.test(e)}function Nn(e,t,n=window.location.origin){const r=new URL("/file",n);return r.searchParams.set("path",e),t&&r.searchParams.set("cwd",t),r.toString()}function tn(e,t){return e.get(t)||void 0}function Ao(e,t){return`${e.replace(/[<>:"/\\|?*\u0000-\u001F]/g," ").replace(/\s+/g," ").trim().slice(0,80)||t.slice(0,12)||"session"}.txt`}function Eo(e,t){const n=[`# ${qe(e)}`,"",`- Agent: ${e.agent}`,`- Session: \`${e.sessionId}\``,`- Working directory: \`${e.cwd}\``,`- Created: ${e.createdAt}`,`- Exported: ${new Date().toISOString()}`,""];for(const r of t){if(r.role!=="user"&&r.role!=="assistant")continue;const i=r.content.trim(),o=(r.images??[]).map(d=>`- Attachment: \`${d}\``);!i&&o.length===0||(n.push(`## ${r.role==="user"?"User":"Assistant"}`,""),i&&n.push(i,""),o.length&&n.push(...o,""))}return n.join(`
|
|
3
|
+
`).trimEnd()}function rr(e){const t=[`cd ${_o(e.cwd||Me)} &&`],n=e.approvalMode??e.observedApprovalMode;return e.agent==="claude"?(t.push("claude","--resume",e.sessionId),n==="autoApprove"?t.push("--dangerously-skip-permissions"):n==="acceptEdits"&&t.push("--permission-mode","acceptEdits"),t.join(" ")):(t.push("codex","resume",e.sessionId),n==="autoApprove"&&t.push("--dangerously-bypass-approvals-and-sandbox"),t.join(" "))}function _o(e){return/^[a-zA-Z0-9._/~-]+$/.test(e)?e:`'${e.replace(/'/g,"'\\''")}'`}function Do(e,t){const n=URL.createObjectURL(new Blob([t],{type:"text/plain;charset=utf-8"})),r=document.createElement("a");r.href=n,r.download=e,r.click(),URL.revokeObjectURL(n)}function Po(e=window.localStorage){try{const t=e.getItem(tr);if(!t)return{...st};const n=JSON.parse(t);return Tt(n)?{enabled:typeof n.enabled=="boolean"?n.enabled:st.enabled,approvals:typeof n.approvals=="boolean"?n.approvals:st.approvals,questions:typeof n.questions=="boolean"?n.questions:st.questions,replies:typeof n.replies=="boolean"?n.replies:st.replies,hiddenOnly:typeof n.hiddenOnly=="boolean"?n.hiddenOnly:st.hiddenOnly}:{...st}}catch{return{...st}}}function Fo(e,t=window.localStorage){t.setItem(tr,JSON.stringify(e))}function Pn(e=typeof Notification>"u"?void 0:Notification){return e?.permission??"unsupported"}function $o(e,t,n=typeof document>"u"?"visible":document.visibilityState){return!(!e.enabled||t!=="granted"||e.hiddenOnly&&n==="visible")}function Lo(e,t,n={}){const r=n.notificationFactory??(typeof Notification>"u"?void 0:Notification);if(!r)return!1;const i=n.settings??{enabled:!0,hiddenOnly:!1},o=n.permission??Pn(),d=n.visibilityState??(typeof document>"u"?"visible":document.visibilityState);if(!$o(i,o,d))return!1;const l=new r(e,{body:t,tag:n.tag});return n.onClick&&(l.onclick=n.onClick),!0}function Oo(e,t={}){const n=new Set,r={},i={},o={};for(const k of e.sessions)(k.runtime.isResponding||k.runtime.state==="daemonActive")&&n.add(k.sessionId);for(const k of e.pendingApprovals??[])r[k.sessionId]={type:"approval.request",...k};for(const k of e.pendingQuestions??[])i[k.sessionId]={type:"question.request",...k};let d=null,l,b,p,g,j,h;if(e.activeSession){const k=e.activeSession,R=e.sessions.find(c=>c.sessionId===k.sessionId);d=k.sessionId,l=k.agent,b=R?.cwd||t.currentCwd||Me,p=k.approvalMode??R?.approvalMode??En,g=k.approvalMode??null;const C=k.messages??[];if(j=k.partialReplyText?Un(C,k.partialReplyText):C,(k.isResponding||k.externallyResponding)&&n.add(k.sessionId),k.pendingApproval&&(r[k.sessionId]={type:"approval.request",sessionId:k.sessionId,...k.pendingApproval}),k.pendingQuestion){const c={type:"question.request",sessionId:k.sessionId,...k.pendingQuestion};i[k.sessionId]=c,h=_n(c)}k.pendingQueue?.length&&(o[k.sessionId]=k.pendingQueue)}else{const k=t.currentActiveSessionId??null;if(k){const R=e.sessionAliases?.[k];R?d=R:e.sessions.some(C=>C.sessionId===k)&&(d=k)}d=d??e.sessions[0]?.sessionId??null}return{page:{sessions:e.sessions,nextCursor:er(e.nextCursor),inventoryVersion:e.inventoryVersion,inventoryBackfillInFlight:e.inventoryBackfillInFlight},activeSessionId:d,activeAgent:l,activeCwd:b,activeApprovalMode:p,activeApprovalOverride:g,messages:j,respondingSessionIds:Array.from(n),pendingApprovals:r,pendingQuestions:i,pendingQueues:o,questionAnswers:h}}function At(e,t=n=>window.confirm(n)){return t(`${e}
|
|
4
|
+
|
|
5
|
+
This action cannot be undone from Vibelet Web.`)}function js(e,t){return e==="subscriptionRequired"?t?"Agent skills require an active Pro subscription.":"Terminal takeover requires an active Pro subscription.":e==="skillNotFound"?"Skill not found on the paired computer.":e==="skillResolveFailed"?"Could not load the skill on the paired computer.":e}const qo=/^[A-Za-z][A-Za-z0-9_-]*$/,Bo=[{name:"clear",commandName:"clear",title:"Clear session",description:"Clear this session in place.",source:"Vibelet",agents:["claude","codex"],argsHint:""},{name:"new",commandName:"new",title:"New session",description:"Start a fresh session with the same assistant and directory.",source:"Vibelet",agents:["claude","codex"],argsHint:""},{name:"exit",commandName:"exit",title:"Archive session",description:"Archive this session and return to the session list.",source:"Vibelet",agents:["claude","codex"],argsHint:""},{name:"quit",commandName:"exit",title:"Archive session",description:"Alias for /exit.",source:"Vibelet",agents:["claude","codex"],argsHint:""},{name:"q",commandName:"exit",title:"Archive session",description:"Alias for /exit.",source:"Vibelet",agents:["claude","codex"],argsHint:""},{name:"compact",commandName:"compact",title:"Compact context",description:"Ask the assistant runtime to compact the current session.",source:"Native",agents:["claude","codex"],argsHint:""},{name:"goal",commandName:"goal",title:"Goal",description:"View, set, pause, resume, or clear the current goal.",source:"Native",agents:["claude","codex"],argsHint:"[objective|status|pause|resume|clear]"}];function ir(e){return Bo.filter(t=>!e||t.agents.includes(e))}function Vn(e){return e.trim().toLowerCase()}function sn(e){if(!e.startsWith("/")||e.startsWith("//"))return null;const t=/^\/([A-Za-z0-9_-]*)$/.exec(e);if(!t)return null;const n=t[1]??"";return n&&!qo.test(n)?null:{start:0,end:e.length,keyword:Vn(n)}}function Ho(e,t,n=8){const r=Vn(t);return(r?e.filter(o=>o.name.includes(r)||o.title.toLowerCase().includes(r)).sort((o,d)=>Cs(o,r)-Cs(d,r)):[...e]).slice(0,n)}function Cs(e,t){return e.name===t?0:e.name.startsWith(t)?1:e.name.includes(t)?2:3}function Wo(e,t,n){return`${e.slice(0,t.start)}${ar(n,"")}${e.slice(t.end)}`}function zo(e,t,n){return t?Wo(e,t,n):`${ar(n,e)}${e}`}function ar(e,t){const n=t.length>0,r=n&&!/^\s/.test(t),i=!!(e.argsHint&&!n);return`/${e.name}${i||r?" ":""}`}function Uo(e,t){const n=e.trim();if(!n.startsWith("/")||n.startsWith("//"))return null;const r=/^\/([A-Za-z][A-Za-z0-9_-]*)(?:\s+([\s\S]*))?$/.exec(n);if(!r)return null;const i=Vn(r[1]??""),o=ir(t).find(l=>l.name===i);if(!o)return null;const d=r[2]?.trim()??"";switch(o.commandName){case"clear":return{raw:n,command:{name:"clear"}};case"new":return{raw:n,command:{name:"new"}};case"exit":return{raw:n,command:{name:"exit"}};case"compact":return{raw:n,command:{name:"compact"}};case"goal":{const l=d.toLowerCase();return!d||l==="status"||l==="show"||l==="usage"||l==="help"?{raw:n,command:{name:"goal",operation:"status"}}:l==="clear"||l==="reset"?{raw:n,command:{name:"goal",operation:"clear"}}:l==="pause"||l==="paused"?{raw:n,command:{name:"goal",operation:"pause"}}:l==="resume"||l==="active"?{raw:n,command:{name:"goal",operation:"resume"}}:{raw:n,command:{name:"goal",operation:"set",objective:d}}}}}function Vo(e){return e.startsWith("//")?e.slice(1):e}function Ko(e){return e.name==="compact"?"/compact":e.name!=="goal"?null:e.operation==="clear"?"/goal clear":e.operation==="pause"?"/goal pause":e.operation==="resume"?"/goal resume":e.operation==="set"&&e.objective?.trim()?`/goal ${e.objective.trim()}`:"/goal"}function Qo(e){const t=typeof e?.objective=="string"?e.objective.trim():"";return t?`Goal${typeof e?.status=="string"&&e.status?` (${e.status})`:""}: ${t}`:"Goal: none."}function Is(e){return e==="subscriptionRequired"?"Error: Agent commands require an active Pro subscription.":`Error: ${e||"Command failed."}`}function Go(e,t){return!t||!sn(e)?e:t.draftBeforeInsertion}const Jo=/^[A-Za-z_][A-Za-z0-9._:-]*$/,Zo=/(?:^|\s)\$([A-Za-z_][A-Za-z0-9._:-]*|)$/;function Pt(e){return e.trim().toLowerCase()}function Yo(e){const t=e.trim(),n=/^\$([A-Za-z_][A-Za-z0-9._:-]*)(?:\s+([\s\S]*))?$/.exec(t);return n?{name:Pt(n[1]??""),...n[2]?.trim()?{args:n[2].trim()}:{}}:null}function rn(e){const t=Zo.exec(e);if(!t||t.index+t[0].length!==e.length)return null;const n=t[1]??"";if(n&&!Jo.test(n))return null;const r=t[0].lastIndexOf("$");return{start:t.index+r,end:e.length,keyword:Pt(n)}}function Xo(e,t,n){return`${e.slice(0,t.start)}$${Pt(n)} ${e.slice(t.end)}`}function ec(e,t){if(!t)return e;const n=rn(e);if(!n||n.start!==t.triggerStart)return e;const r=n.start>t.draftBeforeInsertion.length?" ":"";return e.slice(0,n.start)!==`${t.draftBeforeInsertion}${r}`?e:t.draftBeforeInsertion}function tc(e,t,n=8){const r=Pt(t);return(r?e.filter(o=>Pt(o.name).includes(r)):e).slice(0,n)}function It({icon:e,label:t,menuLabel:n,options:r,value:i,onSelect:o,align:d="left",disabled:l,selected:b,wide:p}){const[g,j]=a.useState(!1);return s.jsxs("div",{className:"composer-menu",onBlur:h=>{const k=h.relatedTarget;(!k||!h.currentTarget.contains(k))&&j(!1)},onKeyDown:h=>{h.key==="Escape"&&j(!1)},children:[s.jsxs("button",{"aria-expanded":g,"aria-haspopup":"menu",className:`composer-option-button ${g||b?"selected":""}`,disabled:l,onClick:()=>j(h=>!h),title:n,type:"button",children:[s.jsx(e,{"aria-hidden":"true"}),s.jsx("span",{children:t}),s.jsx(da,{"aria-hidden":"true"})]}),g?s.jsx("div",{"aria-label":n,className:`composer-option-popover ${p?"wide":""} ${d==="right"?"align-right":""}`,role:"menu",children:r.map(h=>{const k=h.icon,R=h.value===i;return s.jsxs("button",{"aria-checked":R,className:R?"selected":"",disabled:h.disabled,onClick:()=>{o(h.value),j(!1)},role:"menuitemradio",title:h.description??h.label,type:"button",children:[s.jsx("span",{className:"composer-menu-icon",children:k?s.jsx(k,{"aria-hidden":"true"}):R?s.jsx(at,{"aria-hidden":"true"}):null}),s.jsxs("span",{children:[s.jsx("strong",{children:h.label}),h.description?s.jsx("small",{children:h.description}):null]}),R?s.jsx(at,{className:"composer-menu-check","aria-hidden":"true"}):null]},h.value)})}):null]})}function nc({visible:e,skills:t,onClose:n,onSelect:r,t:i}){return e?s.jsxs("div",{className:"skill-suggestion-popover",children:[s.jsxs("header",{children:[s.jsx("strong",{children:i.skills}),s.jsx("button",{type:"button",className:"icon-button",onClick:n,title:i.closeSkills,children:s.jsx(ke,{"aria-hidden":"true"})})]}),t.length?s.jsx("div",{className:"skill-suggestion-list",children:t.map(o=>s.jsxs("button",{onClick:()=>r(o),title:o.description??o.name,type:"button",children:[s.jsxs("span",{children:[s.jsxs("strong",{children:["$",o.name]}),o.description?s.jsx("small",{children:o.description}):null]}),s.jsx("em",{children:o.source})]},`${o.source}:${o.name}`))}):s.jsx("p",{children:i.noSkillsFound})]}):null}function sc({visible:e,commands:t,onClose:n,onSelect:r,t:i}){return e?s.jsxs("div",{className:"skill-suggestion-popover command-suggestion-popover",children:[s.jsxs("header",{children:[s.jsx("strong",{children:i.commands}),s.jsx("button",{type:"button",className:"icon-button",onClick:n,title:i.closeCommands,children:s.jsx(ke,{"aria-hidden":"true"})})]}),t.length?s.jsx("div",{className:"skill-suggestion-list",children:t.map(o=>s.jsxs("button",{onClick:()=>r(o),title:o.description,type:"button",children:[s.jsxs("span",{children:[s.jsxs("strong",{children:["/",o.name]}),s.jsx("small",{children:o.argsHint?`${o.title} ${o.argsHint}`:o.title})]}),s.jsx("em",{children:o.source})]},o.name))}):s.jsx("p",{children:i.noCommandsFound})]}):null}function rc(e){return[{value:"normal",label:e.approvalNormal,description:e.approvalNormalDescription,icon:cn},{value:"plan",label:e.approvalPlan,description:e.approvalPlanDescription,icon:Xs},{value:"acceptEdits",label:e.approvalEdits,description:e.approvalEditsDescription,icon:at},{value:"autoApprove",label:e.approvalAuto,description:e.approvalAutoDescription,icon:Mt}]}function ic(e){return[{value:"",label:e.effort,description:e.useDaemonDefault,icon:ze},{value:"minimal",label:e.effortMinimal,icon:ze},{value:"low",label:e.effortLow,icon:ze},{value:"medium",label:e.effortMedium,icon:ze},{value:"high",label:e.effortHigh,icon:ze},{value:"xhigh",label:e.effortXHigh,icon:ze},{value:"max",label:e.effortMax,icon:ze},{value:"ultra",label:e.effortUltra,icon:ze}]}function ac({activeQueue:e,agent:t,attachments:n,approvalMode:r,activeModelOptions:i,busy:o,draft:d,effort:l,fastMode:b,model:p,phase:g,quickReplies:j,sendShortcut:h,skills:k,uploadBusy:R,t:C,onApprovalModeChange:c,onCancelQueuedTurn:I,onDraftChange:f,onEffortChange:w,onFastModeChange:y,onModelChange:m,onRefreshSkills:N,onRemoveAttachment:P,onSendShortcutChange:z,onSubmit:ge,onUploadFiles:T}){const ae=a.useRef(null),de=a.useRef(null),[oe,ue]=a.useState(!1),[te,ye]=a.useState(!1),[_,E]=a.useState(!1),[W,F]=a.useState(!1),[ce,be]=a.useState(""),[J,Q]=a.useState(""),B=a.useRef(null),Z=a.useRef(null),ne=g==="connected",fe=a.useMemo(()=>ir(t),[t]),X=a.useMemo(()=>sn(d),[d]),V=X?`${X.start}:${X.end}:${X.keyword}`:"",se=!!(W||X&&J!==V),je=a.useMemo(()=>Ho(fe,X?.keyword??"",8),[fe,X?.keyword]),A=a.useMemo(()=>rn(d),[d]),U=A?`${A.start}:${A.end}:${A.keyword}`:"",De=!!(!se&&(_||A&&ce!==U)),Pe=a.useMemo(()=>tc(k,A?.keyword??"",8),[A?.keyword,k]),Fe=a.useMemo(()=>rc(C),[C]),he=a.useMemo(()=>ic(C),[C]),$e=i.find(S=>S.value===p)?.label??(p||C.defaultOption),xe=Fe.find(S=>S.value===r)?.label??r,Te=he.find(S=>S.value===l)?.label??l,Be=h==="enter"?C.sendShortcutEnter:C.sendShortcutModEnter,Ce=a.useMemo(()=>[{value:"enter",label:C.sendShortcutEnter,description:C.sendShortcutEnterDescription,icon:ys},{value:"modEnter",label:C.sendShortcutModEnter,description:C.sendShortcutModEnterDescription,icon:Oa}],[C]),Se=i.map(S=>({value:S.value,label:S.label,description:S.desc,icon:jn}));Se.some(S=>S.value==="")||Se.unshift({value:"",label:C.defaultOption,description:C.useDaemonDefaultModel,icon:jn}),a.useEffect(()=>{A||(B.current=null,be(""),E(!1))},[A]),a.useEffect(()=>{X||(Z.current=null,Q(""),F(!1))},[X]);const Ie=async(S,D)=>{await T(S),D.value=""},Ae=async S=>{S.preventDefault(),ue(!1),ne&&await T(S.dataTransfer.files)},Ue=async S=>{!ne||!S.clipboardData.files.length||await T(S.clipboardData.files)},we=()=>{const S=ec(d,B.current);B.current=null,S!==d&&f(S),U&&be(U),E(!1),de.current?.focus()},Le=()=>{const S=Go(d,Z.current);Z.current=null,S!==d&&f(S),V&&Q(V),F(!1),de.current?.focus()},Ve=()=>{if(se){Le();return}Q(""),!sn(d)&&d.length===0&&(Z.current={draftBeforeInsertion:d},f("/")),F(!0),de.current?.focus()},He=S=>{const D=sn(d),G=zo(d,D,S);f(G),Z.current=null,F(!1),Q(""),de.current?.focus()},Ee=()=>{if(De){we();return}if(N(),be(""),!rn(d)){const S=d.length===0||/\s$/.test(d)?"":" ";B.current={draftBeforeInsertion:d,triggerStart:d.length+S.length},f(`${d}${S}$`)}E(!0),de.current?.focus()},x=S=>{const D=rn(d),G=D?Xo(d,D,S.name):d.trim().length?`${d}${/\s$/.test(d)?"":" "}$${S.name} `:`$${S.name} `;f(G),B.current=null,E(!1),be(""),de.current?.focus()},O=S=>{S.key!=="Enter"||S.nativeEvent.isComposing||!(h==="enter"?!S.shiftKey:S.metaKey||S.ctrlKey)||(S.preventDefault(),ge())};return s.jsxs("form",{className:`composer ${oe?"dragging":""}`,onDragEnter:S=>{S.preventDefault(),ue(!0)},onDragLeave:()=>ue(!1),onDragOver:S=>S.preventDefault(),onDrop:S=>{Ae(S)},onSubmit:S=>{ge(S)},children:[e.length?s.jsxs("div",{className:"composer-queue-banner",children:[s.jsx(Gs,{"aria-hidden":"true"}),s.jsxs("div",{children:[s.jsxs("strong",{children:[e.length," queued"]}),s.jsx("span",{children:e[0]?.content??"A turn is waiting for this session."})]}),s.jsxs("button",{className:"icon-text-button",disabled:o||!e[0],onClick:()=>e[0]&&I(e[0]),type:"button",children:[s.jsx(ke,{"aria-hidden":"true"}),"Withdraw"]})]}):null,te&&j.length?s.jsx("div",{className:"quick-reply-row",children:j.slice(0,6).map(S=>s.jsx("button",{onClick:()=>f(d?`${d}
|
|
6
|
+
${S}`:S),type:"button",children:S},S))}):null,s.jsx(nc,{visible:De,skills:Pe,onClose:we,onSelect:x,t:C}),s.jsx(sc,{visible:se,commands:je,onClose:Le,onSelect:He,t:C}),s.jsx("textarea",{ref:de,value:d,onChange:S=>f(S.target.value),onPaste:S=>{Ue(S)},onKeyDown:O,placeholder:C.messagePlaceholder,rows:3,disabled:!ne}),s.jsxs("div",{className:"composer-toolbar",children:[s.jsxs("div",{className:"composer-leading-controls",children:[s.jsx("button",{type:"button",className:"icon-button",onClick:()=>ae.current?.click(),title:C.uploadFiles,disabled:!ne||R,children:s.jsx(Tn,{"aria-hidden":"true"})}),j.length?s.jsx("button",{className:`icon-button ${te?"selected":""}`,type:"button",title:te?C.hideQuickReplies:C.showQuickReplies,onClick:()=>ye(S=>!S),children:s.jsx(io,{"aria-hidden":"true"})}):null,s.jsx("button",{className:`icon-button ${De?"selected":""}`,type:"button",title:C.skills,onClick:Ee,disabled:!ne||R,children:s.jsx(Mt,{"aria-hidden":"true"})}),s.jsx("button",{className:`icon-button ${se?"selected":""}`,type:"button",title:C.commands,onClick:Ve,disabled:!ne||R,children:s.jsx(An,{"aria-hidden":"true"})})]}),s.jsx("input",{ref:ae,type:"file",multiple:!0,hidden:!0,onChange:S=>{Ie(S.currentTarget.files,S.currentTarget)}}),s.jsxs("div",{className:"composer-control-strip",children:[s.jsx(It,{icon:cn,label:xe,menuLabel:C.approvalMode,options:Fe,value:r,onSelect:c,wide:!0}),s.jsx(It,{icon:jn,label:$e,menuLabel:C.model,options:Se,value:p,onSelect:m,align:"right",wide:!0}),s.jsx(It,{icon:ze,label:Te||C.effort,menuLabel:C.effort,options:he,value:l,onSelect:w,align:"right"}),s.jsx(It,{icon:Mt,label:b?C.fast:C.normal,menuLabel:C.fastMode,options:[{value:"off",label:C.normal,description:C.standardExecution,icon:ze},{value:"on",label:C.fast,description:C.preferFasterResponses,icon:Mt}],value:b?"on":"off",onSelect:S=>y(S==="on"),align:"right",selected:b,wide:!0}),s.jsx(It,{icon:ys,label:Be,menuLabel:C.sendShortcut,options:Ce,value:h,onSelect:z,align:"right",wide:!0})]}),s.jsx("button",{type:"submit",className:"send-button",disabled:!ne||o||!d.trim(),"aria-label":C.send,title:C.send,children:s.jsx(sa,{"aria-hidden":"true"})})]}),n.length||R?s.jsx("div",{className:"attachment-row",children:n.length?s.jsx("div",{className:"attachment-list",children:n.map(S=>s.jsxs("span",{children:[s.jsx(qn,{"aria-hidden":"true"}),S.name||ln(S.path),s.jsx("small",{children:vo(S.size)}),s.jsx("button",{type:"button",onClick:()=>P(S.path),title:C.removeAttachment,children:s.jsx(ke,{"aria-hidden":"true"})})]},S.path))}):s.jsxs("span",{className:"attachment-empty",children:[s.jsx("span",{className:"loading-spinner small","aria-hidden":"true"}),C.uploading]})}):null]})}const oc=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Ns(e){return Array.from(e.querySelectorAll(oc)).filter(t=>!t.hidden&&t.getAttribute("aria-hidden")!=="true")}function or(e,t,n=!0){const r=a.useRef(null),i=a.useRef(e);return i.current=e,a.useEffect(()=>{if(!n)return;const o=r.current;if(!o)return;const d=document.activeElement instanceof HTMLElement?document.activeElement:null,b=requestAnimationFrame(()=>(t?.current??Ns(o)[0]??o).focus()),p=g=>{if(g.key==="Escape"){g.preventDefault(),i.current();return}if(g.key!=="Tab")return;const j=Ns(o);if(!j.length){g.preventDefault(),o.focus();return}const h=j[0],k=j.at(-1);g.shiftKey&&(document.activeElement===h||!o.contains(document.activeElement))?(g.preventDefault(),k.focus()):!g.shiftKey&&document.activeElement===k&&(g.preventDefault(),h.focus())};return document.addEventListener("keydown",p),()=>{cancelAnimationFrame(b),document.removeEventListener("keydown",p),requestAnimationFrame(()=>d?.focus())}},[n,t]),r}function cc({cwd:e,paths:t,t:n,onClose:r,onOpenRemoteFile:i}){const o=a.useRef(null),d=or(r,o,t.length>0);return t.length?s.jsxs("div",{"aria-labelledby":"attachment-preview-title","aria-modal":"true",className:"side-drawer",ref:d,role:"dialog",tabIndex:-1,children:[s.jsx("button",{className:"side-drawer-backdrop",onClick:r,type:"button","aria-label":n.closeAttachmentPreview}),s.jsxs("aside",{className:"side-drawer-panel",children:[s.jsxs("header",{className:"side-drawer-header",children:[s.jsxs("div",{children:[s.jsx("strong",{id:"attachment-preview-title",children:n.attachments}),s.jsx("span",{children:n.fileCount(t.length)})]}),s.jsx("button",{"aria-label":n.closeAttachmentPreview,className:"icon-button",onClick:r,ref:o,type:"button",children:s.jsx(ke,{"aria-hidden":"true"})})]}),s.jsx("div",{className:"stack-list",children:t.map(l=>s.jsxs("button",{className:"data-row attachment-preview-row",onClick:()=>i(l,e),type:"button",children:[s.jsx(qn,{"aria-hidden":"true"}),s.jsxs("span",{children:[s.jsx("strong",{children:ln(l)}),s.jsx("small",{children:l})]}),s.jsx(Qs,{"aria-hidden":"true"})]},l))})]})]}):null}async function lc(e){if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0",document.body.append(t),t.select();const n=document.execCommand("copy");if(t.remove(),!n)throw new Error("Clipboard copy was rejected")}function dc(e,t){const[n,r]=a.useState(null),i=a.useRef(null);return a.useEffect(()=>()=>{i.current!==null&&window.clearTimeout(i.current)},[]),{copyText:a.useCallback(async d=>{try{await lc(d),r({message:e,tone:"success"})}catch{r({message:t,tone:"error"})}i.current!==null&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>r(null),2400)},[t,e]),feedback:n}}function uc({feedback:e}){if(!e)return null;const t=e.tone==="success"?at:ke;return s.jsxs("div",{className:`copy-feedback ${e.tone}`,role:"status",children:[s.jsx(t,{"aria-hidden":"true"}),e.message]})}function fc({message:e,retryLabel:t,onRetry:n}){return s.jsxs("div",{className:"notice error",children:[s.jsx(ke,{"aria-hidden":"true"}),s.jsx("span",{children:e}),s.jsxs("button",{className:"icon-text-button",onClick:n,type:"button",children:[s.jsx(Dt,{"aria-hidden":"true"}),t]})]})}function hc({label:e}){return s.jsxs("div",{className:"history-loading-state","aria-busy":"true","aria-label":e,role:"status",children:[s.jsx("span",{className:"loading-spinner","aria-hidden":"true"}),s.jsxs("div",{className:"history-loading-copy",children:[s.jsx("strong",{children:e}),s.jsx("span",{"aria-hidden":"true"}),s.jsx("span",{"aria-hidden":"true"}),s.jsx("span",{"aria-hidden":"true"})]})]})}function Rs({failedSend:e,onRetry:t,t:n}){const r={network:n.sendFailedNetwork,timeout:n.sendFailedTimeout,permission:n.sendFailedPermission,subscription:n.sendFailedSubscription,"missing-resource":n.sendFailedMissingResource,unknown:n.sendFailedUnknown}[e.kind];return s.jsxs("div",{className:"failed-send-notice",role:"alert",children:[s.jsx(ke,{"aria-hidden":"true"}),s.jsxs("span",{children:[s.jsx("strong",{children:n.sendFailed}),r]}),s.jsxs("button",{disabled:e.retrying,onClick:t,type:"button",children:[s.jsx(Dt,{"aria-hidden":"true",className:e.retrying?"spin":void 0}),e.retrying?n.retrying:n.retrySend]})]})}function mc({busy:e,label:t,stopLabel:n,onStop:r}){return s.jsxs("div",{className:"typing-line",role:"status",children:[s.jsx("span",{className:"typing-indicator","aria-hidden":"true"}),s.jsx("span",{children:t}),s.jsxs("button",{className:"stop-generating-button",disabled:e,onClick:r,type:"button",children:[s.jsx(co,{"aria-hidden":"true"}),n]})]})}function pc({label:e,onClick:t}){return s.jsxs("button",{className:"scroll-latest-button",type:"button","aria-label":e,title:e,onClick:t,children:[s.jsx(ta,{"aria-hidden":"true"}),s.jsx("span",{children:e})]})}const gc=/\u001B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g,yc=/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F-\u009F\u00AD\u061C\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\uFEFF]/g,bc=new Set(["","{}","[]","null","undefined",'""']);function nn(e){return e.replace(/\s+/g," ").trim()}function ie(e,t){return typeof e[t]=="string"?e[t]:""}function Ms(e,t){return typeof e[t]=="number"?e[t]:void 0}function Nt(e,t){return e.length<=t?e:`${e.slice(0,t)}...`}function Rn(e){const t=[],n=ie(e,"file_path")||ie(e,"filePath");n&&t.push({label:"Path",value:n,isFilePath:!0});const r=Ms(e,"offset"),i=Ms(e,"limit");if(r!==void 0||i!==void 0){const o=[];r!==void 0&&o.push(`line ${r+1}`),i!==void 0&&o.push(`to ${r!==void 0?r+i:i}`),t.push({label:"Range",value:o.join(" ")})}return t}function xc(e){return typeof e!="string"?"":e.replace(/\r\n?/g,`
|
|
7
|
+
`).replace(gc,"").replace(yc,"").trim()}function Kn(e){const t=xc(e);return bc.has(t)?"":t}function Sc(e){return Kn(e).length>0}function Qn(e){const t=Kn(e);if(!t)return"";try{const n=JSON.parse(t);if(n&&typeof n=="object"&&!Array.isArray(n)){const r=typeof n.query=="string"?nn(n.query):"";if(r)return r;const i=typeof n.command=="string"?nn(n.command):"";if(i)return i;const o=typeof n.description=="string"?nn(n.description):"";if(o)return o}}catch{}return nn(t)}function wc(e,t){if(!t)return[];switch((e??"").toLowerCase()){case"read":return Rn(t);case"write":{const r=Rn(t),i=ie(t,"content");return i&&r.push({label:"Content",isDiff:!0,value:"",diffNew:Nt(i,500)}),r}case"edit":{const r=Rn(t),i=ie(t,"old_string")||ie(t,"oldString"),o=ie(t,"new_string")||ie(t,"newString");return(i||o)&&r.push({label:"Change",isDiff:!0,value:"",diffOld:Nt(i,300),diffNew:Nt(o,300)}),r}case"bash":{const r=ie(t,"command");return r?[{label:"Command",value:r,isCode:!0}]:[]}case"websearch":{const r=ie(t,"query");return r?[{label:"Query",value:r}]:[]}case"webfetch":{const r=[],i=ie(t,"url");i&&r.push({label:"URL",value:i});const o=ie(t,"prompt");return o&&r.push({label:"Prompt",value:Nt(o,200)}),r}case"glob":{const r=ie(t,"pattern");return r?[{label:"Pattern",value:r}]:[]}case"grep":{const r=[],i=ie(t,"pattern");i&&r.push({label:"Pattern",value:i,isCode:!0});const o=ie(t,"path");return o&&r.push({label:"In",value:o,isFilePath:!0}),r}default:{const r=[],i=ie(t,"command");if(i)return[{label:"Command",value:i,isCode:!0}];const o=ie(t,"file_path")||ie(t,"filePath");o&&r.push({label:"Path",value:o,isFilePath:!0});const d=ie(t,"description");d&&r.push({label:"Description",value:Nt(d,200)});const l=ie(t,"query");l&&r.push({label:"Query",value:l});const b=ie(t,"url");return b&&r.push({label:"URL",value:b}),r}}}function Ts(e){return e.role==="tool"?!0:e.type!=="info"?!1:!/^Error:/i.test(e.content.trim())}function cr(e){const t=[];for(const r of e){const i=r.toolName?.trim();i&&!t.includes(i)&&t.push(i)}return t.length?t.join(", "):e.map(r=>Qn(r.content)).find(Boolean)??""}function lr(e,t){return`${e.historyKey??e.timestamp??e.toolName??e.content.slice(0,24)??"message"}:${t}`}function vc(e){const t=[];for(let n=0;n<e.length;n+=1){const r=e[n];if(!Ts(r)){t.push({type:"message",index:n,message:r});continue}const i=[];let o=n;for(;o<e.length&&Ts(e[o]);)i.push({index:o,message:e[o]}),o+=1;t.push({type:"toolGroup",entries:i,id:`tool-group:${i.map(({index:d,message:l})=>lr(l,d)).join("|")}`}),n=o-1}return t}function kc(e,t){return e.type==="message"?e.index===t:e.entries.some(n=>n.index===t)}function jc({message:e,onClose:t,onCopy:n,t:r}){if(!e)return null;const i=e.content;return s.jsxs("section",{className:"message-source-inline","aria-label":r.markdownSource,children:[s.jsxs("header",{className:"inline-detail-header",children:[s.jsxs("div",{className:"inline-detail-title",children:[s.jsx("strong",{children:r.markdownSource}),s.jsx("span",{children:e.type==="info"?"info":e.role})]}),s.jsxs("div",{className:"row-actions",children:[s.jsx("button",{className:"icon-button",onClick:()=>n(i),type:"button",title:r.copyMarkdownSource,children:s.jsx($t,{"aria-hidden":"true"})}),s.jsx("button",{className:"icon-button",onClick:t,type:"button",title:r.closeSource,children:s.jsx(ke,{"aria-hidden":"true"})})]})]}),s.jsx("pre",{className:"json-box markdown-source-box",children:i})]})}function Cc({field:e}){return e.isDiff?s.jsxs("div",{className:"tool-field diff",children:[s.jsx("span",{children:e.label}),e.diffOld?s.jsxs("pre",{className:"tool-diff old",children:[s.jsx("b",{children:"-"}),e.diffOld]}):null,e.diffNew?s.jsxs("pre",{className:"tool-diff new",children:[s.jsx("b",{children:"+"}),e.diffNew]}):null]}):s.jsxs("div",{className:`tool-field ${e.isCode?"code":""} ${e.isFilePath?"path":""}`,children:[s.jsx("span",{children:e.label}),s.jsx("pre",{children:e.value})]})}function Ic({message:e,onCopy:t,t:n}){const r=wc(e.toolName,e.toolInput),i=Qn(e.content),o=Kn(e.content),d=Sc(e.content)&&!r.length,l=e.toolName??n.tool;return s.jsxs("section",{className:"tool-detail-card",children:[s.jsxs("header",{children:[s.jsx("span",{className:"tool-detail-icon",children:s.jsx(Wn,{"aria-hidden":"true"})}),s.jsxs("div",{children:[s.jsx("strong",{children:l}),i?s.jsx("small",{title:i,children:i}):null]}),s.jsx("button",{className:"icon-button",onClick:()=>t(e.content),type:"button",title:n.copyOutput,children:s.jsx($t,{"aria-hidden":"true"})})]}),r.length?s.jsx("div",{className:"tool-fields",children:r.map((b,p)=>s.jsx(Cc,{field:b},`${b.label}:${p}`))}):null,d?s.jsx("pre",{className:"json-box compact",children:o}):null]})}function dr({messages:e,onClose:t,onCopy:n,t:r}){if(!e.length)return null;const o=e.filter(p=>p.role==="tool").length||e.length,d=r.toolCallCount(o),l=cr(e),b=e.map(p=>p.content).join(`
|
|
8
|
+
|
|
9
|
+
`);return s.jsxs("section",{className:"tool-inline-panel","aria-label":r.toolDetails,children:[s.jsxs("header",{className:"inline-detail-header",children:[s.jsxs("div",{className:"inline-detail-title",children:[s.jsx("strong",{children:d}),s.jsx("span",{title:l,children:l||r.toolDetail})]}),s.jsxs("div",{className:"row-actions",children:[s.jsx("button",{className:"icon-button",onClick:()=>n(b),type:"button",title:r.copyOutput,children:s.jsx($t,{"aria-hidden":"true"})}),s.jsx("button",{className:"icon-button",onClick:t,type:"button",title:r.closeToolDetails,children:s.jsx(ke,{"aria-hidden":"true"})})]})]}),s.jsx("div",{className:"tool-detail-list",children:e.map((p,g)=>s.jsx(Ic,{message:p,onCopy:n,t:r},`${p.historyKey??p.timestamp??p.toolName??"tool"}:${g}`))})]})}const Nc=a.lazy(async()=>Je(()=>import("./mermaid-O7DHMXV3-COP4-7nw.js").then(e=>e.a),__vite__mapDeps([0,1,2,3])).then(e=>({default:e.MessageMarkdown})));function Rc({activeMatch:e,baseCwd:t,message:n,onCopy:r,onCloseSource:i,onCloseTool:o,onOpenAttachment:d,onOpenRemoteFile:l,onToggleSource:b,onToggleTool:p,sourceOpen:g,toolOpen:j,t:h}){const k=n.role==="tool"?Qn(n.content):"";return s.jsxs("article",{className:`message ${n.role} ${n.type==="info"?"info":""} ${e?"match":""}`,children:[s.jsxs("div",{className:"message-meta",children:[s.jsx("span",{children:n.type==="info"?"info":n.role}),s.jsxs("div",{className:"message-meta-side",children:[s.jsx("time",{children:zn(n.timestamp)}),s.jsxs("div",{className:"message-actions","aria-label":h.messageActions,role:"group",children:[s.jsx("button",{"aria-label":h.copyMessage,onClick:()=>r(n.content),title:h.copyMessage,type:"button",children:s.jsx($t,{"aria-hidden":"true"})}),s.jsx("button",{"aria-label":h.viewMarkdownSource,"aria-expanded":g,onClick:b,title:g?h.hideMarkdownSource:h.viewMarkdownSource,type:"button",children:s.jsx(ya,{"aria-hidden":"true"})})]})]})]}),n.role==="tool"?s.jsxs("button",{className:"tool-inline-summary","aria-expanded":j,onClick:p,type:"button",children:[s.jsxs("span",{children:[s.jsx(go,{"aria-hidden":"true"}),n.toolName??h.tool]}),k?s.jsx("small",{children:k}):null]}):n.role==="assistant"?s.jsx(a.Suspense,{fallback:s.jsx("pre",{children:n.content}),children:s.jsx(Nc,{baseCwd:t,content:n.content,onOpenRemoteFile:l})}):s.jsx("pre",{children:n.content}),n.images?.length?s.jsxs("div",{className:"message-files",children:[n.images.map(R=>s.jsxs("button",{className:"file-pill",onClick:()=>l(R,t),title:R,type:"button",children:[s.jsx(qn,{"aria-hidden":"true"}),ln(R)]},R)),s.jsxs("button",{className:"file-pill",onClick:()=>d(n.images??[]),type:"button",children:[s.jsx(ja,{"aria-hidden":"true"}),h.preview]})]}):null,g?s.jsx(jc,{message:n,onClose:i,onCopy:r,t:h}):null,n.role==="tool"&&j?s.jsx(dr,{messages:[n],onClose:o,onCopy:r,t:h}):null]})}function Mc({matchCount:e,query:t,onChange:n,onNext:r,t:i}){return s.jsxs("div",{className:"message-search-bar",children:[s.jsx(Hn,{"aria-hidden":"true"}),s.jsx("input",{value:t,onChange:o=>n(o.target.value),onKeyDown:o=>{o.key==="Enter"&&r()},placeholder:i.searchThisSession}),s.jsx("span",{children:t.trim()?i.messageSearchMatches(e):i.allMessages}),t?s.jsx("button",{"aria-label":i.clearMessageSearch,className:"icon-button mini-button",onClick:()=>n(""),type:"button",children:s.jsx(ke,{"aria-hidden":"true"})}):null]})}function Tc({activeMatch:e,expanded:t,messages:n,onToggle:r}){const i=n.filter(l=>l.role==="tool").length||n.length,o=cr(n),d=i===1?"1 tool call":`${i} tool calls`;return s.jsxs("button",{className:`tool-group-bubble ${e?"match":""} ${t?"expanded":""}`,type:"button",onClick:r,"aria-expanded":t,"aria-label":o?`${d}: ${o}`:d,children:[s.jsxs("span",{className:"tool-group-header",children:[s.jsxs("span",{className:"tool-group-title",children:[s.jsx(Wn,{"aria-hidden":"true"}),s.jsx("strong",{children:d})]}),s.jsx(ca,{className:"tool-group-chevron","aria-hidden":"true"})]}),o?s.jsx("span",{className:"tool-group-summary",children:o}):null]})}const an=160,Ac=120;function rt(e){return Math.max(0,e-an)}function Ec(e,t){const n=t.length,[r,i]=a.useState(()=>({sessionId:e,start:rt(n),total:n})),o=a.useMemo(()=>r.sessionId!==e?rt(n):r.total===n||n<r.total?Math.min(r.start,rt(n)):r.start+an>=r.total?rt(n):r.start,[e,r,n]);a.useLayoutEffect(()=>{r.sessionId===e&&r.start===o&&r.total===n||i({sessionId:e,start:o,total:n})},[e,o,r,n]);const d=a.useCallback(()=>{i(g=>({sessionId:e,start:Math.max(0,(g.sessionId===e?g.start:rt(n))-Ac),total:n}))},[e,n]),l=a.useCallback(g=>{const j=t.findIndex(k=>kc(k,g));if(j<0||j>=o&&j<o+an)return!1;const h=Math.min(rt(n),Math.max(0,j-40));return i({sessionId:e,start:h,total:n}),!0},[t,e,o,n]),b=a.useCallback(()=>{i({sessionId:e,start:rt(n),total:n})},[e,n]),p=Math.min(n,o+an);return{ensureMessageVisible:l,hiddenItemCount:o,hiddenLaterItemCount:Math.max(0,n-p),revealEarlier:d,revealLatest:b,visibleItems:t.slice(o,p)}}function _c({activeSession:e,activeUsage:t,messages:n,renameTitle:r,busy:i,t:o,onBrowseFiles:d,onClose:l,onExport:b,onJumpToMessage:p,onRename:g,onRenameTitleChange:j,onToggleArchived:h,onTogglePinned:k,onViewChanges:R}){const[C,c]=a.useState(""),I=a.useRef(null),f=or(l,I),w=a.useMemo(()=>rr(e),[e]),y=a.useMemo(()=>{const N=C.trim().toLowerCase();return N?n.map((P,z)=>({message:P,index:z})).filter(({message:P})=>P.role!=="user"&&P.role!=="assistant"?!1:P.content.toLowerCase().includes(N)).slice(0,20):[]},[n,C]),m=N=>{N.preventDefault(),g()};return s.jsxs("div",{"aria-labelledby":"session-detail-title","aria-modal":"true",className:"session-detail-drawer",ref:f,role:"dialog",tabIndex:-1,children:[s.jsx("div",{className:"drawer-backdrop",onClick:l,"aria-hidden":"true"}),s.jsxs("aside",{className:"session-detail-panel",children:[s.jsxs("header",{className:"drawer-header",children:[s.jsxs("div",{children:[s.jsx("span",{className:"eyebrow",children:e.agent}),s.jsx("strong",{id:"session-detail-title",title:qe(e),children:qe(e)})]}),s.jsx("button",{"aria-label":o.closeSessionDetails,className:"icon-button",onClick:l,ref:I,type:"button",children:s.jsx(ke,{"aria-hidden":"true"})})]}),s.jsxs("form",{className:"detail-title-form",onSubmit:m,children:[s.jsx("input",{value:r,onChange:N=>j(N.target.value),placeholder:qe(e)}),s.jsx("button",{className:"primary-button",disabled:i,type:"submit",children:o.rename})]}),s.jsxs("div",{className:"detail-info-grid",children:[s.jsxs("div",{children:[s.jsx(gt,{"aria-hidden":"true"}),s.jsx("span",{children:o.workingDirectory}),s.jsx("strong",{title:e.cwd,children:e.cwd})]}),s.jsxs("div",{children:[s.jsx(Ha,{"aria-hidden":"true"}),s.jsx("span",{children:o.messages}),s.jsx("strong",{children:n.filter(N=>N.role==="user"||N.role==="assistant").length})]}),s.jsxs("div",{children:[s.jsx(Da,{"aria-hidden":"true"}),s.jsx("span",{children:o.session}),s.jsx("strong",{title:e.sessionId,children:e.sessionId})]}),s.jsxs("div",{children:[s.jsx(Wn,{"aria-hidden":"true"}),s.jsx("span",{children:o.runtime}),s.jsx("strong",{children:e.runtime.state})]})]}),e.branch||e.diffStat?s.jsxs("button",{className:"detail-command-card",type:"button",onClick:R,children:[s.jsx(Js,{"aria-hidden":"true"}),s.jsxs("span",{children:[e.branch??o.changes,e.diffStat?` · +${e.diffStat.additions} -${e.diffStat.deletions}`:""]})]}):null,s.jsxs("label",{className:"detail-search",children:[s.jsx(Hn,{"aria-hidden":"true"}),s.jsx("input",{value:C,onChange:N=>c(N.target.value),placeholder:o.searchMessages}),C.trim()?s.jsx("small",{children:o.searchResultCount(y.length)}):null]}),C.trim()&&y.length?s.jsx("div",{className:"detail-search-results",children:y.map(({message:N,index:P})=>s.jsxs("button",{type:"button",onClick:()=>{p(P,C),l()},children:[s.jsx("span",{children:N.role}),s.jsx("strong",{children:N.content})]},`${N.historyKey??N.timestamp??P}:${P}`))}):null,C.trim()?null:s.jsxs(s.Fragment,{children:[s.jsxs("button",{className:"detail-command-card",type:"button",onClick:d,children:[s.jsx(gt,{"aria-hidden":"true"}),s.jsx("span",{children:o.browseFiles})]}),s.jsxs("button",{className:"detail-command-card",type:"button",onClick:()=>{navigator.clipboard?.writeText(w)},children:[s.jsx(ma,{"aria-hidden":"true"}),s.jsx("span",{title:w,children:w})]}),s.jsxs("div",{className:"detail-action-grid",children:[s.jsxs("button",{className:"icon-text-button",disabled:i,type:"button",onClick:k,children:[s.jsx(Bn,{"aria-hidden":"true"}),e.pinned?o.unpin:o.pin]}),s.jsxs("button",{className:"icon-text-button",disabled:i,type:"button",onClick:h,children:[s.jsx(On,{"aria-hidden":"true"}),e.archived?o.unarchive:o.archive]}),s.jsxs("button",{className:"icon-text-button",type:"button",onClick:b,children:[s.jsx(Wi,{"aria-hidden":"true"}),o.exportSession]})]}),t?s.jsxs("p",{className:"detail-usage",children:[o.usage,": ",t.limits?.fiveHour?.usedPercent??"-","% 5h ·"," ",t.limits?.weekly?.usedPercent??"-","% weekly"]}):null,s.jsxs("p",{className:"detail-usage",children:[o.created," ",zn(e.createdAt)]})]})]})]})}function Dc({activeSession:e,activeSessionId:t,activeModelOptions:n,activeQueue:r,activeUsage:i,agent:o,approvalMode:d,attachments:l,busy:b,cwd:p,draft:g,effort:j,errorText:h,failedSend:k,fastMode:R,historyLoading:C,messages:c,model:I,phase:f,quickReplies:w,renameTitle:y,respondingSessionIds:m,sendShortcut:N,skills:P,uploadBusy:z,detailsOpen:ge,t:T,onApprovalModeChange:ae,onBrowseFiles:de,onCancelQueuedTurn:oe,onClearInterrupt:ue,onDraftChange:te,onDetailsOpenChange:ye,onEffortChange:_,onExportActiveSession:E,onFastModeChange:W,onRetryFailedSend:F,onModelChange:ce,onOpenRemoteFile:be,onInterrupt:J,onRetry:Q,onRefreshSessions:B,onRefreshSkills:Z,onRenameSession:ne,onRenameTitleChange:fe,onRemoveAttachment:X,onRestoreSnapshot:V,onSendShortcutChange:se,onSubmit:je,onToggleArchived:A,onTogglePinned:U,onUploadFiles:De,onViewChanges:Pe}){const[Fe,he]=a.useState(""),[me,$e]=a.useState(0),[xe,Te]=a.useState(null),[Be,Ce]=a.useState(null),[Se,Ie]=a.useState(!1),[Ae,Ue]=a.useState([]),we=a.useRef(null),Le=a.useRef([]),Ve=a.useRef(null),He=a.useRef(null),Ee=a.useRef(0),x=a.useMemo(()=>vc(c),[c]),{ensureMessageVisible:O,hiddenItemCount:S,hiddenLaterItemCount:D,revealEarlier:G,revealLatest:pe,visibleItems:Ze}=Ec(t,x),Ye=a.useMemo(()=>!!(k&&Ze.some($=>$.type==="message"&&$.message.historyKey===k.historyKey)),[k,Ze]),lt=a.useRef(null),{copyText:We,feedback:Lt}=dc(T.messageCopied,T.copyFailed),Oe=a.useMemo(()=>{const $=Fe.trim().toLowerCase();return $?c.map((K,re)=>({index:re,message:K})).filter(({message:K})=>K.content.toLowerCase().includes($)):[]},[Fe,c]),bt=$=>{const K=O($),re=()=>Le.current[$]?.scrollIntoView({behavior:"smooth",block:"center"});K?requestAnimationFrame(()=>requestAnimationFrame(re)):re()},un=()=>{if(!Oe.length)return;const $=me%Oe.length,K=Oe[$]?.index;typeof K=="number"&&bt(K),$e(re=>(re+1)%Oe.length)},Xe=a.useCallback(()=>{const $=we.current;$&&($.scrollTop=$.scrollHeight,Ie(!1))},[]),_e=a.useCallback(($="smooth")=>{const K=()=>{const re=we.current;re&&(re.scrollTo({top:re.scrollHeight,behavior:$}),Ie(!1))};D>0?(pe(),requestAnimationFrame(()=>requestAnimationFrame(K))):K()},[D,pe]),Ot=()=>{const $=we.current;if(!$)return;const K=$.scrollHeight-$.scrollTop-$.clientHeight;Ie(K>180)},qt=a.useMemo(()=>{const $=c.at(-1);return $?`${c.length}:${$.historyKey??""}:${$.timestamp??""}:${$.content.length}`:"0"},[c]);a.useLayoutEffect(()=>{const $=lt.current,K=we.current;if($&&K){K.scrollTop=$.top+K.scrollHeight-$.height,lt.current=null;return}Ve.current!==t&&(Ve.current=t,He.current=t,Ee.current=0,Te(null),Ce(null));const re=Ee.current===0&&c.length>0;Ee.current=c.length;const ve=we.current;if(!ve)return;if(re||He.current===t&&(!C||c.length>0)){Xe();const ut=requestAnimationFrame(Xe),Ne=window.setTimeout(Xe,120),St=window.setTimeout(Xe,360);return He.current=null,Ie(!1),()=>{cancelAnimationFrame(ut),window.clearTimeout(Ne),window.clearTimeout(St)}}ve.scrollHeight-ve.scrollTop-ve.clientHeight<240&&Xe()},[t,C,qt,c.length,f,Xe]);const Bt=Oe.length&&Fe.trim()?Oe[(me+Oe.length-1)%Oe.length]?.index:void 0,Ht=e?qe(e):T.newSession,dt=e?.cwd??(p.trim().length>0&&p!=="."?p:""),xt=e?.agent??o,fn=xt==="codex"?"Codex":"Claude";return s.jsxs("section",{className:"chat-pane","aria-label":T.chat,children:[s.jsxs("header",{className:"chat-header",children:[s.jsxs("button",{className:"chat-title-block chat-title-button",type:"button",onClick:()=>e&&ye(!0),children:[s.jsx("span",{className:`agent-status-pill ${xt}`,children:fn}),s.jsx("h1",{title:Ht,children:Ht}),dt?s.jsx("p",{title:dt,children:dt}):null,e?.branch||e?.diffStat?s.jsxs("div",{className:"header-metadata",children:[e.branch?s.jsx("span",{children:e.branch}):null,e.diffStat?s.jsxs("span",{children:["+",e.diffStat.additions," -",e.diffStat.deletions]}):null,e.runtime.state?s.jsx("span",{children:e.runtime.state}):null,e.terminal?.mode?s.jsx("span",{children:e.terminal.mode}):null]}):null]}),s.jsxs("div",{className:"header-actions",children:[s.jsx("button",{"aria-label":T.viewChanges,type:"button",className:"icon-button",onClick:()=>e&&Pe(e.sessionId),title:T.viewChanges,disabled:!e,children:s.jsx(Js,{"aria-hidden":"true"})}),s.jsx("button",{"aria-label":e?.pinned?T.unpin:T.pin,type:"button",className:`icon-button ${e?.pinned?"selected":""}`,onClick:U,title:e?.pinned?T.unpin:T.pin,disabled:!e||b,children:s.jsx(Bn,{"aria-hidden":"true"})}),s.jsx("button",{"aria-label":e?.archived?T.unarchive:T.archive,type:"button",className:`icon-button ${e?.archived?"selected":""}`,onClick:A,title:e?.archived?T.unarchive:T.archive,disabled:!e||b,children:s.jsx(On,{"aria-hidden":"true"})}),s.jsx("button",{"aria-label":T.restoreSnapshot,type:"button",className:"icon-button",onClick:V,title:T.restoreSnapshot,children:s.jsx(Ya,{"aria-hidden":"true"})}),s.jsx("button",{"aria-label":T.refreshSessions,type:"button",className:"icon-button",onClick:B,title:T.refreshSessions,children:s.jsx(Dt,{"aria-hidden":"true"})})]})]}),s.jsxs("div",{className:"chat-notices","aria-live":"polite",children:[h?s.jsx(fc,{message:h,retryLabel:T.retry,onRetry:Q}):null,k&&!Ye?s.jsx(Rs,{failedSend:k,onRetry:()=>{F()},t:T}):null,e?.interruptReason?s.jsxs("div",{className:"notice warning",children:[s.jsx(Mt,{"aria-hidden":"true"}),s.jsx("span",{children:e.interruptReason.humanText||e.interruptReason.kind}),s.jsx("button",{className:"icon-text-button",disabled:b,onClick:ue,type:"button",children:T.clear})]}):null,e?.stallWarning?s.jsxs("div",{className:"notice warning",children:[s.jsx(Gs,{"aria-hidden":"true"}),s.jsx("span",{children:e.stallWarning.humanText||T.agentMayBeStalled})]}):null]}),f==="missing-pair"?s.jsxs("div",{className:"empty-state",children:[s.jsx(Zs,{"aria-hidden":"true"}),s.jsx("h2",{children:T.openDaemonWebLink}),s.jsx("p",{children:T.openDaemonWebLinkHint}),s.jsx("code",{children:"vibelet --access=quick"})]}):s.jsxs("div",{className:"message-scroll","data-rendered-items":Ze.length,"data-total-messages":c.length,ref:we,onScroll:Ot,children:[s.jsx(Mc,{matchCount:Oe.length,query:Fe,onChange:$=>{he($),$e(0)},onNext:un,t:T}),C&&c.length===0?s.jsx(hc,{label:T.loadingHistory}):null,!C&&c.length===0?s.jsxs("div",{className:"empty-state compact",children:[s.jsx(cn,{"aria-hidden":"true"}),s.jsx("h2",{children:e?T.noVisibleMessages:T.startDaemonSession}),s.jsx("p",{children:T.emptyChatHint})]}):null,S>0?s.jsx("div",{className:"conversation-window-gate",children:s.jsx("button",{type:"button",onClick:()=>{const $=we.current;$&&(lt.current={height:$.scrollHeight,top:$.scrollTop}),G()},children:T.showEarlierMessages(S)})}):null,Ze.map($=>{if($.type==="toolGroup"){const Ne=$.entries.map(Ke=>Ke.message),St=$.entries.some(Ke=>Bt===Ke.index),Ut=Be===$.id;return s.jsx("div",{className:"message-frame tool info",ref:Ke=>{for(const hn of $.entries)Le.current[hn.index]=Ke},children:s.jsxs("div",{className:"inline-message-stack",children:[s.jsx(Tc,{activeMatch:St,expanded:Ut,messages:Ne,onToggle:()=>Ce(Ke=>Ke===$.id?null:$.id)}),Ut?s.jsx(dr,{messages:Ne,onClose:()=>Ce(null),onCopy:We,t:T}):null]})},$.id)}const{index:K,message:re}=$,ve=lr(re,K),Wt=xe===ve,zt=Be===ve,ut=k?.historyKey===re.historyKey?k:null;return s.jsxs("div",{className:`message-frame ${re.role} ${re.type==="info"?"info":""}`,ref:Ne=>{Le.current[K]=Ne},children:[s.jsx(Rc,{activeMatch:Bt===K,baseCwd:e?.cwd,message:re,onCopy:We,onCloseSource:()=>Te(null),onCloseTool:()=>Ce(null),onOpenAttachment:Ue,onOpenRemoteFile:be,onToggleSource:()=>Te(Ne=>Ne===ve?null:ve),onToggleTool:()=>Ce(Ne=>Ne===ve?null:ve),sourceOpen:Wt,toolOpen:zt,t:T}),ut?s.jsx(Rs,{failedSend:ut,onRetry:()=>{F()},t:T}):null]},ve)}),D>0?s.jsx("div",{className:"conversation-window-gate",children:s.jsx("button",{type:"button",onClick:()=>_e("auto"),children:T.showLatestMessages(D)})}):null,t&&m.has(t)?s.jsx(mc,{busy:b,label:T.agentResponding,stopLabel:T.stopGenerating,onStop:J}):null,Se?s.jsx(pc,{label:T.newMessages,onClick:()=>_e()}):null]}),s.jsx(uc,{feedback:Lt}),f!=="missing-pair"?s.jsx(ac,{activeModelOptions:n,activeQueue:r,agent:o,approvalMode:d,attachments:l,busy:b,draft:g,effort:j,fastMode:R,model:I,phase:f,quickReplies:w,sendShortcut:N,skills:P,uploadBusy:z,onApprovalModeChange:ae,onCancelQueuedTurn:oe,onDraftChange:te,onEffortChange:_,onFastModeChange:W,onModelChange:ce,onRemoveAttachment:X,onRefreshSkills:Z,onSendShortcutChange:se,onSubmit:je,onUploadFiles:De,t:T}):null,ge&&e?s.jsx(_c,{activeSession:e,activeUsage:i,busy:b,messages:c,renameTitle:y,t:T,onBrowseFiles:()=>{ye(!1),de()},onClose:()=>ye(!1),onExport:E,onJumpToMessage:($,K)=>{he(K),$e(0),bt($)},onRename:ne,onRenameTitleChange:fe,onToggleArchived:A,onTogglePinned:U,onViewChanges:()=>Pe(e.sessionId)}):null,s.jsx(cc,{cwd:e?.cwd,paths:Ae,t:T,onClose:()=>Ue([]),onOpenRemoteFile:be})]})}function Pc({value:e,t,onChange:n}){const r=[{tab:"session",label:t.sessionControls,Icon:Xs},{tab:"files",label:t.files,Icon:gt},{tab:"admin",label:t.settings,Icon:to}];return s.jsx("div",{className:"control-tabs",children:r.map(({tab:i,label:o,Icon:d})=>s.jsx("button",{"aria-label":o,"aria-pressed":e===i,className:e===i?"selected":"",onClick:()=>n(i),title:o,type:"button",children:s.jsx(d,{"aria-hidden":"true"})},i))})}const Fc=a.lazy(async()=>Je(()=>import("./FilesControlPanel-CM73JghJ.js"),__vite__mapDeps([4,1,2,5])).then(e=>({default:e.FilesControlPanel}))),$c=a.lazy(async()=>Je(()=>import("./ArchiveSyncPanel-CQW9sGn8.js"),__vite__mapDeps([6,1,2])).then(e=>({default:e.ArchiveSyncPanel}))),Lc=a.lazy(async()=>Je(()=>import("./ConnectionSettingsPanel-CvgjycC_.js"),__vite__mapDeps([7,1,2])).then(e=>({default:e.ConnectionSettingsPanel}))),Oc=a.lazy(async()=>Je(()=>import("./DaemonSettingsPanel-8WGOLUs-.js"),__vite__mapDeps([8,1,2])).then(e=>({default:e.DaemonSettingsPanel}))),qc=a.lazy(async()=>Je(()=>import("./LanguageSettingsPanel-3P8xvsNr.js"),__vite__mapDeps([9,1,2])).then(e=>({default:e.LanguageSettingsPanel}))),Bc=a.lazy(async()=>Je(()=>import("./NotificationSettingsPanel--Ov_1saA.js"),__vite__mapDeps([10,1,2])).then(e=>({default:e.NotificationSettingsPanel}))),Hc=a.lazy(async()=>Je(()=>import("./SavedTargetsPanel-B4UDMnAq.js"),__vite__mapDeps([11,1,2])).then(e=>({default:e.SavedTargetsPanel}))),Wc=a.lazy(async()=>Je(()=>import("./DiffDrawer-8wyT-3Bj.js"),__vite__mapDeps([12,1,2,5])).then(e=>({default:e.DiffDrawer})));function As({t:e}){return s.jsxs("div",{className:"control-panel-loading","aria-live":"polite","aria-busy":"true",children:[s.jsx("span",{className:"loading-spinner","aria-hidden":"true"}),s.jsx("span",{children:e.loadingControls})]})}function zc({client:e,id:t,sessions:n,t:r,close:i}){const o=n.find(d=>d.sessionId===t);return!o||!e?null:s.jsx(a.Suspense,{fallback:null,children:s.jsx(Wc,{client:e,sessionId:o.sessionId,sessionTitle:qe(o),t:r,onClose:i})})}function Uc({activeApproval:e,activeQuestion:t,busy:n,questionAnswers:r,t:i,onCancelQuestion:o,onQuestionChoice:d,onRespondApproval:l,onRespondQuestion:b}){const p=!!(e||t);return s.jsxs(s.Fragment,{children:[p?null:s.jsxs("section",{className:"control-section",children:[s.jsx("h2",{children:i.pendingActions}),s.jsx("p",{className:"empty-copy",children:i.noPendingActions})]}),e?s.jsxs("section",{className:"attention-panel",children:[s.jsxs("div",{className:"attention-head",children:[s.jsx(cn,{"aria-hidden":"true"}),s.jsxs("div",{children:[s.jsx("h2",{children:i.approvalRequired}),s.jsx("p",{children:e.toolName})]})]}),s.jsx("p",{children:e.description}),s.jsx("pre",{children:sr(e.input)}),s.jsxs("div",{className:"attention-actions",children:[s.jsxs("button",{type:"button",className:"danger-button",onClick:()=>l(!1),disabled:n,children:[s.jsx(ke,{"aria-hidden":"true"}),i.deny]}),s.jsxs("button",{type:"button",className:"approve-button",onClick:()=>l(!0),disabled:n,children:[s.jsx(at,{"aria-hidden":"true"}),i.approve]})]})]}):null,t?s.jsxs("section",{className:"attention-panel",children:[s.jsxs("div",{className:"attention-head",children:[s.jsx(Zs,{"aria-hidden":"true"}),s.jsxs("div",{children:[s.jsx("h2",{children:i.inputNeeded}),s.jsxs("p",{children:[t.questions.length," question",t.questions.length>1?"s":""]})]})]}),t.questions.map(g=>s.jsxs("div",{className:"question-block",children:[s.jsx("strong",{children:g.question}),s.jsx("div",{className:"choice-list",children:g.options.map(j=>{const h=(r[g.id]??[]).includes(j.label);return s.jsxs("button",{className:h?"selected":"",onClick:()=>d(g.id,j.label,g.multiSelect),type:"button",children:[s.jsx("span",{children:j.label}),j.description?s.jsx("small",{children:j.description}):null]},j.label)})})]},g.id)),s.jsxs("div",{className:"attention-actions",children:[s.jsxs("button",{type:"button",className:"danger-button",onClick:o,disabled:n,children:[s.jsx(ke,{"aria-hidden":"true"}),i.cancel]}),s.jsxs("button",{type:"button",className:"approve-button",onClick:b,disabled:n,children:[s.jsx(at,{"aria-hidden":"true"}),i.submit]})]})]}):null]})}function Es({session:e,active:t,responding:n,tagLabels:r,t:i,onSelect:o,onContextMenu:d,onViewChanges:l}){const b=!!e.diffStat&&(e.diffStat.additions>0||e.diffStat.deletions>0),p=qe(e);return s.jsxs("button",{className:`session-row ${t?"active":""} ${e.archived?"archived":""}`,onContextMenu:d,onClick:o,title:p,type:"button",children:[s.jsxs("span",{className:"session-row-head",children:[s.jsx("strong",{children:p}),n?s.jsx(fa,{"aria-label":i.agentResponding}):null]}),s.jsx("span",{children:e.cwd}),r?.length?s.jsx("span",{className:"directory-tag-row",title:i.directoryTags,children:r.map(g=>s.jsx("em",{children:g},g))}):null,s.jsxs("small",{children:[e.agent," · ",zn(e.lastActivityAt),e.branch?` · ${e.branch}`:"",e.diffStat&&!l?` · +${e.diffStat.additions}/-${e.diffStat.deletions}`:"",e.pinned?` · ${i.pinned}`:"",e.archived?` · ${i.archived}`:""]}),b&&l&&e.diffStat?s.jsxs("span",{className:"session-diff-badge",role:"button",tabIndex:0,title:i.viewChanges,onClick:g=>{g.stopPropagation(),l()},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),l())},children:[s.jsxs("span",{className:"diff-add",children:["+",e.diffStat.additions]}),s.jsxs("span",{className:"diff-del",children:["-",e.diffStat.deletions]})]}):null]})}function Vc({ariaLabel:e,options:t,value:n,disabled:r,onChange:i}){return s.jsx("div",{className:"chip-group",role:"radiogroup","aria-label":e,children:t.map(o=>s.jsx("button",{"aria-checked":n===o.value,className:n===o.value?"selected":"",disabled:r,onClick:()=>i(o.value),role:"radio",title:o.title??o.label,type:"button",children:o.label},o.value))})}function Kc({agentFilter:e,t,onAgentFilterChange:n}){return s.jsxs("div",{className:"session-filter-panel",children:[s.jsx("span",{className:"filter-section-label",children:t.agentFilterLabel}),s.jsx(Vc,{ariaLabel:t.agentFilterLabel,value:e,options:[{value:"all",label:t.agentFilterAll},{value:"claude",label:t.agentFilterClaude},{value:"codex",label:t.agentFilterCodex}],onChange:n})]})}function it(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function Qc({activeSessionId:e,busy:t,collapsedFolders:n,currentCwd:r,displayName:i,directoryTags:o,folderCounts:d,groupFolders:l,groupedSessions:b,hideArchived:p,inventoryVersion:g,nextCursor:j,phase:h,pendingSessionIds:k,respondingSessionIds:R,search:C,sessionAgentFilter:c,sessionsCount:I,sinceFilter:f,statusText:w,t:y,visibleSessions:m,onLoadMore:N,onCopyResumeCommand:P,onCreateDirectory:z,onCreateSession:ge,onDeleteSession:T,onListDirectories:ae,onBrowseFolder:de,onEditFolderTags:oe,onOpenSessionDetails:ue,onResetFilters:te,onSearchChange:ye,onSearchCommit:_,onSelectSession:E,onToggleSessionArchived:W,onToggleSessionPinned:F,onSessionAgentFilterChange:ce,onSinceFilterChange:be,onToggleFolder:J,onToggleGroupFolders:Q,onToggleHideArchived:B,onToggleCollapse:Z,onViewChanges:ne}){const[fe,X]=a.useState(!1),[V,se]=a.useState(null),je=a.useRef(0),[A,U]=a.useState(null),De=a.useRef(null),Pe=c!=="all"||f!=="30d"||l||p,Fe=!!(j?.lastActivityAt&&j.sessionId),he=V?!!k?.has(V.session.sessionId):!1,me=x=>o[it(x)??"/"]??[],$e=h==="connected"?`${m.length}/${I} sessions · v${g??"-"}`:y.sameOriginAccess,xe=`${w} · ${$e}`;a.useEffect(()=>{if(!fe&&!V&&!A)return;const x=S=>{const D=S.target;D instanceof Node&&De.current?.contains(D)||(X(!1),se(null),U(null))},O=S=>{S.key==="Escape"&&(X(!1),se(null),U(null))};return document.addEventListener("pointerdown",x),document.addEventListener("keydown",O),()=>{document.removeEventListener("pointerdown",x),document.removeEventListener("keydown",O)}},[V,A,fe]);const Te=(x,O)=>{const S=x.currentTarget.getBoundingClientRect(),D=320,G=430,pe=it(O),Ze=pe??it(r)??".";se(null),U({...pe?{folder:pe}:{},cwd:Ze,x:Math.max(10,Math.min(S.right-D,window.innerWidth-D-10)),y:Math.max(10,Math.min(S.bottom+8,window.innerHeight-G-10))})},Be=(x,O)=>{x.preventDefault();const S=224,D=306;U(null),se({session:O,x:Math.min(x.clientX,window.innerWidth-S-10),y:Math.min(x.clientY,window.innerHeight-D-10)})},Ce=()=>se(null),Se=x=>{if(!V)return;const{session:O}=V;Ce(),x(O)},Ie=x=>{if(!A)return;const O=it(A.cwd)??it(A.folder)??it(r)??".";U(null),ge(O,x)},Ae=x=>{const O=it(x)??it(r)??".",S=++je.current;U(D=>D&&{...D,browser:{path:O,entries:[],loading:!0,loaded:!1,createMode:!1,newFolderName:"",creating:!1}}),ae(O).then(D=>{je.current===S&&U(G=>G?.browser?{...G,browser:{...G.browser,path:O,entries:D.filter(pe=>pe.isDirectory),loading:!1,loaded:!0,error:void 0}}:G)}).catch(D=>{je.current===S&&U(G=>G?.browser?{...G,browser:{...G.browser,path:O,entries:[],loading:!1,loaded:!0,error:D instanceof Error?D.message:String(D)}}:G)})},Ue=()=>{A&&Ae(A.cwd||A.folder||r||".")},we=()=>{U(x=>x?.browser?{...x,cwd:x.browser.path,browser:void 0}:x)},Le=x=>{U(O=>O?.browser?{...O,browser:{...O.browser,newFolderName:x,createError:void 0}}:O)},Ve=()=>{U(x=>x?.browser?{...x,browser:{...x.browser,createMode:!0,newFolderName:"",createError:void 0}}:x)},He=()=>{U(x=>x?.browser?{...x,browser:{...x.browser,createMode:!1,newFolderName:"",createError:void 0,creating:!1}}:x)},Ee=()=>{const x=A?.browser,O=x?.newFolderName??"";if(!x||O.trim().length===0||x.creating)return;if(O.includes("/")||O.includes("\\")||O==="."||O===".."){U(D=>D?.browser?{...D,browser:{...D.browser,createError:y.folderCreateFailed}}:D);return}const S=Dn(x.path,O);U(D=>D?.browser?{...D,browser:{...D.browser,creating:!0,createError:void 0}}:D),z(S).then(()=>{Ae(x.path)}).catch(D=>{U(G=>G?.browser?{...G,browser:{...G.browser,creating:!1,createError:D instanceof Error?D.message:String(D)}}:G)})};return s.jsxs("aside",{className:"session-rail","aria-label":y.sessions,children:[s.jsxs("div",{className:"brand-block",children:[s.jsx("div",{className:"brand-mark",children:s.jsx(An,{"aria-hidden":"true"})}),s.jsxs("div",{className:"brand-copy",children:[s.jsx("strong",{children:"Vibelet Web"}),s.jsx("span",{children:i??y.daemonWorkspace})]}),Z?s.jsx("button",{"aria-label":y.collapseSessionSidebar,className:"sidebar-panel-collapse-button session-rail-collapse-button",onClick:Z,title:y.collapseSessionSidebar,type:"button",children:s.jsx(Ys,{"aria-hidden":"true"})}):null]}),s.jsxs("div",{className:`connection-strip ${h}`,title:xe,children:[s.jsx(Qa,{"aria-hidden":"true"}),s.jsx("strong",{className:"connection-status-label",children:w})]}),s.jsxs("div",{className:"rail-list-heading",children:[s.jsx("span",{children:y.sessions}),s.jsx("button",{"aria-label":y.newSession,className:"rail-create-button",disabled:t||h!=="connected",onClick:x=>Te(x),title:y.newSession,type:"button",children:s.jsx(Tn,{"aria-hidden":"true"})})]}),s.jsxs("div",{className:"search-filter-wrap",ref:De,children:[s.jsxs("div",{className:"search-box",children:[s.jsx(Hn,{"aria-hidden":"true"}),s.jsx("input",{value:C,onBlur:_,onChange:x=>ye(x.target.value),onKeyDown:x=>{x.key==="Enter"&&_()},placeholder:y.searchSessions}),s.jsx("button",{"aria-expanded":fe,"aria-label":y.sessionFilters,className:`filter-toggle ${fe||Pe?"selected":""}`,onClick:()=>X(x=>!x),title:y.sessionFilters,type:"button",children:s.jsx(Ta,{"aria-hidden":"true"})})]}),fe?s.jsxs("div",{className:"filter-popover",role:"dialog","aria-label":y.sessionFilters,children:[s.jsx(Kc,{agentFilter:c,t:y,onAgentFilterChange:ce}),s.jsxs("div",{className:"filter-section",children:[s.jsx("span",{className:"filter-section-label",children:y.searchTimeRangeLabel}),s.jsx("div",{className:"rail-filters",role:"group","aria-label":y.searchTimeRangeLabel,children:["all","7d","30d","90d"].map(x=>s.jsx("button",{className:f===x?"selected":"",onClick:()=>be(x),type:"button",children:x==="all"?y.searchTimeRangeAllTime:x==="7d"?y.searchTimeRangeLast7Days:x==="30d"?y.searchTimeRangeLast30Days:y.searchTimeRangeLast90Days},x))})]}),s.jsxs("div",{className:"filter-section",children:[s.jsx("span",{className:"filter-section-label",children:y.filterViewOptions}),s.jsxs("div",{className:"filter-switch-card",children:[s.jsxs("button",{"aria-pressed":l,className:l?"selected":"",onClick:Q,type:"button",children:[s.jsx("span",{children:y.groupByFolder}),s.jsx("span",{className:"filter-switch-track","aria-hidden":"true",children:s.jsx("span",{})})]}),s.jsxs("button",{"aria-pressed":p,className:p?"selected":"",onClick:B,type:"button",children:[s.jsx("span",{children:y.hideArchived}),s.jsx("span",{className:"filter-switch-track","aria-hidden":"true",children:s.jsx("span",{})})]})]})]}),Pe?s.jsx("button",{className:"filter-reset-button",onClick:te,type:"button",children:y.resetFilters}):null]}):null]}),s.jsxs("div",{className:"session-list",children:[l?b.map(x=>{const O=n[x.folder];return s.jsxs("div",{className:"folder-group",children:[s.jsxs("div",{className:"folder-header",children:[s.jsxs("button",{onClick:()=>J(x.folder),type:"button",children:[s.jsx(bs,{"aria-hidden":"true"}),s.jsx("span",{children:x.folder}),s.jsx("small",{children:d[x.folder]??x.sessions.length})]}),s.jsx("button",{className:"mini-button",disabled:h!=="connected",onClick:()=>de(x.folder),title:y.browseFolder,type:"button",children:s.jsx(gt,{"aria-hidden":"true"})}),s.jsx("button",{className:"mini-button",onClick:()=>oe(x.folder),title:y.editDirectoryTags,type:"button",children:s.jsx(uo,{"aria-hidden":"true"})}),s.jsx("button",{className:"mini-button",disabled:t||h!=="connected",onClick:S=>Te(S,x.folder),title:y.newSession,type:"button",children:s.jsx(Tn,{"aria-hidden":"true"})})]}),me(x.folder).length?s.jsx("div",{className:"folder-tag-row",children:me(x.folder).map(S=>s.jsx("span",{children:S},S))}):null,O?null:x.sessions.map(S=>s.jsx(Es,{active:S.sessionId===e,responding:R.has(S.sessionId),session:S,tagLabels:me(S.cwd),t:y,onContextMenu:D=>Be(D,S),onSelect:()=>E(S.sessionId),onViewChanges:ne?()=>ne(S.sessionId):void 0},S.sessionId))]},x.folder)}):m.map(x=>s.jsx(Es,{active:x.sessionId===e,responding:R.has(x.sessionId),session:x,tagLabels:me(x.cwd),t:y,onContextMenu:O=>Be(O,x),onSelect:()=>E(x.sessionId),onViewChanges:ne?()=>ne(x.sessionId):void 0},x.sessionId)),m.length===0?s.jsx("p",{className:"empty-copy",children:y.noSessionsMatch}):null,Fe&&j?s.jsxs("button",{className:"icon-text-button load-more-button",disabled:t,onClick:()=>N(j),type:"button",children:[s.jsx(Dt,{"aria-hidden":"true"}),y.loadMore]}):null]}),A?s.jsxs("div",{className:"session-create-menu",role:"dialog","aria-label":y.newSession,style:{left:A.x,top:A.y},onPointerDown:x=>x.stopPropagation(),children:[s.jsxs("label",{className:"session-create-field",children:[s.jsx("span",{children:y.workingDirectory}),s.jsxs("div",{className:"session-create-input-row",children:[s.jsx("input",{"aria-label":y.workingDirectory,placeholder:y.workingDirectoryPlaceholder,value:A.cwd,onChange:x=>U(O=>O&&{...O,cwd:x.target.value}),onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),Ie("claude"))}}),s.jsx("button",{"aria-label":y.browseDirectories,className:"session-create-icon-button",onClick:Ue,title:y.browseDirectories,type:"button",children:s.jsx(gt,{"aria-hidden":"true"})})]})]}),A.browser?s.jsxs("div",{className:"session-create-browser",children:[s.jsxs("div",{className:"session-create-browser-bar",children:[s.jsx("span",{title:A.browser.path,children:A.browser.path}),s.jsx("button",{"aria-label":y.refreshSessions,className:"session-create-icon-button",onClick:()=>Ae(A.browser?.path??A.cwd),title:y.refreshSessions,type:"button",children:A.browser.loading?s.jsx(xs,{className:"spin","aria-hidden":"true"}):s.jsx(Dt,{"aria-hidden":"true"})})]}),A.browser.createMode?s.jsxs("div",{className:"session-create-new-folder",children:[s.jsx("input",{"aria-label":y.newFolder,disabled:A.browser.creating,placeholder:y.newFolderPlaceholder,value:A.browser.newFolderName,onChange:x=>Le(x.target.value),onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),Ee())}}),s.jsx("button",{"aria-label":y.cancel,className:"session-create-icon-button",disabled:A.browser.creating,onClick:He,title:y.cancel,type:"button",children:s.jsx(ke,{"aria-hidden":"true"})}),s.jsx("button",{"aria-label":y.create,className:"session-create-icon-button",disabled:A.browser.creating||!A.browser.newFolderName.trim(),onClick:Ee,title:y.create,type:"button",children:A.browser.creating?s.jsx(xs,{className:"spin","aria-hidden":"true"}):s.jsx(at,{"aria-hidden":"true"})})]}):s.jsxs("button",{className:"session-create-secondary-button",onClick:Ve,type:"button",children:[s.jsx(Na,{"aria-hidden":"true"}),y.newFolder]}),A.browser.createError?s.jsx("p",{className:"session-create-error",children:A.browser.createError}):null,s.jsxs("div",{className:"session-create-folder-list",children:[ks(A.browser.path)?s.jsxs("button",{className:"session-create-folder-row",onClick:()=>Ae(ks(A.browser?.path??"")??A.cwd),type:"button",children:[s.jsx(gt,{"aria-hidden":"true"}),".."]}):null,A.browser.loading?s.jsx("p",{className:"empty-copy",children:y.loadingDirectories}):null,!A.browser.loading&&A.browser.error?s.jsx("p",{className:"session-create-error",children:A.browser.error}):null,!A.browser.loading&&!A.browser.error&&A.browser.loaded&&A.browser.entries.length===0?s.jsx("p",{className:"empty-copy",children:y.remoteFolderEmpty}):null,!A.browser.loading&&!A.browser.error?A.browser.entries.map(x=>{const O=Dn(A.browser?.path??A.cwd,x.name);return s.jsxs("button",{className:"session-create-folder-row",onClick:()=>Ae(O),type:"button",children:[s.jsx(bs,{"aria-hidden":"true"}),s.jsx("span",{children:x.name})]},`${x.name}:${O}`)}):null]}),s.jsxs("button",{className:"session-create-select-button",onClick:we,type:"button",children:[s.jsx(at,{"aria-hidden":"true"}),y.chooseThisFolder]})]}):null,s.jsxs("button",{type:"button",onClick:()=>Ie("claude"),children:[s.jsx(ia,{"aria-hidden":"true"}),s.jsxs("span",{children:[s.jsx("strong",{children:"Claude"}),s.jsx("small",{children:y.claudeSession})]})]}),s.jsxs("button",{type:"button",onClick:()=>Ie("codex"),children:[s.jsx(An,{"aria-hidden":"true"}),s.jsxs("span",{children:[s.jsx("strong",{children:"Codex"}),s.jsx("small",{children:y.codexSession})]})]})]}):null,V?s.jsxs("div",{className:"session-context-menu",role:"menu",style:{left:V.x,top:V.y},onPointerDown:x=>x.stopPropagation(),children:[s.jsxs("button",{type:"button",role:"menuitem",onClick:()=>Se(x=>E(x.sessionId)),children:[s.jsx(Qs,{"aria-hidden":"true"}),y.open]}),s.jsxs("button",{type:"button",role:"menuitem",disabled:he,onClick:()=>Se(ue),children:[s.jsx(Fa,{"aria-hidden":"true"}),y.details]}),s.jsxs("button",{type:"button",role:"menuitem",disabled:he,onClick:()=>Se(P),children:[s.jsx($t,{"aria-hidden":"true"}),y.copyResumeCommand]}),s.jsxs("button",{type:"button",role:"menuitem",disabled:he||!ne||!V.session.branch&&!V.session.diffStat,onClick:()=>Se(x=>ne?.(x.sessionId)),children:[s.jsx(va,{"aria-hidden":"true"}),y.viewChanges]}),s.jsx("span",{className:"context-menu-separator"}),s.jsxs("button",{type:"button",role:"menuitem",disabled:he,onClick:()=>Se(F),children:[s.jsx(Bn,{"aria-hidden":"true"}),V.session.pinned?y.unpin:y.pin]}),s.jsxs("button",{type:"button",role:"menuitem",disabled:he,onClick:()=>Se(W),children:[s.jsx(On,{"aria-hidden":"true"}),V.session.archived?y.unarchive:y.archive]}),s.jsxs("button",{className:"danger",type:"button",role:"menuitem",onClick:()=>Se(T),children:[s.jsx(mo,{"aria-hidden":"true"}),y.delete]})]}):null]})}const ur="pair",ct="vibelet.web.pairing",_s="vibelet.web.deviceId";class on extends Error{constructor(t,n){super(n),this.code=t,this.name="PairingCreateError"}}function Gn(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Gc(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return decodeURIComponent(Array.from(atob(n),r=>`%${r.charCodeAt(0).toString(16).padStart(2,"0")}`).join(""))}function Jc(e){const[t,n,r,i,o,d]=e;return!n||!Number.isFinite(r)||r<=0?null:{kind:t==="relay"?"relay":"direct",host:n,port:Math.floor(r),source:i,stability:o,...d===!0?{secure:!0}:{}}}function Zc(e){if(!Gn(e))return null;const{kind:t,host:n,port:r,source:i,stability:o,secure:d}=e;return t!=="direct"&&t!=="relay"||typeof n!="string"||!n.trim()||typeof r!="number"||!Number.isFinite(r)||r<=0||typeof i!="string"||typeof o!="string"?null:{kind:t,host:n.trim(),port:Math.floor(r),source:i,stability:o,...d===!0?{secure:!0}:{}}}function Yc(e){const t=e.trim().split(".");if(t.length!==4)return!1;const n=t.map(o=>/^\d+$/.test(o)?Number(o):Number.NaN);if(n.some(o=>!Number.isInteger(o)||o<0||o>255))return!1;const[r,i]=n;return r===10||r===172&&i>=16&&i<=31||r===192&&i===168}function Xc(e){const t=e.trim();return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function el(e,t){return t.protocol==="https:"&&e.secure!==!0?null:`${e.secure===!0?"wss":"ws"}://${Xc(e.host)}:${e.port}`}function Ds(e){return Yc(e.host)?0:e.source==="local_network"?1:e.source==="configured_host"?2:3}function tl(e,t){const n=t?.port??e.port,r=t?.canonicalHost??e.canonicalHost;if(!r||typeof n!="number"||!Number.isFinite(n))return[];const i=Math.floor(n);return[{kind:"direct",host:r,port:i,source:"fallback",stability:"stable"},...[...t?.fallbackHosts??[],...e.fallbackHosts??[]].map(o=>({kind:"direct",host:o,port:i,source:"fallback",stability:"stable"}))]}function nl(e,t,n=window.location){const r=[...t?.connections??[],...e.connections??[],...tl(e,t)].map(Zc).filter(i=>!!i).filter(i=>i.kind==="direct").sort((i,o)=>Ds(i)-Ds(o));for(const i of r){const o=el(i,n);if(o)return o}}function sl(e){if(!e.d||!e.c)return null;const t=Array.isArray(e.o)?e.o.map(Jc).filter(n=>!!n):void 0;return{daemonId:e.d,pairNonce:e.c,...e.n?{displayName:e.n}:{},...e.h?{canonicalHost:e.h}:{},...Number.isFinite(e.p)?{port:e.p}:{},...Array.isArray(e.f)?{fallbackHosts:e.f.filter(n=>typeof n=="string")}:{},...t?.length?{connections:t}:{},...e.e?{expiresAt:e.e}:{}}}function rl(e){return!e.daemonId||!e.pairNonce?null:{daemonId:e.daemonId,displayName:e.displayName,canonicalHost:e.canonicalHost,fallbackHosts:e.fallbackHosts,port:e.port,connections:e.connections,pairNonce:e.pairNonce,expiresAt:e.expiresAt}}function il(e=window.location.hash){const t=e.startsWith("#")?e.slice(1):e,n=new URLSearchParams(t).get(ur);if(!n)return null;try{const r=JSON.parse(Gc(n));if(!Gn(r))return null;if(r.t==="vp")return sl(r);if(r.type==="vibelet-pair")return rl(r)}catch{return null}return null}function al(){if(!window.location.hash.includes(`${ur}=`))return;const e=`${window.location.pathname}${window.location.search}`;window.history.replaceState(null,"",e)}function ol(e=window.localStorage){const t=e.getItem(_s);if(t)return t;const n=typeof crypto.randomUUID=="function"?crypto.randomUUID():`web_${Date.now().toString(36)}_${Math.random().toString(36).slice(2)}`;return e.setItem(_s,n),n}function Ps(e){const t=e.getItem(ct);if(!t)return null;try{const n=JSON.parse(t);return!n.daemonId||!n.deviceId||!n.pairToken?null:{daemonId:n.daemonId,displayName:n.displayName,deviceId:n.deviceId,pairToken:n.pairToken,pairedAt:n.pairedAt??new Date().toISOString(),webSocketUrl:typeof n.webSocketUrl=="string"?n.webSocketUrl:void 0}}catch{return null}}function Jn(e){if(typeof window>"u")return null;try{return e===window.localStorage?window.sessionStorage:null}catch{return null}}function cl(e=window.localStorage,t=Jn(e)){const n=Ps(e);if(n)return n;const r=t?Ps(t):null;return r?(e.setItem(ct,JSON.stringify(r)),t?.removeItem(ct),r):null}function Fs(e,t=window.localStorage,n=Jn(t)){t.setItem(ct,JSON.stringify(e)),n?.removeItem(ct)}function fr(e=window.localStorage,t=Jn(e)){e.removeItem(ct),t?.removeItem(ct)}function ll(e,t=Date.now()){if(!e.expiresAt)return!1;const n=new Date(e.expiresAt).getTime();return Number.isFinite(n)&&n<t}async function dl(e){const t=await e.text().catch(()=>"");try{const n=JSON.parse(t);if(Gn(n)&&n.error==="pair_window_expired")return new on("pair_window_expired","Pairing link expired.")}catch{}return new on("pairing_failed",t||"Pairing failed.")}async function ul(e,t=ol()){if(ll(e))throw new on("pair_window_expired","Pairing link expired.");const n=await fetch("/pair/create",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({daemonId:e.daemonId,pairNonce:e.pairNonce,deviceId:t,deviceName:"Vibelet Web"})});if(!n.ok)throw await dl(n);const r=await n.json();return{daemonId:r.daemonId,displayName:r.displayName||e.displayName,deviceId:r.deviceId,pairToken:r.pairToken,pairedAt:new Date().toISOString(),webSocketUrl:nl(e,r)}}function fl(e){return e.filter(t=>t.archived===!0).map(t=>t.sessionId)}function hl(e,t,n){return e.ok?{tone:"success",message:t.replace("{n}",String(e.archivedSessionIds.length))}:e.error==="timeout"?{tone:"error",message:n.timeout}:e.error==="not_connected"?{tone:"error",message:n.disconnected}:{tone:"error",message:n.generic.replace("{error}",e.error)}}async function ml(e,t,n){if(!e?.isConnected)return{ok:!1,error:"not_connected"};try{const r=await e.request({action:"sessions.archiveSync",id:e.makeId("archive_sync"),mode:t,...t==="pull"?{}:{archivedSessionIds:n??[]}});return{ok:!0,archivedSessionIds:Array.isArray(r.archivedSessionIds)?r.archivedSessionIds.filter(i=>typeof i=="string"&&i.length>0):[]}}catch(r){return{ok:!1,error:r instanceof Error?r.message:String(r)}}}const hr="vibelet.web.savedTargets",mr=12;function pl(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function gl(e){if(!pl(e)||typeof e.daemonId!="string"||typeof e.deviceId!="string"||typeof e.pairToken!="string"||typeof e.pairedAt!="string")return null;const t=typeof e.displayName=="string"?e.displayName:void 0,n=typeof e.label=="string"&&e.label.trim()?e.label.trim():t||e.daemonId.slice(0,10);return{daemonId:e.daemonId,deviceId:e.deviceId,pairToken:e.pairToken,pairedAt:e.pairedAt,displayName:t,webSocketUrl:typeof e.webSocketUrl=="string"?e.webSocketUrl:void 0,label:n,lastConnectedAt:typeof e.lastConnectedAt=="string"?e.lastConnectedAt:void 0}}function pr(e){if(!Array.isArray(e))return[];const t=new Set,n=[];for(const r of e){const i=gl(r);if(!(!i||t.has(i.daemonId))&&(t.add(i.daemonId),n.push(i),n.length>=mr))break}return n}function yl(e=window.localStorage){const t=e.getItem(hr);if(!t)return[];try{return pr(JSON.parse(t))}catch{return[]}}function gr(e,t=window.localStorage){t.setItem(hr,JSON.stringify(pr(e)))}function bl(e,t,n=new Date().toISOString()){return[{...t,label:t.displayName||t.daemonId.slice(0,10),lastConnectedAt:n},...e.filter(i=>i.daemonId!==t.daemonId)].slice(0,mr)}function xl(e,t){return e.filter(n=>n.daemonId!==t)}const Fn={version:"",latestVersion:"",loading:!1,error:null};function $s(e){const t=e.match(/^\d+/);return t?Number(t[0]):0}function Sl(e,t){const n=e.split(/[+-]/,1)[0].split(".").map($s),r=t.split(/[+-]/,1)[0].split(".").map($s),i=Math.max(n.length,r.length);for(let o=0;o<i;o+=1){const d=n[o]??0,l=r[o]??0;if(d<l)return-1;if(d>l)return 1}return 0}function wl(e,t){return Sl(e,t)<0}function vl(e){const t=e.toLowerCase();if(t.includes("alpha"))return"alpha";if(t.includes("beta"))return"beta";if(e.trim())return"latest"}function kl(e,t,n){const r=e?.webSocketUrl?e.webSocketUrl:t.origin;try{const i=new URL(r);return i.protocol==="ws:"&&(i.protocol="http:"),i.protocol==="wss:"&&(i.protocol="https:"),i.pathname="/health",i.search="",i.hash="",i.toString()}catch{return new URL("/health",t.origin).toString()}}function jl(e){if(!e||typeof e!="object")return{version:"",latestVersion:""};const t=e;return{version:typeof t.version=="string"?t.version.trim():"",latestVersion:typeof t.latestVersion=="string"?t.latestVersion.trim():""}}function Cl(e){const t=a.useCallback((c,I)=>{e.updateSessionListPreferences(f=>({...f,archiveSyncedDaemonIds:I==="synced"?{...f.archiveSyncedDaemonIds,[c]:!0}:f.archiveSyncedDaemonIds,archiveSyncCardDismissedDaemonIds:{...f.archiveSyncCardDismissedDaemonIds,[c]:!0}}))},[e]),n=a.useCallback((c,I)=>{const f=c==="pull"?e.t.archiveSyncSuccessPull:c==="pushMerge"?e.t.archiveSyncSuccessMerge:e.t.archiveSyncSuccessPush;if(e.setArchiveSyncStatus(hl(I,f,{timeout:e.t.archiveSyncFailedTimeout,disconnected:e.t.archiveSyncFailedDisconnected,generic:e.t.archiveSyncFailedGeneric})),!I.ok)return;const w=new Set(I.archivedSessionIds);e.setSessions(y=>y.map(m=>({...m,archived:w.has(m.sessionId)}))),e.pairingRef.current?.daemonId&&t(e.pairingRef.current.daemonId,"synced"),e.requestSessions({force:!0})},[t,e]),r=a.useCallback(async c=>{if(e.archiveSyncBusy)return;e.setArchiveSyncBusy(c),e.setArchiveSyncStatus(null);const I=await ml(e.clientRef.current,c,fl(e.displaySessions));n(c,I),e.setArchiveSyncBusy(null)},[n,e]),i=a.useCallback(()=>{e.pairing?.daemonId&&(t(e.pairing.daemonId,"dismissed"),e.setArchiveSyncStatus({tone:"success",message:e.t.archiveSyncSkipped}))},[t,e]),o=a.useCallback(async c=>{const I=e.clientRef.current;if(I?.isConnected&&!(c==="update"&&!At("Update desktop connector?"))&&!(c==="restart"&&!At("Restart desktop connector?"))){e.setAdmin(f=>({...f,loading:!0,action:c,statusText:""})),e.setErrorText(null);try{if(c==="update"){const f=vl(e.daemonMetadata.version),w=await I.request({action:"daemon.update",id:I.makeId("daemon_update"),...f?{channel:f}:{}});e.setAdmin(y=>({...y,loading:!1,action:null,statusText:w.alreadyRunning?"Connector update already running":"Connector update started"}));return}await I.request({action:"daemon.restart",id:I.makeId("daemon_restart")}),e.setAdmin(f=>({...f,loading:!1,action:null,statusText:"Connector restart requested"})),e.refreshDaemonMetadata()}catch(f){e.setAdmin(w=>({...w,loading:!1,action:null})),e.setErrorText(f instanceof Error?f.message:String(f))}}},[e]),d=a.useCallback(async()=>{if(!e.activeSession)return;const c=Eo(e.activeSession,e.messages);Do(Ao(qe(e.activeSession),e.activeSession.sessionId),c),await navigator.clipboard?.writeText(c).catch(()=>{})},[e.activeSession,e.messages]),l=a.useCallback(async()=>{if(!("Notification"in window)){e.setNotificationPermission("unsupported"),e.setErrorText("Browser notifications are not supported.");return}const c=await Notification.requestPermission();e.notificationPermissionRef.current=c,e.setNotificationPermission(c),c==="granted"&&e.updateNotificationSettings({enabled:!0}),e.setStatusText(c==="granted"?"Browser notifications enabled":"Browser notifications not enabled")},[e]),b=a.useCallback(()=>{At("Forget this browser pairing?")&&(e.intentionalDisconnectRef.current=!0,e.connectionAttemptIdRef.current+=1,fr(),e.clientRef.current?.disconnect(),e.historyCacheRef.current={},e.historyCacheDaemonIdRef.current=null,e.messagesSessionIdRef.current=null,e.lastHistorySessionIdRef.current=null,e.setMessages([]),e.setPairing(null),e.setDaemonMetadata(Fn),e.setPhase("missing-pair"),e.setStatusText(e.t.missingPair))},[e]),p=a.useCallback(c=>{if(c&&e.notificationPermission==="default"){l();return}e.updateNotificationSettings({enabled:c})},[e,l]),g=a.useCallback(c=>{e.connectWithPairingRef.current(c,!0)},[e]),j=a.useCallback(c=>e.saveTargets(xl(e.savedTargets,c)),[e]),h=a.useCallback(c=>{e.setActiveSessionId(c.sessionId),e.setRenameTitle(c.customTitle??c.title??""),e.setDetailsOpen(!0)},[e]),k=a.useCallback(c=>{const I=e.directoryTags[zi(c)]??[],f=window.prompt(e.t.directoryTags,Ui(I));if(f===null)return;const w=Vi(f);e.updateSessionListPreferences(y=>({...y,directoryTags:Ki(y.directoryTags,c,w)}))},[e]),R=a.useCallback(c=>{e.setControlTab("files"),e.listDirectory(c,{updateRoute:!0})},[e]),C=a.useCallback(c=>{navigator.clipboard?.writeText(rr(c)).catch(()=>{})},[]);return{runArchiveSync:r,skipArchiveSync:i,runAdminAction:o,exportActiveSession:d,clearPairing:b,setNotificationsEnabled:p,connectSavedTarget:g,forgetSavedTarget:j,openSessionDetails:h,editFolderTags:k,browseFolder:R,copyResumeCommand:C}}function Ls(e){return`${e}_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function Il(e,t=window.location){return e?.webSocketUrl?e.webSocketUrl:`${t.protocol==="https:"?"wss:":"ws:"}//${t.host}`}class Nl{socket=null;pending=new Map;messageListeners=new Set;closeListeners=new Set;async connect(t){this.disconnect();const n=new WebSocket(Il(t));this.socket=n;const r=new Promise((i,o)=>{n.onopen=()=>i(),n.onerror=()=>o(new Error("WebSocket connection failed."))});return n.onmessage=i=>this.handleSocketMessage(i.data),n.onclose=()=>{this.socket===n&&(this.socket=null),this.rejectPending(new Error("WebSocket disconnected.")),this.closeListeners.forEach(i=>i())},await r,await this.request({action:"auth.hello",id:Ls("auth"),pairToken:t.pairToken,daemonId:t.daemonId,deviceId:t.deviceId,locale:navigator.language})}request(t,n={}){return!this.socket||this.socket.readyState!==WebSocket.OPEN?Promise.reject(new Error("WebSocket is not connected.")):new Promise((r,i)=>{const o={resolve:r,reject:i};n.timeoutMs&&n.timeoutMs>0&&(o.timeoutId=setTimeout(()=>{this.pending.delete(t.id),i(new Error(n.timeoutMessage||"Request timed out."))},n.timeoutMs)),this.pending.set(t.id,o),this.socket?.send(JSON.stringify(t))})}send(t){this.socket?.readyState===WebSocket.OPEN&&this.socket.send(JSON.stringify(t))}onMessage(t){return this.messageListeners.add(t),()=>this.messageListeners.delete(t)}onClose(t){return this.closeListeners.add(t),()=>this.closeListeners.delete(t)}disconnect(){this.rejectPending(new Error("WebSocket disconnected.")),this.socket?.close(1e3,"client disconnect"),this.socket=null}get isConnected(){return this.socket?.readyState===WebSocket.OPEN}makeId(t){return Ls(t)}handleSocketMessage(t){if(typeof t!="string")return;let n;try{n=JSON.parse(t)}catch{return}if(n.type!=="pong"){if(n.type==="response"){const r=this.pending.get(n.id);if(r){this.pending.delete(n.id),r.timeoutId&&clearTimeout(r.timeoutId),n.ok?r.resolve(n.data):r.reject(new Error(n.error||"Request failed."));return}}this.messageListeners.forEach(r=>r(n))}}rejectPending(t){for(const n of this.pending.values())n.timeoutId&&clearTimeout(n.timeoutId),n.reject(t);this.pending.clear()}}const yr="vibelet.web.sessionListCache",br=120;function Rl(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ml(e){if(!Rl(e)||typeof e.daemonId!="string"||!e.daemonId)return null;const t=nr(e.page);return{daemonId:e.daemonId,page:{...t,sessions:t.sessions.slice(0,br)},cachedAt:typeof e.cachedAt=="string"?e.cachedAt:new Date(0).toISOString()}}function Tl(e,t=window.localStorage){if(!e)return null;try{const n=t.getItem(yr);if(!n)return null;const r=Ml(JSON.parse(n));return r?.daemonId===e?r.page:null}catch{return null}}function Al(e,t,n=window.localStorage,r=new Date().toISOString()){if(!e)return;const i={daemonId:e,page:{...t,sessions:t.sessions.slice(0,br)},cachedAt:r};n.setItem(yr,JSON.stringify(i))}function El(e){return e instanceof Error&&e.message==="auth_failed"}function _l(e,t){return e instanceof on&&e.code==="pair_window_expired"?t.pairingLinkExpired:e instanceof Error?e.message:String(e)}function Dl(e){const t=a.useRef(null),n=a.useRef(e);n.current=e;const r=a.useCallback(o=>{const d=n.current,l=o??d.pairingRef.current;!l||d.intentionalDisconnectRef.current||(d.reconnectTimerRef.current&&window.clearTimeout(d.reconnectTimerRef.current),d.reconnectTimerRef.current=window.setTimeout(()=>{d.reconnectTimerRef.current=null,d.connectWithPairingRef.current(l,!0)},So))},[]),i=a.useCallback(async(o,d=!1)=>{const l=n.current;l.reconnectTimerRef.current&&(window.clearTimeout(l.reconnectTimerRef.current),l.reconnectTimerRef.current=null),l.intentionalDisconnectRef.current=!1,l.setPhase("connecting"),l.setStatusText(d?l.t.reconnectingToDaemon:l.t.connectingToDaemon),l.setErrorText(null);const b=new Nl,p=l.connectionAttemptIdRef.current+1;l.connectionAttemptIdRef.current=p;const g=l.clientRef.current;l.clientRef.current=b,g?.disconnect();const j=()=>l.connectionAttemptIdRef.current===p&&l.clientRef.current===b;b.onMessage(l.handleServerMessage),b.onClose(()=>{l.clientRef.current===b&&(l.clientRef.current=null,!l.intentionalDisconnectRef.current&&(l.setPhase("connecting"),l.setStatusText(l.t.reconnectingToDaemon),l.setErrorText(l.t.webSocketClosedRetrying),r(l.pairingRef.current??o)))});try{let h=o,k;try{k=await b.connect(o)}catch(c){if(!o.webSocketUrl)throw c;h={...o,webSocketUrl:void 0},l.setStatusText(l.t.reconnectingToDaemon),k=await b.connect(h)}if(!j())return;const R={...h,displayName:k.displayName??h.displayName};l.historyCacheDaemonIdRef.current&&l.historyCacheDaemonIdRef.current!==R.daemonId&&(l.historyCacheRef.current={},l.messagesSessionIdRef.current=null,l.lastHistorySessionIdRef.current=null,l.setMessages([])),l.historyCacheDaemonIdRef.current=R.daemonId,l.setPairing(R),l.pairingRef.current=R,Fs(R);const C=Tl(R.daemonId);C&&l.setSessionsFromPage(C,!1),l.setSavedTargets(c=>{const I=bl(c,R);return gr(I),I}),l.setPhase("connected"),l.setStatusText(l.t.connectedTo(k.displayName??o.displayName??"Vibelet Daemon")),l.refreshDaemonMetadata(R),await l.requestReconnectSnapshot(),await l.fetchAgentResources(l.agent,l.cwd),l.reportLog("web.connected",{reconnecting:d})}catch(h){if(!j())return;El(h)&&fr(),l.setPhase("error"),l.setStatusText(l.t.connectionFailed),l.setErrorText(h instanceof Error?h.message:String(h)),r(o)}},[r]);a.useEffect(()=>{const o=n.current;o.connectWithPairingRef.current=i},[i]),a.useEffect(()=>{const o=n.current;let d=!1;async function l(){const b=il(),g=cl()??o.rememberedTarget;if(!b&&!g){o.setPhase("missing-pair"),o.setStatusText(o.t.missingPair);return}try{o.setPhase("pairing"),b&&t.current?.pairNonce!==b.pairNonce&&(t.current={pairNonce:b.pairNonce,promise:ul(b)});const j=b?await t.current?.promise:g;if(!j||d)return;b&&(Fs(j),t.current=null,al()),await o.connectWithPairingRef.current(j)}catch(j){if(d)return;b&&(t.current=null),o.setPhase("error"),o.setStatusText(o.t.pairingFailed),o.setErrorText(_l(j,o.t))}}return l(),()=>{d=!0,o.intentionalDisconnectRef.current=!0,o.connectionAttemptIdRef.current+=1,o.reconnectTimerRef.current&&window.clearTimeout(o.reconnectTimerRef.current),o.clientRef.current?.disconnect()}},[e.t]),a.useEffect(()=>{const o=n.current;if(o.phase!=="connected")return;const d=window.setTimeout(()=>{o.requestSessions({force:!0}).catch(l=>o.setErrorText(l instanceof Error?l.message:String(l)))},260);return()=>window.clearTimeout(d)},[e.phase,e.requestSessions,e.search,e.sinceFilter]),a.useEffect(()=>{const o=n.current;o.phase==="connected"&&o.fetchAgentResources(o.agent,o.cwd)},[e.agent,e.cwd,e.fetchAgentResources,e.phase])}function Mn(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function Pl(e=window.location.search){const t=new URLSearchParams(e),n=Mn(t.get("folder")),r=Mn(t.get("file")),i=Mn(t.get("cwd"));return{...n?{folder:n}:{},...r?{file:r}:{},...i?{cwd:i}:{}}}function Fl(e,t,n=[]){const r=new URLSearchParams(e);for(const o of n)r.delete(o);for(const[o,d]of Object.entries(t))d?r.set(o,d):r.delete(o);const i=r.toString();return i?`?${i}`:""}function Os(e,t={}){const n=t.history??window.history,r=t.location??window.location,i=[];e.folder&&i.push("file","cwd"),e.file&&i.push("folder");const o=Fl(r.search,e,i),d=`${r.pathname}${o}${r.hash}`;if(t.replace){n.replaceState(null,"",d);return}n.pushState(null,"",d)}function $l(e){const{clientRef:t,pairing:n,cwd:r,phase:i,controlTab:o,setControlTab:d,setBusy:l,setErrorText:b,t:p}=e,g=a.useRef(!1),[j,h]=a.useState([]),[k,R]=a.useState(!1),[C,c]=a.useState({path:Me,entries:[],loading:!1,loaded:!1}),[I,f]=a.useState(""),[w,y]=a.useState(null),[m,N]=a.useState(!1),[P,z]=a.useState("edit"),ge=a.useCallback(async _=>{if(!(!_?.length||!n)){R(!0),b(null);try{const E=[];for(const W of Array.from(_)){const F=await fetch(`/upload?name=${encodeURIComponent(W.name)}`,{method:"POST",headers:{authorization:`Bearer ${n.pairToken}`,"content-type":W.type||"application/octet-stream"},body:W});if(!F.ok)throw new Error(await F.text().catch(()=>p.uploadFailed)||p.uploadFailed);const ce=jo(await F.json());if(!ce)throw new Error(p.uploadPathMissing);E.push({path:ce,name:W.name,type:W.type||"application/octet-stream",size:W.size})}h(W=>[...W,...E])}catch(E){b(E instanceof Error?E.message:String(E))}finally{R(!1)}}},[n,b,p.uploadFailed,p.uploadPathMissing]),T=a.useCallback(async(_,E,W)=>{if(n){b(null);try{w?.objectUrl&&URL.revokeObjectURL(w.objectUrl);const F=await fetch(Nn(_,E),{headers:{authorization:`Bearer ${n.pairToken}`}});if(!F.ok)throw new Error(await F.text().catch(()=>p.fileOpenFailed)||p.fileOpenFailed);const ce=F.headers.get("content-type")??"application/octet-stream";if(Mo(_,ce))y({path:_,cwd:E,kind:"text",contentType:ce,text:await F.text(),etag:tn(F.headers,"etag"),lastModified:tn(F.headers,"last-modified"),size:Number(F.headers.get("content-length"))||void 0,dirty:!1});else{const be=await F.blob();y({path:_,cwd:E,kind:To(_,ce)?"image":"binary",contentType:ce,text:"",objectUrl:URL.createObjectURL(be),etag:tn(F.headers,"etag"),lastModified:tn(F.headers,"last-modified"),size:be.size,dirty:!1})}N(!1),z("edit"),d("files"),W?.updateRoute&&Os({file:_,...E?{cwd:E}:{}},{replace:W.replaceRoute})}catch(F){b(F instanceof Error?F.message:String(F))}}},[n,w?.objectUrl,d,b]),ae=a.useCallback(async _=>{if(!(!n||!w||w.kind!=="text")){l(!0),b(null);try{const E=await fetch(Nn(w.path,w.cwd),{method:"PUT",headers:{authorization:`Bearer ${n.pairToken}`,"content-type":"text/markdown; charset=utf-8",...w.etag&&!_?.force?{"if-match":w.etag}:{}},body:w.text});if(!E.ok)throw E.status===409?(N(!0),new Error(p.remoteFileConflict(w.path))):new Error(await E.text().catch(()=>p.fileSaveFailed)||p.fileSaveFailed);N(!1);const W=await E.json().catch(()=>({}));y(F=>F&&{...F,dirty:!1,etag:typeof W.etag=="string"?W.etag:F.etag,lastModified:typeof W.lastModified=="string"?W.lastModified:F.lastModified,size:typeof W.size=="number"?W.size:F.size})}catch(E){b(E instanceof Error?E.message:String(E))}finally{l(!1)}}},[n,w,l,b]),de=a.useCallback(async()=>{if(!(!n||!w))try{const _=await fetch(Nn(w.path,w.cwd),{headers:{authorization:`Bearer ${n.pairToken}`}});if(!_.ok)throw new Error(p.downloadFailed);const E=URL.createObjectURL(await _.blob()),W=document.createElement("a");W.href=E,W.download=ln(w.path),W.click(),URL.revokeObjectURL(E)}catch(_){b(_ instanceof Error?_.message:String(_))}},[n,w,b]),oe=a.useCallback(async(_=C.path,E)=>{const W=t.current;if(W?.isConnected){c(F=>({...F,path:_,loading:!0,loaded:!1,error:void 0}));try{const F=await W.request({action:"dirs.list",id:W.makeId("dirs"),path:_,cwd:r||void 0});c({path:_,entries:F.entries??[],loading:!1,loaded:!0}),E?.updateRoute&&Os({folder:_},{replace:E.replaceRoute})}catch(F){c(ce=>({...ce,loading:!1,loaded:!0,error:F instanceof Error?F.message:String(F)}))}}},[t,r,C.path]),ue=a.useCallback(async _=>{const E=t.current;if(!E?.isConnected)throw new Error(p.webSocketNotConnected);return((await E.request({action:"dirs.list",id:E.makeId("dirs"),path:_,cwd:r||void 0},{timeoutMs:1e4,timeoutMessage:p.directoryListTimedOut})).entries??[]).filter(F=>F.isDirectory)},[t,r]);a.useEffect(()=>{o!=="files"||i!=="connected"||C.loading||C.loaded||oe(C.path||r||Me)},[o,r,C.loaded,C.loading,C.path,oe,i]),a.useEffect(()=>{if(i!=="connected"||g.current)return;const _=Pl();if(!_.folder&&!_.file){g.current=!0;return}if(g.current=!0,d("files"),_.folder){oe(_.folder,{updateRoute:!1});return}_.file&&(_.cwd&&c(E=>({...E,path:_.cwd,loaded:!1})),T(_.file,_.cwd,{updateRoute:!1}))},[oe,T,i,d]);const te=a.useCallback(async()=>{const _=t.current;if(!(!_?.isConnected||I.trim().length===0)){l(!0),b(null);try{await _.request({action:"dirs.create",id:_.makeId("mkdir"),path:Dn(C.path,I),cwd:r||void 0}),f(""),await oe(C.path)}catch(E){b(E instanceof Error?E.message:String(E))}finally{l(!1)}}},[t,r,C.path,oe,I,l,b]),ye=a.useCallback(async _=>{const E=t.current;if(!E?.isConnected)throw new Error(p.webSocketNotConnected);await E.request({action:"dirs.create",id:E.makeId("mkdir"),path:_,cwd:r||void 0},{timeoutMs:1e4,timeoutMessage:p.directoryCreationTimedOut})},[t,r]);return{attachments:j,setAttachments:h,uploadBusy:k,directory:C,setDirectory:c,newDirName:I,setNewDirName:f,remoteFile:w,setRemoteFile:y,remoteFileConflict:m,remoteFileMode:P,setRemoteFileMode:z,uploadFiles:ge,openRemoteFile:T,saveRemoteFile:ae,downloadRemoteFile:de,listDirectory:oe,listSessionDirectories:ue,createDirectory:te,createSessionDirectory:ye}}function dn(e,t){return!!t&&Object.hasOwn(e,t)}function Ll(e,t){const n=e.map(r=>({...r}));return t?Un(n,t):n}function Ol(e,t,n){return t?{...e,[t]:n.map(r=>({...r}))}:e}function xr(e,t,n){return!t||n.length===0?e:{...e,[t]:[...e[t]??[],...n.map(r=>({...r}))]}}function ql(e,t,n){return n.historyKey&&e[t]?.some(r=>r.historyKey===n.historyKey)?e:xr(e,t,[n])}function Bl(e,t,n){return!t||!n?e:{...e,[t]:Un(e[t]??[],n)}}function Hl(e,t,n){if(!t||!n||t===n||!dn(e,t))return e;const r={...e};return r[n]=e[t],delete r[t],r}function Wl(e,t){if(!dn(e,t))return e;const n={...e};return delete n[t],n}const $n=15e3,qs=500,Bs=1e3;function zl(e){const t=a.useRef({}),n=a.useRef(null),r=a.useRef({}),i=a.useRef(null),[o,d]=a.useState(!1),[l,b]=a.useState([]),p=a.useCallback(m=>m&&n.current&&n.current!==m?!1:(n.current=null,d(!1),!0),[]),g=a.useCallback(m=>dn(t.current,m)?(i.current=m,b(t.current[m]??[]),!0):!1,[]),j=a.useCallback((m,N,P)=>{t.current=Ol(t.current,m,N);const z=t.current[m]??[];return P?.renderActive!==!1&&m===e.activeSessionIdRef.current&&(i.current=m,b(z)),z},[e.activeSessionIdRef]),h=a.useCallback((m,N,P)=>{if(!P)return r.current[m]=void 0,j(m,N);const z=r.current[m];return r.current[m]=P.start,z===void 0||P.start>=z?j(m,N):j(m,[...N,...t.current[m]??[]])},[j]),k=a.useCallback((m,N)=>{const P=j(m,N,{renderActive:!1});i.current=m,b(P)},[j]),R=a.useCallback((m,N)=>{t.current=xr(t.current,m,N),m===e.activeSessionIdRef.current&&(i.current=m,b(t.current[m]??[]))},[e.activeSessionIdRef]),C=a.useCallback((m,N)=>{t.current=ql(t.current,m,N),m===e.activeSessionIdRef.current&&(i.current=m,b(t.current[m]??[]))},[e.activeSessionIdRef]),c=a.useCallback((m,N)=>{t.current=Bl(t.current,m,N),m===e.activeSessionIdRef.current&&(i.current=m,b(t.current[m]??[]))},[e.activeSessionIdRef]),I=a.useCallback((m,N)=>{R(m,[{role:"assistant",type:"info",content:N,timestamp:new Date().toISOString()}])},[R]),f=a.useCallback(m=>{t.current=Wl(t.current,m),delete r.current[m]},[]),w=a.useCallback((m,N)=>{t.current=Hl(t.current,m,N),r.current[N]=r.current[m],delete r.current[m]},[]),y=a.useCallback(async m=>{const N=e.clientRef.current;if(N?.isConnected){if(g(m.sessionId)){p(m.sessionId);return}n.current=m.sessionId,delete r.current[m.sessionId],d(!0),e.setErrorText(null);try{await N.request({action:"session.history",id:N.makeId("history"),sessionId:m.sessionId,agent:m.agent,limit:qs},{timeoutMessage:e.historyTimeoutMessage,timeoutMs:$n});let P=r.current[m.sessionId];for(;typeof P=="number"&&P>0&&(t.current[m.sessionId]?.length??0)<Bs;){const z=t.current[m.sessionId]?.length??0;await N.request({action:"session.history",id:N.makeId("history_older"),sessionId:m.sessionId,agent:m.agent,before:P,limit:Math.min(qs,Bs-z)},{timeoutMessage:e.historyTimeoutMessage,timeoutMs:$n});const ge=r.current[m.sessionId];if(typeof ge!="number"||ge>=P)break;P=ge}}catch(P){n.current===m.sessionId&&e.setErrorText(P instanceof Error?P.message:String(P))}finally{p(m.sessionId)}}},[p,e.clientRef,e.historyTimeoutMessage,e.setErrorText,g]);return{appendCachedDelta:c,appendCachedHistory:R,appendInfoMessage:I,clearHistoryLoading:p,ensureCachedHistoryEntry:C,historyCacheRef:t,historyLoading:o,hydrateVisibleHistory:k,messages:l,messagesSessionIdRef:i,mergeCachedHistoryPage:h,remapCachedHistory:w,removeCachedHistory:f,renderCachedHistory:g,replaceCachedHistory:j,requestHistory:y,setMessages:b}}function Hs(e,t,n){return Math.min(Math.max(Math.round(e),t),n)}function Ul(e){return{workspaceClassName:["workspace",e.leftCollapsed&&"left-sidebar-collapsed"].filter(Boolean).join(" "),wideMainClassName:["wide-main",e.rightCollapsed&&"right-sidebar-collapsed"].filter(Boolean).join(" "),style:{"--left-pane-width":`${e.leftPaneWidth}px`,"--right-pane-width":`${e.rightPaneWidth}px`}}}const yt=.9,Vl=Math.round(280*yt),Kl=Math.round(560*yt),Ql=Math.round(260*yt),Gl=Math.round(520*yt),Jl=Math.round(366*yt),Zl=Math.round(330*yt);function Yl(e,t){const[n,r]=a.useState(e),[i,o]=a.useState(""),[d,l]=a.useState(e.sessionList.searchHistory),[b,p]=a.useState(e.sessionList.sinceFilter),[g,j]=a.useState(e.sessionList.hideArchived),[h,k]=a.useState(e.sessionList.groupFolders),[R,C]=a.useState(e.sessionList.collapsedFolders),[c,I]=a.useState(e.sessionList.agentFilter),[f,w]=a.useState(t),[y,m]=a.useState(e.layout.leftSidebarCollapsed),[N,P]=a.useState(e.layout.rightSidebarCollapsed),[z,ge]=a.useState(Jl),[T,ae]=a.useState(Zl),de=n.sessionList.directoryTags,oe=n.sessionList.archiveSyncedDaemonIds,ue=n.sessionList.archiveSyncCardDismissedDaemonIds,te=n.composer,ye=Ul({leftCollapsed:y,rightCollapsed:N,leftPaneWidth:z,rightPaneWidth:T}),_=a.useCallback(J=>Q=>{Q.preventDefault();const B=Q.clientX,Z=z,ne=T,fe=V=>{const se=V.clientX-B;if(J==="left"){ge(Hs(Z+se,Vl,Kl));return}ae(Hs(ne-se,Ql,Gl))},X=()=>{document.body.classList.remove("pane-resizing"),window.removeEventListener("pointermove",fe),window.removeEventListener("pointerup",X)};document.body.classList.add("pane-resizing"),window.addEventListener("pointermove",fe),window.addEventListener("pointerup",X,{once:!0})},[z,T]);a.useEffect(()=>{r(J=>{const Q={...J,sessionList:{...J.sessionList,searchHistory:d,sinceFilter:b,hideArchived:g,groupFolders:h,collapsedFolders:R,agentFilter:c},layout:{...J.layout,leftSidebarCollapsed:y,rightSidebarCollapsed:N}};return Yt(Q),Q})},[R,h,g,y,N,d,c,b]);const E=a.useCallback(()=>{l(J=>Qi(J,i))},[i]),W=a.useCallback(J=>{w(J),gr(J)},[]),F=a.useCallback(J=>{r(Q=>{const B={...Q,language:J};return Yt(B),B})},[]),ce=a.useCallback(J=>{r(Q=>{const B={...Q,sessionList:J(Q.sessionList)};return Yt(B),B})},[]),be=a.useCallback(J=>{r(Q=>{const B={...Q,composer:J(Q.composer)};return Yt(B),B})},[]);return{webPreferences:n,search:i,setSearch:o,sinceFilter:b,setSinceFilter:p,hideArchived:g,setHideArchived:j,groupFolders:h,setGroupFolders:k,collapsedFolders:R,setCollapsedFolders:C,sessionAgentFilter:c,setSessionAgentFilter:I,directoryTags:de,archiveSyncedDaemonIds:oe,archiveSyncCardDismissedDaemonIds:ue,composerPreferences:te,savedTargets:f,setSavedTargets:w,leftSidebarCollapsed:y,setLeftSidebarCollapsed:m,rightSidebarCollapsed:N,setRightSidebarCollapsed:P,workspaceClassName:ye.workspaceClassName,wideMainClassName:ye.wideMainClassName,workspaceStyle:ye.style,beginPaneResize:_,commitSearch:E,saveTargets:W,setLanguagePreference:F,updateSessionListPreferences:ce,updateComposerPreferences:be}}function ot(e,t,n){const r=new Set(e);return n?r.add(t):r.delete(t),r}function Xl(e){const t=a.useCallback((n,r,i,o,d)=>{const l=e.notificationSettingsRef.current;if(!l[o]||e.notifiedEventsRef.current.has(n))return;Lo(r,i,{onClick:()=>{window.focus(),d&&e.setActiveSessionId(d)},permission:e.notificationPermissionRef.current,settings:l,tag:n,visibilityState:document.visibilityState})&&e.notifiedEventsRef.current.add(n)},[e]);return a.useCallback(n=>{switch(n.type){case"response":{Tt(n.data)&&typeof n.data.oldSessionId=="string"&&typeof n.data.sessionId=="string"&&e.remapLocalSessionState(n.data.oldSessionId,n.data.sessionId);break}case"sessions.changed":e.requestSessions({force:!0}).catch(r=>e.setErrorText(r instanceof Error?r.message:String(r)));break;case"session.history":e.clearHistoryLoading(n.sessionId),e.mergeCachedHistoryPage(n.sessionId,Ll(n.messages,n.partialReplyText),n.historyPage),n.sessionId===e.activeSessionIdRef.current&&(e.setPendingQueues(r=>({...r,[n.sessionId]:n.pendingQueue??[]})),e.setPendingApprovals(r=>{const i={...r};return n.pendingApproval?i[n.sessionId]={type:"approval.request",sessionId:n.sessionId,...n.pendingApproval}:delete i[n.sessionId],i}),e.setPendingQuestions(r=>{const i={...r};if(n.pendingQuestion){const o={type:"question.request",sessionId:n.sessionId,...n.pendingQuestion};i[n.sessionId]=o,e.setQuestionAnswers(_n(o))}else delete i[n.sessionId];return i})),e.setRespondingSessions(r=>{const i=ot(r,n.sessionId,!!(n.isResponding||n.externallyResponding));return e.respondingSessionsRef.current=i,i});break;case"session.history.append":e.appendCachedHistory(n.sessionId,n.messages);break;case"text.delta":e.appendCachedDelta(n.sessionId,n.content),e.respondingSessionsRef.current=ot(e.respondingSessionsRef.current,n.sessionId,!0),e.setRespondingSessions(r=>ot(r,n.sessionId,!0));break;case"tool.call":e.appendCachedHistory(n.sessionId,[{role:"tool",type:"info",toolName:n.toolName,toolInput:n.input,content:`${e.t.toolCallLabel}: ${n.toolName}
|
|
10
|
+
|
|
11
|
+
${sr(n.input)}`,timestamp:new Date().toISOString()}]);break;case"tool.result":e.appendCachedHistory(n.sessionId,[{role:"tool",type:"info",content:n.output,timestamp:new Date().toISOString()}]);break;case"approval.request":e.setPendingApprovals(r=>({...r,[n.sessionId]:n})),e.setActiveSessionId(n.sessionId),t(`approval:${n.sessionId}:${n.requestId}`,e.t.notificationApprovalTitle,n.description||n.toolName,"approvals",n.sessionId);break;case"question.request":e.setPendingQuestions(r=>({...r,[n.sessionId]:n})),e.setQuestionAnswers(_n(n)),e.setActiveSessionId(n.sessionId),t(`question:${n.sessionId}:${n.requestId}`,e.t.notificationQuestionTitle,e.t.notificationQuestionCount(n.questions.length),"questions",n.sessionId);break;case"question.cleared":e.setPendingQuestions(r=>{const i={...r};return i[n.sessionId]?.requestId===n.requestId&&delete i[n.sessionId],i});break;case"session.queue":e.setPendingQueues(r=>({...r,[n.sessionId]:n.pending}));break;case"session.stall_warning":e.setSessions(r=>r.map(i=>i.sessionId===n.sessionId?{...i,stallWarning:n.warning}:i));break;case"session.interrupted_notice":e.setSessions(r=>r.map(i=>i.sessionId===n.sessionId?{...i,interruptReason:n.reason,stallWarning:void 0}:i));break;case"session.done":if(e.respondingSessionsRef.current.has(n.sessionId)){const r=(e.turnNotificationCountsRef.current[n.sessionId]??0)+1;e.turnNotificationCountsRef.current[n.sessionId]=r,t(`done:${n.sessionId}:${r}`,e.t.notificationReplyTitle,e.t.notificationReplyBody,"replies",n.sessionId)}e.respondingSessionsRef.current=ot(e.respondingSessionsRef.current,n.sessionId,!1),e.setRespondingSessions(r=>ot(r,n.sessionId,!1)),n.sessionId===e.activeSessionIdRef.current&&(e.setPendingApprovals(r=>{const i={...r};return delete i[n.sessionId],i}),e.setPendingQuestions(r=>{const i={...r};return delete i[n.sessionId],i})),n.usage&&e.setSessions(r=>r.map(i=>i.sessionId===n.sessionId?{...i,lastUsage:n.usage}:i)),e.requestSessions({force:!0}).catch(r=>e.setErrorText(r instanceof Error?r.message:String(r)));break;case"session.interrupted":e.respondingSessionsRef.current=ot(e.respondingSessionsRef.current,n.sessionId,!1),e.setRespondingSessions(r=>ot(r,n.sessionId,!1)),e.requestSessions({force:!0}).catch(r=>e.setErrorText(r instanceof Error?r.message:String(r)));break;case"session.renamed":e.setSessions(r=>r.map(i=>i.sessionId===n.sessionId?{...i,customTitle:n.title}:i));break;case"error":e.setErrorText(n.message);break}},[e,t])}const Sr="vibelet.web.composerDrafts",Ln={draftsBySessionId:{},newSessionDraft:""};function Ws(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function wr(e){return Ws(e)?{draftsBySessionId:Ws(e.draftsBySessionId)?Object.fromEntries(Object.entries(e.draftsBySessionId).filter(n=>typeof n[1]=="string")):{},newSessionDraft:typeof e.newSessionDraft=="string"?e.newSessionDraft:""}:Ln}function ed(e=window.localStorage){const t=e.getItem(Sr);if(!t)return Ln;try{return wr(JSON.parse(t))}catch{return Ln}}function Et(e,t=window.localStorage){t.setItem(Sr,JSON.stringify(wr(e)))}function Ft(e,t,n){if(!t)return{...e,newSessionDraft:n};const r={...e.draftsBySessionId};return n.trim()?r[t]=n:delete r[t],{...e,draftsBySessionId:r}}function _t(e,t){return t?e.draftsBySessionId[t]??"":e.newSessionDraft}function td(e,t,n){if(!t||!n||t===n)return e;const r=e.draftsBySessionId[t];if(r===void 0)return e;const i={...e.draftsBySessionId};return delete i[t],r.trim()&&(i[n]=r),{...e,draftsBySessionId:i}}function nd(e,t,n,r=!1){if(!r)return{...e,[t]:[n]};const i=e[t]??[],o=i.includes(n)?i.filter(d=>d!==n):[...i,n];return{...e,[t]:o}}function sd(e){const t=a.useCallback(async c=>{const I=e.clientRef.current;if(!(!I?.isConnected||!e.activeApproval)){e.setBusy(!0),e.setErrorText(null);try{await I.request({action:"session.approve",id:I.makeId("approve"),sessionId:e.activeApproval.sessionId,requestId:e.activeApproval.requestId,approved:c}),e.setPendingApprovals(f=>{const w={...f};return delete w[e.activeApproval.sessionId],w})}catch(f){e.setErrorText(f instanceof Error?f.message:String(f))}finally{e.setBusy(!1)}}},[e]),n=a.useCallback(async()=>{const c=e.clientRef.current;if(!(!c?.isConnected||!e.activeQuestion)){e.setBusy(!0),e.setErrorText(null);try{await c.request({action:"session.respondQuestion",id:c.makeId("question"),sessionId:e.activeQuestion.sessionId,requestId:e.activeQuestion.requestId,answers:e.questionAnswers}),e.setPendingQuestions(I=>{const f={...I};return delete f[e.activeQuestion.sessionId],f})}catch(I){e.setErrorText(I instanceof Error?I.message:String(I))}finally{e.setBusy(!1)}}},[e]),r=a.useCallback(async()=>{const c=e.clientRef.current;if(!(!c?.isConnected||!e.activeQuestion)){e.setBusy(!0),e.setErrorText(null);try{await c.request({action:"session.cancelQuestion",id:c.makeId("cancel_question"),sessionId:e.activeQuestion.sessionId,requestId:e.activeQuestion.requestId}),e.setPendingQuestions(I=>{const f={...I};return delete f[e.activeQuestion.sessionId],f})}catch(I){e.setErrorText(I instanceof Error?I.message:String(I))}finally{e.setBusy(!1)}}},[e]),i=a.useCallback((c,I,f)=>{e.setQuestionAnswers(w=>nd(w,c,I,!!f))},[e]),o=a.useCallback(async c=>{const I=e.clientRef.current;if(!I?.isConnected||!e.activeSession||c==="session.delete"&&!At(`Delete ${qe(e.activeSession)}?`))return!1;e.setBusy(!0),e.setErrorText(null);try{return c==="session.resume"?await I.request({action:c,id:I.makeId("resume"),sessionId:e.activeSession.sessionId,agent:e.activeSession.agent}):await I.request({action:c,id:I.makeId(c.split(".").at(-1)??"session"),sessionId:e.activeSession.sessionId}),c==="session.delete"&&(e.removeCachedHistory(e.activeSession.sessionId),e.setActiveSessionId(null),e.messagesSessionIdRef.current=null,e.lastHistorySessionIdRef.current=null,e.setMessages([])),await e.requestSessions({force:!0}),!0}catch(f){return e.setErrorText(f instanceof Error?f.message:String(f)),!1}finally{e.setBusy(!1)}},[e]),d=a.useCallback(async c=>{e.setApprovalMode(c);const I=e.clientRef.current;if(!(!I?.isConnected||!e.activeSession)){e.setErrorText(null);try{await I.request({action:"session.setApprovalMode",id:I.makeId("approval_mode"),sessionId:e.activeSession.sessionId,approvalMode:c}),e.setSessions(f=>f.map(w=>w.sessionId===e.activeSession.sessionId?{...w,approvalMode:c}:w))}catch(f){e.setErrorText(f instanceof Error?f.message:String(f))}}},[e]),l=a.useCallback(async c=>{const I=e.clientRef.current;if(!(!I?.isConnected||!e.activeSessionId||!c.clientMessageId)){e.setBusy(!0),e.setErrorText(null);try{await I.request({action:"session.queue.cancel",id:I.makeId("queue_cancel"),sessionId:e.activeSessionId,clientMessageId:c.clientMessageId}),e.setPendingQueues(f=>({...f,[e.activeSessionId]:(f[e.activeSessionId]??[]).filter(w=>w.clientMessageId!==c.clientMessageId)}))}catch(f){e.setErrorText(f instanceof Error?f.message:String(f))}finally{e.setBusy(!1)}}},[e]),b=a.useCallback(async(c,I)=>{if(e.pendingSessions[c.sessionId])return;const f=e.clientRef.current;if(f?.isConnected){e.setBusy(!0),e.setErrorText(null);try{const w=I?Date.now():void 0;await f.request({action:"session.setPinned",id:f.makeId("pin"),sessionId:c.sessionId,pinned:I,...w?{pinnedAt:w}:{}}),e.setSessions(y=>y.map(m=>m.sessionId===c.sessionId?{...m,pinned:I,pinnedAt:w}:m)),await e.requestSessions({force:!0})}catch(w){e.setErrorText(w instanceof Error?w.message:String(w))}finally{e.setBusy(!1)}}},[e]),p=a.useCallback(async(c,I)=>{if(e.pendingSessions[c.sessionId])return;const f=e.clientRef.current;if(f?.isConnected){e.setBusy(!0),e.setErrorText(null);try{await f.request({action:"session.setArchived",id:f.makeId("archive"),sessionId:c.sessionId,archived:I}),e.setSessions(w=>w.map(y=>y.sessionId===c.sessionId?{...y,archived:I}:y)),await e.requestSessions({force:!0})}catch(w){e.setErrorText(w instanceof Error?w.message:String(w))}finally{e.setBusy(!1)}}},[e]),g=a.useCallback(async c=>{if(e.pendingSessions[c.sessionId]){e.removeCachedHistory(c.sessionId),e.setPendingSessions(f=>{const w={...f};return delete w[c.sessionId],w}),e.setComposerDrafts(f=>{const w=Ft(f,c.sessionId,"");return e.composerDraftsRef.current=w,Et(w),w}),e.activeSessionIdRef.current===c.sessionId&&(e.setActiveSessionId(null),e.messagesSessionIdRef.current=null,e.lastHistorySessionIdRef.current=null,e.setMessages([]),e.setDraft(_t(e.composerDraftsRef.current,null)),e.setDetailsOpen(!1));return}const I=e.clientRef.current;if(!(!I?.isConnected||!At(`Delete ${qe(c)}?`))){e.setBusy(!0),e.setErrorText(null);try{await I.request({action:"session.delete",id:I.makeId("delete"),sessionId:c.sessionId}),e.removeCachedHistory(c.sessionId),e.setOptimisticSessions(f=>{if(!f[c.sessionId])return f;const w={...f};return delete w[c.sessionId],w}),e.activeSessionIdRef.current===c.sessionId&&(e.setActiveSessionId(null),e.messagesSessionIdRef.current=null,e.lastHistorySessionIdRef.current=null,e.setMessages([]),e.setDetailsOpen(!1)),await e.requestSessions({force:!0})}catch(f){e.setErrorText(f instanceof Error?f.message:String(f))}finally{e.setBusy(!1)}}},[e]),j=a.useCallback(async()=>{e.activeSession&&await b(e.activeSession,!e.activeSession.pinned)},[e.activeSession,b]),h=a.useCallback(async()=>{e.activeSession&&await p(e.activeSession,!e.activeSession.archived)},[e.activeSession,p]),k=a.useCallback(()=>{const c=e.activeSessionId;c&&o("session.interrupt").then(I=>{I&&(e.respondingSessionsRef.current=new Set(e.respondingSessionsRef.current),e.respondingSessionsRef.current.delete(c),e.setRespondingSessions(f=>{const w=new Set(f);return w.delete(c),w}))})},[e,o]),R=a.useCallback(()=>{e.setErrorText(null),e.phase==="connected"?e.requestSessions({force:!0}):window.location.reload()},[e]),C=a.useCallback(async()=>{const c=e.renameTitle.trim();if(e.activeSession&&e.pendingSessions[e.activeSession.sessionId]){e.setPendingSessions(f=>{const w=f[e.activeSession.sessionId];return w?{...f,[e.activeSession.sessionId]:{...w,title:c||w.title,customTitle:c||void 0}}:f});return}const I=e.clientRef.current;if(!(!I?.isConnected||!e.activeSession)){e.setBusy(!0),e.setErrorText(null);try{await I.request({action:"session.rename",id:I.makeId("rename"),sessionId:e.activeSession.sessionId,title:c||void 0}),e.setSessions(f=>f.map(w=>w.sessionId===e.activeSession.sessionId?{...w,customTitle:c||void 0}:w))}catch(f){e.setErrorText(f instanceof Error?f.message:String(f))}finally{e.setBusy(!1)}}},[e]);return{respondApproval:t,respondQuestion:n,cancelQuestion:r,setQuestionChoice:i,requestActiveAction:o,interruptActiveSession:k,retrySessions:R,updateApprovalMode:d,cancelQueuedTurn:l,setSessionPinned:b,setSessionArchived:p,deleteSession:g,updatePinned:j,updateArchived:h,renameSession:C}}function zs(e){const t=e.toLowerCase();return/subscription|required|upgrade|billing/u.test(t)?"subscription":/skillnotfound|not found|missing/u.test(t)?"missing-resource":/permission|forbidden|unauthorized|denied/u.test(t)?"permission":/timeout|timed out/u.test(t)?"timeout":/websocket|network|disconnect|connection|offline|closed/u.test(t)?"network":"unknown"}const Us=15e3,Vs="Session send timed out.";function Rt(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function rd(e){const[t,n]=a.useState(null),r=a.useCallback(b=>{e.respondingSessionsRef.current=new Set(e.respondingSessionsRef.current),e.respondingSessionsRef.current.delete(b),e.setRespondingSessions(p=>{const g=new Set(p);return g.delete(b),g})},[e]),i=a.useCallback((b,p)=>{const g=Rt(b)??Rt(e.cwd)??Me,j=p??e.agent,h=Co(),k=Io({sessionId:h,agent:j,cwd:g,approvalMode:e.approvalMode,model:Xt(e.model),effort:e.effort||void 0,fastMode:e.fastMode,title:j==="codex"?e.t.newCodexSession:e.t.newClaudeSession}),R=e.activeSessionIdRef.current?"":_t(e.composerDraftsRef.current,null);return e.setPendingSessions(C=>({...C,[h]:k})),e.setComposerDrafts(C=>{let c=Ft(C,h,R);return e.activeSessionIdRef.current||(c=Ft(c,null,"")),e.composerDraftsRef.current=c,Et(c),c}),e.setCwd(g),e.setAgent(j),e.setActiveSessionId(h),e.lastHistorySessionIdRef.current=h,e.messagesSessionIdRef.current=h,e.clearHistoryLoading(),e.setMessages([]),e.setDraft(R),e.setErrorText(null),e.reportLog("web.session.pending_create",{sessionId:h,agent:j,cwd:g}),h},[e]),o=a.useCallback(async(b,p,g)=>{const j=e.clientRef.current;if(!j?.isConnected)return e.setErrorText(e.t.webSocketNotConnected),null;const h=g?e.pendingSessions[g]:void 0,k=Rt(b)??Rt(h?.cwd)??Rt(e.cwd)??Me,R=p??h?.agent??e.agent,C=h?.approvalMode??e.approvalMode,c=h?.model??Xt(e.model),I=h?.effort??(e.effort||void 0),f=h?.fastMode??e.fastMode;e.setErrorText(null);try{const w=await j.request({action:"session.create",id:j.makeId("create"),agent:R,cwd:k,approvalMode:C,continueSession:e.continueSession,model:c,effort:I,fastMode:f,...g?{clientSessionId:g}:{}}),y=ko(w);if(!y)throw new Error(e.t.sessionIdMissing);const m=Tt(w)&&typeof w.oldSessionId=="string"?w.oldSessionId:g;return e.setCwd(k),e.setAgent(R),e.setActiveSessionId(y),e.lastHistorySessionIdRef.current=y,e.messagesSessionIdRef.current=y,e.clearHistoryLoading(),g&&h?(e.setPendingSessions(N=>{const P={...N};return delete P[g],m&&m!==g&&delete P[m],P}),e.setOptimisticSessions(N=>({...N,[y]:No(h,y)})),m&&m!==y&&e.remapLocalSessionState(m,y),g!==y&&e.remapLocalSessionState(g,y)):await e.requestSessions({force:!0}),e.reportLog("web.session.create",{sessionId:y,clientSessionId:g,agent:R,cwd:k}),y}catch(w){return e.setErrorText(w instanceof Error?w.message:String(w)),null}},[e]),d=a.useCallback(async b=>{b?.preventDefault();const p=e.draft.trim();if(!p||e.busy)return;const g=e.clientRef.current;if(!g?.isConnected){e.setErrorText(e.t.webSocketNotConnected);return}e.setBusy(!0),e.setErrorText(null),e.updateDraft("");const j=e.attachments;e.setAttachments([]);let h=e.activeSessionId,k=e.activeSession?.agent??e.agent;if(h&&e.pendingSessions[h]){const m=await o(e.pendingSessions[h].cwd,e.pendingSessions[h].agent,h);if(!m){e.setBusy(!1),e.updateDraft(p),e.setAttachments(j);return}h=m,k=e.pendingSessions[e.activeSessionId??""]?.agent??k}else h||(h=await o());if(!h){e.setBusy(!1),e.updateDraft(p),e.setAttachments(j);return}const R=j.length===0?Uo(p,k):null;if(R){const m=Ko(R.command),N=m?g.makeId("cmd_msg"):void 0;m&&(e.messagesSessionIdRef.current=h,e.appendCachedHistory(h,[{role:"user",content:m,timestamp:new Date().toISOString()}]),e.renderCachedHistory(h));try{const P=await g.request({action:"session.command",id:g.makeId("command"),sessionId:h,agent:k,command:R.command,...N?{clientMessageId:N}:{},featureEntitlements:{agentCommands:"pro"}});await e.handleSessionCommandResponse(h,R.command,P)}catch(P){const z=P instanceof Error?P.message:String(P);e.appendInfoMessage(h,Is(z)),e.setErrorText(Is(z))}finally{e.setBusy(!1)}return}const C=Vo(p),c=j.map(m=>m.path),I=g.makeId("msg"),f=`client:${I}`;e.messagesSessionIdRef.current=h,e.appendCachedHistory(h,[{role:"user",content:C,timestamp:new Date().toISOString(),historyKey:f,...c.length?{images:c}:{}}]),e.renderCachedHistory(h),e.respondingSessionsRef.current=new Set(e.respondingSessionsRef.current).add(h),e.setRespondingSessions(m=>new Set(m).add(h));const w=Yo(C)??void 0,y=w?{agentSkills:"pro"}:void 0;try{const m=await g.request({action:"session.send",id:g.makeId("send"),sessionId:h,agent:k,message:C,clientMessageId:I,images:c.length?c:void 0,model:Xt(e.model),effort:e.effort||void 0,fastMode:e.fastMode,skillInvocation:w,featureEntitlements:y},{timeoutMs:Us,timeoutMessage:Vs});Tt(m)&&typeof m.oldSessionId=="string"&&typeof m.sessionId=="string"&&e.remapLocalSessionState(m.oldSessionId,m.sessionId),e.reportLog("web.telemetry.send_accepted",{attachmentCount:c.length}),n(N=>N?.historyKey===f?null:N)}catch(m){const N=m instanceof Error?m.message:String(m),P=zs(js(N,!!w));e.setErrorText(null),n({sessionId:h,agent:k,message:C,clientMessageId:I,historyKey:f,kind:P,retrying:!1,...c.length?{images:c}:{},model:Xt(e.model),effort:e.effort||void 0,fastMode:e.fastMode,skillInvocation:w,featureEntitlements:y}),e.reportLog("web.telemetry.send_failed",{attachmentCount:c.length,failureKind:P},"warn"),r(h)}finally{e.setBusy(!1)}},[r,o,e]),l=a.useCallback(async()=>{if(!t||t.retrying||e.busy)return;const b=e.clientRef.current;if(!b?.isConnected){n(p=>p?{...p,kind:"network"}:null);return}n(p=>p?{...p,retrying:!0}:null),e.ensureCachedHistoryEntry(t.sessionId,{role:"user",content:t.message,historyKey:t.historyKey,...t.images?.length?{images:t.images}:{}}),e.setBusy(!0),e.setErrorText(null),e.respondingSessionsRef.current=new Set(e.respondingSessionsRef.current).add(t.sessionId),e.setRespondingSessions(p=>new Set(p).add(t.sessionId));try{const p=await b.request({action:"session.send",id:b.makeId("retry_send"),sessionId:t.sessionId,agent:t.agent,message:t.message,clientMessageId:t.clientMessageId,images:t.images,model:t.model,effort:t.effort,fastMode:t.fastMode,skillInvocation:t.skillInvocation??void 0,featureEntitlements:t.featureEntitlements},{timeoutMs:Us,timeoutMessage:Vs});Tt(p)&&typeof p.oldSessionId=="string"&&typeof p.sessionId=="string"&&e.remapLocalSessionState(p.oldSessionId,p.sessionId),e.reportLog("web.telemetry.retry_accepted",{attachmentCount:t.images?.length??0}),n(null)}catch(p){const g=p instanceof Error?p.message:String(p),j=zs(js(g,!!t.skillInvocation));n(h=>h?{...h,kind:j,retrying:!1}:null),e.reportLog("web.telemetry.retry_failed",{attachmentCount:t.images?.length??0,failureKind:j},"warn"),r(t.sessionId)}finally{e.setBusy(!1)}},[r,t,e]);return{failedSend:t,retryFailedSend:l,stagePendingSession:i,sendDraft:d}}const id=new Set(["attachmentCount","domNodes","durationMs","errorKind","failureKind","longTaskCount","maxLongTaskMs","online","phase","visibilityState"]);function ad(e){const t={};for(const[n,r]of Object.entries(e))id.has(n)&&(typeof r=="string"?t[n]=r.slice(0,48):typeof r=="number"&&Number.isFinite(r)?t[n]=Math.round(r):typeof r=="boolean"&&(t[n]=r));return t}function Ks(e){return e instanceof TypeError?"TypeError":e instanceof RangeError?"RangeError":e instanceof SyntaxError?"SyntaxError":e instanceof Error?"Error":typeof e=="string"?"string":typeof e}function od(e){a.useEffect(()=>{const t=performance.now(),n=(p,g,j="info")=>e(p,ad(g),j),r=p=>{n("web.telemetry.runtime_error",{errorKind:Ks(p.error)},"error")},i=p=>{n("web.telemetry.unhandled_rejection",{errorKind:Ks(p.reason)},"error")},o=window.setTimeout(()=>{n("web.telemetry.workspace_ready",{durationMs:performance.now()-t,domNodes:document.getElementsByTagName("*").length,online:navigator.onLine,visibilityState:document.visibilityState})},1500);let d=0,l=0,b=null;return typeof PerformanceObserver<"u"&&PerformanceObserver.supportedEntryTypes.includes("longtask")&&(b=new PerformanceObserver(p=>{for(const g of p.getEntries())d+=1,l=Math.max(l,g.duration)}),b.observe({entryTypes:["longtask"]})),window.addEventListener("error",r),window.addEventListener("unhandledrejection",i),()=>{window.clearTimeout(o),window.removeEventListener("error",r),window.removeEventListener("unhandledrejection",i),b?.disconnect(),d>0&&n("web.telemetry.long_tasks",{longTaskCount:d,maxLongTaskMs:l},"warn")}},[e])}const cd=6;function ld(e,t){return t.has(e.sessionId)||e.runtime?.isResponding===!0||e.runtime?.state==="daemonActive"||e.runtime?.state==="externalRunning"}function dd(e,t,n,r,i=cd){if(i<=0)return[];const o=[];for(const d of e){if(o.length>=i)break;!d.sessionId||!ld(d,n)||dn(t,d.sessionId)||r.has(d.sessionId)||o.push(d)}return o}function ud(e,t){const n=t.trim().toLowerCase();return n?[qe(e),e.cwd,e.agent,e.branch??"",...e.titleAliases??[]].some(r=>r.toLowerCase().includes(n)):!0}function fd(e,t){return e.filter(n=>t.hideArchived&&n.archived||t.agentFilter!=="all"&&n.agent!==t.agentFilter?!1:ud(n,t.search))}function hd(){const e=a.useRef(null),t=a.useRef(async()=>{}),n=a.useRef(null),r=a.useRef(Pn()),i=a.useRef(Po()),o=a.useRef(Gi()),d=a.useRef(ed()),l=a.useRef(yl()),b=a.useRef(r.current),p=a.useRef(i.current),g=a.useRef(d.current),j=a.useRef(null),h=a.useRef(null),k=a.useRef(new Set),R=a.useRef(null),C=a.useRef(new Set),c=a.useRef(null),I=a.useRef(0),f=a.useRef(new Set),w=a.useRef({}),y=a.useRef(!1),[m,N]=a.useState("connecting"),[P,z]=a.useState(()=>ps[gs(o.current.language)].preparingVibeletWeb),[ge,T]=a.useState(null),[ae,de]=a.useState(null),[oe,ue]=a.useState([]),[te,ye]=a.useState({}),[_,E]=a.useState({}),[W,F]=a.useState(),[ce,be]=a.useState({}),[J,Q]=a.useState(),[B,Z]=a.useState(null),[ne,fe]=a.useState(null),[X,V]=a.useState(()=>new Set),[se,je]=a.useState({}),[A,U]=a.useState({}),[De,Pe]=a.useState({}),[Fe,he]=a.useState({}),[me,$e]=a.useState("claude"),[xe,Te]=a.useState(Me),[Be,Ce]=a.useState(En),[Se]=a.useState(!1),[Ie,Ae]=a.useState(""),[Ue,we]=a.useState(""),[Le,Ve]=a.useState(!1),[He,Ee]=a.useState(""),[x,O]=a.useState(d.current),[S,D]=a.useState(()=>_t(d.current,null)),{webPreferences:G,search:pe,setSearch:Ze,sinceFilter:Ye,setSinceFilter:lt,hideArchived:We,setHideArchived:Lt,groupFolders:Oe,setGroupFolders:bt,collapsedFolders:un,setCollapsedFolders:Xe,sessionAgentFilter:_e,setSessionAgentFilter:Ot,directoryTags:qt,archiveSyncedDaemonIds:Bt,archiveSyncCardDismissedDaemonIds:Ht,composerPreferences:dt,savedTargets:xt,setSavedTargets:fn,leftSidebarCollapsed:$,setLeftSidebarCollapsed:K,rightSidebarCollapsed:re,setRightSidebarCollapsed:ve,workspaceClassName:Wt,wideMainClassName:zt,workspaceStyle:ut,beginPaneResize:Ne,commitSearch:St,saveTargets:Ut,setLanguagePreference:Ke,updateSessionListPreferences:hn,updateComposerPreferences:vr}=Yl(o.current,l.current),kr=gs(G.language),H=ps[kr],[ft,mn]=a.useState(!1),[Qe,wt]=a.useState("session"),[jr,pn]=a.useState(!1),[Cr,Ir]=a.useState({}),[Nr,Rr]=a.useState({}),[Mr,Tr]=a.useState([]),[vt,Ar]=a.useState({statusText:"",loading:!1,action:null}),[ht,kt]=a.useState(Fn),[gn,Er]=a.useState(i.current),[mt,Zn]=a.useState(r.current),[Yn,_r]=a.useState(null),[Dr,Pr]=a.useState(null),{attachments:Xn,setAttachments:es,uploadBusy:Fr,directory:$r,setDirectory:ts,newDirName:Lr,setNewDirName:Or,remoteFile:Vt,setRemoteFile:qr,remoteFileConflict:Br,remoteFileMode:Hr,setRemoteFileMode:Wr,uploadFiles:zr,openRemoteFile:ns,saveRemoteFile:Ur,downloadRemoteFile:Vr,listDirectory:yn,listSessionDirectories:Kr,createDirectory:Qr,createSessionDirectory:Gr}=$l({clientRef:e,pairing:ae,cwd:xe,phase:m,controlTab:Qe,setControlTab:wt,setBusy:mn,setErrorText:T,t:H}),et=a.useMemo(()=>en(en(oe,Object.values(_)),Object.values(te)),[_,te,oe]),Jr=a.useMemo(()=>new Set(Object.keys(te)),[te]),tt=a.useMemo(()=>et.find(u=>u.sessionId===B)??null,[B,et]),ss=a.useMemo(()=>B&&se[B]?se[B]:Object.values(se)[0]??null,[B,se]),rs=a.useMemo(()=>B&&A[B]?A[B]:Object.values(A)[0]??null,[B,A]),Zr=B?Fe[B]??[]:[],Yr=Cr[me]??[],Xr=Nr[me],bn=a.useMemo(()=>fd(et,{search:pe,hideArchived:We,agentFilter:_e}),[et,We,pe,_e]),ei=a.useMemo(()=>Ro(bn),[bn]),{appendCachedDelta:ti,appendCachedHistory:is,appendInfoMessage:xn,clearHistoryLoading:pt,ensureCachedHistoryEntry:ni,historyCacheRef:Sn,historyLoading:si,hydrateVisibleHistory:as,messages:os,messagesSessionIdRef:Re,mergeCachedHistoryPage:ri,remapCachedHistory:ii,removeCachedHistory:ai,renderCachedHistory:jt,replaceCachedHistory:wn,requestHistory:cs,setMessages:nt}=zl({activeSessionIdRef:n,clientRef:e,historyTimeoutMessage:H.historyRequestTimedOut,setErrorText:T});a.useEffect(()=>{n.current=B},[B]),a.useEffect(()=>{R.current=ae},[ae]),a.useEffect(()=>{f.current=X},[X]),a.useEffect(()=>{p.current=gn},[gn]),a.useEffect(()=>{b.current=mt},[mt]),a.useEffect(()=>{g.current=x},[x]);const ls=a.useCallback(u=>{D(u),O(v=>{const M=Ft(v,n.current,u);return g.current=M,Et(M),M})},[]),ds=a.useCallback(u=>{O(v=>{const M=Ft(v,null,u);return g.current=M,Et(M),M}),n.current||D(u)},[]);a.useEffect(()=>{Ji();const u=Zi();u&&(ds(u),wt("session"),Yi())},[ds]),a.useEffect(()=>{Qe==="admin"&&Zn(Pn())},[Qe]),a.useEffect(()=>()=>{c.current&&window.clearTimeout(c.current),Vt?.objectUrl&&URL.revokeObjectURL(Vt.objectUrl)},[Vt?.objectUrl]);const Ct=a.useCallback((u,v=!1)=>{ue(M=>en(v?M:[],u.sessions)),E(M=>{const q=new Set(u.sessions.map(ee=>ee.sessionId)),Y=Object.fromEntries(Object.entries(M).filter(([ee])=>!q.has(ee)));return Object.keys(Y).length===Object.keys(M).length?M:Y}),F(u.nextCursor),Q(u.inventoryVersion),u.folderCounts&&be(u.folderCounts),v||Al(R.current?.daemonId,u),z(u.inventoryBackfillInFlight?H.connectedIndexing:H.connected)},[H.connected,H.connectedIndexing]),Kt=a.useCallback(async u=>{const v=e.current;if(!v?.isConnected)return;const M=[...new Set(u.map(q=>q.cwd).filter(Boolean))];if(M.length!==0)try{const q=await v.request({action:"sessions.gitMetadata",id:v.makeId("git"),cwds:M});ue(Y=>Y.map(ee=>({...ee,branch:q.branches[ee.cwd]??ee.branch,diffStat:q.diffStats[ee.cwd]??ee.diffStat})))}catch{}},[]),Qt=a.useCallback((u,v=f.current)=>{const M=e.current;if(!M?.isConnected||u.length===0)return;const q=dd(u,Sn.current,v,k.current);for(const Y of q)k.current.add(Y.sessionId),M.request({action:"session.history",id:M.makeId("history_prefetch"),sessionId:Y.sessionId,agent:Y.agent},{timeoutMessage:H.historyPrefetchTimedOut,timeoutMs:$n}).catch(()=>{}).finally(()=>{k.current.delete(Y.sessionId)})},[H.historyPrefetchTimedOut]),us=a.useCallback(u=>{const v=Oo(u,{currentActiveSessionId:n.current,currentCwd:xe});Ct(v.page,!1),F(v.page.nextCursor),Q(v.page.inventoryVersion),v.messages&&v.activeSessionId&&as(v.activeSessionId,v.messages),Z(v.activeSessionId),v.activeAgent&&$e(v.activeAgent),v.activeCwd&&Te(v.activeCwd),v.activeApprovalMode&&Ce(v.activeApprovalMode),v.questionAnswers&&Pe(v.questionAnswers),f.current=new Set(v.respondingSessionIds),V(f.current),je(v.pendingApprovals),U(v.pendingQuestions),he(v.pendingQueues),Kt(u.sessions),Qt(u.sessions,new Set(v.respondingSessionIds))},[xe,Kt,as,Qt,Ct]),fs=a.useCallback(async()=>{const u=e.current;if(!u?.isConnected)return;const v=await u.request({action:"reconnect.snapshot",id:u.makeId("snapshot"),activeSessionId:n.current??void 0,activeAgent:tt?.agent??me,agent:_e==="all"?void 0:_e,search:pe.trim()||void 0,sinceMs:ws(Ye),hideArchived:We,skipGitMetadata:!0});us(v.snapshot)},[tt?.agent,me,us,We,pe,_e,Ye]),Ge=a.useCallback(async u=>{const v=e.current;if(!v?.isConnected)return;const M=await v.request({action:"sessions.list",id:v.makeId(u?.append?"sessions_more":"sessions"),limit:xo,cursor:u?.cursor,agent:_e==="all"?void 0:_e,search:pe.trim()||void 0,sinceMs:ws(Ye),hideArchived:We,skipGitMetadata:!0,force:u?.force}),q=nr(M);Ct(q,u?.append),Z(Y=>Y??q.sessions[0]?.sessionId??null),Kt(q.sessions),Qt(q.sessions)},[We,Kt,Qt,pe,_e,Ct,Ye]),hs=a.useCallback(async(u,v)=>{const M=e.current;if(M?.isConnected)try{const[q,Y,ee]=await Promise.all([M.request({action:"models.list",id:M.makeId("models"),agent:u}),M.request({action:"usage.limits.fetch",id:M.makeId("usage"),agent:u}),M.request({action:"skills.list",id:M.makeId("skills"),cwd:v||void 0})]);Ir(le=>({...le,[u]:q.options??[]})),Rr(le=>({...le,[u]:Y})),Tr(Array.isArray(ee.skills)?ee.skills:[])}catch(q){T(q instanceof Error?q.message:String(q))}},[]),vn=a.useCallback((u,v,M="info")=>{const q=e.current;q?.isConnected&&q.request({action:"log.report",id:q.makeId("log"),entries:[{level:M,event:u,data:v,ts:new Date().toISOString()}]}).catch(()=>{})},[]);od(vn);const Gt=a.useCallback(async(u=R.current)=>{if(!u){kt(Fn);return}kt(v=>({...v,loading:!0,error:null}));try{const v=await fetch(kl(u,window.location,{sameOrigin:!1}),{cache:"no-store"});if(!v.ok)throw new Error(`HTTP ${v.status}`);const M=jl(await v.json().catch(()=>null));kt({...M,loading:!1,error:null})}catch{kt(v=>({...v,loading:!1,error:H.connectorVersionFailed}))}},[H.connectorVersionFailed]);a.useEffect(()=>{Qe==="admin"&&m==="connected"&&Gt()},[Qe,m,Gt]);const oi=a.useCallback(u=>{Er(v=>{const M={...v,...u};return p.current=M,Fo(M),M})},[]),Jt=a.useCallback((u,v)=>{!u||!v||u===v||(Z(M=>M===u?v:M),j.current===u&&(j.current=v),Re.current===u&&(Re.current=v),ii(u,v),f.current=vs(f.current,u,v),V(M=>vs(M,u,v)),je(M=>In(M,u,v)),U(M=>In(M,u,v)),he(M=>In(M,u,v)),E(M=>{const q=M[u];if(!q)return M;const Y={...M};return delete Y[u],Y[v]={...q,sessionId:v},Y}),O(M=>{const q=td(M,u,v);return q!==M&&(g.current=q,Et(q)),q}))},[]),ci=a.useCallback(async(u,v,M)=>{const q=typeof M.sessionId=="string"?M.sessionId:u,Y=typeof M.oldSessionId=="string"?M.oldSessionId:u;Y&&q&&Y!==q&&Jt(Y,q),v.name==="clear"?(wn(q,[]),he(ee=>{const le={...ee};return delete le[q],delete le[Y],le}),je(ee=>{const le={...ee};return delete le[q],delete le[Y],le}),U(ee=>{const le={...ee};return delete le[q],delete le[Y],le}),Z(q)):v.name==="new"?(Z(q),Re.current=q,jt(q)):v.name==="exit"?(ue(ee=>ee.map(le=>le.sessionId===q?{...le,archived:!0}:le)),Z(null),Re.current=null,j.current=null,nt([])):v.name==="goal"&&"goal"in M&&xn(q,Qo(M.goal)),M.turnStarted&&!M.queued&&(f.current=new Set(f.current).add(q),V(ee=>new Set(ee).add(q))),await Ge({force:!0})},[xn,Jt,jt,wn,Ge]),li=Xl({notificationSettingsRef:p,notifiedEventsRef:C,notificationPermissionRef:b,activeSessionIdRef:n,respondingSessionsRef:f,turnNotificationCountsRef:w,t:H,setActiveSessionId:Z,setErrorText:T,setPendingQueues:he,setPendingApprovals:je,setPendingQuestions:U,setQuestionAnswers:Pe,setRespondingSessions:V,setSessions:ue,remapLocalSessionState:Jt,requestSessions:Ge,clearHistoryLoading:pt,replaceCachedHistory:wn,mergeCachedHistoryPage:ri,appendCachedHistory:is,appendCachedDelta:ti});Dl({clientRef:e,connectWithPairingRef:t,pairingRef:R,reconnectTimerRef:c,connectionAttemptIdRef:I,intentionalDisconnectRef:y,historyCacheRef:Sn,historyCacheDaemonIdRef:h,messagesSessionIdRef:Re,lastHistorySessionIdRef:j,rememberedTarget:l.current[0]??null,agent:me,cwd:xe,phase:m,search:pe,sinceFilter:Ye,t:H,handleServerMessage:li,setPhase:N,setStatusText:z,setErrorText:T,setMessages:nt,setPairing:de,setSavedTargets:fn,setSessionsFromPage:Ct,refreshDaemonMetadata:Gt,requestReconnectSnapshot:fs,fetchAgentResources:hs,reportLog:vn,requestSessions:Ge}),a.useEffect(()=>{const u=et.find(v=>v.sessionId===B);if(!u){j.current=null,Re.current=null,pt(),nt([]),D(_t(g.current,null));return}if($e(u.agent),Te(u.cwd||Me),Ae(u.model??""),we(u.effort??""),Ve(u.fastMode??!1),Ce(u.approvalMode??En),Ee(u.customTitle??u.title??""),D(_t(g.current,u.sessionId)),ts(v=>({...v,path:u.cwd||Me,loaded:v.path===(u.cwd||Me)?v.loaded:!1})),te[u.sessionId]){j.current=u.sessionId,pt(),Re.current!==u.sessionId&&(Re.current=u.sessionId,nt([]));return}if(jt(u.sessionId)){j.current=u.sessionId,pt(u.sessionId);return}j.current!==u.sessionId&&(j.current=u.sessionId,Re.current!==u.sessionId&&(Re.current=u.sessionId,nt([])),cs(u))},[B,pt,et,te,jt,cs]);const{failedSend:di,retryFailedSend:ui,stagePendingSession:fi,sendDraft:hi}=rd({clientRef:e,activeSessionIdRef:n,composerDraftsRef:g,lastHistorySessionIdRef:j,messagesSessionIdRef:Re,respondingSessionsRef:f,agent:me,cwd:xe,approvalMode:Be,continueSession:Se,model:Ie,effort:Ue,fastMode:Le,activeSessionId:B,activeSession:tt,pendingSessions:te,draft:S,busy:ft,attachments:Xn,t:H,setPendingSessions:ye,setOptimisticSessions:E,setComposerDrafts:O,setCwd:Te,setAgent:$e,setActiveSessionId:Z,setMessages:nt,setDraft:D,setErrorText:T,setBusy:mn,setAttachments:es,setRespondingSessions:V,clearHistoryLoading:pt,reportLog:vn,remapLocalSessionState:Jt,requestSessions:Ge,updateDraft:ls,appendCachedHistory:is,ensureCachedHistoryEntry:ni,renderCachedHistory:jt,handleSessionCommandResponse:ci,appendInfoMessage:xn}),{respondApproval:mi,respondQuestion:pi,cancelQuestion:gi,setQuestionChoice:yi,requestActiveAction:bi,interruptActiveSession:xi,retrySessions:Si,updateApprovalMode:wi,cancelQueuedTurn:vi,setSessionPinned:ki,setSessionArchived:ji,deleteSession:Ci,updatePinned:Ii,updateArchived:Ni,renameSession:Ri}=sd({clientRef:e,activeSessionIdRef:n,composerDraftsRef:g,lastHistorySessionIdRef:j,messagesSessionIdRef:Re,respondingSessionsRef:f,activeApproval:ss,activeQuestion:rs,activeSession:tt,activeSessionId:B,questionAnswers:De,pendingSessions:te,phase:m,renameTitle:He,setBusy:mn,setErrorText:T,setPendingApprovals:je,setPendingQuestions:U,setQuestionAnswers:Pe,setPendingQueues:he,setActiveSessionId:Z,setMessages:nt,setApprovalMode:Ce,setSessions:ue,setPendingSessions:ye,setComposerDrafts:O,setDraft:D,setDetailsOpen:pn,setRespondingSessions:V,setOptimisticSessions:E,removeCachedHistory:ai,requestSessions:Ge}),{runArchiveSync:kn,skipArchiveSync:Mi,runAdminAction:ms,exportActiveSession:Ti,clearPairing:Ai,setNotificationsEnabled:Ei,connectSavedTarget:_i,forgetSavedTarget:Di,openSessionDetails:Pi,editFolderTags:Fi,browseFolder:$i,copyResumeCommand:Li}=Cl({clientRef:e,pairingRef:R,connectWithPairingRef:t,notificationPermissionRef:b,intentionalDisconnectRef:y,connectionAttemptIdRef:I,historyCacheRef:Sn,historyCacheDaemonIdRef:h,messagesSessionIdRef:Re,lastHistorySessionIdRef:j,displaySessions:et,pairing:ae,t:H,archiveSyncBusy:Yn,daemonMetadata:ht,activeSession:tt,messages:os,notificationPermission:mt,savedTargets:xt,directoryTags:qt,setArchiveSyncBusy:_r,setArchiveSyncStatus:Pr,setSessions:ue,setAdmin:Ar,setErrorText:T,setNotificationPermission:Zn,setStatusText:z,setMessages:nt,setPairing:de,setDaemonMetadata:kt,setPhase:N,setActiveSessionId:Z,setRenameTitle:Ee,setDetailsOpen:pn,setControlTab:wt,updateSessionListPreferences:hn,requestSessions:Ge,refreshDaemonMetadata:Gt,updateNotificationSettings:oi,saveTargets:Ut,listDirectory:yn}),Oi=mt==="denied"||mt==="unsupported",qi=!!(ht.version&&ht.latestVersion&&wl(ht.version,ht.latestVersion)),Zt=ae?.daemonId,Bi=!!(Zt&&Bt[Zt]),Hi=!!(Zt&&Ht[Zt]);return s.jsxs("main",{className:Wt,id:"vibelet-workspace",style:ut,children:[s.jsx("a",{className:"skip-link",href:"#vibelet-main-content",children:H.skipToConversation}),$?s.jsx("button",{"aria-label":H.expandSessionSidebar,className:"sidebar-restore-button sidebar-restore-button-left",onClick:()=>K(!1),title:H.expandSessionSidebar,type:"button",children:s.jsx(Ys,{"aria-hidden":"true"})}):s.jsxs(s.Fragment,{children:[s.jsx(Qc,{activeSessionId:B,busy:ft,collapsedFolders:un,currentCwd:xe,directoryTags:qt,displayName:ae?.displayName,folderCounts:ce,groupFolders:Oe,groupedSessions:ei,hideArchived:We,inventoryVersion:J,nextCursor:W,phase:m,respondingSessionIds:X,search:pe,sessionAgentFilter:_e,sessionsCount:et.length,sinceFilter:Ye,statusText:P,t:H,visibleSessions:bn,onLoadMore:u=>{Ge({append:!0,cursor:u})},onBrowseFolder:$i,onCopyResumeCommand:Li,onCreateDirectory:Gr,pendingSessionIds:Jr,onCreateSession:(u,v)=>{fi(u,v)},onDeleteSession:u=>{Ci(u)},onEditFolderTags:Fi,onListDirectories:Kr,onOpenSessionDetails:Pi,onResetFilters:()=>{Ot("all"),lt("30d"),Lt(!1),bt(!1)},onSearchChange:Ze,onSearchCommit:St,onSelectSession:Z,onToggleSessionArchived:u=>{ji(u,!u.archived)},onToggleSessionPinned:u=>{ki(u,!u.pinned)},onSessionAgentFilterChange:Ot,onSinceFilterChange:lt,onViewChanges:fe,onToggleFolder:u=>Xe(v=>({...v,[u]:!v[u]})),onToggleGroupFolders:()=>bt(u=>!u),onToggleHideArchived:()=>Lt(u=>!u),onToggleCollapse:()=>K(!0)}),s.jsx("button",{"aria-label":H.resizeSessionSidebar,className:"resize-handle",onPointerDown:Ne("left"),title:H.resizeSessionSidebar,type:"button",children:s.jsx("span",{})})]}),s.jsxs("section",{className:zt,"aria-label":H.vibeletWorkspace,id:"vibelet-main-content",tabIndex:-1,children:[s.jsx(Dc,{activeSession:tt,activeSessionId:B,activeModelOptions:Yr,activeQueue:Zr,activeUsage:Xr,agent:me,approvalMode:Be,attachments:Xn,busy:ft,cwd:xe,draft:S,effort:Ue,errorText:ge,failedSend:di,fastMode:Le,historyLoading:si,messages:os,model:Ie,phase:m,quickReplies:dt.quickReplies,renameTitle:He,respondingSessionIds:X,sendShortcut:dt.sendShortcut,skills:Mr,uploadBusy:Fr,detailsOpen:jr,t:H,onApprovalModeChange:u=>{wi(u)},onBrowseFiles:()=>{const u=tt?.cwd||xe||Me;wt("files"),yn(u,{updateRoute:!0})},onCancelQueuedTurn:u=>{vi(u)},onClearInterrupt:()=>{bi("session.clearInterrupt")},onDraftChange:ls,onDetailsOpenChange:pn,onEffortChange:we,onExportActiveSession:()=>{Ti()},onFastModeChange:Ve,onRetryFailedSend:ui,onModelChange:Ae,onOpenRemoteFile:(u,v)=>{ns(u,v,{updateRoute:!0})},onInterrupt:xi,onRetry:Si,onRefreshSessions:()=>{Ge({force:!0})},onRenameSession:()=>{Ri()},onRenameTitleChange:Ee,onRemoveAttachment:u=>es(v=>v.filter(M=>M.path!==u)),onRestoreSnapshot:()=>{fs()},onRefreshSkills:()=>{hs(tt?.agent??me,xe)},onSendShortcutChange:u=>vr(v=>({...v,sendShortcut:u})),onSubmit:hi,onToggleArchived:()=>{Ni()},onTogglePinned:()=>{Ii()},onUploadFiles:zr,onViewChanges:fe}),re?s.jsx("button",{"aria-label":H.expandControlsSidebar,className:"sidebar-restore-button sidebar-restore-button-right",onClick:()=>ve(!1),title:H.expandControlsSidebar,type:"button",children:s.jsx(Ss,{"aria-hidden":"true"})}):s.jsxs(s.Fragment,{children:[s.jsx("button",{"aria-label":H.resizeControlsSidebar,className:"resize-handle right-resize-handle",onPointerDown:Ne("right"),title:H.resizeControlsSidebar,type:"button",children:s.jsx("span",{})}),s.jsxs("aside",{className:"control-pane","aria-label":H.controls,children:[s.jsxs("div",{className:"control-pane-toolbar",children:[s.jsx(Pc,{value:Qe,t:H,onChange:wt}),s.jsx("button",{"aria-label":H.collapseControlsSidebar,className:"sidebar-panel-collapse-button",onClick:()=>ve(!0),title:H.collapseControlsSidebar,type:"button",children:s.jsx(Ss,{"aria-hidden":"true"})})]}),Qe==="session"?s.jsx(Uc,{activeApproval:ss,activeQuestion:rs,busy:ft,questionAnswers:De,t:H,onCancelQuestion:()=>{gi()},onQuestionChoice:yi,onRespondApproval:u=>{mi(u)},onRespondQuestion:()=>{pi()}}):null,Qe==="files"?s.jsx(a.Suspense,{fallback:s.jsx(As,{t:H}),children:s.jsx(Fc,{busy:ft,cwd:xe,directory:$r,newDirName:Lr,remoteFile:Vt,remoteFileConflict:Br,remoteFileMode:Hr,t:H,onCreateDirectory:()=>{Qr()},onDirectoryPathChange:u=>ts(v=>({...v,path:u,loaded:!1})),onDownloadRemoteFile:()=>{Vr()},onListDirectory:u=>{yn(u,{updateRoute:!0})},onNewDirNameChange:Or,onOpenRemoteFile:(u,v)=>{ns(u,v,{updateRoute:!0})},onRemoteFileModeChange:Wr,onRemoteFileTextChange:u=>qr(v=>v&&{...v,text:u,dirty:!0}),onSaveRemoteFile:u=>{Ur(u)}})}):null,Qe==="admin"?s.jsxs(a.Suspense,{fallback:s.jsx(As,{t:H}),children:[s.jsx(Lc,{pairing:ae,phase:m,t:H,onForgetPairing:Ai}),s.jsx(qc,{language:G.language,t:H,onLanguageChange:Ke}),s.jsx(Hc,{activeDaemonId:ae?.daemonId,busy:ft,t:H,targets:xt,onConnect:_i,onForget:Di}),s.jsx(Bc,{notificationsBlocked:Oi,permission:mt,settings:gn,t:H,onToggleEnabled:Ei}),s.jsx($c,{busy:Yn,connected:m==="connected",dismissed:Hi,feedback:Dr,synced:Bi,t:H,onPull:()=>{kn("pull")},onPushMerge:()=>{kn("pushMerge")},onPushReplace:()=>{kn("pushReplace")},onSkip:Mi}),s.jsx(Oc,{connected:m==="connected",metadata:ht,restartBusy:vt.loading&&vt.action==="restart",showUpdate:qi,t:H,updateBusy:vt.loading&&vt.action==="update",updateStatus:vt.statusText,onRestart:()=>{ms("restart")},onUpdate:()=>{ms("update")}})]}):null]})]})]}),s.jsx(zc,{client:e.current,close:()=>fe(null),id:ne,sessions:oe,t:H})]})}const pd=Object.freeze(Object.defineProperty({__proto__:null,App:hd},Symbol.toStringTag,{value:"Module"}));export{pd as A,Vc as C,gt as F,Zs as K,xs as L,Qa as P,Dt as R,mo as T,ke as X,bs as a,ln as b,vo as c,$t as d,Gs as e,zn as f,Dn as j,ks as p,or as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a,j as e,D as p}from"./index-DRV2XMZs.js";const u=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h2",key:"tvwodi"}],["path",{d:"M20 8v11a2 2 0 0 1-2 2h-2",key:"1gkqxj"}],["path",{d:"m9 15 3-3 3 3",key:"1pd0qc"}],["path",{d:"M12 12v9",key:"192myk"}]],x=a("archive-restore",u);const v=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]],k=a("git-merge",v);const m=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],S=a("upload",m);function g({busy:n,connected:s,dismissed:r,feedback:i,synced:o,t:c,onPull:h,onPushMerge:l,onPushReplace:y,onSkip:d}){const t=!s||n!==null;return e.jsxs("section",{className:"control-section compact-section archive-sync-panel",children:[e.jsx("h2",{children:c.archiveSyncTitle}),e.jsx("p",{className:"empty-copy",children:o?c.archiveSyncSynced:r?c.archiveSyncSkippedState:c.archiveSyncBody}),e.jsxs("div",{className:"action-grid archive-sync-actions",children:[e.jsxs("button",{className:"icon-text-button",disabled:t,onClick:l,type:"button",children:[e.jsx(k,{"aria-hidden":"true"}),n==="pushMerge"?c.archiveSyncSyncing:c.archiveSyncPushMerge]}),e.jsxs("button",{className:"icon-text-button",disabled:t,onClick:h,type:"button",children:[e.jsx(p,{"aria-hidden":"true"}),n==="pull"?c.archiveSyncSyncing:c.archiveSyncPull]}),e.jsxs("button",{className:"icon-text-button",disabled:t,onClick:y,type:"button",children:[e.jsx(S,{"aria-hidden":"true"}),n==="pushReplace"?c.archiveSyncSyncing:c.archiveSyncPushReplace]}),e.jsxs("button",{className:"icon-text-button",disabled:t,onClick:d,type:"button",children:[e.jsx(x,{"aria-hidden":"true"}),c.archiveSyncSkip]})]}),i?e.jsx("p",{className:`empty-copy ${i.tone==="error"?"error-copy":"success-copy"}`,children:i.message}):null]})}export{g as ArchiveSyncPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e}from"./index-DRV2XMZs.js";import{K as o}from"./App-20rnW-dS.js";function l({pairing:s,phase:d,t:n,onForgetPairing:t}){const c=d==="connected"?"connected":s?d:n.notPaired;return e.jsxs("section",{className:"control-section compact-section",children:[e.jsx("h2",{children:n.currentDevice}),e.jsxs("dl",{children:[e.jsxs("div",{children:[e.jsx("dt",{children:n.daemon}),e.jsx("dd",{children:s?.displayName??s?.daemonId??n.notPaired})]}),e.jsxs("div",{children:[e.jsx("dt",{children:n.status}),e.jsx("dd",{children:c})]})]}),e.jsx("div",{className:"action-grid",children:e.jsxs("button",{className:"danger-button",disabled:!s,onClick:t,type:"button",children:[e.jsx(o,{"aria-hidden":"true"}),n.forget]})})]})}export{l as ConnectionSettingsPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as n,D as h}from"./index-DRV2XMZs.js";import{R as j}from"./App-20rnW-dS.js";function a({connected:r,metadata:s,showUpdate:o,updateBusy:l,restartBusy:i,t:e,updateStatus:c,onUpdate:d,onRestart:t}){const x=s.version&&s.latestVersion&&o?`${s.version} -> ${s.latestVersion}`:s.version||e.unknown;return n.jsxs("section",{className:"control-section compact-section",children:[n.jsx("h2",{children:e.desktopConnector}),n.jsx("dl",{children:n.jsxs("div",{children:[n.jsx("dt",{children:e.version}),n.jsx("dd",{children:s.loading?e.checking:x})]})}),n.jsxs("div",{className:"action-grid",children:[o?n.jsxs("button",{className:"primary-button",disabled:!r||l||i,onClick:d,type:"button",children:[n.jsx(h,{"aria-hidden":"true"}),l?e.updating:e.update]}):null,n.jsxs("button",{className:"danger-button",disabled:!r||i,onClick:t,type:"button",children:[n.jsx(j,{"aria-hidden":"true"}),i?e.restarting:e.restart]})]}),s.error?n.jsx("p",{className:"empty-copy",children:s.error}):null,c?n.jsx("p",{className:"empty-copy",children:c}):null]})}export{a as DaemonSettingsPanel};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as l,j as e}from"./index-DRV2XMZs.js";import{u as C,X as F}from"./App-20rnW-dS.js";import{F as W}from"./file-text-B-0kY5qg.js";const E={loading:!1,files:null,error:null};function q({client:t,sessionId:f,sessionTitle:x,t:i,onClose:o}){const h=l.useRef(null),j=C(o,h),[n,w]=l.useState("unstaged"),[d,g]=l.useState({unstaged:E,staged:E}),[u,y]=l.useState(null),[p,b]=l.useState(null),[k,N]=l.useState(!1),[S,m]=l.useState(null),c=d[n],v=l.useCallback(async s=>{g(a=>({...a,[s]:{loading:!0,files:a[s].files,error:null}}));try{const a=await t.request({action:"session.gitDiff.list",id:t.makeId("gitDiffList"),sessionId:f,scope:s});g(r=>({...r,[s]:{loading:!1,files:a.files,error:null}}))}catch(a){g(r=>({...r,[s]:{loading:!1,files:null,error:a instanceof Error?a.message:String(a)}}))}},[t,f]);l.useEffect(()=>{!d[n].files&&!d[n].loading&&!d[n].error&&v(n)},[n,d,v]),l.useEffect(()=>{y(null),b(null),m(null)},[n]),l.useEffect(()=>{if(!u){b(null),m(null);return}let s=!1;return N(!0),m(null),t.request({action:"session.gitDiff.file",id:t.makeId("gitDiffFile"),sessionId:f,scope:n,path:u}).then(a=>{s||(b(a),N(!1))}).catch(a=>{s||(m(a instanceof Error?a.message:String(a)),N(!1))}),()=>{s=!0}},[t,f,n,u]);const P=l.useMemo(()=>{const s=a=>a?a.reduce((r,D)=>({adds:r.adds+D.additions,dels:r.dels+D.deletions,count:r.count+1}),{adds:0,dels:0,count:0}):{adds:0,dels:0,count:0};return{unstaged:s(d.unstaged.files),staged:s(d.staged.files)}},[d]);return e.jsxs("div",{"aria-labelledby":"diff-drawer-title","aria-modal":"true",className:"diff-drawer",ref:j,role:"dialog",tabIndex:-1,children:[e.jsx("div",{className:"diff-drawer-backdrop",onClick:o,"aria-hidden":"true"}),e.jsxs("div",{className:"diff-drawer-panel",children:[e.jsxs("header",{className:"diff-drawer-header",children:[e.jsxs("div",{children:[e.jsx("strong",{id:"diff-drawer-title",children:i.changes}),e.jsx("span",{children:x})]}),e.jsx("button",{"aria-label":i.closeChanges,className:"icon-button",onClick:o,ref:h,type:"button",children:e.jsx(F,{"aria-hidden":"true"})})]}),e.jsx("div",{className:"diff-tabs",role:"tablist",children:["unstaged","staged"].map(s=>{const a=P[s],r=n===s;return e.jsxs("button",{type:"button",role:"tab","aria-selected":r,className:`diff-tab ${r?"active":""}`,onClick:()=>w(s),children:[e.jsx("span",{className:"diff-tab-label",children:s==="unstaged"?i.workingChanges:i.stagedChanges}),a.count>0?e.jsxs("span",{className:"diff-tab-meta",children:[e.jsxs("span",{className:"diff-add",children:["+",a.adds]}),e.jsxs("span",{className:"diff-del",children:["-",a.dels]})]}):null]},s)})}),e.jsxs("div",{className:"diff-body",children:[e.jsxs("aside",{className:"diff-files","aria-label":i.changedFiles,children:[c.loading&&!c.files?e.jsx("p",{className:"diff-empty",children:i.loading}):null,c.error?e.jsx("p",{className:"diff-empty diff-error",children:c.error}):null,c.files&&c.files.length===0?e.jsx("p",{className:"diff-empty",children:i.noChanges}):null,c.files?.map(s=>e.jsxs("button",{type:"button",className:`diff-file ${u===s.path?"active":""}`,onClick:()=>y(s.path),children:[e.jsx("span",{className:`diff-status diff-status-${s.status}`,children:s.status}),e.jsx("span",{className:"diff-file-path",title:s.path,children:s.path}),e.jsxs("span",{className:"diff-file-stats",children:[s.binary?e.jsx("span",{className:"diff-binary",children:"bin"}):null,!s.binary&&s.additions>0?e.jsxs("span",{className:"diff-add",children:["+",s.additions]}):null,!s.binary&&s.deletions>0?e.jsxs("span",{className:"diff-del",children:["-",s.deletions]}):null]})]},s.path))]}),e.jsx("section",{className:"diff-patch","aria-label":i.fileDiff,children:u?k?e.jsx("p",{className:"diff-empty",children:i.loadingPatch}):S?e.jsx("p",{className:"diff-empty diff-error",children:S}):p?.binary?e.jsx("p",{className:"diff-empty",children:i.binaryDiffUnavailable}):p?e.jsx(T,{patch:p.patch,truncated:p.truncated,truncatedLabel:i.patchTruncated}):null:e.jsxs("div",{className:"diff-empty",children:[e.jsx(W,{"aria-hidden":"true"}),e.jsx("p",{children:i.selectFileForDiff})]})})]})]})]})}function T({patch:t,truncated:f,truncatedLabel:x}){const i=l.useMemo(()=>t.split(`
|
|
2
|
+
`),[t]);return e.jsxs("div",{className:"diff-patch-view",children:[i.map((o,h)=>{const j=L(o);return e.jsx("div",{className:`diff-line ${j}`,children:e.jsx("span",{className:"diff-line-text",children:o||" "})},h)}),f?e.jsx("p",{className:"diff-empty",children:x}):null]})}function L(t){return t.startsWith("diff ")||t.startsWith("index ")||t.startsWith("---")||t.startsWith("+++")?"header":t.startsWith("@@")?"hunk":t.startsWith("+")?"add":t.startsWith("-")?"del":"ctx"}export{q as DiffDrawer};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid-O7DHMXV3-COP4-7nw.js","assets/index-DRV2XMZs.js","assets/index-nF-4Ar2D.css","assets/mermaid-O7DHMXV3-DaZ-aNWp.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{c as b,j as e,r as v,_ as C,D as _}from"./index-DRV2XMZs.js";import{L as P,R as M,p as m,F as T,j as D,a as y,b as u,c as E,d as I,e as L}from"./App-20rnW-dS.js";import{F as g}from"./file-text-B-0kY5qg.js";const z=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],F=b("image",z);const R=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],S=b("save",R);function U({cwd:n,entries:i,error:t,loaded:l,loading:c,path:s,t:d,onPathChange:a,onListDirectory:o,onOpenRemoteFile:x}){return e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"field",children:[e.jsx("span",{children:d.path}),e.jsxs("div",{className:"field-row",children:[e.jsx("input",{value:s,onChange:r=>a(r.target.value)}),e.jsx("button",{className:"icon-button",onClick:()=>o(),type:"button",children:c?e.jsx(P,{"aria-hidden":"true"}):e.jsx(M,{"aria-hidden":"true"})})]})]}),t?e.jsx("p",{className:"empty-copy",children:t}):null,c?e.jsx("p",{className:"empty-copy",children:d.loadingFiles}):null,e.jsxs("div",{className:"file-list tree-list",children:[m(s)?e.jsxs("button",{onClick:()=>o(m(s)??s),type:"button",children:[e.jsx(T,{"aria-hidden":"true"}),".."]}):null,i.map(r=>{const h=D(s,r.name);return e.jsxs("button",{onClick:()=>r.isDirectory?o(h):x(h,n),type:"button",children:[r.isDirectory?e.jsx(y,{"aria-hidden":"true"}):e.jsx(g,{"aria-hidden":"true"}),r.name]},`${r.name}:${r.isDirectory}`)})]}),l&&!c&&!t&&i.length===0?e.jsx("p",{className:"empty-copy",children:d.noFilesInDirectory}):null]})}const V=v.lazy(()=>C(()=>import("./mermaid-O7DHMXV3-COP4-7nw.js").then(n=>n.a),__vite__mapDeps([0,1,2,3])).then(n=>({default:n.MessageMarkdown})));function $({file:n,mode:i,onModeChange:t,onOpenRemoteFile:l,onTextChange:c}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"segmented editor-mode-tabs",children:[e.jsx("button",{className:i==="edit"?"selected":"",onClick:()=>t("edit"),type:"button",children:"Editor"}),e.jsx("button",{className:i==="preview"?"selected":"",onClick:()=>t("preview"),type:"button",children:"Preview"}),e.jsx("button",{className:i==="source"?"selected":"",onClick:()=>t("source"),type:"button",children:"Source"})]}),i==="edit"?e.jsx("textarea",{className:"remote-editor",value:n.text,onChange:s=>c(s.target.value),rows:14}):i==="preview"?e.jsx("div",{className:"remote-markdown-preview",children:e.jsx(v.Suspense,{fallback:e.jsx("pre",{className:"json-box source-viewer",children:n.text}),children:e.jsx(V,{content:n.text,baseCwd:n.cwd,onOpenRemoteFile:l})})}):e.jsx("pre",{className:"json-box source-viewer",children:n.text})]})}function B({busy:n,cwd:i,directory:t,newDirName:l,remoteFileMode:c,remoteFile:s,remoteFileConflict:d,t:a,onCreateDirectory:o,onDirectoryPathChange:x,onDownloadRemoteFile:r,onListDirectory:h,onNewDirNameChange:N,onOpenRemoteFile:j,onRemoteFileModeChange:w,onRemoteFileTextChange:k,onSaveRemoteFile:p}){return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"control-section",children:[e.jsx("h2",{children:a.fileTree}),e.jsx(U,{cwd:i,entries:t.entries,error:t.error,loaded:t.loaded,loading:t.loading,path:t.path,t:a,onListDirectory:h,onOpenRemoteFile:j,onPathChange:x}),e.jsxs("div",{className:"field-row",children:[e.jsx("input",{value:l,onChange:f=>N(f.target.value),placeholder:a.newFolder}),e.jsxs("button",{className:"icon-text-button",onClick:o,type:"button",disabled:!l.trim(),children:[e.jsx(y,{"aria-hidden":"true"}),a.create]})]})]}),e.jsxs("section",{className:"control-section remote-file-section",children:[e.jsx("h2",{children:a.remoteFile}),s?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"file-title",children:[s.kind==="image"?e.jsx(F,{"aria-hidden":"true"}):e.jsx(g,{"aria-hidden":"true"}),e.jsxs("div",{children:[e.jsx("strong",{children:u(s.path)}),e.jsxs("span",{children:[s.contentType," · ",E(s.size)]})]})]}),e.jsxs("div",{className:"attention-actions",children:[e.jsxs("button",{className:"icon-text-button",onClick:r,type:"button",children:[e.jsx(_,{"aria-hidden":"true"}),a.download]}),e.jsxs("button",{className:"icon-text-button",onClick:()=>navigator.clipboard?.writeText(s.path),type:"button",children:[e.jsx(I,{"aria-hidden":"true"}),a.copyPath]})]}),s.kind==="text"?e.jsxs(e.Fragment,{children:[e.jsx($,{file:s,mode:c,onModeChange:w,onOpenRemoteFile:j,onTextChange:k}),e.jsxs("button",{className:"primary-button full-width",disabled:!s.dirty||n,onClick:()=>p(),type:"button",children:[e.jsx(S,{"aria-hidden":"true"}),a.saveFile]}),d?e.jsxs("div",{className:"notice warning inline-notice",children:[e.jsx(L,{"aria-hidden":"true"}),e.jsx("span",{children:a.remoteFileConflict(s.path)}),e.jsx("button",{className:"danger-button",disabled:n,onClick:()=>window.confirm(a.confirmOverwrite(u(s.path)))&&p({force:!0}),type:"button",children:a.forceSave})]}):null]}):s.kind==="image"&&s.objectUrl?e.jsx("img",{className:"remote-image",src:s.objectUrl,alt:u(s.path)}):e.jsx("p",{className:"empty-copy",children:a.binaryPreviewUnavailable})]}):e.jsx("p",{className:"empty-copy",children:a.selectRemoteFile})]})]})}export{B as FilesControlPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as a}from"./index-DRV2XMZs.js";import{C as i}from"./App-20rnW-dS.js";function c({language:l,t:e,onLanguageChange:s}){return a.jsxs("section",{className:"control-section compact-section",children:[a.jsx("h2",{children:e.language}),a.jsxs("label",{className:"field",children:[a.jsx("span",{children:e.displayLanguage}),a.jsx(i,{ariaLabel:e.displayLanguage,options:[{value:"system",label:e.followSystem},{value:"en",label:e.english},{value:"zh",label:e.chinese}],value:l,onChange:n=>s(n)})]})]})}export{c as LanguageSettingsPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as l,j as e}from"./index-DRV2XMZs.js";const o=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],r=l("bell",o);function h({notificationsBlocked:s,permission:t,settings:n,t:c,onToggleEnabled:a}){return e.jsxs("section",{className:"control-section compact-section",children:[e.jsx("h2",{children:c.notifications}),e.jsxs("label",{className:`toggle-field notification-toggle ${s?"disabled":""}`,children:[e.jsxs("span",{children:[e.jsx(r,{"aria-hidden":"true"}),c.browserAlerts]}),e.jsx("input",{type:"checkbox",checked:n.enabled&&!s&&t==="granted",disabled:s,onChange:i=>a(i.target.checked)})]}),s?e.jsx("p",{className:"empty-copy",children:c.notificationsBlocked}):null]})}export{h as NotificationSettingsPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e}from"./index-DRV2XMZs.js";import{f as d,P as t,T as r}from"./App-20rnW-dS.js";function x({activeDaemonId:i,busy:a,t:n,targets:l,onConnect:o,onForget:c}){return e.jsxs("section",{className:"control-section compact-section",children:[e.jsx("h2",{children:n.savedDevices}),e.jsxs("div",{className:"stack-list",children:[l.map(s=>e.jsxs("div",{className:"data-row target-row",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:[s.label,s.daemonId===i?` · ${n.active}`:""]}),e.jsxs("span",{children:[s.displayName??s.daemonId," ·"," ",s.lastConnectedAt?d(s.lastConnectedAt):n.notConnectedRecently]})]}),e.jsxs("div",{className:"row-actions",children:[e.jsx("button",{"aria-label":`Connect to ${s.label}`,className:"icon-button",disabled:a,onClick:()=>o(s),type:"button",children:e.jsx(t,{"aria-hidden":"true"})}),e.jsx("button",{"aria-label":`Forget ${s.label}`,className:"icon-button danger-icon",disabled:a,onClick:()=>c(s.daemonId),type:"button",children:e.jsx(r,{"aria-hidden":"true"})})]})]},s.daemonId)),l.length===0?e.jsx("p",{className:"empty-copy",children:n.noSavedDevices}):null]})]})}export{x as SavedTargetsPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./index-DRV2XMZs.js";const a=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],o=e("file-text",a);export{o as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{R as c,M as p,B as x}from"./mermaid-O7DHMXV3-
|
|
1
|
+
import{R as c,M as p,B as x}from"./mermaid-O7DHMXV3-COP4-7nw.js";import{r,j as d}from"./index-DRV2XMZs.js";var R=({code:i,language:e,raw:t,className:g,startLine:u,...m})=>{let{shikiTheme:o}=r.useContext(c),a=p(),[n,s]=r.useState(t);return r.useEffect(()=>{if(!a){s(t);return}let l=a.highlight({code:i,language:e,themes:o},h=>{s(h)});l&&s(l)},[i,e,o,a,t]),d.jsx(x,{className:g,language:e,result:n,startLine:u,...m})};export{R as HighlightedCodeBlockBody};
|