pisper 0.5.39-linux-x64.0 → 0.5.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +67 -0
- package/README.md +53 -53
- package/bin/pisper.mjs +48 -0
- package/lib/install.mjs +392 -0
- package/lib/npm-platform.mjs +41 -0
- package/lib/npm-update.mjs +165 -0
- package/lib/platform.mjs +43 -0
- package/lib/postinstall.mjs +3 -0
- package/package.json +36 -14
- package/updater.pubkey +1 -0
- package/web/.vite/manifest.json +2606 -0
- package/web/assets/AnimatedList-_pbK4tS3.js +1 -0
- package/web/assets/AppOverlays-DK_RBSUi.js +1 -0
- package/web/assets/AppSelect-v2NUOzRf.js +1 -0
- package/web/assets/AppShortcuts-D66c2bOM.js +1 -0
- package/web/assets/AssetsPage-DFD-JHLO.js +1 -0
- package/web/assets/ChannelsPage-S1iZpd8M.js +1 -0
- package/web/assets/ChatDockView-wwQKATRH.js +2 -0
- package/web/assets/ChatHistoryPage-BNckgbvE.js +1 -0
- package/web/assets/ChatPage-COE_4ulo.js +4 -0
- package/web/assets/ClickSpark-BhxL8WOQ.js +1 -0
- package/web/assets/ConfigPage-BsLy5y6L.js +1 -0
- package/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/web/assets/MarkdownMessage-ickiT81L.js +2 -0
- package/web/assets/MemoryPage-BryPFpf3.js +1 -0
- package/web/assets/MobileViewportStabilizer-CYh5obIv.js +1 -0
- package/web/assets/PageHeader-D7ZcsXHZ.js +1 -0
- package/web/assets/PluginsPage-By294e2k.js +1 -0
- package/web/assets/PreviewPages-gdxrspfV.js +1 -0
- package/web/assets/SchedulesPage-S6X-heBQ.js +1 -0
- package/web/assets/ShinyText-fuaKxKqJ.js +1 -0
- package/web/assets/SkillsPage-nP6Ilb53.js +1 -0
- package/web/assets/StarOrbit-BlI6MhVr.js +1 -0
- package/web/assets/TerminalPanel-Bb_Kf0kq.js +18 -0
- package/web/assets/TerminalPanel-BrP-ENHg.css +1 -0
- package/web/assets/Threads-DPFx-jxG.js +1 -0
- package/web/assets/WelcomeEffects-C9iQOeK6.js +1 -0
- package/web/assets/WorkflowsPage-DlZwTBcP.js +1 -0
- package/web/assets/WorkspacePicker-D766UTlt.js +1 -0
- package/web/assets/abort-signal-D0GPd1Mw.js +1 -0
- package/web/assets/alert-B7D8joCd.js +1 -0
- package/web/assets/andromeeda-vGVdxbeo.js +1 -0
- package/web/assets/angular-html-17rlCfBS.js +1 -0
- package/web/assets/angular-ts-it3MaXWH.js +1 -0
- package/web/assets/api-CmPTEiOc.js +3 -0
- package/web/assets/arrow-right-KWvgbo3p.js +1 -0
- package/web/assets/astro-BEVDzCov.js +1 -0
- package/web/assets/aurora-x-CDeNXAV0.js +1 -0
- package/web/assets/ayu-dark-DluEY0Gj.js +1 -0
- package/web/assets/ayu-light-C3h-C4tm.js +1 -0
- package/web/assets/ayu-mirage-Bqwy1Gya.js +1 -0
- package/web/assets/blade-B3yUZIOx.js +1 -0
- package/web/assets/brand-DIEc3fK8.js +1 -0
- package/web/assets/button-XhIEgIsg.js +1 -0
- package/web/assets/c-aGSZMVdM.js +1 -0
- package/web/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
- package/web/assets/catppuccin-latte-CtsyrtPq.js +1 -0
- package/web/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
- package/web/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
- package/web/assets/chat-api-B4XafR63.js +1 -0
- package/web/assets/check-jIXqkGKr.js +1 -0
- package/web/assets/chevron-down-DT6AXwTP.js +1 -0
- package/web/assets/circle-dot-rl11gaty.js +1 -0
- package/web/assets/client-store-TRnjrXTz.js +1 -0
- package/web/assets/code-xml-Z4K2ea1N.js +1 -0
- package/web/assets/coffee-ouOQ86EC.js +1 -0
- package/web/assets/collapsible-DjbBeRo0.js +1 -0
- package/web/assets/config-search-DdUjL2D7.js +1 -0
- package/web/assets/copy-DS-8Hh_R.js +1 -0
- package/web/assets/cpp-Bm3vm43L.js +1 -0
- package/web/assets/css-CWcS1xXm.js +1 -0
- package/web/assets/csv-Dx-8-gkx.js +1 -0
- package/web/assets/dark-plus-Cs2F2srj.js +1 -0
- package/web/assets/dist-CISIC3_f.js +1 -0
- package/web/assets/dist-DOR8kAEV.js +1 -0
- package/web/assets/dracula-BHWKrbxM.js +1 -0
- package/web/assets/dracula-soft-5eyTD99u.js +1 -0
- package/web/assets/earth-DR_clkZ9.js +1 -0
- package/web/assets/embedded-D2rqyswH.js +269 -0
- package/web/assets/es2015-0VLo_afz.js +41 -0
- package/web/assets/everforest-dark-sB-x3p7T.js +1 -0
- package/web/assets/everforest-light-Df2xbC6M.js +1 -0
- package/web/assets/field-C8yUX8Pf.js +1 -0
- package/web/assets/file-C8GNXmhJ.js +1 -0
- package/web/assets/file-code-corner-BKkXAMHR.js +1 -0
- package/web/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/web/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/web/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/web/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/web/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/web/assets/github-dark-C-LZuMrd.js +1 -0
- package/web/assets/github-dark-default-DXG-b-1a.js +1 -0
- package/web/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
- package/web/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
- package/web/assets/github-light-EUqPIrTm.js +1 -0
- package/web/assets/github-light-default-BXViO-2h.js +1 -0
- package/web/assets/github-light-high-contrast-B68TUdTA.js +1 -0
- package/web/assets/glsl-TOBAB6bO.js +1 -0
- package/web/assets/graphql-BEmIBNve.js +1 -0
- package/web/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
- package/web/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
- package/web/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
- package/web/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
- package/web/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
- package/web/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
- package/web/assets/haml-CDWtFtU9.js +1 -0
- package/web/assets/handlebars-BNtjo3pL.js +1 -0
- package/web/assets/horizon-CE9ld1lL.js +1 -0
- package/web/assets/horizon-bright-DSNQnXHK.js +1 -0
- package/web/assets/houston-CsvMBhTu.js +1 -0
- package/web/assets/html-BVyvp26C.js +1 -0
- package/web/assets/html-derivative-BseLpURQ.js +1 -0
- package/web/assets/http-CkCfSMV9.js +1 -0
- package/web/assets/hurl-syYMt6Rn.js +1 -0
- package/web/assets/image-Dh7-wI1d.js +1 -0
- package/web/assets/imba-DsUTQ-LC.js +1 -0
- package/web/assets/index-BvVJkBr0.js +40 -0
- package/web/assets/index-DTit-2OA.css +2 -0
- package/web/assets/input-D1QFzNMx.js +1 -0
- package/web/assets/java-duG_UTKe.js +1 -0
- package/web/assets/javascript-DWVbOe4X.js +1 -0
- package/web/assets/jinja-Boj4niAz.js +1 -0
- package/web/assets/jison-CHwnC1Pv.js +1 -0
- package/web/assets/json-qhed-kSA.js +1 -0
- package/web/assets/json5-BR5RXkoi.js +1 -0
- package/web/assets/jsonc-CYpm1nAK.js +1 -0
- package/web/assets/jsonl-CmCQp5Yx.js +1 -0
- package/web/assets/jsx-fcCEM_-L.js +1 -0
- package/web/assets/julia-VoF7UKfw.js +1 -0
- package/web/assets/kanagawa-dragon-Bozd7klA.js +1 -0
- package/web/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
- package/web/assets/kanagawa-wave-BML5mF2J.js +1 -0
- package/web/assets/laserwave-C_8bwKvT.js +1 -0
- package/web/assets/less-DVTAwKKz.js +1 -0
- package/web/assets/light-plus-DVQuIRkW.js +1 -0
- package/web/assets/link-2-CaZP6GWi.js +1 -0
- package/web/assets/loader-circle-72TYCcVQ.js +1 -0
- package/web/assets/markdown-BYOwaDjH.js +1 -0
- package/web/assets/marko-Cupn1xhw.js +1 -0
- package/web/assets/material-theme-Bm3Qr25_.js +1 -0
- package/web/assets/material-theme-darker-2IIEA8gg.js +1 -0
- package/web/assets/material-theme-lighter-uhdI0v04.js +1 -0
- package/web/assets/material-theme-ocean-CHQ94UKr.js +1 -0
- package/web/assets/material-theme-palenight-B5W6OYN7.js +1 -0
- package/web/assets/mdc-4FfK5iWR.js +1 -0
- package/web/assets/mdx-DQZ5AkYe.js +1 -0
- package/web/assets/message-circle-Bc_EzZop.js +1 -0
- package/web/assets/min-dark-BSWPekZh.js +1 -0
- package/web/assets/min-light-DDpmG2fV.js +1 -0
- package/web/assets/mobile-remote-fallback-JvG4VcPg.js +1 -0
- package/web/assets/mobile-runtime-recovery-DBq1Dp1R.js +1 -0
- package/web/assets/monokai-B_bV9PQ9.js +1 -0
- package/web/assets/night-owl-DhmEMT88.js +1 -0
- package/web/assets/night-owl-light-eJ-hLW7d.js +1 -0
- package/web/assets/nord-Cb4Vim4T.js +1 -0
- package/web/assets/one-dark-pro-CLwyXe_n.js +1 -0
- package/web/assets/one-light-D7Lr4KcI.js +1 -0
- package/web/assets/panel-left-CVuoi3zo.js +1 -0
- package/web/assets/panel-top-CA2GX1Rj.js +1 -0
- package/web/assets/paperclip-BMRj9kRG.js +1 -0
- package/web/assets/pencil-CxA1IK0x.js +1 -0
- package/web/assets/php-CUREQQ7f.js +1 -0
- package/web/assets/pick-system-directory-BnIFt85A.js +1 -0
- package/web/assets/plastic-DQwYfKfQ.js +1 -0
- package/web/assets/play-N6mg4pFl.js +1 -0
- package/web/assets/poimandres-DRFjx7u4.js +1 -0
- package/web/assets/postcss-BXeXVLqQ.js +1 -0
- package/web/assets/progress-493FBtJ4.js +6 -0
- package/web/assets/pug-CQyGKZpv.js +1 -0
- package/web/assets/python-gzcpVVnB.js +1 -0
- package/web/assets/r-C5FwQflr.js +1 -0
- package/web/assets/react-bits-DQli9s7O.css +1 -0
- package/web/assets/red-DX1BQOs8.js +1 -0
- package/web/assets/regexp--aR2_iz7.js +1 -0
- package/web/assets/rolldown-runtime-B0Z9INg1.js +1 -0
- package/web/assets/rose-pine-aMsaMD1D.js +1 -0
- package/web/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
- package/web/assets/rose-pine-moon-DO-qXg-I.js +1 -0
- package/web/assets/sass-DXrisJhu.js +1 -0
- package/web/assets/save-CVL5N6eP.js +1 -0
- package/web/assets/scroll-area-CrWpxKGa.js +1 -0
- package/web/assets/scss-Davl4E3T.js +1 -0
- package/web/assets/send-DcLH_sg0.js +1 -0
- package/web/assets/separator-COSHUqEJ.js +1 -0
- package/web/assets/shellscript-CLZ0U2zV.js +1 -0
- package/web/assets/shield-check-BQHFfxVy.js +1 -0
- package/web/assets/shortcuts-BIzphxhz.js +1 -0
- package/web/assets/slack-dark-DnToyrRv.js +1 -0
- package/web/assets/slack-ochin-B2OO5cIa.js +1 -0
- package/web/assets/smithy-Dgaz7aur.js +1 -0
- package/web/assets/snazzy-light-4G7pJPwS.js +1 -0
- package/web/assets/solarized-dark-UdsmMDCL.js +1 -0
- package/web/assets/solarized-light-C1IUL_tW.js +1 -0
- package/web/assets/speech-session-UGYrCHlP.js +3 -0
- package/web/assets/speech-stream-text-Cwsgaoku.js +2 -0
- package/web/assets/speech-text-Js_tr4qo.js +1 -0
- package/web/assets/sql-b92rrcVl.js +1 -0
- package/web/assets/square-BZ3Bi3O-.js +1 -0
- package/web/assets/square-terminal-DpCa0gzM.js +1 -0
- package/web/assets/storage-BE5DCCG3.js +1 -0
- package/web/assets/stylus-B6D30XZt.js +1 -0
- package/web/assets/svelte-BfstjgUc.js +1 -0
- package/web/assets/synthwave-84-nFMaYfgc.js +1 -0
- package/web/assets/tag-Csd134FL.js +1 -0
- package/web/assets/tokyo-night-oM2G3aXe.js +1 -0
- package/web/assets/tool-labels-BJhLig5u.js +1 -0
- package/web/assets/tooltip-BIOYQmnq.js +1 -0
- package/web/assets/trash-2-mhzzyC6i.js +1 -0
- package/web/assets/ts-tags-Cckpt1jI.js +1 -0
- package/web/assets/tsx-JMDX3aQ7.js +1 -0
- package/web/assets/typescript-BAz-bF8J.js +1 -0
- package/web/assets/use-animation-visibility-C-GENY2Z.js +1 -0
- package/web/assets/use-i18n-B2uTAjsJ.js +1 -0
- package/web/assets/use-mobile-DikQ1IYz.js +1 -0
- package/web/assets/usePagePrimaryAction-Bw0OFTDZ.js +1 -0
- package/web/assets/utils-C8uzG5AZ.js +1 -0
- package/web/assets/vendor-dockview-D5adAaCg.css +1 -0
- package/web/assets/vendor-dockview-yY5mBM3U.js +1 -0
- package/web/assets/vendor-markdown-K9KdiImV.js +130 -0
- package/web/assets/vendor-markdown-plugins-DEcVZfaU.css +1 -0
- package/web/assets/vendor-markdown-plugins-Wv1dLaAO.js +263 -0
- package/web/assets/vendor-motion-XxgxfZSY.js +9 -0
- package/web/assets/vendor-react-CHuvPdJE.js +9 -0
- package/web/assets/vendor-router-Bw2aAdMs.js +4 -0
- package/web/assets/vendor-shiki-runtime-CxE5QolQ.js +153 -0
- package/web/assets/vendor-state-DE1O_s6m.js +1 -0
- package/web/assets/vendor-ui-DvrYggeS.js +1 -0
- package/web/assets/vendor-xyflow-CnjXtcyK.js +7 -0
- package/web/assets/vendor-xyflow-DLioOiRN.css +1 -0
- package/web/assets/vesper-DdrHHSXu.js +1 -0
- package/web/assets/vitesse-black-fwtXNY1n.js +1 -0
- package/web/assets/vitesse-dark-BZCL-v6S.js +1 -0
- package/web/assets/vitesse-light-VbXTXTou.js +1 -0
- package/web/assets/vue-3H7P6ncC.js +1 -0
- package/web/assets/vue-html-DZGW9MGR.js +1 -0
- package/web/assets/vue-vine-BECt67gq.js +1 -0
- package/web/assets/wasm-BnjxR4X6.js +1 -0
- package/web/assets/wasm-ByWQv1Qj.js +1 -0
- package/web/assets/web-preview-panel-Dp5aIwsV.js +556 -0
- package/web/assets/welcome-brand-W7Ox3fri.js +1 -0
- package/web/assets/wgsl-BsKzXJz4.js +1 -0
- package/web/assets/wit-DdvCle-K.js +1 -0
- package/web/assets/wrench-BqeVhocX.js +1 -0
- package/web/assets/x-bw26XDZM.js +1 -0
- package/web/assets/xml-CNfvW5JP.js +1 -0
- package/web/assets/yaml-rwi0_p6S.js +1 -0
- package/web/assets/zap-CFsp4Y1u.js +1 -0
- package/web/favicon.svg +25 -0
- package/web/icons.svg +24 -0
- package/web/index.html +82 -0
- package/web/memory-galaxy-background.webp +0 -0
- package/web/mobile-startup.html +322 -0
- package/web/notification-sw.js +13 -0
- package/web/tauri-pet.css +117 -0
- package/web/tauri-pet.html +16 -0
- package/web/tauri-pet.js +149 -0
- package/components/runtime/Pisper_Runtime_Node_0.5.37_linux_x86_64.tar.gz +0 -0
- package/components/runtime/Pisper_Runtime_Node_0.5.37_linux_x86_64.tar.gz.sig +0 -1
- package/components/tui/Pisper_TUI_Component_0.5.23_linux_x86_64.tar.gz +0 -0
- package/components/tui/Pisper_TUI_Component_0.5.23_linux_x86_64.tar.gz.sig +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./vendor-react-CHuvPdJE.js";import{t as r}from"./utils-C8uzG5AZ.js";import{n as i,r as a,t as o}from"./vendor-motion-XxgxfZSY.js";/* empty css */var s=e(t(),1),c=n();function l(e,t=`root`){return s.Children.toArray(e).flatMap((e,n)=>{let r=`${t}/${n}:${(0,s.isValidElement)(e)&&e.key!=null?String(e.key):`item`}`;return(0,s.isValidElement)(e)&&e.type===s.Fragment?l(e.props.children,r):[{child:e,key:r}]})}function u({children:e,className:t,animateInitial:n=!1,variant:s=`list`,delegateClicks:u=!1}){let d=i(),f=s===`burst`;return(0,c.jsx)(a,{initial:n&&!d,mode:`popLayout`,children:l(e).map(({child:e,key:n},i)=>(0,c.jsx)(o.div,{animate:{opacity:1,x:0,y:0,scale:1,rotate:0},className:r(`rb-animated-list-item`,t),exit:d?{opacity:1}:f?{opacity:0,x:-8,y:12,scale:.62,rotate:-7}:{opacity:0,y:-4},initial:d?!1:f?{opacity:0,x:-18,y:18,scale:.42,rotate:-12}:{opacity:0,y:6},layout:`position`,onClick:u?e=>{let t=e.target,n=e.currentTarget.firstElementChild;!(t instanceof Element)||t!==e.currentTarget&&t!==n||e.currentTarget.querySelector(`button:not(:disabled), input:not(:disabled), select:not(:disabled), [role="button"]`)?.click()}:void 0,transition:f?{type:`spring`,stiffness:520,damping:19,mass:.58,delay:d?0:.045+i*.038}:{duration:d?0:.18,ease:[.22,1,.36,1]},children:e},n))})}export{u as AnimatedList};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./vendor-react-CHuvPdJE.js";import{o as r,t as i}from"./chat-api-B4XafR63.js";import{t as a}from"./button-XhIEgIsg.js";import{t as o}from"./use-i18n-B2uTAjsJ.js";import{t as s}from"./loader-circle-72TYCcVQ.js";import{t as c}from"./tag-Csd134FL.js";import{t as l}from"./x-bw26XDZM.js";import{t as u}from"./input-D1QFzNMx.js";import{A as d,B as f,Bt as p,P as m,j as h,k as g,n as _,vt as v,wt as y,xt as b}from"./index-BvVJkBr0.js";import{t as x}from"./field-C8yUX8Pf.js";var S=e(t(),1),C=n();function w({navigation:e,onClose:t,onNavigate:n,onOpenSession:a,onNewChat:l}){let{t:u,language:_}=o(),[x,w]=(0,S.useState)(``),{data:T}=p(r(`sessions`)),E=(0,S.useMemo)(()=>T?.sessions||[],[T]),[D,O]=(0,S.useState)([]),[k,A]=(0,S.useState)(!1),[j,M]=(0,S.useState)(0),[N,P]=(0,S.useState)(``);(0,S.useEffect)(()=>{let e=x.trim();if(!e){O([]),A(!1);return}let t=!0;A(!0);let n=window.setTimeout(()=>{i.searchSessionTreeLabels(e,12).then(e=>{t&&(O(e.labels||[]),A(!1))}).catch(()=>{t&&(O([]),A(!1))})},140);return()=>{t=!1,window.clearTimeout(n)}},[x]);let F=(0,S.useMemo)(()=>{let t=x.trim().toLocaleLowerCase(_),r=(...e)=>!t||e.some(e=>String(e||``).toLocaleLowerCase(_).includes(t)),i=[],o=u(`navigation:appOverlays.newChat`);r(o,u(`navigation:appOverlays.actions`))&&i.push({id:`action:new-chat`,Icon:b,label:o,hint:u(`navigation:appOverlays.actions`),run:l});for(let[t,a]of e)for(let[e,o,s]of a)r(o,t,e)&&i.push({id:`page:${e}`,Icon:s,label:o,hint:t,run:()=>n(e)});let s=e=>{let t=Date.parse(e);return Number.isFinite(t)?new Intl.DateTimeFormat(_,{dateStyle:`medium`,timeStyle:`short`}).format(t):u(`navigation:appOverlays.unknownTime`)};for(let e of D){let t=s(e.sessionCreated||e.sessionModified),n=s(e.nodeTimestamp);i.push({id:`label:${e.sessionId}:${e.entryId}`,Icon:c,label:e.label,hint:e.sessionName||u(`navigation:appOverlays.untitledChat`),meta:u(`navigation:appOverlays.labelResultTimes`,{sessionTime:t,nodeTime:n}),title:e.summary||e.label,run:()=>a(e.sessionId,e.entryId,e.active)})}for(let e of[...E].sort((e,t)=>Date.parse(t.modified)-Date.parse(e.modified)))if(r(e.name,e.firstMessage)&&(i.push({id:`session:${e.id}`,Icon:y,label:e.name||u(`navigation:appOverlays.untitledChat`),hint:f(e.modified,_),run:()=>a(e.id)}),i.filter(e=>e.id.startsWith(`session:`)).length>=8))break;return i},[D,_,e,n,l,a,x,E,u]);(0,S.useEffect)(()=>{M(0)},[x]);let I=Math.min(j,Math.max(0,F.length-1)),L=async e=>{if(!(!e||N)){if(!e.id.startsWith(`label:`)){t(),e.run();return}P(e.id);try{await e.run(),t()}catch{P(``)}}};return(0,C.jsx)(g,{open:!0,onOpenChange:e=>!e&&!N&&t(),children:(0,C.jsxs)(d,{showCloseButton:!1,"aria-busy":!!N,className:`command-palette max-[650px]:w-full w-[min(560px,calc(100vw_-_40px))] overflow-hidden [border:1px_solid_var(--surface-highlight)] rounded-[var(--r-md)] bg-[var(--solid)] shadow-[0_28px_80px_-24px_var(--shadow-strong)] [animation:modal-in_var(--d2)_var(--ease-out)] top-[16vh]! max-w-[calc(100vw-40px)]! translate-y-0! gap-0 p-0 ring-0 max-sm:top-[8vh]! sm:max-w-[560px]!`,children:[(0,C.jsx)(m,{className:`sr-only`,children:u(`navigation:appOverlays.commandPalette`)}),(0,C.jsx)(h,{className:`sr-only`,children:u(`navigation:appOverlays.searchPagesChatsOrActions`)}),(0,C.jsxs)(`label`,{className:`palette-input [&_input]:w-full [&_input]:min-w-0 [&_input]:border-0 [&_input]:[outline:0] [&_input]:bg-transparent [&_input]:text-[var(--text)] [&_input]:text-[14px] [&_kbd]:flex-none [&_kbd]:[border:1px_solid_var(--stroke)] [&_kbd]:rounded-[5px] [&_kbd]:bg-[var(--surface-subtle)] [&_kbd]:p-[1px_5px] [&_kbd]:text-[var(--text-muted)] [&_kbd]:font-[inherit] [&_kbd]:text-[10px] flex h-[46px] items-center gap-[9px] [border-bottom:1px_solid_var(--stroke-soft)] [padding:0_14px] text-[var(--text-muted)]`,children:[(0,C.jsx)(v,{size:16}),(0,C.jsx)(`input`,{autoFocus:!0,value:x,disabled:!!N,onChange:e=>w(e.target.value),onKeyDown:e=>{if(N){e.preventDefault();return}e.key===`ArrowDown`?(e.preventDefault(),M(e=>F.length?(e+1)%F.length:0)):e.key===`ArrowUp`?(e.preventDefault(),M(e=>F.length?(e-1+F.length)%F.length:0)):e.key===`Enter`?(e.preventDefault(),L(F[I])):e.key===`Escape`&&(e.preventDefault(),t())},placeholder:u(`navigation:appOverlays.searchPagesChatsOrActions`)}),N?(0,C.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 text-xs`,role:`status`,"aria-live":`polite`,children:[(0,C.jsx)(s,{className:`size-3.5 animate-spin`,"aria-hidden":`true`}),u(`navigation:appOverlays.locatingLabel`)]}):(0,C.jsx)(`kbd`,{children:`Esc`})]}),(0,C.jsxs)(`div`,{className:`max-h-[min(380px,50vh)] overflow-y-auto [padding:6px]`,role:`listbox`,"aria-label":u(`navigation:appOverlays.commandPalette`),children:[F.map((e,t)=>(0,C.jsxs)(`button`,{type:`button`,className:`palette-item [&_>_svg]:flex-none [&_>_svg]:text-[var(--text-muted)] [&.active]:bg-[var(--star-soft)] [&.active]:text-[var(--text)] [&.active_>_svg]:text-[var(--star-strong)] flex w-full items-center gap-[10px] border-0 rounded-[var(--r-sm)] bg-transparent [padding:9px_10px] text-[var(--text-secondary)] text-[13px] text-left cursor-pointer ${e.meta?`has-meta`:``} ${t===I?`active`:``}`,title:e.title,role:`option`,"aria-selected":t===I,disabled:!!N,"aria-busy":N===e.id,onMouseEnter:()=>!N&&M(t),onClick:()=>void L(e),children:[N===e.id?(0,C.jsx)(s,{className:`size-[15px] animate-spin`,"aria-hidden":`true`}):(0,C.jsx)(e.Icon,{size:15}),(0,C.jsxs)(`span`,{className:`palette-item-copy [&_>_small]:overflow-hidden [&_>_small]:text-[var(--text-muted)] [&_>_small]:text-[10px] [&_>_small]:text-ellipsis [&_>_small]:whitespace-nowrap flex min-w-0 flex-1 flex-col gap-[2px]`,children:[(0,C.jsx)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-nowrap`,children:e.label}),e.meta&&(0,C.jsx)(`small`,{children:e.meta})]}),(0,C.jsx)(`span`,{className:`palette-item-hint max-[650px]:max-w-[34vw] max-w-[180px] flex-none overflow-hidden text-[var(--text-muted)] text-[11px] text-ellipsis whitespace-nowrap`,children:N===e.id?u(`navigation:appOverlays.locatingLabel`):e.hint})]},e.id)),!F.length&&(0,C.jsx)(`div`,{className:`palette-empty [padding:20px] text-[var(--text-muted)] text-[12px] text-center`,children:u(k?`navigation:appOverlays.searchingLabels`:`navigation:appOverlays.noMatchingResults`)}),F.length>0&&k&&(0,C.jsx)(`div`,{"aria-live":`polite`,className:`palette-empty [padding:20px] text-[var(--text-muted)] text-[12px] text-center palette-searching [.palette-empty&]:p-[8px_12px]`,children:u(`navigation:appOverlays.searchingLabels`)})]})]})})}function T({type:e,close:t,notify:n}){let{t:r}=o(),i={chat:r(`navigation:appOverlays.newChat2`),assets:r(`navigation:appOverlays.exportAsset`),channels:r(`navigation:appOverlays.connectChannel`),schedules:r(`navigation:appOverlays.newScheduledTask`),config:r(`navigation:appOverlays.addProvider`),plugins:r(`navigation:appOverlays.savePluginPolicy`),memory:r(`navigation:appOverlays.addMemory`),mcp:r(`navigation:appOverlays.addMCPService`),skills:r(`navigation:appOverlays.installSkill`)}[e]||r(`navigation:appOverlays.newProject`),s=[r(`navigation:appOverlays.default`),r(`navigation:appOverlays.custom`),r(`navigation:appOverlays.createFromTemplate`)];return(0,C.jsx)(g,{open:!0,onOpenChange:e=>!e&&t(),children:(0,C.jsx)(d,{showCloseButton:!1,className:`modal !w-[min(430px,100%)] max-h-[calc(100dvh_-_40px)] overflow-y-auto [overscroll-behavior:contain] [border:1px_solid_var(--surface-highlight)] rounded-[var(--r-md)] bg-[var(--solid)] p-[18px] shadow-[0_26px_70px_-25px_var(--shadow-strong)] [animation:modal-in_var(--d2)_var(--ease-out)] max-[650px]:max-h-[calc(100dvh_-_16px)] max-w-[430px]! gap-0 rounded-dialog border-surface-highlight shadow-dialog ring-0`,children:(0,C.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),n(r(`navigation:appOverlays.actionSucceeded`,{action:i})),t()},children:[(0,C.jsxs)(_,{children:[(0,C.jsxs)(`div`,{children:[(0,C.jsx)(m,{children:i}),(0,C.jsx)(h,{children:r(`navigation:appOverlays.enterTheBasicDetailsToContinue`)})]}),(0,C.jsx)(a,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":r(`navigation:appOverlays.closeDialog`),title:r(`navigation:appOverlays.closeDialog`),onClick:t,children:(0,C.jsx)(l,{className:`size-[17px]`})})]}),(0,C.jsxs)(x,{variant:`control`,className:`items-start`,children:[r(`navigation:appOverlays.name`),(0,C.jsx)(u,{name:`name`,placeholder:r(`navigation:appOverlays.enterAName`)})]}),(0,C.jsxs)(x,{variant:`control`,className:`items-start`,children:[r(`navigation:appOverlays.description`),(0,C.jsx)(u,{name:`description`,placeholder:r(`navigation:appOverlays.addAShortDescription`)})]}),(0,C.jsx)(x,{variant:`control`,className:`items-start`,htmlFor:`quick-create-type`,children:r(`navigation:appOverlays.type`)}),(0,C.jsx)(`select`,{id:`quick-create-type`,name:`type`,defaultValue:s[0],className:`mt-1 w-full bg-surface-subtle`,children:s.map(e=>(0,C.jsx)(`option`,{value:e,children:e},e))}),(0,C.jsxs)(`div`,{className:`flex justify-end gap-[8px] [margin-top:18px]`,children:[(0,C.jsx)(a,{type:`button`,variant:`secondary`,onClick:t,children:r(`navigation:appOverlays.cancel`)}),(0,C.jsxs)(a,{type:`submit`,children:[(0,C.jsx)(b,{className:`size-3.5`}),r(`navigation:appOverlays.create`)]})]})]})})})}export{w as CommandPalette,T as QuickCreate};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n,t as r}from"./vendor-react-CHuvPdJE.js";import{i,n as a,o}from"./button-XhIEgIsg.js";import{d as s,f as c,h as l,m as u,p as d}from"./use-i18n-B2uTAjsJ.js";import{c as f,i as p,o as m,s as h,t as g,u as _}from"./use-mobile-DikQ1IYz.js";import{a as v,i as y,n as b,r as x,s as S,t as C,u as w}from"./es2015-0VLo_afz.js";import{n as T,t as E}from"./dist-CISIC3_f.js";import{t as D}from"./utils-C8uzG5AZ.js";import{t as O}from"./check-jIXqkGKr.js";import{t as k}from"./chevron-down-DT6AXwTP.js";import{Rt as A,zt as j}from"./index-BvVJkBr0.js";var M=e(n(),1),N=e(t(),1),ee=Object.defineProperty,P=(e,t)=>ee(e,`name`,{value:t,configurable:!0});function F(e){let t=N.useRef({value:e,previous:e});return N.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}P(F,`usePrevious`);var I=Object.defineProperty,te=(e,t)=>I(e,`name`,{value:t,configurable:!0});function L(e,[t,n]){return Math.min(n,Math.max(t,e))}te(L,`clamp`);var R=r(),z=Object.defineProperty,B=(e,t)=>z(e,`name`,{value:t,configurable:!0}),V=[` `,`Enter`,`ArrowUp`,`ArrowDown`],H=[` `,`Enter`],U=`Select`,[W,G,ne]=j(U),[K,re]=u(U,[ne,f]),q=f(),[ie,J]=K(U),[ae,oe]=K(U);function se(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:c,onValueChange:l,dir:u,name:d,autoComplete:f,disabled:p,required:m,form:g,internal_do_not_use_render:_}=e,v=q(t),[y,b]=N.useState(null),[x,S]=N.useState(null),[C,w]=N.useState(!1),E=A(u),[D,O]=s({prop:r,defaultProp:i??!1,onChange:a,caller:U}),[k,j]=s({prop:o,defaultProp:c,onChange:l,caller:U}),M=N.useRef(null),ee=N.useRef(k);N.useEffect(()=>{let e=g?y?.ownerDocument.getElementById(g):y?.form;if(e instanceof HTMLFormElement){let t=B(()=>j(ee.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,y,j]);let P=!y||!!g||!!y.closest(`form`),[F,I]=N.useState(new Set),te=T(),L=Array.from(F).map(e=>e.props.value).join(`;`),z=N.useCallback(e=>{I(t=>new Set(t).add(e))},[]),V=N.useCallback(e=>{I(t=>{let n=new Set(t);return n.delete(e),n})},[]),H={required:m,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:w,contentId:te,value:k,onValueChange:j,open:D,onOpenChange:O,dir:E,triggerPointerDownPosRef:M,disabled:p,name:d,autoComplete:f,form:g,nativeOptions:F,nativeSelectKey:L,isFormControl:P};return(0,R.jsx)(h,{...v,children:(0,R.jsx)(ie,{scope:t,...H,children:(0,R.jsx)(W.Provider,{scope:t,children:(0,R.jsx)(ae,{scope:t,onNativeOptionAdd:z,onNativeOptionRemove:V,children:We(_)?_(H):n})})})})}B(se,`SelectProvider`);var ce=B(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,R.jsx)(se,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,R.jsxs)(R.Fragment,{children:[n,e?(0,R.jsx)(Ue,{__scopeSelect:t}):null]})})},`Select`),le=`SelectTrigger`,ue=N.forwardRef(B(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=q(n),s=J(le,n),c=s.disabled||r,u=o(t,s.onTriggerChange),f=G(n),m=N.useRef(`touch`),[h,g,_]=Ge(e=>{let t=f().filter(e=>!e.disabled),n=Ke(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),v=B(e=>{c||(s.onOpenChange(!0),_()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,R.jsx)(p,{asChild:!0,...a,children:(0,R.jsx)(l.button,{type:`button`,role:`combobox`,"aria-controls":s.open?s.contentId:void 0,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":$(s.value)?``:void 0,...i,ref:u,onClick:d(i.onClick,e=>{e.currentTarget.focus(),m.current!==`mouse`&&v(e)}),onPointerDown:d(i.onPointerDown,e=>{m.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(v(e),e.preventDefault())}),onKeyDown:d(i.onKeyDown,e=>{let t=h.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&g(e.key),!(t&&e.key===` `)&&V.includes(e.key)&&(v(),e.preventDefault())})})})},`SelectTrigger`)),de=`SelectValue`,fe=N.forwardRef(B(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:s=``,...u}=e,d=J(de,n),{onValueNodeHasChildrenChange:f}=d,p=a!==void 0,m=o(t,d.onValueNodeChange);c(()=>{f(p)},[f,p]);let h=$(d.value);return(0,R.jsx)(l.span,{...u,asChild:!h&&u.asChild,ref:m,style:{pointerEvents:`none`},children:(0,R.jsx)(N.Fragment,{children:h?s:a},h?`placeholder`:`value`)})},`SelectValue`)),pe=N.forwardRef(B(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,R.jsx)(l.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[me,he]=K(`SelectPortal`,{forceMount:void 0}),ge=B(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,R.jsx)(me,{scope:e.__scopeSelect,forceMount:n,children:(0,R.jsx)(y,{asChild:!0,...r})})},`SelectPortal`),Y=`SelectContent`,_e=N.forwardRef(B(function(e,t){let n=he(Y,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=J(Y,e.__scopeSelect),[o,s]=N.useState();return c(()=>{s(new DocumentFragment)},[]),(0,R.jsx)(w,{present:r||a.open,children:({present:e})=>e?(0,R.jsx)(xe,{...i,ref:t}):(0,R.jsx)(ve,{...i,fragment:o})})},`SelectContent`)),ve=N.forwardRef(B(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?M.createPortal((0,R.jsx)(ye,{scope:n,children:(0,R.jsx)(W.Slot,{scope:n,children:(0,R.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),X=10,[ye,Z]=K(Y),be=i(`SelectContent.RemoveScroll`),xe=N.forwardRef(B(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:s,side:c,sideOffset:l,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:_,avoidCollisions:y,...w}=e,T=J(Y,n),[E,D]=N.useState(null),[O,k]=N.useState(null),A=o(t,D),[j,M]=N.useState(null),[ee,P]=N.useState(null),F=G(n),[I,te]=N.useState(!1),L=N.useRef(!1);N.useEffect(()=>{if(E)return C(E)},[E]),x();let z=N.useCallback(e=>{let[t,...n]=F().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[F,O]),V=N.useCallback(()=>z([j,E]),[z,j,E]);N.useEffect(()=>{I&&V()},[I,V]);let{onOpenChange:H,triggerPointerDownPosRef:U}=T;N.useEffect(()=>{if(E){let e={x:0,y:0},t=B(t=>{e={x:Math.abs(Math.round(t.pageX)-(U.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(U.current?.y??0))}},`handlePointerMove`),n=B(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||H(!1),document.removeEventListener(`pointermove`,t),U.current=null},`handlePointerUp`);return U.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,H,U]),N.useEffect(()=>{let e=B(()=>H(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[H]);let[W,ne]=Ge(e=>{let t=F().filter(e=>!e.disabled),n=Ke(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),K=N.useCallback((e,t,n)=>{let r=!L.current&&!n;(T.value!==void 0&&T.value===t||r)&&(M(e),r&&(L.current=!0))},[T.value]),re=N.useCallback(()=>E?.focus(),[E]),q=N.useCallback((e,t,n)=>{let r=!L.current&&!n;(T.value!==void 0&&T.value===t||r)&&P(e)},[T.value]),ie=r===`popper`?Ce:Se,ae=ie===Ce?{side:c,sideOffset:l,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:_,avoidCollisions:y}:{};return(0,R.jsx)(ye,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:K,selectedItem:j,onItemLeave:re,itemTextRefCallback:q,focusSelectedItem:V,selectedItemText:ee,position:r,isPositioned:I,searchRef:W,children:(0,R.jsx)(b,{as:be,allowPinchZoom:!0,children:(0,R.jsx)(v,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:d(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,R.jsx)(S,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,R.jsx)(ie,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ae,onPlaced:()=>te(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:d(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ne(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>z(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),Se=N.forwardRef(B(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=J(Y,n),s=Z(Y,n),[u,d]=N.useState(null),[f,p]=N.useState(null),m=o(t,p),h=G(n),g=N.useRef(!1),_=N.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=s,S=N.useCallback(()=>{if(a.trigger&&a.valueNode&&u&&f&&v&&y&&b){let e=a.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-X,d=L(a,[X,Math.max(X,l-c)]);u.style.minWidth=s+`px`,u.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-X,d=L(a,[X,Math.max(X,l-c)]);u.style.minWidth=s+`px`,u.style.right=d+`px`}let o=h(),s=window.innerHeight-X*2,c=v.scrollHeight,l=window.getComputedStyle(f),d=parseInt(l.borderTopWidth,10),p=parseInt(l.paddingTop,10),m=parseInt(l.borderBottomWidth,10),_=parseInt(l.paddingBottom,10),x=d+p+c+_+m,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-X,D=s-E,O=y.offsetHeight/2,k=y.offsetTop+O,A=d+p+k,j=x-A;if(A<=E){let e=o.length>0&&y===o[o.length-1].ref.current;u.style.bottom=`0px`;let t=f.clientHeight-v.offsetTop-v.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+m);u.style.height=n+`px`}else{let e=o.length>0&&y===o[0].ref.current;u.style.top=`0px`;let t=Math.max(E,d+v.offsetTop+(e?w:0)+O)+j;u.style.height=t+`px`,v.scrollTop=A-E+v.offsetTop}u.style.margin=`${X}px 0`,u.style.minHeight=S+`px`,u.style.maxHeight=s+`px`,r?.(),requestAnimationFrame(()=>g.current=!0)}},[h,a.trigger,a.valueNode,u,f,v,y,b,a.dir,r]);c(()=>S(),[S]);let[C,w]=N.useState();c(()=>{f&&w(window.getComputedStyle(f).zIndex)},[f]);let T=N.useCallback(e=>{e&&_.current===!0&&(S(),x?.(),_.current=!1)},[S,x]);return(0,R.jsx)(we,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:g,onScrollButtonChange:T,children:(0,R.jsx)(`div`,{ref:d,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,R.jsx)(l.div,{...i,ref:m,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),Ce=N.forwardRef(B(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=X,...a}=e,o=q(n);return(0,R.jsx)(m,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[we,Te]=K(Y,{}),Ee=`SelectViewport`,De=N.forwardRef(B(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=Z(Ee,n),s=Te(Ee,n),c=o(t,a.onViewportChange),u=N.useRef(0);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,R.jsx)(W.Slot,{scope:n,children:(0,R.jsx)(l.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:d(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(u.current-t.scrollTop);if(e>0){let r=window.innerHeight-X*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}u.current=t.scrollTop})})})]})},`SelectViewport`)),[Oe,ke]=K(`SelectGroup`),Ae=`SelectItem`,[je,Me]=K(Ae),Ne=N.forwardRef(B(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...s}=e,c=J(Ae,n),u=Z(Ae,n),f=c.value===r,[p,m]=N.useState(a??``),[h,g]=N.useState(!1),_=E(e=>u.itemRefCallback?.(e,r,i)),v=o(t,_),y=T(),b=N.useRef(`touch`),x=B(()=>{i||(c.onValueChange(r),c.onOpenChange(!1))},`handleSelect`);return(0,R.jsx)(je,{scope:n,value:r,disabled:i,textId:y,isSelected:f,onItemTextChange:N.useCallback(e=>{m(t=>t||(e?.textContent??``).trim())},[]),children:(0,R.jsx)(W.ItemSlot,{scope:n,value:r,disabled:i,textValue:p,children:(0,R.jsx)(l.div,{role:`option`,"aria-labelledby":y,"data-highlighted":h?``:void 0,"aria-selected":f&&h,"data-state":f?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...s,ref:v,onFocus:d(s.onFocus,()=>g(!0)),onBlur:d(s.onBlur,()=>g(!1)),onClick:d(s.onClick,()=>{b.current!==`mouse`&&x()}),onPointerUp:d(s.onPointerUp,()=>{b.current===`mouse`&&x()}),onPointerDown:d(s.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:d(s.onPointerMove,e=>{b.current=e.pointerType,i?u.onItemLeave?.():b.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:d(s.onPointerLeave,e=>{e.currentTarget===document.activeElement&&u.onItemLeave?.()}),onKeyDown:d(s.onKeyDown,e=>{i||e.target!==e.currentTarget||(u.searchRef?.current===``||e.key!==` `)&&(H.includes(e.key)&&x(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Q=`SelectItemText`,Pe=N.forwardRef(B(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,s=J(Q,n),u=Z(Q,n),d=Me(Q,n),f=oe(Q,n),[p,m]=N.useState(null),h=E(e=>u.itemTextRefCallback?.(e,d.value,d.disabled)),g=o(t,m,d.onItemTextChange,h),_=p?.textContent,v=N.useMemo(()=>(0,R.jsx)(`option`,{value:d.value,disabled:d.disabled,children:_},d.value),[d.disabled,d.value,_]),{onNativeOptionAdd:y,onNativeOptionRemove:b}=f;return c(()=>(y(v),()=>b(v)),[y,b,v]),(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(l.span,{id:d.textId,...a,ref:g}),d.isSelected&&s.valueNode&&!s.valueNodeHasChildren&&!$(s.value)?M.createPortal(a.children,s.valueNode):null]})},`SelectItemText`)),Fe=`SelectItemIndicator`,Ie=N.forwardRef(B(function(e,t){let{__scopeSelect:n,...r}=e;return Me(Fe,n).isSelected?(0,R.jsx)(l.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),Le=`SelectScrollUpButton`,Re=N.forwardRef(B(function(e,t){let n=Z(Le,e.__scopeSelect),r=Te(Le,e.__scopeSelect),[i,a]=N.useState(!1),s=o(t,r.onScrollButtonChange);return c(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};B(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,R.jsx)(Ve,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),ze=`SelectScrollDownButton`,Be=N.forwardRef(B(function(e,t){let n=Z(ze,e.__scopeSelect),r=Te(ze,e.__scopeSelect),[i,a]=N.useState(!1),s=o(t,r.onScrollButtonChange);return c(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};B(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,R.jsx)(Ve,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Ve=N.forwardRef(B(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Z(`SelectScrollButton`,n),o=N.useRef(null),s=G(n),u=N.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return N.useEffect(()=>()=>u(),[u]),c(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,R.jsx)(l.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:d(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:d(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:d(i.onPointerLeave,()=>{u()})})},`SelectScrollButtonImpl`)),He=`SelectBubbleInput`,Ue=N.forwardRef(B(function({__scopeSelect:e,...t},n){let r=J(He,e),{value:i,onValueChange:a,required:s,disabled:c,name:u,autoComplete:d,form:f}=r,{nativeOptions:p,nativeSelectKey:m}=r,h=N.useRef(null),g=o(n,h),v=i??``,y=F(v),b=Array.from(p).some(e=>(e.props.value??``)===``);return N.useEffect(()=>{let e=h.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(y!==v&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,v),e.dispatchEvent(t)}},[y,v]),(0,R.jsxs)(l.select,{"aria-hidden":!0,required:s,tabIndex:-1,name:u,autoComplete:d,disabled:c,form:f,onChange:e=>a(e.target.value),...t,style:{..._,...t.style},ref:g,defaultValue:v,children:[$(i)&&!b?(0,R.jsx)(`option`,{value:``}):null,Array.from(p)]},m)},`SelectBubbleInput`));function We(e){return typeof e==`function`}B(We,`isFunction`);function $(e){return e===``||e===void 0}B($,`shouldShowPlaceholder`);function Ge(e){let t=E(e),n=N.useRef(``),r=N.useRef(0),i=N.useCallback(e=>{let i=n.current+e;t(i),B((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=N.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return N.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}B(Ge,`useTypeaheadSearch`);function Ke(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=qe(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}B(Ke,`findNextItem`);function qe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}B(qe,`wrapArray`);var Je=a(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]);function Ye({...e}){return(0,R.jsx)(ce,{"data-slot":`select`,...e})}function Xe({...e}){return(0,R.jsx)(fe,{"data-slot":`select-value`,...e})}function Ze({className:e,size:t=`default`,children:n,...r}){return(0,R.jsxs)(ue,{"data-slot":`select-trigger`,"data-size":t,className:D(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,R.jsx)(pe,{asChild:!0,children:(0,R.jsx)(k,{className:`pointer-events-none size-4 text-muted-foreground`})})]})}function Qe({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...i}){return(0,R.jsx)(ge,{children:(0,R.jsxs)(_e,{"data-slot":`select-content`,"data-align-trigger":n===`item-aligned`,className:D(`relative z-[200] max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...i,children:[(0,R.jsx)(et,{}),(0,R.jsx)(De,{"data-position":n,className:D(`data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)`,n===`popper`&&``),children:t}),(0,R.jsx)(tt,{})]})})}function $e({className:e,children:t,...n}){return(0,R.jsxs)(Ne,{"data-slot":`select-item`,className:D(`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,R.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:(0,R.jsx)(Ie,{children:(0,R.jsx)(O,{className:`pointer-events-none`})})}),(0,R.jsx)(Pe,{children:t})]})}function et({className:e,...t}){return(0,R.jsx)(Re,{"data-slot":`select-scroll-up-button`,className:D(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,R.jsx)(Je,{})})}function tt({className:e,...t}){return(0,R.jsx)(Be,{"data-slot":`select-scroll-down-button`,className:D(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,R.jsx)(k,{})})}var nt=`__pisper_empty_value__`;function rt({children:e,className:t,disabled:n,onChange:r,value:i,...a}){let o=N.Children.toArray(e).filter(N.isValidElement).map(e=>{let t=e.props.value??e.props.children??``;return{disabled:e.props.disabled,label:e.props.children,value:String(t)||nt}}),s=String(i??``)||nt;return g()?(0,R.jsxs)(`select`,{"data-slot":`select-trigger`,className:D(`h-[31px] min-h-0 w-full rounded-[var(--r-xs)] border border-[var(--stroke)] bg-[var(--surface-subtle)] px-2.5 py-0 text-[12px] font-normal text-[var(--text)] shadow-none focus-visible:border-[var(--focus)] focus-visible:ring-2 focus-visible:ring-[var(--focus-ring)] dark:bg-[var(--solid)]`,t),value:s,disabled:n,onChange:r,...a,children:[!o.some(e=>e.value===s)&&(0,R.jsx)(`option`,{value:s,hidden:!0}),o.map(e=>(0,R.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}):(0,R.jsxs)(Ye,{value:s,disabled:n,onValueChange:e=>{r?.({target:{value:e===nt?``:e}})},children:[(0,R.jsx)(Ze,{className:D(`h-[31px] min-h-0 w-full rounded-[var(--r-xs)] border border-[var(--stroke)] bg-[var(--surface-subtle)] px-2.5 py-0 text-[12px] font-normal text-[var(--text)] shadow-none focus-visible:border-[var(--focus)] focus-visible:ring-2 focus-visible:ring-[var(--focus-ring)] dark:bg-[var(--solid)] [&>svg]:size-[13px] [&>svg]:text-[var(--text-muted)]`,t),...a,children:(0,R.jsx)(Xe,{})}),(0,R.jsx)(Qe,{position:`popper`,align:`start`,className:`min-w-[var(--radix-select-trigger-width)]`,children:o.map(e=>(0,R.jsx)($e,{value:e.value,disabled:e.disabled,className:`text-[12px]`,children:e.label},e.value))})]})}export{L as n,F as r,rt as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-CHuvPdJE.js";import{i as n,n as r,r as i,s as a}from"./shortcuts-BIzphxhz.js";var o=e(t(),1);function s({blocked:e,onCommandPalette:t,onPrimary:s,onSearch:c,onToggleTerminal:l,onToggleSidebar:u,onSettings:d}){let f=a(e=>e.bindings);return(0,o.useEffect)(()=>{let a=a=>{if(e||n(a))return;let o;i(a,f.commandPalette)?o=t:i(a,f.toggleSidebar)?o=u:i(a,f.toggleTerminal)?o=l:i(a,f.openSettings)?o=d:r(a.target)||(i(a,f.primaryAction)?o=s:i(a,f.focusSearch)&&(o=c)),o&&(a.preventDefault(),o())};return window.addEventListener(`keydown`,a),()=>window.removeEventListener(`keydown`,a)},[f,e,t,s,c,d,l,u]),null}export{s as AppShortcuts};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./vendor-react-CHuvPdJE.js";import{t as r}from"./api-CmPTEiOc.js";import{n as i,t as a}from"./button-XhIEgIsg.js";import{t as o}from"./use-i18n-B2uTAjsJ.js";import{t as s}from"./storage-BE5DCCG3.js";import{t as c}from"./file-C8GNXmhJ.js";import{t as l}from"./link-2-CaZP6GWi.js";import{t as u}from"./paperclip-BMRj9kRG.js";import{t as d}from"./trash-2-mhzzyC6i.js";import{t as f}from"./x-bw26XDZM.js";import{Dt as p,Ot as m,R as h,bt as g,c as _,ht as v,i as y,n as b,r as x,t as S,xt as C}from"./index-BvVJkBr0.js";import{t as w}from"./field-C8yUX8Pf.js";import{t as T}from"./StarOrbit-BlI6MhVr.js";import{t as E}from"./usePagePrimaryAction-Bw0OFTDZ.js";import{t as D}from"./MarkdownMessage-ickiT81L.js";import{n as O}from"./mobile-runtime-recovery-DBq1Dp1R.js";var k=i(`file-image`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]),A=i(`file-play`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z`,key:`1tzo1f`}]]),j=e(t(),1),M=134217728;function N(e){let t=document.createElement(`a`);t.href=`/api/assets/${encodeURIComponent(e.id)}/download`,t.download=e.name,t.hidden=!0,document.body.append(t),t.click(),t.remove()}function P(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error||Error(`读取资产失败。`)),r.onload=()=>{let e=typeof r.result==`string`?r.result:``,i=e.indexOf(`,`);i<0?n(Error(`资产编码失败。`)):t(e.slice(i+1))},r.readAsDataURL(e)})}function F(){if(typeof window>`u`)return!1;let e=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return!!(window.pisperDesktop?.openAsset||window.__PISPER_MOBILE_APP__&&e)}async function I(e){let t=window.pisperDesktop?.openAsset,n=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;if(!t&&!(window.__PISPER_MOBILE_APP__&&n))return N(e),`download`;await O();let r=await fetch(`/api/assets/${encodeURIComponent(e.id)}/download`);if(!r.ok)throw Error(`资产下载失败 (${r.status})`);if((Number(r.headers.get(`content-length`))||0)>M)throw Error(`资产超过 128 MB 原生打开限制。`);let i=await r.blob();if(!i.size||i.size>M)throw Error(`资产内容为空或超过 128 MB 原生打开限制。`);let a=await P(i);return t?await t({name:e.name,data:a}):await n?.(`mobile_open_asset`,{input:{name:e.name,mimeType:e.mimeType||i.type||`application/octet-stream`,data:a}}),`application`}var L=n(),R=[`all`,`image`,`video`,`file`,`link`,`current`];function z(e,t){return t(e===`image`?`assets:assetsPage.images`:e===`video`?`assets:assetsPage.videos`:e===`file`?`assets:assetsPage.files`:e===`link`?`assets:assetsPage.links`:e===`current`?`assets:assetsPage.fromCurrentChat`:`assets:assetsPage.all`)}function B(e){let t=String(e||``),n=t.lastIndexOf(`.`);return n>0&&n<t.length-1?t.slice(n+1).toLowerCase():``}function V({query:e=``,notify:t,registerPrimaryAction:n,onUse:i,requestConfirm:f}){let{t:b}=o(),[C,w]=(0,j.useState)(`all`),[D,O]=(0,j.useState)([]),[M,N]=(0,j.useState)(!0),[P,V]=(0,j.useState)(``),[W,G]=(0,j.useState)(null),[K,q]=(0,j.useState)(!1);E(n,()=>q(!0));let J=(0,j.useCallback)(async()=>{N(!0),V(``);try{let t=new URLSearchParams;e&&t.set(`query`,e),C===`image`&&t.set(`kind`,`image`),C===`video`&&t.set(`kind`,`video`),C===`file`&&t.set(`kind`,`file`),C===`link`&&t.set(`kind`,`link`),C===`current`&&t.set(`sessionId`,localStorage.getItem(s.activeSession)||`__none__`);let n=await r(`/api/assets?${t}`);O(n.assets)}catch(e){V(e instanceof Error?e.message:String(e))}finally{N(!1)}},[e,C]);(0,j.useEffect)(()=>{J()},[J]);let Y=async e=>{if(await f({title:b(`assets:assetsPage.deleteAsset`),message:b(`assets:assetsPage.deleteAssetName`,{name:e.name}),confirmLabel:b(`assets:assetsPage.delete`)}))try{await r(`/api/assets/${encodeURIComponent(e.id)}`,{method:`DELETE`}),O(t=>t.filter(t=>t.id!==e.id)),t(b(`assets:assetsPage.assetDeleted`))}catch(e){V(e instanceof Error?e.message:String(e))}},X=async e=>{try{i(await r(`/api/assets/${encodeURIComponent(e.id)}/content`)),t(b(`assets:assetsPage.nameAddedToChat`,{name:e.name}))}catch(e){V(e instanceof Error?e.message:String(e))}},Z=async e=>{V(``);try{let t=B(e.name),n;if(e.kind===`link`)n=e.url||``;else if(e.kind!==`image`&&!e.mimeType?.startsWith(`video/`)){let t=await r(`/api/assets/${encodeURIComponent(e.id)}/content?preview=1`);t.kind===`text`&&(n=String(t.text||``))}G({...e,text:n,textFormat:t===`md`||e.mimeType===`text/markdown`?`markdown`:`plain`})}catch(e){V(e instanceof Error?e.message:String(e))}},Q=async e=>{V(``);try{t(await I(e)===`application`?b(`assets:assetsPage.openedInApplication`):b(`assets:assetsPage.downloadStarted`))}catch(e){V(e instanceof Error?e.message:String(e))}};return(0,L.jsxs)(`div`,{className:`asset-page flex min-h-[100%] flex-col gap-[12px]`,children:[(0,L.jsx)(`div`,{className:`asset-toolbar [&_>_div:last-child]:flex [&_>_div:last-child]:gap-[7px] max-[650px]:items-stretch max-[650px]:flex-col max-[650px]:[&_>_div:last-child]:justify-end flex items-center justify-between gap-[12px]`,children:(0,L.jsx)(_,{options:R.map(e=>z(e,b)),value:z(C,b),onChange:e=>w(R.find(t=>z(t,b)===e)||`all`)})}),(0,L.jsxs)(`div`,{className:`asset-summary [&_strong]:text-[var(--text)] [&_strong]:text-[13px] max-[650px]:items-start max-[650px]:flex-col flex items-center justify-between gap-[12px] text-[var(--text-secondary)] text-[12px]`,children:[(0,L.jsxs)(`span`,{children:[(0,L.jsx)(`strong`,{children:D.length}),` `,b(`assets:assetsPage.assets`)]}),(0,L.jsx)(`span`,{children:b(`assets:assetsPage.conversationAttachmentsAndAgentOutputsGatherHereAutomatically`)})]}),P&&(0,L.jsxs)(y,{children:[(0,L.jsx)(v,{size:13}),P]}),M?(0,L.jsxs)(x,{children:[(0,L.jsx)(g,{className:`animate-spin`,size:23}),(0,L.jsx)(`h2`,{children:b(`assets:assetsPage.loadingAssets`)})]}):D.length?(0,L.jsx)(`div`,{className:`asset-grid max-[650px]:grid-cols-[1fr] functional grid auto-rows-[minmax(292px,auto)] grid-cols-[repeat(auto-fill,minmax(260px,1fr))] content-start gap-3`,children:D.map(e=>{let t=e.mimeType?.startsWith(`video/`),n=e.kind===`image`?k:t?A:e.kind===`link`?l:c;return(0,L.jsxs)(S,{className:`asset-card [transition:transform_var(--d2)_var(--ease-out),_box-shadow_var(--d2)_var(--ease-out),_border-color_var(--d2)_var(--ease-out)] hover:[transform:translateY(-2px)] hover:shadow-[var(--sh-2)] hover:border-[var(--star-border)] [&_>_strong]:text-[13px] [&_>_span]:m-[5px_0_10px] [&_>_span]:text-[var(--text-muted)] [&_>_span]:text-[12px] [&_>_div:last-child]:flex [&_>_div:last-child]:gap-[6px] [&_>_div:last-child]:mt-[auto] max-[650px]:min-h-[200px] functional flex h-full min-h-[292px] flex-col overflow-hidden`,children:[(0,L.jsx)(`button`,{className:`asset-preview [&.blue]:bg-[var(--asset-preview-blue-bg)] [&.blue]:text-[var(--asset-preview-blue-text)] [&.violet]:bg-[var(--asset-preview-violet-bg)] [&.violet]:text-[var(--violet-strong)] [&.yellow]:bg-[var(--warning-soft)] [&.yellow]:text-[var(--amber)] [&.red]:bg-[var(--danger-soft)] [&.red]:text-[var(--danger)] [.asset-card.functional_&::after]:absolute [.asset-card.functional_&::after]:inset-0 [.asset-card.functional_&::after]:rounded-[var(--r-sm)] [.asset-card.functional_&::after]:bg-[rgba(0,_0,_0,_0)] [.asset-card.functional_&::after]:[transition:background_var(--d1)_var(--ease-out)] [.asset-card.functional_&::after]:[content:''] [.asset-card.functional_&::after]:pointer-events-none [.asset-card.functional_&:hover::after]:bg-[rgba(0,_0,_0,_.16)] [.asset-card.functional_&.image]:bg-[var(--surface-hover)] [.asset-card.functional_&.link]:bg-[var(--surface-hover)] [.asset-card.functional_&.link]:text-[var(--success)] [.asset-card.functional_&.file]:bg-[var(--surface-hover)] [.asset-card.functional_&.file]:text-[var(--violet-strong)] [.asset-card.functional_&_img]:relative [.asset-card.functional_&_img]:z-[0] [.asset-card.functional_&_img]:w-full [.asset-card.functional_&_img]:h-full [.asset-card.functional_&_img]:rounded-[var(--r-sm)] [.asset-card.functional_&_img]:object-cover [.asset-card.functional_&_video]:relative [.asset-card.functional_&_video]:z-[0] [.asset-card.functional_&_video]:w-full [.asset-card.functional_&_video]:h-full [.asset-card.functional_&_video]:rounded-[var(--r-sm)] [.asset-card.functional_&_video]:object-cover ${e.kind} ${t?`video`:``} relative -mx-1.5 -mt-1.5 mb-2.5 grid h-44 min-h-0 w-[calc(100%+12px)] shrink-0 place-items-center overflow-hidden rounded-[var(--r-sm)] border-0 bg-[var(--surface-hover)] text-[var(--text-muted)]`,title:b(`assets:assetsPage.preview`),"aria-label":`${b(`assets:assetsPage.preview`)}: ${e.name}`,onClick:()=>Z(e),children:e.kind===`image`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(n,{className:`absolute`,size:38}),(0,L.jsx)(`img`,{className:`block size-full min-h-0 object-cover`,src:`/api/assets/${encodeURIComponent(e.id)}/download?inline=1`,alt:``,onError:e=>{e.currentTarget.hidden=!0}})]}):t?(0,L.jsx)(`video`,{className:`block size-full min-h-0 object-cover`,src:`/api/assets/${encodeURIComponent(e.id)}/download?inline=1`,muted:!0,preload:`metadata`}):(0,L.jsx)(n,{size:38})}),(0,L.jsxs)(`div`,{className:`asset-card-copy [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_span]:overflow-hidden [&_span]:text-[var(--text-muted)] [&_span]:text-[13px] [&_span]:text-ellipsis [&_span]:whitespace-nowrap [&_small]:overflow-hidden [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_small]:text-ellipsis [&_small]:whitespace-nowrap flex min-w-0 flex-col gap-[4px]`,children:[(0,L.jsx)(`strong`,{title:e.name,children:e.name}),(0,L.jsxs)(`span`,{children:[e.kind===`link`?e.url?new URL(e.url).hostname:``:h(e.size),` `,`·`,` `,e.source===`agent`?b(`assets:assetsPage.agentOutputs`):e.source===`attachment`?b(`assets:assetsPage.chatAttachments`):b(`assets:assetsPage.manualUploads`)]}),e.sessionName&&(0,L.jsx)(`small`,{title:e.sessionName,children:b(`assets:assetsPage.fromName`,{name:e.sessionName})})]}),(0,L.jsxs)(`div`,{className:`asset-card-actions flex-none [.asset-card.functional:hover_&]:opacity-100 [.asset-card.functional:hover_&]:[transform:translateY(0)] [.asset-card.functional:focus-within_&]:opacity-100 [.asset-card.functional:focus-within_&]:[transform:translateY(0)] [&_a]:no-underline flex flex-wrap items-center gap-[5px] [margin-top:auto] [padding-top:10px] opacity-0 [transform:translateY(4px)] [transition:opacity_var(--d1)_var(--ease-out),_transform_var(--d1)_var(--ease-out)] max-[650px]:opacity-100 max-[650px]:transform-none`,children:[e.kind===`link`?(0,L.jsx)(a,{asChild:!0,variant:`outline`,children:(0,L.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,children:[(0,L.jsx)(p,{size:13}),b(`assets:assetsPage.open`)]})}):(0,L.jsxs)(a,{variant:`outline`,onClick:()=>Q(e),children:[F()?(0,L.jsx)(p,{size:13}):(0,L.jsx)(m,{size:13}),F()?b(`assets:assetsPage.openInApplication`):b(`assets:assetsPage.download`)]}),(0,L.jsxs)(a,{onClick:()=>X(e),children:[(0,L.jsx)(u,{size:13}),b(`assets:assetsPage.useInChat`)]}),(0,L.jsx)(a,{variant:`destructive`,size:`icon`,className:`ml-auto`,title:b(`assets:assetsPage.deleteAsset`),"aria-label":`${b(`assets:assetsPage.deleteAsset`)}: ${e.name}`,onClick:()=>Y(e),children:(0,L.jsx)(d,{size:13})})]})]},e.id)})}):(0,L.jsxs)(x,{children:[(0,L.jsx)(T,{size:46}),(0,L.jsx)(`h2`,{children:b(`assets:assetsPage.nothingHasGatheredHereYet`)}),(0,L.jsx)(`p`,{children:b(`assets:assetsPage.bringInALinkOrAttachAFileInAConversationPisperWillGatherTheOutputsCreatedAlongTheWay`)}),(0,L.jsxs)(a,{size:`lg`,className:`mt-4`,onClick:()=>q(!0),children:[(0,L.jsx)(l,{size:14}),b(`assets:assetsPage.addLink`)]})]}),W&&(0,L.jsx)(H,{asset:W,onClose:()=>G(null),onUse:()=>X(W),onOpen:()=>Q(W)}),K&&(0,L.jsx)(U,{onClose:()=>q(!1),onCreated:()=>{q(!1),J(),t(b(`assets:assetsPage.linkAssetAdded`))}})]})}function H({asset:e,onClose:t,onUse:n,onOpen:r}){let{t:i}=o(),s=e.mimeType?.startsWith(`video/`);return(0,L.jsx)(`div`,{className:`modal-backdrop max-[650px]:p-[8px] fixed z-[70] inset-0 grid place-items-center overflow-y-auto bg-[var(--modal-overlay)] [backdrop-filter:blur(3px)] [padding:20px] [overscroll-behavior:contain] [animation:fade-in_var(--d1)_var(--ease-out)]`,onMouseDown:e=>e.target===e.currentTarget&&t(),children:(0,L.jsxs)(`section`,{className:`modal asset-preview-modal flex max-h-[calc(100dvh_-_40px)] flex-col overflow-hidden [overscroll-behavior:contain] [border:1px_solid_var(--surface-highlight)] rounded-[var(--r-md)] bg-[var(--solid)] p-[18px] shadow-[0_26px_70px_-25px_var(--shadow-strong)] [animation:modal-in_var(--d2)_var(--ease-out)] max-[650px]:max-h-[calc(100dvh_-_16px)] max-[650px]:p-3 ${e.kind===`image`||s?`w-[min(96vw,1200px)]`:`w-[min(96vw,900px)]`}`,children:[(0,L.jsxs)(b,{children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{children:e.name}),(0,L.jsx)(`p`,{children:e.kind===`link`?e.url:`${e.mimeType} · ${h(e.size)}`})]}),(0,L.jsx)(a,{variant:`ghost`,size:`icon`,"aria-label":i(`assets:assetsPage.closeDialog`),onClick:t,children:(0,L.jsx)(f,{size:17})})]}),(0,L.jsx)(`div`,{className:`asset-modal-content [&_>_img]:max-h-full [&_>_img]:max-w-full [&_>_img]:rounded-[var(--r-sm)] [&_>_img]:object-contain [&_>_video]:aspect-video [&_>_video]:max-h-full [&_>_video]:w-full [&_>_video]:rounded-[var(--r-sm)] [&_>_video]:bg-black [&_>_video]:object-contain [&_>_pre]:m-0 [&_>_pre]:h-full [&_>_pre]:w-full [&_>_pre]:overflow-auto [&_>_pre]:whitespace-pre-wrap [&_>_pre]:font-[ui-monospace,_SFMono-Regular,_Consolas,_'Liberation_Mono',_monospace] [&_>_pre]:text-[12px] [&_>_pre]:leading-[1.55] [&_>_a]:flex [&_>_a]:items-center [&_>_a]:gap-[7px] [&_>_a]:text-[var(--text-soft)] [&_>_a]:text-[12px] [&_>_a]:[text-decoration:underline] [&_>_a]:[text-underline-offset:2px] [&_>_a]:[word-break:break-all] grid min-h-[min(420px,60dvh)] flex-1 place-items-center overflow-auto [margin-top:14px] [border:1px_solid_var(--stroke-soft)] rounded-[var(--r-sm)] bg-[var(--surface-subtle)] p-3 max-[650px]:min-h-[240px]`,children:e.kind===`image`?(0,L.jsx)(`img`,{src:`/api/assets/${encodeURIComponent(e.id)}/download?inline=1`,alt:e.name}):s?(0,L.jsx)(`video`,{controls:!0,playsInline:!0,preload:`metadata`,src:`/api/assets/${encodeURIComponent(e.id)}/download?inline=1`}):e.kind===`link`?(0,L.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,children:[(0,L.jsx)(p,{size:16}),e.url]}):e.text===void 0?(0,L.jsxs)(`div`,{className:`asset-file-preview [&_strong]:text-[var(--text)] [&_strong]:text-[13px] [&_span]:text-[12px] [&_span]:leading-[1.55] flex max-w-[400px] flex-col items-center gap-[9px] text-[var(--text-secondary)] text-center`,children:[(0,L.jsx)(c,{size:42}),(0,L.jsx)(`strong`,{children:e.name}),(0,L.jsx)(`span`,{children:i(`assets:assetsPage.thisFileTypeCanBeDownloadedSupportedDocumentsCanAlsoBeAddedToAChatForAnalysis`)})]}):e.textFormat===`markdown`?(0,L.jsx)(`div`,{className:`h-full w-full overflow-auto text-left`,children:(0,L.jsx)(D,{children:e.text})}):(0,L.jsx)(`pre`,{children:e.text})}),(0,L.jsxs)(`div`,{className:`flex justify-end gap-[8px] [margin-top:18px]`,children:[e.kind!==`link`&&(0,L.jsxs)(a,{variant:`outline`,size:`lg`,className:`bg-surface-subtle`,onClick:r,children:[F()?(0,L.jsx)(p,{size:14}):(0,L.jsx)(m,{size:14}),F()?i(`assets:assetsPage.openInApplication`):i(`assets:assetsPage.download`)]}),(0,L.jsxs)(a,{size:`lg`,onClick:n,children:[(0,L.jsx)(u,{size:14}),i(`assets:assetsPage.useInChat`)]})]})]})})}function U({onClose:e,onCreated:t}){let{t:n}=o(),[i,s]=(0,j.useState)(``),[c,l]=(0,j.useState)(``),[u,d]=(0,j.useState)(!1),[p,m]=(0,j.useState)(``);return(0,L.jsx)(`div`,{className:`modal-backdrop max-[650px]:p-[8px] fixed z-[70] inset-0 grid place-items-center overflow-y-auto bg-[var(--modal-overlay)] [backdrop-filter:blur(3px)] [padding:20px] [overscroll-behavior:contain] [animation:fade-in_var(--d1)_var(--ease-out)]`,onMouseDown:t=>t.target===t.currentTarget&&e(),children:(0,L.jsxs)(`form`,{className:`modal !w-[min(430px,100%)] max-h-[calc(100dvh_-_40px)] overflow-y-auto [overscroll-behavior:contain] [border:1px_solid_var(--surface-highlight)] rounded-[var(--r-md)] bg-[var(--solid)] p-[18px] shadow-[0_26px_70px_-25px_var(--shadow-strong)] [animation:modal-in_var(--d2)_var(--ease-out)] max-[650px]:max-h-[calc(100dvh_-_16px)]`,onSubmit:async e=>{e.preventDefault(),d(!0),m(``);try{await r(`/api/assets`,{method:`POST`,body:JSON.stringify({kind:`link`,name:i,url:c,source:`upload`})}),t()}catch(e){m(e instanceof Error?e.message:String(e))}finally{d(!1)}},children:[(0,L.jsxs)(b,{children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{children:n(`assets:assetsPage.addLinkAsset`)}),(0,L.jsx)(`p`,{children:n(`assets:assetsPage.linksCanBeArchivedOpenedOrAddedToAChatAsContext`)})]}),(0,L.jsx)(a,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":n(`assets:assetsPage.closeDialog`),onClick:e,children:(0,L.jsx)(f,{size:17})})]}),(0,L.jsxs)(w,{variant:`control`,children:[n(`assets:assetsPage.name`),(0,L.jsx)(`input`,{value:i,onChange:e=>s(e.target.value),placeholder:n(`assets:assetsPage.forExampleOpenAIAPIDocs`)})]}),(0,L.jsxs)(w,{variant:`control`,children:[`URL`,(0,L.jsx)(`input`,{value:c,onChange:e=>l(e.target.value),placeholder:`https://example.com/docs`})]}),p&&(0,L.jsxs)(y,{children:[(0,L.jsx)(v,{size:13}),p]}),(0,L.jsxs)(`div`,{className:`flex justify-end gap-[8px] [margin-top:18px]`,children:[(0,L.jsx)(a,{type:`button`,variant:`outline`,size:`lg`,className:`bg-surface-subtle`,onClick:e,children:n(`assets:assetsPage.cancel`)}),(0,L.jsxs)(a,{size:`lg`,disabled:u||!c.trim(),children:[u?(0,L.jsx)(g,{className:`animate-spin`,size:14}):(0,L.jsx)(C,{size:14}),n(u?`assets:assetsPage.adding`:`assets:assetsPage.addLink`)]})]})]})})}export{V as AssetsPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./vendor-react-CHuvPdJE.js";import{t as r}from"./api-CmPTEiOc.js";import{n as i,t as a}from"./button-XhIEgIsg.js";import{t as o}from"./use-i18n-B2uTAjsJ.js";import{t as s}from"./AppSelect-v2NUOzRf.js";import{t as c}from"./message-circle-Bc_EzZop.js";import{t as l}from"./send-DcLH_sg0.js";import{t as ee}from"./shield-check-BQHFfxVy.js";import{t as u}from"./trash-2-mhzzyC6i.js";import{t as d}from"./x-bw26XDZM.js";import{t as f}from"./input-D1QFzNMx.js";import{B as p,Dt as m,Et as h,Mt as g,a as _,bt as v,ht as te,i as y,l as b,n as x,o as S,r as C,s as w,t as T,wt as E,xt as ne}from"./index-BvVJkBr0.js";import{t as D}from"./field-C8yUX8Pf.js";import{t as O}from"./StarOrbit-BlI6MhVr.js";import{t as k}from"./usePagePrimaryAction-Bw0OFTDZ.js";import"./brand-DIEc3fK8.js";var re=i(`unplug`,[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]),A=e(t(),1),j=n(),ie=Object.entries({feishu:{Icon:g,tone:`blue`},weixin:{Icon:c,tone:`green`},qq:{Icon:c,tone:`blue`},telegram:{Icon:l,tone:`blue`}});function M(e,t){return t(e===`feishu`?`channels:channelsPage.feishu`:e===`weixin`?`channels:channelsPage.weChat`:e===`qq`?`channels:channelsPage.qq`:`channels:channelsPage.telegram`)}function ae(e,t){return t(e===`feishu`?`channels:channelsPage.feishuAppBot`:e===`weixin`?`channels:channelsPage.weChat`:e===`qq`?`channels:channelsPage.qqBot`:`channels:channelsPage.telegramBot`)}function N(e,t){return t(e===`feishu`?`channels:channelsPage.webSocketPersistentConnection`:e===`weixin`?`channels:channelsPage.tencentILinkPersistentConnection`:e===`qq`?`channels:channelsPage.qqPersistentConnection`:`channels:channelsPage.telegramPersistentConnection`)}function P(e,t){return t(e===`feishu`?`channels:channelsPage.feishuCapabilities`:e===`weixin`?`channels:channelsPage.weChatCapabilities`:e===`qq`?`channels:channelsPage.qqCapabilities`:`channels:channelsPage.telegramCapabilities`)}function F(e){return e===`telegram`}function oe(e,t,n){return t?n(`channels:channelsPage.reconnectName`,{name:M(e,n)}):F(e)?n(`channels:channelsPage.configureName`,{name:M(e,n)}):n(`channels:channelsPage.connectNameByQRCode`,{name:M(e,n)})}function I(e,t){return t(e===`connecting`?`channels:channelsPage.connecting`:e===`connected`?`channels:channelsPage.online`:e===`reconnecting`?`channels:channelsPage.reconnecting`:e===`failed`?`channels:channelsPage.connectionFailed`:`channels:channelsPage.notConnected`)}function se(e){return e===`connected`?`green`:e===`connecting`||e===`reconnecting`?`amber`:e===`failed`?`red`:`gray`}function L(e,t){return t(e===`starting`?`channels:channelsPage.requestingLoginQrCode`:e===`waiting`?`channels:channelsPage.scanAndConfirmConnection`:e===`scanned`?`channels:channelsPage.scannedWaitingForConfirmation`:e===`verification_required`?`channels:channelsPage.enterPairingCode`:e===`authorizing`?`channels:channelsPage.confirmingAuthorization`:e===`connecting`?`channels:channelsPage.authorizationSucceededConnecting`:e===`completed`?`channels:channelsPage.channelConnected`:e===`failed`?`channels:channelsPage.connectionFailed`:`channels:channelsPage.cancelled`)}function R(e,t=`zh-CN`){let n=Math.max(0,Math.ceil((new Date(e).getTime()-Date.now())/1e3));return t===`en-US`?n>=60?`in ${Math.ceil(n/60)} min`:`in ${n} sec`:n>=60?`${Math.ceil(n/60)} 分钟后`:`${n} 秒后`}function z(e){return e instanceof Error?e.message:String(e)}function B({notify:e,registerPrimaryAction:t,requestConfirm:n}){let{t:i,language:d}=o(),[f,m]=(0,A.useState)({providers:[],connections:{feishu:null,weixin:null,qq:null,telegram:null},scopes:[],models:[]}),[g,x]=(0,A.useState)(!0),[L,R]=(0,A.useState)(``),[B,V]=(0,A.useState)(`feishu`),[H,U]=(0,A.useState)(null),[W,G]=(0,A.useState)(``),[K,q]=(0,A.useState)(!1),[J,Y]=(0,A.useState)(``),X=(0,A.useCallback)(async()=>{try{R(``);let e=await r(`/api/channels`);m(e),Y(e.connections?.[B]?.defaultCwd||``)}catch(e){R(z(e))}finally{x(!1)}},[B]);(0,A.useEffect)(()=>{X()},[X]),(0,A.useEffect)(()=>{if(!H?.id||[`completed`,`failed`,`cancelled`].includes(H.status))return;let t=H.id,n=window.setInterval(async()=>{try{let a=H.platform,o=await r(`/api/channels/${a}/onboarding/${encodeURIComponent(t)}`);U({...o,platform:a}),o.status===`completed`&&(window.clearInterval(n),e(i(`channels:channelsPage.nameTwoWayConnectionEstablished`,{name:M(a,i)})),await X(),window.setTimeout(()=>U(null),900))}catch(e){U(t=>t&&{...t,status:`failed`,error:z(e)})}},1500);return()=>window.clearInterval(n)},[H?.id,H?.platform,H?.status,X,e,i]);let Z=async e=>{if(!(f.connections?.[e]&&!await n({title:i(`channels:channelsPage.reconnectName`,{name:M(e,i)}),message:F(e)?i(`channels:channelsPage.configuringAgainWillReplaceTheCurrentNameConnectionContinue`,{name:M(e,i)}):i(`channels:channelsPage.scanningAgainWillReplaceTheCurrentNameConnectionContinue`,{name:M(e,i)}),confirmLabel:F(e)?i(`channels:channelsPage.continueConfiguration`):i(`channels:channelsPage.continueScanning`),tone:`primary`}))){V(e),G(e),U({platform:e,status:`starting`});try{let t=await r(`/api/channels/${e}/onboarding`,{method:`POST`,body:`{}`});`mode`in t&&t.mode===`manual`?U({...t,platform:e,status:`starting`,manual:!0}):U({...t,platform:e})}catch(t){U({platform:e,status:`failed`,error:z(t)})}finally{G(``)}}};k(t,()=>Z(B));let le=async()=>{H?.id&&![`completed`,`failed`,`cancelled`].includes(H.status)&&await r(`/api/channels/${H.platform}/onboarding/${encodeURIComponent(H.id)}`,{method:`DELETE`}).catch(()=>{}),U(null)},Q=async(t,n,i)=>{q(!0);try{let a=await r(`/api/channels/${t}`,{method:`PATCH`,body:JSON.stringify(n)});m(a),Y(a.connections?.[t]?.defaultCwd||``),e(i)}catch(t){e(z(t),`error`)}finally{q(!1)}},ue=async t=>{q(!0);try{m(await r(`/api/channels/${t}/reconnect`,{method:`POST`,body:`{}`})),e(i(`channels:channelsPage.nameReconnected`,{name:M(t,i)}))}catch(t){e(z(t),`error`),X()}finally{q(!1)}},de=async t=>{if(await n({title:i(`channels:channelsPage.disconnectName`,{name:M(t,i)}),message:i(`channels:channelsPage.localCredentialsAndChatMappingsWillBeDeleted`),confirmLabel:i(`channels:channelsPage.disconnect`)}))try{await r(`/api/channels/${t}`,{method:`DELETE`}),await X(),e(i(`channels:channelsPage.nameDisconnected`,{name:M(t,i)}))}catch(t){e(z(t),`error`)}},fe=async t=>{if(await n({title:i(`channels:channelsPage.resetChannelChat`),message:i(`channels:channelsPage.resetTheAppChatLinkedToScope`,{scope:t.title,app:`Pisper`}),confirmLabel:i(`channels:channelsPage.reset`)}))try{await r(`/api/channels/scopes/${encodeURIComponent(t.key)}`,{method:`DELETE`}),await X(),e(i(`channels:channelsPage.channelChatReset`))}catch(t){e(z(t),`error`)}};if(g)return(0,j.jsxs)(C,{children:[(0,j.jsx)(v,{className:`animate-spin`,size:23}),(0,j.jsx)(`h2`,{children:i(`channels:channelsPage.loadingChannels`)})]});let $=f.connections?.[B];return(0,j.jsxs)(`div`,{className:`flex flex-col gap-[12px]`,children:[L&&(0,j.jsxs)(y,{children:[(0,j.jsx)(te,{size:13}),L]}),(0,j.jsx)(`div`,{className:`channel-cards max-[900px]:grid-cols-[1fr] max-[650px]:grid-cols-[1fr] grid grid-cols-[repeat(2,minmax(0,1fr))] gap-[12px]`,children:ie.map(([e,t])=>{let n=f.connections?.[e],r=n?.status||`idle`,o=se(r),s=t.Icon;return(0,j.jsxs)(T,{className:`provider-card channel-platform-card [transition:transform_var(--d2)_var(--ease-out),_box-shadow_var(--d2)_var(--ease-out),_border-color_var(--d2)_var(--ease-out)] hover:[transform:translateY(-2px)] hover:shadow-[var(--sh-2)] hover:border-[var(--star-border)] [&.selected]:border-[var(--accent-border)] [&.selected]:shadow-[0_10px_30px_-24px_var(--blue),0_0_0_2px_var(--selection-ring)] cursor-pointer [transition:border-color_var(--d1)_var(--ease-out),box-shadow_var(--d1)_var(--ease-out)] ${B===e?`selected`:``}`,onClick:()=>{V(e),Y(n?.defaultCwd||``)},children:[(0,j.jsxs)(`div`,{className:`provider-title [&_h2]:text-[14px] [&_p]:mt-[3px] [&_p]:text-[var(--text-secondary)] [&_p]:text-[12px] grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[10px] [margin-bottom:10px]`,children:[(0,j.jsx)(`span`,{className:`provider-icon [&_svg]:w-[19px] [&.green]:bg-[var(--success-soft)] [&.green]:text-[var(--success)] [&.blue]:bg-[var(--brand-blue-soft)] [&.blue]:text-[var(--brand-blue-strong)] [.notification-option_&:not(.blue)]:bg-[var(--surface-muted)] [.notification-option_&:not(.blue)]:text-[var(--text-muted)] grid w-[38px] h-[38px] place-items-center rounded-[var(--r-md)] ${t.tone}`,children:(0,j.jsx)(s,{})}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:ae(e,i)}),(0,j.jsx)(`p`,{children:N(e,i)})]}),(0,j.jsx)(b,{tone:o,children:I(r,i)})]}),(0,j.jsxs)(D,{variant:`control`,children:[i(`channels:channelsPage.twoWayCapability`),(0,j.jsx)(`span`,{className:`flex min-h-[31px] items-center overflow-hidden [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--surface-subtle)] [padding:0_9px] text-[var(--text-tertiary)] text-[12px] font-[400] text-ellipsis whitespace-nowrap`,children:P(e,i)})]}),(0,j.jsxs)(D,{variant:`control`,children:[i(`channels:channelsPage.replyModel`),(0,j.jsx)(`span`,{className:`flex min-h-[31px] items-center overflow-hidden [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--surface-subtle)] [padding:0_9px] text-[var(--text-tertiary)] text-[12px] font-[400] text-ellipsis whitespace-nowrap`,children:n?.replyModel?`${n.replyModel.provider}/${n.replyModel.model}`:i(`channels:channelsPage.useApplicationDefaultModel`)})]}),(0,j.jsxs)(a,{variant:n?`outline`:`default`,size:`lg`,className:`[margin-top:12px] w-full`,disabled:W===e,onClick:t=>{t.stopPropagation(),Z(e)},children:[W===e?(0,j.jsx)(v,{className:`animate-spin`,size:14}):(0,j.jsx)(ne,{size:14}),oe(e,!!n,i)]})]},e)})}),(0,j.jsxs)(`div`,{className:`two-one-grid max-[900px]:grid-cols-[1fr] grid gap-[12px] ${$?`grid-cols-[minmax(0,2fr)_minmax(260px,1fr)]`:`grid-cols-[1fr]`}`,children:[(0,j.jsxs)(T,{children:[(0,j.jsxs)(`div`,{className:`channel-section-head [&_>_span]:text-[var(--text-muted)] [&_>_span]:text-[13px] flex items-center justify-between gap-[8px] [margin-bottom:8px]`,children:[(0,j.jsx)(S,{title:i(`channels:channelsPage.channelChats`)}),(0,j.jsx)(`span`,{children:i(`channels:channelsPage.countLinked`,{count:f.scopes.length})})]}),f.scopes.length?f.scopes.map(e=>(0,j.jsxs)(`div`,{className:`route-row [&_div]:flex [&_div]:flex-col [&_div]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[9px] [border-top:1px_solid_var(--stroke-soft)] [padding:10px_2px]`,children:[(0,j.jsx)(`span`,{className:`route-icon grid w-[27px] h-[27px] place-items-center rounded-[var(--r-sm)] bg-[var(--accent-soft)] text-[var(--star-strong)]`,children:e.platform===`feishu`?(0,j.jsx)(E,{size:14}):e.platform===`telegram`?(0,j.jsx)(l,{size:14}):(0,j.jsx)(c,{size:14})}),(0,j.jsxs)(`div`,{className:`channel-route-copy [.route-row_&]:flex [.route-row_&]:min-w-0 [.route-row_&]:flex-col [.route-row_&]:gap-[3px] [&_strong]:overflow-hidden [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_small]:overflow-hidden [&_small]:text-ellipsis [&_small]:whitespace-nowrap`,children:[(0,j.jsxs)(`strong`,{children:[e.title,` `,(0,j.jsx)(b,{tone:e.platform===`feishu`||e.platform===`qq`||e.platform===`telegram`?`blue`:`green`,children:M(e.platform,i)})]}),(0,j.jsxs)(`small`,{children:[e.lastMessage||i(`channels:channelsPage.noMessages`),` ·`,` `,p(e.updatedAt,d)]}),(0,j.jsxs)(`small`,{children:[e.model||i(`channels:channelsPage.defaultModel`),` · `,e.cwd]})]}),(0,j.jsxs)(`div`,{className:`channel-route-controls [.route-row_&]:flex [.route-row_&]:flex-row [.route-row_&]:items-center [.route-row_&]:gap-[4px]`,children:[(0,j.jsx)(b,{tone:`green`,children:i(`channels:channelsPage.twoWay`)}),(0,j.jsx)(a,{variant:`destructive`,size:`icon`,title:i(`channels:channelsPage.resetChat`),"aria-label":`${i(`channels:channelsPage.resetChat`)}: ${e.title}`,onClick:()=>fe(e),children:(0,j.jsx)(u,{size:13})})]})]},e.key)):(0,j.jsxs)(`div`,{className:`channel-route-empty [&_strong]:mt-[9px] [&_strong]:text-[var(--text)] [&_strong]:text-[12px] [&_span]:mt-[4px] [&_span]:text-[13px] [&.compact]:min-h-[110px] [.workflow-assets-panel_&]:min-h-[150px] [.workflow-assets-panel_&]:border-0 [.workflow-assets-panel_&]:bg-transparent grid min-h-[185px] place-content-center justify-items-center text-[var(--text-muted)] text-center`,children:[(0,j.jsx)(O,{size:38}),(0,j.jsx)(`strong`,{children:i(`channels:channelsPage.waitingForTheFirstReplyFromAfar`)}),(0,j.jsx)(`span`,{children:i(`channels:channelsPage.onceConnectedMessagesFromSupportedChannelsWillArriveHereInPisper`)})]})]}),$&&(0,j.jsxs)(T,{className:`test-panel [&_>_p]:m-[8px_0_12px] [&_>_p]:text-[var(--text-secondary)] [&_>_p]:text-[12px] [&_>_p]:leading-[1.5]`,children:[(0,j.jsxs)(`div`,{className:`channel-section-head [&_>_span]:text-[var(--text-muted)] [&_>_span]:text-[13px] flex items-center justify-between gap-[8px] [margin-bottom:8px]`,children:[(0,j.jsx)(S,{title:i(`channels:channelsPage.nameSettings`,{name:M(B,i)})}),(0,j.jsx)(`span`,{children:N(B,i)})]}),(0,j.jsxs)(`div`,{className:`channel-live-status [&_>_div]:flex [&_>_div]:min-w-0 [&_>_div]:flex-col [&_>_div]:gap-[3px] [&_strong]:text-[13px] [&_small]:overflow-hidden [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_small]:text-ellipsis [&_small]:whitespace-nowrap flex items-center gap-[9px] [margin:11px_0_12px] [border:1px_solid_var(--stroke-soft)] rounded-[var(--r-sm)] bg-[var(--surface-subtle)] [padding:10px] ${$.status}`,children:[(0,j.jsx)(`span`,{className:`channel-status-dot [.channel-live-status.connected_&]:bg-[var(--status-green)] [.channel-live-status.connected_&]:shadow-[0_0_0_4px_var(--success-soft)] [.channel-live-status.connecting_&]:bg-[var(--amber)] [.channel-live-status.connecting_&]:shadow-[0_0_0_4px_var(--warning-soft)] [.channel-live-status.connecting_&]:[animation:pulse-dot_1.2s_infinite] [.channel-live-status.reconnecting_&]:bg-[var(--amber)] [.channel-live-status.reconnecting_&]:shadow-[0_0_0_4px_var(--warning-soft)] [.channel-live-status.reconnecting_&]:[animation:pulse-dot_1.2s_infinite] [.channel-live-status.failed_&]:bg-[var(--danger)] [.channel-live-status.failed_&]:shadow-[0_0_0_4px_var(--danger-soft)] w-[8px] h-[8px] [flex:0_0_auto] rounded-[var(--r-pill)] bg-[var(--status-muted)] shadow-[0_0_0_4px_var(--surface-muted)]`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`strong`,{children:I($.status,i)}),(0,j.jsx)(`small`,{children:$.lastError||($.status===`connected`?i(`channels:channelsPage.connectedTime`,{time:p($.connectedAt,d)}):i(`channels:channelsPage.establishingPersistentConnection`))})]})]}),(0,j.jsxs)(`div`,{className:`modal-toggle-row [&_>_span]:flex [&_>_span]:flex-col [&_>_span]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] dark:bg-[var(--surface-subtle)] flex min-h-[45px] items-center justify-between gap-[12px] [margin-top:10px] [border:1px_solid_var(--stroke-soft)] rounded-[var(--r-sm)] bg-[var(--surface-subtle)] [padding:8px_10px]`,children:[(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`strong`,{children:i(`channels:channelsPage.enableThisChannel`)}),(0,j.jsx)(`small`,{children:i(`channels:channelsPage.turnOffToDisconnectWhileKeepingSignInCredentials`)})]}),(0,j.jsx)(w,{value:$.enabled,disabled:K,ariaLabel:i(`channels:channelsPage.enableThisChannel`),onChange:e=>Q(B,{enabled:e},i(e?`channels:channelsPage.channelEnabled`:`channels:channelsPage.channelPaused`))})]}),(0,j.jsxs)(D,{variant:`control`,children:[i(`channels:channelsPage.replyModel`),(0,j.jsxs)(s,{value:$.replyModel?`${$.replyModel.provider}/${$.replyModel.model}`:``,onChange:e=>{let[t,...n]=e.target.value.split(`/`);Q(B,{replyModel:e.target.value?{provider:t,model:n.join(`/`)}:null},i(`channels:channelsPage.channelReplyModelUpdated`))},children:[(0,j.jsx)(`option`,{value:``,children:i(`channels:channelsPage.useApplicationDefaultModel`)}),f.models.map(e=>(0,j.jsx)(`option`,{value:`${e.provider}/${e.model}`,children:e.label},`${e.provider}/${e.model}`))]})]}),(0,j.jsxs)(D,{variant:`control`,children:[i(`channels:channelsPage.approvalMode`),(0,j.jsxs)(s,{value:$.executionMode,onChange:e=>Q(B,{executionMode:e.target.value},i(`channels:channelsPage.approvalModeUpdated`)),children:[(0,j.jsx)(`option`,{value:`approval-required`,children:i(`channels:channelsPage.approvalRequired`)}),(0,j.jsx)(`option`,{value:`workspace-write`,children:i(`channels:channelsPage.workspaceWrite`)}),(0,j.jsx)(`option`,{value:`full-access`,children:i(`channels:channelsPage.fullAccess`)})]})]}),(0,j.jsxs)(D,{variant:`control`,children:[i(`channels:channelsPage.executionMode`),(0,j.jsxs)(s,{value:$.runMode,onChange:e=>Q(B,{runMode:e.target.value},i(`channels:channelsPage.executionModeUpdated`)),children:[(0,j.jsx)(`option`,{value:`plan`,children:i(`channels:channelsPage.planMode`)}),(0,j.jsx)(`option`,{value:`goal`,children:i(`channels:channelsPage.goalMode`)}),(0,j.jsx)(`option`,{value:`team`,children:i(`channels:channelsPage.teamMode`)})]})]}),(0,j.jsxs)(D,{variant:`control`,children:[i(`channels:channelsPage.accessScope`),(0,j.jsxs)(s,{value:$.accessMode,onChange:e=>Q(B,{accessMode:e.target.value===`all`?`all`:`owner`},i(`channels:channelsPage.accessScopeUpdated`)),children:[(0,j.jsx)(`option`,{value:`owner`,disabled:!$.ownerConfigured,children:i(`channels:channelsPage.qrCodeOwnerOnly`)}),(0,j.jsx)(`option`,{value:`all`,children:i(B===`feishu`?`channels:channelsPage.allMembersInTheCurrentTenant`:B===`weixin`?`channels:channelsPage.allWeChatUsersWhoMessageTheBot`:`channels:channelsPage.allUsersWhoMessageTheBot`)})]})]}),(0,j.jsxs)(D,{variant:`control`,children:[i(`channels:channelsPage.defaultWorkingDirectoryForNewChats`),(0,j.jsxs)(`span`,{className:`channel-setting-input [&_input]:min-w-0 [&_input]:border-0 [&_input]:[outline:0] [&_input]:bg-transparent [&_input]:font-[ui-monospace,_SFMono-Regular,_Consolas,_'Liberation_Mono',_monospace] [&_input]:text-[12px] dark:[&_input]:bg-[var(--solid)] dark:[&_input]:text-[var(--text)] grid h-[34px] grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[7px] [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--surface-subtle)] [padding:3px_3px_3px_9px] text-[var(--text-muted)]`,children:[(0,j.jsx)(h,{size:13}),(0,j.jsx)(`input`,{value:J,onChange:e=>Y(e.target.value)}),(0,j.jsx)(a,{variant:`outline`,disabled:K||J===$.defaultCwd,onClick:()=>Q(B,{defaultCwd:J},i(`channels:channelsPage.defaultWorkingDirectorySaved`)),children:i(`channels:channelsPage.save`)})]})]}),(0,j.jsxs)(_,{children:[(0,j.jsx)(ee,{size:15}),(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`strong`,{children:i(`channels:channelsPage.localSecurityBoundary`)}),(0,j.jsx)(`small`,{children:i(`channels:channelsPage.ownerOnlyAccessRespectsToolPermissionsAndExecutionMode`)})]})]}),(0,j.jsxs)(`div`,{className:`mt-[15px] flex gap-2 max-[650px]:flex-wrap`,children:[(0,j.jsxs)(a,{variant:`outline`,size:`lg`,className:`bg-surface-subtle`,onClick:()=>ue(B),disabled:K,children:[(0,j.jsx)(v,{size:14}),i(`channels:channelsPage.reconnect`)]}),(0,j.jsxs)(a,{variant:`destructive`,size:`lg`,onClick:()=>de(B),children:[(0,j.jsx)(re,{size:14}),i(`channels:channelsPage.disconnect`)]})]})]})]}),H&&(0,j.jsx)(ce,{job:H,onClose:le,onRetry:()=>Z(H.platform),onSubmitCredentials:async t=>{try{let n=await r(`/api/channels/${H.platform}/onboarding`,{method:`POST`,body:JSON.stringify(t)});`connections`in n?(m(n),U(null),e(i(`channels:channelsPage.nameTwoWayConnectionEstablished`,{name:M(H.platform,i)})),await X()):`mode`in n&&n.mode===`manual`?U({...n,platform:H.platform,status:`starting`,manual:!0}):U({...n,platform:H.platform,manual:n.mode===`manual`})}catch(e){U(t=>t&&{...t,status:`failed`,error:z(e)})}},notify:e})]})}function ce({job:e,onClose:t,onRetry:n,onSubmitCredentials:i,notify:s}){let{t:c,language:l}=o(),[u,p]=(0,A.useState)(``),[h,g]=(0,A.useState)(``),[y,b]=(0,A.useState)(``),[S,C]=(0,A.useState)(``),[w,T]=(0,A.useState)(!1),E=[`completed`,`failed`,`cancelled`].includes(e.status),O=e.manual||F(e.platform)&&e.mode!==`qr`,k=e.platform===`qq`?!!(h.trim()&&(y.trim()||S.trim())):!!S.trim(),re=async()=>{if(k){T(!0);try{await i({...h.trim()?{appId:h.trim()}:{},...y.trim()?{appSecret:y.trim()}:{},...S.trim()?{token:S.trim()}:{}})}finally{T(!1)}}};return(0,j.jsx)(`div`,{className:`modal-backdrop max-[650px]:p-[8px] fixed z-[70] inset-0 grid place-items-center overflow-y-auto bg-[var(--modal-overlay)] [backdrop-filter:blur(3px)] [padding:20px] [overscroll-behavior:contain] [animation:fade-in_var(--d1)_var(--ease-out)]`,onMouseDown:e=>e.target===e.currentTarget&&t(),children:(0,j.jsxs)(`section`,{className:`modal !w-[min(430px,100%)] max-h-[calc(100dvh_-_40px)] overflow-y-auto [overscroll-behavior:contain] [border:1px_solid_var(--surface-highlight)] rounded-[var(--r-md)] bg-[var(--solid)] p-[18px] shadow-[0_26px_70px_-25px_var(--shadow-strong)] [animation:modal-in_var(--d2)_var(--ease-out)] max-[650px]:max-h-[calc(100dvh_-_16px)] feishu-onboard-modal w-[min(470px,100%)]`,children:[(0,j.jsxs)(x,{children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{children:c(O?`channels:channelsPage.configureName`:`channels:channelsPage.connectNameByQRCode`,{name:M(e.platform,c)})}),(0,j.jsx)(`p`,{children:e.platform===`feishu`?c(`channels:channelsPage.createTheBotAppThroughTheOfficialFeishuAuthorizationPage`):e.platform===`weixin`?c(`channels:channelsPage.signInToPersonalWeChatThroughTencentILinkBot`):e.platform===`qq`?c(`channels:channelsPage.scanWithQQToCreateOfficialBot`):c(`channels:channelsPage.enterBotCredentialsForName`,{name:M(e.platform,c)})})]}),(0,j.jsx)(a,{variant:`ghost`,size:`icon`,"aria-label":c(`channels:channelsPage.closeDialog`),onClick:t,children:(0,j.jsx)(d,{size:17})})]}),O&&!e.id&&!E&&(0,j.jsxs)(`div`,{className:`grid gap-[9px] [margin-top:14px]`,children:[e.platform===`qq`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(D,{variant:`control`,children:[c(`channels:channelsPage.qqAppId`),(0,j.jsx)(f,{value:h,onChange:e=>g(e.target.value)})]}),(0,j.jsxs)(D,{variant:`control`,children:[c(`channels:channelsPage.qqAppSecret`),(0,j.jsx)(f,{type:`password`,value:y,onChange:e=>b(e.target.value)})]}),(0,j.jsx)(`small`,{className:`text-[var(--text-muted)]`,children:c(`channels:channelsPage.qqCredentialsOrToken`)})]}),(0,j.jsxs)(D,{variant:`control`,children:[c(`channels:channelsPage.botToken`),(0,j.jsx)(f,{type:`password`,value:S,onChange:e=>C(e.target.value)})]}),e.setupUrl&&(0,j.jsxs)(_,{children:[e.qrDataUrl&&(0,j.jsx)(`img`,{src:e.qrDataUrl,alt:c(`channels:channelsPage.openOfficialSetupQRCode`),className:`h-[120px] w-[120px] rounded-[var(--r-sm)] bg-white p-1`}),(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`strong`,{children:c(`channels:channelsPage.officialSetupRequired`)}),(0,j.jsx)(`small`,{children:c(`channels:channelsPage.officialSetupInstructions`)}),(0,j.jsxs)(`a`,{href:e.setupUrl,target:`_blank`,rel:`noreferrer`,children:[c(`channels:channelsPage.openOfficialSetup`),(0,j.jsx)(m,{size:12})]})]})]}),(0,j.jsxs)(a,{size:`lg`,disabled:!k||w,onClick:()=>void re(),children:[w?(0,j.jsx)(v,{className:`animate-spin`,size:14}):(0,j.jsx)(ne,{size:14}),c(`channels:channelsPage.connect`)]})]}),(!O||e.id||E)&&(0,j.jsxs)(`div`,{className:`feishu-qr-stage [&_img]:w-[248px] [&_img]:max-w-[86%] [&_img]:[border:1px_solid_var(--stroke-soft)] [&_img]:rounded-[var(--r-md)] [&_img]:bg-[var(--lightbox-action-bg)] [&_img]:p-[8px] [&_img]:shadow-[0_12px_30px_-24px_var(--ink-strong)] [&_strong]:text-[13px] [&_p]:max-w-[330px] [&_p]:text-[var(--danger)] [&_p]:text-[12px] [&_p]:leading-[1.5] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&.completed]:text-[var(--success)] [&.failed]:text-[var(--danger)] flex min-h-[min(330px,52dvh)] flex-col items-center justify-center gap-[10px] [margin-top:14px] [border:1px_solid_var(--stroke-soft)] rounded-[var(--r-md)] bg-[linear-gradient(180deg,var(--surface-highlight),var(--surface-subtle))] [padding:18px] text-center ${e.status}`,children:[e.qrDataUrl?(0,j.jsx)(`img`,{src:e.qrDataUrl,alt:c(`channels:channelsPage.nameConnectionQRCode`,{name:M(e.platform,c)})}):e.status===`failed`?(0,j.jsx)(te,{size:42}):(0,j.jsx)(v,{className:`animate-spin`,size:32}),(0,j.jsx)(`strong`,{children:O&&!e.id?c(`channels:channelsPage.enterBotCredentialsForName`,{name:M(e.platform,c)}):L(e.status,c)}),e.error&&(0,j.jsx)(`p`,{children:e.error}),e.expireAt&&!E&&(0,j.jsx)(`small`,{children:c(`channels:channelsPage.qrCodeExpiresTime`,{time:R(e.expireAt,l)})})]}),e.needsVerifyCode&&(0,j.jsxs)(`div`,{className:`weixin-verify-code [&_input]:min-w-0 [&_input]:h-[34px] [&_input]:[border:1px_solid_var(--stroke)] [&_input]:rounded-[var(--r-sm)] [&_input]:bg-[var(--solid)] [&_input]:p-[0_10px] [&_input]:text-[var(--text)] [&_input]:font-[ui-monospace,_SFMono-Regular,_Consolas,_'Liberation_Mono',_monospace] [&_input]:text-[13px] [&_input]:tracking-[.08em] grid grid-cols-[minmax(0,1fr)_auto] gap-[7px] [margin-top:9px]`,children:[(0,j.jsx)(`input`,{value:u,onChange:e=>p(e.target.value.replace(/\D/g,``).slice(0,8)),placeholder:c(`channels:channelsPage.enterTheNumberShownOnYourPhone`)}),(0,j.jsx)(a,{size:`lg`,disabled:!u,onClick:async()=>{try{await r(`/api/channels/${e.platform}/onboarding/${encodeURIComponent(e.id||``)}/verify`,{method:`POST`,body:JSON.stringify({code:u})}),s(c(`channels:channelsPage.pairingCodeSubmitted`))}catch(e){s(z(e),`error`)}},children:c(`channels:channelsPage.submitPairingCode`)})]}),e.qrUrl&&!E&&(0,j.jsx)(a,{asChild:!0,variant:`outline`,size:`lg`,className:`[margin-top:9px] no-underline w-full bg-surface-subtle`,children:(0,j.jsxs)(`a`,{href:e.qrUrl,target:`_blank`,rel:`noreferrer`,children:[(0,j.jsx)(m,{size:14}),c(`channels:channelsPage.cannotScanOpenTheSignInLink`)]})}),(0,j.jsxs)(_,{children:[(0,j.jsx)(ee,{size:15}),(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`strong`,{children:c(`channels:channelsPage.persistentTwoWayConnection`)}),(0,j.jsx)(`small`,{children:e.platform===`feishu`?c(`channels:channelsPage.webSocketReceivesDirectMessagesAndGroupMentions`):e.platform===`weixin`?c(`channels:channelsPage.tencentILinkContinuouslyPollsDirectMessagesAndSupportsTextAndMediaReplies`):P(e.platform,c)})]})]}),(0,j.jsxs)(`div`,{className:`flex justify-end gap-[8px] [margin-top:18px]`,children:[(0,j.jsx)(a,{variant:`outline`,size:`lg`,className:`bg-surface-subtle`,onClick:t,children:c(E?`channels:channelsPage.off`:`channels:channelsPage.cancel`)}),e.status===`failed`&&(0,j.jsxs)(a,{size:`lg`,onClick:n,children:[(0,j.jsx)(v,{size:14}),c(O?`channels:channelsPage.retry`:`channels:channelsPage.generateANewQRCode`)]})]})]})})}export{B as ChannelsPage};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Threads-DPFx-jxG.js","assets/vendor-react-CHuvPdJE.js","assets/rolldown-runtime-B0Z9INg1.js","assets/utils-C8uzG5AZ.js","assets/vendor-ui-DvrYggeS.js","assets/use-animation-visibility-C-GENY2Z.js","assets/react-bits-DQli9s7O.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./vendor-react-CHuvPdJE.js";import{f as r}from"./vendor-router-Bw2aAdMs.js";import{t as i}from"./button-XhIEgIsg.js";import{t as a}from"./use-i18n-B2uTAjsJ.js";import"./collapsible-DjbBeRo0.js";import{a as o,n as s,r as c}from"./web-preview-panel-Dp5aIwsV.js";import{i as l,n as u,r as d,t as f}from"./tooltip-BIOYQmnq.js";import{t as p}from"./utils-C8uzG5AZ.js";import{t as m}from"./arrow-right-KWvgbo3p.js";import{t as h}from"./earth-DR_clkZ9.js";import{t as g}from"./loader-circle-72TYCcVQ.js";import{r as _}from"./client-store-TRnjrXTz.js";import{t as v}from"./input-D1QFzNMx.js";import{Dt as y,Pt as b,bt as x,xt as S}from"./index-BvVJkBr0.js";import{o as C}from"./shortcuts-BIzphxhz.js";import{t as w}from"./vendor-dockview-yY5mBM3U.js";var T=e(t(),1),E=n(),D=(0,T.createContext)(null),O=()=>{let e=(0,T.useContext)(D);if(!e)throw Error(`WebPreview components must be used within a WebPreview`);return e},k=({className:e,children:t,defaultUrl:n=``,onUrlChange:r,...i})=>{let[a,o]=(0,T.useState)(n),[s,c]=(0,T.useState)(!1),l=(0,T.useCallback)(e=>{o(e),r?.(e)},[r]),u=(0,T.useMemo)(()=>({consoleOpen:s,setConsoleOpen:c,setUrl:l,url:a}),[s,l,a]);return(0,E.jsx)(D.Provider,{value:u,children:(0,E.jsx)(`div`,{className:p(`flex size-full min-h-0 flex-col rounded-lg border bg-card`,e),...i,children:t})})},A=({className:e,children:t,...n})=>(0,E.jsx)(`div`,{className:p(`flex shrink-0 items-center gap-1 border-b p-2`,e),...n,children:t}),j=({onClick:e,disabled:t,tooltip:n,children:r,...a})=>(0,E.jsx)(d,{children:(0,E.jsxs)(f,{children:[(0,E.jsx)(l,{asChild:!0,children:(0,E.jsx)(i,{className:`size-8 p-0 hover:text-foreground`,disabled:t,onClick:e,size:`sm`,variant:`ghost`,...a,children:r})}),(0,E.jsx)(u,{children:(0,E.jsx)(`p`,{children:n})})]})}),M=({value:e,onChange:t,onKeyDown:n,...r})=>{let{url:i,setUrl:a}=O(),[o,s]=(0,T.useState)(i),[c,l]=(0,T.useState)(i);i!==o&&(s(i),l(i));let u=e=>{l(e.target.value),t?.(e)},d=(0,T.useCallback)(e=>{e.key===`Enter`&&a(e.target.value),n?.(e)},[n,a]);return(0,E.jsx)(v,{className:`h-8 flex-1 text-sm`,onChange:t??u,onKeyDown:d,placeholder:`Enter URL...`,value:e??c,...r})},N=({className:e,loading:t,src:n,...r})=>{let{url:i}=O();return(0,E.jsxs)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden bg-background`,children:[(0,E.jsx)(`iframe`,{className:p(`block size-full border-0 bg-background`,e),loading:`lazy`,sandbox:`allow-scripts allow-same-origin allow-forms allow-popups allow-presentation`,src:(n??i)||void 0,title:`Preview`,...r}),t]})},P=(0,T.lazy)(()=>r(()=>import(`./Threads-DPFx-jxG.js`).then(e=>({default:e.Threads})),__vite__mapDeps([0,1,2,3,4,5,6])));function F(e){return e?{entries:[e],index:0}:{entries:[],index:-1}}function I({params:e,api:t}){let{t:n}=a(),r=_(e?.url||``,window.location.href)||``,[i,o]=(0,T.useState)(()=>t.isVisible),[c,l]=(0,T.useState)(()=>F(r)),[u,d]=(0,T.useState)(0),[f,p]=(0,T.useState)(!!r),v=c.index>=0&&c.entries[c.index]||``;(0,T.useEffect)(()=>{o(t.isVisible);let e=t.onDidVisibilityChange(({isVisible:e})=>o(e));return()=>e.dispose()},[t]),(0,T.useEffect)(()=>{!r||r===v||(l(F(r)),d(0),p(!0))},[v,r]),(0,T.useEffect)(()=>{t.setTitle(s(v,n(`common:webPreview.title`)))},[t,v,n]);let S=(0,T.useCallback)(e=>{let n=_(e,v||window.location.href);!n||n===v||(l(e=>({entries:[...e.entries.slice(0,e.index+1),n],index:e.index+1})),t.updateParameters({url:n}),d(0),p(!0))},[t,v]),C=(0,T.useCallback)(e=>{let n=c.index+e;if(n<0||n>=c.entries.length)return;let r=c.entries[n];l(e=>({...e,index:n})),t.updateParameters({url:r}),p(!0)},[t,c]),w=(0,T.useCallback)(()=>{d(e=>e+1),p(!0)},[]),D=(0,T.useCallback)(()=>{v&&window.open(v,`_blank`,`noopener,noreferrer`)},[v]);return i?v?(0,E.jsx)(`div`,{className:`web-preview-panel [&_>_div]:rounded-[0] w-full h-full min-w-0 min-h-0 overflow-hidden bg-[var(--panel)]`,onFocusCapture:()=>t.setActive(),children:(0,E.jsxs)(k,{className:`rounded-none border-0`,defaultUrl:v,onUrlChange:S,children:[(0,E.jsxs)(A,{children:[(0,E.jsx)(j,{"aria-label":n(`common:webPreview.back`),disabled:c.index<=0,onClick:()=>C(-1),tooltip:n(`common:webPreview.back`),children:(0,E.jsx)(b,{})}),(0,E.jsx)(j,{"aria-label":n(`common:webPreview.forward`),disabled:c.index>=c.entries.length-1,onClick:()=>C(1),tooltip:n(`common:webPreview.forward`),children:(0,E.jsx)(m,{})}),(0,E.jsx)(j,{"aria-label":n(`common:webPreview.reload`),onClick:w,tooltip:n(`common:webPreview.reload`),children:(0,E.jsx)(x,{})}),(0,E.jsxs)(`div`,{className:`web-preview-address [&_>_svg]:w-[14px] [&_>_svg]:h-[14px] [&_>_svg]:flex-none [&_>_svg]:text-[var(--text-muted)] flex min-w-0 flex-1 items-center gap-[7px] [margin:0_3px]`,children:[(0,E.jsx)(h,{"aria-hidden":`true`}),(0,E.jsx)(M,{"aria-label":n(`common:webPreview.url`),placeholder:n(`common:webPreview.urlPlaceholder`)})]}),(0,E.jsx)(j,{"aria-label":n(`common:webPreview.openExternal`),onClick:D,tooltip:n(`common:webPreview.openExternal`),children:(0,E.jsx)(y,{})})]}),(0,E.jsx)(N,{onLoad:()=>p(!1),src:v,title:n(`common:webPreview.title`),loading:f?(0,E.jsxs)(`div`,{className:`absolute inset-0 grid place-items-center overflow-hidden bg-[color-mix(in_srgb,var(--panel)_86%,transparent)] text-[var(--text-muted)] text-[12px] [backdrop-filter:blur(3px)]`,children:[(0,E.jsx)(T.Suspense,{fallback:null,children:(0,E.jsx)(P,{})}),(0,E.jsxs)(`span`,{className:`relative z-[1] flex items-center gap-[8px] [border:1px_solid_var(--stroke-soft)] rounded-[var(--r-pill)] bg-[color-mix(in_srgb,var(--panel)_82%,transparent)] [padding:7px_11px] shadow-[var(--sh-1)]`,children:[(0,E.jsx)(g,{className:`animate-spin`,size:18}),(0,E.jsx)(`span`,{children:n(`common:webPreview.loading`)})]})]}):null},`${v}:${u}`),(0,E.jsx)(`div`,{className:`flex-none [border-top:1px_solid_var(--stroke-soft)] bg-[var(--surface-subtle)] [padding:5px_10px] text-[var(--text-muted)] text-[10px] leading-[1.4]`,children:n(`common:webPreview.embedNotice`)})]},`${c.index}:${v}`)}):(0,E.jsxs)(`div`,{className:`web-preview-panel [&_>_div]:rounded-[0] w-full h-full min-w-0 min-h-0 overflow-hidden bg-[var(--panel)] web-preview-empty [&_strong]:text-[var(--text)] [&_strong]:text-[13px] flex flex-col items-center justify-center gap-[8px] text-[var(--text-muted)]`,onFocusCapture:()=>t.setActive(),children:[(0,E.jsx)(h,{size:24}),(0,E.jsx)(`strong`,{children:n(`common:webPreview.title`)})]}):null}function L({compactDock:e,onDockReady:t,getTabContextMenuItems:n,createSession:r}){let{t:i}=a(),s=C(`primaryAction`),l=(0,T.useMemo)(()=>function({group:e}){let t=i(`navigation:pageHeader.newChat`);return(0,E.jsx)(`button`,{type:`button`,className:`dock-new-session hover:bg-[var(--surface-hover)] hover:text-[var(--text)] focus-visible:relative focus-visible:z-[1] focus-visible:[outline:2px_solid_var(--focus)] focus-visible:[outline-offset:-2px] grid w-[36px] h-[35px] flex-none place-items-center border-0 [border-left:1px_solid_var(--stroke-soft)] bg-transparent text-[var(--text-muted)] cursor-pointer`,title:t,"aria-label":t,onPointerDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),r(e)},children:(0,E.jsx)(S,{size:15})})},[r,i]),u=(0,T.useMemo)(()=>({session:o,webPreview:I}),[]),d=(0,T.useMemo)(()=>function(){return(0,E.jsx)(c,{onNewSession:()=>r(),newSessionShortcut:s})},[r,s]);return(0,E.jsx)(w,{className:`dockview-theme-light dockview-theme-pisper`,components:u,watermarkComponent:d,leftHeaderActionsComponent:l,onReady:t,getTabContextMenuItems:n,disableFloatingGroups:!0,disableDnd:e,noPanelsOverlay:`watermark`})}export{L as ChatDockView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./vendor-react-CHuvPdJE.js";import{t as r}from"./api-CmPTEiOc.js";import{n as i,t as a}from"./button-XhIEgIsg.js";import{t as o}from"./use-i18n-B2uTAjsJ.js";import{t as s}from"./utils-C8uzG5AZ.js";import{t as c}from"./storage-BE5DCCG3.js";import{n as l,r as u,t as d}from"./panel-top-CA2GX1Rj.js";import{t as f}from"./panel-left-CVuoi3zo.js";import{t as p}from"./pencil-CxA1IK0x.js";import{t as m}from"./trash-2-mhzzyC6i.js";import{$ as h,At as g,B as _,H as v,K as y,U as b,V as x,bt as S,i as C,q as w,r as T,t as E,wt as D}from"./index-BvVJkBr0.js";/* empty css */import{t as O}from"./StarOrbit-BlI6MhVr.js";import{t as k}from"./brand-DIEc3fK8.js";var A=i(`rotate-ccw-clock`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),j=e(t(),1),M=n();function N({className:e,onPointerMove:t,...n}){let r=(0,j.useCallback)(e=>{let n=e.currentTarget.getBoundingClientRect();e.currentTarget.style.setProperty(`--rb-spotlight-x`,`${e.clientX-n.left}px`),e.currentTarget.style.setProperty(`--rb-spotlight-y`,`${e.clientY-n.top}px`),t?.(e)},[t]);return(0,M.jsx)(`div`,{className:s(`rb-spotlight-card`,e),onPointerMove:r,...n})}function P({query:e,navigate:t,notify:n,requestConfirm:i,requestText:s}){let{t:P,language:F}=o(),[I,L]=(0,j.useState)([]),[R,z]=(0,j.useState)(()=>localStorage.getItem(c.activeSession)||``),[B,V]=(0,j.useState)(!0),[H,U]=(0,j.useState)(``),W=(0,j.useCallback)(async()=>{V(!0),U(``);try{let e=await r(`/api/sessions`);L([...e.sessions||[]].sort((e,t)=>Date.parse(t.modified||``)-Date.parse(e.modified||``)))}catch(e){U(e instanceof Error?e.message:String(e))}finally{V(!1)}},[]);(0,j.useEffect)(()=>(document.title=`${P(`chat:chatHistoryPage.chatHistory`)} · ${k}`,()=>{document.title=k}),[P]),(0,j.useEffect)(()=>{W();let e=()=>W(),t=e=>z(e.detail?.id||localStorage.getItem(c.activeSession)||``);return window.addEventListener(b,e),window.addEventListener(v,t),()=>{window.removeEventListener(b,e),window.removeEventListener(v,t)}},[W]);let G=(0,j.useMemo)(()=>{let t=e.trim().toLowerCase();return t?I.filter(e=>`${e.name||``} ${e.firstMessage||``} ${e.cwd||``} ${e.model||``}`.toLowerCase().includes(t)):I},[e,I]),K=(e,n=`open`)=>{h(e,n),t(`chat`)},q=async e=>{let t=await s({title:P(`chat:chatHistoryPage.renameChat`),inputLabel:P(`chat:chatHistoryPage.chatTitle`),value:e.name,confirmLabel:P(`chat:chatHistoryPage.save`)});if(t!==null&&t!==e.name)try{let i=await r(`/api/sessions/${encodeURIComponent(e.id)}`,{method:`PATCH`,body:JSON.stringify({name:t})});L(t=>t.map(t=>t.id===e.id?{...t,name:i.name}:t)),w(),n(P(`chat:chatHistoryPage.chatTitleUpdated`))}catch(e){U(e instanceof Error?e.message:String(e))}},J=async e=>{if(await i({title:P(`chat:chatHistoryPage.deleteChat`),message:P(`chat:chatHistoryPage.deleteChatNameThisAlsoRemovesLocalChatHistory`,{name:e.name}),confirmLabel:P(`chat:chatHistoryPage.delete`)}))try{await r(`/api/sessions/${encodeURIComponent(e.id)}`,{method:`DELETE`});let t=I.filter(t=>t.id!==e.id);if(L(t),R===e.id){let e=t[0]?.id||``;z(e),e?localStorage.setItem(c.activeSession,e):localStorage.removeItem(c.activeSession),y(e)}w(),n(P(`chat:chatHistoryPage.chatDeleted`))}catch(e){U(e instanceof Error?e.message:String(e))}};return(0,M.jsxs)(`div`,{className:`flex min-h-[100%] flex-col gap-[12px]`,children:[(0,M.jsxs)(`div`,{className:`chat-history-summary [&_>_div]:flex [&_>_div]:min-w-0 [&_>_div]:items-center [&_>_div]:gap-[10px] [&_>_div]:text-[var(--star-strong)] [&_>_div_>_span]:flex [&_>_div_>_span]:min-w-0 [&_>_div_>_span]:flex-col [&_>_div_>_span]:gap-[2px] [&_strong]:text-[var(--text)] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[11px] flex min-h-[52px] items-center justify-between gap-[12px] [border:1px_solid_var(--stroke)] rounded-[var(--r-md)] bg-[var(--panel)] [padding:8px_10px_8px_14px] shadow-[var(--sh-1)]`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(A,{size:18}),(0,M.jsxs)(`span`,{children:[(0,M.jsx)(`strong`,{children:P(`chat:chatHistoryPage.countChatHistoryItems`,{count:I.length})}),(0,M.jsx)(`small`,{children:e?P(`chat:chatHistoryPage.countCurrentlyFiltered`,{count:G.length}):P(`chat:chatHistoryPage.sortedByMostRecentlyUpdated`)})]})]}),(0,M.jsxs)(a,{variant:`outline`,size:`lg`,className:`bg-surface-subtle`,onClick:W,disabled:B,children:[(0,M.jsx)(S,{className:B?`animate-spin`:``,size:14}),P(`chat:chatHistoryPage.refresh`)]})]}),H&&(0,M.jsx)(C,{children:H}),B&&!I.length?(0,M.jsxs)(T,{children:[(0,M.jsx)(S,{className:`animate-spin`,size:22}),(0,M.jsx)(`h2`,{children:P(`chat:chatHistoryPage.loadingChatHistory`)})]}):G.length?(0,M.jsx)(E,{className:`chat-history-list overflow-hidden !p-[5px]`,children:G.map(e=>(0,M.jsxs)(N,{className:`chat-history-row [.chat-history-row_+_&]:[border-top:1px_solid_var(--stroke-soft)] hover:bg-[var(--surface-subtle)] [&.active]:bg-[var(--surface-subtle)] [&.active]:shadow-[inset_3px_0_var(--brand-blue)] grid grid-cols-[minmax(0,1fr)_auto] items-center rounded-[var(--r-sm)] ${e.id===R?`active`:``}`,children:[(0,M.jsxs)(`button`,{className:`chat-history-open [&_>_svg]:text-[var(--text-muted)] max-[650px]:grid-cols-[32px_minmax(0,1fr)_auto] grid w-full min-w-0 min-h-[72px] grid-cols-[34px_minmax(0,1fr)_auto_auto] items-center gap-[10px] border-0 bg-transparent [padding:9px_10px] text-left`,onClick:()=>K(e.id),children:[(0,M.jsx)(`span`,{className:`grid w-[32px] h-[32px] place-items-center rounded-[var(--r-sm)] bg-[var(--star-soft)] text-[var(--star-strong)]`,children:(0,M.jsx)(D,{size:15})}),(0,M.jsxs)(`span`,{className:`chat-history-copy [&_strong]:overflow-hidden [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_>_span]:overflow-hidden [&_>_span]:text-ellipsis [&_>_span]:whitespace-nowrap [&_small]:overflow-hidden [&_small]:text-ellipsis [&_small]:whitespace-nowrap [&_strong]:text-[var(--text)] [&_strong]:text-[13px] [&_>_span]:text-[var(--text-soft)] [&_>_span]:text-[12px] [&_small]:text-[var(--text-muted)] [&_small]:text-[11px] max-[650px]:[&_>_span]:max-w-[54vw] flex min-w-0 flex-col gap-[3px]`,children:[(0,M.jsx)(`strong`,{title:e.name||P(`chat:chatHistoryPage.untitledChat`),children:e.name||P(`chat:chatHistoryPage.untitledChat`)}),(0,M.jsx)(`span`,{children:e.firstMessage||P(`chat:chatHistoryPage.noMessageSummary`)}),(0,M.jsxs)(`small`,{children:[x(e.cwd,F),e.model&&!/(^|\/)unknown$/i.test(String(e.model))?` · ${String(e.model).split(`/`).at(-1)}`:``,e.streaming?` · ${P(`chat:chatHistoryPage.agentRunning`)}`:``]})]}),(0,M.jsxs)(`span`,{className:`chat-history-meta [&_strong]:text-[var(--text-soft)] [&_strong]:text-[11px] [&_small]:text-[var(--text-muted)] [&_small]:text-[10px] max-[650px]:hidden flex min-w-[92px] flex-col items-end gap-[3px]`,children:[(0,M.jsx)(`strong`,{children:P(`chat:chatHistoryPage.countMessages`,{count:e.messageCount||0})}),(0,M.jsx)(`small`,{children:_(e.modified,F)})]}),(0,M.jsx)(g,{size:15})]}),(0,M.jsxs)(`div`,{className:`chat-history-actions [&_button]:grid [&_button]:w-[30px] [&_button]:h-[30px] [&_button]:min-h-[30px] [&_button]:place-items-center [&_button]:border-0 [&_button]:rounded-[var(--r-xs)] [&_button]:bg-transparent [&_button]:text-[var(--text-muted)] [&_button:hover]:bg-[var(--solid)] [&_button:hover]:text-[var(--text)] [&_button.active]:bg-[var(--star-soft)] [&_button.active]:text-[var(--star-strong)] [&_button.danger:hover]:bg-[var(--danger-soft)] [&_button.danger:hover]:text-[var(--danger)] max-[650px]:pr-[4px] flex items-center gap-[2px] [padding-right:8px]`,children:[(0,M.jsx)(`button`,{title:P(`chat:chatHistoryPage.splitToLeft`),"aria-label":P(`chat:chatHistoryPage.splitNameToTheLeft`,{name:e.name}),onClick:()=>K(e.id,`left`),children:(0,M.jsx)(f,{size:14})}),(0,M.jsx)(`button`,{title:P(`chat:chatHistoryPage.splitToRight`),"aria-label":P(`chat:chatHistoryPage.splitNameToTheRight`,{name:e.name}),onClick:()=>K(e.id,`right`),children:(0,M.jsx)(l,{size:14})}),(0,M.jsx)(`button`,{title:P(`chat:chatHistoryPage.splitToTop`),"aria-label":P(`chat:chatHistoryPage.splitNameToTheTop`,{name:e.name}),onClick:()=>K(e.id,`above`),children:(0,M.jsx)(d,{size:14})}),(0,M.jsx)(`button`,{title:P(`chat:chatHistoryPage.splitToBottom`),"aria-label":P(`chat:chatHistoryPage.splitNameToTheBottom`,{name:e.name}),onClick:()=>K(e.id,`below`),children:(0,M.jsx)(u,{size:14})}),(0,M.jsx)(`button`,{title:P(`chat:chatHistoryPage.renameChat`),"aria-label":P(`chat:chatHistoryPage.renameChat`),onClick:()=>q(e),children:(0,M.jsx)(p,{size:14})}),(0,M.jsx)(`button`,{className:`danger`,title:P(`chat:chatHistoryPage.deleteChat`),"aria-label":P(`chat:chatHistoryPage.deleteChat`),onClick:()=>J(e),children:(0,M.jsx)(m,{size:14})})]})]},e.id))}):(0,M.jsxs)(T,{children:[(0,M.jsx)(O,{size:48}),(0,M.jsx)(`h2`,{children:P(e?`chat:chatHistoryPage.noMatchingConversations`:`chat:chatHistoryPage.noConversationsHaveLeftAnEchoYet`)}),(0,M.jsx)(`p`,{children:P(e?`chat:chatHistoryPage.tryADifferentSearch`:`chat:chatHistoryPage.onceAConversationBeginsItWillBeQuietlyGatheredHere`)})]})]})}export{P as ChatHistoryPage};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mobile-remote-fallback-JvG4VcPg.js","assets/storage-BE5DCCG3.js","assets/ChatDockView-wwQKATRH.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-CHuvPdJE.js","assets/vendor-router-Bw2aAdMs.js","assets/button-XhIEgIsg.js","assets/vendor-ui-DvrYggeS.js","assets/utils-C8uzG5AZ.js","assets/use-i18n-B2uTAjsJ.js","assets/vendor-state-DE1O_s6m.js","assets/collapsible-DjbBeRo0.js","assets/es2015-0VLo_afz.js","assets/dist-CISIC3_f.js","assets/web-preview-panel-Dp5aIwsV.js","assets/chat-api-B4XafR63.js","assets/api-CmPTEiOc.js","assets/use-mobile-DikQ1IYz.js","assets/AppSelect-v2NUOzRf.js","assets/check-jIXqkGKr.js","assets/chevron-down-DT6AXwTP.js","assets/index-BvVJkBr0.js","assets/dist-DOR8kAEV.js","assets/separator-COSHUqEJ.js","assets/tooltip-BIOYQmnq.js","assets/panel-left-CVuoi3zo.js","assets/client-store-TRnjrXTz.js","assets/x-bw26XDZM.js","assets/input-D1QFzNMx.js","assets/index-DTit-2OA.css","assets/progress-493FBtJ4.js","assets/scroll-area-CrWpxKGa.js","assets/circle-dot-rl11gaty.js","assets/code-xml-Z4K2ea1N.js","assets/file-C8GNXmhJ.js","assets/loader-circle-72TYCcVQ.js","assets/panel-top-CA2GX1Rj.js","assets/paperclip-BMRj9kRG.js","assets/pencil-CxA1IK0x.js","assets/play-N6mg4pFl.js","assets/send-DcLH_sg0.js","assets/shield-check-BQHFfxVy.js","assets/square-BZ3Bi3O-.js","assets/tag-Csd134FL.js","assets/trash-2-mhzzyC6i.js","assets/wrench-BqeVhocX.js","assets/shortcuts-BIzphxhz.js","assets/vendor-motion-XxgxfZSY.js","assets/MarkdownMessage-ickiT81L.js","assets/copy-DS-8Hh_R.js","assets/vendor-markdown-plugins-Wv1dLaAO.js","assets/vendor-shiki-runtime-CxE5QolQ.js","assets/vendor-markdown-plugins-DEcVZfaU.css","assets/vendor-markdown-K9KdiImV.js","assets/alert-B7D8joCd.js","assets/tool-labels-BJhLig5u.js","assets/welcome-brand-W7Ox3fri.js","assets/abort-signal-D0GPd1Mw.js","assets/speech-session-UGYrCHlP.js","assets/arrow-right-KWvgbo3p.js","assets/earth-DR_clkZ9.js","assets/vendor-dockview-yY5mBM3U.js","assets/vendor-dockview-D5adAaCg.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./vendor-react-CHuvPdJE.js";import{f as r}from"./vendor-router-Bw2aAdMs.js";import{t as i}from"./chat-api-B4XafR63.js";import{a,n as o,t as s}from"./api-CmPTEiOc.js";import{t as c}from"./use-i18n-B2uTAjsJ.js";import{r as l}from"./use-mobile-DikQ1IYz.js";import{S as u,_ as d,b as f,c as p,d as m,f as h,g,h as _,i as v,l as y,m as b,n as x,o as S,p as C,s as w,t as T,u as E,v as D,x as O,y as k}from"./web-preview-panel-Dp5aIwsV.js";import{t as A}from"./storage-BE5DCCG3.js";import{t as j}from"./WorkspacePicker-D766UTlt.js";import{t as M}from"./client-store-TRnjrXTz.js";import{G as N,K as P,V as F,W as I,X as L,Y as R,at as z,bt as B,ct as ee,it as V,lt as te,nt as H,ot as U,q as ne,r as re,rt as ie,st as ae,tt as oe}from"./index-BvVJkBr0.js";import{t as W}from"./usePagePrimaryAction-Bw0OFTDZ.js";import{t as G}from"./brand-DIEc3fK8.js";import{n as K,t as q}from"./pick-system-directory-BnIFt85A.js";var J=e(t(),1);function Y(e,t){let n=new Set(t.map(e=>e.id)),r=e.filter(e=>!n.has(e.id));return[...t,...r]}function X(e){for(let t of e){let e=typeof t.cwd==`string`?t.cwd.trim():``;if(e)return e}return``}function se(e,t){return!e||t?.paired===!0&&t.mode===`remote`}function ce(e,t,n=!0){return e||(n?X(t):``)}function le({notify:e}){let{t}=c(),[n,a]=(0,J.useState)([]),[o,s]=(0,J.useState)(()=>localStorage.getItem(A.activeSession)||``),[l,d]=(0,J.useState)({}),[f,p]=(0,J.useState)(!0),[m,h]=(0,J.useState)(``),[g,v]=(0,J.useState)(()=>t(`chat:chatPage.waitingForConfiguration`)),[x,S]=(0,J.useState)([]),C=(0,J.useRef)(n),w=(0,J.useRef)(l),T=(0,J.useRef)(new Map),E=(0,J.useRef)(null),O=(0,J.useCallback)(e=>{let t=C.current,n=typeof e==`function`?e(t):e;return C.current=n,a(n),n},[]),k=(0,J.useCallback)(e=>{let t=w.current;w.current=e,d(e);let n=new Set([...Object.keys(t),...Object.keys(e)]);for(let r of n){if(t[r]===e[r])continue;let n=T.current.get(r);if(n)for(let e of[...n])e()}},[]),j=(0,J.useCallback)((e,t)=>{let n=T.current.get(e)||new Set;return n.add(t),T.current.set(e,n),()=>{n.delete(t),n.size||T.current.delete(e)}},[]),M=(0,J.useCallback)(e=>w.current[e]||b,[]),N=(0,J.useCallback)((e,t)=>{if(!e)return;let n=w.current,r=n[e]||b,i=_(r,t);i!==r&&k({...n,[e]:i})},[k]),F=(0,J.useCallback)((e,{panelOpen:t=!1,localStreamOwned:n=!1}={})=>{if(!e||t||n)return!1;let r=w.current,i=r[e];if(!i||D(i))return!1;let a={...r};return delete a[e],k(a),!0},[k]),I=(0,J.useCallback)(async(e,{preserveExistingOnEmpty:t=!1}={})=>{let n=await i.listSessions(),r=t&&!n.sessions.length&&C.current.length?C.current:n.sessions;return O(r),s(e||(e=>r.some(t=>t.id===e)?e:r[0]?.id||``)),ne(),r},[O]),L=(0,J.useCallback)((n=``,{inheritRecentCwd:r=!0}={})=>{if(E.current)return E.current;let a=(async()=>{try{h(``);let a=await i.createSession(t(`chat:chatPage.newChat`),ce(n,C.current,r));s(a.id),O(e=>Y(e,[a])),N(a.id,{messages:[],tools:[],approvals:[],queuedInputs:[],permissionMode:a.permissionMode||`ask`,executionMode:a.executionMode||`approval-required`,runMode:a.runMode||`plan`,goal:a.goal||null,plan:u(a,null),contextUsage:a.contextUsage||null,sessionUsage:a.sessionUsage||null,compaction:null,streaming:!1,error:``,loaded:!0,pageSize:40,messageStart:0,hasOlder:!1,olderCursor:null,runStartedAt:null,lastActivityAt:null,runFinishedAt:null,runStopped:!1,runNotice:``});try{await I(a.id)}catch(e){h(t(`chat:chatPage.theChatWasCreatedButTheListCouldNotBeRefreshedError`,{error:y(e)}))}return e(t(`chat:chatPage.newChatCreated`)),a.id}catch(e){return h(y(e)),``}})();return E.current=a,a.finally(()=>{E.current===a&&(E.current=null)}),a},[e,I,t,N,O]);(0,J.useEffect)(()=>{let n=!0;return Promise.all([i.listSessions({refresh:!1}),i.getConfig()]).then(async([a,o])=>{if(!n)return;v(o.model?`${o.provider}/${o.model}`:t(`chat:chatPage.noModelConfigured`)),S(o.providers.flatMap(e=>e.configured&&e.enabled?e.models.filter(e=>e.kind===`chat`).map(t=>({key:`${e.id}/${t.id}`,provider:e.id,modelId:t.id,label:t.name||t.id,providerName:e.name||e.id})):[]));let c=a.sessions;if(!c.length&&(E.current||Object.keys(w.current).length)){if(await E.current,!n)return;c=(await i.listSessions()).sessions}if(c.length||(c=[await i.createSession(t(`chat:chatPage.newChat`))]),!n)return;O(e=>Y(e,c));for(let e of c)N(e.id,{team:e.team||null,agents:e.agents||[],plan:u(e,null),...e.streaming?{streaming:!0,recovering:!0,loaded:!1,error:``}:{}});let l=localStorage.getItem(A.activeSession),d=new Set([...c.map(e=>e.id),...Object.keys(w.current)]);if(s(e=>d.has(e)?e:l&&d.has(l)?l:c[0]?.id||``),typeof window<`u`&&window.__PISPER_MOBILE_APP__)try{let{consumeRemoteFallbackNotice:n}=await r(async()=>{let{consumeRemoteFallbackNotice:e}=await import(`./mobile-remote-fallback-JvG4VcPg.js`);return{consumeRemoteFallbackNotice:e}},__vite__mapDeps([0,1]));n()&&e(t(`chat:chatPage.remoteUnavailableSwitchedToLocal`))}catch{}}).catch(async e=>{if(n){if(typeof window<`u`&&window.__PISPER_MOBILE_APP__)try{let{fallbackRemoteToLocalAfterFailure:t}=await r(async()=>{let{fallbackRemoteToLocalAfterFailure:e}=await import(`./mobile-remote-fallback-JvG4VcPg.js`);return{fallbackRemoteToLocalAfterFailure:e}},__vite__mapDeps([0,1]));if(await t(e))return}catch{}n&&h(y(e))}}).finally(()=>n&&p(!1)),()=>{n=!1}},[e,t,N,O]),(0,J.useEffect)(()=>{o&&localStorage.setItem(A.activeSession,o)},[o]);let R=n.find(e=>e.id===o),z=(l[o]||b).model||R?.model||``;return(0,J.useEffect)(()=>{P(o,z)},[o,z]),(0,J.useEffect)(()=>(document.title=R?.name?`${R.name} · ${G}`:G,()=>{document.title=G}),[R?.name]),{sessions:n,sessionsRef:C,activeId:o,setActiveId:s,sessionStates:l,sessionStatesRef:w,loading:f,globalError:m,setGlobalError:h,defaultModel:g,availableModels:x,updateSessions:O,replaceSessionStates:k,updateSessionState:N,releaseSessionState:F,subscribeSessionState:j,getSessionState:M,refreshSessions:I,createSessionRecord:L}}function ue({sessions:e,sessionsRef:t,sessionStates:n,activeId:r,setActiveId:i,loading:a,localStreamSessionsRef:o,loadSessionMessages:l,releaseSessionState:u,singleSessionLayout:d,notify:f}){let{t:p}=c(),[m,h]=(0,J.useState)(0),g=(0,J.useRef)(d);g.current=d;let[_,v]=(0,J.useState)(()=>window.matchMedia(`(max-width: 900px)`).matches),y=(0,J.useRef)(null),b=(0,J.useRef)(!1),S=(0,J.useRef)([]),C=(0,J.useRef)(void 0),w=(0,J.useRef)(null),E=(0,J.useRef)(null),D=(0,J.useRef)(null),O=(0,J.useRef)(_),k=(0,J.useRef)(null),j=(0,J.useRef)(!1),[M,P]=(0,J.useState)(null),[F,I]=(0,J.useState)(!1),[R,B]=(0,J.useState)([]);(0,J.useEffect)(()=>{!d||!r||B(e=>e.includes(r)?e:[...e,r])},[r,d]);let ne=(0,J.useMemo)(()=>{let t=new Set(e.map(e=>e.id));return[...R,...ae(M?.layout),r].filter((e,n,r)=>e&&t.has(e)&&r.indexOf(e)===n)},[r,R,e,M]);(0,J.useEffect)(()=>{let e=!0;return s(`/api/settings/chat-dock-layout`).then(t=>{e&&(P(z(t)),I(!0))}).catch(()=>{e&&I(!0)}),()=>{e=!1}},[]),(0,J.useEffect)(()=>{let e=window.matchMedia(`(max-width: 900px)`),t=()=>{O.current=e.matches,v(e.matches)};return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let re=(0,J.useCallback)(()=>{j.current||(j.current=!0,(async()=>{do{for(;k.current;){let e=k.current;k.current=null;try{await s(`/api/settings/chat-dock-layout`,{method:`PUT`,body:e})}catch{}}j.current=!1,k.current&&(j.current=!0)}while(j.current)})())},[]),W=(0,J.useCallback)(e=>{k.current=e,re()},[re]),G=(0,J.useCallback)((e=y.current)=>{if(!b.current)return!1;window.clearTimeout(C.current),C.current=void 0;let t=w.current;if(e)try{let n=oe(e.toJSON(),e.activePanel?.id||``);t=JSON.stringify(n)}catch{}return t?(W(t),w.current=null,!0):!1},[W]),K=(0,J.useCallback)((e=y.current)=>{if(!e||!b.current)return;let t;try{t=JSON.stringify(oe(e.toJSON(),e.activePanel?.id||``))}catch{return}w.current=t,window.clearTimeout(C.current),C.current=window.setTimeout(()=>{C.current=void 0,!(!b.current||y.current!==e)&&(W(t),w.current===t&&(w.current=null))},180)},[W]),q=(0,J.useCallback)((e,n=`open`)=>{if(g.current)return e&&B(t=>t.includes(e)?t:[...t,e]),i(e),!0;let r=t.current.find(t=>t.id===e),a=y.current;if(!r||!a||!b.current)return E.current={sessionId:e,disposition:n},!1;let o=O.current?`open`:n,s=V(e),c=a.getPanel(s),u=a.activePanel;if(c)return o!==`open`&&(u&&c.id!==u.id?c.api.moveTo({group:u.group,position:H(o)}):c.group.size>1&&c.api.moveTo({group:c.group,position:H(o)})),c.api.setActive(),i(e),!0;let d=o===`open`?a.activeGroup?{referenceGroup:a.activeGroup}:void 0:u?{referencePanel:u,direction:o}:{direction:o};return a.addPanel({id:s,component:`session`,title:r.name||p(`chat:chatPage.untitledChat`),params:{sessionId:e},renderer:`always`,minimumWidth:300,minimumHeight:240,...d?{position:d}:{}}),i(e),l(e,{limit:40}),!0},[l,t,i,p]),Y=(0,J.useCallback)(e=>{let t=y.current;if(!t||!b.current)return D.current=e,!1;let n=t.getPanel(T),r=x(e.url,p(`common:webPreview.title`));if(n)return n.api.updateParameters({url:e.url}),n.api.setTitle(r),n.api.setActive(),!0;let i=t.activePanel,a=O.current?t.activeGroup?{referenceGroup:t.activeGroup}:void 0:i?{referencePanel:i,direction:`right`}:{direction:`right`};return t.addPanel({id:T,component:`webPreview`,title:r,params:{url:e.url},renderer:`always`,minimumWidth:360,...a?{position:a}:{}}),!0},[p]),X=(0,J.useCallback)((e,t)=>{let n=y.current?.getPanel(e);if(n){if(O.current){f(p(`chat:chatPage.onNarrowScreensChatsStayInASingleTabGroup`),`info`);return}if(n.group.size<=1){f(p(`chat:chatPage.thisGroupHasOnlyOneChatChooseAnotherChatFromTheSessionListToCreateASplit`),`info`);return}n.api.moveTo({group:n.group,position:H(t)}),n.api.setActive()}},[f,p]),se=(0,J.useCallback)(e=>{y.current?.getPanel(e)?.api.close()},[]),ce=(0,J.useCallback)((e,t)=>{if(!t)return;let n=y.current?.getPanel(V(e));n&&n.group!==t&&n.api.moveTo({group:t})},[]),le=(0,J.useCallback)(e=>u(e,{panelOpen:!!y.current?.getPanel(V(e)),localStreamOwned:o.current.has(e)}),[o,u]),ue=(0,J.useCallback)(({api:e})=>{y.current&&y.current!==e&&(b.current=!1);for(let e of S.current)e.dispose();S.current=[],y.current=e,S.current.push(e.onDidActivePanelChange(({panel:t})=>{let n=U(t);n&&i(n),K(e)}),e.onDidLayoutChange(()=>K(e)),e.onDidAddPanel(e=>{let t=U(e);t&&l(t,{limit:40})}),e.onDidRemovePanel(e=>{let t=U(e);t&&queueMicrotask(()=>le(t))})),h(e=>e+1)},[l,le,K,i]);return(0,J.useEffect)(()=>{if(b.current)for(let e of Object.keys(n))le(e)},[le,n]),(0,J.useEffect)(()=>{let e=e=>{let t=e.detail,n=t?.sessionId||t?.id;n&&(localStorage.removeItem(A.sessionOpenRequest),q(n,t?.disposition||`open`),t?.targetEntryId&&l(n,{force:!0,limit:40}))};return window.addEventListener(N,e),()=>window.removeEventListener(N,e)},[l,q]),(0,J.useEffect)(()=>{let e=e=>{let t=e.detail;t?.url&&(localStorage.removeItem(A.webPreviewRequest),Y(t))};return window.addEventListener(ee,e),()=>window.removeEventListener(ee,e)},[Y]),(0,J.useEffect)(()=>{let e=()=>{document.visibilityState===`hidden`&&G()},t=()=>G();return document.addEventListener(`visibilitychange`,e),window.addEventListener(`pagehide`,t),()=>{document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`pagehide`,t)}},[G]),(0,J.useEffect)(()=>()=>{let e=y.current;G(e),b.current=!1,window.clearTimeout(C.current),C.current=void 0;for(let e of S.current)e.dispose();S.current=[],y.current=null},[G]),(0,J.useEffect)(()=>{if(!m||!F||a||b.current||!y.current)return;let t=y.current,n=new Set(e.map(e=>e.id)),i=M;if(i)try{t.fromJSON(i.layout);for(let e of[...t.panels]){if(e.api.component!==`session`)continue;let r=U(e);n.has(r)||t.removePanel(e)}}catch{t.clear()}if(!t.panels.length){let n=ie({activeSessionId:r,validSessionIds:e.map(e=>e.id)}),i;for(let r of n){let n=e.find(e=>e.id===r);if(!n)continue;let a=t.addPanel({id:V(r),component:`session`,title:n.name||p(`chat:chatPage.untitledChat`),params:{sessionId:r},renderer:`always`,minimumWidth:300,...i?{position:{referenceGroup:i}}:{},inactive:!!i});i||=a.group}}for(let n of t.panels){let t=e.find(e=>e.id===U(n));t&&n.api.setTitle(t.name||p(`chat:chatPage.untitledChat`))}b.current=!0,localStorage.removeItem(A.chatMode);let o=E.current||L();E.current=null,o?(q(o.sessionId,o.disposition),o.targetEntryId&&l(o.sessionId,{force:!0,limit:40})):(t.getPanel(i?.activePanelId||V(r))||t.panels[0])?.api.setActive();let s=D.current||te();D.current=null,s&&Y(s),K(t)},[r,F,m,l,a,q,Y,K,e,M,p]),(0,J.useEffect)(()=>{if(!(!b.current||!y.current))for(let t of e)y.current.getPanel(V(t.id))?.api.setTitle(t.name||p(`chat:chatPage.untitledChat`))},[e,p]),{compactDock:_,mobileSessionIds:ne,openSessionInDock:q,splitDockPanel:X,closeDockPanel:se,moveSessionToGroup:ce,onDockReady:ue,getTabContextMenuItems:(0,J.useCallback)(({panel:e})=>{let t={label:p(`chat:focusSession.closeTab`),action:()=>se(e.id)};return _||e.group.size<=1?[t]:[{label:p(`chat:chatPage.splitToLeft`),action:()=>X(e.id,`left`)},{label:p(`chat:chatPage.splitToRight`),action:()=>X(e.id,`right`)},{label:p(`chat:chatPage.splitToTop`),action:()=>X(e.id,`above`)},{label:p(`chat:chatPage.splitToBottom`),action:()=>X(e.id,`below`)},`separator`,t]},[se,_,X,p])}}function de(e){return!!e?.agents?.some(e=>[`queued`,`starting`,`running`].includes(String(e.status)))}function fe(e,{localStreamOwned:t=!1}={}){return!e||t?!1:!!(e.recovering||e.streaming||e.approvals?.length||de(e))}function pe(e,t){return Object.hasOwn(e,`team`)?e.team??null:t??null}function me(e,t){let n=Number(t.pageInfo?.start)||0,r=Number.isInteger(e.messageStart)?e.messageStart:null,i=r!=null&&r<=n,a=i?Math.max(0,n-r):0,o=i?r:n,s=i?[...e.messages.slice(0,a),...t.messages]:t.messages,c=Math.max(0,s.length-200);return c&&(s=s.slice(c),o+=c),{messages:s,messageStart:o,hasOlder:o>0,olderCursor:o>0?String(o):null}}function he(e,t,n=new Date().toISOString()){let r=t.finishedAt||e.runFinishedAt||n;return{...e,...me(e,t),tools:t.streaming?t.tools||[]:C(t.tools||[],{finishedAt:r,error:t.error||``}),streaming:t.streaming,recovering:t.streaming,runStartedAt:t.startedAt||e.runStartedAt||null,lastActivityAt:t.lastActivityAt||e.lastActivityAt||t.startedAt||null,runFinishedAt:t.streaming?null:r,runNotice:t.streaming&&e.runNotice||``,loaded:!0,loading:!1,error:t.error||``,model:t.model||e.model,cwd:t.cwd||e.cwd,permissionMode:t.permissionMode||e.permissionMode,executionMode:t.executionMode||e.executionMode,runMode:t.runMode||e.runMode,goal:t.goal??e.goal??null,team:pe(t,e.team),plan:u(t,e.plan??null),contextUsage:t.contextUsage??e.contextUsage??null,sessionUsage:t.sessionUsage??e.sessionUsage??null,compaction:t.compaction??e.compaction??null,approvals:t.approvals||[],agents:t.agents||[],currentActivity:t.streaming?t.currentActivity||e.currentActivity||null:t.currentActivity?.type===`agent`?t.currentActivity:null,lifecycle:t.lifecycle??e.lifecycle??null,sessionTreeRevision:Number(t.sessionTreeRevision??e.sessionTreeRevision??0),activityFeed:t.streaming?t.activityFeed||e.activityFeed||[]:(t.activityFeed||[]).filter(e=>e.type===`agent`),thinkingText:t.streaming?t.thinkingText??e.thinkingText??``:``,queuedInputs:d(e.queuedInputs,t.queuedInputs),hadQueuedInput:t.streaming?!!(e.hadQueuedInput||t.queuedInputs?.length):!1}}function ge({sessionStates:e,sessionStatesRef:t,localStreamSessionsRef:n,streamGenerationRef:r,updateSessionState:a,updateSessions:o}){let s=(0,J.useRef)(new Set),c=(0,J.useRef)({timer:null,activeSessions:new Set}),l=(0,J.useCallback)(async(e,{force:t=!1}={})=>{if(!(!e||!t&&n.current.has(e)||s.current.has(e))){s.current.add(e);try{let s=await i.getLiveSession(e);if(!t&&n.current.has(e))return;if(t&&n.current.has(e)){let t=r.current.get(e)||0;r.current.set(e,t+1),n.current.delete(e)}p(e,s),a(e,e=>he(e,s)),o(t=>t.map(t=>t.id===e?{...t,streaming:s.streaming,model:s.model||t.model,cwd:s.cwd||t.cwd,permissionMode:s.permissionMode||t.permissionMode,executionMode:s.executionMode||t.executionMode,runMode:s.runMode||t.runMode,goal:s.goal??t.goal??null,team:pe(s,t.team),plan:u(s,t.plan??null)}:t))}catch(t){n.current.has(e)||a(e,{recovering:!1,loading:!1,error:y(t)})}finally{s.current.delete(e)}}},[n,r,a,o]),d=(0,J.useCallback)(async(e,{force:n=!1,limit:r=40}={})=>{if(!e)return;let s=t.current[e];if(s?.recovering){await l(e);return}if(!(!n&&(s?.loading||s?.streaming||s?.loaded&&(s.pageSize||0)>=r))){a(e,{loading:!0});try{let n=await i.getMessages(e,{limit:r});a(e,e=>e.streaming?{...e,loaded:!0,loading:!1,pageSize:Math.max(e.pageSize||0,r)}:{...e,...me(e,n),model:e.model||n.model||void 0,contextUsage:n.contextUsage??e.contextUsage??null,sessionUsage:n.sessionUsage??e.sessionUsage??null,loaded:!0,loading:!1,pageSize:Math.max(e.pageSize||0,r),error:``,olderError:``});let s=t.current[e]?.model||(typeof n.model==`string`?n.model:``);s&&o(t=>t.map(t=>t.id===e&&t.model!==s?{...t,model:s}:t))}catch(t){a(e,{loading:!1,error:y(t)})}}},[t,l,a,o]),f=(0,J.useCallback)(async e=>{let n=t.current[e];if(!e||!n?.hasOlder||!n.olderCursor||n.loadingOlder)return!1;a(e,{loadingOlder:!0,olderError:``});try{let t=await i.getMessages(e,{limit:40,before:n.olderCursor});return a(e,e=>{let n=new Set(e.messages.map(e=>e.id)),r=[...t.messages.filter(e=>!n.has(e.id)),...e.messages],i=Math.max(0,r.length-200);return{...e,messages:i?r.slice(i):r,messageStart:t.pageInfo.start+i,hasOlder:t.pageInfo.hasMore,olderCursor:t.pageInfo.nextCursor,loadingOlder:!1,olderError:``}}),t.messages.length>0}catch(t){return a(e,{loadingOlder:!1,olderError:y(t)}),!1}},[t,a]),m=(0,J.useCallback)(()=>{c.current.timer&&window.clearInterval(c.current.timer),c.current.timer=null,c.current.activeSessions.clear()},[]),h=(0,J.useCallback)(()=>{c.current.timer||!c.current.activeSessions.size||(c.current.timer=window.setInterval(()=>{if(typeof document<`u`&&document.hidden)return;let e=Array.from(c.current.activeSessions).map(async e=>{let r=t.current[e];if(!fe(r,{localStreamOwned:n.current.has(e)})){c.current.activeSessions.delete(e);return}await l(e)});Promise.allSettled(e).then(()=>{c.current.activeSessions.size||m()})},2e3))},[n,t,m,l]);return(0,J.useEffect)(()=>{let t=new Set(Object.keys(e));for(let e of c.current.activeSessions)t.has(e)||c.current.activeSessions.delete(e);for(let[t,r]of Object.entries(e))fe(r,{localStreamOwned:n.current.has(t)})?c.current.activeSessions.add(t):c.current.activeSessions.delete(t);c.current.activeSessions.size?h():m()},[h,n,e,m]),(0,J.useEffect)(()=>m,[m]),{syncLiveSession:l,loadSessionMessages:d,loadOlderMessages:f,liveSyncInFlightRef:s}}function _e(e,t){let n=null,r=!1,i=typeof document<`u`,a=()=>!i||document.visibilityState===`visible`,o=()=>{r&&=(document.removeEventListener(`visibilitychange`,c),!1)},s=()=>{n=setTimeout(()=>{n=null,e()},t)},c=()=>{!a()||n!=null||(o(),s())},l=()=>{!i||r||(document.addEventListener(`visibilitychange`,c),r=!0)};return{schedule(){n!=null||r||(a()?s():l())},flushNow(){n!=null&&(clearTimeout(n),n=null),o(),e()},cancel(){n!=null&&clearTimeout(n),n=null,o()},get active(){return n!=null||r}}}function ve(e,{intervalMs:t=48}={}){let n=null,r=null,i=_e(()=>{if(n==null)return;let t=n,i=r;n=null,r=null,e(t,i)},t);return{push(e,t=new Date().toISOString()){n=e,r=t,i.schedule()},flush(){i.flushNow()},cancel(){i.cancel(),n=null,r=null}}}function ye(e,{intervalMs:t=80}={}){let n=new Map,r=null,i=_e(()=>{if(!n.size)return;let t=n,i=r;n=new Map,r=null,e(t,i)},t);return{push(e,t,a=new Date().toISOString()){e&&(n.set(e,{...n.get(e)||{},...t}),r=a,i.schedule())},flush(){i.flushNow()},cancel(){i.cancel(),n=new Map,r=null}}}function be(e){return e>=55296&&e<=56319}function xe(e,t){let n=Math.min(e.length,t.length),r=0;for(;r<n&&e.charCodeAt(r)===t.charCodeAt(r);)r+=1;return r>0&&be(e.charCodeAt(r-1))?r-1:r}var Se=1e3/30;function Ce(e,{minCharsPerSecond:t=36,maxCharsPerSecond:n=1200,catchUpRemaining:r=160,snapRemaining:i,requestFrame:a,cancelFrame:o,isCurrent:s=()=>!0,now:c=()=>typeof performance<`u`&&performance.now?performance.now():Date.now()}={}){let l=!a&&typeof globalThis.requestAnimationFrame==`function`&&typeof globalThis.cancelAnimationFrame==`function`,u=a||(l?globalThis.requestAnimationFrame.bind(globalThis):e=>setTimeout(()=>e(c()),Math.ceil(Se))),d=o||(l?globalThis.cancelAnimationFrame.bind(globalThis):clearTimeout),f=typeof document<`u`?document:null,p=()=>!f||f.visibilityState===`visible`,m=``,h=``,g=null,_=null,v=0,y=null,b=0,x=!1,S=new Set,C=e=>{let t=[...S];S.clear();for(let n of t)n(e)},w=()=>e(h,g),T=()=>{x=!0,_!=null&&d(_),f?.removeEventListener(`visibilitychange`,k),_=null,b=0,C(!1)},E=()=>{if(!x){if(!s()){T();return}_!=null&&d(_),_=null,b=0,h=m,y=c(),w(),h===m&&C(!0)}},D=e=>{if(_=null,x)return;if(!s()){T();return}if(!p()){S.size&&E();return}if(m===h){C(!0);return}let a=e-v;if(a+.001<Se||y!=null&&e-y+.001<Se){_=u(D);return}v=e;let o=h;m.startsWith(h)||(h=m.slice(0,xe(h,m)),b=0);let c=m.length-h.length;if(i!=null&&c>=i)h=m,b=0;else{let e=Math.max(0,Math.min(n,t+c*(c>=r?10:4))),i=b+e*Math.min(.08,Math.max(0,a/1e3)),o=Math.floor(i+1e-9);b=Math.max(0,i-o);let s=h.length;for(let e=0;e<o&&s<m.length;e+=1){let e=m.codePointAt(s)??0;if(be(e)&&s+1===m.length&&!S.size)break;s+=e>65535?2:1}h=m.slice(0,s)}h!==o&&(y=e,w()),h===m&&C(!0);let l=!S.size&&h.length+1===m.length&&be(m.charCodeAt(h.length));!x&&_==null&&h!==m&&!l&&p()?_=u(D):_??(b=0)},O=()=>{x||_!=null||!p()||m===h||(v=c(),_=u(D))},k=()=>{p()?O():S.size?E():(_!=null&&d(_),_=null,b=0)};return f?.addEventListener(`visibilitychange`,k),{setTarget(e,t=new Date().toISOString()){x||(m=String(e||``),g=t,O())},drain(){return x||!s()?(T(),Promise.resolve(!1)):h===m?Promise.resolve(!0):new Promise(e=>{S.add(e),p()?O():E()})},flush:E,cancel:T,getShown:()=>h,getTarget:()=>m}}var we=new Set(`contacts.search,camera.capture,location.current,device.info,device.capabilities,device.battery,device.storage,device.memory,device.network,device.display,device.locale,device.status,device.clipboard.get,device.clipboard.set,device.vibrate,device.flashlight,device.notify,photos.list,photos.create_album,photos.add_to_album,photos.delete,apps.open_url,apps.open_map,apps.open_system_settings,apps.open_dialer,apps.compose_sms,apps.open_app,apps.share_text`.split(`,`)),Te=new Map,Z=[];function Ee(e,t){let n=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return n?n(e,t):Promise.reject(Error(`native bridge unavailable`))}async function De(e,t){let n=String(t.id||``),r=String(t.operation||``);if(!n||!we.has(r))return;let a=Date.parse(String(t.expiresAt||``));if(Number.isFinite(a)&&a<=Date.now()){await i.resolveMobileOperation(e,n,{ok:!1,error:`移动设备操作请求已过期。`});return}try{let a=await Ee(`mobile_execute_device_operation`,{request:{id:n,operation:r,parameters:t.parameters&&typeof t.parameters==`object`?t.parameters:void 0}});await i.resolveMobileOperation(e,n,{ok:!0,result:a})}catch(t){await i.resolveMobileOperation(e,n,{ok:!1,error:t instanceof Error?t.message:String(t)})}finally{Z.push(n),Z.length>128&&Z.splice(0,Z.length-128)}}function Oe(e){let t=String(e.id||``);!t||Z.includes(t)||(Z.push(t),Z.length>128&&Z.splice(0,Z.length-128))}function ke(e,t){let n=String(t.id||``);if(!n||Z.includes(n)||Te.has(n))return;let r=De(e,t).catch(()=>{}).finally(()=>Te.delete(n));Te.set(n,r)}function Q(e,t){return Object.hasOwn(e,`team`)?e.team??null:t??null}function Ae(e,{agentId:t,responseText:n,data:r,finishedAt:i,error:a,preserveDisplayedText:o}){let s=!!a,c=r.lifecycle||e.lifecycle||{};return{...e,streaming:!1,runFinishedAt:i,lastActivityAt:i,...s?{}:{runNotice:``},currentActivity:r.currentActivity?.type===`agent`?r.currentActivity:null,lifecycle:{...c,phase:s?`failed`:`completed`,event:s?`runtime_error`:`runtime_done`,updatedAt:i},sessionTreeRevision:Number(r.sessionTreeRevision??e.sessionTreeRevision??0),activityFeed:(r.activityFeed||[]).filter(e=>e.type===`agent`),goal:s?e.goal:r.goal??e.goal??null,plan:s?e.plan:u(r,e.plan),team:Q(r,e.team),agents:r.agents||e.agents||[],contextUsage:r.contextUsage??e.contextUsage??null,sessionUsage:r.sessionUsage??e.sessionUsage??null,compaction:r.compaction??e.compaction??null,approvals:s?[]:r.approvals||[],tools:C(r.tools||e.tools,{finishedAt:i,...a?{error:a}:{}}),messages:e.messages.map(e=>e.id===t?{...e,text:o?e.text:typeof r.text==`string`?r.text:n||e.text,streaming:o?e.text!==n:!1,...s?{}:r.assets?.length?{attachments:r.assets}:{}}:e)}}function je({sessionId:e,agentId:t,sessionStatesRef:n,updateSessionState:r,updateSessions:i,typewriter:a,thinkingScheduler:s,toolScheduler:c,t:l}){let p={responseText:``,responseRenderingStreaming:!0,thinkingText:``,thinkingPrefix:``,queuedDuringRun:!1},g=t=>{i(n=>n.map(n=>n.id===e?t(n):n))},_=(r,i)=>{let a=n.current[e]?.messages??[],o=a.findIndex(e=>e.id===t),s=a.slice(0,Math.max(0,o)).filter(e=>e.role===`user`).at(-1)?.text;w({sessionId:e,messageId:t,prompt:s,text:p.responseText,runId:p.runId,startedAt:p.startedAt,status:r,error:i})};return{dispatch:(i,v)=>{let y=new Date().toISOString();if(i===`run`)p.runId=typeof v.runId==`string`?v.runId:void 0,_(`started`);else if(i===`resync_required`)_(`recovering`);else if(i===`meta`)p.startedAt=typeof v.startedAt==`string`?v.startedAt:void 0,_(`started`),r(e,e=>({...e,model:v.model||e.model,thinkingLevel:v.thinkingLevel||e.thinkingLevel,cwd:v.cwd,permissionMode:v.permissionMode,executionMode:v.executionMode,runMode:v.runMode||e.runMode,goal:v.goal??null,plan:u(v,e.plan),team:Q(v,e.team),agents:v.agents||e.agents||[],currentActivity:v.currentActivity||e.currentActivity||null,activityFeed:v.activityFeed||e.activityFeed||[],lifecycle:v.lifecycle??e.lifecycle??null,sessionTreeRevision:Number(v.sessionTreeRevision??e.sessionTreeRevision??0),thinkingText:v.thinkingText??e.thinkingText??``,queuedInputs:d(e.queuedInputs,v.queuedInputs),hadQueuedInput:!!(e.hadQueuedInput||v.queuedInputs?.length),contextUsage:v.contextUsage??e.contextUsage??null,sessionUsage:v.sessionUsage??e.sessionUsage??null,runStartedAt:v.startedAt||e.runStartedAt,lastActivityAt:v.lastActivityAt||y})),(v.model||v.thinkingLevel||v.cwd||v.permissionMode||v.executionMode||v.goal!==void 0||v.team!==void 0||O(v)!==void 0)&&g(e=>({...e,model:v.model||e.model,thinkingLevel:v.thinkingLevel||e.thinkingLevel,cwd:v.cwd||e.cwd,permissionMode:v.permissionMode||e.permissionMode,executionMode:v.executionMode||e.executionMode,runMode:v.runMode||e.runMode,goal:v.goal??e.goal??null,team:Q(v,e.team),plan:u(v,e.plan??null)}));else if(i===`queue_update`)v.queuedInputs?.length&&(p.queuedDuringRun=!0),r(e,e=>({...e,queuedInputs:v.queuedInputs||[],hadQueuedInput:!!(e.hadQueuedInput||v.queuedInputs?.length)}));else if(i===`agent_update`)r(e,e=>{let t=v.currentActivity||(v.agent?{type:`agent`,agent:v.agent,updatedAt:v.agent.lastActivityAt||y}:null);return{...e,team:Q(v,e.team),agents:v.agents||[],currentActivity:e.currentActivity?.type===`tool`?e.currentActivity:t||e.currentActivity,activityFeed:t?h(e.activityFeed,t):e.activityFeed,lastActivityAt:v.agent?.lastActivityAt||y}}),Object.hasOwn(v,`team`)&&g(e=>({...e,team:Q(v,e.team)}));else if(i===`agent_lifecycle`)r(e,e=>{let t=v.lifecycle||e.lifecycle,n=t?.event===`auto_retry_end`,r=t?.event===`turn_start`&&(e.lifecycle?.phase===`retrying`||e.currentActivity?.type===`retry`);return{...e,lifecycle:t,currentActivity:v.currentActivity||e.currentActivity,lastActivityAt:t?.updatedAt||y,runNotice:n&&t?.retry?.success?``:n&&t?.retry?.message?t.retry.message:r?``:e.runNotice}});else if(i===`session_tree_changed`)r(e,{sessionTreeRevision:Number(v.revision||0),lastActivityAt:y});else if(i===`thinking_level_changed`)r(e,{thinkingLevel:v.level,lastActivityAt:y}),g(e=>({...e,thinkingLevel:v.level}));else if(i===`context_usage`)r(e,{contextUsage:v});else if(i===`session_usage`)r(e,{sessionUsage:v});else if(i===`compaction_start`)c.flush(),r(e,e=>{let t={type:`compaction`,compaction:v,updatedAt:v.startedAt||y};return{...e,compaction:v,currentActivity:t,activityFeed:h(e.activityFeed,t),lastActivityAt:v.startedAt||y}});else if(i===`compaction_end`)r(e,e=>{let t={type:`model`,stage:`processing_result`,updatedAt:v.finishedAt||y};return{...e,compaction:v,currentActivity:t,activityFeed:h(e.activityFeed,t),lastActivityAt:v.finishedAt||y}});else if(i===`text_patch`)p.responseRenderingStreaming=!0,p.responseText=o(p.responseText,v),_(`streaming`),a.setTarget(p.responseText,y);else if(i===`text_delta`)p.responseRenderingStreaming=!0,p.responseText+=v.delta||``,_(`streaming`),a.setTarget(p.responseText,y);else if(i===`text_end`)typeof v.text==`string`&&(p.responseText=v.text),p.responseRenderingStreaming=!1,_(`streaming`),a.setTarget(p.responseText,v.updatedAt||y),r(e,e=>({...e,messages:e.messages.map(e=>e.id===t?{...e,streaming:e.text!==p.responseText}:e)}));else if(i===`thinking_reset`)p.thinkingText=``,p.thinkingPrefix=String(v.thinkingText||``).slice(-6e3),s.cancel(),r(e,{thinkingText:p.thinkingPrefix,currentActivity:{type:`model`,stage:`thinking`,updatedAt:v.updatedAt||y},lastActivityAt:v.updatedAt||y});else if(i===`thinking_patch`){p.thinkingText=o(p.thinkingText,v).slice(-6e3);let e=[p.thinkingPrefix,p.thinkingText].filter(Boolean).join(`
|
|
3
|
+
|
|
4
|
+
`);s.push(e.slice(-6e3),y)}else if(i===`tool_start`)s.flush(),c.flush(),r(e,e=>{let t={type:`tool`,id:v.id,name:v.name,args:v.args,status:`running`,startedAt:v.startedAt||y,updatedAt:y,...v.output===void 0?{}:{output:v.output}};return{...e,lastActivityAt:y,runNotice:``,tools:h(e.tools,t),currentActivity:t,activityFeed:h(e.activityFeed,t)}});else if(i===`tool_update`)c.push(v.id,{message:v.message||``,updatedAt:v.updatedAt||y,...v.output===void 0?{}:{output:v.output},...v.agent?{agent:v.agent}:{}},v.updatedAt||y);else if(i===`tool_end`)c.flush(),r(e,e=>{let t=e.tools.find(e=>e.id===v.id),n=v.finishedAt||y,r=String(t?.name||``),i=(f(r)||[`spawn_agent`,`list_agents`,`send_message`,`followup_task`,`wait_agent`,`interrupt_agent`].includes(r))&&[`plan`,`agent`].includes(e.currentActivity?.type),a={...t||{},type:`tool`,status:v.error?`error`:`done`,message:v.message||t?.message||``,updatedAt:n,finishedAt:n,...v.output===void 0?{}:{output:v.output}},o=v.agent?{type:`agent`,agent:v.agent,updatedAt:v.agent.lastActivityAt||n}:null,s=e.activityFeed||[];return(v.error||!i&&!o)&&(s=h(s,a)),o&&(s=h(s,o)),{...e,lastActivityAt:n,tools:e.tools.map(e=>e.id===v.id?{...e,status:v.error?`error`:`done`,message:v.message||``,updatedAt:n,finishedAt:n,...v.output===void 0?{}:{output:v.output}}:e),currentActivity:v.error?a:o||(i?e.currentActivity:a),activityFeed:s}});else if(i===`mobile_operation_request`)ke(e,v);else if(i===`mobile_operation_cancel`)Oe(v);else if(i===`permission_request`)c.flush(),r(e,e=>({...e,lastActivityAt:y,approvals:[...(e.approvals||[]).filter(e=>e.id!==v.id),v]}));else if(i===`permission_resolved`)r(e,e=>({...e,lastActivityAt:y,approvals:(e.approvals||[]).filter(e=>e.id!==v.id)}));else if(i===`generated_asset`)r(e,e=>({...e,lastActivityAt:y,messages:e.messages.map(e=>e.id===t?{...e,attachments:[...(e.attachments||[]).filter(e=>e.id!==v.id),v]}:e)}));else if(i===`goal_update`)r(e,e=>({...e,goal:v.goal??null,team:Q(v,e.team)})),g(e=>({...e,goal:v.goal??null,team:Q(v,e.team)}));else if(k(i))c.flush(),r(e,e=>{let t=u(v,e.plan),n=v.currentActivity||{type:`plan`,plan:t,changes:m(e.plan,t),updatedAt:t?.updatedAt||y};return{...e,lastActivityAt:y,plan:t,currentActivity:n,activityFeed:h(e.activityFeed,n)}}),g(e=>({...e,plan:u(v,e.plan??null)}));else if(i===`session_title`)g(e=>({...e,name:v.name}));else if(i===`retry`){let t=l(`chat:chatPage.retryingAttemptMaxAttemptsMessage`,{attempt:v.attempt,maxAttempts:v.maxAttempts,message:v.message});r(e,e=>{let n={type:`retry`,message:t,updatedAt:y};return{...e,runNotice:t,currentActivity:n,activityFeed:h(e.activityFeed,n),lastActivityAt:y}})}else if(i===`done`||i===`error`){p.queuedDuringRun||=!!(n.current[e]?.hadQueuedInput||n.current[e]?.queuedInputs?.length);let o=v.finishedAt||y;if(typeof v.text==`string`&&(p.responseText=v.text),p.responseRenderingStreaming=!1,p.terminal=!0,_(i===`done`?`completed`:`failed`,i===`error`?v.message||`Speech response failed.`:void 0),a.setTarget(p.responseText,o),i===`error`&&a.flush(),s.flush(),c.cancel(),r(e,e=>Ae(e,{agentId:t,responseText:p.responseText,data:v,finishedAt:o,preserveDisplayedText:i===`done`,...i===`error`?{error:v.message}:{}})),i===`done`)return g(e=>({...e,streaming:!1,goal:v.goal??e.goal??null,team:Q(v,e.team),plan:u(v,e.plan??null)})),!1;throw Error(v.message)}},state:p}}var Me=`pisper:usage-updated`;function Ne({browserNotify:e,notify:t,defaultModel:n,localStreamSessionsRef:r,streamGenerationRef:a,sessionStatesRef:o,setActiveId:s,setGlobalError:l,updateSessionState:u,updateSessions:f,createSession:p,loadSessionMessages:m,refreshSessions:_,syncLiveSession:v}){let{t:b}=c(),x=(0,J.useRef)(new Map),S=(0,J.useCallback)(async(t,c,d=[],g=!1,S=!1,w=null,T=null)=>{let E=t.trim()||(d.length?b(`chat:chatPage.pleaseAnalyzeTheseAttachments`):``)||(T?T.resourceName:``);if(!E&&!T)return;let D=c;if(D||=await p(),!D||o.current[D]?.streaming)return;let O=(a.current.get(D)||0)+1;a.current.set(D,O);let k=!1,A=()=>!k&&a.current.get(D)===O,j=()=>{},M=new Promise(e=>{j=e});x.current.set(D,{promise:M,resolve:j}),s(D),l(``);let N={id:`user-${Date.now()}`,role:`user`,text:E,invocation:T,attachments:d.map(({id:e,kind:t,name:n,mimeType:r,size:i,data:a})=>({id:e,kind:t,name:n,mimeType:r,size:i,data:t===`image`?a:void 0}))},P=`agent-${Date.now()}`,F=new Date().toISOString(),I={responseText:``,responseRenderingStreaming:!0,thinkingText:``,thinkingPrefix:``,queuedDuringRun:!1},L=ve((e,t)=>{A()&&u(D,n=>A()?{...n,thinkingText:e,lastActivityAt:t||n.lastActivityAt,currentActivity:{type:`model`,stage:`thinking`,updatedAt:t||n.lastActivityAt}}:n)},{intervalMs:80}),R=Ce((e,t)=>{A()&&u(D,n=>{if(!A())return n;let r=n.messages.map(t=>t.id===P?{...t,text:e,streaming:I.responseRenderingStreaming||e!==I.responseText}:t);if(I.terminal||!I.responseRenderingStreaming||n.currentActivity&&n.currentActivity.type!==`model`)return{...n,messages:r};let i={type:`model`,stage:`responding`,updatedAt:t||n.lastActivityAt};return{...n,lastActivityAt:t||n.lastActivityAt,runNotice:``,currentActivity:i,activityFeed:h(n.activityFeed,i),messages:r}})},{isCurrent:A}),z=ye((e,t)=>{A()&&u(D,n=>{if(!A())return n;let r=n.activityFeed||[];for(let[n,i]of e){let e=r.find(e=>e.type===`tool`&&e.id===n);e&&(r=h(r,{...e,...i,updatedAt:t||e.updatedAt}))}let i=n.currentActivity?.type===`tool`&&e.has(n.currentActivity.id)?{...n.currentActivity,...e.get(n.currentActivity.id),updatedAt:t||n.currentActivity.updatedAt}:n.currentActivity;return{...n,lastActivityAt:t||n.lastActivityAt,tools:n.tools.map(t=>{let n=e.get(String(t.id||``));return n?{...t,...n}:t}),currentActivity:i,activityFeed:r}})}),B=je({sessionId:D,agentId:P,sessionStatesRef:o,updateSessionState:u,updateSessions:f,typewriter:R,thinkingScheduler:L,toolScheduler:z,t:b}),ee=(e,t)=>A()?e===`resync_required`?(B.dispatch(e,t),k=!0,a.current.delete(D),r.current.delete(D),v(D),!1):B.dispatch(e,t):!1;I=B.state,u(D,e=>{let t=g||S||e.goal?.status===`active`;return{...e,messages:[...e.messages,N,{id:P,role:`agent`,text:``,streaming:!0}],tools:[],approvals:[],error:``,streaming:!0,loaded:!0,runStartedAt:F,lastActivityAt:F,runFinishedAt:null,runStopped:!1,runNotice:``,currentActivity:{type:`model`,stage:`thinking`,updatedAt:F},activityFeed:[],lifecycle:{phase:`starting`,event:`prompt_submitted`,turn:0,updatedAt:F},thinkingText:``,hadQueuedInput:!1,compaction:null,plan:t?e.plan:null}}),!g&&!S&&f(e=>e.map(e=>e.id!==D||e.goal?.status===`active`?e:{...e,plan:null})),r.current.add(D);let V=!1;try{if(await i.openStream({sessionId:D,message:E,attachments:d,goalMode:g,teamMode:S,goalTokenBudget:w,invocation:T},ee),!A())return;I.responseRenderingStreaming=!1,I.terminal=!0,R.setTarget(I.responseText),L.flush(),z.flush();let t=new Date().toISOString();if(o.current[D]?.streaming&&u(D,e=>{let n=e.runFinishedAt||t;return{...e,streaming:!1,runFinishedAt:n,lastActivityAt:n,runNotice:``,currentActivity:null,activityFeed:[],approvals:[],tools:C(e.tools,{finishedAt:n}),messages:e.messages.map(e=>e.id===P?{...e,streaming:e.text!==I.responseText}:e)}}),!await R.drain()||!A())return;u(D,e=>({...e,messages:e.messages.map(e=>e.id===P?{...e,text:I.responseText,streaming:!1}:e)}));try{await m(D,{force:!0})}catch(e){if(!A())return;u(D,{loading:!1,error:y(e)})}if(!A())return;(g||S||I.queuedDuringRun||o.current[D]?.hadQueuedInput||o.current[D]?.goal||o.current[D]?.queuedInputs?.length)&&u(D,{queuedInputs:[],hadQueuedInput:!1});let r;try{r=(await _()).find(e=>e.id===D)}catch{v(D)}if(!A())return;e?.(`chat.completed`,{chat:{title:r?.name||b(`chat:chatPage.appChat`,{app:`Pisper`}),summary:I.responseText.trim().slice(0,260)||b(`chat:chatPage.theAgentHasFinishedResponding`),model:o.current[D]?.model||n}})}catch(e){if(!A())return;if((I.runId||I.startedAt)&&!I.terminal){B.dispatch(`resync_required`,{}),k=!0,a.current.delete(D),r.current.delete(D),v(D);return}V=!0,R.cancel(),L.flush(),z.cancel();let t=new Date().toISOString(),n=y(e);if(u(D,e=>({...e,streaming:!1,error:n,runFinishedAt:t,lastActivityAt:t,runNotice:``,currentActivity:null,activityFeed:[],approvals:[],tools:C(e.tools,{finishedAt:t,error:n}),messages:e.messages.map(e=>e.id===P?{...e,streaming:!1,error:n,text:e.text||I.responseText||n}:e)})),I.queuedDuringRun||o.current[D]?.hadQueuedInput||o.current[D]?.queuedInputs?.length){try{await m(D,{force:!0})}catch{}u(D,{queuedInputs:[],hadQueuedInput:!1})}f(e=>e.map(e=>e.id===D?{...e,streaming:!1}:e))}finally{let e=A();k=!0,e&&(r.current.delete(D),a.current.delete(D),u(D,{streaming:!1,hadQueuedInput:!1}),x.current.get(D)?.promise===M&&x.current.delete(D)),R.cancel(),L.cancel(),z.cancel(),j(),window.dispatchEvent(new Event(Me)),V&&e&&v(D)}},[e,p,n,m,r,_,a,o,s,l,v,b,u,f]);return{sendPrompt:S,queuePrompt:(0,J.useCallback)(async(e,n,r=[],a=`steer`)=>{let o=String(e||``).trim()||(r.length?b(`chat:chatPage.pleaseAnalyzeTheseAttachments`):``);if(!n||!o)return!1;try{let e=await i.queueInput(n,o,r,a),t=new Date().toISOString(),s={id:`interactive-user-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,role:`user`,text:o,queuedAt:t,streamingBehavior:e.behavior||a,attachments:r.map(({id:e,kind:t,name:n,mimeType:r,size:i,data:a})=>({id:e,kind:t,name:n,mimeType:r,size:i,data:t===`image`?a:void 0}))};return u(n,n=>({...n,messages:g(n.messages,s),queuedInputs:d(n.queuedInputs,e.queuedInputs),hadQueuedInput:!0,lastActivityAt:t})),!0}catch(e){if(E(e)){let e=x.current.get(n);return e?await e.promise:await v(n),u(n,{streaming:!1,recovering:!1,queuedInputs:[],hadQueuedInput:!1}),await m(n,{force:!0}),S(o,n,r),!0}return t(y(e),`error`),!1}},[m,t,S,v,b,u]),abort:(0,J.useCallback)(async e=>{if(!e)return;let n=await i.abort(e);await v(e,{force:!0});let r=new Date().toISOString();u(e,e=>({...e,streaming:!1,queuedInputs:[],hadQueuedInput:!1,goal:n.goal??null,team:Object.hasOwn(n,`team`)?n.team??null:e.team,compaction:e.compaction?.active?{...e.compaction,active:!1,status:`aborted`,aborted:!0,finishedAt:r}:e.compaction,runFinishedAt:r,lastActivityAt:r,runStopped:!0,runNotice:``,approvals:[],tools:C(e.tools,{finishedAt:r,error:b(`chat:chatPage.stopped`)}),messages:e.messages.map(e=>e.streaming?{...e,streaming:!1}:e)})),f(t=>t.map(t=>t.id===e?{...t,streaming:!1,goal:n.goal??t.goal??null,team:Object.hasOwn(n,`team`)?n.team??null:t.team}:t)),t(b(`chat:chatPage.currentRunStopped`),`info`)},[t,v,b,u,f])}}function Pe({notify:e,requestText:t,requestConfirm:n,availableModels:r,sessionStatesRef:o,updateSessionState:s,updateSessions:l,replaceSessionStates:u,setGlobalError:d,syncLiveSession:f}){let{t:p,language:m}=c(),[h,g]=(0,J.useState)(null),_=(0,J.useCallback)((e,t)=>{l(n=>n.map(n=>n.id===e?t(n):n))},[l]),v=(0,J.useCallback)(async t=>{if(t)try{let n=await i.pauseGoal(t);s(t,{goal:n.goal||null}),_(t,e=>({...e,goal:n.goal||null})),e(p(`chat:chatPage.goalPaused`),`info`)}catch(e){s(t,{error:y(e)})}},[e,p,s,_]),b=(0,J.useCallback)(async(t,n)=>{if(t)try{let r=await i.setGoalBudget(t,n);s(t,{goal:r.goal||null}),_(t,e=>({...e,goal:r.goal||null})),e(p(`chat:chatPage.goalTokenBudgetUpdated`),`info`)}catch(e){s(t,{error:y(e)})}},[e,p,s,_]),x=(0,J.useCallback)(async t=>{let n=o.current[t];if(!(!t||n?.streaming||n?.compaction?.active)){s(t,{compaction:{...n?.compaction||{},active:!0,status:`running`,reason:`manual`},error:``});try{let n=await i.compactSession(t);s(t,{compaction:n.compaction||null,contextUsage:n.contextUsage||null}),e(p(`chat:chatPage.contextCompacted`))}catch(e){await f(t).catch(()=>{}),s(t,{error:y(e)})}}},[e,o,f,p,s]),S=(0,J.useCallback)(async e=>{let t=await i.updateCompactionPreference(e);u(Object.fromEntries(Object.entries(o.current).map(([e,n])=>{let r=Number(n.contextUsage?.contextWindow)||0;return r?[e,{...n,contextUsage:{...n.contextUsage,compactAtPercent:t.thresholdPercent,compactAtTokens:Math.floor(r*t.thresholdPercent/100)}}]:[e,n]})))},[u,o]),C=(0,J.useCallback)((e,t={})=>{let n=String(t.model||``),r=String(o.current[e]?.model||``);if(n&&r&&n!==r)return;let i=Array.isArray(t.availableThinkingLevels)?t.availableThinkingLevels.map(e=>String(e)):Array.isArray(t.availableLevels)?t.availableLevels.map(e=>String(e)):[],a=String(t.thinkingLevel||``);s(e,{thinkingLevel:a||void 0,availableThinkingLevels:i,thinkingStatus:String(t.thinkingStatus||t.status||``),thinkingMessage:String(t.thinkingMessage||t.message||``),switchingThinking:!1}),a&&_(e,e=>({...e,thinkingLevel:a}))},[o,s,_]),w=(0,J.useCallback)(async e=>{if(!(!e||o.current[e]?.streaming))try{let t=await i.getThinkingLevel(e);C(e,t)}catch{s(e,{thinkingStatus:`error`,thinkingMessage:p(`chat:focusSession.thinkingLevelsLoadFailed`)})}},[C,o,p,s]),T=(0,J.useCallback)(async(t,a)=>{let c=r.find(e=>e.key===a);if(!t||!c||o.current[t]?.streaming)return;let l=o.current[t],u=l?.model||``,d=!!l?.messages?.length&&!l?.compaction?.active;s(t,{switchingModel:!0,model:c.key,error:``}),_(t,e=>({...e,model:c.key}));try{let r=await i.updateModel(t,c.provider,c.modelId);s(t,{model:r.model||c.key,contextUsage:r.contextUsage??null,switchingModel:!1}),_(t,e=>({...e,model:r.model||c.key})),C(t,r),e(p(`chat:chatPage.switchedToModel`,{model:c.label})),d&&await n({title:p(`chat:chatPage.compactAfterModelSwitch`),message:p(`chat:chatPage.compactAfterModelSwitchDescription`),confirmLabel:p(`chat:chatPage.compactNow`),tone:`primary`})&&await x(t)}catch(e){s(t,{switchingModel:!1,model:u||void 0,error:y(e)}),u&&_(t,e=>({...e,model:u}))}},[C,r,x,e,n,o,p,s,_]),E=(0,J.useCallback)(async(t,n)=>{let r=String(n||``).trim();if(!t||!r||o.current[t]?.streaming)return;let a=o.current[t]||{},c=String(a.thinkingLevel||``);s(t,{switchingThinking:!0,thinkingLevel:r,error:``}),_(t,e=>({...e,thinkingLevel:r}));try{let n=await i.setThinkingLevel(t,r);C(t,n),e(p(`chat:chatPage.switchedToThinkingLevel`,{level:String(n.thinkingLevel||r)}))}catch(e){s(t,{switchingThinking:!1,thinkingLevel:c||void 0,error:y(e)}),c&&_(t,e=>({...e,thinkingLevel:c}))}},[C,e,o,p,s,_]),D=(0,J.useCallback)(async(t,r)=>{if(!t)return!1;s(t,{switchingPermission:!0,error:``});try{if(r===`full-access`&&!await n({title:p(`chat:chatPage.enableFullAccess`),message:p(`chat:chatPage.fullAccessAllowsTheAgentToUseFilesAndNetworkServicesOutsideTheWorkspaceAndShellCommandsWillNoLon`),confirmLabel:p(`chat:chatPage.enableFullAccess`)}))return s(t,{switchingPermission:!1}),!1;let a=await i.updateExecutionMode(t,r);return s(t,{executionMode:a.executionMode,permissionMode:a.permissionMode,switchingPermission:!1}),_(t,e=>({...e,executionMode:a.executionMode,permissionMode:a.permissionMode})),e(p(`chat:chatPage.executionModeChangedToMode`,{mode:a.executionMode===`approval-required`?p(`chat:chatPage.approvalRequired`):a.executionMode===`workspace-write`?p(`chat:focusSession.workspaceWrite`):p(`chat:chatPage.fullAccess`)})),!0}catch(e){return s(t,{switchingPermission:!1,error:y(e)}),!1}},[e,n,p,s,_]),O=(0,J.useCallback)(async(e,t)=>{if(!e)return!1;try{let n=await i.updateRunMode(e,t),r=String(n.runMode||t);return s(e,{runMode:r}),_(e,e=>({...e,runMode:r})),!0}catch(t){return s(e,{error:y(t)}),!1}},[s,_]),k=(0,J.useCallback)(async(t,n,r)=>{s(t,e=>({...e,approvals:(e.approvals||[]).filter(e=>e.id!==n),error:``}));try{(await i.resolveApproval(t,n,r)).alreadyResolved&&f(t)}catch(n){if(await f(t),n instanceof a&&n.status===404){e(p(`chat:chatPage.approvalStatusUpdated`),`info`);return}throw s(t,{error:y(n)}),n}},[e,f,p,s]),A=(0,J.useCallback)(async(t,n)=>{if(!(!t?.id||o.current[t.id]?.streaming)){s(t.id,{switchingCwd:!0,error:``});try{let r=await i.updateCwd(t.id,n);s(t.id,{cwd:r.cwd,switchingCwd:!1}),_(t.id,e=>({...e,cwd:r.cwd})),g(null),e(p(`chat:chatPage.workingDirectoryChangedToWorkspace`,{workspace:F(r.cwd,m)}))}catch(e){throw s(t.id,{switchingCwd:!1,error:y(e)}),e}}},[m,e,o,p,s,_]);return{workspaceSession:h,setWorkspaceSession:g,switchSessionCwd:A,selectSessionWorkspace:(0,J.useCallback)(async t=>{if(t?.id){if(o.current[t.id]?.streaming){e(p(`chat:chatPage.stopTheActiveRunBeforeChangingTheWorkspace`),`info`);return}if(!q()){g(t);return}try{let e=await K(t.cwd);e&&await A(t,e)}catch(e){s(t.id,{switchingCwd:!1,error:y(e)})}}},[e,o,A,p,s]),renameSession:(0,J.useCallback)(async n=>{if(!n?.id)return;if(o.current[n.id]?.streaming){e(p(`chat:chatPage.stopTheActiveRunBeforeRenamingTheChat`),`info`);return}let r=await t({title:p(`chat:chatPage.renameChat`),inputLabel:p(`chat:chatPage.chatTitle`),value:n.name,confirmLabel:p(`chat:chatPage.save`)});if(r!==null&&r!==n.name)try{let t=await i.renameSession(n.id,r);_(n.id,e=>({...e,name:t.name})),ne(),e(p(`chat:chatPage.chatTitleUpdated`))}catch(e){d(y(e))}},[e,t,o,d,p,_]),pauseGoal:v,setGoalBudget:b,compactSession:x,setCompactionThreshold:S,loadSessionThinkingLevel:w,switchSessionModel:T,switchSessionThinkingLevel:E,switchSessionExecutionMode:D,switchSessionRunMode:O,resolveToolApproval:k}}var $=n(),Fe=(0,J.lazy)(()=>r(()=>import(`./ChatDockView-wwQKATRH.js`).then(e=>({default:e.ChatDockView})),__vite__mapDeps([2,3,4,5,6,7,8,9,10,1,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62])));function Ie(e){let t=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return t?t(e):Promise.reject(Error(`native bridge unavailable`))}function Le({notify:e,navigate:t,browserNotify:n,registerPrimaryAction:r,pendingAsset:a,onAssetConsumed:o,requestText:s,requestConfirm:u}){let{t:d}=c(),f=M(e=>e.client===`mobile-app`),p=M(e=>e.loaded),m=l(),h=f||m,g=(0,J.useRef)(new Set),_=(0,J.useRef)(new Map),y=(0,J.useRef)(null),b=le({notify:e}),x=ge({sessionStates:b.sessionStates,sessionStatesRef:b.sessionStatesRef,localStreamSessionsRef:g,streamGenerationRef:_,updateSessionState:b.updateSessionState,updateSessions:b.updateSessions}),C=ue({sessions:b.sessions,sessionsRef:b.sessionsRef,sessionStates:b.sessionStates,activeId:b.activeId,setActiveId:b.setActiveId,loading:b.loading,localStreamSessionsRef:g,loadSessionMessages:x.loadSessionMessages,releaseSessionState:b.releaseSessionState,singleSessionLayout:h,notify:e}),w=b.createSessionRecord,T=x.loadSessionMessages,E=b.refreshSessions,D=b.sessionStatesRef,O=x.syncLiveSession,k=b.setGlobalError,A=C.openSessionInDock,N=C.moveSessionToGroup,[P,F]=(0,J.useState)({sessionId:``,token:0}),L=(0,J.useCallback)(async(e,t=``)=>{let n=null;f&&(n=await Ie(`mobile_state`).catch(()=>null));let r=se(f,n),i=await w(t,{inheritRecentCwd:r});return i?(A(i)&&N(i,e),i):``},[w,f,N,A]);W(r,L);let z=Ne({browserNotify:n,notify:e,defaultModel:b.defaultModel,localStreamSessionsRef:g,streamGenerationRef:_,sessionStatesRef:b.sessionStatesRef,setActiveId:b.setActiveId,setGlobalError:b.setGlobalError,updateSessionState:b.updateSessionState,updateSessions:b.updateSessions,createSession:L,loadSessionMessages:x.loadSessionMessages,refreshSessions:b.refreshSessions,syncLiveSession:x.syncLiveSession}),{sendPrompt:ee}=z;(0,J.useEffect)(()=>{let e=()=>{let e=R();e&&(async()=>{let t=await L(void 0,e.cwd);t&&e.prompt&&ee(e.prompt,t)})()};return window.addEventListener(I,e),e(),()=>window.removeEventListener(I,e)},[L,ee]);let V=Pe({notify:e,requestText:s,requestConfirm:u,availableModels:b.availableModels,sessionStatesRef:b.sessionStatesRef,updateSessionState:b.updateSessionState,updateSessions:b.updateSessions,replaceSessionStates:b.replaceSessionStates,setGlobalError:b.setGlobalError,syncLiveSession:x.syncLiveSession}),te=(0,J.useCallback)(()=>{if(document.visibilityState!==`visible`||y.current)return;let e=(async()=>{f&&await Ie(`mobile_resume_local_runtime`).catch(()=>void 0);let e=[];try{e=await E(void 0,{preserveExistingOnEmpty:!0})}catch{}let t=new Set([...Object.keys(D.current),...b.activeId?[b.activeId]:[],...e.filter(e=>e.streaming).map(e=>e.id)]);await Promise.allSettled(Array.from(t).map(e=>O(e,{force:!0})))})().finally(()=>{y.current=null});y.current=e},[b.activeId,f,E,D,O]);(0,J.useEffect)(()=>{let e=()=>te();return document.addEventListener(`visibilitychange`,e),window.addEventListener(`pageshow`,e),window.addEventListener(`online`,e),()=>{document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`pageshow`,e),window.removeEventListener(`online`,e)}},[te]);let H=(0,J.useCallback)(async e=>{await T(e,{force:!0}),await E(e)},[T,E]),U=(0,J.useCallback)(async(t,n)=>{if(!(!t?.id||!n))try{if(k(``),(await i.navigateSessionTree(t.id,n,!1)).cancelled)return;await H(t.id),F(e=>({sessionId:t.id,token:e.token+1})),e(d(`chat:chatPage.branchedFromNode`))}catch(e){k(e instanceof Error?e.message:String(e))}},[e,H,k,d]),ne=(0,J.useCallback)(async(t,n)=>{if(!t?.id||!n)return;let r=await s({title:d(`chat:chatPage.createChildChat`),inputLabel:d(`chat:chatPage.chatTitle`),value:`${d(`chat:chatPage.separateChatSuffix`)} · ${t.name||d(`chat:chatPage.newChat`)}`,confirmLabel:d(`chat:chatPage.create`)});if(r!==null)try{k(``);let a=await i.deriveSession(t.id,n,r);await E(a.id),F(e=>({sessionId:t.id,token:e.token+1})),await new Promise(e=>window.setTimeout(e,550)),A(a.id),e(d(`chat:chatPage.childChatCreated`))}catch(e){k(e instanceof Error?e.message:String(e))}},[e,A,E,s,k,d]),ie=(0,J.useCallback)(()=>t(`config`),[t]),ae=(0,J.useMemo)(()=>({sessions:b.sessions,subscribeSessionState:b.subscribeSessionState,getSessionState:b.getSessionState,defaultModel:b.defaultModel,availableModels:b.availableModels,globalError:b.globalError,activeId:b.activeId,compactDock:C.compactDock,sessionTreePulseSessionId:P.sessionId,sessionTreePulseToken:P.token,pendingAsset:a,onAssetConsumed:o,notify:e,openModelSettings:ie,loadSessionMessages:x.loadSessionMessages,loadOlderMessages:x.loadOlderMessages,sendPrompt:z.sendPrompt,queuePrompt:z.queuePrompt,abort:z.abort,pauseGoal:V.pauseGoal,setGoalBudget:V.setGoalBudget,compactSession:V.compactSession,setCompactionThreshold:V.setCompactionThreshold,switchSessionModel:V.switchSessionModel,loadSessionThinkingLevel:V.loadSessionThinkingLevel,switchSessionThinkingLevel:V.switchSessionThinkingLevel,switchSessionExecutionMode:V.switchSessionExecutionMode,switchSessionRunMode:V.switchSessionRunMode,resolveToolApproval:V.resolveToolApproval,selectSessionWorkspace:V.selectSessionWorkspace,renameSession:V.renameSession,branchFromEntry:U,createChildSession:ne,reloadSessionBranch:H,splitDockPanel:C.splitDockPanel,closeDockPanel:C.closeDockPanel}),[b.sessions,b.subscribeSessionState,b.getSessionState,b.defaultModel,b.availableModels,b.globalError,b.activeId,C.compactDock,C.splitDockPanel,C.closeDockPanel,P.sessionId,P.token,a,o,e,ie,x.loadSessionMessages,x.loadOlderMessages,z.sendPrompt,z.queuePrompt,z.abort,V.pauseGoal,V.setGoalBudget,V.compactSession,V.setCompactionThreshold,V.switchSessionModel,V.loadSessionThinkingLevel,V.switchSessionThinkingLevel,V.switchSessionExecutionMode,V.switchSessionRunMode,V.resolveToolApproval,V.selectSessionWorkspace,V.renameSession,U,ne,H]);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`chat-layout max-[900px]:grid-cols-[minmax(0,1fr)] max-[650px]:flex max-[650px]:flex-col max-[650px]:min-h-0 relative grid w-full min-w-0 min-h-0 flex-1 grid-cols-[minmax(0,1fr)] gap-[0] dock-layout`,children:b.loading?(0,$.jsxs)(re,{children:[(0,$.jsx)(B,{className:`animate-spin`,size:24}),(0,$.jsx)(`h2`,{children:d(`chat:chatPage.wakingTheAgent`)}),(0,$.jsx)(`p`,{children:d(`chat:chatPage.modelsSessionsAndContextAreSettlingIntoPlace`)})]}):(0,$.jsx)(`div`,{className:`chat-dock-workspace max-[650px]:[flex:1_1_0] max-[650px]:min-h-0 relative min-w-0 min-h-0 [isolation:isolate] overflow-hidden [border:1px_solid_var(--stroke-soft)] rounded-[var(--r-md)] bg-[var(--panel)]`,children:(0,$.jsx)(S.Provider,{value:ae,children:p&&h?(0,$.jsx)(v,{sessionIds:C.mobileSessionIds,onSelectSession:A,onCreateSession:L}):p?(0,$.jsx)(J.Suspense,{fallback:null,children:(0,$.jsx)(Fe,{compactDock:C.compactDock,onDockReady:C.onDockReady,getTabContextMenuItems:C.getTabContextMenuItems,createSession:L})}):null})})}),V.workspaceSession&&(0,$.jsx)(j,{open:!0,initialPath:V.workspaceSession.cwd,description:d(`common:workspacePicker.selectWorkspaceForChat`,{name:V.workspaceSession.name}),onOpenChange:e=>!e&&V.setWorkspaceSession(null),onSelect:e=>V.switchSessionCwd(V.workspaceSession,e)})]})}export{Le as ChatPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./vendor-react-CHuvPdJE.js";import{t as r}from"./utils-C8uzG5AZ.js";/* empty css */var i=e(t(),1),a=n();function o({className:e,onPointerDownCapture:t,children:n,...o}){let[s,c]=(0,i.useState)(null),l=(0,i.useCallback)(e=>{let n=e.currentTarget.getBoundingClientRect();c({id:Date.now(),x:e.clientX-n.left,y:e.clientY-n.top}),t?.(e)},[t]);return(0,a.jsxs)(`span`,{className:r(`rb-click-spark`,e),onPointerDownCapture:l,...o,children:[n,s&&(0,a.jsx)(`span`,{"aria-hidden":`true`,className:`rb-click-spark-burst`,style:{left:s.x,top:s.y},children:Array.from({length:8},(e,t)=>(0,a.jsx)(`i`,{style:{"--rb-spark-angle":`${t*45}deg`}},t))},s.id)]})}export{o as ClickSpark};
|