@hachej/boring-ui-cli 0.1.0 → 0.1.4
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/LICENSE +21 -0
- package/dist/index.js +12 -2
- package/package.json +14 -10
- package/public/assets/{CodeEditor-DQqOn4xz-DE6QMowf.js → CodeEditor-DQqOn4xz-D9V6g9ew.js} +1 -1
- package/public/assets/{FileTree-DRq_bfue-ZuPGj1Ap.js → FileTree-DRq_bfue-Y0KC7oJb.js} +1 -1
- package/public/assets/{MarkdownEditor-DjiHxnRv-X5i-P50h.js → MarkdownEditor-DjiHxnRv-DfBqKF0s.js} +1 -1
- package/public/assets/{_baseUniq-Csqk7RFj.js → _baseUniq-Db2Q-G13.js} +1 -1
- package/public/assets/{arc-Lqsm_RTH.js → arc-DeES41hV.js} +1 -1
- package/public/assets/{architectureDiagram-Q4EWVU46-CCiB3xEy.js → architectureDiagram-Q4EWVU46-dUzBsLg7.js} +1 -1
- package/public/assets/{blockDiagram-DXYQGD6D-BiQNJMSk.js → blockDiagram-DXYQGD6D-DUTFqGft.js} +1 -1
- package/public/assets/{c4Diagram-AHTNJAMY-DXwnbpJk.js → c4Diagram-AHTNJAMY-Ccmu3GF7.js} +1 -1
- package/public/assets/channel-Do8F3raZ.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-rej0HxGx.js → chunk-4BX2VUAB-BJqwbFdN.js} +1 -1
- package/public/assets/{chunk-4TB4RGXK-Oz8udOU1.js → chunk-4TB4RGXK-BgxnxihG.js} +1 -1
- package/public/assets/{chunk-55IACEB6-C9NQTjVk.js → chunk-55IACEB6-DAUWTiXN.js} +1 -1
- package/public/assets/{chunk-EDXVE4YY-DG17mBgq.js → chunk-EDXVE4YY-DwVb3BNX.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-BPJRLwW4.js → chunk-FMBD7UC4-CMNv2PQv.js} +1 -1
- package/public/assets/{chunk-OYMX7WX6-DQW7gaA4.js → chunk-OYMX7WX6-DtZl-m3p.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-Cbz87wiP.js → chunk-QZHKN3VN-Cvn22hSx.js} +1 -1
- package/public/assets/{chunk-YZCP3GAM-D4MkKjGq.js → chunk-YZCP3GAM-CBwff3J6.js} +1 -1
- package/public/assets/classDiagram-6PBFFD2Q-Cyq42eBC.js +1 -0
- package/public/assets/classDiagram-v2-HSJHXN6E-Cyq42eBC.js +1 -0
- package/public/assets/clone-BY7NtFFn.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-CvSFKdyd.js → cose-bilkent-S5V4N54A-BB0jbFCw.js} +1 -1
- package/public/assets/{dagre-KV5264BT-BhJL3crJ.js → dagre-KV5264BT-CKPAlVg0.js} +1 -1
- package/public/assets/{diagram-5BDNPKRD-CGitJbl7.js → diagram-5BDNPKRD-BcjQgLin.js} +1 -1
- package/public/assets/{diagram-G4DWMVQ6-CIC0rOTX.js → diagram-G4DWMVQ6-D09m0EH5.js} +1 -1
- package/public/assets/{diagram-MMDJMWI5-C8PmQhJz.js → diagram-MMDJMWI5-awVuGewm.js} +1 -1
- package/public/assets/{diagram-TYMM5635-R2jpBCYA.js → diagram-TYMM5635-mATGiLIS.js} +1 -1
- package/public/assets/{erDiagram-SMLLAGMA-C9JF8cU5.js → erDiagram-SMLLAGMA-B1Vy3VfV.js} +1 -1
- package/public/assets/{flowDiagram-DWJPFMVM-W_7hQEvE.js → flowDiagram-DWJPFMVM-P1qhRSeH.js} +1 -1
- package/public/assets/{ganttDiagram-T4ZO3ILL-DPkQluIe.js → ganttDiagram-T4ZO3ILL-Cd5dJ8Ux.js} +1 -1
- package/public/assets/{gitGraphDiagram-UUTBAWPF-D9zpe2q8.js → gitGraphDiagram-UUTBAWPF-CQhax5Ma.js} +1 -1
- package/public/assets/{graph-DUmXvpf5.js → graph-D4gAT0-H.js} +1 -1
- package/public/assets/{highlighted-body-OFNGDK62-BST6Q9yR.js → highlighted-body-OFNGDK62-C2oTg0Ey.js} +1 -1
- package/public/assets/{index-aPYQAwiI.js → index-Cli81AVv.js} +6 -6
- package/public/assets/{index-BXfnL1ab.js → index-luQcwagD.js} +1 -1
- package/public/assets/{infoDiagram-42DDH7IO-BXLixX0j.js → infoDiagram-42DDH7IO-XxdV_oW-.js} +1 -1
- package/public/assets/{ishikawaDiagram-UXIWVN3A-Ckic91J4.js → ishikawaDiagram-UXIWVN3A-DkGRNBfg.js} +1 -1
- package/public/assets/{journeyDiagram-VCZTEJTY-CoLwYeU7.js → journeyDiagram-VCZTEJTY-DduYxRNv.js} +1 -1
- package/public/assets/{kanban-definition-6JOO6SKY-Cng1Wsl7.js → kanban-definition-6JOO6SKY-BetBlOog.js} +1 -1
- package/public/assets/{layout-CcKWGr67.js → layout-Dprb-XCV.js} +1 -1
- package/public/assets/{linear-a5JrtNla.js → linear-OBpVaTci.js} +1 -1
- package/public/assets/{min-BULvLLty.js → min-Dy-P0Pb8.js} +1 -1
- package/public/assets/{mindmap-definition-QFDTVHPH-wq6dP3Ik.js → mindmap-definition-QFDTVHPH-cP4fgpMN.js} +1 -1
- package/public/assets/{pieDiagram-DEJITSTG-BHdPBhai.js → pieDiagram-DEJITSTG-BZ7mAGoX.js} +1 -1
- package/public/assets/{quadrantDiagram-34T5L4WZ-DTP7Koy0.js → quadrantDiagram-34T5L4WZ-BCVV6K6p.js} +1 -1
- package/public/assets/{requirementDiagram-MS252O5E-DnE1YmWx.js → requirementDiagram-MS252O5E-D1e85IpR.js} +1 -1
- package/public/assets/{sankeyDiagram-XADWPNL6-DTu_METj.js → sankeyDiagram-XADWPNL6-CIRLLdB_.js} +1 -1
- package/public/assets/{sequenceDiagram-FGHM5R23-DaOA9kqw.js → sequenceDiagram-FGHM5R23-B7476NxU.js} +1 -1
- package/public/assets/{stateDiagram-FHFEXIEX-BBAo_5ES.js → stateDiagram-FHFEXIEX-BDW9PwQx.js} +1 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-BP9JoQLT.js +1 -0
- package/public/assets/{timeline-definition-GMOUNBTQ-BsVidy2_.js → timeline-definition-GMOUNBTQ-BHwv--28.js} +1 -1
- package/public/assets/{vennDiagram-DHZGUBPP-CFku-V_7.js → vennDiagram-DHZGUBPP-DXDlniOX.js} +1 -1
- package/public/assets/{wardley-RL74JXVD-2Hng9RWd.js → wardley-RL74JXVD-fEoWg_pq.js} +1 -1
- package/public/assets/{wardleyDiagram-NUSXRM2D-Cb_ICeFe.js → wardleyDiagram-NUSXRM2D-Ck01VyTi.js} +1 -1
- package/public/assets/{xychartDiagram-5P7HB3ND-h-zOi7ca.js → xychartDiagram-5P7HB3ND-DaCoNGaH.js} +1 -1
- package/public/index.html +1 -1
- package/public/assets/channel-B6owvTmI.js +0 -1
- package/public/assets/classDiagram-6PBFFD2Q-Cd35f-vx.js +0 -1
- package/public/assets/classDiagram-v2-HSJHXN6E-Cd35f-vx.js +0 -1
- package/public/assets/clone-CLvQ-vFE.js +0 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-CnXRtVuf.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/angular-html-DA-rfuFy.js","assets/html-pp8916En.js","assets/javascript-wDzz0qaB.js","assets/css-CLj8gQPS.js","assets/angular-ts-BrjP3tb8.js","assets/scss-D5BDwBP9.js","assets/apl-CORt7UWP.js","assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/json-Cp-IABpG.js","assets/astro-HNnZUWAn.js","assets/typescript-BPQ3VLAy.js","assets/postcss-CXtECtnM.js","assets/tsx-COt5Ahok.js","assets/blade-BjGOyj-B.js","assets/html-derivative-DlHx6ybY.js","assets/sql-BLtJtn59.js","assets/bsl-BO_Y6i37.js","assets/sdbl-DVxCFoDh.js","assets/cairo-KRGpt6FW.js","assets/python-B6aJPvgy.js","assets/cobol-nBiQ_Alo.js","assets/coffee-Ch7k5sss.js","assets/cpp-CofmeUqb.js","assets/regexp-CDVJQ6XC.js","assets/glsl-DplSGwfg.js","assets/c-BIGW1oBm.js","assets/crystal-DNxU26gB.js","assets/shellscript-Yzrsuije.js","assets/edge-FbVlp4U3.js","assets/elixir-CkH2-t6x.js","assets/elm-DbKCFpqz.js","assets/erb-BYCe7drp.js","assets/ruby-Wjq7vjNf.js","assets/haml-D5jkg6IW.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/lua-BaeVxFsk.js","assets/yaml-Buea-lGh.js","assets/erlang-DsQrWhSR.js","assets/markdown-Cvjx9yec.js","assets/fortran-fixed-form-CkoXwp7k.js","assets/fortran-free-form-BxgE0vQu.js","assets/fsharp-CXgrBDvD.js","assets/gdresource-BOOCDP_w.js","assets/gdshader-DkwncUOv.js","assets/gdscript-C5YyOfLZ.js","assets/git-commit-F4YmCXRG.js","assets/diff-D97Zzqfu.js","assets/git-rebase-r7XF79zn.js","assets/glimmer-js-ByusRIyA.js","assets/glimmer-ts-BfAWNZQY.js","assets/hack-i7_Ulhet.js","assets/handlebars-BpdQsYii.js","assets/http-jrhK8wxY.js","assets/hurl-irOxFIW8.js","assets/csv-fuZLfV_i.js","assets/hxml-Bvhsp5Yf.js","assets/haxe-CzTSHFRz.js","assets/jinja-f2NsQr07.js","assets/jison-wvAkD_A8.js","assets/julia-CxzCAyBv.js","assets/r-Dspwwk_N.js","assets/just-VxiPbLrw.js","assets/perl-NvoQZIq0.js","assets/latex-CWtU0Tv5.js","assets/tex-idrVyKtj.js","assets/liquid-C0sCDyMI.js","assets/marko-DjSrsDqO.js","assets/less-B1dDrJ26.js","assets/mdc-DTYItulj.js","assets/nextflow-C-mBbutL.js","assets/nextflow-groovy-vE_lwT2v.js","assets/nginx-BpAMiNFr.js","assets/nim-BIad80T-.js","assets/php-R6g_5hLQ.js","assets/pug-DKIMFp6K.js","assets/qml-3beO22l8.js","assets/razor-BDqjjVU7.js","assets/csharp-COcwbKMJ.js","assets/rst-CRjBmOyv.js","assets/cmake-D1j8_8rp.js","assets/sas-cz2c8ADy.js","assets/shaderlab-Dg9Lc6iA.js","assets/hlsl-D3lLCCz7.js","assets/shellsession-BADoaaVG.js","assets/soy-8wufbnw4.js","assets/sparql-rVzFXLq3.js","assets/turtle-BsS91CYL.js","assets/stata-BH5u7GGu.js","assets/surrealql-Bq5Q-fJD.js","assets/svelte-Cy7k_4gC.js","assets/templ-DhtptRzy.js","assets/go-C27-OAKa.js","assets/ts-tags-DQrlYJgV.js","assets/twig-xg9kU7Mw.js","assets/vue-D2xRrEX4.js","assets/vue-html-AaS7Mt5G.js","assets/vue-vine-BoDAl6tE.js","assets/stylus-BEDo0Tqx.js","assets/xsl-CtQFsRM5.js","assets/angular-html-CU67Zn6k.js","assets/html-GMplVEZG.js","assets/javascript-XPxc2APE.js","assets/css-DPfMkruS.js","assets/angular-ts-BwZT4LLn.js","assets/scss-OYdSNvt2.js","assets/apl-dKokRX4l.js","assets/xml-DtyAt_xK.js","assets/java-B2AjWfgk.js","assets/json-CjLXzM_z.js","assets/astro-CbQHKStN.js","assets/typescript-DttGkNCf.js","assets/postcss-BSGhOJ4k.js","assets/tsx-Dio8iE-N.js","assets/blade-D4QpJJKB.js","assets/html-derivative-BFtXZ54Q.js","assets/sql-CKXjX23X.js","assets/bsl-C4qeDxuX.js","assets/sdbl-C5Q1usnU.js","assets/cairo-C_mOTUpN.js","assets/python-DgE28U1V.js","assets/cobol-nwyudZeR.js","assets/coffee-CSg58a7P.js","assets/cpp-C28rag7_.js","assets/regexp-BW_zLBm-.js","assets/glsl-Bk7TyU8J.js","assets/c-CyUOlKFr.js","assets/crystal-tKQVLTB8.js","assets/shellscript-CE-5zpiL.js","assets/edge-BkV0erSs.js","assets/elixir-CDX3lj18.js","assets/elm-BX_9EnK8.js","assets/erb-B12qg9BL.js","assets/ruby-Dw2BHqvy.js","assets/haml-B8DHNrY2.js","assets/graphql-By4-2MiP.js","assets/jsx-BGEKFWBk.js","assets/lua-JmSlR1pZ.js","assets/yaml-B92AUxDB.js","assets/erlang-Dh270pQQ.js","assets/markdown-CKXSK5AY.js","assets/fortran-fixed-form-B5hFr6Yn.js","assets/fortran-free-form-BuX3zftO.js","assets/fsharp-B6CigNpP.js","assets/gdresource-ChoLB09i.js","assets/gdshader-MbeiIFWW.js","assets/gdscript-BajwJ0jS.js","assets/git-commit-BicZTByO.js","assets/diff-BlzBhZx2.js","assets/git-rebase-Bzlpfr7M.js","assets/glimmer-js-Rg0-pVw9.js","assets/glimmer-ts-U6CK756n.js","assets/hack-CaT9iCJl.js","assets/handlebars-BL8al0AC.js","assets/http-D0p2QOuJ.js","assets/hurl-CeF7EoTQ.js","assets/csv-AZNL9t8Q.js","assets/hxml-B_SuSTPP.js","assets/haxe-n0Q_eay_.js","assets/jinja-4LBKfQ-Z.js","assets/jison-DRGa8fbr.js","assets/julia-BxjEHQ54.js","assets/r-BcofxrH1.js","assets/just-Cw27pwNe.js","assets/perl-C0TMdlhV.js","assets/latex-C-qBiGC3.js","assets/tex-BLPnQt1V.js","assets/liquid-DYVedYrR.js","assets/marko-CnJfTvn9.js","assets/less-C76OjOdF.js","assets/mdc-BMNejdWA.js","assets/nextflow-Zz6hmt5N.js","assets/nextflow-groovy-BeH2EWoN.js","assets/nginx-bBKbG2uI.js","assets/nim-CVrawwO9.js","assets/php-Dhbhpdrm.js","assets/pug-CGlum2m_.js","assets/qml-BEkX6VoX.js","assets/razor-Uh8Bk_45.js","assets/csharp-DieIJxYJ.js","assets/rst-BrH8l1NY.js","assets/cmake-Cv5ljclQ.js","assets/sas-BZeeyq_z.js","assets/shaderlab-DNkMdb2B.js","assets/hlsl-Pefxhtaj.js","assets/shellsession-BhddCRKA.js","assets/soy-Brmx7dQM.js","assets/sparql-CHK3vDkL.js","assets/turtle-whXsfw69.js","assets/stata-BJqnY-gO.js","assets/surrealql-CYeReaNr.js","assets/svelte-C_ipcX3V.js","assets/templ-P3uqSqPl.js","assets/go-CxLEBnE3.js","assets/ts-tags-zn1MmPIZ.js","assets/twig-DNn4PbVi.js","assets/vue-DN_0RTcg.js","assets/vue-html-BM4TQ0nH.js","assets/vue-vine-CQOfvN7w.js","assets/stylus-CHekGIgu.js","assets/xsl-Btrj9DhN.js","assets/dagre-KV5264BT-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/angular-html-DA-rfuFy.js","assets/html-pp8916En.js","assets/javascript-wDzz0qaB.js","assets/css-CLj8gQPS.js","assets/angular-ts-BrjP3tb8.js","assets/scss-D5BDwBP9.js","assets/apl-CORt7UWP.js","assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/json-Cp-IABpG.js","assets/astro-HNnZUWAn.js","assets/typescript-BPQ3VLAy.js","assets/postcss-CXtECtnM.js","assets/tsx-COt5Ahok.js","assets/blade-BjGOyj-B.js","assets/html-derivative-DlHx6ybY.js","assets/sql-BLtJtn59.js","assets/bsl-BO_Y6i37.js","assets/sdbl-DVxCFoDh.js","assets/cairo-KRGpt6FW.js","assets/python-B6aJPvgy.js","assets/cobol-nBiQ_Alo.js","assets/coffee-Ch7k5sss.js","assets/cpp-CofmeUqb.js","assets/regexp-CDVJQ6XC.js","assets/glsl-DplSGwfg.js","assets/c-BIGW1oBm.js","assets/crystal-DNxU26gB.js","assets/shellscript-Yzrsuije.js","assets/edge-FbVlp4U3.js","assets/elixir-CkH2-t6x.js","assets/elm-DbKCFpqz.js","assets/erb-BYCe7drp.js","assets/ruby-Wjq7vjNf.js","assets/haml-D5jkg6IW.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/lua-BaeVxFsk.js","assets/yaml-Buea-lGh.js","assets/erlang-DsQrWhSR.js","assets/markdown-Cvjx9yec.js","assets/fortran-fixed-form-CkoXwp7k.js","assets/fortran-free-form-BxgE0vQu.js","assets/fsharp-CXgrBDvD.js","assets/gdresource-BOOCDP_w.js","assets/gdshader-DkwncUOv.js","assets/gdscript-C5YyOfLZ.js","assets/git-commit-F4YmCXRG.js","assets/diff-D97Zzqfu.js","assets/git-rebase-r7XF79zn.js","assets/glimmer-js-ByusRIyA.js","assets/glimmer-ts-BfAWNZQY.js","assets/hack-i7_Ulhet.js","assets/handlebars-BpdQsYii.js","assets/http-jrhK8wxY.js","assets/hurl-irOxFIW8.js","assets/csv-fuZLfV_i.js","assets/hxml-Bvhsp5Yf.js","assets/haxe-CzTSHFRz.js","assets/jinja-f2NsQr07.js","assets/jison-wvAkD_A8.js","assets/julia-CxzCAyBv.js","assets/r-Dspwwk_N.js","assets/just-VxiPbLrw.js","assets/perl-NvoQZIq0.js","assets/latex-CWtU0Tv5.js","assets/tex-idrVyKtj.js","assets/liquid-C0sCDyMI.js","assets/marko-DjSrsDqO.js","assets/less-B1dDrJ26.js","assets/mdc-DTYItulj.js","assets/nextflow-C-mBbutL.js","assets/nextflow-groovy-vE_lwT2v.js","assets/nginx-BpAMiNFr.js","assets/nim-BIad80T-.js","assets/php-R6g_5hLQ.js","assets/pug-DKIMFp6K.js","assets/qml-3beO22l8.js","assets/razor-BDqjjVU7.js","assets/csharp-COcwbKMJ.js","assets/rst-CRjBmOyv.js","assets/cmake-D1j8_8rp.js","assets/sas-cz2c8ADy.js","assets/shaderlab-Dg9Lc6iA.js","assets/hlsl-D3lLCCz7.js","assets/shellsession-BADoaaVG.js","assets/soy-8wufbnw4.js","assets/sparql-rVzFXLq3.js","assets/turtle-BsS91CYL.js","assets/stata-BH5u7GGu.js","assets/surrealql-Bq5Q-fJD.js","assets/svelte-Cy7k_4gC.js","assets/templ-DhtptRzy.js","assets/go-C27-OAKa.js","assets/ts-tags-DQrlYJgV.js","assets/twig-xg9kU7Mw.js","assets/vue-D2xRrEX4.js","assets/vue-html-AaS7Mt5G.js","assets/vue-vine-BoDAl6tE.js","assets/stylus-BEDo0Tqx.js","assets/xsl-CtQFsRM5.js","assets/angular-html-CU67Zn6k.js","assets/html-GMplVEZG.js","assets/javascript-XPxc2APE.js","assets/css-DPfMkruS.js","assets/angular-ts-BwZT4LLn.js","assets/scss-OYdSNvt2.js","assets/apl-dKokRX4l.js","assets/xml-DtyAt_xK.js","assets/java-B2AjWfgk.js","assets/json-CjLXzM_z.js","assets/astro-CbQHKStN.js","assets/typescript-DttGkNCf.js","assets/postcss-BSGhOJ4k.js","assets/tsx-Dio8iE-N.js","assets/blade-D4QpJJKB.js","assets/html-derivative-BFtXZ54Q.js","assets/sql-CKXjX23X.js","assets/bsl-C4qeDxuX.js","assets/sdbl-C5Q1usnU.js","assets/cairo-C_mOTUpN.js","assets/python-DgE28U1V.js","assets/cobol-nwyudZeR.js","assets/coffee-CSg58a7P.js","assets/cpp-C28rag7_.js","assets/regexp-BW_zLBm-.js","assets/glsl-Bk7TyU8J.js","assets/c-CyUOlKFr.js","assets/crystal-tKQVLTB8.js","assets/shellscript-CE-5zpiL.js","assets/edge-BkV0erSs.js","assets/elixir-CDX3lj18.js","assets/elm-BX_9EnK8.js","assets/erb-B12qg9BL.js","assets/ruby-Dw2BHqvy.js","assets/haml-B8DHNrY2.js","assets/graphql-By4-2MiP.js","assets/jsx-BGEKFWBk.js","assets/lua-JmSlR1pZ.js","assets/yaml-B92AUxDB.js","assets/erlang-Dh270pQQ.js","assets/markdown-CKXSK5AY.js","assets/fortran-fixed-form-B5hFr6Yn.js","assets/fortran-free-form-BuX3zftO.js","assets/fsharp-B6CigNpP.js","assets/gdresource-ChoLB09i.js","assets/gdshader-MbeiIFWW.js","assets/gdscript-BajwJ0jS.js","assets/git-commit-BicZTByO.js","assets/diff-BlzBhZx2.js","assets/git-rebase-Bzlpfr7M.js","assets/glimmer-js-Rg0-pVw9.js","assets/glimmer-ts-U6CK756n.js","assets/hack-CaT9iCJl.js","assets/handlebars-BL8al0AC.js","assets/http-D0p2QOuJ.js","assets/hurl-CeF7EoTQ.js","assets/csv-AZNL9t8Q.js","assets/hxml-B_SuSTPP.js","assets/haxe-n0Q_eay_.js","assets/jinja-4LBKfQ-Z.js","assets/jison-DRGa8fbr.js","assets/julia-BxjEHQ54.js","assets/r-BcofxrH1.js","assets/just-Cw27pwNe.js","assets/perl-C0TMdlhV.js","assets/latex-C-qBiGC3.js","assets/tex-BLPnQt1V.js","assets/liquid-DYVedYrR.js","assets/marko-CnJfTvn9.js","assets/less-C76OjOdF.js","assets/mdc-BMNejdWA.js","assets/nextflow-Zz6hmt5N.js","assets/nextflow-groovy-BeH2EWoN.js","assets/nginx-bBKbG2uI.js","assets/nim-CVrawwO9.js","assets/php-Dhbhpdrm.js","assets/pug-CGlum2m_.js","assets/qml-BEkX6VoX.js","assets/razor-Uh8Bk_45.js","assets/csharp-DieIJxYJ.js","assets/rst-BrH8l1NY.js","assets/cmake-Cv5ljclQ.js","assets/sas-BZeeyq_z.js","assets/shaderlab-DNkMdb2B.js","assets/hlsl-Pefxhtaj.js","assets/shellsession-BhddCRKA.js","assets/soy-Brmx7dQM.js","assets/sparql-CHK3vDkL.js","assets/turtle-whXsfw69.js","assets/stata-BJqnY-gO.js","assets/surrealql-CYeReaNr.js","assets/svelte-C_ipcX3V.js","assets/templ-P3uqSqPl.js","assets/go-CxLEBnE3.js","assets/ts-tags-zn1MmPIZ.js","assets/twig-DNn4PbVi.js","assets/vue-DN_0RTcg.js","assets/vue-html-BM4TQ0nH.js","assets/vue-vine-CQOfvN7w.js","assets/stylus-CHekGIgu.js","assets/xsl-Btrj9DhN.js","assets/dagre-KV5264BT-CKPAlVg0.js","assets/graph-D4gAT0-H.js","assets/_baseUniq-Db2Q-G13.js","assets/layout-Dprb-XCV.js","assets/min-Dy-P0Pb8.js","assets/clone-BY7NtFFn.js","assets/cose-bilkent-S5V4N54A-BB0jbFCw.js","assets/cytoscape.esm-DxGcaOPV.js","assets/c4Diagram-AHTNJAMY-Ccmu3GF7.js","assets/chunk-YZCP3GAM-CBwff3J6.js","assets/flowDiagram-DWJPFMVM-P1qhRSeH.js","assets/chunk-FMBD7UC4-CMNv2PQv.js","assets/chunk-55IACEB6-DAUWTiXN.js","assets/chunk-EDXVE4YY-DwVb3BNX.js","assets/channel-Do8F3raZ.js","assets/erDiagram-SMLLAGMA-B1Vy3VfV.js","assets/gitGraphDiagram-UUTBAWPF-CQhax5Ma.js","assets/chunk-4BX2VUAB-BJqwbFdN.js","assets/chunk-QZHKN3VN-Cvn22hSx.js","assets/wardley-RL74JXVD-fEoWg_pq.js","assets/ganttDiagram-T4ZO3ILL-Cd5dJ8Ux.js","assets/linear-OBpVaTci.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-DX6XiGOO.js","assets/infoDiagram-42DDH7IO-XxdV_oW-.js","assets/pieDiagram-DEJITSTG-BZ7mAGoX.js","assets/arc-DeES41hV.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-34T5L4WZ-BCVV6K6p.js","assets/xychartDiagram-5P7HB3ND-DaCoNGaH.js","assets/requirementDiagram-MS252O5E-D1e85IpR.js","assets/sequenceDiagram-FGHM5R23-B7476NxU.js","assets/classDiagram-6PBFFD2Q-Cyq42eBC.js","assets/chunk-4TB4RGXK-BgxnxihG.js","assets/classDiagram-v2-HSJHXN6E-Cyq42eBC.js","assets/stateDiagram-FHFEXIEX-BDW9PwQx.js","assets/chunk-OYMX7WX6-DtZl-m3p.js","assets/stateDiagram-v2-QKLJ7IA2-BP9JoQLT.js","assets/journeyDiagram-VCZTEJTY-DduYxRNv.js","assets/timeline-definition-GMOUNBTQ-BHwv--28.js","assets/mindmap-definition-QFDTVHPH-cP4fgpMN.js","assets/kanban-definition-6JOO6SKY-BetBlOog.js","assets/sankeyDiagram-XADWPNL6-CIRLLdB_.js","assets/diagram-TYMM5635-mATGiLIS.js","assets/diagram-MMDJMWI5-awVuGewm.js","assets/blockDiagram-DXYQGD6D-DUTFqGft.js","assets/diagram-5BDNPKRD-BcjQgLin.js","assets/architectureDiagram-Q4EWVU46-dUzBsLg7.js","assets/diagram-G4DWMVQ6-D09m0EH5.js","assets/wardleyDiagram-NUSXRM2D-Ck01VyTi.js","assets/FileTree-DRq_bfue-Y0KC7oJb.js","assets/index-luQcwagD.js","assets/CodeEditor-DQqOn4xz-D9V6g9ew.js","assets/index-Vcq4gwWv.js","assets/MarkdownEditor-DjiHxnRv-DfBqKF0s.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var rme=Object.defineProperty;var nme=Object.getPrototypeOf;var ime=Reflect.get;var NP=t=>{throw TypeError(t)};var ame=(t,e,r)=>e in t?rme(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var xe=(t,e,r)=>ame(t,typeof e!="symbol"?e+"":e,r),T4=(t,e,r)=>e.has(t)||NP("Cannot "+r);var he=(t,e,r)=>(T4(t,e,"read from private field"),r?r.call(t):e.get(t)),Tt=(t,e,r)=>e.has(t)?NP("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),nt=(t,e,r,n)=>(T4(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),ar=(t,e,r)=>(T4(t,e,"access private method"),r);var o2=(t,e,r,n)=>({set _(i){nt(t,e,i,r)},get _(){return he(t,e,n)}}),MP=(t,e,r)=>ime(nme(t),r,e);function sme(t,e){for(var r=0;r<e.length;r++){const n=e[r];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in t)){const a=Object.getOwnPropertyDescriptor(n,i);a&&Object.defineProperty(t,i,a.get?a:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();function Gm(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Ubt(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var k4={exports:{}},w1={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -1141,8 +1141,8 @@ Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error
|
|
|
1141
1141
|
L0,20`)},"requirement_arrow"),bYe=P((t,e,r)=>{const n=Hn(),{themeVariables:i}=n,{strokeWidth:a}=i;t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("stroke-width",`${a}`).attr("viewBox","0 0 25 20").append("path").attr("d",`M0,0
|
|
1142
1142
|
L20,10
|
|
1143
1143
|
M20,10
|
|
1144
|
-
L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),vYe=P((t,e,r)=>{const n=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),xYe=P((t,e,r)=>{const n=Hn(),{themeVariables:i}=n,{strokeWidth:a}=i,s=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");s.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),s.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),s.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),s.selectAll("*").attr("stroke-width",`${a}`)},"requirement_contains_neo"),_Ye={extension:JWe,composition:eYe,aggregation:tYe,dependency:rYe,lollipop:nYe,point:iYe,circle:aYe,cross:sYe,barb:oYe,barbNeo:lYe,only_one:cYe,zero_or_one:uYe,one_or_more:hYe,zero_or_more:dYe,only_one_neo:fYe,zero_or_one_neo:pYe,one_or_more_neo:mYe,zero_or_more_neo:gYe,requirement_arrow:yYe,requirement_contains:vYe,requirement_arrow_neo:bYe,requirement_contains_neo:xYe},wYe=QWe,CYe={common:kv,getConfig:Hn,insertCluster:xWe,insertEdge:KWe,insertEdgeLabel:qWe,insertMarkers:wYe,insertNode:fle,interpolateToCurve:uI,labelHelper:Wt,log:Ve,positionEdgeLabel:GWe},Ob={},yle=P(t=>{for(const e of t)Ob[e.name]=e},"registerLayoutLoaders"),TYe=P(()=>{yle([{name:"dagre",loader:P(async()=>await M(()=>import("./dagre-KV5264BT-BhJL3crJ.js"),__vite__mapDeps([202,203,204,205,206,207])),"loader")},{name:"cose-bilkent",loader:P(async()=>await M(()=>import("./cose-bilkent-S5V4N54A-CvSFKdyd.js"),__vite__mapDeps([208,209])),"loader")}])},"registerDefaultLayoutLoaders");TYe();var jvt=P(async(t,e)=>{if(!(t.layoutAlgorithm in Ob))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);if(t.diagramId)for(const u of t.nodes){const d=u.domId||u.id;u.domId=`${t.diagramId}-${d}`}const r=Ob[t.layoutAlgorithm],n=await r.loader(),{theme:i,themeVariables:a}=t.config,{useGradient:s,gradientStart:o,gradientStop:l}=a,c=e.attr("id");if(e.append("defs").append("filter").attr("id",`${c}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${i!=null&&i.includes("dark")?"#FFFFFF":"#000000"}`),e.append("defs").append("filter").attr("id",`${c}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${i!=null&&i.includes("dark")?"#FFFFFF":"#000000"}`),s){const u=e.append("linearGradient").attr("id",e.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");u.append("svg:stop").attr("offset","0%").attr("stop-color",o).attr("stop-opacity",1),u.append("svg:stop").attr("offset","100%").attr("stop-color",l).attr("stop-opacity",1)}return n.render(t,e,CYe,{algorithm:r.algorithm})},"render"),Hvt=P((t="",{fallback:e="dagre"}={})=>{if(t in Ob)return t;if(e in Ob)return Ve.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm"),ble="comm",vle="rule",xle="decl",kYe="@import",SYe="@namespace",EYe="@keyframes",AYe="@layer",DYe=Math.abs,zy=String.fromCharCode;function _le(t){return t.trim()}function G8(t,e,r){return t.replace(e,r)}function H0(t,e){return t.charCodeAt(e)|0}function jm(t,e,r){return t.slice(e,r)}function gl(t){return t.length}function LYe(t){return t.length}function e_(t,e){return e.push(t),t}var Uk=1,Hm=1,wle=0,po=0,bi=0,yg="";function II(t,e,r,n,i,a,s,o){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:Uk,column:Hm,length:s,return:"",siblings:o}}function IYe(){return bi}function RYe(){return bi=po>0?H0(yg,--po):0,Hm--,bi===10&&(Hm=1,Uk--),bi}function $o(){return bi=po<wle?H0(yg,po++):0,Hm++,bi===10&&(Hm=1,Uk++),bi}function Th(){return H0(yg,po)}function Q_(){return po}function qk(t,e){return jm(yg,t,e)}function Nb(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function OYe(t){return Uk=Hm=1,wle=gl(yg=t),po=0,[]}function NYe(t){return yg="",t}function w5(t){return _le(qk(po-1,W8(t===91?t+2:t===40?t+1:t)))}function MYe(t){for(;(bi=Th())&&bi<33;)$o();return Nb(t)>2||Nb(bi)>3?"":" "}function PYe(t,e){for(;--e&&$o()&&!(bi<48||bi>102||bi>57&&bi<65||bi>70&&bi<97););return qk(t,Q_()+(e<6&&Th()==32&&$o()==32))}function W8(t){for(;$o();)switch(bi){case t:return po;case 34:case 39:t!==34&&t!==39&&W8(bi);break;case 40:t===41&&W8(t);break;case 92:$o();break}return po}function BYe(t,e){for(;$o()&&t+bi!==57;)if(t+bi===84&&Th()===47)break;return"/*"+qk(e,po-1)+"*"+zy(t===47?t:$o())}function FYe(t){for(;!Nb(Th());)$o();return qk(t,po)}function $Ye(t){return NYe(J_("",null,null,null,[""],t=OYe(t),0,[0],t))}function J_(t,e,r,n,i,a,s,o,l){for(var c=0,u=0,d=s,m=0,p=0,y=0,b=1,v=1,_=1,w=0,C=0,E="",D=i,L=a,R=n,N=E;v;)switch(y=C,C=$o()){case 40:y!=108&&H0(N,d-1)==58?(w++,N+="("):N+=w5(C);break;case 41:w--,N+=")";break;case 34:case 39:case 91:N+=w5(C);break;case 9:case 10:case 13:case 32:if(w>0){N+=zy(C);break}N+=MYe(y);break;case 92:N+=PYe(Q_()-1,7);continue;case 47:switch(Th()){case 42:case 47:e_(zYe(BYe($o(),Q_()),e,r,l),l),(Nb(y||1)==5||Nb(Th()||1)==5)&&gl(N)&&jm(N,-1,void 0)!==" "&&(N+=" ");break;default:N+="/"}break;case 123*b:o[c++]=gl(N)*_;case 125*b:case 59:case 0:if(w>0&&C){N+=zy(C);break}switch(C){case 0:case 125:v=0;case 59+u:_==-1&&(N=G8(N,/\f/g,"")),p>0&&(gl(N)-d||b===0)&&e_(p>32?kV(N+";",n,r,d-1,l):kV(G8(N," ","")+";",n,r,d-2,l),l);break;case 59:N+=";";default:if(e_(R=TV(N,e,r,c,u,i,o,E,D=[],L=[],d,a),a),C===123)if(u===0)J_(N,e,R,R,D,a,d,o,L);else{switch(m){case 99:if(H0(N,3)===110)break;case 108:if(H0(N,2)===97)break;default:u=0;case 100:case 109:case 115:}u?J_(t,R,R,n&&e_(TV(t,R,R,0,0,i,o,E,i,D=[],d,L),L),i,L,d,o,n?D:L):J_(N,R,R,R,[""],L,0,o,L)}}c=u=p=0,b=_=1,E=N="",d=s;break;case 58:d=1+gl(N),p=y;default:if(b<1){if(C==123)--b;else if(C==125&&b++==0&&RYe()==125)continue}switch(N+=zy(C),C*b){case 38:_=u>0?1:(N+="\f",-1);break;case 44:if(w>0)break;o[c++]=(gl(N)-1)*_,_=1;break;case 64:Th()===45&&(N+=w5($o())),m=Th(),u=d=gl(E=N+=FYe(Q_())),C++;break;case 45:y===45&&gl(N)==2&&(b=0)}}return a}function TV(t,e,r,n,i,a,s,o,l,c,u,d){for(var m=i-1,p=i===0?a:[""],y=LYe(p),b=0,v=0,_=0;b<n;++b)for(var w=0,C=jm(t,m+1,m=DYe(v=s[b])),E=t;w<y;++w)(E=_le(v>0?p[w]+" "+C:G8(C,/&\f/g,p[w])))&&(l[_++]=E);return II(t,e,r,i===0?vle:o,l,c,u,d)}function zYe(t,e,r,n){return II(t,e,r,ble,zy(IYe()),jm(t,2,-2),0,n)}function kV(t,e,r,n,i){return II(t,e,r,xle,jm(t,0,n),jm(t,n+1,-1),n,i)}function Y8(t,e){for(var r="",n=0;n<t.length;n++)r+=e(t[n],n,t,e)||"";return r}function jYe(t,e,r,n){switch(t.type){case AYe:if(t.children.length)break;case kYe:case SYe:case xle:return t.return=t.return||t.value;case ble:return"";case EYe:return t.return=t.value+"{"+Y8(t.children,n)+"}";case vle:if(!gl(t.value=t.props.join(",")))return""}return gl(r=Y8(t.children,n))?t.return=t.value+"{"+r+"}":""}var HYe=Gae(Object.keys,Object),VYe=Object.prototype,UYe=VYe.hasOwnProperty;function qYe(t){if(!Mk(t))return HYe(t);var e=[];for(var r in Object(t))UYe.call(t,r)&&r!="constructor"&&e.push(r);return e}var Z8=np(Zl,"DataView"),X8=np(Zl,"Promise"),K8=np(Zl,"Set"),Q8=np(Zl,"WeakMap"),SV="[object Map]",GYe="[object Object]",EV="[object Promise]",AV="[object Set]",DV="[object WeakMap]",LV="[object DataView]",WYe=rp(Z8),YYe=rp(Ib),ZYe=rp(X8),XYe=rp(K8),KYe=rp(Q8),Yd=fg;(Z8&&Yd(new Z8(new ArrayBuffer(1)))!=LV||Ib&&Yd(new Ib)!=SV||X8&&Yd(X8.resolve())!=EV||K8&&Yd(new K8)!=AV||Q8&&Yd(new Q8)!=DV)&&(Yd=function(t){var e=fg(t),r=e==GYe?t.constructor:void 0,n=r?rp(r):"";if(n)switch(n){case WYe:return LV;case YYe:return SV;case ZYe:return EV;case XYe:return AV;case KYe:return DV}return e});var QYe="[object Map]",JYe="[object Set]",eZe=Object.prototype,tZe=eZe.hasOwnProperty;function IV(t){if(t==null)return!0;if(Pk(t)&&(PC(t)||typeof t=="string"||typeof t.splice=="function"||lI(t)||cI(t)||MC(t)))return!t.length;var e=Yd(t);if(e==QYe||e==JYe)return!t.size;if(Mk(t))return!qYe(t).length;for(var r in t)if(tZe.call(t,r))return!1;return!0}var Cle="c4",rZe=P(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),nZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./c4Diagram-AHTNJAMY-DXwnbpJk.js");return{diagram:e}},__vite__mapDeps([210,211]));return{id:Cle,diagram:t}},"loader"),iZe={id:Cle,detector:rZe,loader:nZe},aZe=iZe,Tle="flowchart",sZe=P((t,e)=>{var r,n;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},"detector"),oZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-W_7hQEvE.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:Tle,diagram:t}},"loader"),lZe={id:Tle,detector:sZe,loader:oZe},cZe=lZe,kle="flowchart-v2",uZe=P((t,e)=>{var r,n,i;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t))},"detector"),hZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-W_7hQEvE.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:kle,diagram:t}},"loader"),dZe={id:kle,detector:uZe,loader:hZe},fZe=dZe,Sle="er",pZe=P(t=>/^\s*erDiagram/.test(t),"detector"),mZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./erDiagram-SMLLAGMA-C9JF8cU5.js");return{diagram:e}},__vite__mapDeps([217,214,215,216]));return{id:Sle,diagram:t}},"loader"),gZe={id:Sle,detector:pZe,loader:mZe},yZe=gZe,Ele="gitGraph",bZe=P(t=>/^\s*gitGraph/.test(t),"detector"),vZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./gitGraphDiagram-UUTBAWPF-D9zpe2q8.js");return{diagram:e}},__vite__mapDeps([218,219,220,221,206,204]));return{id:Ele,diagram:t}},"loader"),xZe={id:Ele,detector:bZe,loader:vZe},_Ze=xZe,Ale="gantt",wZe=P(t=>/^\s*gantt/.test(t),"detector"),CZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./ganttDiagram-T4ZO3ILL-DPkQluIe.js");return{diagram:e}},__vite__mapDeps([222,223,224,225]));return{id:Ale,diagram:t}},"loader"),TZe={id:Ale,detector:wZe,loader:CZe},kZe=TZe,Dle="info",SZe=P(t=>/^\s*info/.test(t),"detector"),EZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./infoDiagram-42DDH7IO-BXLixX0j.js");return{diagram:e}},__vite__mapDeps([226,221,206,204]));return{id:Dle,diagram:t}},"loader"),AZe={id:Dle,detector:SZe,loader:EZe},Lle="pie",DZe=P(t=>/^\s*pie/.test(t),"detector"),LZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./pieDiagram-DEJITSTG-BHdPBhai.js");return{diagram:e}},__vite__mapDeps([227,219,221,206,204,228,229,224]));return{id:Lle,diagram:t}},"loader"),IZe={id:Lle,detector:DZe,loader:LZe},Ile="quadrantChart",RZe=P(t=>/^\s*quadrantChart/.test(t),"detector"),OZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./quadrantDiagram-34T5L4WZ-DTP7Koy0.js");return{diagram:e}},__vite__mapDeps([230,223,224,225]));return{id:Ile,diagram:t}},"loader"),NZe={id:Ile,detector:RZe,loader:OZe},MZe=NZe,Rle="xychart",PZe=P(t=>/^\s*xychart(-beta)?/.test(t),"detector"),BZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./xychartDiagram-5P7HB3ND-h-zOi7ca.js");return{diagram:e}},__vite__mapDeps([231,224,229,223,225]));return{id:Rle,diagram:t}},"loader"),FZe={id:Rle,detector:PZe,loader:BZe},$Ze=FZe,Ole="requirement",zZe=P(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),jZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./requirementDiagram-MS252O5E-DnE1YmWx.js");return{diagram:e}},__vite__mapDeps([232,214,215]));return{id:Ole,diagram:t}},"loader"),HZe={id:Ole,detector:zZe,loader:jZe},VZe=HZe,Nle="sequence",UZe=P(t=>/^\s*sequenceDiagram/.test(t),"detector"),qZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./sequenceDiagram-FGHM5R23-DaOA9kqw.js");return{diagram:e}},__vite__mapDeps([233,211,220]));return{id:Nle,diagram:t}},"loader"),GZe={id:Nle,detector:UZe,loader:qZe},WZe=GZe,Mle="class",YZe=P((t,e)=>{var r;return((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},"detector"),ZZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./classDiagram-6PBFFD2Q-Cd35f-vx.js");return{diagram:e}},__vite__mapDeps([234,235,213,211,214,215]));return{id:Mle,diagram:t}},"loader"),XZe={id:Mle,detector:YZe,loader:ZZe},KZe=XZe,Ple="classDiagram",QZe=P((t,e)=>{var r;return/^\s*classDiagram/.test(t)&&((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},"detector"),JZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./classDiagram-v2-HSJHXN6E-Cd35f-vx.js");return{diagram:e}},__vite__mapDeps([236,235,213,211,214,215]));return{id:Ple,diagram:t}},"loader"),eXe={id:Ple,detector:QZe,loader:JZe},tXe=eXe,Ble="state",rXe=P((t,e)=>{var r;return((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},"detector"),nXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./stateDiagram-FHFEXIEX-BBAo_5ES.js");return{diagram:e}},__vite__mapDeps([237,238,214,215,203,204,205,206]));return{id:Ble,diagram:t}},"loader"),iXe={id:Ble,detector:rXe,loader:nXe},aXe=iXe,Fle="stateDiagram",sXe=P((t,e)=>{var r;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),oXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./stateDiagram-v2-QKLJ7IA2-CnXRtVuf.js");return{diagram:e}},__vite__mapDeps([239,238,214,215]));return{id:Fle,diagram:t}},"loader"),lXe={id:Fle,detector:sXe,loader:oXe},cXe=lXe,$le="journey",uXe=P(t=>/^\s*journey/.test(t),"detector"),hXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./journeyDiagram-VCZTEJTY-CoLwYeU7.js");return{diagram:e}},__vite__mapDeps([240,213,211,228]));return{id:$le,diagram:t}},"loader"),dXe={id:$le,detector:uXe,loader:hXe},fXe=dXe,pXe=P((t,e,r)=>{Ve.debug(`rendering svg for syntax error
|
|
1145
|
-
`);const n=Bje(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),hne(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),zle={draw:pXe},mXe=zle,gXe={db:{},renderer:zle,parser:{parse:P(()=>{},"parse")}},yXe=gXe,jle="flowchart-elk",bXe=P((t,e={})=>{var r;return/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(e.layout="elk",!0):!1},"detector"),vXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-
|
|
1144
|
+
L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),vYe=P((t,e,r)=>{const n=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),xYe=P((t,e,r)=>{const n=Hn(),{themeVariables:i}=n,{strokeWidth:a}=i,s=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");s.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),s.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),s.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),s.selectAll("*").attr("stroke-width",`${a}`)},"requirement_contains_neo"),_Ye={extension:JWe,composition:eYe,aggregation:tYe,dependency:rYe,lollipop:nYe,point:iYe,circle:aYe,cross:sYe,barb:oYe,barbNeo:lYe,only_one:cYe,zero_or_one:uYe,one_or_more:hYe,zero_or_more:dYe,only_one_neo:fYe,zero_or_one_neo:pYe,one_or_more_neo:mYe,zero_or_more_neo:gYe,requirement_arrow:yYe,requirement_contains:vYe,requirement_arrow_neo:bYe,requirement_contains_neo:xYe},wYe=QWe,CYe={common:kv,getConfig:Hn,insertCluster:xWe,insertEdge:KWe,insertEdgeLabel:qWe,insertMarkers:wYe,insertNode:fle,interpolateToCurve:uI,labelHelper:Wt,log:Ve,positionEdgeLabel:GWe},Ob={},yle=P(t=>{for(const e of t)Ob[e.name]=e},"registerLayoutLoaders"),TYe=P(()=>{yle([{name:"dagre",loader:P(async()=>await M(()=>import("./dagre-KV5264BT-CKPAlVg0.js"),__vite__mapDeps([202,203,204,205,206,207])),"loader")},{name:"cose-bilkent",loader:P(async()=>await M(()=>import("./cose-bilkent-S5V4N54A-BB0jbFCw.js"),__vite__mapDeps([208,209])),"loader")}])},"registerDefaultLayoutLoaders");TYe();var jvt=P(async(t,e)=>{if(!(t.layoutAlgorithm in Ob))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);if(t.diagramId)for(const u of t.nodes){const d=u.domId||u.id;u.domId=`${t.diagramId}-${d}`}const r=Ob[t.layoutAlgorithm],n=await r.loader(),{theme:i,themeVariables:a}=t.config,{useGradient:s,gradientStart:o,gradientStop:l}=a,c=e.attr("id");if(e.append("defs").append("filter").attr("id",`${c}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${i!=null&&i.includes("dark")?"#FFFFFF":"#000000"}`),e.append("defs").append("filter").attr("id",`${c}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${i!=null&&i.includes("dark")?"#FFFFFF":"#000000"}`),s){const u=e.append("linearGradient").attr("id",e.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");u.append("svg:stop").attr("offset","0%").attr("stop-color",o).attr("stop-opacity",1),u.append("svg:stop").attr("offset","100%").attr("stop-color",l).attr("stop-opacity",1)}return n.render(t,e,CYe,{algorithm:r.algorithm})},"render"),Hvt=P((t="",{fallback:e="dagre"}={})=>{if(t in Ob)return t;if(e in Ob)return Ve.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm"),ble="comm",vle="rule",xle="decl",kYe="@import",SYe="@namespace",EYe="@keyframes",AYe="@layer",DYe=Math.abs,zy=String.fromCharCode;function _le(t){return t.trim()}function G8(t,e,r){return t.replace(e,r)}function H0(t,e){return t.charCodeAt(e)|0}function jm(t,e,r){return t.slice(e,r)}function gl(t){return t.length}function LYe(t){return t.length}function e_(t,e){return e.push(t),t}var Uk=1,Hm=1,wle=0,po=0,bi=0,yg="";function II(t,e,r,n,i,a,s,o){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:Uk,column:Hm,length:s,return:"",siblings:o}}function IYe(){return bi}function RYe(){return bi=po>0?H0(yg,--po):0,Hm--,bi===10&&(Hm=1,Uk--),bi}function $o(){return bi=po<wle?H0(yg,po++):0,Hm++,bi===10&&(Hm=1,Uk++),bi}function Th(){return H0(yg,po)}function Q_(){return po}function qk(t,e){return jm(yg,t,e)}function Nb(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function OYe(t){return Uk=Hm=1,wle=gl(yg=t),po=0,[]}function NYe(t){return yg="",t}function w5(t){return _le(qk(po-1,W8(t===91?t+2:t===40?t+1:t)))}function MYe(t){for(;(bi=Th())&&bi<33;)$o();return Nb(t)>2||Nb(bi)>3?"":" "}function PYe(t,e){for(;--e&&$o()&&!(bi<48||bi>102||bi>57&&bi<65||bi>70&&bi<97););return qk(t,Q_()+(e<6&&Th()==32&&$o()==32))}function W8(t){for(;$o();)switch(bi){case t:return po;case 34:case 39:t!==34&&t!==39&&W8(bi);break;case 40:t===41&&W8(t);break;case 92:$o();break}return po}function BYe(t,e){for(;$o()&&t+bi!==57;)if(t+bi===84&&Th()===47)break;return"/*"+qk(e,po-1)+"*"+zy(t===47?t:$o())}function FYe(t){for(;!Nb(Th());)$o();return qk(t,po)}function $Ye(t){return NYe(J_("",null,null,null,[""],t=OYe(t),0,[0],t))}function J_(t,e,r,n,i,a,s,o,l){for(var c=0,u=0,d=s,m=0,p=0,y=0,b=1,v=1,_=1,w=0,C=0,E="",D=i,L=a,R=n,N=E;v;)switch(y=C,C=$o()){case 40:y!=108&&H0(N,d-1)==58?(w++,N+="("):N+=w5(C);break;case 41:w--,N+=")";break;case 34:case 39:case 91:N+=w5(C);break;case 9:case 10:case 13:case 32:if(w>0){N+=zy(C);break}N+=MYe(y);break;case 92:N+=PYe(Q_()-1,7);continue;case 47:switch(Th()){case 42:case 47:e_(zYe(BYe($o(),Q_()),e,r,l),l),(Nb(y||1)==5||Nb(Th()||1)==5)&&gl(N)&&jm(N,-1,void 0)!==" "&&(N+=" ");break;default:N+="/"}break;case 123*b:o[c++]=gl(N)*_;case 125*b:case 59:case 0:if(w>0&&C){N+=zy(C);break}switch(C){case 0:case 125:v=0;case 59+u:_==-1&&(N=G8(N,/\f/g,"")),p>0&&(gl(N)-d||b===0)&&e_(p>32?kV(N+";",n,r,d-1,l):kV(G8(N," ","")+";",n,r,d-2,l),l);break;case 59:N+=";";default:if(e_(R=TV(N,e,r,c,u,i,o,E,D=[],L=[],d,a),a),C===123)if(u===0)J_(N,e,R,R,D,a,d,o,L);else{switch(m){case 99:if(H0(N,3)===110)break;case 108:if(H0(N,2)===97)break;default:u=0;case 100:case 109:case 115:}u?J_(t,R,R,n&&e_(TV(t,R,R,0,0,i,o,E,i,D=[],d,L),L),i,L,d,o,n?D:L):J_(N,R,R,R,[""],L,0,o,L)}}c=u=p=0,b=_=1,E=N="",d=s;break;case 58:d=1+gl(N),p=y;default:if(b<1){if(C==123)--b;else if(C==125&&b++==0&&RYe()==125)continue}switch(N+=zy(C),C*b){case 38:_=u>0?1:(N+="\f",-1);break;case 44:if(w>0)break;o[c++]=(gl(N)-1)*_,_=1;break;case 64:Th()===45&&(N+=w5($o())),m=Th(),u=d=gl(E=N+=FYe(Q_())),C++;break;case 45:y===45&&gl(N)==2&&(b=0)}}return a}function TV(t,e,r,n,i,a,s,o,l,c,u,d){for(var m=i-1,p=i===0?a:[""],y=LYe(p),b=0,v=0,_=0;b<n;++b)for(var w=0,C=jm(t,m+1,m=DYe(v=s[b])),E=t;w<y;++w)(E=_le(v>0?p[w]+" "+C:G8(C,/&\f/g,p[w])))&&(l[_++]=E);return II(t,e,r,i===0?vle:o,l,c,u,d)}function zYe(t,e,r,n){return II(t,e,r,ble,zy(IYe()),jm(t,2,-2),0,n)}function kV(t,e,r,n,i){return II(t,e,r,xle,jm(t,0,n),jm(t,n+1,-1),n,i)}function Y8(t,e){for(var r="",n=0;n<t.length;n++)r+=e(t[n],n,t,e)||"";return r}function jYe(t,e,r,n){switch(t.type){case AYe:if(t.children.length)break;case kYe:case SYe:case xle:return t.return=t.return||t.value;case ble:return"";case EYe:return t.return=t.value+"{"+Y8(t.children,n)+"}";case vle:if(!gl(t.value=t.props.join(",")))return""}return gl(r=Y8(t.children,n))?t.return=t.value+"{"+r+"}":""}var HYe=Gae(Object.keys,Object),VYe=Object.prototype,UYe=VYe.hasOwnProperty;function qYe(t){if(!Mk(t))return HYe(t);var e=[];for(var r in Object(t))UYe.call(t,r)&&r!="constructor"&&e.push(r);return e}var Z8=np(Zl,"DataView"),X8=np(Zl,"Promise"),K8=np(Zl,"Set"),Q8=np(Zl,"WeakMap"),SV="[object Map]",GYe="[object Object]",EV="[object Promise]",AV="[object Set]",DV="[object WeakMap]",LV="[object DataView]",WYe=rp(Z8),YYe=rp(Ib),ZYe=rp(X8),XYe=rp(K8),KYe=rp(Q8),Yd=fg;(Z8&&Yd(new Z8(new ArrayBuffer(1)))!=LV||Ib&&Yd(new Ib)!=SV||X8&&Yd(X8.resolve())!=EV||K8&&Yd(new K8)!=AV||Q8&&Yd(new Q8)!=DV)&&(Yd=function(t){var e=fg(t),r=e==GYe?t.constructor:void 0,n=r?rp(r):"";if(n)switch(n){case WYe:return LV;case YYe:return SV;case ZYe:return EV;case XYe:return AV;case KYe:return DV}return e});var QYe="[object Map]",JYe="[object Set]",eZe=Object.prototype,tZe=eZe.hasOwnProperty;function IV(t){if(t==null)return!0;if(Pk(t)&&(PC(t)||typeof t=="string"||typeof t.splice=="function"||lI(t)||cI(t)||MC(t)))return!t.length;var e=Yd(t);if(e==QYe||e==JYe)return!t.size;if(Mk(t))return!qYe(t).length;for(var r in t)if(tZe.call(t,r))return!1;return!0}var Cle="c4",rZe=P(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),nZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./c4Diagram-AHTNJAMY-Ccmu3GF7.js");return{diagram:e}},__vite__mapDeps([210,211]));return{id:Cle,diagram:t}},"loader"),iZe={id:Cle,detector:rZe,loader:nZe},aZe=iZe,Tle="flowchart",sZe=P((t,e)=>{var r,n;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},"detector"),oZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-P1qhRSeH.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:Tle,diagram:t}},"loader"),lZe={id:Tle,detector:sZe,loader:oZe},cZe=lZe,kle="flowchart-v2",uZe=P((t,e)=>{var r,n,i;return((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t))},"detector"),hZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-P1qhRSeH.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:kle,diagram:t}},"loader"),dZe={id:kle,detector:uZe,loader:hZe},fZe=dZe,Sle="er",pZe=P(t=>/^\s*erDiagram/.test(t),"detector"),mZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./erDiagram-SMLLAGMA-B1Vy3VfV.js");return{diagram:e}},__vite__mapDeps([217,214,215,216]));return{id:Sle,diagram:t}},"loader"),gZe={id:Sle,detector:pZe,loader:mZe},yZe=gZe,Ele="gitGraph",bZe=P(t=>/^\s*gitGraph/.test(t),"detector"),vZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./gitGraphDiagram-UUTBAWPF-CQhax5Ma.js");return{diagram:e}},__vite__mapDeps([218,219,220,221,206,204]));return{id:Ele,diagram:t}},"loader"),xZe={id:Ele,detector:bZe,loader:vZe},_Ze=xZe,Ale="gantt",wZe=P(t=>/^\s*gantt/.test(t),"detector"),CZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./ganttDiagram-T4ZO3ILL-Cd5dJ8Ux.js");return{diagram:e}},__vite__mapDeps([222,223,224,225]));return{id:Ale,diagram:t}},"loader"),TZe={id:Ale,detector:wZe,loader:CZe},kZe=TZe,Dle="info",SZe=P(t=>/^\s*info/.test(t),"detector"),EZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./infoDiagram-42DDH7IO-XxdV_oW-.js");return{diagram:e}},__vite__mapDeps([226,221,206,204]));return{id:Dle,diagram:t}},"loader"),AZe={id:Dle,detector:SZe,loader:EZe},Lle="pie",DZe=P(t=>/^\s*pie/.test(t),"detector"),LZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./pieDiagram-DEJITSTG-BZ7mAGoX.js");return{diagram:e}},__vite__mapDeps([227,219,221,206,204,228,229,224]));return{id:Lle,diagram:t}},"loader"),IZe={id:Lle,detector:DZe,loader:LZe},Ile="quadrantChart",RZe=P(t=>/^\s*quadrantChart/.test(t),"detector"),OZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./quadrantDiagram-34T5L4WZ-BCVV6K6p.js");return{diagram:e}},__vite__mapDeps([230,223,224,225]));return{id:Ile,diagram:t}},"loader"),NZe={id:Ile,detector:RZe,loader:OZe},MZe=NZe,Rle="xychart",PZe=P(t=>/^\s*xychart(-beta)?/.test(t),"detector"),BZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./xychartDiagram-5P7HB3ND-DaCoNGaH.js");return{diagram:e}},__vite__mapDeps([231,224,229,223,225]));return{id:Rle,diagram:t}},"loader"),FZe={id:Rle,detector:PZe,loader:BZe},$Ze=FZe,Ole="requirement",zZe=P(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),jZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./requirementDiagram-MS252O5E-D1e85IpR.js");return{diagram:e}},__vite__mapDeps([232,214,215]));return{id:Ole,diagram:t}},"loader"),HZe={id:Ole,detector:zZe,loader:jZe},VZe=HZe,Nle="sequence",UZe=P(t=>/^\s*sequenceDiagram/.test(t),"detector"),qZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./sequenceDiagram-FGHM5R23-B7476NxU.js");return{diagram:e}},__vite__mapDeps([233,211,220]));return{id:Nle,diagram:t}},"loader"),GZe={id:Nle,detector:UZe,loader:qZe},WZe=GZe,Mle="class",YZe=P((t,e)=>{var r;return((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},"detector"),ZZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./classDiagram-6PBFFD2Q-Cyq42eBC.js");return{diagram:e}},__vite__mapDeps([234,235,213,211,214,215]));return{id:Mle,diagram:t}},"loader"),XZe={id:Mle,detector:YZe,loader:ZZe},KZe=XZe,Ple="classDiagram",QZe=P((t,e)=>{var r;return/^\s*classDiagram/.test(t)&&((r=e==null?void 0:e.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},"detector"),JZe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./classDiagram-v2-HSJHXN6E-Cyq42eBC.js");return{diagram:e}},__vite__mapDeps([236,235,213,211,214,215]));return{id:Ple,diagram:t}},"loader"),eXe={id:Ple,detector:QZe,loader:JZe},tXe=eXe,Ble="state",rXe=P((t,e)=>{var r;return((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},"detector"),nXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./stateDiagram-FHFEXIEX-BDW9PwQx.js");return{diagram:e}},__vite__mapDeps([237,238,214,215,203,204,205,206]));return{id:Ble,diagram:t}},"loader"),iXe={id:Ble,detector:rXe,loader:nXe},aXe=iXe,Fle="stateDiagram",sXe=P((t,e)=>{var r;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((r=e==null?void 0:e.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),oXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./stateDiagram-v2-QKLJ7IA2-BP9JoQLT.js");return{diagram:e}},__vite__mapDeps([239,238,214,215]));return{id:Fle,diagram:t}},"loader"),lXe={id:Fle,detector:sXe,loader:oXe},cXe=lXe,$le="journey",uXe=P(t=>/^\s*journey/.test(t),"detector"),hXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./journeyDiagram-VCZTEJTY-DduYxRNv.js");return{diagram:e}},__vite__mapDeps([240,213,211,228]));return{id:$le,diagram:t}},"loader"),dXe={id:$le,detector:uXe,loader:hXe},fXe=dXe,pXe=P((t,e,r)=>{Ve.debug(`rendering svg for syntax error
|
|
1145
|
+
`);const n=Bje(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),hne(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),zle={draw:pXe},mXe=zle,gXe={db:{},renderer:zle,parser:{parse:P(()=>{},"parse")}},yXe=gXe,jle="flowchart-elk",bXe=P((t,e={})=>{var r;return/^\s*flowchart-elk/.test(t)||/^\s*(flowchart|graph)/.test(t)&&((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(e.layout="elk",!0):!1},"detector"),vXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./flowDiagram-DWJPFMVM-P1qhRSeH.js");return{diagram:e}},__vite__mapDeps([212,213,211,214,215,216]));return{id:jle,diagram:t}},"loader"),xXe={id:jle,detector:bXe,loader:vXe},_Xe=xXe,Hle="timeline",wXe=P(t=>/^\s*timeline/.test(t),"detector"),CXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./timeline-definition-GMOUNBTQ-BHwv--28.js");return{diagram:e}},__vite__mapDeps([241,228]));return{id:Hle,diagram:t}},"loader"),TXe={id:Hle,detector:wXe,loader:CXe},kXe=TXe,Vle="mindmap",SXe=P(t=>/^\s*mindmap/.test(t),"detector"),EXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./mindmap-definition-QFDTVHPH-cP4fgpMN.js");return{diagram:e}},__vite__mapDeps([242,214,215]));return{id:Vle,diagram:t}},"loader"),AXe={id:Vle,detector:SXe,loader:EXe},DXe=AXe,Ule="kanban",LXe=P(t=>/^\s*kanban/.test(t),"detector"),IXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./kanban-definition-6JOO6SKY-BetBlOog.js");return{diagram:e}},__vite__mapDeps([243,213]));return{id:Ule,diagram:t}},"loader"),RXe={id:Ule,detector:LXe,loader:IXe},OXe=RXe,qle="sankey",NXe=P(t=>/^\s*sankey(-beta)?/.test(t),"detector"),MXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./sankeyDiagram-XADWPNL6-CIRLLdB_.js");return{diagram:e}},__vite__mapDeps([244,229,224]));return{id:qle,diagram:t}},"loader"),PXe={id:qle,detector:NXe,loader:MXe},BXe=PXe,Gle="packet",FXe=P(t=>/^\s*packet(-beta)?/.test(t),"detector"),$Xe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./diagram-TYMM5635-mATGiLIS.js");return{diagram:e}},__vite__mapDeps([245,219,221,206,204]));return{id:Gle,diagram:t}},"loader"),zXe={id:Gle,detector:FXe,loader:$Xe},Wle="radar",jXe=P(t=>/^\s*radar-beta/.test(t),"detector"),HXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./diagram-MMDJMWI5-awVuGewm.js");return{diagram:e}},__vite__mapDeps([246,219,221,206,204]));return{id:Wle,diagram:t}},"loader"),VXe={id:Wle,detector:jXe,loader:HXe},Yle="block",UXe=P(t=>/^\s*block(-beta)?/.test(t),"detector"),qXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./blockDiagram-DXYQGD6D-DUTFqGft.js");return{diagram:e}},__vite__mapDeps([247,213,207,203,204,216]));return{id:Yle,diagram:t}},"loader"),GXe={id:Yle,detector:UXe,loader:qXe},WXe=GXe,Zle="treeView",YXe=P(t=>/^\s*treeView-beta/.test(t),"detector"),ZXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./diagram-5BDNPKRD-BcjQgLin.js");return{diagram:e}},__vite__mapDeps([248,219,220,221,206,204]));return{id:Zle,diagram:t}},"loader"),XXe={id:Zle,detector:YXe,loader:ZXe},KXe=XXe,Xle="architecture",QXe=P(t=>/^\s*architecture/.test(t),"detector"),JXe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./architectureDiagram-Q4EWVU46-dUzBsLg7.js");return{diagram:e}},__vite__mapDeps([249,219,221,206,204,209]));return{id:Xle,diagram:t}},"loader"),eKe={id:Xle,detector:QXe,loader:JXe},tKe=eKe,Kle="ishikawa",rKe=P(t=>/^\s*ishikawa(-beta)?\b/i.test(t),"detector"),nKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./ishikawaDiagram-UXIWVN3A-DkGRNBfg.js");return{diagram:e}},[]);return{id:Kle,diagram:t}},"loader"),iKe={id:Kle,detector:rKe,loader:nKe},Qle="venn",aKe=P(t=>/^\s*venn-beta/.test(t),"detector"),sKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./vennDiagram-DHZGUBPP-DXDlniOX.js");return{diagram:e}},[]);return{id:Qle,diagram:t}},"loader"),oKe={id:Qle,detector:aKe,loader:sKe},lKe=oKe,Jle="treemap",cKe=P(t=>/^\s*treemap/.test(t),"detector"),uKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./diagram-G4DWMVQ6-D09m0EH5.js");return{diagram:e}},__vite__mapDeps([250,215,219,221,206,204,225,229,224]));return{id:Jle,diagram:t}},"loader"),hKe={id:Jle,detector:cKe,loader:uKe},ece="wardley-beta",dKe=P(t=>/^\s*wardley-beta/i.test(t),"detector"),fKe=P(async()=>{const{diagram:t}=await M(async()=>{const{diagram:e}=await import("./wardleyDiagram-NUSXRM2D-Ck01VyTi.js");return{diagram:e}},__vite__mapDeps([251,219,221,206,204]));return{id:ece,diagram:t}},"loader"),pKe={id:ece,detector:dKe,loader:fKe},mKe=pKe,RV=!1,Gk=P(()=>{RV||(RV=!0,yC("error",yXe,t=>t.toLowerCase().trim()==="error"),yC("---",{db:{clear:P(()=>{},"clear")},styles:{},renderer:{draw:P(()=>{},"draw")},parser:{parse:P(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:P(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),t8(_Xe,DXe,tKe),t8(aZe,OXe,tXe,KZe,yZe,kZe,AZe,IZe,VZe,WZe,fZe,cZe,kXe,_Ze,cXe,aXe,fXe,MZe,BXe,zXe,$Ze,WXe,KXe,VXe,iKe,hKe,lKe,mKe))},"addDiagrams"),gKe=P(async()=>{Ve.debug("Loading registered diagrams");const e=(await Promise.allSettled(Object.entries(Ff).map(async([r,{detector:n,loader:i}])=>{if(i)try{a8(r)}catch{try{const{diagram:a,id:s}=await i();yC(s,a,n)}catch(a){throw Ve.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Ff[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){Ve.error(`Failed to load ${e.length} external diagrams`);for(const r of e)Ve.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams"),yKe="graphics-document document";function tce(t,e){t.attr("role",yKe),e!==""&&t.attr("aria-roledescription",e)}P(tce,"setA11yDiagramInfo");function rce(t,e,r,n){if(t.insert!==void 0){if(r){const i=`chart-desc-${n}`;t.attr("aria-describedby",i),t.insert("desc",":first-child").attr("id",i).text(r)}if(e){const i=`chart-title-${n}`;t.attr("aria-labelledby",i),t.insert("title",":first-child").attr("id",i).text(e)}}}P(rce,"addSVGa11yTitleDescription");var Af,J8=(Af=class{constructor(e,r,n,i,a){this.type=e,this.text=r,this.db=n,this.parser=i,this.renderer=a}static async fromText(e,r={}){var c,u;const n=Hn(),i=NL(e,n);e=zqe(e)+`
|
|
1146
1146
|
`;try{a8(i)}catch{const d=rBe(i);if(!d)throw new Kre(`Diagram ${i} not found.`);const{id:m,diagram:p}=await d();yC(m,p)}const{db:a,parser:s,renderer:o,init:l}=a8(i);return s.parser&&(s.parser.yy=a),(c=a.clear)==null||c.call(a),l==null||l(n),r.title&&((u=a.setDiagramTitle)==null||u.call(a,r.title)),await s.parse(e),new Af(i,e,a,s,o)}async render(e,r){await this.renderer.draw(this.text,e,r,this)}getParser(){return this.parser}getType(){return this.type}},P(Af,"Diagram"),Af),OV=[],bKe=P(()=>{OV.forEach(t=>{t()}),OV=[]},"attachFunctions"),vKe=P(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function nce(t){const e=t.match(Xre);if(!e)return{text:t,metadata:{}};let r=UHe(e[1],{schema:VHe})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};const n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}P(nce,"extractFrontMatter");var xKe=P(t=>t.replace(/\r\n?/g,`
|
|
1147
1147
|
`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),_Ke=P(t=>{const{text:e,metadata:r}=nce(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),wKe=P(t=>{const e=No.detectInit(t)??{},r=No.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):(r==null?void 0:r.type)==="wrap"&&(e.wrap=!0),{text:Eqe(t),directive:e}},"processDirectives");function RI(t){const e=xKe(t),r=_Ke(e),n=wKe(r.text),i=mI(r.config,n.directive);return t=vKe(n.text),{code:t,title:r.title,config:i}}P(RI,"preprocessDiagram");function ice(t){const e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}P(ice,"toBase64");var CKe=5e4,TKe="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",kKe="sandbox",SKe="loose",EKe="http://www.w3.org/2000/svg",AKe="http://www.w3.org/1999/xlink",DKe="http://www.w3.org/1999/xhtml",LKe="100%",IKe="100%",RKe="border:0;margin:0;",OKe="margin:0",NKe="allow-top-navigation-by-user-activation allow-popups",MKe='The "iframe" tag is not supported by your browser.',PKe=["foreignobject"],BKe=["dominant-baseline"];function OI(t){const e=RI(t);return mC(),LBe(e.config??{}),e}P(OI,"processAndSetConfigs");async function ace(t,e){Gk();try{const{code:r,config:n}=OI(t);return{diagramType:(await oce(r)).type,config:n}}catch(r){if(e!=null&&e.suppressErrors)return!1;throw r}}P(ace,"parse");var NV=P((t,e,r=[])=>`
|
|
1148
1148
|
.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),FKe=P((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=`
|
|
@@ -1262,7 +1262,7 @@ ${e}</tr>
|
|
|
1262
1262
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${hl(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:r,tokens:n}){let i=this.parser.parseInline(n),a=WU(e);if(a===null)return i;e=a;let s='<a href="'+e+'"';return r&&(s+=' title="'+hl(r)+'"'),s+=">"+i+"</a>",s}image({href:e,title:r,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let a=WU(e);if(a===null)return hl(n);e=a;let s=`<img src="${e}" alt="${hl(n)}"`;return r&&(s+=` title="${hl(r)}"`),s+=">",s}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:hl(e.text)}},uR=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},Io=class p7{constructor(e){xe(this,"options");xe(this,"renderer");xe(this,"textRenderer");this.options=e||op,this.options.renderer=this.options.renderer||new tT,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new uR}static parse(e,r){return new p7(r).parse(e)}static parseInline(e,r){return new p7(r).parseInline(e)}parse(e){var n,i;this.renderer.parser=this;let r="";for(let a=0;a<e.length;a++){let s=e[a];if((i=(n=this.options.extensions)==null?void 0:n.renderers)!=null&&i[s.type]){let l=s,c=this.options.extensions.renderers[l.type].call({parser:this},l);if(c!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){r+=c||"";continue}}let o=s;switch(o.type){case"space":{r+=this.renderer.space(o);break}case"hr":{r+=this.renderer.hr(o);break}case"heading":{r+=this.renderer.heading(o);break}case"code":{r+=this.renderer.code(o);break}case"table":{r+=this.renderer.table(o);break}case"blockquote":{r+=this.renderer.blockquote(o);break}case"list":{r+=this.renderer.list(o);break}case"checkbox":{r+=this.renderer.checkbox(o);break}case"html":{r+=this.renderer.html(o);break}case"def":{r+=this.renderer.def(o);break}case"paragraph":{r+=this.renderer.paragraph(o);break}case"text":{r+=this.renderer.text(o);break}default:{let l='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return r}parseInline(e,r=this.renderer){var i,a;this.renderer.parser=this;let n="";for(let s=0;s<e.length;s++){let o=e[s];if((a=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&a[o.type]){let c=this.options.extensions.renderers[o.type].call({parser:this},o);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type)){n+=c||"";continue}}let l=o;switch(l.type){case"escape":{n+=r.text(l);break}case"html":{n+=r.html(l);break}case"link":{n+=r.link(l);break}case"image":{n+=r.image(l);break}case"checkbox":{n+=r.checkbox(l);break}case"strong":{n+=r.strong(l);break}case"em":{n+=r.em(l);break}case"codespan":{n+=r.codespan(l);break}case"br":{n+=r.br(l);break}case"del":{n+=r.del(l);break}case"text":{n+=r.text(l);break}default:{let c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return n}},w_,Cy=(w_=class{constructor(t){xe(this,"options");xe(this,"block");this.options=t||op}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(t=this.block){return t?no.lex:no.lexInline}provideParser(t=this.block){return t?Io.parse:Io.parseInline}},xe(w_,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),xe(w_,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),w_),act=class{constructor(...e){xe(this,"defaults",rR());xe(this,"options",this.setOptions);xe(this,"parse",this.parseMarkdown(!0));xe(this,"parseInline",this.parseMarkdown(!1));xe(this,"Parser",Io);xe(this,"Renderer",tT);xe(this,"TextRenderer",uR);xe(this,"Lexer",no);xe(this,"Tokenizer",eT);xe(this,"Hooks",Cy);this.use(...e)}walkTokens(e,r){var i,a;let n=[];for(let s of e)switch(n=n.concat(r.call(this,s)),s.type){case"table":{let o=s;for(let l of o.header)n=n.concat(this.walkTokens(l.tokens,r));for(let l of o.rows)for(let c of l)n=n.concat(this.walkTokens(c.tokens,r));break}case"list":{let o=s;n=n.concat(this.walkTokens(o.items,r));break}default:{let o=s;(a=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&a[o.type]?this.defaults.extensions.childTokens[o.type].forEach(l=>{let c=o[l].flat(1/0);n=n.concat(this.walkTokens(c,r))}):o.tokens&&(n=n.concat(this.walkTokens(o.tokens,r)))}}return n}use(...e){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let s=r.renderers[a.name];s?r.renderers[a.name]=function(...o){let l=a.renderer.apply(this,o);return l===!1&&(l=s.apply(this,o)),l}:r.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=r[a.level];s?s.unshift(a.tokenizer):r[a.level]=[a.tokenizer],a.start&&(a.level==="block"?r.startBlock?r.startBlock.push(a.start):r.startBlock=[a.start]:a.level==="inline"&&(r.startInline?r.startInline.push(a.start):r.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(r.childTokens[a.name]=a.childTokens)}),i.extensions=r),n.renderer){let a=this.defaults.renderer||new tT(this.defaults);for(let s in n.renderer){if(!(s in a))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let o=s,l=n.renderer[o],c=a[o];a[o]=(...u)=>{let d=l.apply(a,u);return d===!1&&(d=c.apply(a,u)),d||""}}i.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new eT(this.defaults);for(let s in n.tokenizer){if(!(s in a))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let o=s,l=n.tokenizer[o],c=a[o];a[o]=(...u)=>{let d=l.apply(a,u);return d===!1&&(d=c.apply(a,u)),d}}i.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new Cy;for(let s in n.hooks){if(!(s in a))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let o=s,l=n.hooks[o],c=a[o];Cy.passThroughHooks.has(s)?a[o]=u=>{if(this.defaults.async&&Cy.passThroughHooksRespectAsync.has(s))return(async()=>{let m=await l.call(a,u);return c.call(a,m)})();let d=l.call(a,u);return c.call(a,d)}:a[o]=(...u)=>{if(this.defaults.async)return(async()=>{let m=await l.apply(a,u);return m===!1&&(m=await c.apply(a,u)),m})();let d=l.apply(a,u);return d===!1&&(d=c.apply(a,u)),d}}i.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(o){let l=[];return l.push(s.call(this,o)),a&&(l=l.concat(a.call(this,o))),l}}this.defaults={...this.defaults,...i}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,r){return no.lex(e,r??this.defaults)}parser(e,r){return Io.parse(e,r??this.defaults)}parseMarkdown(e){return(r,n)=>{let i={...n},a={...this.defaults,...i},s=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&i.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof r>"u"||r===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof r!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));if(a.hooks&&(a.hooks.options=a,a.hooks.block=e),a.async)return(async()=>{let o=a.hooks?await a.hooks.preprocess(r):r,l=await(a.hooks?await a.hooks.provideLexer(e):e?no.lex:no.lexInline)(o,a),c=a.hooks?await a.hooks.processAllTokens(l):l;a.walkTokens&&await Promise.all(this.walkTokens(c,a.walkTokens));let u=await(a.hooks?await a.hooks.provideParser(e):e?Io.parse:Io.parseInline)(c,a);return a.hooks?await a.hooks.postprocess(u):u})().catch(s);try{a.hooks&&(r=a.hooks.preprocess(r));let o=(a.hooks?a.hooks.provideLexer(e):e?no.lex:no.lexInline)(r,a);a.hooks&&(o=a.hooks.processAllTokens(o)),a.walkTokens&&this.walkTokens(o,a.walkTokens);let l=(a.hooks?a.hooks.provideParser(e):e?Io.parse:Io.parseInline)(o,a);return a.hooks&&(l=a.hooks.postprocess(l)),l}catch(o){return s(o)}}}onError(e,r){return n=>{if(n.message+=`
|
|
1263
1263
|
Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error occurred:</p><pre>"+hl(n.message+"",!0)+"</pre>";return r?Promise.resolve(i):i}if(r)return Promise.reject(n);throw n}}},Wf=new act;function cn(t,e){return Wf.parse(t,e)}cn.options=cn.setOptions=function(t){return Wf.setOptions(t),cn.defaults=Wf.defaults,nhe(cn.defaults),cn};cn.getDefaults=rR;cn.defaults=op;cn.use=function(...t){return Wf.use(...t),cn.defaults=Wf.defaults,nhe(cn.defaults),cn};cn.walkTokens=function(t,e){return Wf.walkTokens(t,e)};cn.parseInline=Wf.parseInline;cn.Parser=Io;cn.parser=Io.parse;cn.Renderer=tT;cn.TextRenderer=uR;cn.Lexer=no;cn.lexer=no.lex;cn.Tokenizer=eT;cn.Hooks=Cy;cn.parse=cn;cn.options;cn.setOptions;cn.use;cn.walkTokens;cn.parseInline;Io.parse;no.lex;var sct=300,oct="300px",lct=500;function cct(t={}){let{immediate:e=!1,debounceDelay:r=sct,rootMargin:n=oct,idleTimeout:i=lct}=t,[a,s]=k.useState(!1),o=k.useRef(null),l=k.useRef(null),c=k.useRef(null),u=k.useMemo(()=>p=>{let y=Date.now();return window.setTimeout(()=>{p({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-y))})},1)},[]),d=k.useMemo(()=>typeof window<"u"&&window.requestIdleCallback?(p,y)=>window.requestIdleCallback(p,y):u,[u]),m=k.useMemo(()=>typeof window<"u"&&window.cancelIdleCallback?p=>window.cancelIdleCallback(p):p=>{clearTimeout(p)},[]);return k.useEffect(()=>{if(e){s(!0);return}let p=o.current;if(!p)return;l.current&&(clearTimeout(l.current),l.current=null),c.current&&(m(c.current),c.current=null);let y=()=>{l.current&&(clearTimeout(l.current),l.current=null),c.current&&(m(c.current),c.current=null)},b=C=>{c.current=d(E=>{E.timeRemaining()>0||E.didTimeout?(s(!0),C.disconnect()):c.current=d(()=>{s(!0),C.disconnect()},{timeout:i/2})},{timeout:i})},v=C=>{y(),l.current=window.setTimeout(()=>{var E,D;let L=C.takeRecords();(L.length===0||(D=(E=L.at(-1))==null?void 0:E.isIntersecting)!=null&&D)&&b(C)},r)},_=(C,E)=>{C.isIntersecting?v(E):y()},w=new IntersectionObserver(C=>{for(let E of C)_(E,w)},{rootMargin:n,threshold:0});return w.observe(p),()=>{l.current&&clearTimeout(l.current),c.current&&m(c.current),w.disconnect()}},[e,r,n,i,m,d]),{shouldRender:a,containerRef:o}}var fhe=/\s/,uct=/^\s+$/,hct=new Set(["code","pre","svg","math","annotation"]),dct=t=>typeof t=="object"&&t!==null&&"type"in t&&t.type==="element",fct=t=>t.some(e=>dct(e)&&hct.has(e.tagName)),pct=t=>{let e=[],r="",n=!1;for(let i of t){let a=fhe.test(i);a!==n&&r&&(e.push(r),r=""),r+=i,n=a}return r&&e.push(r),e},mct=t=>{let e=[],r="";for(let n of t)fhe.test(n)?r+=n:(r&&(e.push(r),r=""),e.push(n));return r&&e.push(r),e},gct=(t,e,r,n,i,a)=>{let s=`--sd-animation:sd-${e};--sd-duration:${i?0:r}ms;--sd-easing:${n}`;return a&&(s+=`;--sd-delay:${a}ms`),{type:"element",tagName:"span",properties:{"data-sd-animate":!0,style:s},children:[{type:"text",value:t}]}},yct=(t,e,r,n,i)=>{let a=e.at(-1);if(!(a&&"children"in a))return;if(fct(e))return af;let s=a,o=s.children.indexOf(t);if(o===-1)return;let l=t.value;if(!l.trim()){i.count+=l.length;return}let c=r.sep==="char"?mct(l):pct(l),u=n.prevContentLength,d=c.map(m=>{let p=i.count;if(i.count+=m.length,uct.test(m))return{type:"text",value:m};let y=u>0&&p<u,b=y?0:i.newIndex++*r.stagger;return gct(m,r.animation,r.duration,r.easing,y,b)});return s.children.splice(o,1,...d),o+d.length},bct=0;function m7(t){var e,r,n,i,a;let s={animation:(e=t==null?void 0:t.animation)!=null?e:"fadeIn",duration:(r=t==null?void 0:t.duration)!=null?r:150,easing:(n=t==null?void 0:t.easing)!=null?n:"ease",sep:(i=t==null?void 0:t.sep)!=null?i:"word",stagger:(a=t==null?void 0:t.stagger)!=null?a:40},o={prevContentLength:0,lastRenderCharCount:0},l=bct++,c=()=>u=>{let d={count:0,newIndex:0};ak(u,"text",(m,p)=>yct(m,p,s,o,d)),o.lastRenderCharCount=d.count,o.prevContentLength=0};return Object.defineProperty(c,"name",{value:`rehypeAnimate$${l}`}),{name:"animate",type:"animate",rehypePlugin:c,setPrevContentLength(u){o.prevContentLength=u},getLastRenderCharCount(){let u=o.lastRenderCharCount;return o.lastRenderCharCount=0,u}}}m7();var phe=k.createContext(!1),vct=()=>k.useContext(phe),hR=(...t)=>xT(Km(t)),xct=(t,e)=>{if(!t||!e)return e;let r=`${t}:`;return e.split(/\s+/).filter(Boolean).map(n=>n.startsWith(r)?n:`${t}:${n}`).join(" ")},_ct=t=>t?(...e)=>xct(t,xT(Km(e))):hR,V0=(t,e,r)=>{let n=typeof e=="string"&&r.startsWith("text/csv")?"\uFEFF":"",i=typeof e=="string"?new Blob([n+e],{type:r}):e,a=URL.createObjectURL(i),s=document.createElement("a");s.href=a,s.download=t,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(a)},g7=k.createContext(hR),vr=()=>k.useContext(g7),wct=hR("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),Cct=t=>{let e={};for(let r of t.split(";")){let n=r.indexOf(":");if(n>0){let i=r.slice(0,n).trim(),a=r.slice(n+1).trim();i&&a&&(e[i]=a)}}return e},Tct=k.memo(({children:t,result:e,language:r,className:n,startLine:i,lineNumbers:a=!0,...s})=>{let o=vr(),l=k.useMemo(()=>o(wct),[o]),c=k.useMemo(()=>{let u={};return e.bg&&(u["--sdm-bg"]=e.bg),e.fg&&(u["--sdm-fg"]=e.fg),e.rootStyle&&Object.assign(u,Cct(e.rootStyle)),u},[e.bg,e.fg,e.rootStyle]);return T.jsx("div",{className:o(n,"overflow-x-auto rounded-md border border-border bg-background p-4 text-sm"),"data-language":r,"data-streamdown":"code-block-body",...s,children:T.jsx("pre",{className:o(n,"bg-[var(--sdm-bg,inherit]","dark:bg-[var(--shiki-dark-bg,var(--sdm-bg,inherit)]"),style:c,children:T.jsx("code",{className:a?o("[counter-increment:line_0] [counter-reset:line]"):void 0,style:a&&i&&i>1?{counterReset:`line ${i-1}`}:void 0,children:e.tokens.map((u,d)=>T.jsx("span",{className:a?l:void 0,children:u.length===0||u.length===1&&u[0].content===""?`
|
|
1264
1264
|
`:u.map((m,p)=>{let y={},b=!!m.bgColor;if(m.color&&(y["--sdm-c"]=m.color),m.bgColor&&(y["--sdm-tbg"]=m.bgColor),m.htmlStyle)for(let[v,_]of Object.entries(m.htmlStyle))v==="color"?y["--sdm-c"]=_:v==="background-color"?(y["--sdm-tbg"]=_,b=!0):y[v]=_;return T.jsx("span",{className:o("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",b&&"bg-[var(--sdm-tbg)]",b&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:y,...m.htmlAttrs,children:m.content},p)})},d))})})})},(t,e)=>t.result===e.result&&t.language===e.language&&t.className===e.className&&t.startLine===e.startLine&&t.lineNumbers===e.lineNumbers),kct=({className:t,language:e,style:r,isIncomplete:n,...i})=>{let a=vr();return T.jsx("div",{className:a("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",t),"data-incomplete":n||void 0,"data-language":e,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...r},...i})},mhe=k.createContext({code:""}),ghe=()=>k.useContext(mhe),Sct=({language:t})=>{let e=vr();return T.jsx("div",{className:e("flex h-8 items-center text-muted-foreground text-xs"),"data-language":t,"data-streamdown":"code-block-header",children:T.jsx("span",{className:e("ml-1 font-mono lowercase"),children:t})})},Ect=t=>{let e=t.length;for(;e>0&&t[e-1]===`
|
|
1265
|
-
`;)e--;return t.slice(0,e)},Act=k.lazy(()=>M(()=>import("./highlighted-body-OFNGDK62-
|
|
1265
|
+
`;)e--;return t.slice(0,e)},Act=k.lazy(()=>M(()=>import("./highlighted-body-OFNGDK62-C2oTg0Ey.js"),[]).then(t=>({default:t.HighlightedCodeBlockBody}))),Dct=({code:t,language:e,className:r,children:n,isIncomplete:i=!1,startLine:a,lineNumbers:s,...o})=>{let l=vr(),c=k.useMemo(()=>Ect(t),[t]),u=k.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:c.split(`
|
|
1266
1266
|
`).map(d=>[{content:d,color:"inherit",bgColor:"transparent",htmlStyle:{},offset:0}])}),[c]);return T.jsx(mhe.Provider,{value:{code:t},children:T.jsxs(kct,{isIncomplete:i,language:e,children:[T.jsx(Sct,{language:e}),n?T.jsx("div",{className:l("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:T.jsx("div",{className:l("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"code-block-actions",children:n})}):null,T.jsx(k.Suspense,{fallback:T.jsx(Tct,{className:r,language:e,lineNumbers:s,result:u,startLine:a,...o}),children:T.jsx(Act,{className:r,code:c,language:e,lineNumbers:s,raw:u,startLine:a,...o})})]})})},Lct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z",fill:"currentColor",fillRule:"evenodd"})}),Ict=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z",fill:"currentColor",fillRule:"evenodd"})}),Rct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z",fill:"currentColor",fillRule:"evenodd"})}),Oct=t=>T.jsxs("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:[T.jsx("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),T.jsx("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),Nct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M1 5.25V6H2.5V5.25V2.5H5.25H6V1H5.25H2C1.44772 1 1 1.44772 1 2V5.25ZM5.25 14.9994H6V13.4994H5.25H2.5V10.7494V9.99939H1V10.7494V13.9994C1 14.5517 1.44772 14.9994 2 14.9994H5.25ZM15 10V10.75V14C15 14.5523 14.5523 15 14 15H10.75H10V13.5H10.75H13.5V10.75V10H15ZM10.75 1H10V2.5H10.75H13.5V5.25V6H15V5.25V2C15 1.44772 14.5523 1 14 1H10.75Z",fill:"currentColor",fillRule:"evenodd"})}),Mct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M13.5 8C13.5 4.96643 11.0257 2.5 7.96452 2.5C5.42843 2.5 3.29365 4.19393 2.63724 6.5H5.25H6V8H5.25H0.75C0.335787 8 0 7.66421 0 7.25V2.75V2H1.5V2.75V5.23347C2.57851 2.74164 5.06835 1 7.96452 1C11.8461 1 15 4.13001 15 8C15 11.87 11.8461 15 7.96452 15C5.62368 15 3.54872 13.8617 2.27046 12.1122L1.828 11.5066L3.03915 10.6217L3.48161 11.2273C4.48831 12.6051 6.12055 13.5 7.96452 13.5C11.0257 13.5 13.5 11.0336 13.5 8Z",fill:"currentColor",fillRule:"evenodd"})}),Pct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z",fill:"currentColor",fillRule:"evenodd"})}),Bct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M13.5 10.25V13.25C13.5 13.3881 13.3881 13.5 13.25 13.5H2.75C2.61193 13.5 2.5 13.3881 2.5 13.25L2.5 2.75C2.5 2.61193 2.61193 2.5 2.75 2.5H5.75H6.5V1H5.75H2.75C1.7835 1 1 1.7835 1 2.75V13.25C1 14.2165 1.7835 15 2.75 15H13.25C14.2165 15 15 14.2165 15 13.25V10.25V9.5H13.5V10.25ZM9 1H9.75H14.2495C14.6637 1 14.9995 1.33579 14.9995 1.75V6.25V7H13.4995V6.25V3.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L12.4388 2.5H9.75H9V1Z",fill:"currentColor",fillRule:"evenodd"})}),Fct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H5.875V4.75V4.125H7.125V4.75V5.875H8.25H8.875V7.125H8.25H7.125V8.25V8.875H5.875V8.25V7.125H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),$ct=t=>T.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...t,children:T.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H8.25H8.875V7.125H8.25H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),Ty={CheckIcon:Lct,CopyIcon:Ict,DownloadIcon:Rct,ExternalLinkIcon:Bct,Loader2Icon:Oct,Maximize2Icon:Nct,RotateCcwIcon:Mct,XIcon:Pct,ZoomInIcon:Fct,ZoomOutIcon:$ct},yhe=k.createContext(Ty),zct=(t,e)=>{if(t===e)return!0;if(!(t&&e))return t===e;let r=Object.keys(t),n=Object.keys(e);return r.length!==n.length?!1:r.every(i=>t[i]===e[i])},XU=({icons:t,children:e})=>{let r=k.useRef(t),n=k.useRef(t?{...Ty,...t}:Ty);zct(r.current,t)||(r.current=t,n.current=t?{...Ty,...t}:Ty);let i=n.current;return T.jsx(yhe.Provider,{value:i,children:e})},Ko=()=>k.useContext(yhe),bhe={copyCode:"Copy Code",downloadFile:"Download file",downloadDiagram:"Download diagram",downloadDiagramAsSvg:"Download diagram as SVG",downloadDiagramAsPng:"Download diagram as PNG",downloadDiagramAsMmd:"Download diagram as MMD",viewFullscreen:"View fullscreen",exitFullscreen:"Exit fullscreen",mermaidFormatSvg:"SVG",mermaidFormatPng:"PNG",mermaidFormatMmd:"MMD",copyTable:"Copy table",copyTableAsMarkdown:"Copy table as Markdown",copyTableAsCsv:"Copy table as CSV",copyTableAsTsv:"Copy table as TSV",downloadTable:"Download table",downloadTableAsCsv:"Download table as CSV",downloadTableAsMarkdown:"Download table as Markdown",tableFormatMarkdown:"Markdown",tableFormatCsv:"CSV",tableFormatTsv:"TSV",imageNotAvailable:"Image not available",downloadImage:"Download image",openExternalLink:"Open external link?",externalLinkWarning:"You're about to visit an external website.",close:"Close",copyLink:"Copy link",copied:"Copied",openLink:"Open link"},y7=k.createContext(bhe),du=()=>k.useContext(y7),KU=({onCopy:t,onError:e,timeout:r=2e3,children:n,className:i,code:a,...s})=>{let o=vr(),[l,c]=k.useState(!1),u=k.useRef(0),{code:d}=ghe(),{isAnimating:m}=k.useContext(Os),p=du(),y=a??d,b=async()=>{var w;if(typeof window>"u"||!((w=navigator==null?void 0:navigator.clipboard)!=null&&w.writeText)){e==null||e(new Error("Clipboard API not available"));return}try{l||(await navigator.clipboard.writeText(y),c(!0),t==null||t(),u.current=window.setTimeout(()=>c(!1),r))}catch(C){e==null||e(C)}};k.useEffect(()=>()=>{window.clearTimeout(u.current)},[]);let v=Ko(),_=l?v.CheckIcon:v.CopyIcon;return T.jsx("button",{className:o("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),"data-streamdown":"code-block-copy-button",disabled:m,onClick:b,title:p.copyCode,type:"button",...s,children:n??T.jsx(_,{size:14})})},QU={"1c":"1c","1c-query":"1cq",abap:"abap","actionscript-3":"as",ada:"ada",adoc:"adoc","angular-html":"html","angular-ts":"ts",apache:"conf",apex:"cls",apl:"apl",applescript:"applescript",ara:"ara",asciidoc:"adoc",asm:"asm",astro:"astro",awk:"awk",ballerina:"bal",bash:"sh",bat:"bat",batch:"bat",be:"be",beancount:"beancount",berry:"berry",bibtex:"bib",bicep:"bicep",blade:"blade.php",bsl:"bsl",c:"c","c#":"cs","c++":"cpp",cadence:"cdc",cairo:"cairo",cdc:"cdc",clarity:"clar",clj:"clj",clojure:"clj","closure-templates":"soy",cmake:"cmake",cmd:"cmd",cobol:"cob",codeowners:"CODEOWNERS",codeql:"ql",coffee:"coffee",coffeescript:"coffee","common-lisp":"lisp",console:"sh",coq:"v",cpp:"cpp",cql:"cql",crystal:"cr",cs:"cs",csharp:"cs",css:"css",csv:"csv",cue:"cue",cypher:"cql",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",docker:"dockerfile",dockerfile:"dockerfile",dotenv:"env","dream-maker":"dm",edge:"edge",elisp:"el",elixir:"ex",elm:"elm","emacs-lisp":"el",erb:"erb",erl:"erl",erlang:"erl",f:"f","f#":"fs",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"f90",f95:"f95",fennel:"fnl",fish:"fish",fluent:"ftl",for:"for","fortran-fixed-form":"f","fortran-free-form":"f90",fs:"fs",fsharp:"fs",fsl:"fsl",ftl:"ftl",gdresource:"tres",gdscript:"gd",gdshader:"gdshader",genie:"gs",gherkin:"feature","git-commit":"gitcommit","git-rebase":"gitrebase",gjs:"js",gleam:"gleam","glimmer-js":"js","glimmer-ts":"ts",glsl:"glsl",gnuplot:"plt",go:"go",gql:"gql",graphql:"graphql",groovy:"groovy",gts:"gts",hack:"hack",haml:"haml",handlebars:"hbs",haskell:"hs",haxe:"hx",hbs:"hbs",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",hs:"hs",html:"html","html-derivative":"html",http:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",jade:"jade",java:"java",javascript:"js",jinja:"jinja",jison:"jison",jl:"jl",js:"js",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",julia:"jl",kotlin:"kt",kql:"kql",kt:"kt",kts:"kts",kusto:"kql",latex:"tex",lean:"lean",lean4:"lean",less:"less",liquid:"liquid",lisp:"lisp",lit:"lit",llvm:"ll",log:"log",logo:"logo",lua:"lua",luau:"luau",make:"mak",makefile:"mak",markdown:"md",marko:"marko",matlab:"m",md:"md",mdc:"mdc",mdx:"mdx",mediawiki:"wiki",mermaid:"mmd",mips:"s",mipsasm:"s",mmd:"mmd",mojo:"mojo",move:"move",nar:"nar",narrat:"narrat",nextflow:"nf",nf:"nf",nginx:"conf",nim:"nim",nix:"nix",nu:"nu",nushell:"nu",objc:"m","objective-c":"m","objective-cpp":"mm",ocaml:"ml",pascal:"pas",perl:"pl",perl6:"p6",php:"php",plsql:"pls",po:"po",polar:"polar",postcss:"pcss",pot:"pot",potx:"potx",powerquery:"pq",powershell:"ps1",prisma:"prisma",prolog:"pl",properties:"properties",proto:"proto",protobuf:"proto",ps:"ps",ps1:"ps1",pug:"pug",puppet:"pp",purescript:"purs",py:"py",python:"py",ql:"ql",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",racket:"rkt",raku:"raku",razor:"cshtml",rb:"rb",reg:"reg",regex:"regex",regexp:"regexp",rel:"rel",riscv:"s",rs:"rs",rst:"rst",ruby:"rb",rust:"rs",sas:"sas",sass:"sass",scala:"scala",scheme:"scm",scss:"scss",sdbl:"sdbl",sh:"sh",shader:"shader",shaderlab:"shader",shell:"sh",shellscript:"sh",shellsession:"sh",smalltalk:"st",solidity:"sol",soy:"soy",sparql:"rq",spl:"spl",splunk:"spl",sql:"sql","ssh-config":"config",stata:"do",styl:"styl",stylus:"styl",svelte:"svelte",swift:"swift","system-verilog":"sv",systemd:"service",talon:"talon",talonscript:"talon",tasl:"tasl",tcl:"tcl",templ:"templ",terraform:"tf",tex:"tex",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"ts","ts-tags":"ts",tsp:"tsp",tsv:"tsv",tsx:"tsx",turtle:"ttl",twig:"twig",typ:"typ",typescript:"ts",typespec:"tsp",typst:"typ",v:"v",vala:"vala",vb:"vb",verilog:"v",vhdl:"vhdl",vim:"vim",viml:"vim",vimscript:"vim",vue:"vue","vue-html":"html","vue-vine":"vine",vy:"vy",vyper:"vy",wasm:"wasm",wenyan:"wy",wgsl:"wgsl",wiki:"wiki",wikitext:"wiki",wit:"wit",wl:"wl",wolfram:"wl",xml:"xml",xsl:"xsl",yaml:"yaml",yml:"yml",zenscript:"zs",zig:"zig",zsh:"zsh",文言:"wy"},jct=({onDownload:t,onError:e,language:r,children:n,className:i,code:a,...s})=>{let o=vr(),{code:l}=ghe(),{isAnimating:c}=k.useContext(Os),u=du(),d=Ko(),m=a??l,p=`file.${r&&r in QU?QU[r]:"txt"}`,y="text/plain",b=()=>{try{V0(p,m,y),t==null||t()}catch(v){e==null||e(v)}};return T.jsx("button",{className:o("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),"data-streamdown":"code-block-download-button",disabled:c,onClick:b,title:u.downloadFile,type:"button",...s,children:n??T.jsx(d.DownloadIcon,{size:14})})},JU=()=>{let{Loader2Icon:t}=Ko(),e=vr();return T.jsxs("div",{className:e("w-full divide-y divide-border overflow-hidden rounded-xl border border-border"),children:[T.jsx("div",{className:e("h-[46px] w-full bg-muted/80")}),T.jsx("div",{className:e("flex w-full items-center justify-center p-4"),children:T.jsx(t,{className:e("size-4 animate-spin")})})]})},Hct=/\.[^/.]+$/,Vct=({node:t,className:e,src:r,alt:n,onLoad:i,onError:a,...s})=>{let{DownloadIcon:o}=Ko(),l=vr(),c=k.useRef(null),[u,d]=k.useState(!1),[m,p]=k.useState(!1),y=du(),b=s.width!=null||s.height!=null,v=(u||b)&&!m,_=m&&!b;k.useEffect(()=>{let D=c.current;if(D!=null&&D.complete){let L=D.naturalWidth>0;d(L),p(!L)}},[]);let w=k.useCallback(D=>{d(!0),p(!1),i==null||i(D)},[i]),C=k.useCallback(D=>{d(!1),p(!0),a==null||a(D)},[a]),E=async()=>{if(r)try{let D=await(await fetch(r)).blob(),L=new URL(r,window.location.origin).pathname.split("/").pop()||"",R=L.split(".").pop(),N=L.includes(".")&&R!==void 0&&R.length<=4,H="";if(N)H=L;else{let $=D.type,U="png";$.includes("jpeg")||$.includes("jpg")?U="jpg":$.includes("png")?U="png":$.includes("svg")?U="svg":$.includes("gif")?U="gif":$.includes("webp")&&(U="webp"),H=`${(n||L||"image").replace(Hct,"")}.${U}`}V0(H,D,D.type)}catch{window.open(r,"_blank")}};return r?T.jsxs("div",{className:l("group relative my-4 inline-block"),"data-streamdown":"image-wrapper",children:[T.jsx("img",{alt:n,className:l("max-w-full rounded-lg",_&&"hidden",e),"data-streamdown":"image",onError:C,onLoad:w,ref:c,src:r,...s}),_&&T.jsx("span",{className:l("text-muted-foreground text-xs italic"),"data-streamdown":"image-fallback",children:y.imageNotAvailable}),T.jsx("div",{className:l("pointer-events-none absolute inset-0 hidden rounded-lg bg-black/10 group-hover:block")}),v&&T.jsx("button",{className:l("absolute right-2 bottom-2 flex h-8 w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 hover:bg-background","opacity-0 group-hover:opacity-100"),onClick:E,title:y.downloadImage,type:"button",children:T.jsx(o,{size:14})})]}):null},Zy=0,dR=()=>{Zy+=1,Zy===1&&(document.body.style.overflow="hidden")},fR=()=>{Zy=Math.max(0,Zy-1),Zy===0&&(document.body.style.overflow="")},Uct=({url:t,isOpen:e,onClose:r,onConfirm:n})=>{let{CheckIcon:i,CopyIcon:a,ExternalLinkIcon:s,XIcon:o}=Ko(),l=vr(),[c,u]=k.useState(!1),d=du(),m=k.useCallback(async()=>{try{await navigator.clipboard.writeText(t),u(!0),setTimeout(()=>u(!1),2e3)}catch{}},[t]),p=k.useCallback(()=>{n(),r()},[n,r]);return k.useEffect(()=>{if(e){dR();let y=b=>{b.key==="Escape"&&r()};return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y),fR()}}},[e,r]),e?T.jsx("div",{className:l("fixed inset-0 z-50 flex items-center justify-center bg-background/50 backdrop-blur-sm"),"data-streamdown":"link-safety-modal",onClick:r,onKeyDown:y=>{y.key==="Escape"&&r()},role:"button",tabIndex:0,children:T.jsxs("div",{className:l("relative mx-4 flex w-full max-w-md flex-col gap-4 rounded-xl border bg-background p-6 shadow-lg"),onClick:y=>y.stopPropagation(),onKeyDown:y=>y.stopPropagation(),role:"presentation",children:[T.jsx("button",{className:l("absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:r,title:d.close,type:"button",children:T.jsx(o,{size:16})}),T.jsxs("div",{className:l("flex flex-col gap-2"),children:[T.jsxs("div",{className:l("flex items-center gap-2 font-semibold text-lg"),children:[T.jsx(s,{size:20}),T.jsx("span",{children:d.openExternalLink})]}),T.jsx("p",{className:l("text-muted-foreground text-sm"),children:d.externalLinkWarning})]}),T.jsx("div",{className:l("break-all rounded-md bg-muted p-3 font-mono text-sm",t.length>100&&"max-h-32 overflow-y-auto"),children:t}),T.jsxs("div",{className:l("flex gap-2"),children:[T.jsx("button",{className:l("flex flex-1 items-center justify-center gap-2 rounded-md border bg-background px-4 py-2 font-medium text-sm transition-all hover:bg-muted"),onClick:m,type:"button",children:c?T.jsxs(T.Fragment,{children:[T.jsx(i,{size:14}),T.jsx("span",{children:d.copied})]}):T.jsxs(T.Fragment,{children:[T.jsx(a,{size:14}),T.jsx("span",{children:d.copyLink})]})}),T.jsxs("button",{className:l("flex flex-1 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 font-medium text-primary-foreground text-sm transition-all hover:bg-primary/90"),onClick:p,type:"button",children:[T.jsx(s,{size:14}),T.jsx("span",{children:d.openLink})]})]})]})}):null},b7=k.createContext(null),pR=()=>k.useContext(b7),qvt=()=>{var t;let e=pR();return(t=e==null?void 0:e.code)!=null?t:null},mR=()=>{var t;let e=pR();return(t=e==null?void 0:e.mermaid)!=null?t:null},qct=t=>{var e;let r=pR();return r!=null&&r.renderers&&t&&(e=r.renderers.find(n=>Array.isArray(n.language)?n.language.includes(t):n.language===t))!=null?e:null},Gct=(t,e)=>{var r;let n=(r=void 0)!=null?r:5;return new Promise((i,a)=>{let s="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(t))),o=new Image;o.crossOrigin="anonymous",o.onload=()=>{let l=document.createElement("canvas"),c=o.width*n,u=o.height*n;l.width=c,l.height=u;let d=l.getContext("2d");if(!d){a(new Error("Failed to create 2D canvas context for PNG export"));return}d.drawImage(o,0,0,c,u),l.toBlob(m=>{if(!m){a(new Error("Failed to create PNG blob"));return}i(m)},"image/png")},o.onerror=()=>a(new Error("Failed to load SVG image")),o.src=s})},Wct=({chart:t,children:e,className:r,onDownload:n,config:i,onError:a})=>{let s=vr(),[o,l]=k.useState(!1),c=k.useRef(null),{isAnimating:u}=k.useContext(Os),d=Ko(),m=mR(),p=du(),y=async b=>{try{if(b==="mmd"){V0("diagram.mmd",t,"text/plain"),l(!1),n==null||n(b);return}if(!m){a==null||a(new Error("Mermaid plugin not available"));return}let v=m.getMermaid(i),_=t.split("").reduce((E,D)=>(E<<5)-E+D.charCodeAt(0)|0,0),w=`mermaid-${Math.abs(_)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:C}=await v.render(w,t);if(!C){a==null||a(new Error("SVG not found. Please wait for the diagram to render."));return}if(b==="svg"){V0("diagram.svg",C,"image/svg+xml"),l(!1),n==null||n(b);return}if(b==="png"){let E=await Gct(C);V0("diagram.png",E,"image/png"),n==null||n(b),l(!1);return}}catch(v){a==null||a(v)}};return k.useEffect(()=>{let b=v=>{let _=v.composedPath();c.current&&!_.includes(c.current)&&l(!1)};return document.addEventListener("mousedown",b),()=>{document.removeEventListener("mousedown",b)}},[]),T.jsxs("div",{className:s("relative"),ref:c,children:[T.jsx("button",{className:s("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),disabled:u,onClick:()=>l(!o),title:p.downloadDiagram,type:"button",children:e??T.jsx(d.DownloadIcon,{size:14})}),o?T.jsxs("div",{className:s("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[T.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>y("svg"),title:p.downloadDiagramAsSvg,type:"button",children:p.mermaidFormatSvg}),T.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>y("png"),title:p.downloadDiagramAsPng,type:"button",children:p.mermaidFormatPng}),T.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>y("mmd"),title:p.downloadDiagramAsMmd,type:"button",children:p.mermaidFormatMmd})]}):null]})},Yct=({chart:t,config:e,onFullscreen:r,onExit:n,className:i,...a})=>{let{Maximize2Icon:s,XIcon:o}=Ko(),l=vr(),[c,u]=k.useState(!1),{isAnimating:d,controls:m}=k.useContext(Os),p=du(),y=(()=>{if(typeof m=="boolean")return m;let v=m.mermaid;return v===!1?!1:v===!0||v===void 0?!0:v.panZoom!==!1})(),b=()=>{u(!c)};return k.useEffect(()=>{if(c){dR();let v=_=>{_.key==="Escape"&&u(!1)};return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v),fR()}}},[c]),k.useEffect(()=>{c?r==null||r():n&&n()},[c,r,n]),T.jsxs(T.Fragment,{children:[T.jsx("button",{className:l("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",i),disabled:d,onClick:b,title:p.viewFullscreen,type:"button",...a,children:T.jsx(s,{size:14})}),c?sd.createPortal(T.jsxs("div",{className:l("fixed inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-sm"),onClick:b,onKeyDown:v=>{v.key==="Escape"&&b()},role:"button",tabIndex:0,children:[T.jsx("button",{className:l("absolute top-4 right-4 z-10 rounded-md p-2 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:b,title:p.exitFullscreen,type:"button",children:T.jsx(o,{size:20})}),T.jsx("div",{className:l("flex size-full items-center justify-center p-4"),onClick:v=>v.stopPropagation(),onKeyDown:v=>v.stopPropagation(),role:"presentation",children:T.jsx(Qhe,{chart:t,className:l("size-full [&_svg]:h-auto [&_svg]:w-auto"),config:e,fullscreen:!0,showControls:y})})]}),document.body):null]})},vhe=t=>{var e,r;let n=[],i=[],a=t.querySelectorAll("thead th");for(let o of a)n.push(((e=o.textContent)==null?void 0:e.trim())||"");let s=t.querySelectorAll("tbody tr");for(let o of s){let l=[],c=o.querySelectorAll("td");for(let u of c)l.push(((r=u.textContent)==null?void 0:r.trim())||"");i.push(l)}return{headers:n,rows:i}},xhe=t=>{let{headers:e,rows:r}=t,n=o=>{let l=!1,c=!1;for(let u of o){if(u==='"'){l=!0,c=!0;break}(u===","||u===`
|
|
1267
1267
|
`)&&(l=!0)}return l?c?`"${o.replace(/"/g,'""')}"`:`"${o}"`:o},i=e.length>0?r.length+1:r.length,a=new Array(i),s=0;e.length>0&&(a[s]=e.map(n).join(","),s+=1);for(let o of r)a[s]=o.map(n).join(","),s+=1;return a.join(`
|
|
1268
1268
|
`)},Zct=t=>{let{headers:e,rows:r}=t,n=o=>{let l=!1;for(let u of o)if(u===" "||u===`
|
|
@@ -1281,7 +1281,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let i="<p>An error
|
|
|
1281
1281
|
`)?"":`
|
|
1282
1282
|
`);return`${s}${u}${l}
|
|
1283
1283
|
|
|
1284
|
-
`})}return r},Dut=/([\\`*_~[\]|])/g,Lut=t=>t.replace(Dut,"\\$1"),Iut=(t,e)=>{if(!e.length)return t;let r=t;for(let n of e){let i=new RegExp(`(<${n}(?=[\\s>/])[^>]*>)([\\s\\S]*?)(</${n}\\s*>)`,"gi");r=r.replace(i,(a,s,o,l)=>{let c=Lut(o).replace(/\n\n/g," ");return s+c+l})}return r},Yhe=t=>t.type==="text"?t.value:"children"in t&&Array.isArray(t.children)?t.children.map(Yhe).join(""):"",Rut=t=>e=>{if(!t||t.length===0)return;let r=new Set(t.map(n=>n.toLowerCase()));Vo(e,"element",n=>{if(r.has(n.tagName.toLowerCase())){let i=Yhe(n);n.children=i?[{type:"text",value:i}]:[]}})},Out=()=>t=>{Vo(t,"code",e=>{var r,n;e.meta&&(e.data=(r=e.data)!=null?r:{},e.data.hProperties={...(n=e.data.hProperties)!=null?n:{},metastring:e.meta})})},Nut=/^[ \t]*<[\w!/?-]/,Mut=/(^|\n)[ \t]{4,}(?=<[\w!/?-])/g,Put=t=>typeof t!="string"||t.length===0||!Nut.test(t)?t:t.replace(Mut,"$1"),uq,hq,dq,fq,nw={...Kd,protocols:{...Kd.protocols,href:[...(hq=(uq=Kd.protocols)==null?void 0:uq.href)!=null?hq:[],"tel"]},attributes:{...Kd.attributes,code:[...(fq=(dq=Kd.attributes)==null?void 0:dq.code)!=null?fq:[],"metastring"]}},_7={raw:a7,sanitize:[iue,nw],harden:[QKe,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:!0}]},But={gfm:[Kit,{}],codeMeta:Out},pq=Object.values(_7),Fut=Object.values(But),$ut={block:" ▋",circle:" ●"},Zhe=["github-light","github-dark"],Xhe={enabled:!0},zut={shikiTheme:Zhe,controls:!0,isAnimating:!1,lineNumbers:!0,mode:"streaming",mermaid:void 0,linkSafety:Xhe},Os=k.createContext(zut),Khe=k.memo(({content:t,shouldParseIncompleteMarkdown:e,shouldNormalizeHtmlIndentation:r,index:n,isIncomplete:i,dir:a,animatePlugin:s,...o})=>{if(s){let u=s.getLastRenderCharCount();s.setPrevContentLength(u)}let l=typeof t=="string"&&r?Put(t):t,c=T.jsx(Whe,{...o,children:l});return T.jsx(phe.Provider,{value:i,children:a?T.jsx("div",{dir:a,style:{display:"contents"},children:c}):c})},(t,e)=>{if(t.content!==e.content||t.shouldNormalizeHtmlIndentation!==e.shouldNormalizeHtmlIndentation||t.index!==e.index||t.isIncomplete!==e.isIncomplete||t.dir!==e.dir)return!1;if(t.components!==e.components){let r=Object.keys(t.components||{}),n=Object.keys(e.components||{});if(r.length!==n.length||r.some(i=>{var a,s;return((a=t.components)==null?void 0:a[i])!==((s=e.components)==null?void 0:s[i])}))return!1}return!(t.rehypePlugins!==e.rehypePlugins||t.remarkPlugins!==e.remarkPlugins)});Khe.displayName="Block";var yR=k.memo(({children:t,mode:e="streaming",dir:r,parseIncompleteMarkdown:n=!0,normalizeHtmlIndentation:i=!1,components:a,rehypePlugins:s=pq,remarkPlugins:o=Fut,className:l,shikiTheme:c=Zhe,mermaid:u,controls:d=!0,isAnimating:m=!1,animated:p,BlockComponent:y=Khe,parseMarkdownIntoBlocksFn:b=Eut,caret:v,plugins:_,remend:w,linkSafety:C=Xhe,lineNumbers:E=!0,allowedTags:D,literalTagContent:L,translations:R,icons:N,prefix:H,onAnimationStart:$,onAnimationEnd:U,...K})=>{let se=k.useId(),[q,j]=k.useTransition(),F=k.useMemo(()=>_ct(H),[H]),W=k.useRef(null),X=k.useRef($),de=k.useRef(U);X.current=$,de.current=U,k.useEffect(()=>{var ut,qt,Tr;if(e==="static")return;let vn=W.current;if(W.current=m,vn===null){m&&((ut=X.current)==null||ut.call(X));return}m&&!vn?(qt=X.current)==null||qt.call(X):!m&&vn&&((Tr=de.current)==null||Tr.call(de))},[m,e]);let G=k.useMemo(()=>D?Object.keys(D):[],[D]),Q=k.useMemo(()=>{if(typeof t!="string")return"";let ut=e==="streaming"&&n?lst(t,w):t;return L&&L.length>0&&(ut=Iut(ut,L)),G.length>0&&(ut=Aut(ut,G)),ut},[t,e,n,w,G,L]),ee=k.useMemo(()=>b(Q),[Q,b]),[V,ne]=k.useState(ee);k.useEffect(()=>{e==="streaming"&&!Te?j(()=>{ne(ee)}):ne(ee)},[ee,e]);let ie=e==="streaming"?V:ee,ce=k.useMemo(()=>r==="auto"?ie.map(tq):void 0,[ie,r]),ge=k.useMemo(()=>ie.map((ut,qt)=>`${se}-${qt}`),[ie.length,se]),Le=k.useMemo(()=>p===!0?"true":p?JSON.stringify(p):"",[p]),Te=k.useMemo(()=>Le?Le==="true"?m7():m7(p):null,[Le]),Ee=k.useMemo(()=>{var ut,qt;return{shikiTheme:(qt=(ut=_==null?void 0:_.code)==null?void 0:ut.getThemes())!=null?qt:c,controls:d,isAnimating:m,lineNumbers:E,mode:e,mermaid:u,linkSafety:C}},[c,d,m,E,e,u,C,_==null?void 0:_.code]),Ne=k.useMemo(()=>R?JSON.stringify(R):"",[R]),Ge=k.useMemo(()=>({...bhe,...R}),[Ne]),ct=k.useMemo(()=>{let{inlineCode:ut,...qt}=a??{},Tr={...iut,...qt};if(ut){let vn=Tr.code;Tr.code=oi=>"data-block"in oi?vn?k.createElement(vn,oi):null:k.createElement(ut,oi)}return Tr},[a]),ot=k.useMemo(()=>{let ut=[];return _!=null&&_.cjk&&(ut=[...ut,..._.cjk.remarkPluginsBefore]),ut=[...ut,...o],_!=null&&_.cjk&&(ut=[...ut,..._.cjk.remarkPluginsAfter]),_!=null&&_.math&&(ut=[...ut,_.math.remarkPlugin]),ut},[o,_==null?void 0:_.math,_==null?void 0:_.cjk]),Kt=k.useMemo(()=>{var ut;let qt=s;if(D&&Object.keys(D).length>0&&s===pq){let Tr={...nw,tagNames:[...(ut=nw.tagNames)!=null?ut:[],...Object.keys(D)],attributes:{...nw.attributes,...D}};qt=[_7.raw,[iue,Tr],_7.harden]}return L&&L.length>0&&(qt=[...qt,[Rut,L]]),_!=null&&_.math&&(qt=[...qt,_.math.rehypePlugin]),Te&&m&&(qt=[...qt,Te.rehypePlugin]),qt},[s,_==null?void 0:_.math,Te,m,D,L]),Rr=k.useMemo(()=>{if(!m||ie.length===0)return!1;let ut=ie.at(-1);return rq(ut)||cut(ut)},[m,ie]),Yr=k.useMemo(()=>v&&m&&!Rr?{"--streamdown-caret":`"${$ut[v]}"`}:void 0,[v,m,Rr]);return e==="static"?T.jsx(y7.Provider,{value:Ge,children:T.jsx(b7.Provider,{value:_??null,children:T.jsx(Os.Provider,{value:Ee,children:T.jsx(XU,{icons:N,children:T.jsx(g7.Provider,{value:F,children:T.jsx("div",{className:F("space-y-4 whitespace-normal [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",l),dir:r==="auto"?tq(Q):r,children:T.jsx(Whe,{components:ct,rehypePlugins:Kt,remarkPlugins:ot,...K,children:Q})})})})})})}):T.jsx(y7.Provider,{value:Ge,children:T.jsx(b7.Provider,{value:_??null,children:T.jsx(Os.Provider,{value:Ee,children:T.jsx(XU,{icons:N,children:T.jsx(g7.Provider,{value:F,children:T.jsxs("div",{className:F("space-y-4 whitespace-normal [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",v&&!Rr?"[&>*:last-child]:after:inline [&>*:last-child]:after:align-baseline [&>*:last-child]:after:content-[var(--streamdown-caret)]":null,l),style:Yr,children:[ie.length===0&&v&&m&&T.jsx("span",{}),ie.map((ut,qt)=>{var Tr;let vn=qt===ie.length-1,oi=m&&vn&&rq(ut);return T.jsx(y,{animatePlugin:Te,components:ct,content:ut,dir:(Tr=ce==null?void 0:ce[qt])!=null?Tr:r!=="auto"?r:void 0,index:qt,isIncomplete:oi,rehypePlugins:Kt,remarkPlugins:ot,shouldNormalizeHtmlIndentation:i,shouldParseIncompleteMarkdown:n,...K},ge[qt])})]})})})})})})},(t,e)=>t.children===e.children&&t.shikiTheme===e.shikiTheme&&t.isAnimating===e.isAnimating&&t.animated===e.animated&&t.mode===e.mode&&t.plugins===e.plugins&&t.className===e.className&&t.linkSafety===e.linkSafety&&t.lineNumbers===e.lineNumbers&&t.normalizeHtmlIndentation===e.normalizeHtmlIndentation&&t.literalTagContent===e.literalTagContent&&JSON.stringify(t.translations)===JSON.stringify(e.translations)&&t.prefix===e.prefix&&t.dir===e.dir);yR.displayName="Streamdown";var jut=({children:t,className:e,minZoom:r=.5,maxZoom:n=3,zoomStep:i=.1,showControls:a=!0,initialZoom:s=1,fullscreen:o=!1})=>{let{RotateCcwIcon:l,ZoomInIcon:c,ZoomOutIcon:u}=Ko(),d=vr(),m=k.useRef(null),p=k.useRef(null),[y,b]=k.useState(s),[v,_]=k.useState({x:0,y:0}),[w,C]=k.useState(!1),[E,D]=k.useState({x:0,y:0}),[L,R]=k.useState({x:0,y:0}),N=k.useCallback(F=>{b(W=>Math.max(r,Math.min(n,W+F)))},[r,n]),H=k.useCallback(()=>{N(i)},[N,i]),$=k.useCallback(()=>{N(-i)},[N,i]),U=k.useCallback(()=>{b(s),_({x:0,y:0})},[s]),K=k.useCallback(F=>{F.preventDefault();let W=F.deltaY>0?-i:i;N(W)},[N,i]),se=k.useCallback(F=>{if(F.button!==0||F.isPrimary===!1)return;C(!0),D({x:F.clientX,y:F.clientY}),R(v);let W=F.currentTarget;W instanceof HTMLElement&&W.setPointerCapture(F.pointerId)},[v]),q=k.useCallback(F=>{if(!w)return;F.preventDefault();let W=F.clientX-E.x,X=F.clientY-E.y;_({x:L.x+W,y:L.y+X})},[w,E,L]),j=k.useCallback(F=>{C(!1);let W=F.currentTarget;W instanceof HTMLElement&&W.releasePointerCapture(F.pointerId)},[]);return k.useEffect(()=>{let F=m.current;if(F)return F.addEventListener("wheel",K,{passive:!1}),()=>{F.removeEventListener("wheel",K)}},[K]),k.useEffect(()=>{let F=p.current;if(F&&w)return document.body.style.userSelect="none",F.addEventListener("pointermove",q,{passive:!1}),F.addEventListener("pointerup",j),F.addEventListener("pointercancel",j),()=>{document.body.style.userSelect="",F.removeEventListener("pointermove",q),F.removeEventListener("pointerup",j),F.removeEventListener("pointercancel",j)}},[w,q,j]),T.jsxs("div",{className:d("relative flex flex-col",o?"h-full w-full":"min-h-28 w-full",e),ref:m,style:{cursor:w?"grabbing":"grab"},children:[a?T.jsxs("div",{className:d("absolute z-10 flex flex-col gap-1 rounded-md border border-border bg-background/80 p-1 supports-[backdrop-filter]:bg-background/70 supports-[backdrop-filter]:backdrop-blur-sm",o?"bottom-4 left-4":"bottom-2 left-2"),children:[T.jsx("button",{className:d("flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50"),disabled:y>=n,onClick:H,title:"Zoom in",type:"button",children:T.jsx(c,{size:16})}),T.jsx("button",{className:d("flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50"),disabled:y<=r,onClick:$,title:"Zoom out",type:"button",children:T.jsx(u,{size:16})}),T.jsx("button",{className:d("flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground"),onClick:U,title:"Reset zoom and pan",type:"button",children:T.jsx(l,{size:16})})]}):null,T.jsx("div",{className:d("flex-1 origin-center transition-transform duration-150 ease-out",o?"flex h-full w-full items-center justify-center":"flex w-full items-center justify-center"),onPointerDown:se,ref:p,role:"application",style:{transform:`translate(${v.x}px, ${v.y}px) scale(${y})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:t})]})},Qhe=({chart:t,className:e,config:r,fullscreen:n=!1,showControls:i=!0})=>{let a=vr(),[s,o]=k.useState(null),[l,c]=k.useState(!1),[u,d]=k.useState(""),[m,p]=k.useState(""),[y,b]=k.useState(0),{mermaid:v}=k.useContext(Os),_=mR(),w=v==null?void 0:v.errorComponent,{shouldRender:C,containerRef:E}=cct({immediate:n});if(k.useEffect(()=>{if(C){if(!_){o("Mermaid plugin not available. Please add the mermaid plugin to enable diagram rendering.");return}(async()=>{try{o(null),c(!0);let L=_.getMermaid(r),R=t.split("").reduce(($,U)=>($<<5)-$+U.charCodeAt(0)|0,0),N=`mermaid-${Math.abs(R)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:H}=await L.render(N,t);d(H),p(H)}catch(L){if(!(m||u)){let R=L instanceof Error?L.message:"Failed to render Mermaid chart";o(R)}}finally{c(!1)}})()}},[t,r,y,C,_]),!(C||u||m))return T.jsx("div",{className:a("my-4 min-h-[200px]",e),ref:E});if(l&&!u&&!m)return T.jsx("div",{className:a("my-4 flex justify-center p-4",e),ref:E,children:T.jsxs("div",{className:a("flex items-center space-x-2 text-muted-foreground"),children:[T.jsx("div",{className:a("h-4 w-4 animate-spin rounded-full border-current border-b-2")}),T.jsx("span",{className:a("text-sm"),children:"Loading diagram..."})]})});if(s&&!u&&!m){let L=()=>b(R=>R+1);return w?T.jsx("div",{ref:E,children:T.jsx(w,{chart:t,error:s,retry:L})}):T.jsxs("div",{className:a("rounded-md bg-red-50 p-4",e),ref:E,children:[T.jsxs("p",{className:a("font-mono text-red-700 text-sm"),children:["Mermaid Error: ",s]}),T.jsxs("details",{className:a("mt-2"),children:[T.jsx("summary",{className:a("cursor-pointer text-red-600 text-xs"),children:"Show Code"}),T.jsx("pre",{className:a("mt-2 overflow-x-auto rounded bg-red-100 p-2 text-red-800 text-xs"),children:t})]})]})}let D=u||m;return T.jsx("div",{className:a("size-full",e),"data-streamdown":"mermaid",ref:E,children:T.jsx(jut,{className:a(n?"size-full overflow-hidden":"overflow-hidden",e),fullscreen:n,maxZoom:3,minZoom:.5,showControls:i,zoomStep:.1,children:T.jsx("div",{"aria-label":"Mermaid chart",className:a("flex justify-center",n?"size-full items-center":null),dangerouslySetInnerHTML:{__html:D},role:"img"})})})};let Hut="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",mq=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=Hut[r[t]&63];return e};function Je(...t){return xT(Km(t))}function Jhe({count:t,activeIdx:e,setActiveIdx:r,listRef:n,onSelect:i,onDismiss:a}){const s=k.useRef(i),o=k.useRef(a);k.useEffect(()=>{s.current=i},[i]),k.useEffect(()=>{o.current=a},[a]),k.useEffect(()=>{const l=c=>{c.key==="ArrowDown"?(c.preventDefault(),r(u=>Math.min(u+1,t-1))):c.key==="ArrowUp"?(c.preventDefault(),r(u=>Math.max(u-1,0))):c.key==="Enter"||c.key==="Tab"?(c.preventDefault(),s.current(e)):c.key==="Escape"&&(c.preventDefault(),o.current())};return window.addEventListener("keydown",l,{capture:!0}),()=>window.removeEventListener("keydown",l,{capture:!0})},[t,e,r]),k.useEffect(()=>{var c;const l=(c=n.current)==null?void 0:c.children[e];l==null||l.scrollIntoView({block:"nearest"})},[e,n])}function Vut(t,e){if(!e)return null;const r=t.toLowerCase().indexOf(e.toLowerCase());return r===-1?null:{before:t.slice(0,r),match:t.slice(r,r+e.length),after:t.slice(r+e.length)}}function Uut({mention:t,onSelect:e,onDismiss:r,apiBaseUrl:n=""}){const[i,a]=k.useState([]),[s,o]=k.useState(0),l=k.useRef(null);k.useEffect(()=>{o(0);const u=new AbortController,d=setTimeout(()=>{fetch(`${n}/api/v1/files/search?q=${encodeURIComponent(t.query||"*")}&limit=8`,{signal:u.signal}).then(m=>m.ok?m.json():null).then(m=>{m!=null&&m.results&&a(m.results.slice(0,8))}).catch(()=>{})},120);return()=>{clearTimeout(d),u.abort()}},[t.query,n]);const c=k.useCallback(u=>{i[u]&&e(i[u])},[i,e]);return Jhe({count:i.length,activeIdx:s,setActiveIdx:o,listRef:l,onSelect:c,onDismiss:r}),i.length===0?null:T.jsx("div",{className:"mb-1 w-full overflow-hidden rounded-lg border border-border/60 bg-popover shadow-lg",children:T.jsx("ul",{ref:l,className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"File suggestions",children:i.map((u,d)=>{const m=u.split("/").pop()??u,p=Vut(m,t.query);return T.jsxs("li",{role:"option","aria-selected":d===s,className:Je("flex cursor-pointer flex-col gap-0.5 px-3 py-1.5 text-[12px]",d===s?"bg-accent/10 text-foreground":"text-muted-foreground hover:bg-muted/40"),onMouseEnter:()=>o(d),onMouseDown:y=>{y.preventDefault(),e(u)},children:[T.jsx("span",{className:"font-medium",children:p?T.jsxs(T.Fragment,{children:[p.before,T.jsx("mark",{className:"bg-transparent text-[color:var(--accent)]",children:p.match}),p.after]}):m}),T.jsx("span",{className:"truncate text-[11px] opacity-50",children:u})]},u)})})})}function qut(t,e){const r=t.slice(0,e),n=r.match(/(^|[\s\n])@(\S*)$/);if(!n)return null;const i=r.lastIndexOf("@");return{query:n[2],anchorStart:i,anchorEnd:e}}function Gut({query:t,commands:e,onSelect:r,onDismiss:n}){const i=k.useMemo(()=>e.filter(c=>c.name.toLowerCase().startsWith(t.toLowerCase())),[e,t]),[a,s]=k.useState(0),o=k.useRef(null);k.useEffect(()=>s(0),[i.length]);const l=k.useCallback(c=>{i[c]&&r(i[c].name)},[i,r]);return Jhe({count:i.length,activeIdx:a,setActiveIdx:s,listRef:o,onSelect:l,onDismiss:n}),i.length===0?null:T.jsx("div",{className:"mb-1 w-full overflow-hidden rounded-lg border border-border/60 bg-popover shadow-lg",children:T.jsx("ul",{ref:o,className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Commands",children:i.map((c,u)=>T.jsxs("li",{role:"option","aria-selected":u===a,className:Je("flex cursor-pointer flex-col gap-0.5 px-3 py-1.5 text-[12px]",u===a?"bg-accent/10 text-foreground":"text-muted-foreground hover:bg-muted/40"),onMouseEnter:()=>s(u),onMouseDown:d=>{d.preventDefault(),r(c.name)},children:[T.jsxs("span",{className:"font-medium text-foreground/80",children:["/",c.name]}),T.jsx("span",{className:"truncate text-[11px] opacity-50",children:c.description})]},c.name))})})}function Wut(t){const{sessionId:e}=t,r=k.useRef(t);r.current=t;const n=k.useMemo(()=>new bY({api:"/api/v1/agent/chat",headers:()=>r.current.requestHeaders??{},body:()=>({sessionId:r.current.sessionId,model:r.current.model,thinkingLevel:r.current.thinkingLevel})}),[e]),i=mke({id:e,transport:n,resume:!0,onData:m=>{var p,y;(y=(p=r.current).onData)==null||y.call(p,m)}}),a=i.setMessages,s=e?`boring-agent:messages:${e}`:null,[o,l]=k.useState(!1);k.useEffect(()=>{if(!e||!s)return;let m=!1;l(!1);const p=()=>{var _;try{const w=(_=globalThis.localStorage)==null?void 0:_.getItem(s);if(!w)return;const C=JSON.parse(w);Array.isArray(C)&&C.length>0&&a(C)}catch{}},y=r.current.requestHeaders?{headers:r.current.requestHeaders}:void 0,b=`/api/v1/agent/chat/${encodeURIComponent(e)}/messages`;return(y?fetch(b,y):fetch(b)).then(_=>_.ok?_.json():null).then(_=>{if(m)return;const w=_==null?void 0:_.messages;if(Array.isArray(w)&&w.length>0){a(w);return}p()}).catch(()=>{m||p()}).finally(()=>{m||l(!0)}),()=>{m=!0}},[e,s,a]);const c=i.messages;k.useEffect(()=>{var m;if(!(!o||!s))try{(m=globalThis.localStorage)==null||m.setItem(s,JSON.stringify(c))}catch{}},[o,s,c]);const u=i.status,d=k.useRef(u);return k.useEffect(()=>{const m=d.current;if(d.current=u,u!=="ready"||m!=="streaming"&&m!=="submitted"||!e||c.length===0)return;const p=`/api/v1/agent/chat/${encodeURIComponent(e)}/messages`;fetch(p,{method:"PUT",headers:{"Content-Type":"application/json",...r.current.requestHeaders},body:JSON.stringify({messages:c})}).catch(()=>{})},[e,u,c]),i}function Yut({value:t,label:e}){const[r,n]=k.useState(!1),i=k.useCallback(()=>{var s,o;const a=(o=(s=navigator.clipboard)==null?void 0:s.writeText)==null?void 0:o.bind(navigator.clipboard);a&&a(t).then(()=>{n(!0),window.setTimeout(()=>n(!1),1200)})},[t]);return T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:i,className:"text-muted-foreground/60","aria-label":e,title:e,children:r?T.jsx(M9,{className:"h-3 w-3"}):T.jsx(jT,{className:"h-3 w-3"})})}function gq({label:t,value:e}){return T.jsxs("div",{className:"rounded-md border border-border/40 bg-muted/20 p-2",children:[T.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2",children:[T.jsx("span",{className:"text-[10px] font-medium uppercase tracking-[0.16em] text-muted-foreground/80",children:t}),T.jsx(Yut,{value:e,label:`Copy ${t}`})]}),T.jsx("code",{className:"block break-all font-mono text-[11px] leading-relaxed text-foreground",children:e})]})}function Zut({sessionId:t}){const e=`pi --session ${t}`;return T.jsxs("div",{className:"flex flex-col gap-3 overflow-auto p-3 text-[11px] text-muted-foreground",children:[T.jsx("p",{children:"This web chat is backed by a pi session. Use the id below from the workspace root to resume the same conversation in a terminal."}),T.jsx(gq,{label:"Pi session id",value:t}),T.jsx(gq,{label:"Resume command",value:e}),T.jsxs("p",{className:"rounded-md border border-border/30 bg-muted/10 p-2 text-[10px] leading-relaxed text-muted-foreground/75",children:["Tip: ",T.jsx("code",{className:"font-mono text-foreground/80",children:"pi --continue"})," ","opens the most recent session for the current working directory. The explicit command above targets this session directly."]})]})}var Xut=2500,yq=20;function Kut({sessionId:t,requestHeaders:e}){const[r,n]=k.useState({kind:"loading"}),[i,a]=k.useState(0),s=k.useRef(0),o=k.useCallback(()=>{s.current=0,a(l=>l+1)},[]);return k.useEffect(()=>{let l=!1,c=null;n({kind:"loading"});const u=e?{headers:e}:void 0;return fetch(`/api/v1/agent/sessions/${encodeURIComponent(t)}/system-prompt`,u).then(async d=>{var y;if(l)return;if(d.ok){const b=await d.json();if(typeof b.systemPrompt=="string"){s.current=0,n({kind:"ok",text:b.systemPrompt});return}}const m=await d.json().catch(()=>null),p=((y=m==null?void 0:m.error)==null?void 0:y.message)??`HTTP ${d.status}`;d.status===404&&s.current<yq?(n({kind:"empty",reason:p}),c=setTimeout(()=>{l||(s.current++,a(b=>b+1))},Xut)):n(d.status===404?{kind:"empty",reason:p}:{kind:"error",reason:p})}).catch(d=>{l||n({kind:"error",reason:d instanceof Error?d.message:String(d)})}),()=>{l=!0,c&&clearTimeout(c)}},[t,e,i]),T.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[T.jsxs("div",{className:"shrink-0 flex items-center justify-between px-3 pt-2 pb-1 border-b border-border/40",children:[T.jsx("span",{className:"text-[10px] text-muted-foreground/80 font-mono",children:r.kind==="ok"?`${r.text.length.toLocaleString()} chars`:r.kind==="loading"?"loading…":r.kind==="empty"?`waiting for session · retry ${s.current}/${yq}`:"error"}),r.kind!=="loading"&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:o,className:"text-muted-foreground/60","aria-label":"Refresh system prompt",children:T.jsx(LJ,{className:"h-3 w-3"})})]}),(r.kind==="loading"||r.kind==="empty")&&T.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:r.kind==="loading"?"Loading…":r.reason}),r.kind==="error"&&T.jsx("p",{className:"text-[11px] text-destructive p-3",children:r.reason}),r.kind==="ok"&&T.jsx("pre",{className:"flex-1 overflow-auto px-3 py-2 font-mono text-[11px] leading-relaxed text-foreground whitespace-pre-wrap break-words",children:r.text})]})}function Qut(t){const e=t,r=(e==null?void 0:e.type)??"?";if(r==="text"){const n=String(e.text??"");return n.slice(0,80)+(n.length>80?"…":"")}if(r==="tool-invocation"){const n=e.toolInvocation,i=String((n==null?void 0:n.state)??"");return`${(n==null?void 0:n.toolName)??"?"}() · ${i}`}if(r==="reasoning"){const n=String(e.text??e.reasoning??"");return n.slice(0,80)+(n.length>80?"…":"")}return r}function Jut(t){const e=[];for(let r=0;r<t.length;r++){const n=t[r],i=n,a=i.createdAt?new Date(i.createdAt).toISOString().slice(11,23):null;for(let s=0;s<n.parts.length;s++){const o=n.parts[s];e.push({msgId:n.id,msgIndex:r,role:n.role,time:a,partIndex:s,partType:(o==null?void 0:o.type)??"unknown",part:o})}}return e}function eht({messages:t}){const e=Jut(t),[r,n]=k.useState(null),i=k.useRef(null),a=k.useRef(e.length);return k.useEffect(()=>{var s;e.length!==a.current&&((s=i.current)==null||s.scrollIntoView({behavior:"smooth"}),a.current=e.length)},[e.length]),e.length===0?T.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:"No messages yet."}):T.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[T.jsxs("div",{className:"shrink-0 px-3 pt-2 pb-1 text-[10px] text-muted-foreground/80 font-mono border-b border-border/40",children:[t.length," msg · ",e.length," parts"]}),T.jsxs("div",{className:"flex-1 overflow-auto",children:[e.map(s=>{const o=`${s.msgId}:${s.partIndex}`,l=r===o;return T.jsxs("div",{className:"border-b border-border/30 last:border-0",children:[T.jsxs(Nr,{type:"button",variant:"ghost",onClick:()=>n(l?null:o),className:"h-auto w-full justify-start gap-1.5 rounded-none px-2 py-1.5 text-left",children:[T.jsx("span",{className:"mt-0.5 shrink-0 text-muted-foreground/40",children:l?T.jsx(fv,{className:"h-3 w-3"}):T.jsx(pv,{className:"h-3 w-3"})}),T.jsx("span",{className:"font-mono text-[10px] shrink-0 w-20",children:s.time?T.jsx("span",{className:"text-muted-foreground/60",children:s.time}):T.jsxs("span",{className:"text-muted-foreground/30",children:["m",s.msgIndex]})}),T.jsx("span",{className:Je("shrink-0 font-mono text-[10px] w-14",s.role==="user"?"text-accent":"text-muted-foreground"),children:s.role}),T.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/60 w-24",children:s.partType}),T.jsx("span",{className:"flex-1 min-w-0 font-mono text-[11px] text-foreground truncate",children:Qut(s.part)})]}),l&&T.jsx("pre",{className:"px-3 pb-2 font-mono text-[10px] leading-relaxed text-foreground/80 whitespace-pre-wrap break-words bg-muted/20",children:JSON.stringify(s.part,null,2)})]},o)}),T.jsx("div",{ref:i})]})]})}var tht=[{id:"session",label:"Session"},{id:"prompt",label:"System prompt"},{id:"messages",label:"Messages"}],rht=280,nht=800;function iht({sessionId:t,messages:e,requestHeaders:r,width:n,onWidthChange:i}){const[a,s]=k.useState("session"),o=k.useCallback(l=>{l.preventDefault();const c=l.clientX,u=n,d=p=>{const y=c-p.clientX;i(Math.min(nht,Math.max(rht,u+y)))},m=()=>{window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",m)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",m)},[n,i]);return T.jsxs(T.Fragment,{children:[T.jsx("div",{onMouseDown:o,className:"w-1 shrink-0 cursor-col-resize hover:bg-accent/40 active:bg-accent/60 transition-colors","aria-hidden":!0}),T.jsx("aside",{style:{width:n},className:Je("flex h-full shrink-0 flex-col border-l border-border/60","bg-[oklch(from_var(--background)_calc(l-0.01)_c_h)]"),children:T.jsxs(fJ,{value:a,onValueChange:l=>s(l),className:"flex flex-col flex-1 min-h-0 overflow-hidden",children:[T.jsx("header",{className:"flex shrink-0 items-center gap-0 border-b border-border/60 px-1",children:T.jsx(pJ,{variant:"line",className:"h-auto gap-0 p-0 w-full",children:tht.map(({id:l,label:c})=>T.jsx(mJ,{value:l,className:"h-8 flex-none px-3 py-2 text-[11px] font-medium data-[state=active]:after:bg-[color:var(--accent)]",children:c},l))})}),T.jsx(g3,{value:"session",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:T.jsx(Zut,{sessionId:t})}),T.jsx(g3,{value:"prompt",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:T.jsx(Kut,{sessionId:t,requestHeaders:r})}),T.jsx(g3,{value:"messages",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:T.jsx(eht,{messages:e})})]})})]})}var aht=[{name:"clear",description:"Hide messages from display",handler(t,e){e.clearMessages()}},{name:"reset",description:"Delete current session and start fresh",handler(t,e){if(globalThis.confirm("Reset this session? All messages will be cleared."))return e.resetSession(),"Session reset."}}];function sht(t){var r;const e=t.match(/^\/([\w-]+)(?:\s+(.*))?$/s);return e?{name:e[1],args:((r=e[2])==null?void 0:r.trim())??""}:null}function oht(t){const e=new Map;for(const r of t??[])e.set(r.name,r);return{register(r){e.set(r.name,r)},get(r){return e.get(r)},list(){return Array.from(e.values())}}}var lht=["sonnet","haiku","opus"];function w7(t){return lht.includes(t)}var W5=30;function cht(t){const e=t.split(`
|
|
1284
|
+
`})}return r},Dut=/([\\`*_~[\]|])/g,Lut=t=>t.replace(Dut,"\\$1"),Iut=(t,e)=>{if(!e.length)return t;let r=t;for(let n of e){let i=new RegExp(`(<${n}(?=[\\s>/])[^>]*>)([\\s\\S]*?)(</${n}\\s*>)`,"gi");r=r.replace(i,(a,s,o,l)=>{let c=Lut(o).replace(/\n\n/g," ");return s+c+l})}return r},Yhe=t=>t.type==="text"?t.value:"children"in t&&Array.isArray(t.children)?t.children.map(Yhe).join(""):"",Rut=t=>e=>{if(!t||t.length===0)return;let r=new Set(t.map(n=>n.toLowerCase()));Vo(e,"element",n=>{if(r.has(n.tagName.toLowerCase())){let i=Yhe(n);n.children=i?[{type:"text",value:i}]:[]}})},Out=()=>t=>{Vo(t,"code",e=>{var r,n;e.meta&&(e.data=(r=e.data)!=null?r:{},e.data.hProperties={...(n=e.data.hProperties)!=null?n:{},metastring:e.meta})})},Nut=/^[ \t]*<[\w!/?-]/,Mut=/(^|\n)[ \t]{4,}(?=<[\w!/?-])/g,Put=t=>typeof t!="string"||t.length===0||!Nut.test(t)?t:t.replace(Mut,"$1"),uq,hq,dq,fq,nw={...Kd,protocols:{...Kd.protocols,href:[...(hq=(uq=Kd.protocols)==null?void 0:uq.href)!=null?hq:[],"tel"]},attributes:{...Kd.attributes,code:[...(fq=(dq=Kd.attributes)==null?void 0:dq.code)!=null?fq:[],"metastring"]}},_7={raw:a7,sanitize:[iue,nw],harden:[QKe,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:!0}]},But={gfm:[Kit,{}],codeMeta:Out},pq=Object.values(_7),Fut=Object.values(But),$ut={block:" ▋",circle:" ●"},Zhe=["github-light","github-dark"],Xhe={enabled:!0},zut={shikiTheme:Zhe,controls:!0,isAnimating:!1,lineNumbers:!0,mode:"streaming",mermaid:void 0,linkSafety:Xhe},Os=k.createContext(zut),Khe=k.memo(({content:t,shouldParseIncompleteMarkdown:e,shouldNormalizeHtmlIndentation:r,index:n,isIncomplete:i,dir:a,animatePlugin:s,...o})=>{if(s){let u=s.getLastRenderCharCount();s.setPrevContentLength(u)}let l=typeof t=="string"&&r?Put(t):t,c=T.jsx(Whe,{...o,children:l});return T.jsx(phe.Provider,{value:i,children:a?T.jsx("div",{dir:a,style:{display:"contents"},children:c}):c})},(t,e)=>{if(t.content!==e.content||t.shouldNormalizeHtmlIndentation!==e.shouldNormalizeHtmlIndentation||t.index!==e.index||t.isIncomplete!==e.isIncomplete||t.dir!==e.dir)return!1;if(t.components!==e.components){let r=Object.keys(t.components||{}),n=Object.keys(e.components||{});if(r.length!==n.length||r.some(i=>{var a,s;return((a=t.components)==null?void 0:a[i])!==((s=e.components)==null?void 0:s[i])}))return!1}return!(t.rehypePlugins!==e.rehypePlugins||t.remarkPlugins!==e.remarkPlugins)});Khe.displayName="Block";var yR=k.memo(({children:t,mode:e="streaming",dir:r,parseIncompleteMarkdown:n=!0,normalizeHtmlIndentation:i=!1,components:a,rehypePlugins:s=pq,remarkPlugins:o=Fut,className:l,shikiTheme:c=Zhe,mermaid:u,controls:d=!0,isAnimating:m=!1,animated:p,BlockComponent:y=Khe,parseMarkdownIntoBlocksFn:b=Eut,caret:v,plugins:_,remend:w,linkSafety:C=Xhe,lineNumbers:E=!0,allowedTags:D,literalTagContent:L,translations:R,icons:N,prefix:H,onAnimationStart:$,onAnimationEnd:U,...K})=>{let se=k.useId(),[q,j]=k.useTransition(),F=k.useMemo(()=>_ct(H),[H]),W=k.useRef(null),X=k.useRef($),de=k.useRef(U);X.current=$,de.current=U,k.useEffect(()=>{var ut,qt,Tr;if(e==="static")return;let vn=W.current;if(W.current=m,vn===null){m&&((ut=X.current)==null||ut.call(X));return}m&&!vn?(qt=X.current)==null||qt.call(X):!m&&vn&&((Tr=de.current)==null||Tr.call(de))},[m,e]);let G=k.useMemo(()=>D?Object.keys(D):[],[D]),Q=k.useMemo(()=>{if(typeof t!="string")return"";let ut=e==="streaming"&&n?lst(t,w):t;return L&&L.length>0&&(ut=Iut(ut,L)),G.length>0&&(ut=Aut(ut,G)),ut},[t,e,n,w,G,L]),ee=k.useMemo(()=>b(Q),[Q,b]),[V,ne]=k.useState(ee);k.useEffect(()=>{e==="streaming"&&!Te?j(()=>{ne(ee)}):ne(ee)},[ee,e]);let ie=e==="streaming"?V:ee,ce=k.useMemo(()=>r==="auto"?ie.map(tq):void 0,[ie,r]),ge=k.useMemo(()=>ie.map((ut,qt)=>`${se}-${qt}`),[ie.length,se]),Le=k.useMemo(()=>p===!0?"true":p?JSON.stringify(p):"",[p]),Te=k.useMemo(()=>Le?Le==="true"?m7():m7(p):null,[Le]),Ee=k.useMemo(()=>{var ut,qt;return{shikiTheme:(qt=(ut=_==null?void 0:_.code)==null?void 0:ut.getThemes())!=null?qt:c,controls:d,isAnimating:m,lineNumbers:E,mode:e,mermaid:u,linkSafety:C}},[c,d,m,E,e,u,C,_==null?void 0:_.code]),Ne=k.useMemo(()=>R?JSON.stringify(R):"",[R]),Ge=k.useMemo(()=>({...bhe,...R}),[Ne]),ct=k.useMemo(()=>{let{inlineCode:ut,...qt}=a??{},Tr={...iut,...qt};if(ut){let vn=Tr.code;Tr.code=oi=>"data-block"in oi?vn?k.createElement(vn,oi):null:k.createElement(ut,oi)}return Tr},[a]),ot=k.useMemo(()=>{let ut=[];return _!=null&&_.cjk&&(ut=[...ut,..._.cjk.remarkPluginsBefore]),ut=[...ut,...o],_!=null&&_.cjk&&(ut=[...ut,..._.cjk.remarkPluginsAfter]),_!=null&&_.math&&(ut=[...ut,_.math.remarkPlugin]),ut},[o,_==null?void 0:_.math,_==null?void 0:_.cjk]),Kt=k.useMemo(()=>{var ut;let qt=s;if(D&&Object.keys(D).length>0&&s===pq){let Tr={...nw,tagNames:[...(ut=nw.tagNames)!=null?ut:[],...Object.keys(D)],attributes:{...nw.attributes,...D}};qt=[_7.raw,[iue,Tr],_7.harden]}return L&&L.length>0&&(qt=[...qt,[Rut,L]]),_!=null&&_.math&&(qt=[...qt,_.math.rehypePlugin]),Te&&m&&(qt=[...qt,Te.rehypePlugin]),qt},[s,_==null?void 0:_.math,Te,m,D,L]),Rr=k.useMemo(()=>{if(!m||ie.length===0)return!1;let ut=ie.at(-1);return rq(ut)||cut(ut)},[m,ie]),Yr=k.useMemo(()=>v&&m&&!Rr?{"--streamdown-caret":`"${$ut[v]}"`}:void 0,[v,m,Rr]);return e==="static"?T.jsx(y7.Provider,{value:Ge,children:T.jsx(b7.Provider,{value:_??null,children:T.jsx(Os.Provider,{value:Ee,children:T.jsx(XU,{icons:N,children:T.jsx(g7.Provider,{value:F,children:T.jsx("div",{className:F("space-y-4 whitespace-normal [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",l),dir:r==="auto"?tq(Q):r,children:T.jsx(Whe,{components:ct,rehypePlugins:Kt,remarkPlugins:ot,...K,children:Q})})})})})})}):T.jsx(y7.Provider,{value:Ge,children:T.jsx(b7.Provider,{value:_??null,children:T.jsx(Os.Provider,{value:Ee,children:T.jsx(XU,{icons:N,children:T.jsx(g7.Provider,{value:F,children:T.jsxs("div",{className:F("space-y-4 whitespace-normal [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",v&&!Rr?"[&>*:last-child]:after:inline [&>*:last-child]:after:align-baseline [&>*:last-child]:after:content-[var(--streamdown-caret)]":null,l),style:Yr,children:[ie.length===0&&v&&m&&T.jsx("span",{}),ie.map((ut,qt)=>{var Tr;let vn=qt===ie.length-1,oi=m&&vn&&rq(ut);return T.jsx(y,{animatePlugin:Te,components:ct,content:ut,dir:(Tr=ce==null?void 0:ce[qt])!=null?Tr:r!=="auto"?r:void 0,index:qt,isIncomplete:oi,rehypePlugins:Kt,remarkPlugins:ot,shouldNormalizeHtmlIndentation:i,shouldParseIncompleteMarkdown:n,...K},ge[qt])})]})})})})})})},(t,e)=>t.children===e.children&&t.shikiTheme===e.shikiTheme&&t.isAnimating===e.isAnimating&&t.animated===e.animated&&t.mode===e.mode&&t.plugins===e.plugins&&t.className===e.className&&t.linkSafety===e.linkSafety&&t.lineNumbers===e.lineNumbers&&t.normalizeHtmlIndentation===e.normalizeHtmlIndentation&&t.literalTagContent===e.literalTagContent&&JSON.stringify(t.translations)===JSON.stringify(e.translations)&&t.prefix===e.prefix&&t.dir===e.dir);yR.displayName="Streamdown";var jut=({children:t,className:e,minZoom:r=.5,maxZoom:n=3,zoomStep:i=.1,showControls:a=!0,initialZoom:s=1,fullscreen:o=!1})=>{let{RotateCcwIcon:l,ZoomInIcon:c,ZoomOutIcon:u}=Ko(),d=vr(),m=k.useRef(null),p=k.useRef(null),[y,b]=k.useState(s),[v,_]=k.useState({x:0,y:0}),[w,C]=k.useState(!1),[E,D]=k.useState({x:0,y:0}),[L,R]=k.useState({x:0,y:0}),N=k.useCallback(F=>{b(W=>Math.max(r,Math.min(n,W+F)))},[r,n]),H=k.useCallback(()=>{N(i)},[N,i]),$=k.useCallback(()=>{N(-i)},[N,i]),U=k.useCallback(()=>{b(s),_({x:0,y:0})},[s]),K=k.useCallback(F=>{F.preventDefault();let W=F.deltaY>0?-i:i;N(W)},[N,i]),se=k.useCallback(F=>{if(F.button!==0||F.isPrimary===!1)return;C(!0),D({x:F.clientX,y:F.clientY}),R(v);let W=F.currentTarget;W instanceof HTMLElement&&W.setPointerCapture(F.pointerId)},[v]),q=k.useCallback(F=>{if(!w)return;F.preventDefault();let W=F.clientX-E.x,X=F.clientY-E.y;_({x:L.x+W,y:L.y+X})},[w,E,L]),j=k.useCallback(F=>{C(!1);let W=F.currentTarget;W instanceof HTMLElement&&W.releasePointerCapture(F.pointerId)},[]);return k.useEffect(()=>{let F=m.current;if(F)return F.addEventListener("wheel",K,{passive:!1}),()=>{F.removeEventListener("wheel",K)}},[K]),k.useEffect(()=>{let F=p.current;if(F&&w)return document.body.style.userSelect="none",F.addEventListener("pointermove",q,{passive:!1}),F.addEventListener("pointerup",j),F.addEventListener("pointercancel",j),()=>{document.body.style.userSelect="",F.removeEventListener("pointermove",q),F.removeEventListener("pointerup",j),F.removeEventListener("pointercancel",j)}},[w,q,j]),T.jsxs("div",{className:d("relative flex flex-col",o?"h-full w-full":"min-h-28 w-full",e),ref:m,style:{cursor:w?"grabbing":"grab"},children:[a?T.jsxs("div",{className:d("absolute z-10 flex flex-col gap-1 rounded-md border border-border bg-background/80 p-1 supports-[backdrop-filter]:bg-background/70 supports-[backdrop-filter]:backdrop-blur-sm",o?"bottom-4 left-4":"bottom-2 left-2"),children:[T.jsx("button",{className:d("flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50"),disabled:y>=n,onClick:H,title:"Zoom in",type:"button",children:T.jsx(c,{size:16})}),T.jsx("button",{className:d("flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50"),disabled:y<=r,onClick:$,title:"Zoom out",type:"button",children:T.jsx(u,{size:16})}),T.jsx("button",{className:d("flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground"),onClick:U,title:"Reset zoom and pan",type:"button",children:T.jsx(l,{size:16})})]}):null,T.jsx("div",{className:d("flex-1 origin-center transition-transform duration-150 ease-out",o?"flex h-full w-full items-center justify-center":"flex w-full items-center justify-center"),onPointerDown:se,ref:p,role:"application",style:{transform:`translate(${v.x}px, ${v.y}px) scale(${y})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:t})]})},Qhe=({chart:t,className:e,config:r,fullscreen:n=!1,showControls:i=!0})=>{let a=vr(),[s,o]=k.useState(null),[l,c]=k.useState(!1),[u,d]=k.useState(""),[m,p]=k.useState(""),[y,b]=k.useState(0),{mermaid:v}=k.useContext(Os),_=mR(),w=v==null?void 0:v.errorComponent,{shouldRender:C,containerRef:E}=cct({immediate:n});if(k.useEffect(()=>{if(C){if(!_){o("Mermaid plugin not available. Please add the mermaid plugin to enable diagram rendering.");return}(async()=>{try{o(null),c(!0);let L=_.getMermaid(r),R=t.split("").reduce(($,U)=>($<<5)-$+U.charCodeAt(0)|0,0),N=`mermaid-${Math.abs(R)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:H}=await L.render(N,t);d(H),p(H)}catch(L){if(!(m||u)){let R=L instanceof Error?L.message:"Failed to render Mermaid chart";o(R)}}finally{c(!1)}})()}},[t,r,y,C,_]),!(C||u||m))return T.jsx("div",{className:a("my-4 min-h-[200px]",e),ref:E});if(l&&!u&&!m)return T.jsx("div",{className:a("my-4 flex justify-center p-4",e),ref:E,children:T.jsxs("div",{className:a("flex items-center space-x-2 text-muted-foreground"),children:[T.jsx("div",{className:a("h-4 w-4 animate-spin rounded-full border-current border-b-2")}),T.jsx("span",{className:a("text-sm"),children:"Loading diagram..."})]})});if(s&&!u&&!m){let L=()=>b(R=>R+1);return w?T.jsx("div",{ref:E,children:T.jsx(w,{chart:t,error:s,retry:L})}):T.jsxs("div",{className:a("rounded-md bg-red-50 p-4",e),ref:E,children:[T.jsxs("p",{className:a("font-mono text-red-700 text-sm"),children:["Mermaid Error: ",s]}),T.jsxs("details",{className:a("mt-2"),children:[T.jsx("summary",{className:a("cursor-pointer text-red-600 text-xs"),children:"Show Code"}),T.jsx("pre",{className:a("mt-2 overflow-x-auto rounded bg-red-100 p-2 text-red-800 text-xs"),children:t})]})]})}let D=u||m;return T.jsx("div",{className:a("size-full",e),"data-streamdown":"mermaid",ref:E,children:T.jsx(jut,{className:a(n?"size-full overflow-hidden":"overflow-hidden",e),fullscreen:n,maxZoom:3,minZoom:.5,showControls:i,zoomStep:.1,children:T.jsx("div",{"aria-label":"Mermaid chart",className:a("flex justify-center",n?"size-full items-center":null),dangerouslySetInnerHTML:{__html:D},role:"img"})})})};let Hut="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",mq=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=Hut[r[t]&63];return e};function Je(...t){return xT(Km(t))}function Jhe({count:t,activeIdx:e,setActiveIdx:r,listRef:n,onSelect:i,onDismiss:a}){const s=k.useRef(i),o=k.useRef(a);k.useEffect(()=>{s.current=i},[i]),k.useEffect(()=>{o.current=a},[a]),k.useEffect(()=>{const l=c=>{c.key==="ArrowDown"?(c.preventDefault(),r(u=>Math.min(u+1,t-1))):c.key==="ArrowUp"?(c.preventDefault(),r(u=>Math.max(u-1,0))):c.key==="Enter"||c.key==="Tab"?(c.preventDefault(),s.current(e)):c.key==="Escape"&&(c.preventDefault(),o.current())};return window.addEventListener("keydown",l,{capture:!0}),()=>window.removeEventListener("keydown",l,{capture:!0})},[t,e,r]),k.useEffect(()=>{var c;const l=(c=n.current)==null?void 0:c.children[e];l==null||l.scrollIntoView({block:"nearest"})},[e,n])}function Vut(t,e){if(!e)return null;const r=t.toLowerCase().indexOf(e.toLowerCase());return r===-1?null:{before:t.slice(0,r),match:t.slice(r,r+e.length),after:t.slice(r+e.length)}}function Uut({mention:t,onSelect:e,onDismiss:r,apiBaseUrl:n=""}){const[i,a]=k.useState([]),[s,o]=k.useState(0),l=k.useRef(null);k.useEffect(()=>{o(0);const u=new AbortController,d=setTimeout(()=>{fetch(`${n}/api/v1/files/search?q=${encodeURIComponent(t.query||"*")}&limit=8`,{signal:u.signal}).then(m=>m.ok?m.json():null).then(m=>{m!=null&&m.results&&a(m.results.slice(0,8))}).catch(()=>{})},120);return()=>{clearTimeout(d),u.abort()}},[t.query,n]);const c=k.useCallback(u=>{i[u]&&e(i[u])},[i,e]);return Jhe({count:i.length,activeIdx:s,setActiveIdx:o,listRef:l,onSelect:c,onDismiss:r}),i.length===0?null:T.jsx("div",{className:"mb-1 w-full overflow-hidden rounded-lg border border-border/60 bg-popover shadow-lg",children:T.jsx("ul",{ref:l,className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"File suggestions",children:i.map((u,d)=>{const m=u.split("/").pop()??u,p=Vut(m,t.query);return T.jsxs("li",{role:"option","aria-selected":d===s,className:Je("flex cursor-pointer flex-col gap-0.5 px-3 py-1.5 text-[12px]",d===s?"bg-accent/10 text-foreground":"text-muted-foreground hover:bg-muted/40"),onMouseEnter:()=>o(d),onMouseDown:y=>{y.preventDefault(),e(u)},children:[T.jsx("span",{className:"font-medium",children:p?T.jsxs(T.Fragment,{children:[p.before,T.jsx("mark",{className:"bg-transparent text-[color:var(--accent)]",children:p.match}),p.after]}):m}),T.jsx("span",{className:"truncate text-[11px] opacity-50",children:u})]},u)})})})}function qut(t,e){const r=t.slice(0,e),n=r.match(/(^|[\s\n])@(\S*)$/);if(!n)return null;const i=r.lastIndexOf("@");return{query:n[2],anchorStart:i,anchorEnd:e}}function Gut({query:t,commands:e,onSelect:r,onDismiss:n}){const i=k.useMemo(()=>e.filter(c=>c.name.toLowerCase().startsWith(t.toLowerCase())),[e,t]),[a,s]=k.useState(0),o=k.useRef(null);k.useEffect(()=>s(0),[i.length]);const l=k.useCallback(c=>{i[c]&&r(i[c].name)},[i,r]);return Jhe({count:i.length,activeIdx:a,setActiveIdx:s,listRef:o,onSelect:l,onDismiss:n}),i.length===0?null:T.jsx("div",{className:"mb-1 w-full overflow-hidden rounded-lg border border-border/60 bg-popover shadow-lg",children:T.jsx("ul",{ref:o,className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Commands",children:i.map((c,u)=>T.jsxs("li",{role:"option","aria-selected":u===a,className:Je("flex cursor-pointer flex-col gap-0.5 px-3 py-1.5 text-[12px]",u===a?"bg-accent/10 text-foreground":"text-muted-foreground hover:bg-muted/40"),onMouseEnter:()=>s(u),onMouseDown:d=>{d.preventDefault(),r(c.name)},children:[T.jsxs("span",{className:"font-medium text-foreground/80",children:["/",c.name]}),T.jsx("span",{className:"truncate text-[11px] opacity-50",children:c.description})]},c.name))})})}function Wut(t){const{sessionId:e}=t,r=k.useRef(t);r.current=t;const n=k.useMemo(()=>new bY({api:"/api/v1/agent/chat",headers:()=>r.current.requestHeaders??{},body:()=>({sessionId:r.current.sessionId,model:r.current.model,thinkingLevel:r.current.thinkingLevel})}),[e]),i=mke({id:e,transport:n,resume:!0,onData:m=>{var p,y;(y=(p=r.current).onData)==null||y.call(p,m)}}),a=i.setMessages,s=e?`boring-agent:messages:${e}`:null,[o,l]=k.useState(!1);k.useEffect(()=>{if(!e||!s)return;let m=!1;l(!1);const p=()=>{var _;try{const w=(_=globalThis.localStorage)==null?void 0:_.getItem(s);if(!w)return;const C=JSON.parse(w);Array.isArray(C)&&C.length>0&&a(C)}catch{}},y=r.current.requestHeaders?{headers:r.current.requestHeaders}:void 0,b=`/api/v1/agent/chat/${encodeURIComponent(e)}/messages`;return(y?fetch(b,y):fetch(b)).then(_=>_.ok?_.json():null).then(_=>{if(m)return;const w=_==null?void 0:_.messages;if(Array.isArray(w)&&w.length>0){a(w);return}p()}).catch(()=>{m||p()}).finally(()=>{m||l(!0)}),()=>{m=!0}},[e,s,a]);const c=i.messages;k.useEffect(()=>{var m;if(!(!o||!s||c.length===0))try{(m=globalThis.localStorage)==null||m.setItem(s,JSON.stringify(c))}catch{}},[o,s,c]);const u=i.status,d=k.useRef(u);return k.useEffect(()=>{const m=d.current;if(d.current=u,u!=="ready"||m!=="streaming"&&m!=="submitted"||!e||c.length===0)return;const p=`/api/v1/agent/chat/${encodeURIComponent(e)}/messages`;fetch(p,{method:"PUT",headers:{"Content-Type":"application/json",...r.current.requestHeaders},body:JSON.stringify({messages:c})}).catch(()=>{})},[e,u,c]),i}function Yut({value:t,label:e}){const[r,n]=k.useState(!1),i=k.useCallback(()=>{var s,o;const a=(o=(s=navigator.clipboard)==null?void 0:s.writeText)==null?void 0:o.bind(navigator.clipboard);a&&a(t).then(()=>{n(!0),window.setTimeout(()=>n(!1),1200)})},[t]);return T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:i,className:"text-muted-foreground/60","aria-label":e,title:e,children:r?T.jsx(M9,{className:"h-3 w-3"}):T.jsx(jT,{className:"h-3 w-3"})})}function gq({label:t,value:e}){return T.jsxs("div",{className:"rounded-md border border-border/40 bg-muted/20 p-2",children:[T.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2",children:[T.jsx("span",{className:"text-[10px] font-medium uppercase tracking-[0.16em] text-muted-foreground/80",children:t}),T.jsx(Yut,{value:e,label:`Copy ${t}`})]}),T.jsx("code",{className:"block break-all font-mono text-[11px] leading-relaxed text-foreground",children:e})]})}function Zut({sessionId:t}){const e=`pi --session ${t}`;return T.jsxs("div",{className:"flex flex-col gap-3 overflow-auto p-3 text-[11px] text-muted-foreground",children:[T.jsx("p",{children:"This web chat is backed by a pi session. Use the id below from the workspace root to resume the same conversation in a terminal."}),T.jsx(gq,{label:"Pi session id",value:t}),T.jsx(gq,{label:"Resume command",value:e}),T.jsxs("p",{className:"rounded-md border border-border/30 bg-muted/10 p-2 text-[10px] leading-relaxed text-muted-foreground/75",children:["Tip: ",T.jsx("code",{className:"font-mono text-foreground/80",children:"pi --continue"})," ","opens the most recent session for the current working directory. The explicit command above targets this session directly."]})]})}var Xut=2500,yq=20;function Kut({sessionId:t,requestHeaders:e}){const[r,n]=k.useState({kind:"loading"}),[i,a]=k.useState(0),s=k.useRef(0),o=k.useCallback(()=>{s.current=0,a(l=>l+1)},[]);return k.useEffect(()=>{let l=!1,c=null;n({kind:"loading"});const u=e?{headers:e}:void 0;return fetch(`/api/v1/agent/sessions/${encodeURIComponent(t)}/system-prompt`,u).then(async d=>{var y;if(l)return;if(d.ok){const b=await d.json();if(typeof b.systemPrompt=="string"){s.current=0,n({kind:"ok",text:b.systemPrompt});return}}const m=await d.json().catch(()=>null),p=((y=m==null?void 0:m.error)==null?void 0:y.message)??`HTTP ${d.status}`;d.status===404&&s.current<yq?(n({kind:"empty",reason:p}),c=setTimeout(()=>{l||(s.current++,a(b=>b+1))},Xut)):n(d.status===404?{kind:"empty",reason:p}:{kind:"error",reason:p})}).catch(d=>{l||n({kind:"error",reason:d instanceof Error?d.message:String(d)})}),()=>{l=!0,c&&clearTimeout(c)}},[t,e,i]),T.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[T.jsxs("div",{className:"shrink-0 flex items-center justify-between px-3 pt-2 pb-1 border-b border-border/40",children:[T.jsx("span",{className:"text-[10px] text-muted-foreground/80 font-mono",children:r.kind==="ok"?`${r.text.length.toLocaleString()} chars`:r.kind==="loading"?"loading…":r.kind==="empty"?`waiting for session · retry ${s.current}/${yq}`:"error"}),r.kind!=="loading"&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:o,className:"text-muted-foreground/60","aria-label":"Refresh system prompt",children:T.jsx(LJ,{className:"h-3 w-3"})})]}),(r.kind==="loading"||r.kind==="empty")&&T.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:r.kind==="loading"?"Loading…":r.reason}),r.kind==="error"&&T.jsx("p",{className:"text-[11px] text-destructive p-3",children:r.reason}),r.kind==="ok"&&T.jsx("pre",{className:"flex-1 overflow-auto px-3 py-2 font-mono text-[11px] leading-relaxed text-foreground whitespace-pre-wrap break-words",children:r.text})]})}function Qut(t){const e=t,r=(e==null?void 0:e.type)??"?";if(r==="text"){const n=String(e.text??"");return n.slice(0,80)+(n.length>80?"…":"")}if(r==="tool-invocation"){const n=e.toolInvocation,i=String((n==null?void 0:n.state)??"");return`${(n==null?void 0:n.toolName)??"?"}() · ${i}`}if(r==="reasoning"){const n=String(e.text??e.reasoning??"");return n.slice(0,80)+(n.length>80?"…":"")}return r}function Jut(t){const e=[];for(let r=0;r<t.length;r++){const n=t[r],i=n,a=i.createdAt?new Date(i.createdAt).toISOString().slice(11,23):null;for(let s=0;s<n.parts.length;s++){const o=n.parts[s];e.push({msgId:n.id,msgIndex:r,role:n.role,time:a,partIndex:s,partType:(o==null?void 0:o.type)??"unknown",part:o})}}return e}function eht({messages:t}){const e=Jut(t),[r,n]=k.useState(null),i=k.useRef(null),a=k.useRef(e.length);return k.useEffect(()=>{var s;e.length!==a.current&&((s=i.current)==null||s.scrollIntoView({behavior:"smooth"}),a.current=e.length)},[e.length]),e.length===0?T.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:"No messages yet."}):T.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[T.jsxs("div",{className:"shrink-0 px-3 pt-2 pb-1 text-[10px] text-muted-foreground/80 font-mono border-b border-border/40",children:[t.length," msg · ",e.length," parts"]}),T.jsxs("div",{className:"flex-1 overflow-auto",children:[e.map(s=>{const o=`${s.msgId}:${s.partIndex}`,l=r===o;return T.jsxs("div",{className:"border-b border-border/30 last:border-0",children:[T.jsxs(Nr,{type:"button",variant:"ghost",onClick:()=>n(l?null:o),className:"h-auto w-full justify-start gap-1.5 rounded-none px-2 py-1.5 text-left",children:[T.jsx("span",{className:"mt-0.5 shrink-0 text-muted-foreground/40",children:l?T.jsx(fv,{className:"h-3 w-3"}):T.jsx(pv,{className:"h-3 w-3"})}),T.jsx("span",{className:"font-mono text-[10px] shrink-0 w-20",children:s.time?T.jsx("span",{className:"text-muted-foreground/60",children:s.time}):T.jsxs("span",{className:"text-muted-foreground/30",children:["m",s.msgIndex]})}),T.jsx("span",{className:Je("shrink-0 font-mono text-[10px] w-14",s.role==="user"?"text-accent":"text-muted-foreground"),children:s.role}),T.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/60 w-24",children:s.partType}),T.jsx("span",{className:"flex-1 min-w-0 font-mono text-[11px] text-foreground truncate",children:Qut(s.part)})]}),l&&T.jsx("pre",{className:"px-3 pb-2 font-mono text-[10px] leading-relaxed text-foreground/80 whitespace-pre-wrap break-words bg-muted/20",children:JSON.stringify(s.part,null,2)})]},o)}),T.jsx("div",{ref:i})]})]})}var tht=[{id:"session",label:"Session"},{id:"prompt",label:"System prompt"},{id:"messages",label:"Messages"}],rht=280,nht=800;function iht({sessionId:t,messages:e,requestHeaders:r,width:n,onWidthChange:i}){const[a,s]=k.useState("session"),o=k.useCallback(l=>{l.preventDefault();const c=l.clientX,u=n,d=p=>{const y=c-p.clientX;i(Math.min(nht,Math.max(rht,u+y)))},m=()=>{window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",m)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",m)},[n,i]);return T.jsxs(T.Fragment,{children:[T.jsx("div",{onMouseDown:o,className:"w-1 shrink-0 cursor-col-resize hover:bg-accent/40 active:bg-accent/60 transition-colors","aria-hidden":!0}),T.jsx("aside",{style:{width:n},className:Je("flex h-full shrink-0 flex-col border-l border-border/60","bg-[oklch(from_var(--background)_calc(l-0.01)_c_h)]"),children:T.jsxs(fJ,{value:a,onValueChange:l=>s(l),className:"flex flex-col flex-1 min-h-0 overflow-hidden",children:[T.jsx("header",{className:"flex shrink-0 items-center gap-0 border-b border-border/60 px-1",children:T.jsx(pJ,{variant:"line",className:"h-auto gap-0 p-0 w-full",children:tht.map(({id:l,label:c})=>T.jsx(mJ,{value:l,className:"h-8 flex-none px-3 py-2 text-[11px] font-medium data-[state=active]:after:bg-[color:var(--accent)]",children:c},l))})}),T.jsx(g3,{value:"session",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:T.jsx(Zut,{sessionId:t})}),T.jsx(g3,{value:"prompt",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:T.jsx(Kut,{sessionId:t,requestHeaders:r})}),T.jsx(g3,{value:"messages",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:T.jsx(eht,{messages:e})})]})})]})}var aht=[{name:"clear",description:"Hide messages from display",handler(t,e){e.clearMessages()}},{name:"reset",description:"Delete current session and start fresh",handler(t,e){if(globalThis.confirm("Reset this session? All messages will be cleared."))return e.resetSession(),"Session reset."}}];function sht(t){var r;const e=t.match(/^\/([\w-]+)(?:\s+(.*))?$/s);return e?{name:e[1],args:((r=e[2])==null?void 0:r.trim())??""}:null}function oht(t){const e=new Map;for(const r of t??[])e.set(r.name,r);return{register(r){e.set(r.name,r)},get(r){return e.get(r)},list(){return Array.from(e.values())}}}var lht=["sonnet","haiku","opus"];function w7(t){return lht.includes(t)}var W5=30;function cht(t){const e=t.split(`
|
|
1285
1285
|
`),r=[];for(const n of e)n.startsWith("@@")||n.startsWith("---")||n.startsWith("+++")||n.startsWith("diff")||n.startsWith("Index")||n.startsWith("\\")||(n.startsWith("+")?r.push({type:"+",text:n.slice(1)}):n.startsWith("-")?r.push({type:"-",text:n.slice(1)}):(n.startsWith(" ")||n==="")&&r.push({type:" ",text:n.slice(1)}));for(;r.length>0&&r[r.length-1].type===" "&&r[r.length-1].text==="";)r.pop();return r}var uht={"+":"bg-[var(--boring-agent-diff-add,rgba(46,160,67,0.15))] text-[var(--boring-agent-diff-add-fg,#3fb950)]","-":"bg-[var(--boring-agent-diff-remove,rgba(248,81,73,0.15))] text-[var(--boring-agent-diff-remove-fg,#f85149)]"," ":""},hht={"+":"+","-":"-"," ":" "};function dht({oldString:t,newString:e,path:r,replaceAll:n}){const[i,a]=k.useState(!1);if(t===e)return T.jsx("div",{"data-testid":"diff-no-change",className:"py-2 italic opacity-60",children:"No changes"});const s=A8e(r,t,e,"","",{context:3}),o=cht(s),l=!i&&o.length>W5,c=l?o.slice(0,W5):o;return T.jsxs("div",{"data-testid":"diff-view",children:[T.jsxs("div",{className:"px-3 py-1.5 font-[family-name:var(--boring-agent-font-mono,monospace)] text-xs opacity-70",children:[r,n?" (replace all)":""]}),T.jsx("pre",{className:"m-0 overflow-auto py-2 font-[family-name:var(--boring-agent-font-mono,monospace)] text-[0.8125rem] leading-relaxed",children:c.map((u,d)=>T.jsxs("div",{className:Je("px-3",uht[u.type]),children:[T.jsx("span",{className:"inline-block w-[1.5ch] select-none opacity-50",children:hht[u.type]}),u.text]},d))}),l&&T.jsxs(Nr,{type:"button",variant:"ghost",size:"sm",onClick:()=>a(!0),className:"w-full rounded-none text-xs opacity-60",children:["Show ",o.length-W5," more lines"]})]})}function fht(t){switch(t){case"input-streaming":case"input-available":return"Running…";case"approval-requested":return"Approval needed";case"approval-responded":return"Approved";case"output-available":return"Done";case"output-error":return"Error";case"output-denied":return"Denied"}}function bq({value:t}){return T.jsx("pre",{className:"m-0 whitespace-pre-wrap text-[0.8125rem]",children:typeof t=="string"?t:JSON.stringify(t,null,2)})}function md({toolName:t,state:e,input:r,output:n,errorText:i,children:a,className:s,defaultExpanded:o=!1,renderInput:l,renderOutput:c}){const[u,d]=k.useState(o),m=e==="input-streaming"||e==="input-available",p=e==="output-available"||e==="output-error"||e==="output-denied",[y,b]=k.useState(0),v=k.useRef(0);return k.useEffect(()=>{if(!m){b(0);return}v.current=Date.now();const _=setInterval(()=>{b(Math.floor((Date.now()-v.current)/1e3))},1e3);return()=>clearInterval(_)},[m]),T.jsxs("div",{className:Je("overflow-hidden rounded-[var(--boring-agent-tool-radius,0.375rem)] border border-[var(--boring-agent-tool-border,#e5e7eb)] text-[length:var(--boring-agent-font-size,0.875rem)]",s),"data-tool-state":e,children:[T.jsxs(Nr,{type:"button",variant:"ghost",onClick:()=>d(_=>!_),className:"h-auto w-full justify-start gap-2 rounded-none bg-[var(--boring-agent-tool-header-bg,#f9fafb)] px-3 py-2 text-left font-[family-name:var(--boring-agent-font-mono,monospace)] text-[0.8125rem]","aria-expanded":u,children:[T.jsx("span",{className:Je("transition-transform duration-150",u&&"rotate-90"),children:"▶"}),T.jsx("span",{className:"font-medium",children:t}),T.jsx("span",{className:"ml-auto text-xs opacity-60",children:m&&y>=1?`Running… (${y}s)`:fht(e)}),!p&&T.jsx("span",{className:"size-2 rounded-full bg-[var(--boring-agent-tool-running,#3b82f6)]","aria-label":"running"})]}),u&&T.jsx("div",{className:"border-t border-[var(--boring-agent-tool-border,#e5e7eb)] px-3 py-2",children:a??T.jsxs(T.Fragment,{children:[r!==void 0&&T.jsx("div",{"data-testid":"tool-input",children:l?l(r):T.jsx(bq,{value:r})}),n!==void 0&&T.jsx("div",{"data-testid":"tool-output",className:"mt-2",children:c?c(n):T.jsx(bq,{value:n})}),i&&T.jsx("div",{"data-testid":"tool-error",className:"mt-2 text-[var(--boring-agent-tool-error,#ef4444)]",children:i})]})})]})}function pht({children:t,stdout:e,stderr:r,exitCode:n,className:i,title:a}){return T.jsxs("div",{className:Je("overflow-hidden rounded-[var(--boring-agent-terminal-radius,0.375rem)] bg-[var(--boring-agent-terminal-bg,#1e1e1e)] font-[family-name:var(--boring-agent-font-mono,monospace)] text-[0.8125rem] leading-normal text-[var(--boring-agent-terminal-fg,#d4d4d4)]",i),children:[a&&T.jsx("div",{className:"border-b border-[var(--boring-agent-terminal-border,#404040)] bg-[var(--boring-agent-terminal-header-bg,#2d2d2d)] px-3 py-1.5 text-xs opacity-80",children:a}),T.jsx("div",{className:"p-3",children:t??T.jsxs(T.Fragment,{children:[e&&T.jsx("pre",{"data-stream":"stdout",className:"m-0 whitespace-pre-wrap",children:e}),r&&T.jsx("pre",{"data-stream":"stderr",className:Je("m-0 whitespace-pre-wrap text-[var(--boring-agent-terminal-stderr,#f87171)]",e&&"mt-2"),children:r})]})}),n!=null&&T.jsxs("div",{"data-testid":"exit-code",className:Je("border-t border-[var(--boring-agent-terminal-border,#404040)] px-3 py-1 text-xs opacity-60",n===0?"text-[var(--boring-agent-terminal-success,#4ade80)]":"text-[var(--boring-agent-terminal-error,#f87171)]"),children:["exit ",n]})]})}function ede({code:t,language:e,filename:r,className:n,showLineNumbers:i=!1,copyable:a=!0}){const[s,o]=k.useState(!1),l=k.useCallback(()=>{navigator.clipboard.writeText(t).then(()=>{o(!0),setTimeout(()=>o(!1),2e3)})},[t]),c=t.split(`
|
|
1286
1286
|
`),u=`${String(c.length).length+1}ch`;return T.jsxs("div",{className:Je("relative overflow-hidden rounded-[var(--boring-agent-code-radius,0.375rem)] bg-[var(--boring-agent-code-bg,#1e1e1e)] font-[family-name:var(--boring-agent-font-mono,monospace)] text-[0.8125rem] leading-relaxed text-[var(--boring-agent-code-fg,#d4d4d4)]",n),children:[(r||e)&&T.jsxs("div",{className:"flex items-center justify-between border-b border-[var(--boring-agent-code-border,#404040)] bg-[var(--boring-agent-code-header-bg,#2d2d2d)] px-3 py-1.5 text-xs",children:[T.jsx("span",{className:"opacity-70",children:r??e}),a&&T.jsx(Nr,{type:"button",variant:"ghost",size:"xs",onClick:l,"aria-label":"Copy code",className:"h-6 px-1.5 text-xs text-inherit opacity-60",children:s?"Copied":"Copy"})]}),T.jsx("pre",{className:"m-0 overflow-auto p-3",children:T.jsx("code",{"data-language":e,children:i?c.map((d,m)=>T.jsxs("span",{className:"block",children:[T.jsx("span",{className:"mr-4 inline-block select-none text-right opacity-40",style:{width:u},children:m+1}),d]},m)):t})}),a&&!r&&!e&&T.jsx(Nr,{type:"button",variant:"ghost",size:"xs",onClick:l,"aria-label":"Copy code",className:"absolute right-2 top-2 h-7 bg-[var(--boring-agent-code-copy-bg,rgba(255,255,255,0.1))] px-2 text-xs text-inherit",children:s?"Copied":"Copy"})]})}var mht="__fallback";function tu(t){return typeof t=="object"&&t!==null?t:{}}function bR(t){var n;const e=(n=t.split(".").pop())==null?void 0:n.toLowerCase();return e?{ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",py:"python",rb:"ruby",rs:"rust",go:"go",java:"java",json:"json",yaml:"yaml",yml:"yaml",md:"markdown",css:"css",html:"html",sql:"sql",sh:"bash",bash:"bash"}[e]:void 0}function ght(t){const e=tu(t.input),r=tu(t.output),n=String(e.command??""),i=typeof r.stdout=="string"?r.stdout:r.content?JSON.stringify(r.content):void 0,a=typeof r.stderr=="string"?r.stderr:void 0,s=typeof r.exitCode=="number"?r.exitCode:void 0;return T.jsx(md,{toolName:"bash",toolCallId:t.toolCallId,state:t.state,errorText:t.errorText,defaultExpanded:!0,children:T.jsx(pht,{title:`$ ${n}`,stdout:i,stderr:a,exitCode:s??null})})}function yht(t){const e=tu(t.input),r=tu(t.output),n=String(e.path??""),i=typeof r.text=="string"?r.text:Array.isArray(r.content)?r.content.map(a=>a.text??"").join(""):typeof r.content=="string"?r.content:void 0;return T.jsx(md,{toolName:"read",toolCallId:t.toolCallId,state:t.state,errorText:t.errorText,children:i!=null?T.jsx(ede,{code:i,language:bR(n),filename:n}):T.jsxs("span",{style:{opacity:.6},children:["Reading ",n,"…"]})})}function bht(t){const e=tu(t.input),r=String(e.path??""),n=typeof e.content=="string"?e.content:"";return T.jsx(md,{toolName:"write",toolCallId:t.toolCallId,state:t.state,errorText:t.errorText,defaultExpanded:!0,children:T.jsxs("span",{style:{fontFamily:"var(--boring-agent-font-mono, monospace)",fontSize:"0.8125rem"},children:["Wrote ",n.length," bytes to ",T.jsx("strong",{children:r})]})})}function vht(t){const e=tu(t.input),r=String(e.path??""),n=typeof e.oldString=="string"?e.oldString:"",i=typeof e.newString=="string"?e.newString:"",a=!!e.replaceAll;return T.jsx(md,{toolName:"edit",toolCallId:t.toolCallId,state:t.state,errorText:t.errorText,defaultExpanded:!0,children:T.jsx(dht,{oldString:n,newString:i,path:r,replaceAll:a})})}function Y5(t,e){const r=tu(e.input),n=tu(e.output),i=Array.isArray(n.content)?n.content.map(l=>l.text??"").join(""):typeof n.content=="string"?n.content:typeof n.text=="string"?n.text:typeof e.output=="string"?e.output:"",a=typeof r.path=="string"?r.path:"",s=typeof r.pattern=="string"?r.pattern:"",o=[t,s||a].filter(Boolean).join(" ");return T.jsx(md,{toolName:t,toolCallId:e.toolCallId,state:e.state,errorText:e.errorText,children:i?T.jsx(ede,{code:i,language:"text",filename:o}):T.jsx("span",{style:{opacity:.6},children:t==="ls"?`Listing ${a||"."}...`:`Searching ${s||a||"."}...`})})}function xht(t){return T.jsx(md,{toolName:"get_ui_state",toolCallId:t.toolCallId,state:t.state,errorText:t.errorText,renderOutput:e=>T.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",fontSize:"0.8125rem",fontFamily:"var(--boring-agent-font-mono, monospace)"},children:typeof e=="string"?e:JSON.stringify(e,null,2)}),input:t.input,output:t.output})}function _ht(t){const e=tu(t.input),r=typeof e.kind=="string"?e.kind:"",n=e.params,i=n!=null?typeof n=="string"?n:JSON.stringify(n):"",a=r?`${r}${i?`(${i})`:""}`:"(empty)";return T.jsx(md,{toolName:"exec_ui",toolCallId:t.toolCallId,state:t.state,errorText:t.errorText,defaultExpanded:!0,children:T.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"0.25rem"},children:[T.jsxs("span",{style:{fontFamily:"var(--boring-agent-font-mono, monospace)",fontSize:"0.8125rem",wordBreak:"break-all"},children:["→ ",a]}),t.errorText&&T.jsx("span",{"data-testid":"tool-error",style:{color:"var(--boring-agent-tool-error, #ef4444)",fontFamily:"var(--boring-agent-font-mono, monospace)",fontSize:"0.8125rem"},children:t.errorText})]})})}function wht(t){const e=r=>T.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",fontSize:"0.8125rem",fontFamily:"var(--boring-agent-font-mono, monospace)"},children:typeof r=="string"?r:JSON.stringify(r,null,2)});return T.jsx(md,{toolName:t.toolName,toolCallId:t.toolCallId,state:t.state,input:t.input,output:t.output,errorText:t.errorText,defaultExpanded:!0,renderInput:e,renderOutput:e})}var Cht={bash:ght,read:yht,write:bht,edit:vht,find:t=>Y5("find",t),grep:t=>Y5("grep",t),ls:t=>Y5("ls",t),get_ui_state:xht,exec_ui:_ht};function Tht(t,e){return(e==null?void 0:e[t])??Cht[t]??(e==null?void 0:e[mht])??wht}var vq=new Map,kht=t=>{let e=vq.get(t);return e||(e=W6.create(t),vq.set(t,e)),e},Sht=({children:t,as:e="p",className:r,duration:n=2,spread:i=2})=>{const a=kht(e),s=k.useMemo(()=>((t==null?void 0:t.length)??0)*i,[t,i]);return T.jsx(a,{animate:{backgroundPosition:"0% center"},className:Je("relative inline-block bg-[length:250%_100%,auto] bg-clip-text text-transparent","[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--color-background),#0000_calc(50%+var(--spread)))] [background-repeat:no-repeat,padding-box]",r),initial:{backgroundPosition:"100% center"},style:{"--spread":`${s}px`,backgroundImage:"var(--bg), linear-gradient(var(--color-muted-foreground), var(--color-muted-foreground))"},transition:{duration:n,ease:"linear",repeat:Number.POSITIVE_INFINITY},children:t})},tde=k.memo(Sht);function Eht(t){return t==="output-available"||t==="output-error"||t==="output-denied"||t==="approval-responded"}var Aht={bash:"command",read:"read",write:"write",edit:"edit",find:"find",grep:"search",ls:"list",exec_ui:"UI action",get_ui_state:"UI state"};function Dht(t,e){const r=new Map;for(const{part:a}of t){if(!Uc(a))continue;const s=yY(a);r.set(s,(r.get(s)??0)+1)}const n=[...r.entries()].map(([a,s])=>{const o=Aht[a]??a;return s>1?`${o} ×${s}`:o});return`${e?"Used":"Using"} ${n.join(" · ")}`}var rde=k.memo(({tools:t,mergedToolRenderers:e})=>{const r=t.every(({part:l})=>Uc(l)?Eht(l.state):!0),n=t.some(({part:l})=>Uc(l)?l.state==="output-error":!1),[i,a]=k.useState(!1),s=k.useCallback(l=>a(l),[]),o=k.useMemo(()=>Dht(t,r),[t,r]);return T.jsxs(O9,{open:i,onOpenChange:s,className:"not-prose my-1.5",children:[T.jsxs(zT,{className:Je("group/trigger flex w-fit items-center gap-1.5 rounded-md px-2 py-1 text-[11px] font-medium transition-colors","border border-border/40 bg-card/40 text-muted-foreground/70","hover:border-border/70 hover:bg-card/70 hover:text-muted-foreground",n&&"border-destructive/30 text-destructive/60 hover:text-destructive/80"),children:[T.jsx(pv,{className:Je("size-3 shrink-0 transition-transform duration-150",i&&"rotate-90")}),r?T.jsx("span",{children:o}):T.jsx(tde,{as:"span",duration:1.5,children:o}),T.jsx("span",{className:"ml-0.5 tabular-nums text-muted-foreground/40",children:t.length})]}),T.jsx(N9,{className:"overflow-hidden data-[state=closed]:animate-[boring-collapse-close_200ms_ease] data-[state=open]:animate-[boring-collapse-open_200ms_ease]",children:T.jsxs("div",{className:"relative mt-1.5 pl-[18px]",children:[T.jsx("div",{className:"absolute left-[5px] top-0 bottom-2 w-px bg-border/35"}),T.jsx("div",{className:"flex flex-col gap-0",children:t.map(({part:l,key:c})=>{if(!Uc(l))return null;const u=l,d=yY(l),m=Tht(d,e);return T.jsx("div",{className:"min-w-0",children:m({...u,toolName:d})},c)})})]})})]})});rde.displayName="ToolCallGroup";var Lht=t=>t&&t&1,Iht=t=>t&&t&2,Rht=t=>t&&t&4,Oht=t=>t.map((e,r)=>({key:`line-${r}`,tokens:e.map((n,i)=>({key:`line-${r}-${i}`,token:n}))})),Nht=({token:t})=>T.jsx("span",{className:"dark:!text-[var(--shiki-dark)]",style:{backgroundColor:t.bgColor,color:t.color,fontStyle:Lht(t.fontStyle)?"italic":void 0,fontWeight:Iht(t.fontStyle)?"bold":void 0,textDecoration:Rht(t.fontStyle)?"underline":void 0,...t.htmlStyle},children:t.content}),Mht=Je("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-8","before:mr-4","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),Pht=({keyedLine:t,showLineNumbers:e})=>T.jsx("span",{className:e?Mht:"block",children:t.tokens.length===0?`
|
|
1287
1287
|
`:t.tokens.map(({token:r,key:n})=>T.jsx(Nht,{token:r},n))}),nde=k.createContext({code:""}),xq=new Map,_q=new Map,o0=new Map,Bht=(t,e)=>{const r=t.slice(0,100),n=t.length>100?t.slice(-100):"";return`${e}:${t.length}:${r}:${n}`},Fht=t=>{const e=xq.get(t);if(e)return e;const r=XT({langs:[t],themes:["github-light","github-dark"]});return xq.set(t,r),r},$ht=t=>({bg:"transparent",fg:"inherit",tokens:t.split(`
|
|
@@ -1305,7 +1305,7 @@ ${Zr.text}`,Zr.state==="streaming"&&(Ta.state="streaming")):at.push({kind:"reaso
|
|
|
1305
1305
|
|
|
1306
1306
|
`);return{registered:r.map(a=>a.id),systemPromptAppend:i}}function Tmt(){return!1}class vfe{constructor(e={}){Pr(this,"catalogs",new Map),Pr(this,"listeners",new Set),Pr(this,"snapshotCache",null),Pr(this,"warnOnDuplicate"),Pr(this,"subscribe",r=>(this.listeners.add(r),()=>{this.listeners.delete(r)})),Pr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=Array.from(this.catalogs.values())),this.snapshotCache)),this.warnOnDuplicate=e.warnOnDuplicate??Tmt()}register(e,r){this.catalogs.has(e.id)&&this.warnOnDuplicate&&console.warn(`[CatalogRegistry] catalog "${e.id}" registered by "${r}" overrides previous registration`),this.catalogs.set(e.id,{...e,pluginId:r}),this.emit()}unregister(e){this.catalogs.delete(e)&&this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.catalogs)i.pluginId===e&&(this.catalogs.delete(n),r=!0);r&&this.emit()}list(){return this.getSnapshot()}get(e){return this.catalogs.get(e)}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}}class xfe{constructor(){Pr(this,"resolvers",new Map),Pr(this,"registrationOrder",[]),Pr(this,"listeners",new Set),Pr(this,"snapshotCache",null),Pr(this,"subscribe",e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})),Pr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.list()),this.snapshotCache))}register(e,r){const n=this.resolvers.has(e);this.resolvers.set(e,{...r,id:e}),n||this.registrationOrder.push(e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.resolvers)i.pluginId===e&&(this.resolvers.delete(n),this.registrationOrder=this.registrationOrder.filter(a=>a!==n),r=!0);r&&this.emit()}get(e){return this.resolvers.get(e)}has(e){return this.resolvers.has(e)}list(){return this.registrationOrder.map(e=>this.resolvers.get(e))}resolve(e){let r,n=-1/0,i=!1,a=-1;return this.registrationOrder.forEach((s,o)=>{const l=this.resolvers.get(s);let c;try{c=l.resolve(e)}catch(m){console.warn(`[SurfaceResolverRegistry] resolver "${s}" failed:`,m instanceof Error?m.message:m);return}if(!c)return;const u=c.score??0,d=l.source==="app";(u>n||u===n&&d&&!i||u===n&&d===i&&o>=a)&&(r=c,n=u,i=d,a=o)}),r}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}}const Hv=k.createContext(null);function kmt({panelRegistry:t,commandRegistry:e,catalogRegistry:r,surfaceResolverRegistry:n,children:i}){const a=k.useRef(null),s=k.useRef(null);a.current||(a.current=new vfe),s.current||(s.current=new xfe);const o=r??a.current,l=n??s.current,c=k.useMemo(()=>({panelRegistry:t,commandRegistry:e,catalogRegistry:o,surfaceResolverRegistry:l}),[t,e,o,l]);return T.jsx(Hv.Provider,{value:c,children:i})}function Vv(){const t=k.useContext(Hv);if(!t)throw new Error("useRegistry must be used within a RegistryProvider");return t.panelRegistry}function $R(){const t=k.useContext(Hv);if(!t)throw new Error("useCommandRegistry must be used within a RegistryProvider");return t.commandRegistry}function zR(){const t=k.useContext(Hv);if(!t)throw new Error("useCatalogRegistry must be used within a RegistryProvider");return t.catalogRegistry}function Smt(){const t=k.useContext(Hv);if(!t)throw new Error("useSurfaceResolverRegistry must be used within a RegistryProvider");return t.surfaceResolverRegistry}function Emt(){const t=$R();return k.useSyncExternalStore(t.subscribe,t.getSnapshot)}function Amt(){const t=zR();return k.useSyncExternalStore(t.subscribe,t.getSnapshot)}function Dmt({pluginId:t,message:e,kind:r}){return T.jsx(yJ,{tone:"error",icon:T.jsx(d8e,{className:"size-4"}),className:"py-2",description:T.jsxs("span",{className:"block min-w-0 truncate",children:[T.jsxs("span",{className:"font-medium",children:["[",t,"]"]})," ",r," error: ",e]})})}const _fe=k.createContext(null);function Lmt({children:t}){const[e,r]=k.useState([]),n=k.useCallback(a=>{r(s=>[...s,a])},[]),i=k.useMemo(()=>({errors:e,reportPluginError:n}),[e,n]);return T.jsx(_fe.Provider,{value:i,children:t})}let fS=class extends k.Component{constructor(){super(...arguments),Pr(this,"state",{error:null})}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){var n;const i={kind:"contribution",pluginId:this.props.pluginId,contributionKind:this.props.contributionKind,contributionId:this.props.contributionId,error:e,componentStack:r.componentStack?Imt(r.componentStack,5):null};(n=this.context)==null||n.reportPluginError(i)}render(){return this.state.error?T.jsx(Dmt,{pluginId:this.props.pluginId,message:this.state.error.message,kind:this.props.contributionKind}):this.props.children}};Pr(fS,"contextType",_fe);function Imt(t,e){return t.split(`
|
|
1307
1307
|
`).filter(r=>r.trim()).slice(0,e).join(`
|
|
1308
|
-
`)}const Rmt=1024,Omt=500,Nmt=/^[a-zA-Z0-9_-]+$/,Mmt=64,y_=50,cG=16384,jR=Eh().min(1).max(Rmt).refine(t=>!t.includes(".."),"path traversal not allowed").refine(t=>!t.includes("\0"),"null bytes not allowed"),Pmt=go({path:jR,mode:xD(["view","edit","diff"]).optional()}),Bmt=go({id:Eh().max(Mmt).regex(Nmt,"invalid panel ID"),component:Eh().min(1),params:vD(JW()).optional().refine(t=>{if(!t)return!0;try{return new TextEncoder().encode(JSON.stringify(t)).byteLength<=cG}catch{return!1}},`params must be JSON-serializable and under ${cG} bytes`),title:Eh().max(200).optional()}),Fmt=go({id:Eh().min(1)}),$mt=go({msg:Eh().max(Omt),level:xD(["info","warn","error"]).optional()}),zmt=go({file:jR,line:R0().int().positive()}),jmt=go({path:jR});function Hmt(t){let e=0;const r=new Map;function n(){return++e}function i(){return{seq:n(),status:"ok"}}function a(l,c){return{seq:n(),status:"error",error:{code:l,message:c}}}function s(l,c){const u=r.get(l);if(u)for(const d of[...u])try{d(c)}catch(m){console.error(`[bridge] listener for "${String(l)}" threw:`,m)}}const o={getOpenPanels(){return t.getState().panels},getActiveFile(){return t.getState().activeFile},getDirtyFiles(){return Object.keys(t.getState().dirtyFiles)},getVisibleFiles(){return t.getState().visibleFiles},async openFile(l,c){const u=Pmt.safeParse({path:l,mode:c==null?void 0:c.mode});if(!u.success)return a("VALIDATION",u.error.issues[0].message);const d=t.getState(),m=u.data.mode??"edit",p=`file:${l}`;if(d.panels.find(y=>y.id===p)){const y=d.activePanel;return d.activatePanel(p),d.visibleFiles.includes(l)||d.openFile(l,p),s("panel:activated",{panelId:p,previousPanelId:y}),i()}return d.panels.length>=y_?a("MAX_PANELS",`cannot exceed ${y_} open panels`):(d.openFile(l,p),d.openPanel({id:p,component:"editor",params:{path:l,mode:m}}),s("file:opened",{path:l,mode:m}),s("panel:opened",{panelId:p,params:{path:l,mode:m}}),i())},async openPanel(l){const c=Bmt.safeParse(l);if(!c.success)return a("VALIDATION",c.error.issues[0].message);const u=t.getState();if(u.panels.find(d=>d.id===l.id)){const d=u.activePanel;return u.activatePanel(l.id),s("panel:activated",{panelId:l.id,previousPanelId:d}),i()}return u.panels.length>=y_?a("MAX_PANELS",`cannot exceed ${y_} open panels`):(u.openPanel({id:l.id,component:l.component,params:l.params}),s("panel:opened",{panelId:l.id,params:l.params??{}}),i())},async closePanel(l){const c=Fmt.safeParse({id:l});if(!c.success)return a("VALIDATION",c.error.issues[0].message);const u=t.getState(),d=u.panels.find(m=>m.id===l);return d?d.essential?a("ESSENTIAL",`panel ${l} is essential and cannot be closed`):(u.closePanel(l),s("panel:closed",{panelId:l}),i()):a("NOT_FOUND",`panel ${l} not found`)},async closeWorkbenchLeftPane(){return t.getState().setSidebar({collapsed:!0}),s("sidebar:toggled",{collapsed:!0}),i()},async showNotification(l,c="info"){const u=$mt.safeParse({msg:l,level:c});if(!u.success)return a("VALIDATION",u.error.issues[0].message);const d=u.data.level??"info",m=d==="warn"?"warning":d;return t.getState().showNotification({message:u.data.msg,type:m}),s("notification:shown",{message:u.data.msg,level:d}),i()},async navigateToLine(l,c){const u=zmt.safeParse({file:l,line:c});if(!u.success)return a("VALIDATION",u.error.issues[0].message);const d=await o.openFile(l);return d.status==="error"?d:(t.getState().navigateToLine(l,u.data.line),i())},async expandToFile(l){const c=jmt.safeParse({path:l});if(!c.success)return a("VALIDATION",c.error.issues[0].message);const u=t.getState();return u.sidebar.collapsed&&(u.setSidebar({collapsed:!1}),s("sidebar:toggled",{collapsed:!1})),s("tree:expand",{path:c.data.path}),i()},markDirty(l){t.getState().markDirty(l,"bridge"),s("file:dirty",{path:l,dirty:!0})},markClean(l){t.getState().markClean(l),s("file:dirty",{path:l,dirty:!1})},subscribe(l,c){let u=r.get(l);u||(u=new Set,r.set(l,u));const d=c;return u.add(d),()=>u.delete(d)},select(l,c){let u=l(t.getState());return t.subscribe(d=>{const m=l(d);Object.is(m,u)||(u=m,c(m))})}};return o}const Vmt=100,Umt=3e3;function uG(t){const e={"Content-Type":"application/json"};return t&&(e.Authorization=`Bearer ${t}`),e}function qmt(t,e){const r=t.getState();return{v:1,causedBy:e,openPanels:r.panels,activePanel:r.activePanel,activeFile:r.activeFile,visibleFiles:r.visibleFiles,dirtyFiles:Object.keys(r.dirtyFiles)}}async function hG(t,e,r){switch(e){case"openFile":await t.openFile(r.path,r.mode?{mode:r.mode}:void 0);break;case"openPanel":await t.openPanel({id:r.id,component:r.component,params:r.params,title:r.title});break;case"closePanel":await t.closePanel(r.id);break;case"closeWorkbenchLeftPane":await t.closeWorkbenchLeftPane();break;case"showNotification":await t.showNotification(r.msg,r.level);break;case"navigateToLine":await t.navigateToLine(r.file,r.line);break;case"expandToFile":await t.expandToFile(r.path);break;case"markDirty":t.markDirty(r.path);break;case"markClean":t.markClean(r.path);break}}function Gmt(t){const{endpoint:e,bridge:r,store:n,authToken:i,pollMode:a=!1,pollInterval:s=Umt,onAuthError:o,onVersionMismatch:l,onConnectionChange:c}=t;let u=null,d=null,m=null,p=null,y=!1,b=!1,v=0;function _(N){b||y!==N&&(y=N,c==null||c(N))}async function w(N){if(b)return;const H=qmt(n,N);try{const $=await fetch(`${e}/api/v1/ui/state`,{method:"PUT",headers:uG(i),body:JSON.stringify(H)});if(b)return;($.status===401||$.status===403)&&(o==null||o($.status))}catch{}}function C(N){m!==null&&clearTimeout(m),m=setTimeout(()=>{m=null,w(N)},Vmt)}function E(N,H){if(!b)switch(N){case"init":{_(!0),w("restore");break}case"command":{let $;try{$=JSON.parse(H)}catch{return}if($.v!==1){l==null||l($.v);return}v++,hG(r,$.kind,$.params).finally(()=>{v--});break}case"error":{let $;try{$=JSON.parse(H)}catch{return}if($.v!==1){l==null||l($.v);return}r.showNotification($.message,"error");break}}}function D(){const N=`${e}/api/v1/ui/commands/next`,H=new EventSource(N,{withCredentials:!0});H.addEventListener("init",$=>{E("init",$.data)}),H.addEventListener("command",$=>{E("command",$.data)}),H.addEventListener("error",$=>{$.data?E("error",$.data):_(!1)}),H.addEventListener("heartbeat",$=>{E("heartbeat",$.data)}),u=H}async function L(){if(!b)try{const N=`${e}/api/v1/ui/commands/next?poll=true`,H=await fetch(N,{headers:uG(i)});if(b)return;if(H.status===401||H.status===403){o==null||o(H.status);return}if(!H.ok)return;const $=await H.json();if(!Array.isArray($))return;for(const U of $){if(b)return;if(U.v!==1){l==null||l(U.v);continue}v++;try{await hG(r,U.kind,U.params)}finally{v--}}_(!0)}catch{_(!1)}}function R(){p=n.subscribe(()=>{if(b)return;const N=v>0?"agent":"user";C(N)})}return{connect(){b=!1,!a&&typeof EventSource<"u"?D():(L(),d=setInterval(L,s)),R()},disconnect(){u&&(u.close(),u=null),d!==null&&(clearInterval(d),d=null),m!==null&&(clearTimeout(m),m=null),p&&(p(),p=null),_(!1),b=!0},pushState(N){w(N)}}}const Wmt=new Set(["openFile","openSurface","openPanel","navigateToLine","expandToFile","showNotification","closePanel","closeWorkbenchLeftPane"]);function I0(t,e){const r=t[e];return typeof r=="string"&&r.length>0?r:null}function wfe(t,e){const r=t[e];if(r!==null&&typeof r=="object"&&!Array.isArray(r))return r}function Ymt(t){const e=I0(t,"kind"),r=I0(t,"target");return!e||!r?null:{kind:e,target:r,meta:wfe(t,"meta")}}const Zmt=60;function ih(t,e,r=Zmt){const n=t.surface();if(n){e(n);return}!t.isWorkbenchOpen()||r<=0||requestAnimationFrame(()=>ih(t,e,r-1))}function pS(t,e){if(Wmt.has(t.kind))switch(t.kind){case"openFile":{const r=I0(t.params,"path");if(!r)return;const n=!e.isWorkbenchOpen();n&&e.openWorkbench();const i=a=>{try{a.openFile(r)}catch(s){console.warn("[uiCommandDispatcher] openFile dispatch failed:",s instanceof Error?s.message:s)}};n?requestAnimationFrame(()=>requestAnimationFrame(()=>ih(e,i))):ih(e,i);return}case"openSurface":{const r=Ymt(t.params);if(!r)return;const n=!e.isWorkbenchOpen();n&&e.openWorkbench();const i=a=>{try{a.openSurface(r)}catch(s){console.warn("[uiCommandDispatcher] openSurface dispatch failed:",s instanceof Error?s.message:s)}};n?requestAnimationFrame(()=>requestAnimationFrame(()=>ih(e,i))):ih(e,i);return}case"openPanel":{const r=I0(t.params,"id"),n=I0(t.params,"component");if(!r||!n)return;const i={id:r,component:n,title:I0(t.params,"title")??void 0,params:wfe(t.params,"params")},a=!e.isWorkbenchOpen();a&&e.openWorkbench();const s=o=>{try{o.openPanel(i)}catch(l){console.warn("[uiCommandDispatcher] openPanel dispatch failed:",l instanceof Error?l.message:l)}};a?requestAnimationFrame(()=>requestAnimationFrame(()=>ih(e,s))):ih(e,s);return}case"closeWorkbenchLeftPane":{ih(e,r=>r.closeWorkbenchLeftPane());return}}}function Xmt(){const t=new Map;function e(i,a){let s=t.get(i);return s||(s=new Set,t.set(i,s)),s.add(a),()=>s.delete(a)}function r(i,a){const s=t.get(i);if(s)for(const o of[...s])try{o(a)}catch(l){console.error(`[events] listener for "${String(i)}" threw:`,l)}}function n(){t.clear()}return{on:e,emit:r,_reset:n}}const Kmt="workspace:ui.command",Qmt="workspace:editor.save.start",Jmt="workspace:editor.save.end",egt="workspace:panel.update",tgt="workspace:panel.close",rgt="workspace:agent.data",Ns={uiCommand:Kmt,editorSaveStart:Qmt,editorSaveEnd:Jmt,panelUpdate:egt,panelClose:tgt,agentData:rgt};function Sg(){return{cause:"user",ts:Date.now()}}function ngt(t){return{cause:"agent",toolCallId:t,ts:Date.now()}}function ey(t){return{cause:"remote",toolCallId:t,ts:Date.now()}}function eD(t,e){const r=k.useRef(e);r.current=e,k.useEffect(()=>Or.on(t,n=>r.current(n)),[t])}function igt(t){Or.emit(Ns.agentData,{ts:Date.now(),part:t})}const Or=Xmt(),tD="boring-workspace:ui-command";function mS(t){Or.emit(Ns.uiCommand,{...Sg(),command:t}),typeof globalThis.dispatchEvent=="function"&&typeof CustomEvent<"u"&&globalThis.dispatchEvent(new CustomEvent(tD,{detail:t}))}const agt=1500,sgt=1e3,ogt=5;function dG(t,e){if(!e)return t;const r=new URLSearchParams;for(const[i,a]of Object.entries(e))a!=null&&r.set(i,String(a));const n=r.toString();return n?`${t}${t.includes("?")?"&":"?"}${n}`:t}function lgt(t){const e=t.endpoint??"",r=t.ctx,n=t.query,i=t.eventSourceCtor===null?null:t.eventSourceCtor??(typeof EventSource<"u"?EventSource:null),a=t.fetcher??(typeof fetch<"u"?fetch:null),s=t.reconnectDelayMs??sgt,o=t.maxReconnects??ogt,l=t.pollIntervalMs??agt;let c=!1,u=null,d=null,m=null,p=null,y=0,b=!1;function v(C){C&&typeof C=="object"&&typeof C.kind=="string"&&pS(C,r)}function _(){if(c||b||!a)return;b=!0;const C=async()=>{if(!c){m=new AbortController;try{const E=await a(dG(`${e}/api/v1/ui/commands/next?poll=true`,n),{signal:m.signal});if(c)return;if(E.ok){const D=await E.json();if(Array.isArray(D))for(const L of D)v(L)}}catch{}finally{m=null}c||(d=setTimeout(C,l))}};C()}function w(){if(!c){if(!i){_();return}u=new i(dG(`${e}/api/v1/ui/commands/next`,n)),u.addEventListener("command",C=>{const E=C.data;if(!(typeof E!="string"||E.length===0))try{v(JSON.parse(E))}catch{}}),u.addEventListener("init",()=>{y=0}),u.addEventListener("error",()=>{if(!c){if(u==null||u.close(),u=null,y+=1,y>o){_();return}p=setTimeout(w,s*y)}})}}return w(),()=>{c=!0,u&&(u.close(),u=null),d&&(clearTimeout(d),d=null),m&&(m.abort(),m=null),p&&(clearTimeout(p),p=null)}}const cgt=1e4,ugt=3,hgt=1e3;function fG(t){return t>=500}function dgt(t){return new Promise(e=>setTimeout(e,t))}class fgt{constructor(e){Pr(this,"baseUrl"),Pr(this,"headers"),Pr(this,"onAuthError"),Pr(this,"onTimeout"),Pr(this,"timeout"),Pr(this,"maxRetries"),Pr(this,"retryBaseMs"),this.baseUrl=e.apiBaseUrl.replace(/\/$/,""),this.headers={"Content-Type":"application/json",...e.authHeaders},this.onAuthError=e.onAuthError,this.onTimeout=e.onTimeout,this.timeout=e.timeout??cgt,this.maxRetries=e.maxRetries??ugt,this.retryBaseMs=e.retryBaseMs??hgt}async request(e,r,n,i,a){var s,o;const l=i??this.timeout;let c=null;for(let u=0;u<=this.maxRetries;u++){u>0&&await dgt(this.retryBaseMs*2**(u-1));const d=new AbortController,m=()=>d.abort();a==null||a.addEventListener("abort",m,{once:!0});const p=setTimeout(()=>d.abort(),l);try{const y=await fetch(`${this.baseUrl}${r}`,{method:e,headers:this.headers,body:n!=null?JSON.stringify(n):void 0,signal:d.signal});if(clearTimeout(p),a==null||a.removeEventListener("abort",m),y.status===401||y.status===403)throw(s=this.onAuthError)==null||s.call(this,y.status),new ah(y.status,`Auth error: ${y.status}`);if(fG(y.status)){c=new ah(y.status,`HTTP ${y.status}: ${y.statusText}`);continue}if(!y.ok){const b=await pgt(y);throw new ah(y.status,`HTTP ${y.status}: ${y.statusText}`,b)}return await y.json()}catch(y){if(clearTimeout(p),a==null||a.removeEventListener("abort",m),y instanceof ah&&!fG(y.status))throw y;if(y instanceof DOMException&&y.name==="AbortError"){if(a!=null&&a.aborted)throw y;(o=this.onTimeout)==null||o.call(this,r),c=new ah(0,`Request timeout after ${l}ms: ${r}`);continue}if(y instanceof TypeError){c=y;continue}throw y}}throw c??new ah(0,"Request failed after retries")}async getTree(e,r){return(await this.request("GET",`/api/v1/tree?path=${encodeURIComponent(e)}`,void 0,void 0,r)).entries}async getFile(e,r){return this.request("GET",`/api/v1/files?path=${encodeURIComponent(e)}`,void 0,void 0,r)}async writeFile(e,r,n){try{return{mtimeMs:(await this.request("POST","/api/v1/files",(n==null?void 0:n.expectedMtimeMs)!=null?{path:e,content:r,expectedMtimeMs:n.expectedMtimeMs}:{path:e,content:r})).mtimeMs}}catch(i){throw i instanceof ah&&i.status===409?rD.from(i,e):i}}async deleteFile(e){await this.request("DELETE",`/api/v1/files?path=${encodeURIComponent(e)}`)}async stat(e,r){return this.request("GET",`/api/v1/stat?path=${encodeURIComponent(e)}`,void 0,void 0,r)}async search(e,r,n){const i=new URLSearchParams({q:e});return r!=null&&i.set("limit",String(r)),(await this.request("GET",`/api/v1/files/search?${i}`,void 0,void 0,n)).results}async createDir(e){await this.request("POST","/api/v1/dirs",{path:e})}async moveFile(e,r){await this.request("POST","/api/v1/files/move",{from:e,to:r})}}let ah=class extends Error{constructor(e,r,n){super(r),this.status=e,this.body=n,this.name="FetchError"}},rD=class Cfe extends Error{constructor(e,r,n){super(`File modified on server: ${e}`),this.path=e,this.currentMtimeMs=r,this.expectedMtimeMs=n,this.name="FileConflictError"}static from(e,r){var n,i;const a=e.body&&typeof e.body=="object"?e.body:null;return new Cfe(r,typeof((n=a==null?void 0:a.error)==null?void 0:n.currentMtimeMs)=="number"?a.error.currentMtimeMs:null,typeof((i=a==null?void 0:a.error)==null?void 0:i.expectedMtimeMs)=="number"?a.error.expectedMtimeMs:null)}};async function pgt(t){try{const e=await t.text();return e?JSON.parse(e):null}catch{return null}}const mgt="filesystem:file.changed",ggt="filesystem:file.created",ygt="filesystem:file.moved",bgt="filesystem:file.deleted",jn={changed:mgt,created:ggt,moved:ygt,deleted:bgt},aw="filesystem",Tfe="files",sw=Tfe,HR="files",vgt="filesystem-path",kfe="code-editor",Sfe="csv-viewer",Efe="markdown-editor",Afe="empty-file-panel";function xgt(){const t=aS(),e=Uv(),r=qv();k.useEffect(()=>{const n=Or.on(jn.changed,o=>{ty(t,e,r,o.path)}),i=Or.on(jn.created,o=>{t6(t,e,r),o.kind==="file"&&ty(t,e,r,o.path)}),a=Or.on(jn.moved,o=>{t6(t,e,r),ty(t,e,r,o.from),ty(t,e,r,o.to),pG(t,e,r)}),s=Or.on(jn.deleted,o=>{t6(t,e,r),ty(t,e,r,o.path),pG(t,e,r)});return()=>{n(),i(),a(),s()}},[t,e,r])}function ty(t,e,r,n){t.invalidateQueries({queryKey:[e,r,HR,n]}),t.invalidateQueries({queryKey:[e,r,"stat",n]})}function t6(t,e,r){t.invalidateQueries({queryKey:[e,r,"tree"]})}function pG(t,e,r){t.invalidateQueries({queryKey:[e,r,"search"]})}function _gt(){const t=Uv(),e=qv(),r=aS();k.useEffect(()=>{if(typeof window>"u"||typeof EventSource>"u")return;const n=kgt(Tgt(t,"/api/v1/fs/events"),e);let i,a=!1;const s=new Set,o=[],l=256;try{i=new EventSource(n,{withCredentials:!0})}catch{return}const c=p=>{if(s.has(p))return!1;if(s.add(p),o.push(p),o.length>l){const y=o.shift();y!==void 0&&s.delete(y)}return!0},u=p=>{let y;try{y=JSON.parse(p.data)}catch{return}typeof(y==null?void 0:y.eventId)!="string"||typeof y.change!="object"||y.change==null||c(y.eventId)&&wgt(y.change)},d=()=>{a=!0,i==null||i.close()},m=()=>{s.clear(),o.length=0,r.invalidateQueries({predicate:p=>Cgt(p.queryKey)})};return i.addEventListener("change",u),i.addEventListener("unsupported",d),i.addEventListener("resync-required",m),()=>{i&&(i.removeEventListener("change",u),i.removeEventListener("unsupported",d),i.removeEventListener("resync-required",m),a||i.close(),i=null)}},[t,e,r])}function wgt(t){switch(t.op){case"write":Or.emit(jn.changed,{...ey(),path:t.path});return;case"mkdir":Or.emit(jn.created,{...ey(),path:t.path,kind:"dir"});return;case"unlink":Or.emit(jn.deleted,{...ey(),path:t.path});return;case"rename":t.oldPath?Or.emit(jn.moved,{...ey(),from:t.oldPath,to:t.path}):Or.emit(jn.created,{...ey(),path:t.path,kind:"file"});return}}function Cgt(t){for(const e of t)if(e===HR||e==="tree"||e==="stat"||e==="search")return!0;return!1}function Tgt(t,e){return t?t.endsWith("/")&&e.startsWith("/")?t+e.slice(1):!t.endsWith("/")&&!e.startsWith("/")?`${t}/${e}`:t+e:e}function kgt(t,e){if(!e)return t;const r=t.includes("?")?"&":"?";return`${t}${r}workspaceId=${encodeURIComponent(e)}`}const Dfe=k.createContext(null),Lfe=k.createContext(""),Ife=k.createContext(null);function fu(){const t=k.useContext(Dfe);if(!t)throw new Error("useDataClient must be used within a DataProvider");return t}function Uv(){return k.useContext(Lfe)}function qv(){return k.useContext(Ife)}function Sgt({apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n,client:i,children:a}){const s=k.useRef(null);s.current||(s.current=new jft({defaultOptions:{queries:{retry:3,retryDelay:c=>Math.min(1e3*2**c,3e4)}}}));const o=k.useMemo(()=>i??new fgt({apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n}),[i,t,e,r,n]),l=(e==null?void 0:e["x-boring-workspace-id"])??(e==null?void 0:e["X-Boring-Workspace-Id"])??null;return T.jsx(Hft,{client:s.current,children:T.jsx(Lfe.Provider,{value:t,children:T.jsx(Ife.Provider,{value:l,children:T.jsxs(Dfe.Provider,{value:o,children:[T.jsx(Egt,{}),a]})})})})}function Egt(){return xgt(),_gt(),null}const Agt=new Map;function Dgt(t){return(t??"").replace(/\/$/,"")}function Lgt(t){return t&&t.length>0?t:"."}function Igt(t,e,r){return`${Dgt(t)}\0${e??""}\0${Lgt(r)}`}function Rgt(t,e,r){return Agt.get(Igt(t,e,r))}function VR(t,e){return e instanceof ah&&e.status===404?!1:t<3}function Ogt(t){const e=fu(),r=Uv(),n=qv();return AR({queryKey:[r,n,HR,t],queryFn:({signal:i})=>e.getFile(t,i),enabled:t!=null,staleTime:0,retry:VR})}function Rfe(t){const e=fu(),r=Uv(),n=qv();return AR({queryKey:[r,n,"tree",t],queryFn:async({signal:i})=>await e.getTree(t,i)??[],enabled:t!=null,staleTime:3e3,initialData:()=>Rgt(r,n,t),retry:VR})}function Ngt(t,e){const r=fu(),n=Uv(),i=qv(),[a,s]=k.useState(t),o=k.useRef(void 0);return k.useEffect(()=>(clearTimeout(o.current),o.current=setTimeout(()=>s(t),300),()=>clearTimeout(o.current)),[t]),AR({queryKey:[n,i,"search",a,e],queryFn:({signal:l})=>r.search(a,e,l),enabled:a.length>0,retry:VR})}function Ofe(){const t=fu();return sS({mutationFn:({path:e,content:r,expectedMtimeMs:n})=>t.writeFile(e,r,n!=null?{expectedMtimeMs:n}:void 0),onSuccess:(e,{path:r})=>{Or.emit(jn.changed,{...Sg(),path:r})}})}function Mgt(){const t=fu();return sS({mutationFn:({path:e})=>t.createDir(e),onSuccess:(e,{path:r})=>{Or.emit(jn.created,{...Sg(),path:r,kind:"dir"})}})}function Pgt(){const t=fu();return sS({mutationFn:({from:e,to:r})=>t.moveFile(e,r),onSuccess:(e,{from:r,to:n})=>{Or.emit(jn.moved,{...Sg(),from:r,to:n})}})}function Bgt(){const t=fu();return sS({mutationFn:({path:e})=>t.deleteFile(e),onSuccess:(e,{path:r})=>{Or.emit(jn.deleted,{...Sg(),path:r})}})}class Fgt{constructor(e={}){Pr(this,"panels",new Map),Pr(this,"registrationOrder",[]),Pr(this,"capabilities"),Pr(this,"listeners",new Set),Pr(this,"snapshotCache",null),Pr(this,"subscribe",r=>(this.listeners.add(r),()=>{this.listeners.delete(r)})),Pr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.filteredPanels()),this.snapshotCache)),this.capabilities=new Set(Object.entries(e).filter(([,r])=>r).map(([r])=>r))}register(e,r){const n=typeof r.component=="function"&&r.component.length===0&&/\bimport\s*\(/.test(r.component.toString()),i=this.panels.has(e);this.panels.set(e,{...r,id:e,lazy:r.lazy??n}),i||this.registrationOrder.push(e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.panels)i.pluginId===e&&(this.panels.delete(n),this.registrationOrder=this.registrationOrder.filter(a=>a!==n),r=!0);r&&this.emit()}get(e){return this.panels.get(e)}has(e){return this.panels.has(e)}list(){return this.filteredPanels()}getComponents(){const e={};for(const r of this.filteredPanels()){let n;r.lazy?n=k.lazy(r.component):n=r.component;const i=r.pluginId??r.id,a=r.id,s=r.lazy;e[r.id]=function(o){const l=k.createElement(n,o);return k.createElement(fS,{pluginId:i,contributionKind:"panel",contributionId:a},s?k.createElement(k.Suspense,{fallback:k.createElement($gt)},l):l)}}return e}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}filteredPanels(){return this.registrationOrder.map(e=>this.panels.get(e)).filter(e=>this.satisfiesCapabilities(e))}satisfiesCapabilities(e){var r;return(r=e.requiresCapabilities)!=null&&r.length?e.requiresCapabilities.every(n=>this.capabilities.has(n)):!0}}function $gt(){return k.createElement("div",{style:{display:"flex",height:"100%",alignItems:"center",justifyContent:"center"},className:"text-sm text-muted-foreground animate-pulse"},"Loading…")}class zgt{constructor(){Pr(this,"commands",new Map),Pr(this,"listeners",new Set),Pr(this,"snapshotCache",null),Pr(this,"subscribe",e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})),Pr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.getCommands()),this.snapshotCache))}registerCommand(e){this.commands.set(e.id,e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.commands)i.pluginId===e&&(this.commands.delete(n),r=!0);r&&this.emit()}unregisterCommand(e){this.commands.delete(e)&&this.emit()}getCommand(e){return this.commands.get(e)}getCommands(){return Array.from(this.commands.values())}getActiveCommands(){return this.getCommands().filter(e=>{if(!e.when)return!0;try{return e.when()}catch{return!1}})}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}}const mG={ts:fi,tsx:fi,js:fi,jsx:fi,mjs:fi,cjs:fi,py:fi,rb:fi,go:fi,rs:fi,java:fi,c:fi,cpp:fi,h:fi,cs:fi,swift:fi,kt:fi,sh:fi,bash:fi,zsh:fi,json:G$,jsonl:G$,md:_s,mdx:_s,txt:_s,csv:_s,tsv:_s,yaml:_s,yml:_s,toml:_s,ini:_s,cfg:_s,conf:_s,env:_s,png:Ec,jpg:Ec,jpeg:Ec,gif:Ec,svg:Ec,webp:Ec,ico:Ec,bmp:Ec};function jgt(t){var e;const r=(e=t.split(".").pop())==null?void 0:e.toLowerCase();return r&&r in mG?mG[r]:cy}const q0="workspace.open.path";let nD=null;function Hgt(t){nD=t}function Nfe(){if(!nD)throw new Error("Workspace store not initialized. Wrap your app in WorkspaceProvider.");return nD}function Vgt(){return wR(Nfe(),t=>t.preferences.theme)}function Ugt(){return wR(Nfe(),t=>t.hydrationComplete)}function qgt(t){const{api:e}=t,[r,n]=k.useState(e.title??e.id);k.useEffect(()=>{var u;const d=()=>n(e.title??e.id);d();const m=(u=e.onDidTitleChange)==null?void 0:u.call(e,d);return()=>{var p;return(p=m==null?void 0:m.dispose)==null?void 0:p.call(m)}},[e]);const i=r.endsWith(" ●"),a=i?r.slice(0,-2):r,s=jgt(a),[o,l]=k.useState(!1);eD(Ns.editorSaveStart,u=>{u.panelId===e.id&&l(!0)}),eD(Ns.editorSaveEnd,u=>{u.panelId===e.id&&l(!1)});const c=u=>{u.stopPropagation(),e.close()};return T.jsxs("div",{className:fn("group relative flex h-full w-full min-w-0 items-center gap-1.5 pl-2.5 pr-7 select-none","text-[12.5px] leading-none tracking-tight","cursor-pointer transition-colors"),title:i?`${a} (unsaved changes)`:a,children:[o?T.jsx(JAe,{"data-testid":"tab-saving-spinner","aria-label":"Saving",className:"h-3.5 w-3.5 shrink-0 animate-spin text-[color:var(--accent)]",strokeWidth:2}):T.jsx(s,{className:fn("h-3.5 w-3.5 shrink-0 text-muted-foreground/70","[.dv-active-tab_&]:text-[color:var(--accent)] [.active-tab_&]:text-[color:var(--accent)]"),strokeWidth:1.5}),T.jsx("span",{className:"min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",children:a}),i?T.jsx("span",{"aria-hidden":"true",className:fn("mr-1 h-1.5 w-1.5 shrink-0 rounded-full bg-foreground/35","[.dv-active-tab_&]:bg-foreground/45 [.active-tab_&]:bg-foreground/45")}):null,T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",className:fn("absolute right-1 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground opacity-0","focus-visible:opacity-100 group-hover:opacity-100","[.dv-active-tab_&]:opacity-50 [.active-tab_&]:opacity-50","[.dv-active-tab_&]:hover:opacity-100 [.active-tab_&]:hover:opacity-100"),onClick:c,"aria-label":`Close ${a}`,children:T.jsx(mv,{className:"h-3 w-3",strokeWidth:2.25})})]})}const Ggt=300,Wgt=k.createContext(null);function Ygt(t,e){var r;return"id"in e?t.id===e.id:((r=t.params)==null?void 0:r[e.param])===e.value}function gG(t,e){const r=Array.isArray(e)?e:[e],n=new Set,i=[];for(const a of t.panels)r.some(s=>Ygt(a,s))&&(n.has(a.id)||(n.add(a.id),i.push(a)));return i}function Zgt(t){switch(t){case"left":return"left";case"right":return"right";case"bottom":return"below";case"center":default:return"within"}}function Xgt(t){function e(){if(!t.current)throw new Error("DockviewShell not initialized");return t.current}return{addPanel(r,n){const i=e(),a=i.groups.find(s=>s.id===r);i.addPanel({id:n.id,component:n.component,title:n.title,params:n.params,position:a?{referenceGroup:a}:void 0})},removePanel(r){const n=e(),i=n.getPanel(r);i&&n.removePanel(i)},activatePanel(r){const n=e().getPanel(r);n&&n.api.setActive()},movePanel(r,n){const i=e(),a=i.getPanel(r);if(!a)return;const s=a.view.contentComponent,o=a.params,l=a.title;i.removePanel(a);const c={id:r,component:s,params:o,title:l};if("groupId"in n){const u=i.groups.find(d=>d.id===n.groupId);i.addPanel({...c,position:u?{referenceGroup:u}:void 0})}else{const u=i.getPanel(n.referencePanelId);i.addPanel({...c,position:u?{referencePanel:u,direction:n.direction}:void 0})}},updatePanelParams(r,n){const i=e().getPanel(r);i&&i.api.updateParameters({...i.params??{},...n})},setPanelTitle(r,n){const i=e().getPanel(r);i&&i.api.setTitle(n)},findPanelsByParam(r,n){return e().panels.filter(i=>{var a;return((a=i.params)==null?void 0:a[r])===n}).map(i=>i.id)},getActivePanel(){var r;return((r=e().activePanel)==null?void 0:r.id)??null},toJSON(){return e().toJSON()}}}function Kgt(t){if(!t.constraints)return null;let e=t.constraints.maxWidth;const r=t.constraints.maxWidthViewportRatio;if(typeof r=="number"&&r>0&&typeof window<"u"){const n=Math.floor(window.innerWidth*r);e=typeof e=="number"?Math.min(e,n):n}return{minimumWidth:t.constraints.minWidth,maximumWidth:e,minimumHeight:t.constraints.minHeight,maximumHeight:t.constraints.maxHeight}}function yG(t,e){const r=t.getPanel(e.panel??e.id);if(!(r!=null&&r.group))return;const n=Kgt(e);n&&r.group.api.setConstraints(n)}function Qgt(t,e,r,n,i,a){const s=t.api;if(a.current=s,r)s.fromJSON(r);else{let u=!1;for(const d of e.groups)if(d.panel){if(!n.has(d.panel)){console.error(`[DockviewShell] Panel "${d.panel}" not found in registry. Available: ${n.list().map(m=>m.id).join(", ")}`);continue}s.addPanel({id:d.panel,component:d.panel,params:d.params,position:u?{direction:Zgt(d.position)}:void 0}),u=!0}}for(const u of e.groups){const d=s.getPanel(u.panel??u.id);d!=null&&d.group&&(u.locked&&(d.group.locked="no-drop-target"),u.hideHeader&&(d.group.header.hidden=!0),yG(s,u))}const o=e.groups.filter(u=>{var d;return typeof((d=u.constraints)==null?void 0:d.maxWidthViewportRatio)=="number"});let l;if(o.length>0){const u=()=>{for(const d of o)yG(s,d)};window.addEventListener("resize",u),l=()=>window.removeEventListener("resize",u)}let c;if(i){let u=null;const d=()=>{u&&clearTimeout(u),u=setTimeout(()=>{i(s.toJSON())},Ggt)},m=s.onDidLayoutChange(d),p=()=>{u&&(clearTimeout(u),i(s.toJSON()))};window.addEventListener("beforeunload",p),c=()=>{p(),m.dispose(),window.removeEventListener("beforeunload",p),l==null||l()}}else c=()=>{l==null||l()};return c}function Jgt({layout:t,persistedLayout:e,onReady:r,onLayoutChange:n,allowedPanels:i,className:a,prefixHeaderActions:s,rightHeaderActions:o,watermarkComponent:l}){const c=Vv(),u=Ugt(),d=k.useRef(null),m=k.useRef(null),p=k.useRef(void 0),y=k.useMemo(()=>{const w=c.getComponents();return i?Object.fromEntries(Object.entries(w).filter(([C])=>i.includes(C))):w},[c,i]),b=k.useMemo(()=>Xgt(d),[]),v=k.useCallback(w=>{var C;(C=p.current)==null||C.call(p),p.current=Qgt(w,t,e,c,n,d),r==null||r(w.api)},[t,e,c,n,r]);k.useEffect(()=>()=>{var w;return(w=p.current)==null?void 0:w.call(p)},[]),k.useEffect(()=>{const w=Or.on(Ns.panelUpdate,({match:E,params:D,title:L})=>{const R=d.current;if(R)for(const N of gG(R,E))D&&N.api.updateParameters({...N.params??{},...D}),L&&N.api.setTitle(L)}),C=Or.on(Ns.panelClose,({match:E})=>{const D=d.current;if(D)for(const L of gG(D,E))D.removePanel(L)});return()=>{w(),C()}},[]);const _=k.useCallback(w=>{if(!u){m.current=w;return}v(w)},[u,v]);return k.useEffect(()=>{u&&m.current&&(v(m.current),m.current=null)},[u,v]),u?T.jsx(Wgt.Provider,{value:b,children:T.jsx(pfe,{className:`dv-shell ${a??""}`,components:y,defaultTabComponent:qgt,prefixHeaderActionsComponent:s,rightHeaderActionsComponent:o,watermarkComponent:l,onReady:_})}):T.jsx(e1t,{})}function e1t(){return T.jsx(vJ,{centered:!0,className:"bg-background",label:"Loading workspace..."})}function t1t(t){return{get panelId(){return t.id},get title(){return t.title??t.id},setTitle(e){t.setTitle(e)},close(){t.close()},focus(){t.setActive()},get isActive(){return t.isActive}}}function Mfe({title:t,icon:e,essential:r,children:n,className:i,panelApi:a}){return k.useMemo(()=>a?t1t(a):null,[a]),T.jsxs("div",{className:fn("flex h-full flex-col overflow-hidden",i),children:[T.jsxs("div",{className:"flex h-9 shrink-0 items-center gap-2 border-b border-border bg-muted/50 px-3",children:[e&&T.jsx(e,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),T.jsx("span",{className:"truncate text-sm font-medium",children:t}),T.jsx("div",{className:"flex-1"}),!r&&a&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",className:"h-5 w-5 text-muted-foreground",onClick:()=>a.close(),"aria-label":`Close ${t}`,children:T.jsx("svg",{className:"h-3 w-3",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:T.jsx("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),T.jsx("div",{className:"flex-1 overflow-auto",children:n})]})}const r1t=5e3,n1t=["node_modules",".git",".boring-agent","dist","test-results",/^\.tsbuildinfo/,".vite",".turbo",".next",".cache"];function iD(t,e){for(const r of e)if(typeof r=="string"?r===t:r.test(t))return!0;return!1}function i1t(t,e){return e.length===0?t:t==null?void 0:t.filter(r=>!iD(r.name,e))}function Pfe(t){const e=t.trim();if(!e)return e;const r=/[*?\[\]{}]/.test(e)?e:`*${e}*`;return a1t(r)}function a1t(t){let e="",r=!1,n=!1;for(const i of t){if(n){e+=i,n=!1;continue}if(i==="\\"){e+=i,n=!0;continue}if(i==="["&&!r){r=!0,e+=i;continue}if(i==="]"&&r){r=!1,e+=i;continue}if(!r&&/[a-z]/i.test(i)){const a=i.toLowerCase(),s=i.toUpperCase();e+=a===s?i:`[${s}${a}]`;continue}e+=i}return e}const Bfe=()=>M(()=>import("./FileTree-DRq_bfue-ZuPGj1Ap.js"),__vite__mapDeps([252,253])).then(t=>({default:t.FileTree}));function s1t(){Bfe()}const o1t=k.lazy(Bfe);function Ffe(t,e){const r=[],n=[];for(const i of t)if(i.kind==="dir"){const a=e.get(i.path);r.push({...i,children:a?Ffe(a,e):[]})}else n.push({...i});return r.sort((i,a)=>i.name.localeCompare(a.name)),n.sort((i,a)=>i.name.localeCompare(a.name)),[...r,...n]}function Ud(t){const e=t.lastIndexOf("/");return e>0?t.slice(0,e):"."}function r6(t){return t&&t!==""?t:"."}function n6(t,e){if(!(e!=null&&e.length))return t;const r=new Map;for(const n of t??[])r.set(n.path,n);for(const n of e)r.set(n.path,n);return Array.from(r.values())}function $fe(t,e,r){if(!e||e.kind==="rename")return t;const n={name:"",path:e.path,kind:e.kind==="create-folder"?"dir":"file",isDraft:!0},i=e.parentDir;return i===r||i==="."||i===""?[n,...t]:t.map(a=>{var s;return a.kind!=="dir"?a:a.path===i?{...a,children:[n,...a.children??[]]}:(s=a.children)!=null&&s.length?{...a,children:$fe(a.children,e,r)}:a})}async function l1t(t){var e,r;if(typeof navigator<"u"&&(e=navigator.clipboard)!=null&&e.writeText)try{await navigator.clipboard.writeText(t);return}catch{}if(typeof document>"u")throw new Error("Clipboard not available");const n=document.createElement("textarea");n.value=t,n.setAttribute("readonly",""),n.style.position="fixed",n.style.top="-9999px",n.style.left="-9999px",n.style.opacity="0",document.body.appendChild(n);let i=!1;try{n.focus(),n.select(),i=!!((r=document.execCommand)!=null&&r.call(document,"copy"))}finally{document.body.removeChild(n)}if(!i)throw new Error("Clipboard not available")}function bG({rootDir:t=".",searchQuery:e,bridge:r,ignoreNames:n=n1t,className:i}){var a;const s=fu(),{data:o,error:l,isLoading:c}=Rfe(t),[u,d]=k.useState(new Map),m=r6(t),p=k.useMemo(()=>n6(o,u.get(m)),[o,u,m]),y=k.useMemo(()=>i1t(p,n),[p,n]),{mutateAsync:b}=Ofe(),{mutateAsync:v}=Mgt(),{mutateAsync:_}=Pgt(),{mutateAsync:w}=Bgt(),[C,E]=k.useState(new Map),D=k.useMemo(()=>{if(u.size===0)return C;const oe=new Map(C);for(const[Ae,Be]of u){if(Ae===m)continue;const Ze=n6(oe.get(Ae),Be);Ze&&oe.set(Ae,Ze)}return oe},[C,u,m]),L=k.useRef(null),[R,N]=k.useState(400),[H,$]=k.useState(null),[U,K]=k.useState(null),se=k.useRef(null),[q,j]=k.useState(((a=r==null?void 0:r.getActiveFile)==null?void 0:a.call(r))??null),[F,W]=k.useState(null),[X,de]=k.useState(null),G=k.useRef(0),Q=((y==null?void 0:y.length)??0)+Array.from(D.values()).reduce((oe,Ae)=>oe+Ae.length,0)>=r1t&&((e==null?void 0:e.length)??0)>0,{data:ee}=Ngt(Q?Pfe(e??""):"",50);k.useEffect(()=>{if(!H)return;function oe(Ae){se.current&&!se.current.contains(Ae.target)&&$(null)}return document.addEventListener("pointerdown",oe),()=>document.removeEventListener("pointerdown",oe)},[H]),k.useEffect(()=>{var oe;if(j(((oe=r==null?void 0:r.getActiveFile)==null?void 0:oe.call(r))??null),!!(r!=null&&r.select))return r.select(Ae=>Ae.activeFile,Ae=>{j(Ae)})},[r]),k.useEffect(()=>{const oe=L.current;if(!oe)return;const Ae=new ResizeObserver(([Be])=>{Be&&N(Math.floor(Be.contentRect.height))});return Ae.observe(oe),()=>Ae.disconnect()},[]);const V=(Q&&ee?ee.map(oe=>({name:oe.split("/").pop()??oe,kind:"file",path:oe})):void 0)??Ffe(y??[],D),ne=$fe(V,F,t),ie=k.useCallback(oe=>{j(oe),r==null||r.openFile(oe,{mode:"edit"})},[r]),ce=k.useCallback(async oe=>{try{const Ae=await s.getTree(oe),Be=n.length===0?Ae:Ae.filter(Ze=>!iD(Ze.name,n));E(Ze=>new Map(Ze).set(oe,Be))}catch{}},[s,n]),ge=k.useCallback(async(oe,Ae)=>{const Be=Array.from(new Set(oe)).filter(Ct=>Ct&&Ct!==t&&Ct!==".");if(Be.length===0)return;const Ze=await Promise.all(Be.map(async Ct=>{try{const Lt=await s.getTree(Ct),Pt=n.length===0?Lt:Lt.filter(at=>!iD(at.name,n));return[Ct,Pt]}catch{return null}}));E(Ct=>{const Lt=new Map(Ct);for(const Pt of Ze){if(!Pt)continue;const[at,dt]=Pt;(Ae!=null&&Ae.force||Lt.has(at))&&Lt.set(at,dt)}return Lt})},[s,t,n]),Le=k.useCallback((oe,Ae)=>{d(Be=>{const Ze=r6(oe),Ct=new Map(Be),Lt=n6(Ct.get(Ze),[Ae])??[Ae];return Ct.set(Ze,Lt),Ct})},[]),Te=k.useCallback((oe,Ae)=>{d(Be=>{const Ze=r6(oe),Ct=Be.get(Ze);if(!(Ct!=null&&Ct.length))return Be;const Lt=Ct.filter(at=>at.path!==Ae),Pt=new Map(Be);return Lt.length>0?Pt.set(Ze,Lt):Pt.delete(Ze),Pt})},[]),[Ee,Ne]=k.useState(new Set),Ge=k.useCallback(oe=>{Ne(Ae=>{const Be=new Set(Ae);return Be.add(oe),Be})},[]),ct=k.useCallback(oe=>{Ne(Ae=>{if(!Ae.has(oe))return Ae;const Be=new Set(Ae);return Be.delete(oe),Be})},[]),ot=k.useCallback((oe,Ae)=>{$({node:Ae,x:oe.clientX,y:oe.clientY})},[]),Kt=k.useCallback(oe=>{const Ae=oe.target;Ae.closest("[role=treeitem]")||Ae.closest("[data-path]")||(oe.preventDefault(),$({node:{name:t,kind:"dir",path:t},x:oe.clientX,y:oe.clientY,isBackground:!0}))},[t]),Rr=k.useCallback(async(oe,Ae)=>{const Be=oe.split("/").pop()??oe,Ze=Ae==="."?t:Ae,Ct=Ze==="."?Be:`${Ze}/${Be}`;if(Ct!==oe){Ge(oe);try{await _({from:oe,to:Ct}),await ge([Ud(oe),Ud(Ct)]),il.success({title:"Moved",description:`${oe} → ${Ct}`})}catch(Lt){il.error({title:"Move failed",description:Lt instanceof Error?Lt.message:String(Lt)})}finally{ct(oe)}}},[_,ge,t,Ge,ct]);function Yr(oe){return()=>{$(null),(async()=>{try{await oe()}catch(Ae){il.error({title:"Action failed",description:Ae instanceof Error?Ae.message:String(Ae)})}})()}}const ut=oe=>{const Ae=H==null?void 0:H.node;$(null);const Be=(Ae==null?void 0:Ae.kind)==="dir"?Ae.path:Ae?Ud(Ae.path):t,Ze=`__draft__:${++G.current}`;W({kind:oe,parentDir:Be,path:Ze})},qt=()=>ut("create-file"),Tr=()=>ut("create-folder"),vn=()=>{const oe=H==null?void 0:H.node;$(null),oe&&W({kind:"rename",path:oe.path,initialValue:oe.name})},oi=k.useCallback(async(oe,Ae)=>{const Be=F;if(W(null),!Be)return;const Ze=Ae.trim();if(!Ze)return;const Ct=Be.kind==="rename"?Ud(Be.path):Be.parentDir,Lt=Be.kind==="rename"?Be.path:Ct==="."||Ct===""?Ze:`${Ct}/${Ze}`,Pt=Be.kind==="rename"?Be.path:Lt;Ge(Pt);let at=null;try{if(Be.kind==="rename"){if(Ze===Be.initialValue)return;const dt=Be.path.split("/");dt[dt.length-1]=Ze;const xt=dt.join("/");await _({from:Be.path,to:xt}),await ge([Ud(Be.path)]),il.success({title:"Renamed",description:`${Be.path} → ${xt}`})}else{const dt={name:Ze,kind:Be.kind==="create-file"?"file":"dir",path:Lt};Le(Ct,dt),at=Lt,Be.kind==="create-file"?(await b({path:Lt,content:""}),Or.emit(jn.created,{...Sg(),path:Lt,kind:"file"}),il.success({title:"File created",description:Lt})):(await v({path:Lt}),il.success({title:"Folder created",description:Lt})),await ge([Ct],{force:!0}),de(Lt)}}catch(dt){at&&Te(Ct,at);const xt=dt instanceof Error?dt.message:String(dt);il.error({title:Be.kind==="rename"?"Rename failed":Be.kind==="create-file"?"Create file failed":"Create folder failed",description:xt})}finally{ct(Pt)}},[F,_,b,v,ge,Ge,ct,Le,Te]),Zi=k.useCallback(()=>{W(null)},[]),en=Yr(async()=>{H!=null&&H.node&&(await l1t(H.node.path),il.success({title:"Path copied",description:H.node.path}))}),Pn=k.useCallback(async()=>{if(!U)return;const oe=U;K(null),Ge(oe.path);try{await w({path:oe.path}),Te(Ud(oe.path),oe.path),await ge([Ud(oe.path)]),il.success({title:"Deleted",description:oe.path})}catch(Ae){il.error({title:"Delete failed",description:Ae instanceof Error?Ae.message:String(Ae)})}finally{ct(oe.path)}},[U,w,ge,Ge,ct,Te]),ye=!Q&&((e==null?void 0:e.length)??0)>0?e:void 0;return T.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[l&&T.jsx(gJ,{className:"m-2 rounded-md p-3",title:"Failed to load files",description:l.message}),T.jsx("div",{ref:L,className:"min-h-0 flex-1 overflow-hidden",onContextMenu:Kt,children:c?T.jsx("div",{className:"space-y-1 p-2","data-testid":"tree-skeleton",children:Array.from({length:8}).map((oe,Ae)=>T.jsx(T6e,{className:"h-5",style:{width:`${60+Ae*13%30}%`}},Ae))}):T.jsx(k.Suspense,{fallback:T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(dv,{className:"size-3.5"}),T.jsx("span",{children:"Loading..."})]}),children:T.jsx(o1t,{files:ne,selectedPath:q,searchQuery:ye,editing:F?{path:F.path,isDraft:F.kind!=="rename",initialValue:F.kind==="rename"?F.initialValue:void 0}:null,revealPath:X,pendingPaths:Ee,onSelect:ie,onExpand:ce,onContextMenu:ot,onSubmitEdit:oi,onCancelEdit:Zi,onDragDrop:Rr,height:R,className:fn(i)})})}),H&&T.jsxs("div",{ref:se,role:"menu",className:"fixed z-50 min-w-[10rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",style:{left:H.x,top:H.y},children:[T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:qt,children:"New file"}),T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:Tr,children:"New folder"}),!H.isBackground&&T.jsxs(T.Fragment,{children:[T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:vn,children:"Rename"}),T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start text-destructive hover:bg-destructive/10 hover:text-destructive",onClick:()=>{K(H.node),$(null)},children:"Delete"}),T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:en,children:"Copy path"})]})]}),T.jsx(B6e,{open:U!==null,onOpenChange:oe=>{oe||K(null)},children:T.jsxs(z6e,{children:[T.jsxs(j6e,{children:[T.jsxs(V6e,{children:["Delete ",U==null?void 0:U.name,"?"]}),T.jsx(U6e,{children:"This action cannot be undone."})]}),T.jsxs(H6e,{children:[T.jsx(G6e,{children:"Cancel"}),T.jsx(q6e,{onClick:Pn,children:"Delete"})]})]})})]})}function c1t({params:t,rootDir:e=".",searchQuery:r,panelApi:n,bridge:i,api:a,chromeless:s=!1,className:o}){const l=(t==null?void 0:t.rootDir)??e,c=(t==null?void 0:t.bridge)??i,u=(t==null?void 0:t.chromeless)??s,d=(t==null?void 0:t.searchQuery)??(t==null?void 0:t.query)??r,m=n??a,[p,y]=k.useState(""),[b,v]=k.useState(""),_=k.useRef(void 0);k.useEffect(()=>(clearTimeout(_.current),_.current=setTimeout(()=>v(p),200),()=>clearTimeout(_.current)),[p]);const w=d!==void 0?d||void 0:b||void 0;return u?T.jsx(bG,{rootDir:l,searchQuery:w,bridge:c,className:fn("px-1 pt-1 [&_[role=treeitem]]:!indent-0",o)}):T.jsx(Mfe,{title:"Files",panelApi:m,children:T.jsxs("div",{className:"flex h-full flex-col",children:[T.jsx("div",{className:"border-b border-border px-2 py-1.5",children:T.jsx(hv,{placeholder:"Search files...",value:d??p,onChange:C=>y(C.target.value),className:"h-7 text-xs","aria-label":"Search files"})}),T.jsx("div",{className:"min-h-0 flex-1",children:T.jsx(bG,{rootDir:l,searchQuery:w,bridge:c,className:o})})]})})}function u1t(t){return t.split("/").pop()??t}function h1t(){return k.useEffect(()=>{const t=Or.on(jn.moved,({from:r,to:n,...i})=>{Or.emit(Ns.panelUpdate,{...i,match:[{id:`file:${r}`},{param:"path",value:r}],params:{path:n},title:u1t(n)})}),e=Or.on(jn.deleted,({path:r,...n})=>{Or.emit(Ns.panelClose,{...n,match:[{id:`file:${r}`},{param:"path",value:r}]})});return()=>{t(),e()}},[]),null}const d1t=new Set(["write","edit","unlink","rename","mkdir"]);function f1t(t){if(typeof t!="object"||t===null)return null;const e=t;if(e.type!=="data-file-changed")return null;const r=e.data;if(typeof r!="object"||r===null)return null;const n=r;return typeof n.op!="string"||!d1t.has(n.op)||typeof n.path!="string"||n.path.length===0||typeof n.toolCallId!="string"||n.toolCallId.length===0||n.oldPath!==void 0&&(typeof n.oldPath!="string"||n.oldPath.length===0)?null:n}function p1t(t){const e=f1t(t);if(!e)return;const r=ngt(e.toolCallId);switch(e.op){case"rename":e.oldPath&&Or.emit(jn.moved,{...r,from:e.oldPath,to:e.path});return;case"unlink":Or.emit(jn.deleted,{...r,path:e.path});return;case"mkdir":Or.emit(jn.created,{...r,path:e.path,kind:"dir"});return;case"write":e.existsBefore===!1?Or.emit(jn.created,{...r,path:e.path,kind:"file"}):Or.emit(jn.changed,{...r,path:e.path});return;case"edit":Or.emit(jn.changed,{...r,path:e.path});return}}function m1t(t,e={}){const{skip:r,filesOnly:n=!0}=e;eD(jn.created,i=>{i.cause==="agent"&&(n&&i.kind!=="file"||r!=null&&r(i.path)||t(i.path))})}function g1t(){return k.useEffect(()=>Or.on(Ns.agentData,({part:t})=>{p1t(t)}),[]),m1t(t=>{mS({kind:"openFile",params:{path:t}})}),null}const y1t=1e3,b1t=3e3;function v1t(t,e){const{adapter:r,panelId:n,onDirtyChange:i,serverMtime:a}=e,[s,o]=k.useState(!1),[l,c]=k.useState(!1),[u,d]=k.useState(null),[m,p]=k.useState(!1),[y,b]=k.useState(!1),v=k.useRef(void 0),_=k.useRef(null),w=k.useRef(0),C=k.useRef(null),E=k.useRef(i);E.current=i;const D=k.useRef(r);D.current=r;const L=k.useCallback(async()=>{const se=D.current;if(!se||!t||!se.isDirty())return;if(_.current)return _.current;const q=(async()=>{var j;c(!0),Or.emit(Ns.editorSaveStart,{panelId:n});try{await se.save(),w.current=Date.now(),d(Date.now()),o(!1),(j=E.current)==null||j.call(E,t,!1)}catch{}finally{Or.emit(Ns.editorSaveEnd,{panelId:n}),c(!1),_.current=null}})();return _.current=q,q},[t,n]),R=k.useCallback(()=>{clearTimeout(v.current),v.current=setTimeout(L,y1t)},[L]),N=k.useCallback(()=>{var se;t&&(o(!0),(se=E.current)==null||se.call(E,t,!0),R())},[t,R]),H=k.useCallback(async()=>{var se;if(clearTimeout(v.current),_.current)return _.current;if((se=D.current)!=null&&se.isDirty())return L()},[L]),$=k.useCallback(()=>p(!1),[]),U=k.useCallback(()=>b(!1),[]),K=k.useCallback(se=>{C.current=se,b(!1)},[]);return k.useEffect(()=>{if(!(a==null||!t)){if(C.current===null){C.current=a;return}if(a!==C.current){if(Date.now()-w.current<b1t){C.current=a;return}C.current=a,s?b(!0):p(!0)}}},[a,t,s]),k.useEffect(()=>()=>clearTimeout(v.current),[]),{isDirty:s,isSaving:l,lastSavedAt:u,markDirty:N,flushSave:H,shouldSync:m,ackSync:$,externalChangeWhileDirty:y,ackExternalChange:U,notifySaved:K}}function x1t(t,e){const r=t.metaKey||t.ctrlKey;return e.mod&&!r||!e.mod&&r||e.shift&&!t.shiftKey||!e.shift&&t.shiftKey?!1:t.key.toLowerCase()===e.key.toLowerCase()}function _1t(t){return t instanceof HTMLElement?t.isContentEditable||t.closest("[contenteditable='true'], [contenteditable=''], [contenteditable='plaintext-only']")||t.closest("[role='textbox'], [role='searchbox'], [role='combobox']")?!0:!!t.closest("input, textarea, select"):!1}function UR({shortcuts:t,enabled:e=!0}){const r=k.useRef(t);r.current=t,k.useEffect(()=>{if(!e)return;function n(i){const a=_1t(i.target);for(const s of r.current)if(!(a&&!s.allowInEditable)&&x1t(i,s)){i.preventDefault(),i.stopPropagation(),s.handler();return}}return document.addEventListener("keydown",n,!0),()=>document.removeEventListener("keydown",n,!0)},[e])}function zfe(t){const{path:e,panelId:r=e,initialContent:n=null}=t,{data:i,isLoading:a,error:s}=Ogt(e),{mutateAsync:o}=Ofe(),[l,c]=k.useState(n),u=k.useRef(""),d=k.useRef(!1),m=k.useRef(null),p=k.useRef(null),y=k.useRef(null),[b,v]=k.useState(null);k.useEffect(()=>{m.current!==e&&(c(n),u.current=n??"",d.current=!1,p.current=null,v(null),m.current=e)},[e,n]),k.useEffect(()=>{(i==null?void 0:i.content)!=null&&l===null&&(c(i.content),u.current=i.content,p.current=i.mtimeMs??null)},[i,l]);const _=e&&l!=null?{isDirty:()=>d.current,save:async()=>{var U;try{const K=await o({path:e,content:u.current,expectedMtimeMs:p.current??void 0});typeof K.mtimeMs=="number"&&(p.current=K.mtimeMs,(U=y.current)==null||U.call(y,K.mtimeMs)),d.current=!1,v(null)}catch(K){throw K instanceof rD&&v(K),K}},getContent:()=>u.current}:null,w=v1t(e,{adapter:_,panelId:r,serverMtime:(i==null?void 0:i.mtimeMs)??null});y.current=w.notifySaved,k.useEffect(()=>{if(!(!w.shouldSync||(i==null?void 0:i.content)==null)){if(d.current){w.ackSync();return}c(i.content),u.current=i.content,p.current=i.mtimeMs??null,d.current=!1,w.ackSync()}},[w.shouldSync,w,i,c]),k.useEffect(()=>{!w.externalChangeWhileDirty||(i==null?void 0:i.mtimeMs)==null||(v(new rD(e,i.mtimeMs,p.current)),w.ackExternalChange())},[w.externalChangeWhileDirty,w,i,e]);const C=e?e.split("/").pop()??e:"",[E,D]=k.useState("");k.useEffect(()=>{const U=C?w.isDirty?`${C} ●`:C:"";D(U)},[C,w.isDirty,r]);const L=k.useCallback(U=>{c(U),u.current=U,d.current=!0,w.markDirty()},[c,w]),R=k.useCallback(async()=>{i&&(c(i.content),u.current=i.content,p.current=i.mtimeMs??null,d.current=!1,v(null))},[i,c]),N=k.useCallback(async()=>{try{const U=l??u.current,K=await o({path:e,content:U});typeof K.mtimeMs=="number"&&(p.current=K.mtimeMs),d.current=!1,v(null)}catch{}},[e,o,l]),H=k.useCallback(async()=>{!_||!d.current||await _.save()},[_]),$=k.useCallback(async()=>{await w.flushSave()},[w]);return{isLoading:a,error:s,content:l,isDirty:w.isDirty,conflict:b,onReloadFromServer:R,onOverwrite:N,setContent:L,save:H,flushSave:$,fileName:C,tabTitle:E}}function w1t({conflict:t,onReload:e,onOverwrite:r}){return T.jsx(yJ,{role:"alert",tone:"accent",className:"rounded-none border-x-0 border-t-0",description:T.jsx(T.Fragment,{children:"This file has been modified outside the editor. Your unsaved changes will be lost if you reload, or will overwrite the latest version on disk if you save."}),actions:T.jsxs(T.Fragment,{children:[T.jsx(Nr,{type:"button",variant:"outline",size:"xs",onClick:()=>void e(),children:"Reload"}),T.jsx(Nr,{type:"button",variant:"destructive",size:"xs",onClick:()=>void r(),children:"Overwrite"}),T.jsx("span",{className:"sr-only",children:t.path})]})})}function jfe({path:t,content:e,isLoading:r,error:n,conflict:i,onChange:a,onReload:s,onOverwrite:o,editorComponent:l,editorProps:c={},loadingFallback:u,errorMessage:d,className:m}){if(!t)return T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(I9,{className:"min-h-0 border-0",title:"No file selected",description:"Choose a file from the file tree to open an editor."})});if(n)return T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(gJ,{title:"Failed to load file",description:d??n.message})});const p=u??T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(dv,{className:"size-3.5"}),T.jsx("span",{children:"Loading file..."})]});return T.jsxs("div",{className:`flex h-full min-h-0 flex-col ${m??""}`,children:[i&&T.jsx(w1t,{conflict:i,onReload:s,onOverwrite:o}),T.jsx(k.Suspense,{fallback:p,children:r||e===null?p:T.jsx(l,{content:e,onChange:a,className:c.className,...c})})]})}const C1t=k.lazy(()=>M(()=>import("./CodeEditor-DQqOn4xz-DE6QMowf.js"),__vite__mapDeps([254,255])).then(t=>t.a).then(t=>({default:t.CodeEditor})));function T1t(t){var e;switch((e=t.split(".").pop())==null?void 0:e.toLowerCase()){case"js":case"jsx":return"javascript";case"ts":case"tsx":return"typescript";case"py":return"python";case"json":return"json";case"yaml":case"yml":return"yaml";case"md":case"markdown":return"markdown";case"sql":return"sql";default:return"typescript"}}function vG({params:t,api:e,className:r}){const n=typeof(t==null?void 0:t.path)=="string"?t.path:"",{content:i,isLoading:a,error:s,conflict:o,setContent:l,onReloadFromServer:c,onOverwrite:u,tabTitle:d}=zfe({path:n,panelId:e==null?void 0:e.id});e&&d&&e.setTitle(d);const m=T1t(n);return T.jsx(jfe,{path:n,content:i,isLoading:a,error:s,conflict:o,onChange:l,onReload:c,onOverwrite:u,editorComponent:C1t,editorProps:{language:m,wordWrap:!0,className:r}})}const k1t=k.lazy(()=>M(()=>import("./MarkdownEditor-DjiHxnRv-X5i-P50h.js"),__vite__mapDeps([256,253,255])).then(t=>({default:t.MarkdownEditor})));function S1t({params:t,api:e,className:r}){const n=typeof(t==null?void 0:t.path)=="string"?t.path:"",{content:i,isLoading:a,error:s,conflict:o,setContent:l,onReloadFromServer:c,onOverwrite:u,tabTitle:d}=zfe({path:n,panelId:e==null?void 0:e.id});return e&&d&&e.setTitle(d),T.jsx(jfe,{path:n,content:i,isLoading:a,error:s,conflict:o,onChange:l,onReload:c,onOverwrite:u,editorComponent:k1t,editorProps:{className:r}})}function E1t({params:t}){const{path:e}=t,r=e.includes(".")?e.split(".").pop():void 0;return T.jsx("div",{className:"flex h-full items-center justify-center p-8",children:T.jsx(I9,{className:"border-0",title:"No editor available",description:r?`Install or enable a plugin that handles *.${r} files.`:"Install or enable a plugin that handles this file type.",children:T.jsx(Zd,{children:e})})})}const A1t={id:Afe,title:"Unsupported file",component:E1t,placement:"center",source:"builtin"},xG=[{component:kfe,patterns:["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py","**/*.rs","**/*.go","**/*.json","**/*.yml","**/*.yaml","**/*.toml","**/*.css","**/*.html","**/*.svg","**/*.sh","**/*.sql","**/*.graphql"]},{component:Sfe,patterns:["**/*.csv","**/*.tsv","**/*.data"]},{component:Efe,patterns:["**/*.md","**/*.mdx"]},{component:Afe,fallback:!0}];function D1t(t){const e=t.split("/").filter(Boolean).length,r=t.replace(/[*?!]/g,"").length;return e*10+r}function L1t(t){let e="^";for(let r=0;r<t.length;r++){const n=t[r],i=t[r+1];if(n==="*"&&i==="*"){t[r+2]==="/"?(e+="(?:.*/)?",r+=2):(e+=".*",r+=1);continue}if(n==="*"){e+="[^/]*";continue}if(n==="?"){e+="[^/]";continue}if(/[$()+,.=[\]^{|}\\]/.test(n)){e+=`\\${n}`;continue}e+=n}return new RegExp(`${e}$`)}function I1t(t,e){return L1t(e).test(t.replace(/\\/g,"/"))}function R1t(t){return t.split("/").pop()??t}function O1t(t){let e,r=-1;for(const n of xG)for(const i of n.patterns??[]){if(!I1t(t,i))continue;const a=D1t(i);a>=r&&(e=n,r=a)}return e??xG.find(n=>n.fallback)}const N1t={id:vgt,source:"builtin",resolve(t){if(t.kind!==q0)return;const e=t.target,r=O1t(e);if(r)return{id:`file:${e}`,component:r.component,title:R1t(e),params:{path:e},score:r.fallback?-1:0}}};function M1t(t){const e=t.lastIndexOf("/");return{id:t,title:e>=0?t.slice(e+1):t,subtitle:e>=0?t.slice(0,e+1):void 0}}function _G(){return{items:[],total:0,hasMore:!1}}function P1t({client:t,onSelect:e}){return{id:sw,label:"Files",adapter:{async search({query:r,limit:n,signal:i}){const a=r.trim();if(!a||i!=null&&i.aborted)return _G();const s=await t.search(Pfe(a),n,i);return i!=null&&i.aborted?_G():{items:s.map(M1t),total:s.length,hasMore:!1}}},onSelect:r=>e==null?void 0:e(r.id,r)}}function B1t({apiBaseUrl:t,authHeaders:e,onAuthError:r,apiTimeout:n,children:i}){return k.createElement(Sgt,{apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n,children:i})}function F1t(){return k.useEffect(()=>{s1t()},[]),Rfe("."),null}const $1t=[{type:"provider",id:"filesystem-data",component:B1t},{type:"binding",id:"filesystem-tree-preload",component:F1t},{type:"left-tab",id:Tfe,title:"Files",component:c1t,source:"builtin",icon:zw},{type:"panel",panel:A1t},{type:"panel",panel:{id:kfe,title:"Code",component:vG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Sfe,title:"CSV",component:vG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Efe,title:"Markdown",component:S1t,placement:"center",source:"builtin"}},{type:"surface-resolver",resolver:N1t}];function z1t(){const t=fu(),e=zR();return k.useEffect(()=>{const r=e.get(sw);if(r&&r.pluginId!==aw)return;const n=P1t({client:t,onSelect:i=>{mS({kind:"openFile",params:{path:i}})}});return e.register(n,aw),()=>{var i;((i=e.get(sw))==null?void 0:i.pluginId)===aw&&e.unregister(sw)}},[e,t]),null}function j1t(){return FR({id:aw,label:"Filesystem",outputs:$1t,bindings:[z1t,h1t,g1t]})}const wG=j1t(),H1t=Eh().max(64).regex(/^[a-zA-Z0-9_-]+$/),ow=Eh().max(1024),V1t=R0().nonnegative(),U1t=go({collapsed:Ybe(),width:R0().int().positive()}),q1t=vD(H1t,V1t),G1t=go({root:JW(),width:R0().nonnegative().optional(),height:R0().nonnegative().optional(),orientation:R0().optional()}).passthrough(),W1t=go({id:ow,contentComponent:ow.optional(),title:ow.optional()}).passthrough(),Y1t=go({grid:G1t,panels:vD(ow,W1t)}).passthrough().nullable(),Z1t=go({layout:Y1t,sidebar:U1t,panelSizes:q1t}),X1t=go({theme:xD(["light","dark"])});function K1t(t){const e=Z1t.safeParse(t);return e.success?e.data:(console.error("Layout validation failed:",e.error.issues),null)}function Q1t(t){const e=X1t.safeParse(t);return e.success?e.data:(console.error("Preferences validation failed:",e.error.issues),null)}const CG=1e5,TG="2.0";let kG=!1,uT=null;function SG(t,e){if(!kG)try{localStorage.setItem(t,e)}catch(r){if(r instanceof DOMException&&(r.name==="QuotaExceededError"||r.code===22)){localStorage.removeItem(t);try{localStorage.setItem(t,e)}catch{kG=!0,console.error("localStorage quota exceeded. Persistence disabled for this session."),uT==null||uT()}}}}function J1t(t){try{const e=localStorage.getItem(t);if(!e)return{theme:"light"};const r=JSON.parse(e),n=Q1t(r==null?void 0:r.state);return n?{theme:n.theme}:{theme:"light"}}catch{return{theme:"light"}}}function eyt(t={}){const e=t.storageKey??(t.workspaceId?`boring-ui-v2:layout:${t.workspaceId}`:"boring-ui-v2:layout"),r="boring-ui-v2:preferences",n=t.persistenceEnabled===!1,i=n?{theme:"light"}:J1t(r),a=fft()(gft((o,l)=>({hydrationComplete:!1,layout:null,sidebar:{collapsed:!1,width:260},panelSizes:{},preferences:i,panels:[],activePanel:null,activeFile:null,visibleFiles:[],dirtyFiles:{},notifications:[],setHydrationComplete:c=>o({hydrationComplete:c}),setLayout:c=>o({layout:c}),setSidebar:c=>o({sidebar:{...l().sidebar,...c}}),setPanelSize:(c,u)=>o({panelSizes:{...l().panelSizes,[c]:u}}),setTheme:c=>{o({preferences:{theme:c}}),n||SG(r,JSON.stringify({state:{theme:c},version:0}))},openPanel:c=>o(u=>({panels:u.panels.some(d=>d.id===c.id)?u.panels:[...u.panels,c],activePanel:c.id})),closePanel:c=>o(u=>({panels:u.panels.filter(d=>d.id!==c),activePanel:u.activePanel===c?null:u.activePanel})),activatePanel:c=>o({activePanel:c}),openFile:(c,u)=>o(d=>({activeFile:c,visibleFiles:d.visibleFiles.includes(c)?d.visibleFiles:[...d.visibleFiles,c],activePanel:u??d.activePanel})),markDirty:(c,u)=>o(d=>({dirtyFiles:{...d.dirtyFiles,[c]:{panelId:u,savedAt:null}}})),markClean:c=>o(u=>{const{[c]:d,...m}=u.dirtyFiles;return{dirtyFiles:m}}),showNotification:c=>o(u=>({notifications:[...u.notifications,{...c,id:crypto.randomUUID(),timestamp:Date.now()}]})),dismissNotification:c=>o(u=>({notifications:u.notifications.filter(d=>d.id!==c)})),navigateToLine:(c,u)=>o({activeFile:c}),resetLayout:()=>{localStorage.removeItem(e),o({layout:null,sidebar:{collapsed:!1,width:260},panelSizes:{}})}}),{name:e,partialize:o=>({layout:o.layout,sidebar:o.sidebar,panelSizes:o.panelSizes}),onRehydrateStorage:()=>o=>{o==null||o.setHydrationComplete(!0)},storage:n?{getItem:()=>null,setItem:()=>{},removeItem:()=>{}}:{getItem:o=>{try{const l=localStorage.getItem(o);if(!l)return null;const c=JSON.parse(l);if((c==null?void 0:c.version)!==void 0&&String(c.version)!==TG)return t.onLayoutVersionMismatch?t.onLayoutVersionMismatch():localStorage.removeItem(o),null;const u=K1t(c==null?void 0:c.state);return u?{...c,state:u}:(console.error("Layout restored with defaults"),null)}catch{return console.error("Layout restored with defaults"),null}},setItem:(o,l)=>{const c={...l,version:TG},u=JSON.stringify(c);u.length>CG&&console.warn(`Workspace state serialized to ${u.length} bytes (budget: <${CG})`),SG(o,u)},removeItem:o=>{localStorage.removeItem(o)}}}));uT=()=>{a.getState().showNotification({message:"Storage full — layout changes won't be saved this session.",type:"warning"})};let s=null;return typeof window<"u"&&(s=o=>{o.key===e&&console.log("Layout key changed in another tab (not auto-applied)")},window.addEventListener("storage",s)),Object.assign(a,{cleanup:()=>{s&&typeof window<"u"&&(window.removeEventListener("storage",s),s=null),uT=null}})}function tyt(t){return(t==null?void 0:t["x-boring-workspace-id"])??(t==null?void 0:t["X-Boring-Workspace-Id"])??null}function ryt(t){if(!t)return;const e=t.replace(/\/$/,""),r="/api/v1/ui";return e.endsWith(r)?e.slice(0,-r.length)||void 0:e}function nyt(t){const e=Myt(),{getSurface:r,isWorkbenchOpen:n,openWorkbench:i,bridgeEndpoint:a,...s}=t,o=k.useCallback(u=>{var d;r&&n&&i&&pS({kind:"openFile",params:{path:u}},{surface:r,isWorkbenchOpen:n,openWorkbench:i}),(d=t.onOpenArtifact)==null||d.call(t,u)},[r,n,i,t.onOpenArtifact]),l=tyt(s.requestHeaders);k.useEffect(()=>{if(!(a===null||!r||!n||!i))return lgt({endpoint:ryt(a),query:l?{workspaceId:l}:void 0,ctx:{surface:r,isWorkbenchOpen:n,openWorkbench:i}})},[a,r,n,i,l]);const c=k.useCallback(u=>{var d;igt(u),(d=t.onData)==null||d.call(t,u)},[t.onData]);return T.jsx(e,{chrome:!1,...s,onOpenArtifact:o,onData:c})}function iyt({params:t}){if(!t||typeof t.sessionId!="string"||t.sessionId.length===0)throw new Error("chat panel requires params.sessionId");return k.createElement(nyt,{key:t.sessionId,...t,sessionId:t.sessionId})}const ayt={id:"chat",title:"Chat",component:iyt,placement:"left",source:"builtin"},EG=1440*60*1e3;function lw(t){if(t==null)return null;const e=typeof t=="number"?new Date(t):new Date(t);return Number.isNaN(e.getTime())?null:e}function AG(t){const e=new Date(t);return e.setHours(0,0,0,0),e.getTime()}function syt(t){const e=AG(new Date),r=e-EG,n=e-7*EG,i=[],a=[],s=[],o=[],l=[];for(const d of t){const m=lw(d.updatedAt);if(!m){l.push(d);continue}const p=AG(m);p>=e?i.push(d):p>=r?a.push(d):p>=n?s.push(d):o.push(d)}const c=(d,m)=>{var p,y;const b=((p=lw(d.updatedAt))==null?void 0:p.getTime())??0;return(((y=lw(m.updatedAt))==null?void 0:y.getTime())??0)-b},u=[];return i.length&&u.push({key:"today",label:"Today",items:i.sort(c)}),a.length&&u.push({key:"yesterday",label:"Yesterday",items:a.sort(c)}),s.length&&u.push({key:"week",label:"This week",items:s.sort(c)}),o.length&&u.push({key:"earlier",label:"Earlier",items:o.sort(c)}),l.length&&u.push({key:"undated",label:"Other",items:l}),u}function oyt(t){const e=lw(t);if(!e)return"";const r=Date.now()-e.getTime();if(r<6e4)return"now";const n=Math.floor(r/6e4);if(n<60)return`${n}m`;const i=Math.floor(n/60);if(i<24)return`${i}h`;const a=Math.floor(i/24);if(a<7)return`${a}d`;const s=Math.floor(a/7);if(s<5)return`${s}w`;const o=Math.floor(a/30);return o<12?`${o}mo`:`${Math.floor(a/365)}y`}function lyt({sessions:t,activeId:e,onSwitch:r,onCreate:n,onDelete:i,onClose:a,className:s}){const o=k.useMemo(()=>syt(t),[t]);return T.jsxs("div",{"data-boring-workspace-part":"session-list",className:fn("flex h-full min-h-0 flex-col bg-background",s),role:"navigation","aria-label":"Session history",children:[T.jsxs("div",{className:"flex items-center justify-between border-b border-[color:oklch(from_var(--border)_l_c_h/0.25)] px-3",style:{height:44},children:[T.jsx("span",{className:"text-[10.5px] font-medium uppercase tracking-[0.12em] text-muted-foreground/70",children:"Sessions"}),T.jsxs("div",{className:"flex items-center gap-0.5",children:[n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,"aria-label":"New session",title:"New chat",children:T.jsx(DJ,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),a&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:a,"aria-label":"Close sessions",title:"Close sessions (⌘1)",children:T.jsx(SJ,{className:"h-4 w-4",strokeWidth:1.75})})]})]}),T.jsxs("div",{className:"flex-1 overflow-y-auto py-2",children:[t.length===0&&T.jsxs("div",{className:"px-3 py-8 text-center text-[13px] text-muted-foreground",children:["No sessions yet.",T.jsx("br",{}),"Start a new chat to begin."]}),o.map((l,c)=>T.jsxs("section",{className:fn(c>0&&"mt-2"),children:[T.jsx("div",{className:"px-4 pb-1 pt-2 text-[10.5px] font-medium uppercase tracking-[0.14em] text-muted-foreground/70",children:l.label}),T.jsx("ul",{role:"list",className:"flex flex-col",children:l.items.map(u=>T.jsx(cyt,{session:u,active:u.id===e,onSwitch:r,onDelete:i},u.id))})]},l.key))]})]})}function cyt({session:t,active:e,onSwitch:r,onDelete:n}){const i=oyt(t.updatedAt);return T.jsxs("li",{role:"listitem","data-boring-workspace-part":"session-row","data-boring-state":e?"selected":void 0,className:fn("group relative mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] transition-colors duration-150 ease-[cubic-bezier(0.22,1,0.36,1)]","cursor-pointer hover:bg-foreground/[0.04]",e&&"bg-foreground/[0.06] text-foreground"),onClick:()=>r==null?void 0:r(t.id),children:[T.jsxs("span",{className:"min-w-0 flex-1 truncate leading-5",title:t.title,children:[T.jsx("span",{className:fn(e?"font-medium text-foreground":"text-foreground/90"),children:t.title||"Untitled"}),i&&T.jsxs("span",{className:"ml-1.5 text-muted-foreground/70 tabular-nums",children:["· ",i]})]}),n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",className:"shrink-0 text-muted-foreground opacity-0 hover:text-destructive focus-visible:opacity-100 group-hover:opacity-100",onClick:a=>{a.stopPropagation(),n(t.id)},"aria-label":`Delete ${t.title||"session"}`,children:T.jsx("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:T.jsx("path",{d:"M3.5 3.5l7 7M10.5 3.5l-7 7"})})})]})}function uyt({params:t}){return k.createElement(lyt,{sessions:(t==null?void 0:t.sessions)??[],activeId:t==null?void 0:t.activeId,onSwitch:t==null?void 0:t.onSwitch,onCreate:t==null?void 0:t.onCreate,onDelete:t==null?void 0:t.onDelete,onClose:t==null?void 0:t.onClose})}const hyt={id:"session-list",title:"Sessions",component:uyt,placement:"left",source:"builtin"};function Hfe({rootDir:t="",bridge:e,defaultTab:r,onCollapse:n,className:i}){var a;const s=Vv(),o=k.useSyncExternalStore(s.subscribe,s.getSnapshot,s.getSnapshot),l=k.useMemo(()=>o.filter(H=>H.placement==="left-tab"),[o]),c=k.useMemo(()=>{const H=[];for(const $ of l){const U=$.icon;H.push({id:$.id,title:$.title,icon:U?T.jsx(U,{className:"h-3.5 w-3.5"}):T.jsx(n8e,{className:"h-3.5 w-3.5"}),panel:$})}return H},[l]),[u,d]=k.useState(r??""),m=c.some(H=>H.id===u)?u:((a=c[0])==null?void 0:a.id)??"",[p,y]=k.useState(!1),[b,v]=k.useState(""),[_,w]=k.useState(""),C=k.useRef(null),E=k.useRef(void 0);k.useEffect(()=>(clearTimeout(E.current),E.current=setTimeout(()=>w(b),180),()=>clearTimeout(E.current)),[b]),k.useEffect(()=>{var H;p&&((H=C.current)==null||H.focus())},[p]),k.useEffect(()=>{c.length>0&&!c.some(H=>H.id===u)&&d(c[0].id)},[u,c]);const D=k.useCallback(()=>{y(H=>(H&&v(""),!H))},[]),L=k.useCallback(H=>{H.key==="Escape"&&(H.preventDefault(),y(!1),v(""))},[]),R=c.find(H=>H.id===m),N=k.useMemo(()=>({rootDir:t,bridge:e,query:_,searchQuery:_||void 0,chromeless:!0}),[e,_,t]);return T.jsxs("div",{"data-boring-workspace-part":"workbench-left",className:fn("workbench-left-root flex h-full min-h-0 flex-col",i),children:[T.jsxs("div",{className:"flex h-11 items-center gap-1 border-b border-[color:oklch(from_var(--border)_l_c_h/0.25)] px-2",children:[T.jsx(fJ,{value:m,onValueChange:d,className:"min-w-0 flex-1","aria-label":"Workbench sources",children:T.jsx(pJ,{variant:"line",className:"h-auto gap-0.5 p-0",children:c.map(H=>T.jsxs(mJ,{value:H.id,className:"h-8 flex-none gap-1.5 px-2 py-1 text-[12px] data-[state=active]:text-foreground data-[state=active]:after:bg-[color:var(--accent)]",children:[T.jsx("span",{className:"data-[state=active]:text-[color:var(--accent)]",children:H.icon}),T.jsx("span",{className:"tracking-tight",children:H.title})]},H.id))})}),T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:D,className:fn(p&&"bg-foreground/5 text-foreground"),"aria-label":"Search",title:"Search",children:T.jsx(pA,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,"aria-label":"Hide sources",title:"Hide sources",children:T.jsx(SJ,{className:"h-4 w-4",strokeWidth:1.75})})]}),p&&T.jsxs("div",{className:"flex items-center gap-1 border-b border-border/60 px-2 py-1.5",children:[T.jsx(pA,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),T.jsx(hv,{ref:C,type:"text",value:b,onChange:H=>v(H.target.value),onKeyDown:L,placeholder:`Search ${((R==null?void 0:R.title)??"sources").toLowerCase()}...`,className:"h-7 flex-1 border-0 bg-transparent px-0 py-0 text-xs shadow-none focus-visible:ring-0 dark:bg-transparent"}),b&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>v(""),"aria-label":"Clear search",children:T.jsx(mv,{className:"h-3 w-3"})})]}),T.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:T.jsx(myt,{panel:R==null?void 0:R.panel,params:N})})]})}const dyt={dispose(){}},fyt=new Proxy({},{get:()=>()=>dyt}),pyt=new Proxy({},{get:()=>()=>{}});function myt({panel:t,params:e}){const r=k.useMemo(()=>t?t.lazy?k.lazy(t.component):t.component:null,[t]);return!t||!r?T.jsx("div",{className:"flex h-full items-center justify-center px-4 text-center text-[12px] text-muted-foreground",children:"No workbench source registered."}):T.jsx(fS,{pluginId:t.pluginId??t.id,contributionKind:"panel",contributionId:t.id,children:T.jsx(k.Suspense,{fallback:T.jsx("div",{className:"flex h-full items-center justify-center px-4 text-center text-[12px] text-muted-foreground",children:"Loading source..."}),children:k.createElement(r,{params:e,api:fyt,containerApi:pyt,className:"h-full"})})})}function gyt({params:t}){return k.createElement(Hfe,t??{})}const yyt={id:"workbench-left",title:"Workbench",component:gyt,placement:"left",source:"builtin"},byt="boring-ui-v2:surface",Vfe=1,vyt={version:"2.0",groups:[{id:"artifacts",position:"center",dynamic:!0}]};function xyt(t,e){if(typeof window>"u")return;let r;try{r=window.localStorage.getItem(t)}catch{return}if(!r)return;let n;try{n=JSON.parse(r)}catch{return}if(!n||typeof n!="object")return;const i=n;if(i.v!==Vfe)return;const a=i.layout;if(!a||typeof a!="object")return;const s=a.panels;if(!(!s||typeof s!="object")){for(const o of Object.values(s)){if(!o||typeof o!="object")return;const l=o.contentComponent;if(typeof l!="string"||e&&!e.has(l))return}return a}}function Ufe({visible:t=!0,storageKey:e=byt,allowedPanels:r,persistedLayout:n,onLayoutChange:i,onReady:a,prefixHeaderActions:s,rightHeaderActions:o,watermarkComponent:l,className:c}){const u=!!(i||n),d=k.useMemo(()=>{if(!u)return xyt(e,r?new Set(r):void 0)},[u,e,r]),m=k.useCallback(p=>{if(i){i(p);return}const y={v:Vfe,layout:p};try{window.localStorage.setItem(e,JSON.stringify(y))}catch{}},[i,e]);return t?T.jsx("div",{className:fn("h-full w-full",c),"data-testid":"artifact-surface",children:T.jsx(Jgt,{layout:vyt,persistedLayout:n??d,onLayoutChange:m,onReady:a,allowedPanels:r,prefixHeaderActions:s,rightHeaderActions:o,watermarkComponent:l},`${e}:${u?"ext":"auto"}`)}):null}Ufe.defaultAllowedPanels=[];function aD(t){const e=t.trim().replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/+/g,"/");if(e.includes(".."))throw new Error("Invalid path: path traversal not allowed");return e}function i6(t,e){const r=`file:${e}`;return t.getPanel(r)??t.panels.find(n=>{var i;return((i=n.params)==null?void 0:i.path)===e})}function _yt(t){return t.kind!==q0?t:{...t,target:aD(t.target)}}function a6(t,e){return e.id??`surface:${t.kind}:${t.target}`}let qfe=0;function Sc(){return{seq:++qfe,status:"ok"}}function b_(t,e){return{seq:++qfe,status:"error",error:{code:t,message:e}}}function wyt({rootDir:t="",sidebarDefaultWidth:e=240,sidebarMinWidth:r=180,sidebarMaxWidth:n=480,storageKey:i,onReady:a,onChange:s,onClose:o,extraPanels:l,className:c}){const[u,d]=k.useState(()=>{if(!i)return!1;try{return localStorage.getItem(`${i}:sidebarCollapsed`)==="1"}catch{return!1}}),[m,p]=k.useState(()=>{if(!i)return e;try{const ne=localStorage.getItem(`${i}:sidebarWidth`);if(!ne)return e;const ie=Number(ne);return Number.isFinite(ie)?Math.max(r,Math.min(n,ie)):e}catch{return e}}),y=k.useRef(null),b=k.useRef(null),v=k.useRef(null),[_,w]=k.useState(null),C=k.useRef(a);C.current=a;const E=k.useRef(s);E.current=s;const D=k.useRef(new Set),L=Vv(),R=Smt(),N=k.useRef(L);N.current=L;const H=k.useRef(R);H.current=R;const $=k.useMemo(()=>{const ne=new Set;for(const ie of L.list())ie.placement==="center"&&ne.add(ie.id);for(const ie of l??[])ne.add(ie);return[...ne]},[l,L]),U=k.useCallback(ne=>{const ie=y.current;if(!ie){console.warn("[SurfaceShell] openFile: surface not ready (dockview not initialized)");return}const ce=aD(ne),ge=i6(ie,ce);if(ge){ge.api.setActive();return}const Le={kind:q0,target:ce},Te=H.current.resolve(Le);if(!Te){console.warn(`[SurfaceShell] openFile: no surface resolver matched "${ce}"`);return}if(!N.current.has(Te.component)){console.warn(`[SurfaceShell] openFile: resolver returned unknown panel "${Te.component}" for "${ce}"`);return}const Ee=a6(Le,Te),Ne=ie.getPanel(Ee);if(Ne){Te.params&&Ne.api.updateParameters(Te.params),Ne.api.setActive();return}ie.addPanel({id:Ee,component:Te.component,title:Te.title??ce.split("/").pop()??ce,params:Te.params??{path:ce}})},[]),K=k.useCallback(ne=>{const ie=y.current;if(!ie){console.warn("[SurfaceShell] openSurface: surface not ready (dockview not initialized)");return}const ce=_yt(ne),ge=H.current.resolve(ce);if(!ge){console.warn(`[SurfaceShell] openSurface: no resolver matched kind="${ce.kind}" target="${ce.target}"`);return}const Le=a6(ce,ge),Te=ce.kind===q0?i6(ie,ce.target)??ie.getPanel(Le):ie.getPanel(Le);if(Te){ge.params&&Te.api.updateParameters(ge.params),Te.api.setActive();return}const Ee=N.current;if(!Ee.has(ge.component)){const Ne=Ee.list().map(Ge=>Ge.id).join(", ");throw new Error(`openSurface: unknown component "${ge.component}". Registered panels: [${Ne}]. Register the component through a panel output before resolving to it.`)}ie.addPanel({id:Le,component:ge.component,title:ge.title??ce.target,params:ge.params})},[]),se=k.useCallback(ne=>{const ie=y.current;if(!ie)return;const ce=ie.getPanel(ne.id);if(ce){ne.params&&ce.api.updateParameters(ne.params),ce.api.setActive();return}const ge=N.current;if(!ge.has(ne.component)){const Le=ge.list().map(Te=>Te.id).join(", ");throw new Error(`openPanel: unknown component "${ne.component}". Registered panels: [${Le}]. Add the component to WorkspaceProvider's "panels" prop, or pick one of the registered ids.`)}ie.addPanel({id:ne.id,component:ne.component,title:ne.title??ne.id,params:ne.params})},[]),q=k.useCallback(()=>{var ne;const ie=y.current;return ie?{openTabs:ie.panels.map(ce=>({id:ce.id,title:ce.title??ce.id,params:ce.params??void 0})),activeTab:((ne=ie.activePanel)==null?void 0:ne.id)??null}:{openTabs:[],activeTab:null}},[]),j=k.useCallback(()=>{var ne,ie;const ce=y.current,ge=ce?ce.panels.map(Ne=>({id:Ne.id,component:String(Ne.component??""),params:Ne.params??void 0})):[],Le=((ne=ce==null?void 0:ce.activePanel)==null?void 0:ne.id)??null,Te=((ie=ce==null?void 0:ce.activePanel)==null?void 0:ie.params)??void 0,Ee=typeof(Te==null?void 0:Te.path)=="string"?Te.path:null;return{hydrationComplete:!0,layout:null,sidebar:{collapsed:!1,width:e},panelSizes:{},preferences:{theme:"dark"},panels:ge,activePanel:Le,activeFile:Ee,visibleFiles:ge.map(Ne=>{var Ge;return(Ge=Ne.params)==null?void 0:Ge.path}).filter(Ne=>typeof Ne=="string"),dirtyFiles:{},notifications:[]}},[e]),F=k.useCallback(()=>{const ne=j();for(const ie of D.current)ie(ne)},[j]),W=k.useCallback(ne=>{var ie;y.current=ne,w(ne),(ie=C.current)==null||ie.call(C,{openFile:U,openSurface:K,openPanel:se,closeWorkbenchLeftPane:()=>d(!0),getSnapshot:q});const ce=()=>{var ge;(ge=E.current)==null||ge.call(E,q()),F()};ne.onDidAddPanel(ce),ne.onDidRemovePanel(ce),ne.onDidActivePanelChange(ce),ce()},[U,K,se,q,F]),X=k.useCallback(async ne=>{try{const ie=y.current;if(!ie)return b_("not-ready","surface not ready");const ce=aD(ne),ge=i6(ie,ce);if(ge)return ge.api.setActive(),Sc();const Le={kind:q0,target:ce},Te=H.current.resolve(Le);if(!Te)return b_("NO_SURFACE_RESOLVER",`no registered surface resolver handles ${ce}`);if(!N.current.has(Te.component))return b_("NO_SURFACE_PANEL",`surface resolver "${Le.kind}" returned unknown panel "${Te.component}"`);const Ee=a6(Le,Te),Ne=ie.getPanel(Ee);return Ne?(Te.params&&Ne.api.updateParameters(Te.params),Ne.api.setActive(),Sc()):(ie.addPanel({id:Ee,component:Te.component,title:Te.title??ce.split("/").pop()??ce,params:Te.params??{path:ce}}),Sc())}catch(ie){return b_("INVALID_SURFACE_PATH",ie instanceof Error?ie.message:"failed to open file")}},[]),de=k.useMemo(()=>({getOpenPanels:()=>j().panels,getActiveFile:()=>j().activeFile,getDirtyFiles:()=>[],getVisibleFiles:()=>j().visibleFiles,openFile:X,openPanel:async()=>Sc(),closePanel:async()=>Sc(),closeWorkbenchLeftPane:async()=>(d(!0),Sc()),showNotification:async()=>Sc(),navigateToLine:async()=>Sc(),expandToFile:async()=>Sc(),markDirty:()=>{},markClean:()=>{},subscribe:()=>()=>{},select:(ne,ie)=>{const ce=ge=>ie(ne(ge));return D.current.add(ce),ce(j()),()=>{D.current.delete(ce)}}}),[X,j]),G=k.useCallback(ne=>{u||(ne.preventDefault(),ne.currentTarget.setPointerCapture(ne.pointerId),v.current={startX:ne.clientX,startWidth:m})},[u,m]),Q=k.useCallback(ne=>{const ie=v.current;if(!ie)return;const ce=ne.clientX-ie.startX,ge=Math.max(r,Math.min(n,ie.startWidth+ce));p(ge)},[r,n]),ee=k.useCallback(ne=>{v.current&&(v.current=null,ne.currentTarget.releasePointerCapture(ne.pointerId))},[]),V=k.useCallback(ne=>{if(u)return;const ie=ne.shiftKey?32:16;ne.key==="ArrowLeft"?(ne.preventDefault(),p(ce=>Math.max(r,ce-ie))):ne.key==="ArrowRight"?(ne.preventDefault(),p(ce=>Math.min(n,ce+ie))):ne.key==="Home"?(ne.preventDefault(),p(r)):ne.key==="End"&&(ne.preventDefault(),p(n))},[u,r,n]);return k.useEffect(()=>{if(i)try{localStorage.setItem(`${i}:sidebarWidth`,String(m))}catch{}},[i,m]),k.useEffect(()=>{if(i)try{localStorage.setItem(`${i}:sidebarCollapsed`,u?"1":"0")}catch{}},[i,u]),T.jsxs("div",{ref:b,"data-boring-workspace-part":"surface",className:fn("flex h-full min-h-0 w-full bg-background",c),"data-testid":"surface-shell",children:[u?null:T.jsxs(T.Fragment,{children:[T.jsx("aside",{"data-boring-workspace-part":"surface-sidebar","data-boring-state":"expanded",className:"flex h-full min-h-0 flex-col",style:{width:m,minWidth:m,maxWidth:m},"aria-label":"Workbench left pane",children:T.jsx(Hfe,{rootDir:t,bridge:de,onCollapse:()=>d(!0)})}),T.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar",tabIndex:0,onPointerDown:G,onPointerMove:Q,onPointerUp:ee,onPointerCancel:ee,onKeyDown:V,className:fn("relative w-px shrink-0 cursor-col-resize bg-transparent transition-colors hover:bg-primary/40","focus-visible:outline-none focus-visible:bg-primary/50"),children:T.jsx("span",{"aria-hidden":"true",className:"absolute inset-y-0 -left-1.5 -right-1.5"})})]}),T.jsxs("div",{className:"relative min-w-0 flex-1",children:[T.jsx("div",{"data-boring-workspace-part":"surface-tabs","data-boring-state":u?"collapsed":"expanded",className:"workbench-dockview h-full","data-collapsed-sources":u?"true":void 0,children:T.jsx(Ufe,{storageKey:i,onReady:W,allowedPanels:$,rightHeaderActions:o?()=>T.jsx(Cyt,{onClose:o}):void 0})}),u&&T.jsx("div",{className:"pointer-events-none absolute left-0 top-0 z-20 flex items-center",style:{height:44},children:T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>d(!1),className:"pointer-events-auto ml-2","aria-label":"Show sources",title:"Show sources",children:T.jsx(zw,{className:"h-4 w-4",strokeWidth:1.75})})}),T.jsx(Tyt,{api:_,collapsed:u,onExpandFiles:()=>d(!1),onClose:o})]})]})}function Cyt({onClose:t}){return T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:t,className:"mx-1","aria-label":"Close workbench",title:"Close workbench (⌘2)",children:T.jsx(pv,{className:"h-4 w-4",strokeWidth:1.75})})}function Tyt({api:t,collapsed:e,onExpandFiles:r,onClose:n}){const[i,a]=k.useState(!0);return k.useEffect(()=>{if(!t)return;const s=()=>a(t.panels.length===0);s();const o=t.onDidAddPanel(s),l=t.onDidRemovePanel(s);return()=>{o.dispose(),l.dispose()}},[t]),i?T.jsxs(T.Fragment,{children:[T.jsxs("div",{className:"pointer-events-none absolute inset-x-0 top-0 flex items-center gap-0.5 border-b border-[color:oklch(from_var(--border)_l_c_h/0.4)] bg-background px-1",style:{height:44},children:[e&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,className:"pointer-events-auto mx-1","aria-label":"Show sources",title:"Show sources",children:T.jsx(zw,{className:"h-4 w-4",strokeWidth:1.75})}),T.jsx("div",{className:"flex-1"}),n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,className:"pointer-events-auto mx-1","aria-label":"Close workbench",title:"Close workbench (⌘2)",children:T.jsx(pv,{className:"h-4 w-4",strokeWidth:1.75})})]}),T.jsxs("div",{className:"pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-3 px-6 pt-12 pb-10 text-center",children:[T.jsxs("div",{className:"flex items-center gap-2 text-[10.5px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:[T.jsx("span",{className:"inline-block h-px w-4 bg-[color:var(--accent)]","aria-hidden":"true"}),"Workbench"]}),T.jsx("div",{className:"text-[15px] font-medium tracking-tight text-foreground",children:"Nothing open yet"}),T.jsx("p",{className:"max-w-[280px] text-[12.5px] leading-relaxed text-muted-foreground",children:"Open a source item, or let the agent produce an artifact here."}),e&&T.jsxs(Nr,{type:"button",variant:"outline",size:"sm",onClick:r,className:"pointer-events-auto mt-2 gap-1.5 text-[12px] hover:border-[color:var(--accent)]/40 hover:text-[color:var(--accent)]",children:[T.jsx(zw,{className:"h-3.5 w-3.5",strokeWidth:1.75}),"Show sources"]})]})]}):null}function kyt({params:t}){return k.createElement(wyt,t??{})}const Syt={id:"artifact-surface",title:"Surface",component:kyt,placement:"right",source:"builtin"},Eyt=[ayt,hyt,yyt,Syt];function Ayt(t){return null}function Dyt(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}const DG="workspace-provider",Lyt="workspace-provider",Iyt=k.createContext(null),Ryt=k.createContext(null),qR=k.createContext(null);function Oyt(){const t=k.useContext(qR);if(!t)throw new Error("useWorkspaceContext must be used within a WorkspaceProvider");return t}function Nyt(){return k.useContext(qR)}function Myt(){const{chatPanel:t}=Oyt();if(!t)throw new Error("WorkspaceProvider requires a chatPanel prop before rendering ChatPanelHost");return t}function Pyt({store:t}){const e=k.useMemo(()=>[{key:"b",mod:!0,handler:()=>{const r=t.getState();r.setSidebar({collapsed:!r.sidebar.collapsed})}},{key:"\\",mod:!0,handler:()=>{const r=t.getState();r.panels.find(n=>n.id==="agent")?r.closePanel("agent"):r.openPanel({id:"agent",component:"agent"})}},{key:"w",mod:!0,handler:()=>{const r=t.getState();r.activePanel&&r.closePanel(r.activePanel)}}],[t]);return UR({shortcuts:e}),null}function Byt({commands:t}){const e=$R();return k.useEffect(()=>{if(!(t!=null&&t.length))return;const r=t.map(n=>n.id);for(const n of r)e.unregisterCommand(n);for(const n of t)e.registerCommand({...n,pluginId:n.pluginId??Lyt});return()=>{for(const n of r)e.unregisterCommand(n)}},[e,t]),null}function Fyt({catalogs:t}){const e=zR();return k.useEffect(()=>{if(t!=null&&t.length){for(const r of t)e.register(r,DG);return()=>{e.unregisterByPluginId(DG)}}},[e,t]),null}function $yt({plugins:t}){return T.jsx(T.Fragment,{children:t.map(e=>{var r;const n=((r=e.outputs)==null?void 0:r.filter(i=>i.type==="binding"))??[];return[...(e.bindings??[]).map((i,a)=>T.jsx(i,{},`${e.id}:binding:${a}`)),...n.map(i=>{const a=i.component;return T.jsx(a,{},`${e.id}:output:${i.id}`)})]})})}function zyt({plugins:t,apiBaseUrl:e,authHeaders:r,onAuthError:n,apiTimeout:i,children:a}){return t.flatMap(s=>{var o;return((o=s.outputs)==null?void 0:o.filter(l=>l.type==="provider").map(l=>({plugin:s,output:l})))??[]}).reduceRight((s,{plugin:o,output:l})=>{const c=l.component;return T.jsx(c,{apiBaseUrl:e,authHeaders:r,onAuthError:n,apiTimeout:i,children:s},`${o.id}:provider:${l.id}`)},a)}function jyt({onOpenFile:t}){return k.useEffect(()=>{if(t)return Or.on(Ns.uiCommand,({command:e})=>{if(e.kind!=="openFile")return;const r=e.params.path;typeof r=="string"&&t(r)})},[t]),null}function Hyt({children:t,chatPanel:e,plugins:r,excludeDefaults:n,panels:i,commands:a,catalogs:s,capabilities:o,apiBaseUrl:l="",authHeaders:c,apiTimeout:u,defaultTheme:d,onThemeChange:m,workspaceId:p,storageKey:y,persistenceEnabled:b=!0,bridgeEndpoint:v,onAuthError:_,onOpenFile:w}){const C=k.useRef(null);if(!C.current){const V=eyt({workspaceId:p,storageKey:y,persistenceEnabled:b});Hgt(V);const ne=d??Dyt();ne!=="light"&&!b?V.getState().setTheme(ne):ne!=="light"&&(typeof localStorage<"u"&&localStorage.getItem("boring-ui-v2:preferences")!==null||V.getState().setTheme(ne)),C.current=V}const E=C.current,D=k.useRef(null),L=k.useRef(c);L.current=c;const R=k.useRef(_);R.current=_,k.useEffect(()=>()=>{var V;(V=D.current)==null||V.disconnect(),D.current=null,E.cleanup()},[E]),k.useEffect(()=>{var V,ne;if(D.current&&(D.current.disconnect(),D.current=null),!v)return;const ie=Hmt(E),ce=(ne=(V=L.current)==null?void 0:V.Authorization)==null?void 0:ne.replace(/^Bearer\s+/i,""),ge=Gmt({endpoint:v,bridge:ie,store:E,authToken:ce,onAuthError:Le=>{var Te;return(Te=R.current)==null?void 0:Te.call(R,Le)},onConnectionChange:G});return ge.connect(),D.current=ge,()=>{ge.disconnect(),D.current=null}},[v,E]);const{panelRegistry:N,commandRegistry:H,catalogRegistry:$,surfaceResolverRegistry:U,pluginMetas:K,pluginsWithBindings:se}=k.useMemo(()=>{const V=new Fgt(o),ne=new zgt,ie=new vfe,ce=new xfe;for(const Ee of Eyt){const{id:Ne,...Ge}=Ee;V.register(Ne,Ge)}const ge=new Set(n??[]).has(wG.id)?[]:[wG],Le=[...ge,...r??[]];Cmt({chatPanel:e??Ayt,plugins:r??[],defaults:ge,excludeDefaults:n,registries:{panels:V,commands:ne,catalogs:ie,surfaceResolvers:ce}});const Te=[{id:"workspace:chat-layout",label:"Layout"},{id:"agent:chat-layout",label:"Layout"},...Le.map(Ee=>({id:Ee.id,label:Ee.label,systemPrompt:Ee.systemPrompt}))];if(i)for(const Ee of i){const{id:Ne,...Ge}=Ee;V.register(Ne,Ge)}return{panelRegistry:V,commandRegistry:ne,catalogRegistry:ie,surfaceResolverRegistry:ce,pluginMetas:Te,pluginsWithBindings:Le}},[o,e,r,n,i]),q=k.useRef(m);q.current=m;const j=k.useCallback(V=>{var ne;E.getState().setTheme(V),(ne=q.current)==null||ne.call(q,V)},[E]),F=k.useCallback(()=>{const V=E.getState().preferences.theme==="light"?"dark":"light";j(V)},[E,j]),W=Vgt();k.useEffect(()=>(document.documentElement.setAttribute("data-theme",W),()=>{document.documentElement.removeAttribute("data-theme")}),[W]);const X=k.useMemo(()=>({setTheme:j,toggleTheme:F}),[j,F]),[de,G]=k.useState(!1),Q=k.useMemo(()=>({connected:de}),[de]),ee=k.useMemo(()=>({chatPanel:e??null,registeredPlugins:K}),[e,K]);return T.jsx(qR.Provider,{value:ee,children:T.jsx(Iyt.Provider,{value:X,children:T.jsx(Ryt.Provider,{value:Q,children:T.jsx(Lmt,{children:T.jsx(kmt,{panelRegistry:N,commandRegistry:H,catalogRegistry:$,surfaceResolverRegistry:U,children:T.jsxs(zyt,{plugins:se,apiBaseUrl:l,authHeaders:c,onAuthError:_,apiTimeout:u,children:[T.jsx($yt,{plugins:se}),T.jsx(jyt,{onOpenFile:w}),T.jsx(Byt,{commands:a}),T.jsx(Fyt,{catalogs:s}),T.jsx(Pyt,{store:E}),T.jsx(qyt,{}),T.jsx(P6e,{}),t,!1]})})})})})})}function Vyt(t){const e=Date.now(),r=[];for(const n of t)if(typeof n=="string")if(n.startsWith("cmd:")){const i=n.slice(4);r.push({type:"command",commandId:i,titleSnapshot:i,selectedAt:e})}else{const i=n.lastIndexOf("/");r.push({type:"catalog",catalogId:"files",rowId:n,rowSnapshot:{id:n,title:i>=0?n.slice(i+1):n,subtitle:i>=0?n.slice(0,i+1):void 0},selectedAt:e})}else typeof n=="object"&&n!==null&&"type"in n&&r.push(n);return r}const Gfe="boring-ui-v2:command-palette:recent",sD=50;function GR(){try{const t=localStorage.getItem(Gfe);if(!t)return[];const e=JSON.parse(t);if(!Array.isArray(e))return[];if(e.some(r=>typeof r=="string")){const r=Vyt(e).filter(RG).slice(0,sD);return WR(r),r}return e.filter(RG).slice(0,sD)}catch{return[]}}function WR(t){try{localStorage.setItem(Gfe,JSON.stringify(t.slice(0,sD)))}catch{}}function LG(t,e){const r=GR().filter(n=>!(n.type==="catalog"&&n.catalogId===t&&n.rowId===e.id));r.unshift({type:"catalog",catalogId:t,rowId:e.id,rowSnapshot:e,selectedAt:Date.now()}),WR(r)}function IG(t,e){const r=GR().filter(n=>!(n.type==="command"&&n.commandId===t));r.unshift({type:"command",commandId:t,titleSnapshot:e,selectedAt:Date.now()}),WR(r)}function RG(t){if(typeof t!="object"||t===null)return!1;const e=t;return e.type==="catalog"?typeof e.catalogId=="string"&&typeof e.rowId=="string"&&typeof e.rowSnapshot=="object"&&e.rowSnapshot!==null&&typeof e.selectedAt=="number":e.type==="command"?typeof e.commandId=="string"&&typeof e.titleSnapshot=="string"&&typeof e.selectedAt=="number":!1}const v_=50,OG="Catalogs";function NG(t){return t instanceof Error?t.message:"Search failed"}function Uyt(t){if(!t.when)return!0;try{return t.when()}catch{return!1}}function qyt(t){const[e,r]=k.useState(!1),[n,i]=k.useState(""),[a,s]=k.useState("catalogs"),[o,l]=k.useState(""),[c,u]=k.useState([]),d=Amt(),m=Emt(),p=Nyt(),y=k.useMemo(()=>{const q={};for(const j of(p==null?void 0:p.registeredPlugins)??[])j.label&&(q[j.id]=j.label);return q},[p==null?void 0:p.registeredPlugins]),b=k.useRef(null),v=k.useRef(null),_=k.useRef(!1),w=a==="commands",C=n.trim();k.useEffect(()=>{if(w){l("");return}const q=setTimeout(()=>l(C),180);return()=>clearTimeout(q)},[w,C]),k.useEffect(()=>{if(!e)return;const q=F=>{F.key==="Escape"&&(F.preventDefault(),F.stopPropagation(),r(!1))},j=F=>{const W=F.target;if(!W)return;const X=document.querySelector('[data-slot="dialog-content"]');X&&!X.contains(W)&&(F.preventDefault(),F.stopPropagation(),r(!1))};return window.addEventListener("keydown",q,{capture:!0}),window.addEventListener("pointerdown",j,{capture:!0}),()=>{window.removeEventListener("keydown",q,{capture:!0}),window.removeEventListener("pointerdown",j,{capture:!0})}},[e]);const E=k.useCallback(()=>{!e&&document.activeElement instanceof HTMLElement&&(v.current=document.activeElement),r(!0)},[e]);UR({shortcuts:k.useMemo(()=>[{key:"k",mod:!0,allowInEditable:!0,handler:E},{key:"p",mod:!0,allowInEditable:!0,handler:E}],[E])}),k.useEffect(()=>{if(e)i(""),s("catalogs"),requestAnimationFrame(()=>{var q;(q=b.current)==null||q.focus()});else if(_.current){const q=v.current;q&&q.isConnected&&q.focus(),v.current=null}_.current=e},[e]);const D=k.useCallback(q=>{s(q),i(j=>j.replace(/^>\s*/,"")),requestAnimationFrame(()=>{var j;return(j=b.current)==null?void 0:j.focus()})},[]),L=k.useCallback(()=>{D(a==="commands"?"catalogs":"commands")},[a,D]),R=k.useCallback(q=>{if(q.startsWith(">")){s("commands"),i(q.slice(1));return}i(q)},[]),N=k.useCallback(q=>{q.key==="Tab"&&(q.preventDefault(),q.stopPropagation(),L())},[L]);k.useEffect(()=>{if(w||!o){u([]);return}const q=new AbortController,j=[...d];u(j.map(W=>({catalog:W,rows:[],loading:!0})));const F=(W,X)=>{q.signal.aborted||u(de=>de.map(G=>G.catalog.id===W.id?{catalog:W,...X}:G))};for(const W of j)try{const X=W.adapter.search({query:o,filters:{},limit:v_,offset:0,signal:q.signal});Promise.resolve(X).then(de=>{F(W,{rows:de.items.slice(0,v_),loading:!1})},de=>{F(W,{rows:[],loading:!1,error:NG(de)})})}catch(X){F(W,{rows:[],loading:!1,error:NG(X)})}return()=>{q.abort()}},[d,o,w]);const H=k.useMemo(()=>{if(!w)return[];const q=m.filter(Uyt);if(!C)return q.slice(0,v_);const j=C.toLowerCase();return q.filter(F=>{var W;return F.title.toLowerCase().includes(j)?!0:((W=F.keywords)==null?void 0:W.some(X=>X.toLowerCase().includes(j)))??!1}).slice(0,v_)},[m,w,C]),$=k.useMemo(()=>w||C?[]:GR().filter(q=>q.type==="catalog"?d.some(j=>j.id===q.catalogId):m.some(j=>j.id===q.commandId)),[w,C,d,m]),U=k.useCallback((q,j)=>{LG(q.id,j),q.onSelect(j),r(!1)},[]),K=k.useCallback(q=>{IG(q.id,q.title),q.run(),r(!1)},[]),se=k.useCallback(q=>{if(q.type==="catalog"){const j=d.find(F=>F.id===q.catalogId);j&&(LG(j.id,q.rowSnapshot),j.onSelect(q.rowSnapshot))}else{const j=m.find(F=>F.id===q.commandId);j&&(IG(j.id,j.title),j.run())}r(!1)},[d,m]);return T.jsx(l6e,{open:e,onOpenChange:r,children:T.jsxs(h6e,{className:"cmdk-shell overflow-hidden border-border/60 p-0 shadow-2xl backdrop-blur-md sm:max-w-[640px] [&>button.dialog-close]:hidden",showCloseButton:!1,onPointerDownOutside:()=>r(!1),onEscapeKeyDown:()=>r(!1),children:[T.jsxs(d6e,{className:"sr-only",children:[T.jsx(f6e,{children:"Command Palette"}),T.jsx(p6e,{children:"Search catalogs or switch to commands"})]}),T.jsxs(cJ,{shouldFilter:!1,className:"bg-transparent",children:[T.jsxs("div",{className:"relative flex items-stretch [&>[data-slot=command-input-wrapper]]:flex-1 [&>[data-slot=command-input-wrapper]]:h-auto",children:[T.jsxs("div",{role:"group","aria-label":"Palette mode",className:"my-2 ml-3 inline-flex shrink-0 self-center rounded-md border border-border/60 bg-muted/40 p-0.5",children:[T.jsx(MG,{active:!w,icon:T.jsx(cy,{className:"size-3"}),label:OG,onClick:()=>D("catalogs")}),T.jsx(MG,{active:w,icon:T.jsx(b3,{className:"size-3"}),label:"Commands",onClick:()=>D("commands")})]}),T.jsx(uJ,{ref:b,placeholder:w?"Run a command...":"Search catalogs or type > for commands",value:n,onValueChange:R,onKeyDown:N,className:"h-12 bg-transparent text-base focus-visible:ring-0"})]}),T.jsxs(hJ,{className:"max-h-[440px] overflow-y-auto py-1",children:[T.jsx(dJ,{className:"py-10 text-center text-sm text-muted-foreground",children:w?"No matching commands":"No catalog results"}),!w&&$.length>0&&!C&&T.jsx(M_,{heading:"Recent",children:$.map(q=>{const j=q.type==="catalog"?`recent:catalog:${q.catalogId}:${q.rowId}`:`recent:command:${q.commandId}`;return T.jsx(m0,{value:j,onSelect:()=>se(q),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:q.type==="catalog"?T.jsxs(T.Fragment,{children:[T.jsx(fA,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx(PG,{row:q.rowSnapshot})]}):T.jsxs(T.Fragment,{children:[T.jsx(b3,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx("span",{className:"flex-1 truncate",children:q.titleSnapshot}),T.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:"command"})]})},j)})}),!w&&c.filter(q=>q.loading||q.error||q.rows.length>0).map(q=>T.jsxs(M_,{heading:q.catalog.label,children:[q.loading?T.jsxs(m0,{value:`${q.catalog.id}:loading`,disabled:!0,className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm",children:[T.jsx(cy,{className:"size-4 shrink-0 text-muted-foreground/70"}),T.jsx("span",{className:"text-muted-foreground",children:"Searching..."})]}):null,q.error?T.jsxs(m0,{value:`${q.catalog.id}:error`,disabled:!0,className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm",children:[T.jsx(cy,{className:"size-4 shrink-0 text-destructive/70"}),T.jsx("span",{className:"text-destructive",children:q.error})]}):null,q.rows.map(j=>T.jsx(m0,{value:`${q.catalog.id}:${j.id}:${j.title}:${j.subtitle??""}`,onSelect:()=>U(q.catalog,j),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:T.jsxs(fS,{pluginId:q.catalog.pluginId??q.catalog.id,contributionKind:"catalog-row",contributionId:j.id,children:[T.jsx(cy,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx(PG,{row:j})]})},`${q.catalog.id}:${j.id}`))]},q.catalog.id)),w&&H.length>0&&T.jsx(M_,{heading:"Commands",children:H.map(q=>T.jsxs(m0,{value:q.title,onSelect:()=>K(q),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:[T.jsx(b3,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx("span",{className:"flex-1 truncate",children:q.title}),y[q.pluginId??""]&&T.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:y[q.pluginId??""]}),q.shortcut&&T.jsx(_6e,{children:q.shortcut})]},q.id))})]}),T.jsxs("div",{className:"flex items-center justify-between border-t border-border/50 bg-muted/30 px-3 py-2 text-[11px] text-muted-foreground",children:[T.jsx("span",{className:"font-medium tracking-wide uppercase",children:w?"Commands":OG}),T.jsxs("div",{className:"flex items-center gap-3",children:[T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Zd,{children:"tab"}),T.jsx("span",{children:"switch"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Zd,{children:T.jsx(uAe,{className:"size-3"})}),T.jsx(Zd,{children:T.jsx(TJ,{className:"size-3"})}),T.jsx("span",{children:"navigate"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Zd,{children:T.jsx(EJ,{className:"size-3"})}),T.jsx("span",{children:"open"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Zd,{children:"esc"}),T.jsx("span",{children:"close"})]})]})]})]})]})})}function MG({active:t,icon:e,label:r,onClick:n}){return T.jsxs(Nr,{type:"button",variant:"ghost",size:"sm","aria-pressed":t,onClick:n,className:["h-7 gap-1.5 px-2 text-xs font-medium",t?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"].join(" "),children:[e,r]})}function PG({row:t}){return T.jsxs("span",{className:"flex min-w-0 flex-1 items-baseline gap-2 truncate",children:[T.jsx("span",{className:"truncate font-medium text-foreground",children:t.title}),t.subtitle?T.jsx("span",{className:"truncate text-xs text-muted-foreground/70",children:t.subtitle}):null,t.meta?T.jsx("span",{className:"ml-auto shrink-0 text-xs text-muted-foreground/70",children:t.meta}):null]})}function BG(t,e,r=!0){if(!r||typeof window>"u")return e;try{const n=window.localStorage.getItem(t);if(n==="1")return!0;if(n==="0")return!1}catch{}return e}function Gyt(t,e,r=!0){if(!(!r||typeof window>"u"))try{window.localStorage.setItem(t,e?"1":"0")}catch{}}function FG(t,e,r=!0){if(!r||typeof window>"u")return e;try{const n=window.localStorage.getItem(t);if(n===null)return e;const i=Number(n);return Number.isFinite(i)?i:e}catch{}return e}function Wyt(t,e,r=!0){if(!(!r||typeof window>"u"))try{window.localStorage.setItem(t,String(Math.round(e)))}catch{}}function Yyt(t){const e=t.nav!==null,r=t.surface!==void 0,n=!!t.surface,i=t.nav||"session-list",a=t.center??"chat",s=t.surface||"artifact-surface",o=Zyt(),[l,c]=$G(t.storageKey?`${t.storageKey}:drawerWidth`:void 0,260),[u,d]=$G(t.storageKey?`${t.storageKey}:surfaceWidth`:void 0,680),m=$R(),p=x_(l,200,360),y=Math.max(480,Math.floor(o*.72)),b=x_(u,480,y),v=cw(t.centerParams,"getSurface"),_=cw(t.centerParams,"isWorkbenchOpen"),w=cw(t.centerParams,"openWorkbench"),C=s6(t.navParams,"onClose"),E=s6(t.surfaceParams,"onClose"),D=s6(t.navParams,"onCreate"),L=e?!!C:!!t.onOpenNav,R=n?!!E:!!t.onOpenSurface,N=k.useCallback(()=>{var U;if(e){C==null||C();return}(U=t.onOpenNav)==null||U.call(t)},[C,e,t.onOpenNav]),H=k.useCallback(()=>{var U;if(n){E==null||E();return}(U=t.onOpenSurface)==null||U.call(t)},[E,t.onOpenSurface,n]),$=k.useCallback(()=>{e&&(C==null||C()),n&&(E==null||E()),oD(),Xyt()},[C,E,e,n]);return UR({shortcuts:k.useMemo(()=>{const U=[];return L&&U.push({key:"1",mod:!0,handler:N}),R&&U.push({key:"2",mod:!0,handler:H}),a==="chat"&&U.push({key:"Escape",allowInEditable:!0,handler:$}),U},[L,R,a,$,N,H])}),k.useEffect(()=>{const U="workspace:chat-layout",K="agent:chat-layout";return m.unregisterByPluginId(U),m.unregisterByPluginId(K),m.registerCommand({id:"workspace:open-session-history",title:e?"Close Session History":"Open Session History",keywords:["sessions","history","drawer",e?"close":"open"],shortcut:"⌘1",pluginId:U,when:()=>L,run:N}),m.registerCommand({id:"workspace:open-workbench",title:n?"Close Workbench":"Open Workbench",keywords:["surface","artifacts","sources","workbench",n?"close":"open"],shortcut:"⌘2",pluginId:U,when:()=>R,run:H}),a==="chat"&&m.registerCommand({id:"agent:focus-chat",title:"Focus Chat",keywords:["agent","chat","prompt","composer","input","focus"],pluginId:K,run:$}),D&&m.registerCommand({id:"agent:new-chat",title:"New Chat",keywords:["agent","chat","session","new"],pluginId:K,run:D}),()=>{m.unregisterByPluginId(U),m.unregisterByPluginId(K)}},[m,e,a,r,n,t.navParams,t.surfaceParams,t.onOpenNav,t.onOpenSurface,L,R,C,E,D,$,N,H]),k.useEffect(()=>{if(!v||!_||!w)return;const U={surface:v,isWorkbenchOpen:_,openWorkbench:w};return Or.on(Ns.uiCommand,({command:K})=>{pS(K,U)})},[v,_,w]),T.jsxs("div",{"data-boring-workspace":"","data-boring-workspace-part":"shell",className:fn("relative flex h-full min-h-0 w-full overflow-hidden bg-background",t.className),children:[T.jsxs("aside",{"data-boring-workspace-part":"session-drawer","data-boring-state":e?"expanded":"collapsed","aria-label":"Session browser","aria-hidden":!e,className:fn("relative h-full min-h-0 shrink-0 overflow-hidden bg-background","transition-[width,min-width,max-width] duration-[280ms] ease-[cubic-bezier(0.22,1,0.36,1)]",e&&"border-r border-[color:oklch(from_var(--border)_l_c_h/0.6)]"),style:{width:e?p:0,minWidth:e?p:0,maxWidth:e?p:0,willChange:"width"},children:[T.jsx("div",{className:fn("h-full min-h-0 overflow-hidden","transition-opacity duration-[200ms] ease-[cubic-bezier(0.22,1,0.36,1)]",e?"opacity-100":"opacity-0"),children:T.jsx(o6,{id:i,params:t.navParams})}),e?T.jsx(zG,{side:"drawer-right",ariaLabel:"Resize sessions drawer",onResize:U=>c(K=>x_(K+U,200,360))}):null]}),T.jsxs("main",{"data-boring-workspace-part":"chat-stage","aria-label":"Chat stage",className:"relative h-full min-h-0 min-w-0 flex-1 overflow-hidden bg-background",children:[T.jsx(o6,{id:a,params:t.centerParams}),!e&&t.onOpenNav?T.jsx(jG,{side:"left",icon:"sessions",onClick:t.onOpenNav,label:"Sessions",hint:"⌘1"}):null,!n&&t.onOpenSurface?T.jsx(jG,{side:"right",icon:"workbench",onClick:t.onOpenSurface,label:"Workbench",hint:"⌘2"}):null]}),r?T.jsxs("aside",{"data-boring-workspace-part":"workbench","data-boring-state":n?"expanded":"collapsed","aria-label":n?"Surface":void 0,"aria-hidden":!n,className:fn("relative h-full min-h-0 shrink-0 overflow-hidden bg-background","transition-[width,min-width,max-width] duration-[280ms] ease-[cubic-bezier(0.22,1,0.36,1)]",n&&"border-l border-[color:oklch(from_var(--border)_l_c_h/0.6)]"),style:{width:n?b:0,minWidth:n?b:0,maxWidth:n?b:0,willChange:"width"},children:[T.jsx("div",{className:fn("h-full min-h-0 overflow-hidden","transition-opacity duration-[200ms] ease-[cubic-bezier(0.22,1,0.36,1)]",n?"opacity-100":"opacity-0"),children:T.jsx(o6,{id:s,params:t.surfaceParams})}),n?T.jsx(zG,{side:"surface-left",ariaLabel:"Resize workbench",onResize:U=>d(K=>x_(K-U,480,y))}):null]}):null]})}function x_(t,e,r){return Math.max(e,Math.min(r,t))}function $G(t,e){const[r,n]=k.useState(()=>t?FG(t,e):e);k.useEffect(()=>{n(t?FG(t,e):e)},[t,e]);const i=k.useCallback(a=>{n(s=>{const o=typeof a=="function"?a(s):a;return t&&Wyt(t,o),o})},[t]);return[r,i]}function Zyt(){const[t,e]=k.useState(()=>typeof window<"u"?window.innerWidth:1200);return k.useEffect(()=>{const r=()=>e(window.innerWidth);return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),t}function zG({side:t,ariaLabel:e,onResize:r}){const n=k.useRef(null),i=k.useCallback(o=>{o.preventDefault(),n.current=o.clientX,o.currentTarget.setPointerCapture(o.pointerId),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[]),a=k.useCallback(o=>{if(n.current===null)return;const l=o.clientX-n.current;n.current=o.clientX,r(l)},[r]),s=k.useCallback(o=>{n.current!==null&&(n.current=null,o.currentTarget.releasePointerCapture(o.pointerId),document.body.style.cursor="",document.body.style.userSelect="")},[]);return T.jsx(I6e,{"aria-label":e,orientation:"vertical",onResizeStart:i,onPointerMove:a,onPointerUp:s,onPointerCancel:s,className:fn("absolute top-0 bottom-0 z-20 bg-transparent","transition-colors duration-200","hover:bg-border/70 hover:[transition-delay:150ms]","active:bg-muted-foreground/30",t==="drawer-right"?"right-0":"left-0")})}function cw(t,e){const r=t==null?void 0:t[e];return typeof r=="function"?r:void 0}function s6(t,e){return cw(t,e)}function oD(){if(typeof document>"u")return;const t=document.querySelector('[data-boring-agent] textarea[name="message"], textarea[name="message"]');t==null||t.focus()}function Xyt(){typeof window>"u"||window.requestAnimationFrame(()=>{oD(),window.setTimeout(oD,320)})}function o6({id:t,params:e}){const r=Vv(),n=k.useMemo(()=>r.getComponents(),[r])[t],i=k.useMemo(()=>Kyt(t),[t]);return n?T.jsx(k.Suspense,{fallback:T.jsx(vJ,{centered:!0}),children:T.jsx(n,{params:e,api:i,containerApi:{}})}):null}function Kyt(t){return{id:t,title:t,setTitle:()=>{},setActive:()=>{},close:()=>{},updateParameters:()=>{},onDidParametersChange:()=>({dispose(){}}),onDidActiveChange:()=>({dispose(){}}),onDidDimensionsChange:()=>({dispose(){}}),onDidLocationChange:()=>({dispose(){}}),onDidTitleChange:()=>({dispose(){}}),onWillFocus:()=>({dispose(){}}),onDidFocus:()=>({dispose(){}}),onDidBlur:()=>({dispose(){}}),onWillVisibilityChange:()=>({dispose(){}}),onDidVisibilityChange:()=>({dispose(){}}),onDidConstraintsChange:()=>({dispose(){}})}}function jG({side:t,icon:e,onClick:r,label:n,hint:i}){return T.jsx(si,{type:"button",variant:"ghost",size:"icon-sm",onClick:r,"aria-label":n,title:i?`${n} (${i})`:n,className:fn("absolute top-1/2 z-30 h-9 w-9 -translate-y-1/2 gap-0.5 rounded-lg bg-background text-muted-foreground",t==="left"?"left-2":"right-2","shadow-[0_1px_2px_-1px_oklch(0_0_0/0.08),0_2px_8px_-4px_oklch(0_0_0/0.10),inset_0_0_0_1px_oklch(from_var(--border)_l_c_h/0.7)]","hover:-translate-y-[calc(50%+1px)] hover:bg-muted/60 hover:text-foreground hover:shadow-[0_2px_4px_-1px_oklch(0_0_0/0.08),0_4px_12px_-4px_oklch(0_0_0/0.10),inset_0_0_0_1px_oklch(from_var(--border)_l_c_h/0.9)]","focus-visible:ring-ring/40"),children:e==="sessions"?T.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[T.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"1.8"}),T.jsx("path",{d:"M12 7v5l3.2 2",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})]}):T.jsx("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:T.jsx("path",{d:"M3 7.5 A1.5 1.5 0 0 1 4.5 6 h4 l2 2 h9 A1.5 1.5 0 0 1 21 9.5 V17.5 A1.5 1.5 0 0 1 19.5 19 H4.5 A1.5 1.5 0 0 1 3 17.5 Z",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round"})})})}function Qyt({appTitle:t="Boring",sessionTitle:e,onCommandPalette:r,onNewChat:n,topBarLeft:i,topBarRight:a,className:s}){const o=a??null;return T.jsxs("header",{"data-boring-workspace-part":"topbar",className:fn("relative flex items-center justify-between gap-3 px-4","bg-background border-b border-[color:oklch(from_var(--border)_l_c_h/0.4)]",s),style:{height:52},"aria-label":"App top bar",children:[T.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2.5",children:i??T.jsxs(T.Fragment,{children:[T.jsx("div",{"aria-hidden":"true",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-foreground text-[12px] font-semibold text-background",children:t.charAt(0).toUpperCase()}),T.jsx("span",{className:"truncate text-[13px] font-medium tracking-tight text-foreground",children:t}),e&&T.jsxs(T.Fragment,{children:[T.jsx("span",{"aria-hidden":"true",className:"text-muted-foreground/30",children:"/"}),T.jsx("span",{className:"truncate text-[13px] font-normal text-muted-foreground",children:e})]})]})}),T.jsxs(Nr,{type:"button",variant:"ghost",size:"sm",onClick:r,className:"group h-7 gap-1.5 px-1.5 text-[12.5px] text-muted-foreground/60 hover:bg-transparent hover:text-foreground focus-visible:text-foreground","aria-label":"Search catalogs and commands",title:"Command palette (⌘K)",children:[T.jsx(pA,{className:"h-3.5 w-3.5 shrink-0 opacity-70",strokeWidth:1.75}),T.jsx("span",{className:"font-normal tracking-tight",children:"Search"}),T.jsx(Zd,{className:"ml-1 border-0 bg-transparent p-0 text-[10px] shadow-none group-hover:text-muted-foreground",children:"⌘K"})]}),T.jsxs("div",{className:"flex flex-1 shrink-0 items-center justify-end gap-1",children:[n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-sm",onClick:n,"aria-label":"New chat",title:"New chat",children:T.jsx(DJ,{className:"h-4 w-4"})}),o]})]})}function Jyt(){const t=`s${Date.now()}`;return{sessions:[{id:t,title:"New session",updatedAt:Date.now()}],activeId:t}}function ebt(t,e){var r;if(typeof localStorage>"u")return e();try{const n=localStorage.getItem(t);if(n){const i=JSON.parse(n),a=Array.isArray(i.sessions)?i.sessions:Array.isArray(i.items)?i.items:null;if(a)return{sessions:a,activeId:i.activeId??((r=a[0])==null?void 0:r.id)??""}}}catch{}return e()}function tbt(t,e){if(!(typeof localStorage>"u"))try{localStorage.setItem(t,JSON.stringify(e))}catch{}}function rbt(t={}){const e=t.storageKey??"workspace:sessions",r=t.initial??Jyt;let n=ebt(e,r);const i=new Set,a=s=>{n=s,tbt(e,n),i.forEach(o=>o())};return{getState:()=>n,subscribe(s){return i.add(s),()=>{i.delete(s)}},switchTo(s){a({...n,activeId:s})},create(){const s=`s${Date.now()}`,o={id:s,title:"New session",updatedAt:Date.now()};a({sessions:[o,...n.sessions],activeId:s})},remove(s){var o;const l=n.sessions.filter(u=>u.id!==s),c=n.activeId===s?((o=l[0])==null?void 0:o.id)??"":n.activeId;a({sessions:l,activeId:c})}}}function nbt(t){return k.useSyncExternalStore(t.subscribe,t.getState,t.getState)}function ibt(t){return t.type==="panel"}function abt(t,e){return t.endsWith(":surface")?t.slice(0,-8):e}function HG(t,e,r){const[n,i]=k.useState(()=>BG(t,e,r));k.useEffect(()=>{i(BG(t,e,r))},[t,e,r]);const a=k.useCallback(s=>{i(s),Gyt(t,s,r)},[r,t]);return[n,a]}const sbt={},VG={openTabs:[],activeTab:null};function obt(t){if(!t)return"/api/v1/ui";const e=t.replace(/\/$/,""),r="/api/v1/ui";return e.endsWith(r)?e:`${e}${r}`}function lbt(t){return`${obt(t)}/state`}function cbt(t){var e;const r=t.openTabs.find(i=>i.id===t.activeTab),n=(e=r==null?void 0:r.params)==null?void 0:e.path;return typeof n=="string"?n:null}function ubt({bridgeEndpoint:t,requestHeaders:e,navOpen:r,surfaceOpen:n,snapshot:i}){const a=Vv(),s=k.useRef(null);return k.useEffect(()=>{var o;if(t===null)return;(o=s.current)==null||o.abort();const l=new AbortController;s.current=l;const c={v:1,drawerOpen:r,workbenchOpen:n,openTabs:i.openTabs,activeTab:i.activeTab,activeFile:cbt(i),availablePanels:a.list().map(u=>u.id)};return fetch(lbt(t),{method:"PUT",headers:{...e,"Content-Type":"application/json"},body:JSON.stringify({state:c,causedBy:"user"}),signal:l.signal}).catch(()=>{}),()=>{l.abort()}},[t,r,a,e,i,n]),null}function hbt({workspaceId:t,chatPanel:e,useSessions:r,requestHeaders:n=sbt,sessionStorageKey:i,providerStorageKey:a,surfaceStorageKey:s,beforeShell:o,afterShell:l,panels:c,commands:u,catalogs:d,plugins:m,excludeDefaults:p,capabilities:y,apiBaseUrl:b,authHeaders:v,apiTimeout:_,defaultTheme:w,onThemeChange:C,persistenceEnabled:E,bridgeEndpoint:D,onAuthError:L,sessions:R,activeSessionId:N,onSwitchSession:H,onCreateSession:$,onDeleteSession:U,onActiveSessionIdChange:K,appTitle:se="Boring",defaultSessionTitle:q="New session",topBarLeft:j,topBarRight:F,chatParams:W,extraPanels:X,extraCommands:de,onOpenNav:G,onOpenSurface:Q,className:ee}){var V,ne;const ie=a??`boring-ui-v2:layout:${t}`,ce=s??`${ie}:surface`,ge=abt(ce,ie),Le=E!==!1,Te=i??`boring-workspace:sessions:${t}`,Ee=k.useMemo(()=>rbt({storageKey:Te}),[Te]),Ne=nbt(Ee),Ge=e??Ade,ct=r??(e?void 0:Dde),ot=ct==null?void 0:ct({requestHeaders:n,storageKey:Te}),Kt=R!==void 0||N!==void 0||H!==void 0||$!==void 0||U!==void 0,Rr=ot==null?void 0:ot.sessions.map(nr=>({...nr,title:nr.title??"New session"})),Yr=ot?Rr??[]:Kt?R??[]:Ne.sessions,ut=ot?ot.activeSessionId??null:Kt?N??null:Ne.activeId,qt=(ot==null?void 0:ot.switch)??H??Ee.switchTo,Tr=ot?()=>ot.create():$??Ee.create,vn=(ot==null?void 0:ot.delete)??U??Ee.remove,oi=((V=Yr.find(nr=>nr.id===ut))==null?void 0:V.title)??void 0,[Zi,en]=HG(`${ge}:drawer`,!0,Le),[Pn,ye]=HG(`${ge}:workbenchOpen`,!1,Le),oe=k.useRef(!1),Ae=k.useRef(Pn),Be=k.useRef(ce),Ze=k.useRef(null);Be.current=ce;const[Ct,Lt]=k.useState(()=>({key:ce,snapshot:VG})),Pt=Ct.key===ce?Ct.snapshot:VG;k.useEffect(()=>{oe.current=!1},[t]),k.useEffect(()=>{if(!(!ot||ot.loading)){if(ot.sessions.length>0){oe.current=!1;return}oe.current||(oe.current=!0,Promise.resolve(ot.create({title:q})).catch(()=>{oe.current=!1}))}},[q,ot]),k.useEffect(()=>{Ae.current=Pn},[Pn]);const at=k.useCallback(nr=>{Ze.current={key:ce,api:nr},Lt({key:ce,snapshot:nr.getSnapshot()})},[ce]),dt=k.useCallback(nr=>{Lt({key:ce,snapshot:nr})},[ce]),xt=k.useCallback(()=>{const nr=Ze.current;return(nr==null?void 0:nr.key)===Be.current?nr.api:null},[]),Zr=k.useCallback(()=>Ae.current,[]),tn=k.useCallback(()=>{Ae.current=!0,ye(!0)},[ye]),Ta=k.useMemo(()=>(m==null?void 0:m.flatMap(nr=>nr.outputs??[]))??[],[m]),Qo=k.useMemo(()=>Ta.some(nr=>nr.type==="left-tab"),[Ta]),yo=k.useMemo(()=>Ta.filter(ibt).map(nr=>nr.panel.id),[Ta]),Ql=k.useMemo(()=>[...X??[],...yo],[X,yo]),ua=ut??((ne=Yr[0])==null?void 0:ne.id)??"default";k.useEffect(()=>{var nr;const Bs=Jo=>{const Fs=Jo.detail;!Fs||typeof Fs!="object"||pS(Fs,{surface:xt,isWorkbenchOpen:Zr,openWorkbench:tn})};return(nr=globalThis.addEventListener)==null||nr.call(globalThis,tD,Bs),()=>{var Jo;return(Jo=globalThis.removeEventListener)==null?void 0:Jo.call(globalThis,tD,Bs)}},[xt,Zr,tn]),k.useEffect(()=>{ut&&(K==null||K(ut))},[ut,K]);const pu=k.useMemo(()=>({...W,sessionId:ua,requestHeaders:n,bridgeEndpoint:D,getSurface:xt,isWorkbenchOpen:Zr,openWorkbench:tn,extraCommands:de}),[W,ua,n,D,xt,Zr,tn,de]),Jl=k.useMemo(()=>({storageKey:ce,extraPanels:Ql,onReady:at,onChange:dt,onClose:()=>{Ae.current=!1,ye(!1)}}),[dt,at,ce,Ql,ye]);return T.jsx("div",{className:"h-full bg-background text-foreground",children:T.jsxs(Hyt,{chatPanel:Ge,panels:c,commands:u,catalogs:d,plugins:m,excludeDefaults:p,capabilities:y,apiBaseUrl:b,authHeaders:v,apiTimeout:_,defaultTheme:w,onThemeChange:C,workspaceId:t,storageKey:ie,persistenceEnabled:E,bridgeEndpoint:null,onAuthError:L,children:[o,T.jsx(ubt,{bridgeEndpoint:D,requestHeaders:n,navOpen:Zi,surfaceOpen:Pn,snapshot:Pt}),T.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[T.jsx(Qyt,{appTitle:se,sessionTitle:oi??q,onCommandPalette:()=>{document.dispatchEvent(new KeyboardEvent("keydown",{key:"k",metaKey:!0,ctrlKey:!0,bubbles:!0,cancelable:!0}))},onNewChat:Tr,topBarLeft:j,topBarRight:F}),T.jsx(Yyt,{className:ee,nav:Zi?"session-list":null,navParams:{sessions:Yr,activeId:ut,onSwitch:qt,onCreate:Tr,onDelete:vn,onClose:()=>en(!1)},center:"chat",centerParams:pu,surface:Pn?"artifact-surface":null,surfaceParams:Jl,sidebar:Pn&&Qo?"workbench-left":null,storageKey:Le?ge:void 0,onOpenNav:()=>{en(!0),G==null||G()},onOpenSurface:()=>{Ae.current=!0,ye(!0),Q==null||Q()}})]}),l]})})}const uw="__showcase__",dbt="data:image/svg+xml;utf8,"+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 160"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="%23312e81"/><stop offset="1" stop-color="%230ea5e9"/></linearGradient></defs><rect width="240" height="160" fill="url(%23g)"/><text x="120" y="90" text-anchor="middle" font-family="Inter,system-ui" font-size="24" font-weight="700" fill="white">mockup.png</text></svg>'),fbt=[{id:"u0",role:"user",parts:[{type:"file",url:dbt,mediaType:"image/svg+xml",filename:"mockup.svg"},{type:"text",text:"Can you take a look at this mockup and suggest improvements?"}]},{id:"a0",role:"assistant",parts:[{type:"text",text:"Got it — the gradient tile reads cleanly. A few quick calls: tighten the type tracking, drop the drop-shadow, and reserve an 8px safe area around the text so it breathes on small sizes."}]},{id:"u0a",role:"user",parts:[{type:"file",url:"data:text/plain;base64,"+btoa(`# Project notes
|
|
1308
|
+
`)}const Rmt=1024,Omt=500,Nmt=/^[a-zA-Z0-9_-]+$/,Mmt=64,y_=50,cG=16384,jR=Eh().min(1).max(Rmt).refine(t=>!t.includes(".."),"path traversal not allowed").refine(t=>!t.includes("\0"),"null bytes not allowed"),Pmt=go({path:jR,mode:xD(["view","edit","diff"]).optional()}),Bmt=go({id:Eh().max(Mmt).regex(Nmt,"invalid panel ID"),component:Eh().min(1),params:vD(JW()).optional().refine(t=>{if(!t)return!0;try{return new TextEncoder().encode(JSON.stringify(t)).byteLength<=cG}catch{return!1}},`params must be JSON-serializable and under ${cG} bytes`),title:Eh().max(200).optional()}),Fmt=go({id:Eh().min(1)}),$mt=go({msg:Eh().max(Omt),level:xD(["info","warn","error"]).optional()}),zmt=go({file:jR,line:R0().int().positive()}),jmt=go({path:jR});function Hmt(t){let e=0;const r=new Map;function n(){return++e}function i(){return{seq:n(),status:"ok"}}function a(l,c){return{seq:n(),status:"error",error:{code:l,message:c}}}function s(l,c){const u=r.get(l);if(u)for(const d of[...u])try{d(c)}catch(m){console.error(`[bridge] listener for "${String(l)}" threw:`,m)}}const o={getOpenPanels(){return t.getState().panels},getActiveFile(){return t.getState().activeFile},getDirtyFiles(){return Object.keys(t.getState().dirtyFiles)},getVisibleFiles(){return t.getState().visibleFiles},async openFile(l,c){const u=Pmt.safeParse({path:l,mode:c==null?void 0:c.mode});if(!u.success)return a("VALIDATION",u.error.issues[0].message);const d=t.getState(),m=u.data.mode??"edit",p=`file:${l}`;if(d.panels.find(y=>y.id===p)){const y=d.activePanel;return d.activatePanel(p),d.visibleFiles.includes(l)||d.openFile(l,p),s("panel:activated",{panelId:p,previousPanelId:y}),i()}return d.panels.length>=y_?a("MAX_PANELS",`cannot exceed ${y_} open panels`):(d.openFile(l,p),d.openPanel({id:p,component:"editor",params:{path:l,mode:m}}),s("file:opened",{path:l,mode:m}),s("panel:opened",{panelId:p,params:{path:l,mode:m}}),i())},async openPanel(l){const c=Bmt.safeParse(l);if(!c.success)return a("VALIDATION",c.error.issues[0].message);const u=t.getState();if(u.panels.find(d=>d.id===l.id)){const d=u.activePanel;return u.activatePanel(l.id),s("panel:activated",{panelId:l.id,previousPanelId:d}),i()}return u.panels.length>=y_?a("MAX_PANELS",`cannot exceed ${y_} open panels`):(u.openPanel({id:l.id,component:l.component,params:l.params}),s("panel:opened",{panelId:l.id,params:l.params??{}}),i())},async closePanel(l){const c=Fmt.safeParse({id:l});if(!c.success)return a("VALIDATION",c.error.issues[0].message);const u=t.getState(),d=u.panels.find(m=>m.id===l);return d?d.essential?a("ESSENTIAL",`panel ${l} is essential and cannot be closed`):(u.closePanel(l),s("panel:closed",{panelId:l}),i()):a("NOT_FOUND",`panel ${l} not found`)},async closeWorkbenchLeftPane(){return t.getState().setSidebar({collapsed:!0}),s("sidebar:toggled",{collapsed:!0}),i()},async showNotification(l,c="info"){const u=$mt.safeParse({msg:l,level:c});if(!u.success)return a("VALIDATION",u.error.issues[0].message);const d=u.data.level??"info",m=d==="warn"?"warning":d;return t.getState().showNotification({message:u.data.msg,type:m}),s("notification:shown",{message:u.data.msg,level:d}),i()},async navigateToLine(l,c){const u=zmt.safeParse({file:l,line:c});if(!u.success)return a("VALIDATION",u.error.issues[0].message);const d=await o.openFile(l);return d.status==="error"?d:(t.getState().navigateToLine(l,u.data.line),i())},async expandToFile(l){const c=jmt.safeParse({path:l});if(!c.success)return a("VALIDATION",c.error.issues[0].message);const u=t.getState();return u.sidebar.collapsed&&(u.setSidebar({collapsed:!1}),s("sidebar:toggled",{collapsed:!1})),s("tree:expand",{path:c.data.path}),i()},markDirty(l){t.getState().markDirty(l,"bridge"),s("file:dirty",{path:l,dirty:!0})},markClean(l){t.getState().markClean(l),s("file:dirty",{path:l,dirty:!1})},subscribe(l,c){let u=r.get(l);u||(u=new Set,r.set(l,u));const d=c;return u.add(d),()=>u.delete(d)},select(l,c){let u=l(t.getState());return t.subscribe(d=>{const m=l(d);Object.is(m,u)||(u=m,c(m))})}};return o}const Vmt=100,Umt=3e3;function uG(t){const e={"Content-Type":"application/json"};return t&&(e.Authorization=`Bearer ${t}`),e}function qmt(t,e){const r=t.getState();return{v:1,causedBy:e,openPanels:r.panels,activePanel:r.activePanel,activeFile:r.activeFile,visibleFiles:r.visibleFiles,dirtyFiles:Object.keys(r.dirtyFiles)}}async function hG(t,e,r){switch(e){case"openFile":await t.openFile(r.path,r.mode?{mode:r.mode}:void 0);break;case"openPanel":await t.openPanel({id:r.id,component:r.component,params:r.params,title:r.title});break;case"closePanel":await t.closePanel(r.id);break;case"closeWorkbenchLeftPane":await t.closeWorkbenchLeftPane();break;case"showNotification":await t.showNotification(r.msg,r.level);break;case"navigateToLine":await t.navigateToLine(r.file,r.line);break;case"expandToFile":await t.expandToFile(r.path);break;case"markDirty":t.markDirty(r.path);break;case"markClean":t.markClean(r.path);break}}function Gmt(t){const{endpoint:e,bridge:r,store:n,authToken:i,pollMode:a=!1,pollInterval:s=Umt,onAuthError:o,onVersionMismatch:l,onConnectionChange:c}=t;let u=null,d=null,m=null,p=null,y=!1,b=!1,v=0;function _(N){b||y!==N&&(y=N,c==null||c(N))}async function w(N){if(b)return;const H=qmt(n,N);try{const $=await fetch(`${e}/api/v1/ui/state`,{method:"PUT",headers:uG(i),body:JSON.stringify(H)});if(b)return;($.status===401||$.status===403)&&(o==null||o($.status))}catch{}}function C(N){m!==null&&clearTimeout(m),m=setTimeout(()=>{m=null,w(N)},Vmt)}function E(N,H){if(!b)switch(N){case"init":{_(!0),w("restore");break}case"command":{let $;try{$=JSON.parse(H)}catch{return}if($.v!==1){l==null||l($.v);return}v++,hG(r,$.kind,$.params).finally(()=>{v--});break}case"error":{let $;try{$=JSON.parse(H)}catch{return}if($.v!==1){l==null||l($.v);return}r.showNotification($.message,"error");break}}}function D(){const N=`${e}/api/v1/ui/commands/next`,H=new EventSource(N,{withCredentials:!0});H.addEventListener("init",$=>{E("init",$.data)}),H.addEventListener("command",$=>{E("command",$.data)}),H.addEventListener("error",$=>{$.data?E("error",$.data):_(!1)}),H.addEventListener("heartbeat",$=>{E("heartbeat",$.data)}),u=H}async function L(){if(!b)try{const N=`${e}/api/v1/ui/commands/next?poll=true`,H=await fetch(N,{headers:uG(i)});if(b)return;if(H.status===401||H.status===403){o==null||o(H.status);return}if(!H.ok)return;const $=await H.json();if(!Array.isArray($))return;for(const U of $){if(b)return;if(U.v!==1){l==null||l(U.v);continue}v++;try{await hG(r,U.kind,U.params)}finally{v--}}_(!0)}catch{_(!1)}}function R(){p=n.subscribe(()=>{if(b)return;const N=v>0?"agent":"user";C(N)})}return{connect(){b=!1,!a&&typeof EventSource<"u"?D():(L(),d=setInterval(L,s)),R()},disconnect(){u&&(u.close(),u=null),d!==null&&(clearInterval(d),d=null),m!==null&&(clearTimeout(m),m=null),p&&(p(),p=null),_(!1),b=!0},pushState(N){w(N)}}}const Wmt=new Set(["openFile","openSurface","openPanel","navigateToLine","expandToFile","showNotification","closePanel","closeWorkbenchLeftPane"]);function I0(t,e){const r=t[e];return typeof r=="string"&&r.length>0?r:null}function wfe(t,e){const r=t[e];if(r!==null&&typeof r=="object"&&!Array.isArray(r))return r}function Ymt(t){const e=I0(t,"kind"),r=I0(t,"target");return!e||!r?null:{kind:e,target:r,meta:wfe(t,"meta")}}const Zmt=60;function ih(t,e,r=Zmt){const n=t.surface();if(n){e(n);return}!t.isWorkbenchOpen()||r<=0||requestAnimationFrame(()=>ih(t,e,r-1))}function pS(t,e){if(Wmt.has(t.kind))switch(t.kind){case"openFile":{const r=I0(t.params,"path");if(!r)return;const n=!e.isWorkbenchOpen();n&&e.openWorkbench();const i=a=>{try{a.openFile(r)}catch(s){console.warn("[uiCommandDispatcher] openFile dispatch failed:",s instanceof Error?s.message:s)}};n?requestAnimationFrame(()=>requestAnimationFrame(()=>ih(e,i))):ih(e,i);return}case"openSurface":{const r=Ymt(t.params);if(!r)return;const n=!e.isWorkbenchOpen();n&&e.openWorkbench();const i=a=>{try{a.openSurface(r)}catch(s){console.warn("[uiCommandDispatcher] openSurface dispatch failed:",s instanceof Error?s.message:s)}};n?requestAnimationFrame(()=>requestAnimationFrame(()=>ih(e,i))):ih(e,i);return}case"openPanel":{const r=I0(t.params,"id"),n=I0(t.params,"component");if(!r||!n)return;const i={id:r,component:n,title:I0(t.params,"title")??void 0,params:wfe(t.params,"params")},a=!e.isWorkbenchOpen();a&&e.openWorkbench();const s=o=>{try{o.openPanel(i)}catch(l){console.warn("[uiCommandDispatcher] openPanel dispatch failed:",l instanceof Error?l.message:l)}};a?requestAnimationFrame(()=>requestAnimationFrame(()=>ih(e,s))):ih(e,s);return}case"closeWorkbenchLeftPane":{ih(e,r=>r.closeWorkbenchLeftPane());return}}}function Xmt(){const t=new Map;function e(i,a){let s=t.get(i);return s||(s=new Set,t.set(i,s)),s.add(a),()=>s.delete(a)}function r(i,a){const s=t.get(i);if(s)for(const o of[...s])try{o(a)}catch(l){console.error(`[events] listener for "${String(i)}" threw:`,l)}}function n(){t.clear()}return{on:e,emit:r,_reset:n}}const Kmt="workspace:ui.command",Qmt="workspace:editor.save.start",Jmt="workspace:editor.save.end",egt="workspace:panel.update",tgt="workspace:panel.close",rgt="workspace:agent.data",Ns={uiCommand:Kmt,editorSaveStart:Qmt,editorSaveEnd:Jmt,panelUpdate:egt,panelClose:tgt,agentData:rgt};function Sg(){return{cause:"user",ts:Date.now()}}function ngt(t){return{cause:"agent",toolCallId:t,ts:Date.now()}}function ey(t){return{cause:"remote",toolCallId:t,ts:Date.now()}}function eD(t,e){const r=k.useRef(e);r.current=e,k.useEffect(()=>Or.on(t,n=>r.current(n)),[t])}function igt(t){Or.emit(Ns.agentData,{ts:Date.now(),part:t})}const Or=Xmt(),tD="boring-workspace:ui-command";function mS(t){Or.emit(Ns.uiCommand,{...Sg(),command:t}),typeof globalThis.dispatchEvent=="function"&&typeof CustomEvent<"u"&&globalThis.dispatchEvent(new CustomEvent(tD,{detail:t}))}const agt=1500,sgt=1e3,ogt=5;function dG(t,e){if(!e)return t;const r=new URLSearchParams;for(const[i,a]of Object.entries(e))a!=null&&r.set(i,String(a));const n=r.toString();return n?`${t}${t.includes("?")?"&":"?"}${n}`:t}function lgt(t){const e=t.endpoint??"",r=t.ctx,n=t.query,i=t.eventSourceCtor===null?null:t.eventSourceCtor??(typeof EventSource<"u"?EventSource:null),a=t.fetcher??(typeof fetch<"u"?fetch:null),s=t.reconnectDelayMs??sgt,o=t.maxReconnects??ogt,l=t.pollIntervalMs??agt;let c=!1,u=null,d=null,m=null,p=null,y=0,b=!1;function v(C){C&&typeof C=="object"&&typeof C.kind=="string"&&pS(C,r)}function _(){if(c||b||!a)return;b=!0;const C=async()=>{if(!c){m=new AbortController;try{const E=await a(dG(`${e}/api/v1/ui/commands/next?poll=true`,n),{signal:m.signal});if(c)return;if(E.ok){const D=await E.json();if(Array.isArray(D))for(const L of D)v(L)}}catch{}finally{m=null}c||(d=setTimeout(C,l))}};C()}function w(){if(!c){if(!i){_();return}u=new i(dG(`${e}/api/v1/ui/commands/next`,n)),u.addEventListener("command",C=>{const E=C.data;if(!(typeof E!="string"||E.length===0))try{v(JSON.parse(E))}catch{}}),u.addEventListener("init",()=>{y=0}),u.addEventListener("error",()=>{if(!c){if(u==null||u.close(),u=null,y+=1,y>o){_();return}p=setTimeout(w,s*y)}})}}return w(),()=>{c=!0,u&&(u.close(),u=null),d&&(clearTimeout(d),d=null),m&&(m.abort(),m=null),p&&(clearTimeout(p),p=null)}}const cgt=1e4,ugt=3,hgt=1e3;function fG(t){return t>=500}function dgt(t){return new Promise(e=>setTimeout(e,t))}class fgt{constructor(e){Pr(this,"baseUrl"),Pr(this,"headers"),Pr(this,"onAuthError"),Pr(this,"onTimeout"),Pr(this,"timeout"),Pr(this,"maxRetries"),Pr(this,"retryBaseMs"),this.baseUrl=e.apiBaseUrl.replace(/\/$/,""),this.headers={"Content-Type":"application/json",...e.authHeaders},this.onAuthError=e.onAuthError,this.onTimeout=e.onTimeout,this.timeout=e.timeout??cgt,this.maxRetries=e.maxRetries??ugt,this.retryBaseMs=e.retryBaseMs??hgt}async request(e,r,n,i,a){var s,o;const l=i??this.timeout;let c=null;for(let u=0;u<=this.maxRetries;u++){u>0&&await dgt(this.retryBaseMs*2**(u-1));const d=new AbortController,m=()=>d.abort();a==null||a.addEventListener("abort",m,{once:!0});const p=setTimeout(()=>d.abort(),l);try{const y=await fetch(`${this.baseUrl}${r}`,{method:e,headers:this.headers,body:n!=null?JSON.stringify(n):void 0,signal:d.signal});if(clearTimeout(p),a==null||a.removeEventListener("abort",m),y.status===401||y.status===403)throw(s=this.onAuthError)==null||s.call(this,y.status),new ah(y.status,`Auth error: ${y.status}`);if(fG(y.status)){c=new ah(y.status,`HTTP ${y.status}: ${y.statusText}`);continue}if(!y.ok){const b=await pgt(y);throw new ah(y.status,`HTTP ${y.status}: ${y.statusText}`,b)}return await y.json()}catch(y){if(clearTimeout(p),a==null||a.removeEventListener("abort",m),y instanceof ah&&!fG(y.status))throw y;if(y instanceof DOMException&&y.name==="AbortError"){if(a!=null&&a.aborted)throw y;(o=this.onTimeout)==null||o.call(this,r),c=new ah(0,`Request timeout after ${l}ms: ${r}`);continue}if(y instanceof TypeError){c=y;continue}throw y}}throw c??new ah(0,"Request failed after retries")}async getTree(e,r){return(await this.request("GET",`/api/v1/tree?path=${encodeURIComponent(e)}`,void 0,void 0,r)).entries}async getFile(e,r){return this.request("GET",`/api/v1/files?path=${encodeURIComponent(e)}`,void 0,void 0,r)}async writeFile(e,r,n){try{return{mtimeMs:(await this.request("POST","/api/v1/files",(n==null?void 0:n.expectedMtimeMs)!=null?{path:e,content:r,expectedMtimeMs:n.expectedMtimeMs}:{path:e,content:r})).mtimeMs}}catch(i){throw i instanceof ah&&i.status===409?rD.from(i,e):i}}async deleteFile(e){await this.request("DELETE",`/api/v1/files?path=${encodeURIComponent(e)}`)}async stat(e,r){return this.request("GET",`/api/v1/stat?path=${encodeURIComponent(e)}`,void 0,void 0,r)}async search(e,r,n){const i=new URLSearchParams({q:e});return r!=null&&i.set("limit",String(r)),(await this.request("GET",`/api/v1/files/search?${i}`,void 0,void 0,n)).results}async createDir(e){await this.request("POST","/api/v1/dirs",{path:e})}async moveFile(e,r){await this.request("POST","/api/v1/files/move",{from:e,to:r})}}let ah=class extends Error{constructor(e,r,n){super(r),this.status=e,this.body=n,this.name="FetchError"}},rD=class Cfe extends Error{constructor(e,r,n){super(`File modified on server: ${e}`),this.path=e,this.currentMtimeMs=r,this.expectedMtimeMs=n,this.name="FileConflictError"}static from(e,r){var n,i;const a=e.body&&typeof e.body=="object"?e.body:null;return new Cfe(r,typeof((n=a==null?void 0:a.error)==null?void 0:n.currentMtimeMs)=="number"?a.error.currentMtimeMs:null,typeof((i=a==null?void 0:a.error)==null?void 0:i.expectedMtimeMs)=="number"?a.error.expectedMtimeMs:null)}};async function pgt(t){try{const e=await t.text();return e?JSON.parse(e):null}catch{return null}}const mgt="filesystem:file.changed",ggt="filesystem:file.created",ygt="filesystem:file.moved",bgt="filesystem:file.deleted",jn={changed:mgt,created:ggt,moved:ygt,deleted:bgt},aw="filesystem",Tfe="files",sw=Tfe,HR="files",vgt="filesystem-path",kfe="code-editor",Sfe="csv-viewer",Efe="markdown-editor",Afe="empty-file-panel";function xgt(){const t=aS(),e=Uv(),r=qv();k.useEffect(()=>{const n=Or.on(jn.changed,o=>{ty(t,e,r,o.path)}),i=Or.on(jn.created,o=>{t6(t,e,r),o.kind==="file"&&ty(t,e,r,o.path)}),a=Or.on(jn.moved,o=>{t6(t,e,r),ty(t,e,r,o.from),ty(t,e,r,o.to),pG(t,e,r)}),s=Or.on(jn.deleted,o=>{t6(t,e,r),ty(t,e,r,o.path),pG(t,e,r)});return()=>{n(),i(),a(),s()}},[t,e,r])}function ty(t,e,r,n){t.invalidateQueries({queryKey:[e,r,HR,n]}),t.invalidateQueries({queryKey:[e,r,"stat",n]})}function t6(t,e,r){t.invalidateQueries({queryKey:[e,r,"tree"]})}function pG(t,e,r){t.invalidateQueries({queryKey:[e,r,"search"]})}function _gt(){const t=Uv(),e=qv(),r=aS();k.useEffect(()=>{if(typeof window>"u"||typeof EventSource>"u")return;const n=kgt(Tgt(t,"/api/v1/fs/events"),e);let i,a=!1;const s=new Set,o=[],l=256;try{i=new EventSource(n,{withCredentials:!0})}catch{return}const c=p=>{if(s.has(p))return!1;if(s.add(p),o.push(p),o.length>l){const y=o.shift();y!==void 0&&s.delete(y)}return!0},u=p=>{let y;try{y=JSON.parse(p.data)}catch{return}typeof(y==null?void 0:y.eventId)!="string"||typeof y.change!="object"||y.change==null||c(y.eventId)&&wgt(y.change)},d=()=>{a=!0,i==null||i.close()},m=()=>{s.clear(),o.length=0,r.invalidateQueries({predicate:p=>Cgt(p.queryKey)})};return i.addEventListener("change",u),i.addEventListener("unsupported",d),i.addEventListener("resync-required",m),()=>{i&&(i.removeEventListener("change",u),i.removeEventListener("unsupported",d),i.removeEventListener("resync-required",m),a||i.close(),i=null)}},[t,e,r])}function wgt(t){switch(t.op){case"write":Or.emit(jn.changed,{...ey(),path:t.path});return;case"mkdir":Or.emit(jn.created,{...ey(),path:t.path,kind:"dir"});return;case"unlink":Or.emit(jn.deleted,{...ey(),path:t.path});return;case"rename":t.oldPath?Or.emit(jn.moved,{...ey(),from:t.oldPath,to:t.path}):Or.emit(jn.created,{...ey(),path:t.path,kind:"file"});return}}function Cgt(t){for(const e of t)if(e===HR||e==="tree"||e==="stat"||e==="search")return!0;return!1}function Tgt(t,e){return t?t.endsWith("/")&&e.startsWith("/")?t+e.slice(1):!t.endsWith("/")&&!e.startsWith("/")?`${t}/${e}`:t+e:e}function kgt(t,e){if(!e)return t;const r=t.includes("?")?"&":"?";return`${t}${r}workspaceId=${encodeURIComponent(e)}`}const Dfe=k.createContext(null),Lfe=k.createContext(""),Ife=k.createContext(null);function fu(){const t=k.useContext(Dfe);if(!t)throw new Error("useDataClient must be used within a DataProvider");return t}function Uv(){return k.useContext(Lfe)}function qv(){return k.useContext(Ife)}function Sgt({apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n,client:i,children:a}){const s=k.useRef(null);s.current||(s.current=new jft({defaultOptions:{queries:{retry:3,retryDelay:c=>Math.min(1e3*2**c,3e4)}}}));const o=k.useMemo(()=>i??new fgt({apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n}),[i,t,e,r,n]),l=(e==null?void 0:e["x-boring-workspace-id"])??(e==null?void 0:e["X-Boring-Workspace-Id"])??null;return T.jsx(Hft,{client:s.current,children:T.jsx(Lfe.Provider,{value:t,children:T.jsx(Ife.Provider,{value:l,children:T.jsxs(Dfe.Provider,{value:o,children:[T.jsx(Egt,{}),a]})})})})}function Egt(){return xgt(),_gt(),null}const Agt=new Map;function Dgt(t){return(t??"").replace(/\/$/,"")}function Lgt(t){return t&&t.length>0?t:"."}function Igt(t,e,r){return`${Dgt(t)}\0${e??""}\0${Lgt(r)}`}function Rgt(t,e,r){return Agt.get(Igt(t,e,r))}function VR(t,e){return e instanceof ah&&e.status===404?!1:t<3}function Ogt(t){const e=fu(),r=Uv(),n=qv();return AR({queryKey:[r,n,HR,t],queryFn:({signal:i})=>e.getFile(t,i),enabled:t!=null,staleTime:0,retry:VR})}function Rfe(t){const e=fu(),r=Uv(),n=qv();return AR({queryKey:[r,n,"tree",t],queryFn:async({signal:i})=>await e.getTree(t,i)??[],enabled:t!=null,staleTime:3e3,initialData:()=>Rgt(r,n,t),retry:VR})}function Ngt(t,e){const r=fu(),n=Uv(),i=qv(),[a,s]=k.useState(t),o=k.useRef(void 0);return k.useEffect(()=>(clearTimeout(o.current),o.current=setTimeout(()=>s(t),300),()=>clearTimeout(o.current)),[t]),AR({queryKey:[n,i,"search",a,e],queryFn:({signal:l})=>r.search(a,e,l),enabled:a.length>0,retry:VR})}function Ofe(){const t=fu();return sS({mutationFn:({path:e,content:r,expectedMtimeMs:n})=>t.writeFile(e,r,n!=null?{expectedMtimeMs:n}:void 0),onSuccess:(e,{path:r})=>{Or.emit(jn.changed,{...Sg(),path:r})}})}function Mgt(){const t=fu();return sS({mutationFn:({path:e})=>t.createDir(e),onSuccess:(e,{path:r})=>{Or.emit(jn.created,{...Sg(),path:r,kind:"dir"})}})}function Pgt(){const t=fu();return sS({mutationFn:({from:e,to:r})=>t.moveFile(e,r),onSuccess:(e,{from:r,to:n})=>{Or.emit(jn.moved,{...Sg(),from:r,to:n})}})}function Bgt(){const t=fu();return sS({mutationFn:({path:e})=>t.deleteFile(e),onSuccess:(e,{path:r})=>{Or.emit(jn.deleted,{...Sg(),path:r})}})}class Fgt{constructor(e={}){Pr(this,"panels",new Map),Pr(this,"registrationOrder",[]),Pr(this,"capabilities"),Pr(this,"listeners",new Set),Pr(this,"snapshotCache",null),Pr(this,"subscribe",r=>(this.listeners.add(r),()=>{this.listeners.delete(r)})),Pr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.filteredPanels()),this.snapshotCache)),this.capabilities=new Set(Object.entries(e).filter(([,r])=>r).map(([r])=>r))}register(e,r){const n=typeof r.component=="function"&&r.component.length===0&&/\bimport\s*\(/.test(r.component.toString()),i=this.panels.has(e);this.panels.set(e,{...r,id:e,lazy:r.lazy??n}),i||this.registrationOrder.push(e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.panels)i.pluginId===e&&(this.panels.delete(n),this.registrationOrder=this.registrationOrder.filter(a=>a!==n),r=!0);r&&this.emit()}get(e){return this.panels.get(e)}has(e){return this.panels.has(e)}list(){return this.filteredPanels()}getComponents(){const e={};for(const r of this.filteredPanels()){let n;r.lazy?n=k.lazy(r.component):n=r.component;const i=r.pluginId??r.id,a=r.id,s=r.lazy;e[r.id]=function(o){const l=k.createElement(n,o);return k.createElement(fS,{pluginId:i,contributionKind:"panel",contributionId:a},s?k.createElement(k.Suspense,{fallback:k.createElement($gt)},l):l)}}return e}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}filteredPanels(){return this.registrationOrder.map(e=>this.panels.get(e)).filter(e=>this.satisfiesCapabilities(e))}satisfiesCapabilities(e){var r;return(r=e.requiresCapabilities)!=null&&r.length?e.requiresCapabilities.every(n=>this.capabilities.has(n)):!0}}function $gt(){return k.createElement("div",{style:{display:"flex",height:"100%",alignItems:"center",justifyContent:"center"},className:"text-sm text-muted-foreground animate-pulse"},"Loading…")}class zgt{constructor(){Pr(this,"commands",new Map),Pr(this,"listeners",new Set),Pr(this,"snapshotCache",null),Pr(this,"subscribe",e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})),Pr(this,"getSnapshot",()=>(this.snapshotCache||(this.snapshotCache=this.getCommands()),this.snapshotCache))}registerCommand(e){this.commands.set(e.id,e),this.emit()}unregisterByPluginId(e){let r=!1;for(const[n,i]of this.commands)i.pluginId===e&&(this.commands.delete(n),r=!0);r&&this.emit()}unregisterCommand(e){this.commands.delete(e)&&this.emit()}getCommand(e){return this.commands.get(e)}getCommands(){return Array.from(this.commands.values())}getActiveCommands(){return this.getCommands().filter(e=>{if(!e.when)return!0;try{return e.when()}catch{return!1}})}emit(){this.snapshotCache=null;for(const e of[...this.listeners])e()}}const mG={ts:fi,tsx:fi,js:fi,jsx:fi,mjs:fi,cjs:fi,py:fi,rb:fi,go:fi,rs:fi,java:fi,c:fi,cpp:fi,h:fi,cs:fi,swift:fi,kt:fi,sh:fi,bash:fi,zsh:fi,json:G$,jsonl:G$,md:_s,mdx:_s,txt:_s,csv:_s,tsv:_s,yaml:_s,yml:_s,toml:_s,ini:_s,cfg:_s,conf:_s,env:_s,png:Ec,jpg:Ec,jpeg:Ec,gif:Ec,svg:Ec,webp:Ec,ico:Ec,bmp:Ec};function jgt(t){var e;const r=(e=t.split(".").pop())==null?void 0:e.toLowerCase();return r&&r in mG?mG[r]:cy}const q0="workspace.open.path";let nD=null;function Hgt(t){nD=t}function Nfe(){if(!nD)throw new Error("Workspace store not initialized. Wrap your app in WorkspaceProvider.");return nD}function Vgt(){return wR(Nfe(),t=>t.preferences.theme)}function Ugt(){return wR(Nfe(),t=>t.hydrationComplete)}function qgt(t){const{api:e}=t,[r,n]=k.useState(e.title??e.id);k.useEffect(()=>{var u;const d=()=>n(e.title??e.id);d();const m=(u=e.onDidTitleChange)==null?void 0:u.call(e,d);return()=>{var p;return(p=m==null?void 0:m.dispose)==null?void 0:p.call(m)}},[e]);const i=r.endsWith(" ●"),a=i?r.slice(0,-2):r,s=jgt(a),[o,l]=k.useState(!1);eD(Ns.editorSaveStart,u=>{u.panelId===e.id&&l(!0)}),eD(Ns.editorSaveEnd,u=>{u.panelId===e.id&&l(!1)});const c=u=>{u.stopPropagation(),e.close()};return T.jsxs("div",{className:fn("group relative flex h-full w-full min-w-0 items-center gap-1.5 pl-2.5 pr-7 select-none","text-[12.5px] leading-none tracking-tight","cursor-pointer transition-colors"),title:i?`${a} (unsaved changes)`:a,children:[o?T.jsx(JAe,{"data-testid":"tab-saving-spinner","aria-label":"Saving",className:"h-3.5 w-3.5 shrink-0 animate-spin text-[color:var(--accent)]",strokeWidth:2}):T.jsx(s,{className:fn("h-3.5 w-3.5 shrink-0 text-muted-foreground/70","[.dv-active-tab_&]:text-[color:var(--accent)] [.active-tab_&]:text-[color:var(--accent)]"),strokeWidth:1.5}),T.jsx("span",{className:"min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",children:a}),i?T.jsx("span",{"aria-hidden":"true",className:fn("mr-1 h-1.5 w-1.5 shrink-0 rounded-full bg-foreground/35","[.dv-active-tab_&]:bg-foreground/45 [.active-tab_&]:bg-foreground/45")}):null,T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",className:fn("absolute right-1 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground opacity-0","focus-visible:opacity-100 group-hover:opacity-100","[.dv-active-tab_&]:opacity-50 [.active-tab_&]:opacity-50","[.dv-active-tab_&]:hover:opacity-100 [.active-tab_&]:hover:opacity-100"),onClick:c,"aria-label":`Close ${a}`,children:T.jsx(mv,{className:"h-3 w-3",strokeWidth:2.25})})]})}const Ggt=300,Wgt=k.createContext(null);function Ygt(t,e){var r;return"id"in e?t.id===e.id:((r=t.params)==null?void 0:r[e.param])===e.value}function gG(t,e){const r=Array.isArray(e)?e:[e],n=new Set,i=[];for(const a of t.panels)r.some(s=>Ygt(a,s))&&(n.has(a.id)||(n.add(a.id),i.push(a)));return i}function Zgt(t){switch(t){case"left":return"left";case"right":return"right";case"bottom":return"below";case"center":default:return"within"}}function Xgt(t){function e(){if(!t.current)throw new Error("DockviewShell not initialized");return t.current}return{addPanel(r,n){const i=e(),a=i.groups.find(s=>s.id===r);i.addPanel({id:n.id,component:n.component,title:n.title,params:n.params,position:a?{referenceGroup:a}:void 0})},removePanel(r){const n=e(),i=n.getPanel(r);i&&n.removePanel(i)},activatePanel(r){const n=e().getPanel(r);n&&n.api.setActive()},movePanel(r,n){const i=e(),a=i.getPanel(r);if(!a)return;const s=a.view.contentComponent,o=a.params,l=a.title;i.removePanel(a);const c={id:r,component:s,params:o,title:l};if("groupId"in n){const u=i.groups.find(d=>d.id===n.groupId);i.addPanel({...c,position:u?{referenceGroup:u}:void 0})}else{const u=i.getPanel(n.referencePanelId);i.addPanel({...c,position:u?{referencePanel:u,direction:n.direction}:void 0})}},updatePanelParams(r,n){const i=e().getPanel(r);i&&i.api.updateParameters({...i.params??{},...n})},setPanelTitle(r,n){const i=e().getPanel(r);i&&i.api.setTitle(n)},findPanelsByParam(r,n){return e().panels.filter(i=>{var a;return((a=i.params)==null?void 0:a[r])===n}).map(i=>i.id)},getActivePanel(){var r;return((r=e().activePanel)==null?void 0:r.id)??null},toJSON(){return e().toJSON()}}}function Kgt(t){if(!t.constraints)return null;let e=t.constraints.maxWidth;const r=t.constraints.maxWidthViewportRatio;if(typeof r=="number"&&r>0&&typeof window<"u"){const n=Math.floor(window.innerWidth*r);e=typeof e=="number"?Math.min(e,n):n}return{minimumWidth:t.constraints.minWidth,maximumWidth:e,minimumHeight:t.constraints.minHeight,maximumHeight:t.constraints.maxHeight}}function yG(t,e){const r=t.getPanel(e.panel??e.id);if(!(r!=null&&r.group))return;const n=Kgt(e);n&&r.group.api.setConstraints(n)}function Qgt(t,e,r,n,i,a){const s=t.api;if(a.current=s,r)s.fromJSON(r);else{let u=!1;for(const d of e.groups)if(d.panel){if(!n.has(d.panel)){console.error(`[DockviewShell] Panel "${d.panel}" not found in registry. Available: ${n.list().map(m=>m.id).join(", ")}`);continue}s.addPanel({id:d.panel,component:d.panel,params:d.params,position:u?{direction:Zgt(d.position)}:void 0}),u=!0}}for(const u of e.groups){const d=s.getPanel(u.panel??u.id);d!=null&&d.group&&(u.locked&&(d.group.locked="no-drop-target"),u.hideHeader&&(d.group.header.hidden=!0),yG(s,u))}const o=e.groups.filter(u=>{var d;return typeof((d=u.constraints)==null?void 0:d.maxWidthViewportRatio)=="number"});let l;if(o.length>0){const u=()=>{for(const d of o)yG(s,d)};window.addEventListener("resize",u),l=()=>window.removeEventListener("resize",u)}let c;if(i){let u=null;const d=()=>{u&&clearTimeout(u),u=setTimeout(()=>{i(s.toJSON())},Ggt)},m=s.onDidLayoutChange(d),p=()=>{u&&(clearTimeout(u),i(s.toJSON()))};window.addEventListener("beforeunload",p),c=()=>{p(),m.dispose(),window.removeEventListener("beforeunload",p),l==null||l()}}else c=()=>{l==null||l()};return c}function Jgt({layout:t,persistedLayout:e,onReady:r,onLayoutChange:n,allowedPanels:i,className:a,prefixHeaderActions:s,rightHeaderActions:o,watermarkComponent:l}){const c=Vv(),u=Ugt(),d=k.useRef(null),m=k.useRef(null),p=k.useRef(void 0),y=k.useMemo(()=>{const w=c.getComponents();return i?Object.fromEntries(Object.entries(w).filter(([C])=>i.includes(C))):w},[c,i]),b=k.useMemo(()=>Xgt(d),[]),v=k.useCallback(w=>{var C;(C=p.current)==null||C.call(p),p.current=Qgt(w,t,e,c,n,d),r==null||r(w.api)},[t,e,c,n,r]);k.useEffect(()=>()=>{var w;return(w=p.current)==null?void 0:w.call(p)},[]),k.useEffect(()=>{const w=Or.on(Ns.panelUpdate,({match:E,params:D,title:L})=>{const R=d.current;if(R)for(const N of gG(R,E))D&&N.api.updateParameters({...N.params??{},...D}),L&&N.api.setTitle(L)}),C=Or.on(Ns.panelClose,({match:E})=>{const D=d.current;if(D)for(const L of gG(D,E))D.removePanel(L)});return()=>{w(),C()}},[]);const _=k.useCallback(w=>{if(!u){m.current=w;return}v(w)},[u,v]);return k.useEffect(()=>{u&&m.current&&(v(m.current),m.current=null)},[u,v]),u?T.jsx(Wgt.Provider,{value:b,children:T.jsx(pfe,{className:`dv-shell ${a??""}`,components:y,defaultTabComponent:qgt,prefixHeaderActionsComponent:s,rightHeaderActionsComponent:o,watermarkComponent:l,onReady:_})}):T.jsx(e1t,{})}function e1t(){return T.jsx(vJ,{centered:!0,className:"bg-background",label:"Loading workspace..."})}function t1t(t){return{get panelId(){return t.id},get title(){return t.title??t.id},setTitle(e){t.setTitle(e)},close(){t.close()},focus(){t.setActive()},get isActive(){return t.isActive}}}function Mfe({title:t,icon:e,essential:r,children:n,className:i,panelApi:a}){return k.useMemo(()=>a?t1t(a):null,[a]),T.jsxs("div",{className:fn("flex h-full flex-col overflow-hidden",i),children:[T.jsxs("div",{className:"flex h-9 shrink-0 items-center gap-2 border-b border-border bg-muted/50 px-3",children:[e&&T.jsx(e,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),T.jsx("span",{className:"truncate text-sm font-medium",children:t}),T.jsx("div",{className:"flex-1"}),!r&&a&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",className:"h-5 w-5 text-muted-foreground",onClick:()=>a.close(),"aria-label":`Close ${t}`,children:T.jsx("svg",{className:"h-3 w-3",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:T.jsx("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),T.jsx("div",{className:"flex-1 overflow-auto",children:n})]})}const r1t=5e3,n1t=["node_modules",".git",".boring-agent","dist","test-results",/^\.tsbuildinfo/,".vite",".turbo",".next",".cache"];function iD(t,e){for(const r of e)if(typeof r=="string"?r===t:r.test(t))return!0;return!1}function i1t(t,e){return e.length===0?t:t==null?void 0:t.filter(r=>!iD(r.name,e))}function Pfe(t){const e=t.trim();if(!e)return e;const r=/[*?\[\]{}]/.test(e)?e:`*${e}*`;return a1t(r)}function a1t(t){let e="",r=!1,n=!1;for(const i of t){if(n){e+=i,n=!1;continue}if(i==="\\"){e+=i,n=!0;continue}if(i==="["&&!r){r=!0,e+=i;continue}if(i==="]"&&r){r=!1,e+=i;continue}if(!r&&/[a-z]/i.test(i)){const a=i.toLowerCase(),s=i.toUpperCase();e+=a===s?i:`[${s}${a}]`;continue}e+=i}return e}const Bfe=()=>M(()=>import("./FileTree-DRq_bfue-Y0KC7oJb.js"),__vite__mapDeps([252,253])).then(t=>({default:t.FileTree}));function s1t(){Bfe()}const o1t=k.lazy(Bfe);function Ffe(t,e){const r=[],n=[];for(const i of t)if(i.kind==="dir"){const a=e.get(i.path);r.push({...i,children:a?Ffe(a,e):[]})}else n.push({...i});return r.sort((i,a)=>i.name.localeCompare(a.name)),n.sort((i,a)=>i.name.localeCompare(a.name)),[...r,...n]}function Ud(t){const e=t.lastIndexOf("/");return e>0?t.slice(0,e):"."}function r6(t){return t&&t!==""?t:"."}function n6(t,e){if(!(e!=null&&e.length))return t;const r=new Map;for(const n of t??[])r.set(n.path,n);for(const n of e)r.set(n.path,n);return Array.from(r.values())}function $fe(t,e,r){if(!e||e.kind==="rename")return t;const n={name:"",path:e.path,kind:e.kind==="create-folder"?"dir":"file",isDraft:!0},i=e.parentDir;return i===r||i==="."||i===""?[n,...t]:t.map(a=>{var s;return a.kind!=="dir"?a:a.path===i?{...a,children:[n,...a.children??[]]}:(s=a.children)!=null&&s.length?{...a,children:$fe(a.children,e,r)}:a})}async function l1t(t){var e,r;if(typeof navigator<"u"&&(e=navigator.clipboard)!=null&&e.writeText)try{await navigator.clipboard.writeText(t);return}catch{}if(typeof document>"u")throw new Error("Clipboard not available");const n=document.createElement("textarea");n.value=t,n.setAttribute("readonly",""),n.style.position="fixed",n.style.top="-9999px",n.style.left="-9999px",n.style.opacity="0",document.body.appendChild(n);let i=!1;try{n.focus(),n.select(),i=!!((r=document.execCommand)!=null&&r.call(document,"copy"))}finally{document.body.removeChild(n)}if(!i)throw new Error("Clipboard not available")}function bG({rootDir:t=".",searchQuery:e,bridge:r,ignoreNames:n=n1t,className:i}){var a;const s=fu(),{data:o,error:l,isLoading:c}=Rfe(t),[u,d]=k.useState(new Map),m=r6(t),p=k.useMemo(()=>n6(o,u.get(m)),[o,u,m]),y=k.useMemo(()=>i1t(p,n),[p,n]),{mutateAsync:b}=Ofe(),{mutateAsync:v}=Mgt(),{mutateAsync:_}=Pgt(),{mutateAsync:w}=Bgt(),[C,E]=k.useState(new Map),D=k.useMemo(()=>{if(u.size===0)return C;const oe=new Map(C);for(const[Ae,Be]of u){if(Ae===m)continue;const Ze=n6(oe.get(Ae),Be);Ze&&oe.set(Ae,Ze)}return oe},[C,u,m]),L=k.useRef(null),[R,N]=k.useState(400),[H,$]=k.useState(null),[U,K]=k.useState(null),se=k.useRef(null),[q,j]=k.useState(((a=r==null?void 0:r.getActiveFile)==null?void 0:a.call(r))??null),[F,W]=k.useState(null),[X,de]=k.useState(null),G=k.useRef(0),Q=((y==null?void 0:y.length)??0)+Array.from(D.values()).reduce((oe,Ae)=>oe+Ae.length,0)>=r1t&&((e==null?void 0:e.length)??0)>0,{data:ee}=Ngt(Q?Pfe(e??""):"",50);k.useEffect(()=>{if(!H)return;function oe(Ae){se.current&&!se.current.contains(Ae.target)&&$(null)}return document.addEventListener("pointerdown",oe),()=>document.removeEventListener("pointerdown",oe)},[H]),k.useEffect(()=>{var oe;if(j(((oe=r==null?void 0:r.getActiveFile)==null?void 0:oe.call(r))??null),!!(r!=null&&r.select))return r.select(Ae=>Ae.activeFile,Ae=>{j(Ae)})},[r]),k.useEffect(()=>{const oe=L.current;if(!oe)return;const Ae=new ResizeObserver(([Be])=>{Be&&N(Math.floor(Be.contentRect.height))});return Ae.observe(oe),()=>Ae.disconnect()},[]);const V=(Q&&ee?ee.map(oe=>({name:oe.split("/").pop()??oe,kind:"file",path:oe})):void 0)??Ffe(y??[],D),ne=$fe(V,F,t),ie=k.useCallback(oe=>{j(oe),r==null||r.openFile(oe,{mode:"edit"})},[r]),ce=k.useCallback(async oe=>{try{const Ae=await s.getTree(oe),Be=n.length===0?Ae:Ae.filter(Ze=>!iD(Ze.name,n));E(Ze=>new Map(Ze).set(oe,Be))}catch{}},[s,n]),ge=k.useCallback(async(oe,Ae)=>{const Be=Array.from(new Set(oe)).filter(Ct=>Ct&&Ct!==t&&Ct!==".");if(Be.length===0)return;const Ze=await Promise.all(Be.map(async Ct=>{try{const Lt=await s.getTree(Ct),Pt=n.length===0?Lt:Lt.filter(at=>!iD(at.name,n));return[Ct,Pt]}catch{return null}}));E(Ct=>{const Lt=new Map(Ct);for(const Pt of Ze){if(!Pt)continue;const[at,dt]=Pt;(Ae!=null&&Ae.force||Lt.has(at))&&Lt.set(at,dt)}return Lt})},[s,t,n]),Le=k.useCallback((oe,Ae)=>{d(Be=>{const Ze=r6(oe),Ct=new Map(Be),Lt=n6(Ct.get(Ze),[Ae])??[Ae];return Ct.set(Ze,Lt),Ct})},[]),Te=k.useCallback((oe,Ae)=>{d(Be=>{const Ze=r6(oe),Ct=Be.get(Ze);if(!(Ct!=null&&Ct.length))return Be;const Lt=Ct.filter(at=>at.path!==Ae),Pt=new Map(Be);return Lt.length>0?Pt.set(Ze,Lt):Pt.delete(Ze),Pt})},[]),[Ee,Ne]=k.useState(new Set),Ge=k.useCallback(oe=>{Ne(Ae=>{const Be=new Set(Ae);return Be.add(oe),Be})},[]),ct=k.useCallback(oe=>{Ne(Ae=>{if(!Ae.has(oe))return Ae;const Be=new Set(Ae);return Be.delete(oe),Be})},[]),ot=k.useCallback((oe,Ae)=>{$({node:Ae,x:oe.clientX,y:oe.clientY})},[]),Kt=k.useCallback(oe=>{const Ae=oe.target;Ae.closest("[role=treeitem]")||Ae.closest("[data-path]")||(oe.preventDefault(),$({node:{name:t,kind:"dir",path:t},x:oe.clientX,y:oe.clientY,isBackground:!0}))},[t]),Rr=k.useCallback(async(oe,Ae)=>{const Be=oe.split("/").pop()??oe,Ze=Ae==="."?t:Ae,Ct=Ze==="."?Be:`${Ze}/${Be}`;if(Ct!==oe){Ge(oe);try{await _({from:oe,to:Ct}),await ge([Ud(oe),Ud(Ct)]),il.success({title:"Moved",description:`${oe} → ${Ct}`})}catch(Lt){il.error({title:"Move failed",description:Lt instanceof Error?Lt.message:String(Lt)})}finally{ct(oe)}}},[_,ge,t,Ge,ct]);function Yr(oe){return()=>{$(null),(async()=>{try{await oe()}catch(Ae){il.error({title:"Action failed",description:Ae instanceof Error?Ae.message:String(Ae)})}})()}}const ut=oe=>{const Ae=H==null?void 0:H.node;$(null);const Be=(Ae==null?void 0:Ae.kind)==="dir"?Ae.path:Ae?Ud(Ae.path):t,Ze=`__draft__:${++G.current}`;W({kind:oe,parentDir:Be,path:Ze})},qt=()=>ut("create-file"),Tr=()=>ut("create-folder"),vn=()=>{const oe=H==null?void 0:H.node;$(null),oe&&W({kind:"rename",path:oe.path,initialValue:oe.name})},oi=k.useCallback(async(oe,Ae)=>{const Be=F;if(W(null),!Be)return;const Ze=Ae.trim();if(!Ze)return;const Ct=Be.kind==="rename"?Ud(Be.path):Be.parentDir,Lt=Be.kind==="rename"?Be.path:Ct==="."||Ct===""?Ze:`${Ct}/${Ze}`,Pt=Be.kind==="rename"?Be.path:Lt;Ge(Pt);let at=null;try{if(Be.kind==="rename"){if(Ze===Be.initialValue)return;const dt=Be.path.split("/");dt[dt.length-1]=Ze;const xt=dt.join("/");await _({from:Be.path,to:xt}),await ge([Ud(Be.path)]),il.success({title:"Renamed",description:`${Be.path} → ${xt}`})}else{const dt={name:Ze,kind:Be.kind==="create-file"?"file":"dir",path:Lt};Le(Ct,dt),at=Lt,Be.kind==="create-file"?(await b({path:Lt,content:""}),Or.emit(jn.created,{...Sg(),path:Lt,kind:"file"}),il.success({title:"File created",description:Lt})):(await v({path:Lt}),il.success({title:"Folder created",description:Lt})),await ge([Ct],{force:!0}),de(Lt)}}catch(dt){at&&Te(Ct,at);const xt=dt instanceof Error?dt.message:String(dt);il.error({title:Be.kind==="rename"?"Rename failed":Be.kind==="create-file"?"Create file failed":"Create folder failed",description:xt})}finally{ct(Pt)}},[F,_,b,v,ge,Ge,ct,Le,Te]),Zi=k.useCallback(()=>{W(null)},[]),en=Yr(async()=>{H!=null&&H.node&&(await l1t(H.node.path),il.success({title:"Path copied",description:H.node.path}))}),Pn=k.useCallback(async()=>{if(!U)return;const oe=U;K(null),Ge(oe.path);try{await w({path:oe.path}),Te(Ud(oe.path),oe.path),await ge([Ud(oe.path)]),il.success({title:"Deleted",description:oe.path})}catch(Ae){il.error({title:"Delete failed",description:Ae instanceof Error?Ae.message:String(Ae)})}finally{ct(oe.path)}},[U,w,ge,Ge,ct,Te]),ye=!Q&&((e==null?void 0:e.length)??0)>0?e:void 0;return T.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[l&&T.jsx(gJ,{className:"m-2 rounded-md p-3",title:"Failed to load files",description:l.message}),T.jsx("div",{ref:L,className:"min-h-0 flex-1 overflow-hidden",onContextMenu:Kt,children:c?T.jsx("div",{className:"space-y-1 p-2","data-testid":"tree-skeleton",children:Array.from({length:8}).map((oe,Ae)=>T.jsx(T6e,{className:"h-5",style:{width:`${60+Ae*13%30}%`}},Ae))}):T.jsx(k.Suspense,{fallback:T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(dv,{className:"size-3.5"}),T.jsx("span",{children:"Loading..."})]}),children:T.jsx(o1t,{files:ne,selectedPath:q,searchQuery:ye,editing:F?{path:F.path,isDraft:F.kind!=="rename",initialValue:F.kind==="rename"?F.initialValue:void 0}:null,revealPath:X,pendingPaths:Ee,onSelect:ie,onExpand:ce,onContextMenu:ot,onSubmitEdit:oi,onCancelEdit:Zi,onDragDrop:Rr,height:R,className:fn(i)})})}),H&&T.jsxs("div",{ref:se,role:"menu",className:"fixed z-50 min-w-[10rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",style:{left:H.x,top:H.y},children:[T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:qt,children:"New file"}),T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:Tr,children:"New folder"}),!H.isBackground&&T.jsxs(T.Fragment,{children:[T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:vn,children:"Rename"}),T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start text-destructive hover:bg-destructive/10 hover:text-destructive",onClick:()=>{K(H.node),$(null)},children:"Delete"}),T.jsx(Nr,{type:"button",role:"menuitem",variant:"ghost",size:"sm",className:"w-full justify-start",onClick:en,children:"Copy path"})]})]}),T.jsx(B6e,{open:U!==null,onOpenChange:oe=>{oe||K(null)},children:T.jsxs(z6e,{children:[T.jsxs(j6e,{children:[T.jsxs(V6e,{children:["Delete ",U==null?void 0:U.name,"?"]}),T.jsx(U6e,{children:"This action cannot be undone."})]}),T.jsxs(H6e,{children:[T.jsx(G6e,{children:"Cancel"}),T.jsx(q6e,{onClick:Pn,children:"Delete"})]})]})})]})}function c1t({params:t,rootDir:e=".",searchQuery:r,panelApi:n,bridge:i,api:a,chromeless:s=!1,className:o}){const l=(t==null?void 0:t.rootDir)??e,c=(t==null?void 0:t.bridge)??i,u=(t==null?void 0:t.chromeless)??s,d=(t==null?void 0:t.searchQuery)??(t==null?void 0:t.query)??r,m=n??a,[p,y]=k.useState(""),[b,v]=k.useState(""),_=k.useRef(void 0);k.useEffect(()=>(clearTimeout(_.current),_.current=setTimeout(()=>v(p),200),()=>clearTimeout(_.current)),[p]);const w=d!==void 0?d||void 0:b||void 0;return u?T.jsx(bG,{rootDir:l,searchQuery:w,bridge:c,className:fn("px-1 pt-1 [&_[role=treeitem]]:!indent-0",o)}):T.jsx(Mfe,{title:"Files",panelApi:m,children:T.jsxs("div",{className:"flex h-full flex-col",children:[T.jsx("div",{className:"border-b border-border px-2 py-1.5",children:T.jsx(hv,{placeholder:"Search files...",value:d??p,onChange:C=>y(C.target.value),className:"h-7 text-xs","aria-label":"Search files"})}),T.jsx("div",{className:"min-h-0 flex-1",children:T.jsx(bG,{rootDir:l,searchQuery:w,bridge:c,className:o})})]})})}function u1t(t){return t.split("/").pop()??t}function h1t(){return k.useEffect(()=>{const t=Or.on(jn.moved,({from:r,to:n,...i})=>{Or.emit(Ns.panelUpdate,{...i,match:[{id:`file:${r}`},{param:"path",value:r}],params:{path:n},title:u1t(n)})}),e=Or.on(jn.deleted,({path:r,...n})=>{Or.emit(Ns.panelClose,{...n,match:[{id:`file:${r}`},{param:"path",value:r}]})});return()=>{t(),e()}},[]),null}const d1t=new Set(["write","edit","unlink","rename","mkdir"]);function f1t(t){if(typeof t!="object"||t===null)return null;const e=t;if(e.type!=="data-file-changed")return null;const r=e.data;if(typeof r!="object"||r===null)return null;const n=r;return typeof n.op!="string"||!d1t.has(n.op)||typeof n.path!="string"||n.path.length===0||typeof n.toolCallId!="string"||n.toolCallId.length===0||n.oldPath!==void 0&&(typeof n.oldPath!="string"||n.oldPath.length===0)?null:n}function p1t(t){const e=f1t(t);if(!e)return;const r=ngt(e.toolCallId);switch(e.op){case"rename":e.oldPath&&Or.emit(jn.moved,{...r,from:e.oldPath,to:e.path});return;case"unlink":Or.emit(jn.deleted,{...r,path:e.path});return;case"mkdir":Or.emit(jn.created,{...r,path:e.path,kind:"dir"});return;case"write":e.existsBefore===!1?Or.emit(jn.created,{...r,path:e.path,kind:"file"}):Or.emit(jn.changed,{...r,path:e.path});return;case"edit":Or.emit(jn.changed,{...r,path:e.path});return}}function m1t(t,e={}){const{skip:r,filesOnly:n=!0}=e;eD(jn.created,i=>{i.cause==="agent"&&(n&&i.kind!=="file"||r!=null&&r(i.path)||t(i.path))})}function g1t(){return k.useEffect(()=>Or.on(Ns.agentData,({part:t})=>{p1t(t)}),[]),m1t(t=>{mS({kind:"openFile",params:{path:t}})}),null}const y1t=1e3,b1t=3e3;function v1t(t,e){const{adapter:r,panelId:n,onDirtyChange:i,serverMtime:a}=e,[s,o]=k.useState(!1),[l,c]=k.useState(!1),[u,d]=k.useState(null),[m,p]=k.useState(!1),[y,b]=k.useState(!1),v=k.useRef(void 0),_=k.useRef(null),w=k.useRef(0),C=k.useRef(null),E=k.useRef(i);E.current=i;const D=k.useRef(r);D.current=r;const L=k.useCallback(async()=>{const se=D.current;if(!se||!t||!se.isDirty())return;if(_.current)return _.current;const q=(async()=>{var j;c(!0),Or.emit(Ns.editorSaveStart,{panelId:n});try{await se.save(),w.current=Date.now(),d(Date.now()),o(!1),(j=E.current)==null||j.call(E,t,!1)}catch{}finally{Or.emit(Ns.editorSaveEnd,{panelId:n}),c(!1),_.current=null}})();return _.current=q,q},[t,n]),R=k.useCallback(()=>{clearTimeout(v.current),v.current=setTimeout(L,y1t)},[L]),N=k.useCallback(()=>{var se;t&&(o(!0),(se=E.current)==null||se.call(E,t,!0),R())},[t,R]),H=k.useCallback(async()=>{var se;if(clearTimeout(v.current),_.current)return _.current;if((se=D.current)!=null&&se.isDirty())return L()},[L]),$=k.useCallback(()=>p(!1),[]),U=k.useCallback(()=>b(!1),[]),K=k.useCallback(se=>{C.current=se,b(!1)},[]);return k.useEffect(()=>{if(!(a==null||!t)){if(C.current===null){C.current=a;return}if(a!==C.current){if(Date.now()-w.current<b1t){C.current=a;return}C.current=a,s?b(!0):p(!0)}}},[a,t,s]),k.useEffect(()=>()=>clearTimeout(v.current),[]),{isDirty:s,isSaving:l,lastSavedAt:u,markDirty:N,flushSave:H,shouldSync:m,ackSync:$,externalChangeWhileDirty:y,ackExternalChange:U,notifySaved:K}}function x1t(t,e){const r=t.metaKey||t.ctrlKey;return e.mod&&!r||!e.mod&&r||e.shift&&!t.shiftKey||!e.shift&&t.shiftKey?!1:t.key.toLowerCase()===e.key.toLowerCase()}function _1t(t){return t instanceof HTMLElement?t.isContentEditable||t.closest("[contenteditable='true'], [contenteditable=''], [contenteditable='plaintext-only']")||t.closest("[role='textbox'], [role='searchbox'], [role='combobox']")?!0:!!t.closest("input, textarea, select"):!1}function UR({shortcuts:t,enabled:e=!0}){const r=k.useRef(t);r.current=t,k.useEffect(()=>{if(!e)return;function n(i){const a=_1t(i.target);for(const s of r.current)if(!(a&&!s.allowInEditable)&&x1t(i,s)){i.preventDefault(),i.stopPropagation(),s.handler();return}}return document.addEventListener("keydown",n,!0),()=>document.removeEventListener("keydown",n,!0)},[e])}function zfe(t){const{path:e,panelId:r=e,initialContent:n=null}=t,{data:i,isLoading:a,error:s}=Ogt(e),{mutateAsync:o}=Ofe(),[l,c]=k.useState(n),u=k.useRef(""),d=k.useRef(!1),m=k.useRef(null),p=k.useRef(null),y=k.useRef(null),[b,v]=k.useState(null);k.useEffect(()=>{m.current!==e&&(c(n),u.current=n??"",d.current=!1,p.current=null,v(null),m.current=e)},[e,n]),k.useEffect(()=>{(i==null?void 0:i.content)!=null&&l===null&&(c(i.content),u.current=i.content,p.current=i.mtimeMs??null)},[i,l]);const _=e&&l!=null?{isDirty:()=>d.current,save:async()=>{var U;try{const K=await o({path:e,content:u.current,expectedMtimeMs:p.current??void 0});typeof K.mtimeMs=="number"&&(p.current=K.mtimeMs,(U=y.current)==null||U.call(y,K.mtimeMs)),d.current=!1,v(null)}catch(K){throw K instanceof rD&&v(K),K}},getContent:()=>u.current}:null,w=v1t(e,{adapter:_,panelId:r,serverMtime:(i==null?void 0:i.mtimeMs)??null});y.current=w.notifySaved,k.useEffect(()=>{if(!(!w.shouldSync||(i==null?void 0:i.content)==null)){if(d.current){w.ackSync();return}c(i.content),u.current=i.content,p.current=i.mtimeMs??null,d.current=!1,w.ackSync()}},[w.shouldSync,w,i,c]),k.useEffect(()=>{!w.externalChangeWhileDirty||(i==null?void 0:i.mtimeMs)==null||(v(new rD(e,i.mtimeMs,p.current)),w.ackExternalChange())},[w.externalChangeWhileDirty,w,i,e]);const C=e?e.split("/").pop()??e:"",[E,D]=k.useState("");k.useEffect(()=>{const U=C?w.isDirty?`${C} ●`:C:"";D(U)},[C,w.isDirty,r]);const L=k.useCallback(U=>{c(U),u.current=U,d.current=!0,w.markDirty()},[c,w]),R=k.useCallback(async()=>{i&&(c(i.content),u.current=i.content,p.current=i.mtimeMs??null,d.current=!1,v(null))},[i,c]),N=k.useCallback(async()=>{try{const U=l??u.current,K=await o({path:e,content:U});typeof K.mtimeMs=="number"&&(p.current=K.mtimeMs),d.current=!1,v(null)}catch{}},[e,o,l]),H=k.useCallback(async()=>{!_||!d.current||await _.save()},[_]),$=k.useCallback(async()=>{await w.flushSave()},[w]);return{isLoading:a,error:s,content:l,isDirty:w.isDirty,conflict:b,onReloadFromServer:R,onOverwrite:N,setContent:L,save:H,flushSave:$,fileName:C,tabTitle:E}}function w1t({conflict:t,onReload:e,onOverwrite:r}){return T.jsx(yJ,{role:"alert",tone:"accent",className:"rounded-none border-x-0 border-t-0",description:T.jsx(T.Fragment,{children:"This file has been modified outside the editor. Your unsaved changes will be lost if you reload, or will overwrite the latest version on disk if you save."}),actions:T.jsxs(T.Fragment,{children:[T.jsx(Nr,{type:"button",variant:"outline",size:"xs",onClick:()=>void e(),children:"Reload"}),T.jsx(Nr,{type:"button",variant:"destructive",size:"xs",onClick:()=>void r(),children:"Overwrite"}),T.jsx("span",{className:"sr-only",children:t.path})]})})}function jfe({path:t,content:e,isLoading:r,error:n,conflict:i,onChange:a,onReload:s,onOverwrite:o,editorComponent:l,editorProps:c={},loadingFallback:u,errorMessage:d,className:m}){if(!t)return T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(I9,{className:"min-h-0 border-0",title:"No file selected",description:"Choose a file from the file tree to open an editor."})});if(n)return T.jsx("div",{className:"flex h-full items-center justify-center p-6",children:T.jsx(gJ,{title:"Failed to load file",description:d??n.message})});const p=u??T.jsxs("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[T.jsx(dv,{className:"size-3.5"}),T.jsx("span",{children:"Loading file..."})]});return T.jsxs("div",{className:`flex h-full min-h-0 flex-col ${m??""}`,children:[i&&T.jsx(w1t,{conflict:i,onReload:s,onOverwrite:o}),T.jsx(k.Suspense,{fallback:p,children:r||e===null?p:T.jsx(l,{content:e,onChange:a,className:c.className,...c})})]})}const C1t=k.lazy(()=>M(()=>import("./CodeEditor-DQqOn4xz-D9V6g9ew.js"),__vite__mapDeps([254,255])).then(t=>t.a).then(t=>({default:t.CodeEditor})));function T1t(t){var e;switch((e=t.split(".").pop())==null?void 0:e.toLowerCase()){case"js":case"jsx":return"javascript";case"ts":case"tsx":return"typescript";case"py":return"python";case"json":return"json";case"yaml":case"yml":return"yaml";case"md":case"markdown":return"markdown";case"sql":return"sql";default:return"typescript"}}function vG({params:t,api:e,className:r}){const n=typeof(t==null?void 0:t.path)=="string"?t.path:"",{content:i,isLoading:a,error:s,conflict:o,setContent:l,onReloadFromServer:c,onOverwrite:u,tabTitle:d}=zfe({path:n,panelId:e==null?void 0:e.id});e&&d&&e.setTitle(d);const m=T1t(n);return T.jsx(jfe,{path:n,content:i,isLoading:a,error:s,conflict:o,onChange:l,onReload:c,onOverwrite:u,editorComponent:C1t,editorProps:{language:m,wordWrap:!0,className:r}})}const k1t=k.lazy(()=>M(()=>import("./MarkdownEditor-DjiHxnRv-DfBqKF0s.js"),__vite__mapDeps([256,253,255])).then(t=>({default:t.MarkdownEditor})));function S1t({params:t,api:e,className:r}){const n=typeof(t==null?void 0:t.path)=="string"?t.path:"",{content:i,isLoading:a,error:s,conflict:o,setContent:l,onReloadFromServer:c,onOverwrite:u,tabTitle:d}=zfe({path:n,panelId:e==null?void 0:e.id});return e&&d&&e.setTitle(d),T.jsx(jfe,{path:n,content:i,isLoading:a,error:s,conflict:o,onChange:l,onReload:c,onOverwrite:u,editorComponent:k1t,editorProps:{className:r}})}function E1t({params:t}){const{path:e}=t,r=e.includes(".")?e.split(".").pop():void 0;return T.jsx("div",{className:"flex h-full items-center justify-center p-8",children:T.jsx(I9,{className:"border-0",title:"No editor available",description:r?`Install or enable a plugin that handles *.${r} files.`:"Install or enable a plugin that handles this file type.",children:T.jsx(Zd,{children:e})})})}const A1t={id:Afe,title:"Unsupported file",component:E1t,placement:"center",source:"builtin"},xG=[{component:kfe,patterns:["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py","**/*.rs","**/*.go","**/*.json","**/*.yml","**/*.yaml","**/*.toml","**/*.css","**/*.html","**/*.svg","**/*.sh","**/*.sql","**/*.graphql"]},{component:Sfe,patterns:["**/*.csv","**/*.tsv","**/*.data"]},{component:Efe,patterns:["**/*.md","**/*.mdx"]},{component:Afe,fallback:!0}];function D1t(t){const e=t.split("/").filter(Boolean).length,r=t.replace(/[*?!]/g,"").length;return e*10+r}function L1t(t){let e="^";for(let r=0;r<t.length;r++){const n=t[r],i=t[r+1];if(n==="*"&&i==="*"){t[r+2]==="/"?(e+="(?:.*/)?",r+=2):(e+=".*",r+=1);continue}if(n==="*"){e+="[^/]*";continue}if(n==="?"){e+="[^/]";continue}if(/[$()+,.=[\]^{|}\\]/.test(n)){e+=`\\${n}`;continue}e+=n}return new RegExp(`${e}$`)}function I1t(t,e){return L1t(e).test(t.replace(/\\/g,"/"))}function R1t(t){return t.split("/").pop()??t}function O1t(t){let e,r=-1;for(const n of xG)for(const i of n.patterns??[]){if(!I1t(t,i))continue;const a=D1t(i);a>=r&&(e=n,r=a)}return e??xG.find(n=>n.fallback)}const N1t={id:vgt,source:"builtin",resolve(t){if(t.kind!==q0)return;const e=t.target,r=O1t(e);if(r)return{id:`file:${e}`,component:r.component,title:R1t(e),params:{path:e},score:r.fallback?-1:0}}};function M1t(t){const e=t.lastIndexOf("/");return{id:t,title:e>=0?t.slice(e+1):t,subtitle:e>=0?t.slice(0,e+1):void 0}}function _G(){return{items:[],total:0,hasMore:!1}}function P1t({client:t,onSelect:e}){return{id:sw,label:"Files",adapter:{async search({query:r,limit:n,signal:i}){const a=r.trim();if(!a||i!=null&&i.aborted)return _G();const s=await t.search(Pfe(a),n,i);return i!=null&&i.aborted?_G():{items:s.map(M1t),total:s.length,hasMore:!1}}},onSelect:r=>e==null?void 0:e(r.id,r)}}function B1t({apiBaseUrl:t,authHeaders:e,onAuthError:r,apiTimeout:n,children:i}){return k.createElement(Sgt,{apiBaseUrl:t,authHeaders:e,onAuthError:r,timeout:n,children:i})}function F1t(){return k.useEffect(()=>{s1t()},[]),Rfe("."),null}const $1t=[{type:"provider",id:"filesystem-data",component:B1t},{type:"binding",id:"filesystem-tree-preload",component:F1t},{type:"left-tab",id:Tfe,title:"Files",component:c1t,source:"builtin",icon:zw},{type:"panel",panel:A1t},{type:"panel",panel:{id:kfe,title:"Code",component:vG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Sfe,title:"CSV",component:vG,placement:"center",source:"builtin"}},{type:"panel",panel:{id:Efe,title:"Markdown",component:S1t,placement:"center",source:"builtin"}},{type:"surface-resolver",resolver:N1t}];function z1t(){const t=fu(),e=zR();return k.useEffect(()=>{const r=e.get(sw);if(r&&r.pluginId!==aw)return;const n=P1t({client:t,onSelect:i=>{mS({kind:"openFile",params:{path:i}})}});return e.register(n,aw),()=>{var i;((i=e.get(sw))==null?void 0:i.pluginId)===aw&&e.unregister(sw)}},[e,t]),null}function j1t(){return FR({id:aw,label:"Filesystem",outputs:$1t,bindings:[z1t,h1t,g1t]})}const wG=j1t(),H1t=Eh().max(64).regex(/^[a-zA-Z0-9_-]+$/),ow=Eh().max(1024),V1t=R0().nonnegative(),U1t=go({collapsed:Ybe(),width:R0().int().positive()}),q1t=vD(H1t,V1t),G1t=go({root:JW(),width:R0().nonnegative().optional(),height:R0().nonnegative().optional(),orientation:R0().optional()}).passthrough(),W1t=go({id:ow,contentComponent:ow.optional(),title:ow.optional()}).passthrough(),Y1t=go({grid:G1t,panels:vD(ow,W1t)}).passthrough().nullable(),Z1t=go({layout:Y1t,sidebar:U1t,panelSizes:q1t}),X1t=go({theme:xD(["light","dark"])});function K1t(t){const e=Z1t.safeParse(t);return e.success?e.data:(console.error("Layout validation failed:",e.error.issues),null)}function Q1t(t){const e=X1t.safeParse(t);return e.success?e.data:(console.error("Preferences validation failed:",e.error.issues),null)}const CG=1e5,TG="2.0";let kG=!1,uT=null;function SG(t,e){if(!kG)try{localStorage.setItem(t,e)}catch(r){if(r instanceof DOMException&&(r.name==="QuotaExceededError"||r.code===22)){localStorage.removeItem(t);try{localStorage.setItem(t,e)}catch{kG=!0,console.error("localStorage quota exceeded. Persistence disabled for this session."),uT==null||uT()}}}}function J1t(t){try{const e=localStorage.getItem(t);if(!e)return{theme:"light"};const r=JSON.parse(e),n=Q1t(r==null?void 0:r.state);return n?{theme:n.theme}:{theme:"light"}}catch{return{theme:"light"}}}function eyt(t={}){const e=t.storageKey??(t.workspaceId?`boring-ui-v2:layout:${t.workspaceId}`:"boring-ui-v2:layout"),r="boring-ui-v2:preferences",n=t.persistenceEnabled===!1,i=n?{theme:"light"}:J1t(r),a=fft()(gft((o,l)=>({hydrationComplete:!1,layout:null,sidebar:{collapsed:!1,width:260},panelSizes:{},preferences:i,panels:[],activePanel:null,activeFile:null,visibleFiles:[],dirtyFiles:{},notifications:[],setHydrationComplete:c=>o({hydrationComplete:c}),setLayout:c=>o({layout:c}),setSidebar:c=>o({sidebar:{...l().sidebar,...c}}),setPanelSize:(c,u)=>o({panelSizes:{...l().panelSizes,[c]:u}}),setTheme:c=>{o({preferences:{theme:c}}),n||SG(r,JSON.stringify({state:{theme:c},version:0}))},openPanel:c=>o(u=>({panels:u.panels.some(d=>d.id===c.id)?u.panels:[...u.panels,c],activePanel:c.id})),closePanel:c=>o(u=>({panels:u.panels.filter(d=>d.id!==c),activePanel:u.activePanel===c?null:u.activePanel})),activatePanel:c=>o({activePanel:c}),openFile:(c,u)=>o(d=>({activeFile:c,visibleFiles:d.visibleFiles.includes(c)?d.visibleFiles:[...d.visibleFiles,c],activePanel:u??d.activePanel})),markDirty:(c,u)=>o(d=>({dirtyFiles:{...d.dirtyFiles,[c]:{panelId:u,savedAt:null}}})),markClean:c=>o(u=>{const{[c]:d,...m}=u.dirtyFiles;return{dirtyFiles:m}}),showNotification:c=>o(u=>({notifications:[...u.notifications,{...c,id:crypto.randomUUID(),timestamp:Date.now()}]})),dismissNotification:c=>o(u=>({notifications:u.notifications.filter(d=>d.id!==c)})),navigateToLine:(c,u)=>o({activeFile:c}),resetLayout:()=>{localStorage.removeItem(e),o({layout:null,sidebar:{collapsed:!1,width:260},panelSizes:{}})}}),{name:e,partialize:o=>({layout:o.layout,sidebar:o.sidebar,panelSizes:o.panelSizes}),onRehydrateStorage:()=>o=>{o==null||o.setHydrationComplete(!0)},storage:n?{getItem:()=>null,setItem:()=>{},removeItem:()=>{}}:{getItem:o=>{try{const l=localStorage.getItem(o);if(!l)return null;const c=JSON.parse(l);if((c==null?void 0:c.version)!==void 0&&String(c.version)!==TG)return t.onLayoutVersionMismatch?t.onLayoutVersionMismatch():localStorage.removeItem(o),null;const u=K1t(c==null?void 0:c.state);return u?{...c,state:u}:(console.error("Layout restored with defaults"),null)}catch{return console.error("Layout restored with defaults"),null}},setItem:(o,l)=>{const c={...l,version:TG},u=JSON.stringify(c);u.length>CG&&console.warn(`Workspace state serialized to ${u.length} bytes (budget: <${CG})`),SG(o,u)},removeItem:o=>{localStorage.removeItem(o)}}}));uT=()=>{a.getState().showNotification({message:"Storage full — layout changes won't be saved this session.",type:"warning"})};let s=null;return typeof window<"u"&&(s=o=>{o.key===e&&console.log("Layout key changed in another tab (not auto-applied)")},window.addEventListener("storage",s)),Object.assign(a,{cleanup:()=>{s&&typeof window<"u"&&(window.removeEventListener("storage",s),s=null),uT=null}})}function tyt(t){return(t==null?void 0:t["x-boring-workspace-id"])??(t==null?void 0:t["X-Boring-Workspace-Id"])??null}function ryt(t){if(!t)return;const e=t.replace(/\/$/,""),r="/api/v1/ui";return e.endsWith(r)?e.slice(0,-r.length)||void 0:e}function nyt(t){const e=Myt(),{getSurface:r,isWorkbenchOpen:n,openWorkbench:i,bridgeEndpoint:a,...s}=t,o=k.useCallback(u=>{var d;r&&n&&i&&pS({kind:"openFile",params:{path:u}},{surface:r,isWorkbenchOpen:n,openWorkbench:i}),(d=t.onOpenArtifact)==null||d.call(t,u)},[r,n,i,t.onOpenArtifact]),l=tyt(s.requestHeaders);k.useEffect(()=>{if(!(a===null||!r||!n||!i))return lgt({endpoint:ryt(a),query:l?{workspaceId:l}:void 0,ctx:{surface:r,isWorkbenchOpen:n,openWorkbench:i}})},[a,r,n,i,l]);const c=k.useCallback(u=>{var d;igt(u),(d=t.onData)==null||d.call(t,u)},[t.onData]);return T.jsx(e,{chrome:!1,...s,onOpenArtifact:o,onData:c})}function iyt({params:t}){if(!t||typeof t.sessionId!="string"||t.sessionId.length===0)throw new Error("chat panel requires params.sessionId");return k.createElement(nyt,{key:t.sessionId,...t,sessionId:t.sessionId})}const ayt={id:"chat",title:"Chat",component:iyt,placement:"left",source:"builtin"},EG=1440*60*1e3;function lw(t){if(t==null)return null;const e=typeof t=="number"?new Date(t):new Date(t);return Number.isNaN(e.getTime())?null:e}function AG(t){const e=new Date(t);return e.setHours(0,0,0,0),e.getTime()}function syt(t){const e=AG(new Date),r=e-EG,n=e-7*EG,i=[],a=[],s=[],o=[],l=[];for(const d of t){const m=lw(d.updatedAt);if(!m){l.push(d);continue}const p=AG(m);p>=e?i.push(d):p>=r?a.push(d):p>=n?s.push(d):o.push(d)}const c=(d,m)=>{var p,y;const b=((p=lw(d.updatedAt))==null?void 0:p.getTime())??0;return(((y=lw(m.updatedAt))==null?void 0:y.getTime())??0)-b},u=[];return i.length&&u.push({key:"today",label:"Today",items:i.sort(c)}),a.length&&u.push({key:"yesterday",label:"Yesterday",items:a.sort(c)}),s.length&&u.push({key:"week",label:"This week",items:s.sort(c)}),o.length&&u.push({key:"earlier",label:"Earlier",items:o.sort(c)}),l.length&&u.push({key:"undated",label:"Other",items:l}),u}function oyt(t){const e=lw(t);if(!e)return"";const r=Date.now()-e.getTime();if(r<6e4)return"now";const n=Math.floor(r/6e4);if(n<60)return`${n}m`;const i=Math.floor(n/60);if(i<24)return`${i}h`;const a=Math.floor(i/24);if(a<7)return`${a}d`;const s=Math.floor(a/7);if(s<5)return`${s}w`;const o=Math.floor(a/30);return o<12?`${o}mo`:`${Math.floor(a/365)}y`}function lyt({sessions:t,activeId:e,onSwitch:r,onCreate:n,onDelete:i,onClose:a,className:s}){const o=k.useMemo(()=>syt(t),[t]);return T.jsxs("div",{"data-boring-workspace-part":"session-list",className:fn("flex h-full min-h-0 flex-col bg-background",s),role:"navigation","aria-label":"Session history",children:[T.jsxs("div",{className:"flex items-center justify-between border-b border-[color:oklch(from_var(--border)_l_c_h/0.25)] px-3",style:{height:44},children:[T.jsx("span",{className:"text-[10.5px] font-medium uppercase tracking-[0.12em] text-muted-foreground/70",children:"Sessions"}),T.jsxs("div",{className:"flex items-center gap-0.5",children:[n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,"aria-label":"New session",title:"New chat",children:T.jsx(DJ,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),a&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:a,"aria-label":"Close sessions",title:"Close sessions (⌘1)",children:T.jsx(SJ,{className:"h-4 w-4",strokeWidth:1.75})})]})]}),T.jsxs("div",{className:"flex-1 overflow-y-auto py-2",children:[t.length===0&&T.jsxs("div",{className:"px-3 py-8 text-center text-[13px] text-muted-foreground",children:["No sessions yet.",T.jsx("br",{}),"Start a new chat to begin."]}),o.map((l,c)=>T.jsxs("section",{className:fn(c>0&&"mt-2"),children:[T.jsx("div",{className:"px-4 pb-1 pt-2 text-[10.5px] font-medium uppercase tracking-[0.14em] text-muted-foreground/70",children:l.label}),T.jsx("ul",{role:"list",className:"flex flex-col",children:l.items.map(u=>T.jsx(cyt,{session:u,active:u.id===e,onSwitch:r,onDelete:i},u.id))})]},l.key))]})]})}function cyt({session:t,active:e,onSwitch:r,onDelete:n}){const i=oyt(t.updatedAt);return T.jsxs("li",{role:"listitem","data-boring-workspace-part":"session-row","data-boring-state":e?"selected":void 0,className:fn("group relative mx-2 flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] transition-colors duration-150 ease-[cubic-bezier(0.22,1,0.36,1)]","cursor-pointer hover:bg-foreground/[0.04]",e&&"bg-foreground/[0.06] text-foreground"),onClick:()=>r==null?void 0:r(t.id),children:[T.jsxs("span",{className:"min-w-0 flex-1 truncate leading-5",title:t.title,children:[T.jsx("span",{className:fn(e?"font-medium text-foreground":"text-foreground/90"),children:t.title||"Untitled"}),i&&T.jsxs("span",{className:"ml-1.5 text-muted-foreground/70 tabular-nums",children:["· ",i]})]}),n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",className:"shrink-0 text-muted-foreground opacity-0 hover:text-destructive focus-visible:opacity-100 group-hover:opacity-100",onClick:a=>{a.stopPropagation(),n(t.id)},"aria-label":`Delete ${t.title||"session"}`,children:T.jsx("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:T.jsx("path",{d:"M3.5 3.5l7 7M10.5 3.5l-7 7"})})})]})}function uyt({params:t}){return k.createElement(lyt,{sessions:(t==null?void 0:t.sessions)??[],activeId:t==null?void 0:t.activeId,onSwitch:t==null?void 0:t.onSwitch,onCreate:t==null?void 0:t.onCreate,onDelete:t==null?void 0:t.onDelete,onClose:t==null?void 0:t.onClose})}const hyt={id:"session-list",title:"Sessions",component:uyt,placement:"left",source:"builtin"};function Hfe({rootDir:t="",bridge:e,defaultTab:r,onCollapse:n,className:i}){var a;const s=Vv(),o=k.useSyncExternalStore(s.subscribe,s.getSnapshot,s.getSnapshot),l=k.useMemo(()=>o.filter(H=>H.placement==="left-tab"),[o]),c=k.useMemo(()=>{const H=[];for(const $ of l){const U=$.icon;H.push({id:$.id,title:$.title,icon:U?T.jsx(U,{className:"h-3.5 w-3.5"}):T.jsx(n8e,{className:"h-3.5 w-3.5"}),panel:$})}return H},[l]),[u,d]=k.useState(r??""),m=c.some(H=>H.id===u)?u:((a=c[0])==null?void 0:a.id)??"",[p,y]=k.useState(!1),[b,v]=k.useState(""),[_,w]=k.useState(""),C=k.useRef(null),E=k.useRef(void 0);k.useEffect(()=>(clearTimeout(E.current),E.current=setTimeout(()=>w(b),180),()=>clearTimeout(E.current)),[b]),k.useEffect(()=>{var H;p&&((H=C.current)==null||H.focus())},[p]),k.useEffect(()=>{c.length>0&&!c.some(H=>H.id===u)&&d(c[0].id)},[u,c]);const D=k.useCallback(()=>{y(H=>(H&&v(""),!H))},[]),L=k.useCallback(H=>{H.key==="Escape"&&(H.preventDefault(),y(!1),v(""))},[]),R=c.find(H=>H.id===m),N=k.useMemo(()=>({rootDir:t,bridge:e,query:_,searchQuery:_||void 0,chromeless:!0}),[e,_,t]);return T.jsxs("div",{"data-boring-workspace-part":"workbench-left",className:fn("workbench-left-root flex h-full min-h-0 flex-col",i),children:[T.jsxs("div",{className:"flex h-11 items-center gap-1 border-b border-[color:oklch(from_var(--border)_l_c_h/0.25)] px-2",children:[T.jsx(fJ,{value:m,onValueChange:d,className:"min-w-0 flex-1","aria-label":"Workbench sources",children:T.jsx(pJ,{variant:"line",className:"h-auto gap-0.5 p-0",children:c.map(H=>T.jsxs(mJ,{value:H.id,className:"h-8 flex-none gap-1.5 px-2 py-1 text-[12px] data-[state=active]:text-foreground data-[state=active]:after:bg-[color:var(--accent)]",children:[T.jsx("span",{className:"data-[state=active]:text-[color:var(--accent)]",children:H.icon}),T.jsx("span",{className:"tracking-tight",children:H.title})]},H.id))})}),T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:D,className:fn(p&&"bg-foreground/5 text-foreground"),"aria-label":"Search",title:"Search",children:T.jsx(pA,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,"aria-label":"Hide sources",title:"Hide sources",children:T.jsx(SJ,{className:"h-4 w-4",strokeWidth:1.75})})]}),p&&T.jsxs("div",{className:"flex items-center gap-1 border-b border-border/60 px-2 py-1.5",children:[T.jsx(pA,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),T.jsx(hv,{ref:C,type:"text",value:b,onChange:H=>v(H.target.value),onKeyDown:L,placeholder:`Search ${((R==null?void 0:R.title)??"sources").toLowerCase()}...`,className:"h-7 flex-1 border-0 bg-transparent px-0 py-0 text-xs shadow-none focus-visible:ring-0 dark:bg-transparent"}),b&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>v(""),"aria-label":"Clear search",children:T.jsx(mv,{className:"h-3 w-3"})})]}),T.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:T.jsx(myt,{panel:R==null?void 0:R.panel,params:N})})]})}const dyt={dispose(){}},fyt=new Proxy({},{get:()=>()=>dyt}),pyt=new Proxy({},{get:()=>()=>{}});function myt({panel:t,params:e}){const r=k.useMemo(()=>t?t.lazy?k.lazy(t.component):t.component:null,[t]);return!t||!r?T.jsx("div",{className:"flex h-full items-center justify-center px-4 text-center text-[12px] text-muted-foreground",children:"No workbench source registered."}):T.jsx(fS,{pluginId:t.pluginId??t.id,contributionKind:"panel",contributionId:t.id,children:T.jsx(k.Suspense,{fallback:T.jsx("div",{className:"flex h-full items-center justify-center px-4 text-center text-[12px] text-muted-foreground",children:"Loading source..."}),children:k.createElement(r,{params:e,api:fyt,containerApi:pyt,className:"h-full"})})})}function gyt({params:t}){return k.createElement(Hfe,t??{})}const yyt={id:"workbench-left",title:"Workbench",component:gyt,placement:"left",source:"builtin"},byt="boring-ui-v2:surface",Vfe=1,vyt={version:"2.0",groups:[{id:"artifacts",position:"center",dynamic:!0}]};function xyt(t,e){if(typeof window>"u")return;let r;try{r=window.localStorage.getItem(t)}catch{return}if(!r)return;let n;try{n=JSON.parse(r)}catch{return}if(!n||typeof n!="object")return;const i=n;if(i.v!==Vfe)return;const a=i.layout;if(!a||typeof a!="object")return;const s=a.panels;if(!(!s||typeof s!="object")){for(const o of Object.values(s)){if(!o||typeof o!="object")return;const l=o.contentComponent;if(typeof l!="string"||e&&!e.has(l))return}return a}}function Ufe({visible:t=!0,storageKey:e=byt,allowedPanels:r,persistedLayout:n,onLayoutChange:i,onReady:a,prefixHeaderActions:s,rightHeaderActions:o,watermarkComponent:l,className:c}){const u=!!(i||n),d=k.useMemo(()=>{if(!u)return xyt(e,r?new Set(r):void 0)},[u,e,r]),m=k.useCallback(p=>{if(i){i(p);return}const y={v:Vfe,layout:p};try{window.localStorage.setItem(e,JSON.stringify(y))}catch{}},[i,e]);return t?T.jsx("div",{className:fn("h-full w-full",c),"data-testid":"artifact-surface",children:T.jsx(Jgt,{layout:vyt,persistedLayout:n??d,onLayoutChange:m,onReady:a,allowedPanels:r,prefixHeaderActions:s,rightHeaderActions:o,watermarkComponent:l},`${e}:${u?"ext":"auto"}`)}):null}Ufe.defaultAllowedPanels=[];function aD(t){const e=t.trim().replace(/\\/g,"/").replace(/^\.\//,"").replace(/\/+/g,"/");if(e.includes(".."))throw new Error("Invalid path: path traversal not allowed");return e}function i6(t,e){const r=`file:${e}`;return t.getPanel(r)??t.panels.find(n=>{var i;return((i=n.params)==null?void 0:i.path)===e})}function _yt(t){return t.kind!==q0?t:{...t,target:aD(t.target)}}function a6(t,e){return e.id??`surface:${t.kind}:${t.target}`}let qfe=0;function Sc(){return{seq:++qfe,status:"ok"}}function b_(t,e){return{seq:++qfe,status:"error",error:{code:t,message:e}}}function wyt({rootDir:t="",sidebarDefaultWidth:e=240,sidebarMinWidth:r=180,sidebarMaxWidth:n=480,storageKey:i,onReady:a,onChange:s,onClose:o,extraPanels:l,className:c}){const[u,d]=k.useState(()=>{if(!i)return!1;try{return localStorage.getItem(`${i}:sidebarCollapsed`)==="1"}catch{return!1}}),[m,p]=k.useState(()=>{if(!i)return e;try{const ne=localStorage.getItem(`${i}:sidebarWidth`);if(!ne)return e;const ie=Number(ne);return Number.isFinite(ie)?Math.max(r,Math.min(n,ie)):e}catch{return e}}),y=k.useRef(null),b=k.useRef(null),v=k.useRef(null),[_,w]=k.useState(null),C=k.useRef(a);C.current=a;const E=k.useRef(s);E.current=s;const D=k.useRef(new Set),L=Vv(),R=Smt(),N=k.useRef(L);N.current=L;const H=k.useRef(R);H.current=R;const $=k.useMemo(()=>{const ne=new Set;for(const ie of L.list())ie.placement==="center"&&ne.add(ie.id);for(const ie of l??[])ne.add(ie);return[...ne]},[l,L]),U=k.useCallback(ne=>{const ie=y.current;if(!ie){console.warn("[SurfaceShell] openFile: surface not ready (dockview not initialized)");return}const ce=aD(ne),ge=i6(ie,ce);if(ge){ge.api.setActive();return}const Le={kind:q0,target:ce},Te=H.current.resolve(Le);if(!Te){console.warn(`[SurfaceShell] openFile: no surface resolver matched "${ce}"`);return}if(!N.current.has(Te.component)){console.warn(`[SurfaceShell] openFile: resolver returned unknown panel "${Te.component}" for "${ce}"`);return}const Ee=a6(Le,Te),Ne=ie.getPanel(Ee);if(Ne){Te.params&&Ne.api.updateParameters(Te.params),Ne.api.setActive();return}ie.addPanel({id:Ee,component:Te.component,title:Te.title??ce.split("/").pop()??ce,params:Te.params??{path:ce}})},[]),K=k.useCallback(ne=>{const ie=y.current;if(!ie){console.warn("[SurfaceShell] openSurface: surface not ready (dockview not initialized)");return}const ce=_yt(ne),ge=H.current.resolve(ce);if(!ge){console.warn(`[SurfaceShell] openSurface: no resolver matched kind="${ce.kind}" target="${ce.target}"`);return}const Le=a6(ce,ge),Te=ce.kind===q0?i6(ie,ce.target)??ie.getPanel(Le):ie.getPanel(Le);if(Te){ge.params&&Te.api.updateParameters(ge.params),Te.api.setActive();return}const Ee=N.current;if(!Ee.has(ge.component)){const Ne=Ee.list().map(Ge=>Ge.id).join(", ");throw new Error(`openSurface: unknown component "${ge.component}". Registered panels: [${Ne}]. Register the component through a panel output before resolving to it.`)}ie.addPanel({id:Le,component:ge.component,title:ge.title??ce.target,params:ge.params})},[]),se=k.useCallback(ne=>{const ie=y.current;if(!ie)return;const ce=ie.getPanel(ne.id);if(ce){ne.params&&ce.api.updateParameters(ne.params),ce.api.setActive();return}const ge=N.current;if(!ge.has(ne.component)){const Le=ge.list().map(Te=>Te.id).join(", ");throw new Error(`openPanel: unknown component "${ne.component}". Registered panels: [${Le}]. Add the component to WorkspaceProvider's "panels" prop, or pick one of the registered ids.`)}ie.addPanel({id:ne.id,component:ne.component,title:ne.title??ne.id,params:ne.params})},[]),q=k.useCallback(()=>{var ne;const ie=y.current;return ie?{openTabs:ie.panels.map(ce=>({id:ce.id,title:ce.title??ce.id,params:ce.params??void 0})),activeTab:((ne=ie.activePanel)==null?void 0:ne.id)??null}:{openTabs:[],activeTab:null}},[]),j=k.useCallback(()=>{var ne,ie;const ce=y.current,ge=ce?ce.panels.map(Ne=>({id:Ne.id,component:String(Ne.component??""),params:Ne.params??void 0})):[],Le=((ne=ce==null?void 0:ce.activePanel)==null?void 0:ne.id)??null,Te=((ie=ce==null?void 0:ce.activePanel)==null?void 0:ie.params)??void 0,Ee=typeof(Te==null?void 0:Te.path)=="string"?Te.path:null;return{hydrationComplete:!0,layout:null,sidebar:{collapsed:!1,width:e},panelSizes:{},preferences:{theme:"dark"},panels:ge,activePanel:Le,activeFile:Ee,visibleFiles:ge.map(Ne=>{var Ge;return(Ge=Ne.params)==null?void 0:Ge.path}).filter(Ne=>typeof Ne=="string"),dirtyFiles:{},notifications:[]}},[e]),F=k.useCallback(()=>{const ne=j();for(const ie of D.current)ie(ne)},[j]),W=k.useCallback(ne=>{var ie;y.current=ne,w(ne),(ie=C.current)==null||ie.call(C,{openFile:U,openSurface:K,openPanel:se,closeWorkbenchLeftPane:()=>d(!0),getSnapshot:q});const ce=()=>{var ge;(ge=E.current)==null||ge.call(E,q()),F()};ne.onDidAddPanel(ce),ne.onDidRemovePanel(ce),ne.onDidActivePanelChange(ce),ce()},[U,K,se,q,F]),X=k.useCallback(async ne=>{try{const ie=y.current;if(!ie)return b_("not-ready","surface not ready");const ce=aD(ne),ge=i6(ie,ce);if(ge)return ge.api.setActive(),Sc();const Le={kind:q0,target:ce},Te=H.current.resolve(Le);if(!Te)return b_("NO_SURFACE_RESOLVER",`no registered surface resolver handles ${ce}`);if(!N.current.has(Te.component))return b_("NO_SURFACE_PANEL",`surface resolver "${Le.kind}" returned unknown panel "${Te.component}"`);const Ee=a6(Le,Te),Ne=ie.getPanel(Ee);return Ne?(Te.params&&Ne.api.updateParameters(Te.params),Ne.api.setActive(),Sc()):(ie.addPanel({id:Ee,component:Te.component,title:Te.title??ce.split("/").pop()??ce,params:Te.params??{path:ce}}),Sc())}catch(ie){return b_("INVALID_SURFACE_PATH",ie instanceof Error?ie.message:"failed to open file")}},[]),de=k.useMemo(()=>({getOpenPanels:()=>j().panels,getActiveFile:()=>j().activeFile,getDirtyFiles:()=>[],getVisibleFiles:()=>j().visibleFiles,openFile:X,openPanel:async()=>Sc(),closePanel:async()=>Sc(),closeWorkbenchLeftPane:async()=>(d(!0),Sc()),showNotification:async()=>Sc(),navigateToLine:async()=>Sc(),expandToFile:async()=>Sc(),markDirty:()=>{},markClean:()=>{},subscribe:()=>()=>{},select:(ne,ie)=>{const ce=ge=>ie(ne(ge));return D.current.add(ce),ce(j()),()=>{D.current.delete(ce)}}}),[X,j]),G=k.useCallback(ne=>{u||(ne.preventDefault(),ne.currentTarget.setPointerCapture(ne.pointerId),v.current={startX:ne.clientX,startWidth:m})},[u,m]),Q=k.useCallback(ne=>{const ie=v.current;if(!ie)return;const ce=ne.clientX-ie.startX,ge=Math.max(r,Math.min(n,ie.startWidth+ce));p(ge)},[r,n]),ee=k.useCallback(ne=>{v.current&&(v.current=null,ne.currentTarget.releasePointerCapture(ne.pointerId))},[]),V=k.useCallback(ne=>{if(u)return;const ie=ne.shiftKey?32:16;ne.key==="ArrowLeft"?(ne.preventDefault(),p(ce=>Math.max(r,ce-ie))):ne.key==="ArrowRight"?(ne.preventDefault(),p(ce=>Math.min(n,ce+ie))):ne.key==="Home"?(ne.preventDefault(),p(r)):ne.key==="End"&&(ne.preventDefault(),p(n))},[u,r,n]);return k.useEffect(()=>{if(i)try{localStorage.setItem(`${i}:sidebarWidth`,String(m))}catch{}},[i,m]),k.useEffect(()=>{if(i)try{localStorage.setItem(`${i}:sidebarCollapsed`,u?"1":"0")}catch{}},[i,u]),T.jsxs("div",{ref:b,"data-boring-workspace-part":"surface",className:fn("flex h-full min-h-0 w-full bg-background",c),"data-testid":"surface-shell",children:[u?null:T.jsxs(T.Fragment,{children:[T.jsx("aside",{"data-boring-workspace-part":"surface-sidebar","data-boring-state":"expanded",className:"flex h-full min-h-0 flex-col",style:{width:m,minWidth:m,maxWidth:m},"aria-label":"Workbench left pane",children:T.jsx(Hfe,{rootDir:t,bridge:de,onCollapse:()=>d(!0)})}),T.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar",tabIndex:0,onPointerDown:G,onPointerMove:Q,onPointerUp:ee,onPointerCancel:ee,onKeyDown:V,className:fn("relative w-px shrink-0 cursor-col-resize bg-transparent transition-colors hover:bg-primary/40","focus-visible:outline-none focus-visible:bg-primary/50"),children:T.jsx("span",{"aria-hidden":"true",className:"absolute inset-y-0 -left-1.5 -right-1.5"})})]}),T.jsxs("div",{className:"relative min-w-0 flex-1",children:[T.jsx("div",{"data-boring-workspace-part":"surface-tabs","data-boring-state":u?"collapsed":"expanded",className:"workbench-dockview h-full","data-collapsed-sources":u?"true":void 0,children:T.jsx(Ufe,{storageKey:i,onReady:W,allowedPanels:$,rightHeaderActions:o?()=>T.jsx(Cyt,{onClose:o}):void 0})}),u&&T.jsx("div",{className:"pointer-events-none absolute left-0 top-0 z-20 flex items-center",style:{height:44},children:T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>d(!1),className:"pointer-events-auto ml-2","aria-label":"Show sources",title:"Show sources",children:T.jsx(zw,{className:"h-4 w-4",strokeWidth:1.75})})}),T.jsx(Tyt,{api:_,collapsed:u,onExpandFiles:()=>d(!1),onClose:o})]})]})}function Cyt({onClose:t}){return T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:t,className:"mx-1","aria-label":"Close workbench",title:"Close workbench (⌘2)",children:T.jsx(pv,{className:"h-4 w-4",strokeWidth:1.75})})}function Tyt({api:t,collapsed:e,onExpandFiles:r,onClose:n}){const[i,a]=k.useState(!0);return k.useEffect(()=>{if(!t)return;const s=()=>a(t.panels.length===0);s();const o=t.onDidAddPanel(s),l=t.onDidRemovePanel(s);return()=>{o.dispose(),l.dispose()}},[t]),i?T.jsxs(T.Fragment,{children:[T.jsxs("div",{className:"pointer-events-none absolute inset-x-0 top-0 flex items-center gap-0.5 border-b border-[color:oklch(from_var(--border)_l_c_h/0.4)] bg-background px-1",style:{height:44},children:[e&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,className:"pointer-events-auto mx-1","aria-label":"Show sources",title:"Show sources",children:T.jsx(zw,{className:"h-4 w-4",strokeWidth:1.75})}),T.jsx("div",{className:"flex-1"}),n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-xs",onClick:n,className:"pointer-events-auto mx-1","aria-label":"Close workbench",title:"Close workbench (⌘2)",children:T.jsx(pv,{className:"h-4 w-4",strokeWidth:1.75})})]}),T.jsxs("div",{className:"pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-3 px-6 pt-12 pb-10 text-center",children:[T.jsxs("div",{className:"flex items-center gap-2 text-[10.5px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:[T.jsx("span",{className:"inline-block h-px w-4 bg-[color:var(--accent)]","aria-hidden":"true"}),"Workbench"]}),T.jsx("div",{className:"text-[15px] font-medium tracking-tight text-foreground",children:"Nothing open yet"}),T.jsx("p",{className:"max-w-[280px] text-[12.5px] leading-relaxed text-muted-foreground",children:"Open a source item, or let the agent produce an artifact here."}),e&&T.jsxs(Nr,{type:"button",variant:"outline",size:"sm",onClick:r,className:"pointer-events-auto mt-2 gap-1.5 text-[12px] hover:border-[color:var(--accent)]/40 hover:text-[color:var(--accent)]",children:[T.jsx(zw,{className:"h-3.5 w-3.5",strokeWidth:1.75}),"Show sources"]})]})]}):null}function kyt({params:t}){return k.createElement(wyt,t??{})}const Syt={id:"artifact-surface",title:"Surface",component:kyt,placement:"right",source:"builtin"},Eyt=[ayt,hyt,yyt,Syt];function Ayt(t){return null}function Dyt(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}const DG="workspace-provider",Lyt="workspace-provider",Iyt=k.createContext(null),Ryt=k.createContext(null),qR=k.createContext(null);function Oyt(){const t=k.useContext(qR);if(!t)throw new Error("useWorkspaceContext must be used within a WorkspaceProvider");return t}function Nyt(){return k.useContext(qR)}function Myt(){const{chatPanel:t}=Oyt();if(!t)throw new Error("WorkspaceProvider requires a chatPanel prop before rendering ChatPanelHost");return t}function Pyt({store:t}){const e=k.useMemo(()=>[{key:"b",mod:!0,handler:()=>{const r=t.getState();r.setSidebar({collapsed:!r.sidebar.collapsed})}},{key:"\\",mod:!0,handler:()=>{const r=t.getState();r.panels.find(n=>n.id==="agent")?r.closePanel("agent"):r.openPanel({id:"agent",component:"agent"})}},{key:"w",mod:!0,handler:()=>{const r=t.getState();r.activePanel&&r.closePanel(r.activePanel)}}],[t]);return UR({shortcuts:e}),null}function Byt({commands:t}){const e=$R();return k.useEffect(()=>{if(!(t!=null&&t.length))return;const r=t.map(n=>n.id);for(const n of r)e.unregisterCommand(n);for(const n of t)e.registerCommand({...n,pluginId:n.pluginId??Lyt});return()=>{for(const n of r)e.unregisterCommand(n)}},[e,t]),null}function Fyt({catalogs:t}){const e=zR();return k.useEffect(()=>{if(t!=null&&t.length){for(const r of t)e.register(r,DG);return()=>{e.unregisterByPluginId(DG)}}},[e,t]),null}function $yt({plugins:t}){return T.jsx(T.Fragment,{children:t.map(e=>{var r;const n=((r=e.outputs)==null?void 0:r.filter(i=>i.type==="binding"))??[];return[...(e.bindings??[]).map((i,a)=>T.jsx(i,{},`${e.id}:binding:${a}`)),...n.map(i=>{const a=i.component;return T.jsx(a,{},`${e.id}:output:${i.id}`)})]})})}function zyt({plugins:t,apiBaseUrl:e,authHeaders:r,onAuthError:n,apiTimeout:i,children:a}){return t.flatMap(s=>{var o;return((o=s.outputs)==null?void 0:o.filter(l=>l.type==="provider").map(l=>({plugin:s,output:l})))??[]}).reduceRight((s,{plugin:o,output:l})=>{const c=l.component;return T.jsx(c,{apiBaseUrl:e,authHeaders:r,onAuthError:n,apiTimeout:i,children:s},`${o.id}:provider:${l.id}`)},a)}function jyt({onOpenFile:t}){return k.useEffect(()=>{if(t)return Or.on(Ns.uiCommand,({command:e})=>{if(e.kind!=="openFile")return;const r=e.params.path;typeof r=="string"&&t(r)})},[t]),null}function Hyt({children:t,chatPanel:e,plugins:r,excludeDefaults:n,panels:i,commands:a,catalogs:s,capabilities:o,apiBaseUrl:l="",authHeaders:c,apiTimeout:u,defaultTheme:d,onThemeChange:m,workspaceId:p,storageKey:y,persistenceEnabled:b=!0,bridgeEndpoint:v,onAuthError:_,onOpenFile:w}){const C=k.useRef(null);if(!C.current){const V=eyt({workspaceId:p,storageKey:y,persistenceEnabled:b});Hgt(V);const ne=d??Dyt();ne!=="light"&&!b?V.getState().setTheme(ne):ne!=="light"&&(typeof localStorage<"u"&&localStorage.getItem("boring-ui-v2:preferences")!==null||V.getState().setTheme(ne)),C.current=V}const E=C.current,D=k.useRef(null),L=k.useRef(c);L.current=c;const R=k.useRef(_);R.current=_,k.useEffect(()=>()=>{var V;(V=D.current)==null||V.disconnect(),D.current=null,E.cleanup()},[E]),k.useEffect(()=>{var V,ne;if(D.current&&(D.current.disconnect(),D.current=null),!v)return;const ie=Hmt(E),ce=(ne=(V=L.current)==null?void 0:V.Authorization)==null?void 0:ne.replace(/^Bearer\s+/i,""),ge=Gmt({endpoint:v,bridge:ie,store:E,authToken:ce,onAuthError:Le=>{var Te;return(Te=R.current)==null?void 0:Te.call(R,Le)},onConnectionChange:G});return ge.connect(),D.current=ge,()=>{ge.disconnect(),D.current=null}},[v,E]);const{panelRegistry:N,commandRegistry:H,catalogRegistry:$,surfaceResolverRegistry:U,pluginMetas:K,pluginsWithBindings:se}=k.useMemo(()=>{const V=new Fgt(o),ne=new zgt,ie=new vfe,ce=new xfe;for(const Ee of Eyt){const{id:Ne,...Ge}=Ee;V.register(Ne,Ge)}const ge=new Set(n??[]).has(wG.id)?[]:[wG],Le=[...ge,...r??[]];Cmt({chatPanel:e??Ayt,plugins:r??[],defaults:ge,excludeDefaults:n,registries:{panels:V,commands:ne,catalogs:ie,surfaceResolvers:ce}});const Te=[{id:"workspace:chat-layout",label:"Layout"},{id:"agent:chat-layout",label:"Layout"},...Le.map(Ee=>({id:Ee.id,label:Ee.label,systemPrompt:Ee.systemPrompt}))];if(i)for(const Ee of i){const{id:Ne,...Ge}=Ee;V.register(Ne,Ge)}return{panelRegistry:V,commandRegistry:ne,catalogRegistry:ie,surfaceResolverRegistry:ce,pluginMetas:Te,pluginsWithBindings:Le}},[o,e,r,n,i]),q=k.useRef(m);q.current=m;const j=k.useCallback(V=>{var ne;E.getState().setTheme(V),(ne=q.current)==null||ne.call(q,V)},[E]),F=k.useCallback(()=>{const V=E.getState().preferences.theme==="light"?"dark":"light";j(V)},[E,j]),W=Vgt();k.useEffect(()=>(document.documentElement.setAttribute("data-theme",W),()=>{document.documentElement.removeAttribute("data-theme")}),[W]);const X=k.useMemo(()=>({setTheme:j,toggleTheme:F}),[j,F]),[de,G]=k.useState(!1),Q=k.useMemo(()=>({connected:de}),[de]),ee=k.useMemo(()=>({chatPanel:e??null,registeredPlugins:K}),[e,K]);return T.jsx(qR.Provider,{value:ee,children:T.jsx(Iyt.Provider,{value:X,children:T.jsx(Ryt.Provider,{value:Q,children:T.jsx(Lmt,{children:T.jsx(kmt,{panelRegistry:N,commandRegistry:H,catalogRegistry:$,surfaceResolverRegistry:U,children:T.jsxs(zyt,{plugins:se,apiBaseUrl:l,authHeaders:c,onAuthError:_,apiTimeout:u,children:[T.jsx($yt,{plugins:se}),T.jsx(jyt,{onOpenFile:w}),T.jsx(Byt,{commands:a}),T.jsx(Fyt,{catalogs:s}),T.jsx(Pyt,{store:E}),T.jsx(qyt,{}),T.jsx(P6e,{}),t,!1]})})})})})})}function Vyt(t){const e=Date.now(),r=[];for(const n of t)if(typeof n=="string")if(n.startsWith("cmd:")){const i=n.slice(4);r.push({type:"command",commandId:i,titleSnapshot:i,selectedAt:e})}else{const i=n.lastIndexOf("/");r.push({type:"catalog",catalogId:"files",rowId:n,rowSnapshot:{id:n,title:i>=0?n.slice(i+1):n,subtitle:i>=0?n.slice(0,i+1):void 0},selectedAt:e})}else typeof n=="object"&&n!==null&&"type"in n&&r.push(n);return r}const Gfe="boring-ui-v2:command-palette:recent",sD=50;function GR(){try{const t=localStorage.getItem(Gfe);if(!t)return[];const e=JSON.parse(t);if(!Array.isArray(e))return[];if(e.some(r=>typeof r=="string")){const r=Vyt(e).filter(RG).slice(0,sD);return WR(r),r}return e.filter(RG).slice(0,sD)}catch{return[]}}function WR(t){try{localStorage.setItem(Gfe,JSON.stringify(t.slice(0,sD)))}catch{}}function LG(t,e){const r=GR().filter(n=>!(n.type==="catalog"&&n.catalogId===t&&n.rowId===e.id));r.unshift({type:"catalog",catalogId:t,rowId:e.id,rowSnapshot:e,selectedAt:Date.now()}),WR(r)}function IG(t,e){const r=GR().filter(n=>!(n.type==="command"&&n.commandId===t));r.unshift({type:"command",commandId:t,titleSnapshot:e,selectedAt:Date.now()}),WR(r)}function RG(t){if(typeof t!="object"||t===null)return!1;const e=t;return e.type==="catalog"?typeof e.catalogId=="string"&&typeof e.rowId=="string"&&typeof e.rowSnapshot=="object"&&e.rowSnapshot!==null&&typeof e.selectedAt=="number":e.type==="command"?typeof e.commandId=="string"&&typeof e.titleSnapshot=="string"&&typeof e.selectedAt=="number":!1}const v_=50,OG="Catalogs";function NG(t){return t instanceof Error?t.message:"Search failed"}function Uyt(t){if(!t.when)return!0;try{return t.when()}catch{return!1}}function qyt(t){const[e,r]=k.useState(!1),[n,i]=k.useState(""),[a,s]=k.useState("catalogs"),[o,l]=k.useState(""),[c,u]=k.useState([]),d=Amt(),m=Emt(),p=Nyt(),y=k.useMemo(()=>{const q={};for(const j of(p==null?void 0:p.registeredPlugins)??[])j.label&&(q[j.id]=j.label);return q},[p==null?void 0:p.registeredPlugins]),b=k.useRef(null),v=k.useRef(null),_=k.useRef(!1),w=a==="commands",C=n.trim();k.useEffect(()=>{if(w){l("");return}const q=setTimeout(()=>l(C),180);return()=>clearTimeout(q)},[w,C]),k.useEffect(()=>{if(!e)return;const q=F=>{F.key==="Escape"&&(F.preventDefault(),F.stopPropagation(),r(!1))},j=F=>{const W=F.target;if(!W)return;const X=document.querySelector('[data-slot="dialog-content"]');X&&!X.contains(W)&&(F.preventDefault(),F.stopPropagation(),r(!1))};return window.addEventListener("keydown",q,{capture:!0}),window.addEventListener("pointerdown",j,{capture:!0}),()=>{window.removeEventListener("keydown",q,{capture:!0}),window.removeEventListener("pointerdown",j,{capture:!0})}},[e]);const E=k.useCallback(()=>{!e&&document.activeElement instanceof HTMLElement&&(v.current=document.activeElement),r(!0)},[e]);UR({shortcuts:k.useMemo(()=>[{key:"k",mod:!0,allowInEditable:!0,handler:E},{key:"p",mod:!0,allowInEditable:!0,handler:E}],[E])}),k.useEffect(()=>{if(e)i(""),s("catalogs"),requestAnimationFrame(()=>{var q;(q=b.current)==null||q.focus()});else if(_.current){const q=v.current;q&&q.isConnected&&q.focus(),v.current=null}_.current=e},[e]);const D=k.useCallback(q=>{s(q),i(j=>j.replace(/^>\s*/,"")),requestAnimationFrame(()=>{var j;return(j=b.current)==null?void 0:j.focus()})},[]),L=k.useCallback(()=>{D(a==="commands"?"catalogs":"commands")},[a,D]),R=k.useCallback(q=>{if(q.startsWith(">")){s("commands"),i(q.slice(1));return}i(q)},[]),N=k.useCallback(q=>{q.key==="Tab"&&(q.preventDefault(),q.stopPropagation(),L())},[L]);k.useEffect(()=>{if(w||!o){u([]);return}const q=new AbortController,j=[...d];u(j.map(W=>({catalog:W,rows:[],loading:!0})));const F=(W,X)=>{q.signal.aborted||u(de=>de.map(G=>G.catalog.id===W.id?{catalog:W,...X}:G))};for(const W of j)try{const X=W.adapter.search({query:o,filters:{},limit:v_,offset:0,signal:q.signal});Promise.resolve(X).then(de=>{F(W,{rows:de.items.slice(0,v_),loading:!1})},de=>{F(W,{rows:[],loading:!1,error:NG(de)})})}catch(X){F(W,{rows:[],loading:!1,error:NG(X)})}return()=>{q.abort()}},[d,o,w]);const H=k.useMemo(()=>{if(!w)return[];const q=m.filter(Uyt);if(!C)return q.slice(0,v_);const j=C.toLowerCase();return q.filter(F=>{var W;return F.title.toLowerCase().includes(j)?!0:((W=F.keywords)==null?void 0:W.some(X=>X.toLowerCase().includes(j)))??!1}).slice(0,v_)},[m,w,C]),$=k.useMemo(()=>w||C?[]:GR().filter(q=>q.type==="catalog"?d.some(j=>j.id===q.catalogId):m.some(j=>j.id===q.commandId)),[w,C,d,m]),U=k.useCallback((q,j)=>{LG(q.id,j),q.onSelect(j),r(!1)},[]),K=k.useCallback(q=>{IG(q.id,q.title),q.run(),r(!1)},[]),se=k.useCallback(q=>{if(q.type==="catalog"){const j=d.find(F=>F.id===q.catalogId);j&&(LG(j.id,q.rowSnapshot),j.onSelect(q.rowSnapshot))}else{const j=m.find(F=>F.id===q.commandId);j&&(IG(j.id,j.title),j.run())}r(!1)},[d,m]);return T.jsx(l6e,{open:e,onOpenChange:r,children:T.jsxs(h6e,{className:"cmdk-shell overflow-hidden border-border/60 p-0 shadow-2xl backdrop-blur-md sm:max-w-[640px] [&>button.dialog-close]:hidden",showCloseButton:!1,onPointerDownOutside:()=>r(!1),onEscapeKeyDown:()=>r(!1),children:[T.jsxs(d6e,{className:"sr-only",children:[T.jsx(f6e,{children:"Command Palette"}),T.jsx(p6e,{children:"Search catalogs or switch to commands"})]}),T.jsxs(cJ,{shouldFilter:!1,className:"bg-transparent",children:[T.jsxs("div",{className:"relative flex items-stretch [&>[data-slot=command-input-wrapper]]:flex-1 [&>[data-slot=command-input-wrapper]]:h-auto",children:[T.jsxs("div",{role:"group","aria-label":"Palette mode",className:"my-2 ml-3 inline-flex shrink-0 self-center rounded-md border border-border/60 bg-muted/40 p-0.5",children:[T.jsx(MG,{active:!w,icon:T.jsx(cy,{className:"size-3"}),label:OG,onClick:()=>D("catalogs")}),T.jsx(MG,{active:w,icon:T.jsx(b3,{className:"size-3"}),label:"Commands",onClick:()=>D("commands")})]}),T.jsx(uJ,{ref:b,placeholder:w?"Run a command...":"Search catalogs or type > for commands",value:n,onValueChange:R,onKeyDown:N,className:"h-12 bg-transparent text-base focus-visible:ring-0"})]}),T.jsxs(hJ,{className:"max-h-[440px] overflow-y-auto py-1",children:[T.jsx(dJ,{className:"py-10 text-center text-sm text-muted-foreground",children:w?"No matching commands":"No catalog results"}),!w&&$.length>0&&!C&&T.jsx(M_,{heading:"Recent",children:$.map(q=>{const j=q.type==="catalog"?`recent:catalog:${q.catalogId}:${q.rowId}`:`recent:command:${q.commandId}`;return T.jsx(m0,{value:j,onSelect:()=>se(q),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:q.type==="catalog"?T.jsxs(T.Fragment,{children:[T.jsx(fA,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx(PG,{row:q.rowSnapshot})]}):T.jsxs(T.Fragment,{children:[T.jsx(b3,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx("span",{className:"flex-1 truncate",children:q.titleSnapshot}),T.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:"command"})]})},j)})}),!w&&c.filter(q=>q.loading||q.error||q.rows.length>0).map(q=>T.jsxs(M_,{heading:q.catalog.label,children:[q.loading?T.jsxs(m0,{value:`${q.catalog.id}:loading`,disabled:!0,className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm",children:[T.jsx(cy,{className:"size-4 shrink-0 text-muted-foreground/70"}),T.jsx("span",{className:"text-muted-foreground",children:"Searching..."})]}):null,q.error?T.jsxs(m0,{value:`${q.catalog.id}:error`,disabled:!0,className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm",children:[T.jsx(cy,{className:"size-4 shrink-0 text-destructive/70"}),T.jsx("span",{className:"text-destructive",children:q.error})]}):null,q.rows.map(j=>T.jsx(m0,{value:`${q.catalog.id}:${j.id}:${j.title}:${j.subtitle??""}`,onSelect:()=>U(q.catalog,j),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:T.jsxs(fS,{pluginId:q.catalog.pluginId??q.catalog.id,contributionKind:"catalog-row",contributionId:j.id,children:[T.jsx(cy,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx(PG,{row:j})]})},`${q.catalog.id}:${j.id}`))]},q.catalog.id)),w&&H.length>0&&T.jsx(M_,{heading:"Commands",children:H.map(q=>T.jsxs(m0,{value:q.title,onSelect:()=>K(q),className:"group flex items-center gap-3 rounded-md px-3 py-2 text-sm aria-selected:bg-[color:oklch(from_var(--accent)_l_c_h/0.10)] aria-selected:text-foreground",children:[T.jsx(b3,{className:"size-4 shrink-0 text-muted-foreground/70 group-aria-selected:text-[color:var(--accent)]"}),T.jsx("span",{className:"flex-1 truncate",children:q.title}),y[q.pluginId??""]&&T.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground",children:y[q.pluginId??""]}),q.shortcut&&T.jsx(_6e,{children:q.shortcut})]},q.id))})]}),T.jsxs("div",{className:"flex items-center justify-between border-t border-border/50 bg-muted/30 px-3 py-2 text-[11px] text-muted-foreground",children:[T.jsx("span",{className:"font-medium tracking-wide uppercase",children:w?"Commands":OG}),T.jsxs("div",{className:"flex items-center gap-3",children:[T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Zd,{children:"tab"}),T.jsx("span",{children:"switch"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Zd,{children:T.jsx(uAe,{className:"size-3"})}),T.jsx(Zd,{children:T.jsx(TJ,{className:"size-3"})}),T.jsx("span",{children:"navigate"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Zd,{children:T.jsx(EJ,{className:"size-3"})}),T.jsx("span",{children:"open"})]}),T.jsxs("span",{className:"flex items-center gap-1",children:[T.jsx(Zd,{children:"esc"}),T.jsx("span",{children:"close"})]})]})]})]})]})})}function MG({active:t,icon:e,label:r,onClick:n}){return T.jsxs(Nr,{type:"button",variant:"ghost",size:"sm","aria-pressed":t,onClick:n,className:["h-7 gap-1.5 px-2 text-xs font-medium",t?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"].join(" "),children:[e,r]})}function PG({row:t}){return T.jsxs("span",{className:"flex min-w-0 flex-1 items-baseline gap-2 truncate",children:[T.jsx("span",{className:"truncate font-medium text-foreground",children:t.title}),t.subtitle?T.jsx("span",{className:"truncate text-xs text-muted-foreground/70",children:t.subtitle}):null,t.meta?T.jsx("span",{className:"ml-auto shrink-0 text-xs text-muted-foreground/70",children:t.meta}):null]})}function BG(t,e,r=!0){if(!r||typeof window>"u")return e;try{const n=window.localStorage.getItem(t);if(n==="1")return!0;if(n==="0")return!1}catch{}return e}function Gyt(t,e,r=!0){if(!(!r||typeof window>"u"))try{window.localStorage.setItem(t,e?"1":"0")}catch{}}function FG(t,e,r=!0){if(!r||typeof window>"u")return e;try{const n=window.localStorage.getItem(t);if(n===null)return e;const i=Number(n);return Number.isFinite(i)?i:e}catch{}return e}function Wyt(t,e,r=!0){if(!(!r||typeof window>"u"))try{window.localStorage.setItem(t,String(Math.round(e)))}catch{}}function Yyt(t){const e=t.nav!==null,r=t.surface!==void 0,n=!!t.surface,i=t.nav||"session-list",a=t.center??"chat",s=t.surface||"artifact-surface",o=Zyt(),[l,c]=$G(t.storageKey?`${t.storageKey}:drawerWidth`:void 0,260),[u,d]=$G(t.storageKey?`${t.storageKey}:surfaceWidth`:void 0,680),m=$R(),p=x_(l,200,360),y=Math.max(480,Math.floor(o*.72)),b=x_(u,480,y),v=cw(t.centerParams,"getSurface"),_=cw(t.centerParams,"isWorkbenchOpen"),w=cw(t.centerParams,"openWorkbench"),C=s6(t.navParams,"onClose"),E=s6(t.surfaceParams,"onClose"),D=s6(t.navParams,"onCreate"),L=e?!!C:!!t.onOpenNav,R=n?!!E:!!t.onOpenSurface,N=k.useCallback(()=>{var U;if(e){C==null||C();return}(U=t.onOpenNav)==null||U.call(t)},[C,e,t.onOpenNav]),H=k.useCallback(()=>{var U;if(n){E==null||E();return}(U=t.onOpenSurface)==null||U.call(t)},[E,t.onOpenSurface,n]),$=k.useCallback(()=>{e&&(C==null||C()),n&&(E==null||E()),oD(),Xyt()},[C,E,e,n]);return UR({shortcuts:k.useMemo(()=>{const U=[];return L&&U.push({key:"1",mod:!0,handler:N}),R&&U.push({key:"2",mod:!0,handler:H}),a==="chat"&&U.push({key:"Escape",allowInEditable:!0,handler:$}),U},[L,R,a,$,N,H])}),k.useEffect(()=>{const U="workspace:chat-layout",K="agent:chat-layout";return m.unregisterByPluginId(U),m.unregisterByPluginId(K),m.registerCommand({id:"workspace:open-session-history",title:e?"Close Session History":"Open Session History",keywords:["sessions","history","drawer",e?"close":"open"],shortcut:"⌘1",pluginId:U,when:()=>L,run:N}),m.registerCommand({id:"workspace:open-workbench",title:n?"Close Workbench":"Open Workbench",keywords:["surface","artifacts","sources","workbench",n?"close":"open"],shortcut:"⌘2",pluginId:U,when:()=>R,run:H}),a==="chat"&&m.registerCommand({id:"agent:focus-chat",title:"Focus Chat",keywords:["agent","chat","prompt","composer","input","focus"],pluginId:K,run:$}),D&&m.registerCommand({id:"agent:new-chat",title:"New Chat",keywords:["agent","chat","session","new"],pluginId:K,run:D}),()=>{m.unregisterByPluginId(U),m.unregisterByPluginId(K)}},[m,e,a,r,n,t.navParams,t.surfaceParams,t.onOpenNav,t.onOpenSurface,L,R,C,E,D,$,N,H]),k.useEffect(()=>{if(!v||!_||!w)return;const U={surface:v,isWorkbenchOpen:_,openWorkbench:w};return Or.on(Ns.uiCommand,({command:K})=>{pS(K,U)})},[v,_,w]),T.jsxs("div",{"data-boring-workspace":"","data-boring-workspace-part":"shell",className:fn("relative flex h-full min-h-0 w-full overflow-hidden bg-background",t.className),children:[T.jsxs("aside",{"data-boring-workspace-part":"session-drawer","data-boring-state":e?"expanded":"collapsed","aria-label":"Session browser","aria-hidden":!e,className:fn("relative h-full min-h-0 shrink-0 overflow-hidden bg-background","transition-[width,min-width,max-width] duration-[280ms] ease-[cubic-bezier(0.22,1,0.36,1)]",e&&"border-r border-[color:oklch(from_var(--border)_l_c_h/0.6)]"),style:{width:e?p:0,minWidth:e?p:0,maxWidth:e?p:0,willChange:"width"},children:[T.jsx("div",{className:fn("h-full min-h-0 overflow-hidden","transition-opacity duration-[200ms] ease-[cubic-bezier(0.22,1,0.36,1)]",e?"opacity-100":"opacity-0"),children:T.jsx(o6,{id:i,params:t.navParams})}),e?T.jsx(zG,{side:"drawer-right",ariaLabel:"Resize sessions drawer",onResize:U=>c(K=>x_(K+U,200,360))}):null]}),T.jsxs("main",{"data-boring-workspace-part":"chat-stage","aria-label":"Chat stage",className:"relative h-full min-h-0 min-w-0 flex-1 overflow-hidden bg-background",children:[T.jsx(o6,{id:a,params:t.centerParams}),!e&&t.onOpenNav?T.jsx(jG,{side:"left",icon:"sessions",onClick:t.onOpenNav,label:"Sessions",hint:"⌘1"}):null,!n&&t.onOpenSurface?T.jsx(jG,{side:"right",icon:"workbench",onClick:t.onOpenSurface,label:"Workbench",hint:"⌘2"}):null]}),r?T.jsxs("aside",{"data-boring-workspace-part":"workbench","data-boring-state":n?"expanded":"collapsed","aria-label":n?"Surface":void 0,"aria-hidden":!n,className:fn("relative h-full min-h-0 shrink-0 overflow-hidden bg-background","transition-[width,min-width,max-width] duration-[280ms] ease-[cubic-bezier(0.22,1,0.36,1)]",n&&"border-l border-[color:oklch(from_var(--border)_l_c_h/0.6)]"),style:{width:n?b:0,minWidth:n?b:0,maxWidth:n?b:0,willChange:"width"},children:[T.jsx("div",{className:fn("h-full min-h-0 overflow-hidden","transition-opacity duration-[200ms] ease-[cubic-bezier(0.22,1,0.36,1)]",n?"opacity-100":"opacity-0"),children:T.jsx(o6,{id:s,params:t.surfaceParams})}),n?T.jsx(zG,{side:"surface-left",ariaLabel:"Resize workbench",onResize:U=>d(K=>x_(K-U,480,y))}):null]}):null]})}function x_(t,e,r){return Math.max(e,Math.min(r,t))}function $G(t,e){const[r,n]=k.useState(()=>t?FG(t,e):e);k.useEffect(()=>{n(t?FG(t,e):e)},[t,e]);const i=k.useCallback(a=>{n(s=>{const o=typeof a=="function"?a(s):a;return t&&Wyt(t,o),o})},[t]);return[r,i]}function Zyt(){const[t,e]=k.useState(()=>typeof window<"u"?window.innerWidth:1200);return k.useEffect(()=>{const r=()=>e(window.innerWidth);return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),t}function zG({side:t,ariaLabel:e,onResize:r}){const n=k.useRef(null),i=k.useCallback(o=>{o.preventDefault(),n.current=o.clientX,o.currentTarget.setPointerCapture(o.pointerId),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},[]),a=k.useCallback(o=>{if(n.current===null)return;const l=o.clientX-n.current;n.current=o.clientX,r(l)},[r]),s=k.useCallback(o=>{n.current!==null&&(n.current=null,o.currentTarget.releasePointerCapture(o.pointerId),document.body.style.cursor="",document.body.style.userSelect="")},[]);return T.jsx(I6e,{"aria-label":e,orientation:"vertical",onResizeStart:i,onPointerMove:a,onPointerUp:s,onPointerCancel:s,className:fn("absolute top-0 bottom-0 z-20 bg-transparent","transition-colors duration-200","hover:bg-border/70 hover:[transition-delay:150ms]","active:bg-muted-foreground/30",t==="drawer-right"?"right-0":"left-0")})}function cw(t,e){const r=t==null?void 0:t[e];return typeof r=="function"?r:void 0}function s6(t,e){return cw(t,e)}function oD(){if(typeof document>"u")return;const t=document.querySelector('[data-boring-agent] textarea[name="message"], textarea[name="message"]');t==null||t.focus()}function Xyt(){typeof window>"u"||window.requestAnimationFrame(()=>{oD(),window.setTimeout(oD,320)})}function o6({id:t,params:e}){const r=Vv(),n=k.useMemo(()=>r.getComponents(),[r])[t],i=k.useMemo(()=>Kyt(t),[t]);return n?T.jsx(k.Suspense,{fallback:T.jsx(vJ,{centered:!0}),children:T.jsx(n,{params:e,api:i,containerApi:{}})}):null}function Kyt(t){return{id:t,title:t,setTitle:()=>{},setActive:()=>{},close:()=>{},updateParameters:()=>{},onDidParametersChange:()=>({dispose(){}}),onDidActiveChange:()=>({dispose(){}}),onDidDimensionsChange:()=>({dispose(){}}),onDidLocationChange:()=>({dispose(){}}),onDidTitleChange:()=>({dispose(){}}),onWillFocus:()=>({dispose(){}}),onDidFocus:()=>({dispose(){}}),onDidBlur:()=>({dispose(){}}),onWillVisibilityChange:()=>({dispose(){}}),onDidVisibilityChange:()=>({dispose(){}}),onDidConstraintsChange:()=>({dispose(){}})}}function jG({side:t,icon:e,onClick:r,label:n,hint:i}){return T.jsx(si,{type:"button",variant:"ghost",size:"icon-sm",onClick:r,"aria-label":n,title:i?`${n} (${i})`:n,className:fn("absolute top-1/2 z-30 h-9 w-9 -translate-y-1/2 gap-0.5 rounded-lg bg-background text-muted-foreground",t==="left"?"left-2":"right-2","shadow-[0_1px_2px_-1px_oklch(0_0_0/0.08),0_2px_8px_-4px_oklch(0_0_0/0.10),inset_0_0_0_1px_oklch(from_var(--border)_l_c_h/0.7)]","hover:-translate-y-[calc(50%+1px)] hover:bg-muted/60 hover:text-foreground hover:shadow-[0_2px_4px_-1px_oklch(0_0_0/0.08),0_4px_12px_-4px_oklch(0_0_0/0.10),inset_0_0_0_1px_oklch(from_var(--border)_l_c_h/0.9)]","focus-visible:ring-ring/40"),children:e==="sessions"?T.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[T.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"1.8"}),T.jsx("path",{d:"M12 7v5l3.2 2",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})]}):T.jsx("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:T.jsx("path",{d:"M3 7.5 A1.5 1.5 0 0 1 4.5 6 h4 l2 2 h9 A1.5 1.5 0 0 1 21 9.5 V17.5 A1.5 1.5 0 0 1 19.5 19 H4.5 A1.5 1.5 0 0 1 3 17.5 Z",stroke:"currentColor",strokeWidth:"1.8",strokeLinejoin:"round"})})})}function Qyt({appTitle:t="Boring",sessionTitle:e,onCommandPalette:r,onNewChat:n,topBarLeft:i,topBarRight:a,className:s}){const o=a??null;return T.jsxs("header",{"data-boring-workspace-part":"topbar",className:fn("relative flex items-center justify-between gap-3 px-4","bg-background border-b border-[color:oklch(from_var(--border)_l_c_h/0.4)]",s),style:{height:52},"aria-label":"App top bar",children:[T.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-2.5",children:i??T.jsxs(T.Fragment,{children:[T.jsx("div",{"aria-hidden":"true",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-foreground text-[12px] font-semibold text-background",children:t.charAt(0).toUpperCase()}),T.jsx("span",{className:"truncate text-[13px] font-medium tracking-tight text-foreground",children:t}),e&&T.jsxs(T.Fragment,{children:[T.jsx("span",{"aria-hidden":"true",className:"text-muted-foreground/30",children:"/"}),T.jsx("span",{className:"truncate text-[13px] font-normal text-muted-foreground",children:e})]})]})}),T.jsxs(Nr,{type:"button",variant:"ghost",size:"sm",onClick:r,className:"group h-7 gap-1.5 px-1.5 text-[12.5px] text-muted-foreground/60 hover:bg-transparent hover:text-foreground focus-visible:text-foreground","aria-label":"Search catalogs and commands",title:"Command palette (⌘K)",children:[T.jsx(pA,{className:"h-3.5 w-3.5 shrink-0 opacity-70",strokeWidth:1.75}),T.jsx("span",{className:"font-normal tracking-tight",children:"Search"}),T.jsx(Zd,{className:"ml-1 border-0 bg-transparent p-0 text-[10px] shadow-none group-hover:text-muted-foreground",children:"⌘K"})]}),T.jsxs("div",{className:"flex flex-1 shrink-0 items-center justify-end gap-1",children:[n&&T.jsx(si,{type:"button",variant:"ghost",size:"icon-sm",onClick:n,"aria-label":"New chat",title:"New chat",children:T.jsx(DJ,{className:"h-4 w-4"})}),o]})]})}function Jyt(){const t=`s${Date.now()}`;return{sessions:[{id:t,title:"New session",updatedAt:Date.now()}],activeId:t}}function ebt(t,e){var r;if(typeof localStorage>"u")return e();try{const n=localStorage.getItem(t);if(n){const i=JSON.parse(n),a=Array.isArray(i.sessions)?i.sessions:Array.isArray(i.items)?i.items:null;if(a)return{sessions:a,activeId:i.activeId??((r=a[0])==null?void 0:r.id)??""}}}catch{}return e()}function tbt(t,e){if(!(typeof localStorage>"u"))try{localStorage.setItem(t,JSON.stringify(e))}catch{}}function rbt(t={}){const e=t.storageKey??"workspace:sessions",r=t.initial??Jyt;let n=ebt(e,r);const i=new Set,a=s=>{n=s,tbt(e,n),i.forEach(o=>o())};return{getState:()=>n,subscribe(s){return i.add(s),()=>{i.delete(s)}},switchTo(s){a({...n,activeId:s})},create(){const s=`s${Date.now()}`,o={id:s,title:"New session",updatedAt:Date.now()};a({sessions:[o,...n.sessions],activeId:s})},remove(s){var o;const l=n.sessions.filter(u=>u.id!==s),c=n.activeId===s?((o=l[0])==null?void 0:o.id)??"":n.activeId;a({sessions:l,activeId:c})}}}function nbt(t){return k.useSyncExternalStore(t.subscribe,t.getState,t.getState)}function ibt(t){return t.type==="panel"}function abt(t,e){return t.endsWith(":surface")?t.slice(0,-8):e}function HG(t,e,r){const[n,i]=k.useState(()=>BG(t,e,r));k.useEffect(()=>{i(BG(t,e,r))},[t,e,r]);const a=k.useCallback(s=>{i(s),Gyt(t,s,r)},[r,t]);return[n,a]}const sbt={},VG={openTabs:[],activeTab:null};function obt(t){if(!t)return"/api/v1/ui";const e=t.replace(/\/$/,""),r="/api/v1/ui";return e.endsWith(r)?e:`${e}${r}`}function lbt(t){return`${obt(t)}/state`}function cbt(t){var e;const r=t.openTabs.find(i=>i.id===t.activeTab),n=(e=r==null?void 0:r.params)==null?void 0:e.path;return typeof n=="string"?n:null}function ubt({bridgeEndpoint:t,requestHeaders:e,navOpen:r,surfaceOpen:n,snapshot:i}){const a=Vv(),s=k.useRef(null);return k.useEffect(()=>{var o;if(t===null)return;(o=s.current)==null||o.abort();const l=new AbortController;s.current=l;const c={v:1,drawerOpen:r,workbenchOpen:n,openTabs:i.openTabs,activeTab:i.activeTab,activeFile:cbt(i),availablePanels:a.list().map(u=>u.id)};return fetch(lbt(t),{method:"PUT",headers:{...e,"Content-Type":"application/json"},body:JSON.stringify({state:c,causedBy:"user"}),signal:l.signal}).catch(()=>{}),()=>{l.abort()}},[t,r,a,e,i,n]),null}function hbt({workspaceId:t,chatPanel:e,useSessions:r,requestHeaders:n=sbt,sessionStorageKey:i,providerStorageKey:a,surfaceStorageKey:s,beforeShell:o,afterShell:l,panels:c,commands:u,catalogs:d,plugins:m,excludeDefaults:p,capabilities:y,apiBaseUrl:b,authHeaders:v,apiTimeout:_,defaultTheme:w,onThemeChange:C,persistenceEnabled:E,bridgeEndpoint:D,onAuthError:L,sessions:R,activeSessionId:N,onSwitchSession:H,onCreateSession:$,onDeleteSession:U,onActiveSessionIdChange:K,appTitle:se="Boring",defaultSessionTitle:q="New session",topBarLeft:j,topBarRight:F,chatParams:W,extraPanels:X,extraCommands:de,onOpenNav:G,onOpenSurface:Q,className:ee}){var V,ne;const ie=a??`boring-ui-v2:layout:${t}`,ce=s??`${ie}:surface`,ge=abt(ce,ie),Le=E!==!1,Te=i??`boring-workspace:sessions:${t}`,Ee=k.useMemo(()=>rbt({storageKey:Te}),[Te]),Ne=nbt(Ee),Ge=e??Ade,ct=r??(e?void 0:Dde),ot=ct==null?void 0:ct({requestHeaders:n,storageKey:Te}),Kt=R!==void 0||N!==void 0||H!==void 0||$!==void 0||U!==void 0,Rr=ot==null?void 0:ot.sessions.map(nr=>({...nr,title:nr.title??"New session"})),Yr=ot?Rr??[]:Kt?R??[]:Ne.sessions,ut=ot?ot.activeSessionId??null:Kt?N??null:Ne.activeId,qt=(ot==null?void 0:ot.switch)??H??Ee.switchTo,Tr=ot?()=>ot.create():$??Ee.create,vn=(ot==null?void 0:ot.delete)??U??Ee.remove,oi=((V=Yr.find(nr=>nr.id===ut))==null?void 0:V.title)??void 0,[Zi,en]=HG(`${ge}:drawer`,!0,Le),[Pn,ye]=HG(`${ge}:workbenchOpen`,!1,Le),oe=k.useRef(!1),Ae=k.useRef(Pn),Be=k.useRef(ce),Ze=k.useRef(null);Be.current=ce;const[Ct,Lt]=k.useState(()=>({key:ce,snapshot:VG})),Pt=Ct.key===ce?Ct.snapshot:VG;k.useEffect(()=>{oe.current=!1},[t]),k.useEffect(()=>{if(!(!ot||ot.loading)){if(ot.sessions.length>0){oe.current=!1;return}oe.current||(oe.current=!0,Promise.resolve(ot.create({title:q})).catch(()=>{oe.current=!1}))}},[q,ot]),k.useEffect(()=>{Ae.current=Pn},[Pn]);const at=k.useCallback(nr=>{Ze.current={key:ce,api:nr},Lt({key:ce,snapshot:nr.getSnapshot()})},[ce]),dt=k.useCallback(nr=>{Lt({key:ce,snapshot:nr})},[ce]),xt=k.useCallback(()=>{const nr=Ze.current;return(nr==null?void 0:nr.key)===Be.current?nr.api:null},[]),Zr=k.useCallback(()=>Ae.current,[]),tn=k.useCallback(()=>{Ae.current=!0,ye(!0)},[ye]),Ta=k.useMemo(()=>(m==null?void 0:m.flatMap(nr=>nr.outputs??[]))??[],[m]),Qo=k.useMemo(()=>Ta.some(nr=>nr.type==="left-tab"),[Ta]),yo=k.useMemo(()=>Ta.filter(ibt).map(nr=>nr.panel.id),[Ta]),Ql=k.useMemo(()=>[...X??[],...yo],[X,yo]),ua=ut??((ne=Yr[0])==null?void 0:ne.id)??"default";k.useEffect(()=>{var nr;const Bs=Jo=>{const Fs=Jo.detail;!Fs||typeof Fs!="object"||pS(Fs,{surface:xt,isWorkbenchOpen:Zr,openWorkbench:tn})};return(nr=globalThis.addEventListener)==null||nr.call(globalThis,tD,Bs),()=>{var Jo;return(Jo=globalThis.removeEventListener)==null?void 0:Jo.call(globalThis,tD,Bs)}},[xt,Zr,tn]),k.useEffect(()=>{ut&&(K==null||K(ut))},[ut,K]);const pu=k.useMemo(()=>({...W,sessionId:ua,requestHeaders:n,bridgeEndpoint:D,getSurface:xt,isWorkbenchOpen:Zr,openWorkbench:tn,extraCommands:de}),[W,ua,n,D,xt,Zr,tn,de]),Jl=k.useMemo(()=>({storageKey:ce,extraPanels:Ql,onReady:at,onChange:dt,onClose:()=>{Ae.current=!1,ye(!1)}}),[dt,at,ce,Ql,ye]);return T.jsx("div",{className:"h-full bg-background text-foreground",children:T.jsxs(Hyt,{chatPanel:Ge,panels:c,commands:u,catalogs:d,plugins:m,excludeDefaults:p,capabilities:y,apiBaseUrl:b,authHeaders:v,apiTimeout:_,defaultTheme:w,onThemeChange:C,workspaceId:t,storageKey:ie,persistenceEnabled:E,bridgeEndpoint:null,onAuthError:L,children:[o,T.jsx(ubt,{bridgeEndpoint:D,requestHeaders:n,navOpen:Zi,surfaceOpen:Pn,snapshot:Pt}),T.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[T.jsx(Qyt,{appTitle:se,sessionTitle:oi??q,onCommandPalette:()=>{document.dispatchEvent(new KeyboardEvent("keydown",{key:"k",metaKey:!0,ctrlKey:!0,bubbles:!0,cancelable:!0}))},onNewChat:Tr,topBarLeft:j,topBarRight:F}),T.jsx(Yyt,{className:ee,nav:Zi?"session-list":null,navParams:{sessions:Yr,activeId:ut,onSwitch:qt,onCreate:Tr,onDelete:vn,onClose:()=>en(!1)},center:"chat",centerParams:pu,surface:Pn?"artifact-surface":null,surfaceParams:Jl,sidebar:Pn&&Qo?"workbench-left":null,storageKey:Le?ge:void 0,onOpenNav:()=>{en(!0),G==null||G()},onOpenSurface:()=>{Ae.current=!0,ye(!0),Q==null||Q()}})]}),l]})})}const uw="__showcase__",dbt="data:image/svg+xml;utf8,"+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 160"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="%23312e81"/><stop offset="1" stop-color="%230ea5e9"/></linearGradient></defs><rect width="240" height="160" fill="url(%23g)"/><text x="120" y="90" text-anchor="middle" font-family="Inter,system-ui" font-size="24" font-weight="700" fill="white">mockup.png</text></svg>'),fbt=[{id:"u0",role:"user",parts:[{type:"file",url:dbt,mediaType:"image/svg+xml",filename:"mockup.svg"},{type:"text",text:"Can you take a look at this mockup and suggest improvements?"}]},{id:"a0",role:"assistant",parts:[{type:"text",text:"Got it — the gradient tile reads cleanly. A few quick calls: tighten the type tracking, drop the drop-shadow, and reserve an 8px safe area around the text so it breathes on small sizes."}]},{id:"u0a",role:"user",parts:[{type:"file",url:"data:text/plain;base64,"+btoa(`# Project notes
|
|
1309
1309
|
|
|
1310
1310
|
- Ship shadcn ChatPanel
|
|
1311
1311
|
- Wire attachments + artifacts
|