pisper 0.6.32 → 0.6.33

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.
Files changed (120) hide show
  1. package/package.json +5 -5
  2. package/web/.vite/manifest.json +640 -640
  3. package/web/assets/{AppDialog-CA7tBvM8.js → AppDialog-bqakHiqz.js} +1 -1
  4. package/web/assets/{AppOverlays-yAnO5otc.js → AppOverlays-CgpAvY9q.js} +1 -1
  5. package/web/assets/{AssetsPage-NJ7uc7WV.js → AssetsPage-BIYsLgYo.js} +1 -1
  6. package/web/assets/{BoardPage-DzHXQHbY.js → BoardPage-C3a-6d1u.js} +3 -3
  7. package/web/assets/{ChannelsPage-DPVT00J9.js → ChannelsPage-6Opibsv4.js} +1 -1
  8. package/web/assets/{ChatAppearancePage-RygKPTc1.js → ChatAppearancePage-D5gk_aXZ.js} +1 -1
  9. package/web/assets/{ChatHistoryPage-CYU3FOWt.js → ChatHistoryPage-D576j6vI.js} +1 -1
  10. package/web/assets/{ChatPage-B9kyMRtf.js → ChatPage-BK61m32j.js} +3 -3
  11. package/web/assets/{ConfigPage-YOI6Jn64.js → ConfigPage-BmnOjD9j.js} +2 -2
  12. package/web/assets/{DesktopWindowControls-DaK-mWjx.js → DesktopWindowControls-DlV6D3IF.js} +1 -1
  13. package/web/assets/{FeaturePage-DI7N2J_K.js → FeaturePage-qCmYebNB.js} +1 -1
  14. package/web/assets/{FileAttachmentPreview-CUdxe5_7.js → FileAttachmentPreview-DkYkLnxt.js} +1 -1
  15. package/web/assets/{FloatingWidgets-CWAsDelc.js → FloatingWidgets-1EwlF6Oj.js} +1 -1
  16. package/web/assets/{FocusRuntimeControls-6sWPafoU.js → FocusRuntimeControls-DiS4SP0x.js} +1 -1
  17. package/web/assets/{GitDiffViewer-Djkbc29o.js → GitDiffViewer-BYB7_K9o.js} +1 -1
  18. package/web/assets/{ManageProjectsDialog-CReohSBv.js → ManageProjectsDialog-CDY8CAam.js} +1 -1
  19. package/web/assets/{MarkdownMessage-jypOknWO.js → MarkdownMessage-BH5Nh-UO.js} +1 -1
  20. package/web/assets/{McpPage-DZuv-kd4.js → McpPage-DFwh1tmO.js} +1 -1
  21. package/web/assets/{MemoryEvolution-ULgArXX6.js → MemoryEvolution-BG4nAEH8.js} +1 -1
  22. package/web/assets/{MemoryPage-CXNLDgIX.js → MemoryPage-CSZweuq_.js} +2 -2
  23. package/web/assets/{MobileNavigation-CEUnhv7K.js → MobileNavigation-DdvgJ1_H.js} +1 -1
  24. package/web/assets/{MorePage-DC_HNY-i.js → MorePage-CM0nAh27.js} +1 -1
  25. package/web/assets/{NewFolderDialog-rxwZ78bu.js → NewFolderDialog-BgVVLoLF.js} +1 -1
  26. package/web/assets/{PageHeader-DQkMisCZ.js → PageHeader-V6fYs6FB.js} +1 -1
  27. package/web/assets/{PhoneDrawer-D3eRtYUJ.js → PhoneDrawer-_T7G0UlW.js} +1 -1
  28. package/web/assets/{PhoneMenuButton-Qt9aL2yf.js → PhoneMenuButton-DlK5D8AZ.js} +1 -1
  29. package/web/assets/{PhoneTopBar-UNRjPZJo.js → PhoneTopBar-CI5JxBFX.js} +1 -1
  30. package/web/assets/{PluginsPage-B19V8jKI.js → PluginsPage-DHJHTTXh.js} +1 -1
  31. package/web/assets/{SafeModePrompt-DDwctKZu.js → SafeModePrompt-B4hmTRuN.js} +1 -1
  32. package/web/assets/{SchedulesPage-C-MlYxbU.js → SchedulesPage-6Qe506NG.js} +1 -1
  33. package/web/assets/{SessionBrowserPane-C7pYbebX.js → SessionBrowserPane-DBc3TNje.js} +2 -2
  34. package/web/assets/{SessionContextPanel-B2sS7myK.js → SessionContextPanel-A-apbPUv.js} +2 -2
  35. package/web/assets/{SessionHome-CS5HPhh0.js → SessionHome-D-iS34Q7.js} +1 -1
  36. package/web/assets/{SessionInspector-BHdqiu1D.js → SessionInspector-B41l7gKR.js} +1 -1
  37. package/web/assets/{SessionShell-CI6d2UxF.js → SessionShell-Byw5069L.js} +1 -1
  38. package/web/assets/{SettingsSidebar-SMxWLbhN.js → SettingsSidebar-CMu7qKbO.js} +1 -1
  39. package/web/assets/{ShortcutHelpDialog-DDyxtBqb.js → ShortcutHelpDialog-CaaKIjWq.js} +1 -1
  40. package/web/assets/{ShortcutKeys-CuiTSvO5.js → ShortcutKeys-DEP10d_k.js} +1 -1
  41. package/web/assets/{SidebarUpdateStatus-CgDyoVVT.js → SidebarUpdateStatus-4sXZK0UG.js} +1 -1
  42. package/web/assets/{SkillsPage-C217PvFK.js → SkillsPage-r_UPbRKb.js} +1 -1
  43. package/web/assets/{TaskProcessesPane-CRRUKQPY.js → TaskProcessesPane-VO8SPtCI.js} +1 -1
  44. package/web/assets/{TaskTerminalView-DZL83yst.js → TaskTerminalView-B5GUaW-L.js} +1 -1
  45. package/web/assets/{TerminalPanel-CeGX1ISs.js → TerminalPanel-toRRYBjv.js} +1 -1
  46. package/web/assets/{WebDesktopPet-mgzM1lUl.js → WebDesktopPet-CM4U0kvi.js} +1 -1
  47. package/web/assets/{WorkflowsPage-CsH9o0Vt.js → WorkflowsPage-BcXqmyBY.js} +1 -1
  48. package/web/assets/{WorkspacePicker-Bo197KnL.js → WorkspacePicker-BRa_IVqp.js} +1 -1
  49. package/web/assets/{api-Bn6Yqhfj.js → api-CCLf8CGI.js} +1 -1
  50. package/web/assets/{app-update-C17JitpX.js → app-update-DcdhTBg3.js} +1 -1
  51. package/web/assets/{approval-confirm-CLyo75Wg.js → approval-confirm-Db5cFtCd.js} +1 -1
  52. package/web/assets/{board-projects-B7ISKK5M.js → board-projects-C3_RLAYt.js} +1 -1
  53. package/web/assets/{bots-store-BM-RDFHS.js → bots-store-BYTwHk9o.js} +1 -1
  54. package/web/assets/{chat-api-BL_tZCbY.js → chat-api-PdHMtAmc.js} +1 -1
  55. package/web/assets/{client-store-D3sThJb-.js → client-store-Df-MtlGW.js} +1 -1
  56. package/web/assets/{config-search-Q-gLiXu_.js → config-search-Bk1H58rt.js} +1 -1
  57. package/web/assets/{desktop-hosts-B3CWL4di.js → desktop-hosts-kpDUJPHM.js} +1 -1
  58. package/web/assets/{dialog-DzLlhTSc.js → dialog-CEcIiRdx.js} +1 -1
  59. package/web/assets/{event-stream-DHX619rI.js → event-stream-B3CGgFfm.js} +1 -1
  60. package/web/assets/{events-BOOZIPa5.js → events-fUNyYQhT.js} +1 -1
  61. package/web/assets/{focus-session-composer-bits-vPmpISU7.js → focus-session-composer-bits-DWovCteo.js} +1 -1
  62. package/web/assets/{folder-paths-CfkxmkpU.js → folder-paths-e_B8xA6T.js} +1 -1
  63. package/web/assets/{hosts-DI7_AOnB.js → hosts-DlCCpVaG.js} +1 -1
  64. package/web/assets/{http-BLTlr2yB.js → http-Ck9ziPLg.js} +1 -1
  65. package/web/assets/{http-response-BVH7o4IQ.js → http-response-BMpatf4O.js} +1 -1
  66. package/web/assets/{i18n-D5Pj8hy6.js → i18n-D1oE4DVX.js} +1 -1
  67. package/web/assets/{index-DguGXGe9.js → index-Cd49jlmz.js} +2 -2
  68. package/web/assets/{machine-messages-BjYmTDz4.js → machine-messages-D5urBDZn.js} +1 -1
  69. package/web/assets/{machines-api-AYwQ9wWh.js → machines-api-Be-AjTEL.js} +1 -1
  70. package/web/assets/{memory-api-260Oa_xZ.js → memory-api-D9qnDSAr.js} +1 -1
  71. package/web/assets/{mount-app-CoTBrIGD.js → mount-app-D278htsi.js} +3 -3
  72. package/web/assets/{permission-rules-api-D2u3PIpr.js → permission-rules-api-i-sBmQT3.js} +1 -1
  73. package/web/assets/{pick-system-directory-BPDhvlE7.js → pick-system-directory-Cnb1L8Kd.js} +1 -1
  74. package/web/assets/{placements-deNW2Eg-.js → placements-BPrt5jd4.js} +2 -2
  75. package/web/assets/{popover-B-a7ZBQS.js → popover-5MqQ5QIH.js} +1 -1
  76. package/web/assets/{public-Dbs615LR.js → public-B7A7Bf7w.js} +1 -1
  77. package/web/assets/{public-BV32k5q1.js → public-BhSl1_DQ.js} +2 -2
  78. package/web/assets/{public-COJrQD9j.js → public-DAqU5ju6.js} +2 -2
  79. package/web/assets/{public-CoescP9_.js → public-DHE_Bffl.js} +1 -1
  80. package/web/assets/{public-components-jrX-6RqC.js → public-components-DS306Oz2.js} +1 -1
  81. package/web/assets/public-diff-e-dAYuJF.js +1 -0
  82. package/web/assets/public-events-DK8fPqRB.js +1 -0
  83. package/web/assets/{public-flags-B-hhqV7C.js → public-flags-_XZrt2pU.js} +1 -1
  84. package/web/assets/{public-folder-dialog-ywXpPZXJ.js → public-folder-dialog-DgKjmujY.js} +1 -1
  85. package/web/assets/{public-greeting-VN-jBq7k.js → public-greeting-DJIT1WWT.js} +1 -1
  86. package/web/assets/{public-session-CzxHzz2C.js → public-session-CuS3mRPA.js} +1 -1
  87. package/web/assets/{public-sidebar-BA8SJ3r0.js → public-sidebar-Cxg21QnN.js} +1 -1
  88. package/web/assets/{runtime-capabilities-store-CXahF-U2.js → runtime-capabilities-store-DcLHj_-T.js} +1 -1
  89. package/web/assets/{safe-mode-instance-Dex9ZvJH.js → safe-mode-instance-Dpp0f3FD.js} +1 -1
  90. package/web/assets/safe-mode-sentinel-CpYA8gLC.js +1 -0
  91. package/web/assets/{session-change-summary-api-CJ2yVJEm.js → session-change-summary-api-BzjbV-XG.js} +1 -1
  92. package/web/assets/{session-home-BTPHTXVm.js → session-home-BE2Q0var.js} +1 -1
  93. package/web/assets/{session-inspector-store-DFANj1eG.js → session-inspector-store-BxozyuFV.js} +1 -1
  94. package/web/assets/{session-organization-api-5GadAj0U.js → session-organization-api-CLAh265X.js} +1 -1
  95. package/web/assets/{session-scope-C9THRhK5.js → session-scope-BM93WXwD.js} +1 -1
  96. package/web/assets/{session-tree-actions-C7sDBs9_.js → session-tree-actions-BlqzMI3H.js} +1 -1
  97. package/web/assets/{session-tree-summary-D_mv7Xsy.js → session-tree-summary-B8SEWLOy.js} +1 -1
  98. package/web/assets/{shortcuts-CQYp4qaG.js → shortcuts-SQuwtLn8.js} +1 -1
  99. package/web/assets/{side-chat-context-BoevraRd.js → side-chat-context-Dw_WsQW3.js} +4 -4
  100. package/web/assets/{sidebar-Ddf5aEv6.js → sidebar-B6oY6pcm.js} +1 -1
  101. package/web/assets/{sidebar-store-DlicJ7L2.js → sidebar-store-DWzo4gcp.js} +1 -1
  102. package/web/assets/{speech-session--qKchPMR.js → speech-session-Dx6waD1F.js} +1 -1
  103. package/web/assets/{startup-queries-Cf6RSLkK.js → startup-queries-DG8R4Ryc.js} +1 -1
  104. package/web/assets/{use-i18n-vKUIcJX7.js → use-i18n-CrMP8KP1.js} +1 -1
  105. package/web/assets/{use-open-bot-CBgzzpYP.js → use-open-bot-DU7b6x-6.js} +1 -1
  106. package/web/assets/{use-studio-actions-C0IOFiXt.js → use-studio-actions-Cb0xo6pc.js} +1 -1
  107. package/web/assets/{useCatalogProjects-HPDUmiqp.js → useCatalogProjects-BJCTVrvM.js} +1 -1
  108. package/web/assets/{useMachines-CPMVc3JJ.js → useMachines-BnEhFLR-.js} +1 -1
  109. package/web/assets/{useNewProjectPicker-DvaRu71A.js → useNewProjectPicker-CsJnnQt_.js} +2 -2
  110. package/web/assets/{useNow-Df6N6r2Y.js → useNow-D9FGGV1H.js} +1 -1
  111. package/web/assets/{usePhoneShell-K9ZGSs1n.js → usePhoneShell-Bjigstxq.js} +1 -1
  112. package/web/assets/{useSessionListQuery-w1eeoWqD.js → useSessionListQuery-Bfjp1ecc.js} +1 -1
  113. package/web/assets/{useSessionRowActions-DQcnq6I1.js → useSessionRowActions-84-_ahHt.js} +1 -1
  114. package/web/assets/{useSidebarModel-De1pMvik.js → useSidebarModel-0OeDSimB.js} +1 -1
  115. package/web/assets/{workspace-folders-B5Z-ckI5.js → workspace-folders-1RLblom2.js} +1 -1
  116. package/web/assets/{workspace-order-store-hJOk5NHh.js → workspace-order-store-Du6GVhMP.js} +1 -1
  117. package/web/index.html +1 -1
  118. package/web/assets/public-diff-D6Sa7fGe.js +0 -1
  119. package/web/assets/public-events-D8WNal9Q.js +0 -1
  120. package/web/assets/safe-mode-sentinel-DRBisTV9.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-app-CoTBrIGD.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-router-CSN_DGvx.js","assets/vendor-react-DwNgTV1j.js","assets/vendor-ui-DvrYggeS.js","assets/routes-DIeaqWVc.js","assets/i18n-D5Pj8hy6.js","assets/storage-DtvZ_lEu.js","assets/use-i18n-vKUIcJX7.js","assets/vendor-state-GkUciC5H.js","assets/useQuery-DfOU-27z.js","assets/query-DFQayLF5.js","assets/startup-queries-Cf6RSLkK.js","assets/mutation-b4pPvB7p.js","assets/api-Bn6Yqhfj.js","assets/abort-signal-f4JsiYKX.js","assets/http-response-BVH7o4IQ.js","assets/event-stream-DHX619rI.js","assets/http-BLTlr2yB.js","assets/runtime-capabilities-CPDBo3tu.js","assets/runtime-capabilities-store-CXahF-U2.js","assets/use-mobile-C2tPBAza.js","assets/client-store-D3sThJb-.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/circle-check-iEdCm3Pw.js","assets/settings-navigation-C-nsUyew.js","assets/bell-BjONAtgH.js","assets/bot-B3TaBp_T.js","assets/info-DATxy0fb.js","assets/monitor-ORxecA9m.js","assets/refresh-cw-TbWxTY4K.js","assets/list-T5PqlpS2.js","assets/search-D0mqDaf_.js","assets/settings-QX0oWnVK.js","assets/square-pen-hYbjKh6A.js","assets/triangle-alert-CE1q54ci.js","assets/x-07u4-129.js","assets/more-pages-D_PnxLN0.js","assets/dist-41X0pdUs.js","assets/dist-BsRXXcSL.js","assets/dist-BiRPwy4W.js","assets/dist-DzGQ7sLi.js","assets/es2015-DTZdOI9P.js","assets/tooltip-D4MFbqcG.js","assets/dist-BRjj4UeB.js","assets/dist-OB2r6Xsr.js","assets/utils-C8uzG5AZ.js","assets/button-CCcCN8tE.js","assets/kbd-CAufZTkl.js","assets/events-BOOZIPa5.js","assets/shortcuts-CQYp4qaG.js","assets/sidebar-store-DlicJ7L2.js","assets/dialog-DzLlhTSc.js","assets/dist-BHkR6BLP.js","assets/PageState-Cz6vFMXv.js","assets/back-navigation-CK7X_5Bc.js","assets/alert-DRIrgNI4.js","assets/route-context-DvWDul4T.js","assets/new-task-DG4I6cda.js","assets/shortcut-aria-jHRmld9z.js","assets/sidebar-commands-ZA1UOA_F.js","assets/app-primitives-Drz_SjnR.js","assets/switch-D_G8wFhs.js","assets/tabs-DsgBuvJv.js","assets/dist-BaBySQmo.js","assets/badge-CWB3lj2H.js","assets/card-C3A0b5KR.js","assets/public-CoescP9_.js","assets/public-events-D8WNal9Q.js","assets/terminal-context-aIsIJPn8.js","assets/BrandLogo-k3CvJjd4.js","assets/web-preview-C7DdG9JP.js","assets/web-preview-events-D7F0Z-Hy.js","assets/app-update-C17JitpX.js","assets/navigation-DkcKi1_5.js"])))=>i.map(i=>d[i]);
2
- import{h as e}from"./vendor-router-CSN_DGvx.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var t=Object.freeze(`pisper-ui,pisper-sidebar,pisper-notification-sounds,pisper-session-context-layout,pisper-session-inspector,pisper-composer-toolbar,pisper-zcode-composer-toolbar,pisper-workspace-order,pisper-registered-projects,pisper-board-view,pisper-launch-defaults,pisper-floating-widgets,pisper-floating-placement,pisper-components-safe-mode,pisper-language,pisper-shortcuts,pisper-board-shortcuts,pisper-active-session,pisper-last-session,pisper-mobile-session-tabs,pisper-terminal-panel,pisper-model-onboarding-v1-dismissed,pisper.config.manageConnectionsOpen,pisper.config.visualConnectionsOpen,pisper-web-desktop-pet-position,pisper-memory-view`.split(`,`)),n=new Set(t),r=`pisper-chat-layout`,i=524288,a=class extends Error{constructor(){super(`browser_preferences_invalid`),this.code=`browser_preferences_invalid`,this.statusCode=400}};function o(e){if(!e||typeof e!=`object`||Array.isArray(e))throw new a;let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw new a;return e}function s(e){let r=o(e),s=Object.entries(r);if(s.length>t.length)throw new a;let c=Object.create(null),l=0;for(let[e,t]of s){if(!n.has(e)||t!==null&&typeof t!=`string`)throw new a;if(typeof t==`string`){let e=new TextEncoder().encode(t).byteLength;if(e>i||(l+=e,l>2097152))throw new a}c[e]=t}return c}function c(e,t,n=!1){if(e===void 0)return{};let r=o(e);if(n&&Object.keys(r).length!==Object.keys(t).length)throw new a;let i=Object.create(null);for(let[e,n]of Object.entries(r)){if(!Object.hasOwn(t,e)||typeof n!=`number`||!Number.isSafeInteger(n)||n<=0)throw new a;i[e]=n}return i}function l(e){let t=o(e);if(Object.keys(t).some(e=>![`version`,`values`,`revisions`].includes(e))||t.version!==1)throw new a;let n={...o(t.values)};delete n[r];let i=t.revisions===void 0?void 0:{...o(t.revisions)};i&&delete i[r];let l=s(n);return{version:1,values:l,revisions:c(i,l)}}var u=`/api/local/browser-preferences`,d=`pisper.browserPreferences.pending`,f=new Set(t),p=new Map,m=null,h=!1,g=null,_=!1,v=0;function y(e){if(!f.has(e))throw Error(`Page state key is not registered`)}function b(){try{let e=JSON.parse(window.sessionStorage.getItem(d)||`{}`);return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([e,t])=>f.has(e)&&typeof t==`object`&&!!t&&`value`in t&&(t.value===null||typeof t.value==`string`)&&`revision`in t&&Number.isSafeInteger(t.revision)&&t.revision>0))}catch{return{}}}function x(e){try{Object.keys(e).length?window.sessionStorage.setItem(d,JSON.stringify(e)):window.sessionStorage.removeItem(d)}catch{}}function S(){return v=Math.max(v+1,Date.now()*1e3),v}function C(e,t){let n={value:t,revision:S()};return x({...b(),[e]:n}),n}function w(e){let t=b();for(let[n,r]of e)t[n]?.revision===r.revision&&delete t[n];x(t)}function T(e){return{updates:Object.fromEntries([...e].map(([e,t])=>[e,t.value])),revisions:Object.fromEntries([...e].map(([e,t])=>[e,t.revision]))}}async function E(e){let t=new AbortController,n=setTimeout(()=>t.abort(),3e3);try{if(!(await window.fetch(u,{method:`PUT`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},body:JSON.stringify(T(e)),signal:t.signal})).ok)throw Error(`Browser preferences could not be stored`)}finally{clearTimeout(n)}}function D(){g===null&&(g=window.setTimeout(()=>{g=null,O()},2e3))}async function O(){if(!h){for(h=!0;p.size;){let e=new Map(p);p.clear(),m=e;try{await E(e),w(e)}catch{for(let[t,n]of e)p.has(t)||p.set(t,n);m=null,D();break}m=null}h=!1}}function k(e,t){f.has(e)&&_&&(p.set(e,t),O())}function A(){if(!_)return;let e=new Map(m||[]);for(let[t,n]of p)(e.get(t)?.revision||0)<n.revision&&e.set(t,n);if(!e.size)return;let t=new Blob([JSON.stringify(T(e))],{type:`application/json`});navigator.sendBeacon?.(u,t)||window.fetch(u,{method:`POST`,credentials:`same-origin`,body:t,keepalive:!0}).catch(()=>{})}var j={getItem:e=>(y(e),window.localStorage.getItem(e)),setItem:(e,t)=>{y(e),window.localStorage.setItem(e,t),k(e,C(e,t))},removeItem:e=>{y(e),window.localStorage.removeItem(e),k(e,C(e,null))}};async function M(){let e;try{e=window.localStorage}catch{return}let n=new AbortController,r=setTimeout(()=>n.abort(),3e3);try{let r=await window.fetch(u,{credentials:`same-origin`,cache:`no-store`,signal:n.signal});if(r.ok){let n=l(await r.json());_=!0;let i=b(),a=new Map,o=new Map;for(let r of t){let t=n.revisions[r]||0;v=Math.max(v,t);let s=i[r];if(s&&s.revision>t){v=Math.max(v,s.revision),s.value===null?e.removeItem(r):e.setItem(r,s.value),o.set(r,s);continue}if(s&&delete i[r],Object.hasOwn(n.values,r)){let t=n.values[r];t===null?e.removeItem(r):e.setItem(r,t)}else{let t=e.getItem(r);if(t!==null){let e={value:t,revision:S()};i[r]=e,a.set(r,e)}}}e.removeItem(`pisper-chat-layout`),x(i);for(let[e,t]of o)k(e,t);for(let[e,t]of a)p.set(e,t);a.size&&O()}}catch{}finally{clearTimeout(r)}window.addEventListener(`pagehide`,A),window.addEventListener(`online`,()=>void O())}M().then(()=>e(()=>import(`./mount-app-CoTBrIGD.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,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,63,64,65,66,67,68,69,70,71,72,73,74])));export{j as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-app-D278htsi.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-router-CSN_DGvx.js","assets/vendor-react-DwNgTV1j.js","assets/vendor-ui-DvrYggeS.js","assets/routes-DIeaqWVc.js","assets/i18n-D1oE4DVX.js","assets/storage-DtvZ_lEu.js","assets/use-i18n-CrMP8KP1.js","assets/vendor-state-GkUciC5H.js","assets/useQuery-DfOU-27z.js","assets/query-DFQayLF5.js","assets/startup-queries-DG8R4Ryc.js","assets/mutation-b4pPvB7p.js","assets/api-CCLf8CGI.js","assets/abort-signal-f4JsiYKX.js","assets/http-response-BMpatf4O.js","assets/event-stream-B3CGgFfm.js","assets/http-Ck9ziPLg.js","assets/runtime-capabilities-CPDBo3tu.js","assets/runtime-capabilities-store-DcLHj_-T.js","assets/use-mobile-C2tPBAza.js","assets/client-store-Df-MtlGW.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/circle-check-iEdCm3Pw.js","assets/settings-navigation-C-nsUyew.js","assets/bell-BjONAtgH.js","assets/bot-B3TaBp_T.js","assets/info-DATxy0fb.js","assets/monitor-ORxecA9m.js","assets/refresh-cw-TbWxTY4K.js","assets/list-T5PqlpS2.js","assets/search-D0mqDaf_.js","assets/settings-QX0oWnVK.js","assets/square-pen-hYbjKh6A.js","assets/triangle-alert-CE1q54ci.js","assets/x-07u4-129.js","assets/more-pages-D_PnxLN0.js","assets/dist-41X0pdUs.js","assets/dist-BsRXXcSL.js","assets/dist-BiRPwy4W.js","assets/dist-DzGQ7sLi.js","assets/es2015-DTZdOI9P.js","assets/tooltip-D4MFbqcG.js","assets/dist-BRjj4UeB.js","assets/dist-OB2r6Xsr.js","assets/utils-C8uzG5AZ.js","assets/button-CCcCN8tE.js","assets/kbd-CAufZTkl.js","assets/events-fUNyYQhT.js","assets/shortcuts-SQuwtLn8.js","assets/sidebar-store-DWzo4gcp.js","assets/dialog-CEcIiRdx.js","assets/dist-BHkR6BLP.js","assets/PageState-Cz6vFMXv.js","assets/back-navigation-CK7X_5Bc.js","assets/alert-DRIrgNI4.js","assets/route-context-DvWDul4T.js","assets/new-task-DG4I6cda.js","assets/shortcut-aria-jHRmld9z.js","assets/sidebar-commands-ZA1UOA_F.js","assets/app-primitives-Drz_SjnR.js","assets/switch-D_G8wFhs.js","assets/tabs-DsgBuvJv.js","assets/dist-BaBySQmo.js","assets/badge-CWB3lj2H.js","assets/card-C3A0b5KR.js","assets/public-DHE_Bffl.js","assets/public-events-DK8fPqRB.js","assets/terminal-context-aIsIJPn8.js","assets/BrandLogo-k3CvJjd4.js","assets/web-preview-C7DdG9JP.js","assets/web-preview-events-D7F0Z-Hy.js","assets/app-update-DcdhTBg3.js","assets/navigation-DkcKi1_5.js"])))=>i.map(i=>d[i]);
2
+ import{h as e}from"./vendor-router-CSN_DGvx.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var t=Object.freeze(`pisper-ui,pisper-sidebar,pisper-notification-sounds,pisper-session-context-layout,pisper-session-inspector,pisper-composer-toolbar,pisper-zcode-composer-toolbar,pisper-workspace-order,pisper-registered-projects,pisper-board-view,pisper-launch-defaults,pisper-floating-widgets,pisper-floating-placement,pisper-components-safe-mode,pisper-language,pisper-shortcuts,pisper-board-shortcuts,pisper-active-session,pisper-last-session,pisper-mobile-session-tabs,pisper-terminal-panel,pisper-model-onboarding-v1-dismissed,pisper.config.manageConnectionsOpen,pisper.config.visualConnectionsOpen,pisper-web-desktop-pet-position,pisper-memory-view`.split(`,`)),n=new Set(t),r=`pisper-chat-layout`,i=524288,a=class extends Error{constructor(){super(`browser_preferences_invalid`),this.code=`browser_preferences_invalid`,this.statusCode=400}};function o(e){if(!e||typeof e!=`object`||Array.isArray(e))throw new a;let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw new a;return e}function s(e){let r=o(e),s=Object.entries(r);if(s.length>t.length)throw new a;let c=Object.create(null),l=0;for(let[e,t]of s){if(!n.has(e)||t!==null&&typeof t!=`string`)throw new a;if(typeof t==`string`){let e=new TextEncoder().encode(t).byteLength;if(e>i||(l+=e,l>2097152))throw new a}c[e]=t}return c}function c(e,t,n=!1){if(e===void 0)return{};let r=o(e);if(n&&Object.keys(r).length!==Object.keys(t).length)throw new a;let i=Object.create(null);for(let[e,n]of Object.entries(r)){if(!Object.hasOwn(t,e)||typeof n!=`number`||!Number.isSafeInteger(n)||n<=0)throw new a;i[e]=n}return i}function l(e){let t=o(e);if(Object.keys(t).some(e=>![`version`,`values`,`revisions`].includes(e))||t.version!==1)throw new a;let n={...o(t.values)};delete n[r];let i=t.revisions===void 0?void 0:{...o(t.revisions)};i&&delete i[r];let l=s(n);return{version:1,values:l,revisions:c(i,l)}}var u=`/api/local/browser-preferences`,d=`pisper.browserPreferences.pending`,f=new Set(t),p=new Map,m=null,h=!1,g=null,_=!1,v=0;function y(e){if(!f.has(e))throw Error(`Page state key is not registered`)}function b(){try{let e=JSON.parse(window.sessionStorage.getItem(d)||`{}`);return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(([e,t])=>f.has(e)&&typeof t==`object`&&!!t&&`value`in t&&(t.value===null||typeof t.value==`string`)&&`revision`in t&&Number.isSafeInteger(t.revision)&&t.revision>0))}catch{return{}}}function x(e){try{Object.keys(e).length?window.sessionStorage.setItem(d,JSON.stringify(e)):window.sessionStorage.removeItem(d)}catch{}}function S(){return v=Math.max(v+1,Date.now()*1e3),v}function C(e,t){let n={value:t,revision:S()};return x({...b(),[e]:n}),n}function w(e){let t=b();for(let[n,r]of e)t[n]?.revision===r.revision&&delete t[n];x(t)}function T(e){return{updates:Object.fromEntries([...e].map(([e,t])=>[e,t.value])),revisions:Object.fromEntries([...e].map(([e,t])=>[e,t.revision]))}}async function E(e){let t=new AbortController,n=setTimeout(()=>t.abort(),3e3);try{if(!(await window.fetch(u,{method:`PUT`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},body:JSON.stringify(T(e)),signal:t.signal})).ok)throw Error(`Browser preferences could not be stored`)}finally{clearTimeout(n)}}function D(){g===null&&(g=window.setTimeout(()=>{g=null,O()},2e3))}async function O(){if(!h){for(h=!0;p.size;){let e=new Map(p);p.clear(),m=e;try{await E(e),w(e)}catch{for(let[t,n]of e)p.has(t)||p.set(t,n);m=null,D();break}m=null}h=!1}}function k(e,t){f.has(e)&&_&&(p.set(e,t),O())}function A(){if(!_)return;let e=new Map(m||[]);for(let[t,n]of p)(e.get(t)?.revision||0)<n.revision&&e.set(t,n);if(!e.size)return;let t=new Blob([JSON.stringify(T(e))],{type:`application/json`});navigator.sendBeacon?.(u,t)||window.fetch(u,{method:`POST`,credentials:`same-origin`,body:t,keepalive:!0}).catch(()=>{})}var j={getItem:e=>(y(e),window.localStorage.getItem(e)),setItem:(e,t)=>{y(e),window.localStorage.setItem(e,t),k(e,C(e,t))},removeItem:e=>{y(e),window.localStorage.removeItem(e),k(e,C(e,null))}};async function M(){let e;try{e=window.localStorage}catch{return}let n=new AbortController,r=setTimeout(()=>n.abort(),3e3);try{let r=await window.fetch(u,{credentials:`same-origin`,cache:`no-store`,signal:n.signal});if(r.ok){let n=l(await r.json());_=!0;let i=b(),a=new Map,o=new Map;for(let r of t){let t=n.revisions[r]||0;v=Math.max(v,t);let s=i[r];if(s&&s.revision>t){v=Math.max(v,s.revision),s.value===null?e.removeItem(r):e.setItem(r,s.value),o.set(r,s);continue}if(s&&delete i[r],Object.hasOwn(n.values,r)){let t=n.values[r];t===null?e.removeItem(r):e.setItem(r,t)}else{let t=e.getItem(r);if(t!==null){let e={value:t,revision:S()};i[r]=e,a.set(r,e)}}}e.removeItem(`pisper-chat-layout`),x(i);for(let[e,t]of o)k(e,t);for(let[e,t]of a)p.set(e,t);a.size&&O()}}catch{}finally{clearTimeout(r)}window.addEventListener(`pagehide`,A),window.addEventListener(`online`,()=>void O())}M().then(()=>e(()=>import(`./mount-app-D278htsi.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,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,63,64,65,66,67,68,69,70,71,72,73,74])));export{j as t};
@@ -1 +1 @@
1
- import{u as e}from"./i18n-D5Pj8hy6.js";e.addResourceBundle(`zh-CN`,`machines`,{title:`远程机器`,description:`让 Agent 直接在别的机器上工作,对方不用安装 Pisper。模型和 API Key 留在这台电脑上。`,addSsh:`添加 SSH 机器`,addNode:`让对方连过来`,unnamed:`未命名机器`,recheck:`重新测试 {name}`,remove:`移除 {name}`,removeDescription:`移除后,这台机器上的会话不能再运行工具。对方机器上的文件不受影响。`,"status.checking":`正在连接…`,"status.online":`在线`,"status.offline":`离线`,"status.unchecked":`未测试`,"status.reachable":`能连接`,"status.unreachable":`连不上`,"form.target":`地址`,"form.targetPlaceholder":`user@host 或 SSH 配置里的别名`,"form.port":`端口`,"form.name":`名称`,"form.namePlaceholder":`可选,比如“生产服务器”`,"form.defaultCwd":`默认目录`,"form.keyHint":`用这台电脑现有的 SSH 配置和密钥登录,Pisper 不保存密码和私钥。`,"form.test":`测试连接`,"form.testing":`正在连接…`,"form.testOk":`连接正常:{platform},家目录 {home}`,"form.save":`保存`,"form.cancel":`取消`,"pair.description":`适合没有 SSH 服务的机器:对方主动连到这台电脑,不用开放端口,也不用安装 Pisper,只需要 Node.js 20 以上。`,"pair.remoteOff":`远程访问还没打开,对方连不上这台电脑。请先打开上面的远程访问,再重新生成命令。`,"pair.openRemote":`去打开远程访问`,"pair.code":`配对码`,"pair.codeHint":`10 分钟内有效,只能用一次`,"pair.runThere":`在对方机器上依次运行:`,"pair.rootHint":`把目录换成允许操作的位置,可以写多个 --root。Agent 只能在这些目录里工作。`,"pair.brainPlaceholder":`<这台电脑的地址>`,"pair.rootPlaceholder":`<目录>`,"pair.copy":`复制命令`,"pair.copied":`已复制`,"pair.done":`完成`,"failure.refused":`连接被拒绝:对方可能没有运行 SSH 服务,或者端口不对。没有 SSH 服务的机器可以用“让对方连过来”。`,"failure.unreachable":`连不上对方机器:请检查地址、网络和防火墙。`,"failure.auth":`对方有 SSH 服务,但拒绝了登录。Pisper 只用密钥登录,请先把这台电脑的公钥加到对方的 authorized_keys。`,"failure.hostKey":`对方的主机指纹变了,为了安全已拒绝连接。如果确认机器重装过,请先更新这台电脑的 known_hosts。`,"failure.clientMissing":`这台电脑上找不到 ssh 命令,请先安装 OpenSSH 客户端。`,"failure.timeout":`对方机器太久没有响应。`,"failure.invalidTarget":`地址只能是 user@host、host 或 SSH 配置里的别名。`,"failure.invalidPort":`端口必须是 1 到 65535 之间的整数。`,"failure.folderMissing":`对方机器上没有这个目录。`,"failure.outsideRoots":`这个目录不在对方允许的范围内。`,"failure.offline":`这台机器现在不在线:请在对方机器上运行 npx pisper executor。`,"failure.notFound":`这台机器已被移除。`,"failure.generic":`和对方机器的连接失败。`}),e.addResourceBundle(`en-US`,`machines`,{title:`Remote machines`,description:`Let the agent work directly on another machine, without installing Pisper there. Models and API keys stay on this computer.`,addSsh:`Add SSH machine`,addNode:`Let a machine connect here`,unnamed:`Unnamed machine`,recheck:`Test {name} again`,remove:`Remove {name}`,removeDescription:`Sessions on this machine will no longer be able to run tools. Files on that machine are not affected.`,"status.checking":`Connecting…`,"status.online":`Online`,"status.offline":`Offline`,"status.unchecked":`Not tested`,"status.reachable":`Reachable`,"status.unreachable":`Unreachable`,"form.target":`Address`,"form.targetPlaceholder":`user@host or an SSH config alias`,"form.port":`Port`,"form.name":`Name`,"form.namePlaceholder":`Optional, like "Production"`,"form.defaultCwd":`Default folder`,"form.keyHint":`Signs in with this computer's existing SSH config and keys. Pisper stores no passwords or private keys.`,"form.test":`Test connection`,"form.testing":`Connecting…`,"form.testOk":`Connected: {platform}, home folder {home}`,"form.save":`Save`,"form.cancel":`Cancel`,"pair.description":`For machines without an SSH service: that machine connects to this computer, so no open port and no Pisper install. It only needs Node.js 20 or later.`,"pair.remoteOff":`Remote access is off, so that machine can't reach this computer. Turn on remote access above, then generate the commands again.`,"pair.openRemote":`Open remote access`,"pair.code":`Pairing code`,"pair.codeHint":`valid for 10 minutes, single use`,"pair.runThere":`Run these on that machine:`,"pair.rootHint":`Replace the folder with where work is allowed. You can pass --root several times. The agent can only work inside these folders.`,"pair.brainPlaceholder":`<this computer's address>`,"pair.rootPlaceholder":`<folder>`,"pair.copy":`Copy commands`,"pair.copied":`Copied`,"pair.done":`Done`,"failure.refused":`Connection refused: that machine may not be running an SSH service, or the port is wrong. For machines without SSH, use "Let a machine connect here".`,"failure.unreachable":`Can't reach that machine. Check the address, network and firewall.`,"failure.auth":`That machine has an SSH service but refused the sign-in. Pisper only signs in with keys, so add this computer's public key to authorized_keys there.`,"failure.hostKey":`That machine's host key changed, so the connection was refused for safety. If it was reinstalled, update known_hosts on this computer first.`,"failure.clientMissing":`The ssh command isn't available on this computer. Install the OpenSSH client first.`,"failure.timeout":`That machine took too long to respond.`,"failure.invalidTarget":`The address must be user@host, host, or an SSH config alias.`,"failure.invalidPort":`The port must be a whole number from 1 to 65535.`,"failure.folderMissing":`That folder doesn't exist on the other machine.`,"failure.outsideRoots":`That folder is outside what the other machine allows.`,"failure.offline":`This machine is offline. Run npx pisper executor on it.`,"failure.notFound":`This machine was removed.`,"failure.generic":`The connection to that machine failed.`});function t(e,t,n=``){switch(t){case`connection_refused`:return e(`machines:failure.refused`);case`unreachable`:return e(`machines:failure.unreachable`);case`auth_failed`:return e(`machines:failure.auth`);case`host_key_changed`:return e(`machines:failure.hostKey`);case`ssh_client_missing`:return e(`machines:failure.clientMissing`);case`ssh_timeout`:return e(`machines:failure.timeout`);case`invalid_target`:return e(`machines:failure.invalidTarget`);case`invalid_port`:return e(`machines:failure.invalidPort`);case`machine_folder_missing`:return e(`machines:failure.folderMissing`);case`machine_folder_outside_roots`:return e(`machines:failure.outsideRoots`);case`machine_offline`:return e(`machines:failure.offline`);case`machine_not_found`:return e(`machines:failure.notFound`);default:return n||e(`machines:failure.generic`)}}function n(e,t){return[`npx pisper executor pair --brain ${e.remote.endpoints[0]||t.brain} --fingerprint ${e.remote.fingerprint||t.fingerprint} --code ${e.code} --root ${t.root}`,`npx pisper executor`]}export{t as n,n as t};
1
+ import{u as e}from"./i18n-D1oE4DVX.js";e.addResourceBundle(`zh-CN`,`machines`,{title:`远程机器`,description:`让 Agent 直接在别的机器上工作,对方不用安装 Pisper。模型和 API Key 留在这台电脑上。`,addSsh:`添加 SSH 机器`,addNode:`让对方连过来`,unnamed:`未命名机器`,recheck:`重新测试 {name}`,remove:`移除 {name}`,removeDescription:`移除后,这台机器上的会话不能再运行工具。对方机器上的文件不受影响。`,"status.checking":`正在连接…`,"status.online":`在线`,"status.offline":`离线`,"status.unchecked":`未测试`,"status.reachable":`能连接`,"status.unreachable":`连不上`,"form.target":`地址`,"form.targetPlaceholder":`user@host 或 SSH 配置里的别名`,"form.port":`端口`,"form.name":`名称`,"form.namePlaceholder":`可选,比如“生产服务器”`,"form.defaultCwd":`默认目录`,"form.keyHint":`用这台电脑现有的 SSH 配置和密钥登录,Pisper 不保存密码和私钥。`,"form.test":`测试连接`,"form.testing":`正在连接…`,"form.testOk":`连接正常:{platform},家目录 {home}`,"form.save":`保存`,"form.cancel":`取消`,"pair.description":`适合没有 SSH 服务的机器:对方主动连到这台电脑,不用开放端口,也不用安装 Pisper,只需要 Node.js 20 以上。`,"pair.remoteOff":`远程访问还没打开,对方连不上这台电脑。请先打开上面的远程访问,再重新生成命令。`,"pair.openRemote":`去打开远程访问`,"pair.code":`配对码`,"pair.codeHint":`10 分钟内有效,只能用一次`,"pair.runThere":`在对方机器上依次运行:`,"pair.rootHint":`把目录换成允许操作的位置,可以写多个 --root。Agent 只能在这些目录里工作。`,"pair.brainPlaceholder":`<这台电脑的地址>`,"pair.rootPlaceholder":`<目录>`,"pair.copy":`复制命令`,"pair.copied":`已复制`,"pair.done":`完成`,"failure.refused":`连接被拒绝:对方可能没有运行 SSH 服务,或者端口不对。没有 SSH 服务的机器可以用“让对方连过来”。`,"failure.unreachable":`连不上对方机器:请检查地址、网络和防火墙。`,"failure.auth":`对方有 SSH 服务,但拒绝了登录。Pisper 只用密钥登录,请先把这台电脑的公钥加到对方的 authorized_keys。`,"failure.hostKey":`对方的主机指纹变了,为了安全已拒绝连接。如果确认机器重装过,请先更新这台电脑的 known_hosts。`,"failure.clientMissing":`这台电脑上找不到 ssh 命令,请先安装 OpenSSH 客户端。`,"failure.timeout":`对方机器太久没有响应。`,"failure.invalidTarget":`地址只能是 user@host、host 或 SSH 配置里的别名。`,"failure.invalidPort":`端口必须是 1 到 65535 之间的整数。`,"failure.folderMissing":`对方机器上没有这个目录。`,"failure.outsideRoots":`这个目录不在对方允许的范围内。`,"failure.offline":`这台机器现在不在线:请在对方机器上运行 npx pisper executor。`,"failure.notFound":`这台机器已被移除。`,"failure.generic":`和对方机器的连接失败。`}),e.addResourceBundle(`en-US`,`machines`,{title:`Remote machines`,description:`Let the agent work directly on another machine, without installing Pisper there. Models and API keys stay on this computer.`,addSsh:`Add SSH machine`,addNode:`Let a machine connect here`,unnamed:`Unnamed machine`,recheck:`Test {name} again`,remove:`Remove {name}`,removeDescription:`Sessions on this machine will no longer be able to run tools. Files on that machine are not affected.`,"status.checking":`Connecting…`,"status.online":`Online`,"status.offline":`Offline`,"status.unchecked":`Not tested`,"status.reachable":`Reachable`,"status.unreachable":`Unreachable`,"form.target":`Address`,"form.targetPlaceholder":`user@host or an SSH config alias`,"form.port":`Port`,"form.name":`Name`,"form.namePlaceholder":`Optional, like "Production"`,"form.defaultCwd":`Default folder`,"form.keyHint":`Signs in with this computer's existing SSH config and keys. Pisper stores no passwords or private keys.`,"form.test":`Test connection`,"form.testing":`Connecting…`,"form.testOk":`Connected: {platform}, home folder {home}`,"form.save":`Save`,"form.cancel":`Cancel`,"pair.description":`For machines without an SSH service: that machine connects to this computer, so no open port and no Pisper install. It only needs Node.js 20 or later.`,"pair.remoteOff":`Remote access is off, so that machine can't reach this computer. Turn on remote access above, then generate the commands again.`,"pair.openRemote":`Open remote access`,"pair.code":`Pairing code`,"pair.codeHint":`valid for 10 minutes, single use`,"pair.runThere":`Run these on that machine:`,"pair.rootHint":`Replace the folder with where work is allowed. You can pass --root several times. The agent can only work inside these folders.`,"pair.brainPlaceholder":`<this computer's address>`,"pair.rootPlaceholder":`<folder>`,"pair.copy":`Copy commands`,"pair.copied":`Copied`,"pair.done":`Done`,"failure.refused":`Connection refused: that machine may not be running an SSH service, or the port is wrong. For machines without SSH, use "Let a machine connect here".`,"failure.unreachable":`Can't reach that machine. Check the address, network and firewall.`,"failure.auth":`That machine has an SSH service but refused the sign-in. Pisper only signs in with keys, so add this computer's public key to authorized_keys there.`,"failure.hostKey":`That machine's host key changed, so the connection was refused for safety. If it was reinstalled, update known_hosts on this computer first.`,"failure.clientMissing":`The ssh command isn't available on this computer. Install the OpenSSH client first.`,"failure.timeout":`That machine took too long to respond.`,"failure.invalidTarget":`The address must be user@host, host, or an SSH config alias.`,"failure.invalidPort":`The port must be a whole number from 1 to 65535.`,"failure.folderMissing":`That folder doesn't exist on the other machine.`,"failure.outsideRoots":`That folder is outside what the other machine allows.`,"failure.offline":`This machine is offline. Run npx pisper executor on it.`,"failure.notFound":`This machine was removed.`,"failure.generic":`The connection to that machine failed.`});function t(e,t,n=``){switch(t){case`connection_refused`:return e(`machines:failure.refused`);case`unreachable`:return e(`machines:failure.unreachable`);case`auth_failed`:return e(`machines:failure.auth`);case`host_key_changed`:return e(`machines:failure.hostKey`);case`ssh_client_missing`:return e(`machines:failure.clientMissing`);case`ssh_timeout`:return e(`machines:failure.timeout`);case`invalid_target`:return e(`machines:failure.invalidTarget`);case`invalid_port`:return e(`machines:failure.invalidPort`);case`machine_folder_missing`:return e(`machines:failure.folderMissing`);case`machine_folder_outside_roots`:return e(`machines:failure.outsideRoots`);case`machine_offline`:return e(`machines:failure.offline`);case`machine_not_found`:return e(`machines:failure.notFound`);default:return n||e(`machines:failure.generic`)}}function n(e,t){return[`npx pisper executor pair --brain ${e.remote.endpoints[0]||t.brain} --fingerprint ${e.remote.fingerprint||t.fingerprint} --code ${e.code} --root ${t.root}`,`npx pisper executor`]}export{t as n,n as t};
@@ -1 +1 @@
1
- import{i as e}from"./http-response-BVH7o4IQ.js";import{n as t}from"./http-BLTlr2yB.js";function n(e){return typeof e==`string`?e:``}function r(e){return e&&typeof e==`object`?e:{}}function i(e){let t=r(e),i=t.lastCheck?r(t.lastCheck):null;return{id:n(t.id),kind:t.kind===`node`?`node`:`ssh`,name:n(t.name),target:n(t.target),port:typeof t.port==`number`?t.port:null,defaultCwd:n(t.defaultCwd),online:t.online===!0,lastCheck:i?{ok:i.ok===!0,at:n(i.at),code:n(i.code),platform:n(i.platform)}:null,roots:Array.isArray(t.roots)?t.roots.map(n).filter(Boolean):[]}}function a(e){let t=r(e);return{enabled:t.enabled===!0,endpoints:Array.isArray(t.endpoints)?t.endpoints.map(n).filter(Boolean):[],fingerprint:n(t.fingerprint)||null}}function o(e){return t(`/api/machines`,{signal:e,parse:e=>{let t=r(e);return{machines:(Array.isArray(t.machines)?t.machines:[]).map(i).filter(e=>e.id),remote:a(t.remote)}}})}function s(e){return t(`/api/machines/ssh`,{method:`POST`,data:e,parse:i})}function c(e){let t=r(e);return t.ok===!0?{ok:!0,platform:n(t.platform),home:n(t.home)}:{ok:!1,code:n(t.code),message:n(t.message)}}function l(e){return t(`/api/machines/ssh/test`,{method:`POST`,data:e,timeout:4e4,parse:c})}function u(e){return t(`/api/machines/${encodeURIComponent(e)}/check`,{method:`POST`,timeout:4e4,parse:c})}function d(e){return t(`/api/machines/${encodeURIComponent(e)}`,{method:`DELETE`})}function f(){return t(`/api/machines/pairing`,{method:`POST`,parse:e=>{let t=r(e),i=r(t.pairing);return{code:n(i.code),expiresAt:n(i.expiresAt),remote:a(t.remote)}}})}function p(e,i,a){return t(`/api/machines/${encodeURIComponent(e)}/folder`,{method:`POST`,data:{cwd:i},timeout:4e4,signal:a,parse:e=>n(r(e).cwd)})}function m(t){return t instanceof e?n(r(t.data).code):``}export{m as a,l as c,o as i,f as n,d as o,s as r,p as s,u as t};
1
+ import{i as e}from"./http-response-BMpatf4O.js";import{n as t}from"./http-Ck9ziPLg.js";function n(e){return typeof e==`string`?e:``}function r(e){return e&&typeof e==`object`?e:{}}function i(e){let t=r(e),i=t.lastCheck?r(t.lastCheck):null;return{id:n(t.id),kind:t.kind===`node`?`node`:`ssh`,name:n(t.name),target:n(t.target),port:typeof t.port==`number`?t.port:null,defaultCwd:n(t.defaultCwd),online:t.online===!0,lastCheck:i?{ok:i.ok===!0,at:n(i.at),code:n(i.code),platform:n(i.platform)}:null,roots:Array.isArray(t.roots)?t.roots.map(n).filter(Boolean):[]}}function a(e){let t=r(e);return{enabled:t.enabled===!0,endpoints:Array.isArray(t.endpoints)?t.endpoints.map(n).filter(Boolean):[],fingerprint:n(t.fingerprint)||null}}function o(e){return t(`/api/machines`,{signal:e,parse:e=>{let t=r(e);return{machines:(Array.isArray(t.machines)?t.machines:[]).map(i).filter(e=>e.id),remote:a(t.remote)}}})}function s(e){return t(`/api/machines/ssh`,{method:`POST`,data:e,parse:i})}function c(e){let t=r(e);return t.ok===!0?{ok:!0,platform:n(t.platform),home:n(t.home)}:{ok:!1,code:n(t.code),message:n(t.message)}}function l(e){return t(`/api/machines/ssh/test`,{method:`POST`,data:e,timeout:4e4,parse:c})}function u(e){return t(`/api/machines/${encodeURIComponent(e)}/check`,{method:`POST`,timeout:4e4,parse:c})}function d(e){return t(`/api/machines/${encodeURIComponent(e)}`,{method:`DELETE`})}function f(){return t(`/api/machines/pairing`,{method:`POST`,parse:e=>{let t=r(e),i=r(t.pairing);return{code:n(i.code),expiresAt:n(i.expiresAt),remote:a(t.remote)}}})}function p(e,i,a){return t(`/api/machines/${encodeURIComponent(e)}/folder`,{method:`POST`,data:{cwd:i},timeout:4e4,signal:a,parse:e=>n(r(e).cwd)})}function m(t){return t instanceof e?n(r(t.data).code):``}export{m as a,l as c,o as i,f as n,d as o,s as r,p as s,u as t};
@@ -1 +1 @@
1
- import{t as e}from"./api-Bn6Yqhfj.js";var t=e=>`/api/memory/nodes/${encodeURIComponent(e)}`;function n(t={},n){let r=new URLSearchParams;return t.spaceId&&r.set(`spaceId`,t.spaceId),t.query?.trim()&&r.set(`query`,t.query.trim()),t.status&&t.status!==`current`&&r.set(`status`,t.status),t.before&&r.set(`before`,t.before),t.limit&&r.set(`limit`,String(t.limit)),e(`/api/memory?${r}`,{signal:n})}function r(t,n){let r=new URLSearchParams({spaceId:t});return e(`/api/memory/evolution?${r}`,{signal:n})}function i(n,r){return e(t(n),{signal:r})}function a(t={},n){let r=new URLSearchParams;return t.spaceId&&r.set(`spaceId`,t.spaceId),t.before&&r.set(`before`,t.before),t.limit&&r.set(`limit`,String(t.limit)),e(`/api/memory/events?${r}`,{signal:n})}function o(t={},n){let r=new URLSearchParams;return t.spaceId&&r.set(`spaceId`,t.spaceId),t.before&&r.set(`before`,t.before),t.limit&&r.set(`limit`,String(t.limit)),e(`/api/memory/sessions?${r}`,{signal:n})}function s(t){return e(`/api/memory/events/${encodeURIComponent(t)}/undo`,{method:`POST`,body:`{}`})}function c(){return e(`/api/memory/consolidate`,{method:`POST`,body:`{}`})}function l(t=``){return e(`/api/memory/episodes/clear`,{method:`POST`,body:JSON.stringify({spaceId:t})})}function u(t=``){let n=new URLSearchParams;return t&&n.set(`spaceId`,t),e(`/api/memory/export?${n}`)}function d(t){return e(`/api/memory/nodes`,{method:`POST`,body:JSON.stringify(t)})}function f(n,r){return e(t(n),{method:`PATCH`,body:JSON.stringify(r)})}function p(n){return e(t(n),{method:`DELETE`})}function m(n,r){return e(`${t(n)}/${r}`,{method:`POST`,body:`{}`})}function h(t){return e(`/api/memory/spaces`,{method:`POST`,body:JSON.stringify({name:t,kind:`custom`})})}function g(t,n){return e(`/api/memory/spaces/${encodeURIComponent(t)}`,{method:`PATCH`,body:JSON.stringify({name:n})})}function _(t){return e(`/api/memory/spaces/${encodeURIComponent(t)}`,{method:`DELETE`})}export{p as a,n as c,r as d,o as f,f as g,s as h,h as i,i as l,g as m,c as n,_ as o,m as p,d as r,u as s,l as t,a as u};
1
+ import{t as e}from"./api-CCLf8CGI.js";var t=e=>`/api/memory/nodes/${encodeURIComponent(e)}`;function n(t={},n){let r=new URLSearchParams;return t.spaceId&&r.set(`spaceId`,t.spaceId),t.query?.trim()&&r.set(`query`,t.query.trim()),t.status&&t.status!==`current`&&r.set(`status`,t.status),t.before&&r.set(`before`,t.before),t.limit&&r.set(`limit`,String(t.limit)),e(`/api/memory?${r}`,{signal:n})}function r(t,n){let r=new URLSearchParams({spaceId:t});return e(`/api/memory/evolution?${r}`,{signal:n})}function i(n,r){return e(t(n),{signal:r})}function a(t={},n){let r=new URLSearchParams;return t.spaceId&&r.set(`spaceId`,t.spaceId),t.before&&r.set(`before`,t.before),t.limit&&r.set(`limit`,String(t.limit)),e(`/api/memory/events?${r}`,{signal:n})}function o(t={},n){let r=new URLSearchParams;return t.spaceId&&r.set(`spaceId`,t.spaceId),t.before&&r.set(`before`,t.before),t.limit&&r.set(`limit`,String(t.limit)),e(`/api/memory/sessions?${r}`,{signal:n})}function s(t){return e(`/api/memory/events/${encodeURIComponent(t)}/undo`,{method:`POST`,body:`{}`})}function c(){return e(`/api/memory/consolidate`,{method:`POST`,body:`{}`})}function l(t=``){return e(`/api/memory/episodes/clear`,{method:`POST`,body:JSON.stringify({spaceId:t})})}function u(t=``){let n=new URLSearchParams;return t&&n.set(`spaceId`,t),e(`/api/memory/export?${n}`)}function d(t){return e(`/api/memory/nodes`,{method:`POST`,body:JSON.stringify(t)})}function f(n,r){return e(t(n),{method:`PATCH`,body:JSON.stringify(r)})}function p(n){return e(t(n),{method:`DELETE`})}function m(n,r){return e(`${t(n)}/${r}`,{method:`POST`,body:`{}`})}function h(t){return e(`/api/memory/spaces`,{method:`POST`,body:JSON.stringify({name:t,kind:`custom`})})}function g(t,n){return e(`/api/memory/spaces/${encodeURIComponent(t)}`,{method:`PATCH`,body:JSON.stringify({name:n})})}function _(t){return e(`/api/memory/spaces/${encodeURIComponent(t)}`,{method:`DELETE`})}export{p as a,n as c,r as d,o as f,f as g,s as h,h as i,i as l,g as m,c as n,_ as o,m as p,d as r,u as s,l as t,a as u};
@@ -1,9 +1,9 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/desktop-hosts-B3CWL4di.js","assets/event-stream-DHX619rI.js","assets/http-response-BVH7o4IQ.js","assets/i18n-D5Pj8hy6.js","assets/vendor-router-CSN_DGvx.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-DwNgTV1j.js","assets/index-DguGXGe9.js","assets/index-BTqJTVNA.css","assets/storage-DtvZ_lEu.js","assets/session-web-preview-guvsmkWE.js","assets/vendor-state-GkUciC5H.js","assets/web-preview-C7DdG9JP.js","assets/useNativeBrowser-C0j3zafh.js","assets/MobileNavigation-CEUnhv7K.js","assets/use-i18n-vKUIcJX7.js","assets/runtime-capabilities-store-CXahF-U2.js","assets/api-Bn6Yqhfj.js","assets/abort-signal-f4JsiYKX.js","assets/http-BLTlr2yB.js","assets/runtime-capabilities-CPDBo3tu.js","assets/chevron-left-BAtyp3_6.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/chevron-right-C3t2Rckj.js","assets/settings-navigation-C-nsUyew.js","assets/bell-BjONAtgH.js","assets/bot-B3TaBp_T.js","assets/info-DATxy0fb.js","assets/monitor-ORxecA9m.js","assets/refresh-cw-TbWxTY4K.js","assets/DesktopWindowControls-DaK-mWjx.js","assets/minus-BuutOHSj.js","assets/square-bHHVTT3G.js","assets/x-07u4-129.js","assets/FloatingWidgets-CWAsDelc.js","assets/routes-DIeaqWVc.js","assets/placements-deNW2Eg-.js","assets/useQuery-DfOU-27z.js","assets/query-DFQayLF5.js","assets/component-changes-Q9Bf64Ob.js","assets/session-scope-C9THRhK5.js","assets/session-board-status-D2lpFPiI.js","assets/safe-mode-sentinel-DRBisTV9.js","assets/usePhoneShell-K9ZGSs1n.js","assets/use-mobile-C2tPBAza.js","assets/client-store-D3sThJb-.js","assets/AppOverlays-yAnO5otc.js","assets/startup-queries-Cf6RSLkK.js","assets/mutation-b4pPvB7p.js","assets/circle-alert-DCChabnT.js","assets/loader-circle-BOwQzHB-.js","assets/message-square-SKjZyY3v.js","assets/plus-fQbSqB1n.js","assets/search-D0mqDaf_.js","assets/square-terminal-BVG6cUT1.js","assets/tag-CqkeJlBf.js","assets/utils-C8uzG5AZ.js","assets/vendor-ui-DvrYggeS.js","assets/kbd-CAufZTkl.js","assets/events-BOOZIPa5.js","assets/shortcuts-CQYp4qaG.js","assets/chat-api-BL_tZCbY.js","assets/format-DMJQzoZ7.js","assets/dialog-DzLlhTSc.js","assets/dist-BHkR6BLP.js","assets/dist-41X0pdUs.js","assets/dist-BsRXXcSL.js","assets/es2015-DTZdOI9P.js","assets/button-CCcCN8tE.js","assets/useOverlayFocusReturn-NkxBSSjb.js","assets/palette-navigation-BcPK8UF5.js","assets/blocks-Olsdp5Lp.js","assets/brain-qxhnKqYP.js","assets/calendar-clock-VIxTaqqy.js","assets/folder-open-FIShC5Qk.js","assets/list-T5PqlpS2.js","assets/plug-BsIeHRwC.js","assets/radio-tower-jGQwrFWB.js","assets/rotate-ccw-clock-CO6Bw-sF.js","assets/server-BgNvmqwJ.js","assets/settings-QX0oWnVK.js","assets/sparkles-S_eeuqn9.js","assets/workflow-Bg94dy8I.js","assets/AppDialog-CA7tBvM8.js","assets/label-CVWjEcfV.js","assets/input-CPw-zkYh.js","assets/WebDesktopPet-mgzM1lUl.js","assets/public-components-jrX-6RqC.js","assets/arrow-right-DqLOhpA2.js","assets/download-BCfIiuaL.js","assets/key-round-C29uZbsf.js","assets/config-search-Q-gLiXu_.js","assets/BrandLogo-k3CvJjd4.js","assets/sidebar-Ddf5aEv6.js","assets/pin-CU0FG0lI.js","assets/sidebar-store-DlicJ7L2.js","assets/useSessionListQuery-w1eeoWqD.js","assets/session-organization-api-5GadAj0U.js","assets/session-workspaces-Brm-8lHh.js","assets/session-questions-Cf-1g85h.js","assets/useNow-Df6N6r2Y.js","assets/card-presentation-1oph2b8P.js","assets/useSidebarModel-De1pMvik.js","assets/StatusGlyph-1KgitlUg.js","assets/useSessionRowActions-DQcnq6I1.js","assets/ellipsis-CfGKfbq6.js","assets/dropdown-menu-Ds0gD8S8.js","assets/check-2vYc6QaP.js","assets/dist-DzGQ7sLi.js","assets/dist-BRjj4UeB.js","assets/dist-OB2r6Xsr.js","assets/dist-BaBySQmo.js","assets/session-home-BTPHTXVm.js","assets/motion-DTR4ZVle.js","assets/BotAvatar-CNL-APwP.js","assets/shortcut-aria-jHRmld9z.js","assets/sidebar-commands-ZA1UOA_F.js","assets/public-sidebar-BA8SJ3r0.js","assets/use-open-bot-CBgzzpYP.js","assets/WorkspacePicker-Bo197KnL.js","assets/arrow-up-DST6-qVQ.js","assets/folder-DPM8D8cf.js","assets/triangle-alert-CE1q54ci.js","assets/PageState-Cz6vFMXv.js","assets/alert-DRIrgNI4.js","assets/workspace-folders-B5Z-ckI5.js","assets/textarea-DmATpOqT.js","assets/pick-system-directory-BPDhvlE7.js","assets/field-DoLEb0np.js","assets/separator-BPh_qxvc.js","assets/bots-store-BM-RDFHS.js","assets/public-flags-B-hhqV7C.js","assets/public-events-D8WNal9Q.js","assets/PhoneTopBar-UNRjPZJo.js","assets/PhoneMenuButton-Qt9aL2yf.js","assets/public-BV32k5q1.js","assets/chevron-down-CxtxIjiP.js","assets/focus-session-composer-bits-vPmpISU7.js","assets/braces-DQcXLGFF.js","assets/pencil-U08v_vV9.js","assets/wrench-6pg6_bqI.js","assets/run-activity-CwfO0cui.js","assets/workspace-order-store-hJOk5NHh.js","assets/useMachines-CPMVc3JJ.js","assets/machines-api-AYwQ9wWh.js","assets/useNewProjectPicker-DvaRu71A.js","assets/FocusRuntimeControls-6sWPafoU.js","assets/chevrons-up-down-C2sEPdAh.js","assets/popover-B-a7ZBQS.js","assets/slider-De8rWVNs.js","assets/dist-BS3ekNDj.js","assets/sheet-BTaIEX4w.js","assets/input-group-h8z63MzW.js","assets/model-display-kDwvtxrW.js","assets/session-change-summary-api-CJ2yVJEm.js","assets/folder-paths-CfkxmkpU.js","assets/board-projects-B7ISKK5M.js","assets/square-pen-hYbjKh6A.js","assets/PhoneDrawer-D3eRtYUJ.js","assets/SidebarUpdateStatus-CgDyoVVT.js","assets/external-link-CEQqPcqc.js","assets/rocket-BgLSjoHY.js","assets/SettingsSidebar-SMxWLbhN.js","assets/arrow-left-B8oVrQ2S.js","assets/back-navigation-CK7X_5Bc.js","assets/ShortcutHelpDialog-DDyxtBqb.js","assets/ShortcutKeys-CuiTSvO5.js","assets/PageHeader-DQkMisCZ.js","assets/more-pages-D_PnxLN0.js","assets/TerminalPanel-CeGX1ISs.js","assets/terminal-context-aIsIJPn8.js","assets/TaskTerminalView-DZL83yst.js","assets/AppSelect-DQYKUW5E.js","assets/select-Bbk9bmXO.js","assets/chevron-up-D_ZcXjqr.js","assets/dist-BiRPwy4W.js","assets/TaskTerminalView-BrP-ENHg.css","assets/MobileViewportStabilizer-uKI4Zp7f.js","assets/browser-notifications-CvHO-BlP.js","assets/session-tree-actions-C7sDBs9_.js","assets/session-tree-summary-D_mv7Xsy.js","assets/BoardPage-DzHXQHbY.js","assets/arrow-down-CDGua-ue.js","assets/corner-down-right--hxi-Ihy.js","assets/useCatalogProjects-HPDUmiqp.js","assets/rotate-ccw-C0v8V77_.js","assets/trash-2-CNrPOoPR.js","assets/brand-DIEc3fK8.js","assets/segmented-control-xkrEOP_d.js","assets/tooltip-D4MFbqcG.js","assets/esm-DCV8yILT.js","assets/new-task-DG4I6cda.js","assets/ChatPage-B9kyMRtf.js","assets/permission-rules-api-D2u3PIpr.js","assets/archive-ojKJT7Fp.js","assets/book-open-BuHHD9os.js","assets/circle-check-iEdCm3Pw.js","assets/image-plus-D7bzZog0.js","assets/GitDiffViewer-Djkbc29o.js","assets/file-Bllajneu.js","assets/side-chat-context-BoevraRd.js","assets/copy-DHmIFc52.js","assets/eye-uWAPXNzJ.js","assets/undo-2-C-xQ0UVT.js","assets/shield-alert-oZqX6MNu.js","assets/shield-check-Gvek4RJ7.js","assets/vendor-motion-DSW3wzXK.js","assets/MarkdownMessage-jypOknWO.js","assets/vendor-markdown-plugins-CT5L3KA9.js","assets/vendor-shiki-runtime-DM7fm4Bl.js","assets/vendor-markdown-plugins-DEcVZfaU.css","assets/vendor-markdown-CT6Z4fh8.js","assets/route-context-DvWDul4T.js","assets/HoldToConfirmButton-BxdJ7icc.js","assets/card-C3A0b5KR.js","assets/collapsible-Dcoy-qnz.js","assets/dist-DUSSw9eQ.js","assets/FileAttachmentPreview-CUdxe5_7.js","assets/tabs-DsgBuvJv.js","assets/git-branch-N7LGjtzt.js","assets/link-2-mgasYn21.js","assets/panel-right-BSUtqUd8.js","assets/paperclip-BCXrwYpb.js","assets/play-DNDjDNGn.js","assets/users-CCtFZzwl.js","assets/checkbox-BrEHgFV0.js","assets/progress-5odAz3B9.js","assets/switch-D_G8wFhs.js","assets/app-primitives-Drz_SjnR.js","assets/badge-CWB3lj2H.js","assets/session-list-BRMu9JWa.js","assets/public-CoescP9_.js","assets/session-inspector-store-DFANj1eG.js","assets/tool-labels-D-3gybP7.js","assets/speech-session--qKchPMR.js","assets/web-preview-events-D7F0Z-Hy.js","assets/SessionShell-CI6d2UxF.js","assets/SessionHome-CS5HPhh0.js","assets/MorePage-DC_HNY-i.js","assets/app-window-CPNdvYNt.js","assets/image-BY_c3FYU.js","assets/monitor-smartphone-B1gIjItA.js","assets/ChatHistoryPage-CYU3FOWt.js","assets/pin-off-BpRu_vrC.js","assets/FeaturePage-DI7N2J_K.js","assets/AssetsPage-NJ7uc7WV.js","assets/queryOptions-Dfvzj6n2.js","assets/mobile-runtime-recovery-tbTyacip.js","assets/ChannelsPage-DPVT00J9.js","assets/message-circle-D-XrK6Ft.js","assets/send-Cj-W03w_.js","assets/public-Dbs615LR.js","assets/accordion-CiJMkjqX.js","assets/SchedulesPage-C-MlYxbU.js","assets/ConfigPage-YOI6Jn64.js","assets/arrow-up-right-B6l8qFZz.js","assets/code-xml-BrUXrBax.js","assets/zap-DZHw5afO.js","assets/sliders-horizontal-Dryf1XyC.js","assets/machine-messages-BjYmTDz4.js","assets/app-update-C17JitpX.js","assets/ChatAppearancePage-RygKPTc1.js","assets/PluginsPage-B19V8jKI.js","assets/earth-Ddy13fHh.js","assets/file-code-corner-BnE1ljT0.js","assets/package-BOmkLaKS.js","assets/save-CHBB52P8.js","assets/MemoryPage-CXNLDgIX.js","assets/memory-api-260Oa_xZ.js","assets/McpPage-DZuv-kd4.js","assets/SkillsPage-C217PvFK.js","assets/public-COJrQD9j.js","assets/settings-2-CXJjXJS9.js","assets/use-studio-actions-C0IOFiXt.js","assets/safe-mode-instance-Dex9ZvJH.js","assets/PageFrame-DNwGZ-Dz.js","assets/WorkflowsPage-CsH9o0Vt.js","assets/grip-vertical-B__LYT0s.js","assets/pause-CYWpPg1R.js","assets/vendor-xyflow-hxQFvEHK.js","assets/vendor-xyflow-DLioOiRN.css","assets/navigation-DkcKi1_5.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{a as t,d as n,f as r,h as i,i as a,l as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./vendor-router-CSN_DGvx.js";import{t as p}from"./index-DguGXGe9.js";import{i as m,n as h,r as g,t as _}from"./vendor-react-DwNgTV1j.js";import{t as v}from"./vendor-ui-DvrYggeS.js";import{a as y,c as b,d as x,f as S,i as ee,l as C,n as w,o as te,r as T,s as ne,t as re,u as ie}from"./routes-DIeaqWVc.js";import{a as E,c as ae,d as oe,i as se,l as ce,o as le,r as D,s as O,t as ue,u as k}from"./i18n-D5Pj8hy6.js";import{n as de,r as fe,t as A}from"./use-i18n-vKUIcJX7.js";import{t as j}from"./storage-DtvZ_lEu.js";import{n as pe,t as me}from"./useQuery-DfOU-27z.js";import{a as he,i as ge,n as _e,o as ve,r as ye,s as be,t as M}from"./startup-queries-Cf6RSLkK.js";import{i as xe}from"./http-response-BVH7o4IQ.js";import{i as Se,n as Ce}from"./http-BLTlr2yB.js";import{t as we}from"./api-Bn6Yqhfj.js";import{a as Te,i as Ee,r as De}from"./runtime-capabilities-CPDBo3tu.js";import{t as Oe}from"./runtime-capabilities-store-CXahF-U2.js";import{i as ke,n as Ae,r as je}from"./use-mobile-C2tPBAza.js";import{t as Me}from"./client-store-D3sThJb-.js";import{t as Ne}from"./createLucideIcon-Cd-3GVxJ.js";import{t as Pe}from"./circle-check-iEdCm3Pw.js";import{a as Fe,i as Ie,n as Le,o as Re,t as ze}from"./settings-navigation-C-nsUyew.js";import{t as Be}from"./info-DATxy0fb.js";import{n as Ve,t as He}from"./list-T5PqlpS2.js";import{t as Ue}from"./search-D0mqDaf_.js";import{t as We}from"./settings-QX0oWnVK.js";import{t as Ge}from"./square-pen-hYbjKh6A.js";import{t as Ke}from"./triangle-alert-CE1q54ci.js";import{t as qe}from"./x-07u4-129.js";import{i as Je,n as Ye,r as Xe,t as Ze}from"./more-pages-D_PnxLN0.js";import{a as Qe}from"./dist-41X0pdUs.js";import{a as N,c as P,i as $e,l as et,o as F,r as tt,s as nt,t as rt}from"./dist-BsRXXcSL.js";import{r as it}from"./dist-BiRPwy4W.js";import{n as at}from"./dist-DzGQ7sLi.js";import{c as ot,i as st,o as ct}from"./es2015-DTZdOI9P.js";import{r as lt}from"./tooltip-D4MFbqcG.js";import{t as I}from"./utils-C8uzG5AZ.js";import{n as ut,t as dt}from"./button-CCcCN8tE.js";import{t as ft}from"./kbd-CAufZTkl.js";import{_ as pt,h as mt,n as ht,t as gt,v as _t,y as vt}from"./events-BOOZIPa5.js";import{a as yt,c as L,i as bt,n as xt,r as R,s as z}from"./shortcuts-CQYp4qaG.js";import{t as B}from"./sidebar-store-DlicJ7L2.js";import{a as St,i as Ct,l as V,o as H,s as U,t as wt}from"./dialog-DzLlhTSc.js";import{n as Tt}from"./PageState-Cz6vFMXv.js";import{i as Et,t as Dt}from"./back-navigation-CK7X_5Bc.js";import{n as Ot,r as kt,t as At}from"./alert-DRIrgNI4.js";import{t as jt}from"./route-context-DvWDul4T.js";import{t as Mt}from"./new-task-DG4I6cda.js";import{t as W}from"./shortcut-aria-jHRmld9z.js";import{n as Nt}from"./sidebar-commands-ZA1UOA_F.js";import{r as Pt}from"./app-primitives-Drz_SjnR.js";import{t as Ft}from"./public-CoescP9_.js";import{t as It}from"./BrandLogo-k3CvJjd4.js";import{a as G}from"./web-preview-C7DdG9JP.js";import{r as K}from"./web-preview-events-D7F0Z-Hy.js";import{C as q,S as Lt,_ as J,a as Rt,b as zt,c as Bt,d as Vt,f as Ht,h as Y,m as Ut,n as Wt,p as Gt,r as Kt,u as qt}from"./app-update-C17JitpX.js";import{n as Jt,t as Yt}from"./navigation-DkcKi1_5.js";var X=e(m());function Xt({i18n:e,defaultNS:t,children:n}){let r=(0,X.useMemo)(()=>({i18n:e,defaultNS:t}),[e,t]);return(0,X.createElement)(fe.Provider,{value:r},n)}var Zt=Ne(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),Qt=Ne(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),$t=e(h(),1),Z=g(),en=Object.defineProperty,Q=(e,t)=>en(e,`name`,{value:t,configurable:!0}),tn=`ToastProvider`,[nn,rn,an]=at(`Toast`),[on,sn]=nt(`Toast`,[an]),[cn,ln]=on(tn),un=Q(e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,announcerContainer:o,children:s}=e,[c,l]=X.useState(null),[u,d]=X.useState(0),f=X.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${tn}\`. Expected non-empty \`string\`.`),(0,Z.jsx)(nn.Provider,{scope:t,children:(0,Z.jsx)(cn,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:u,viewport:c,onViewportChange:l,onToastAdd:X.useCallback(()=>d(e=>e+1),[]),onToastRemove:X.useCallback(()=>d(e=>e-1),[]),isClosePausedRef:f,announcerContainer:o,children:s})})},`ToastProvider`),dn=`ToastViewport`,fn=[`F8`],pn=`toast.viewportPause`,mn=`toast.viewportResume`,hn=X.forwardRef(Q(function(e,t){let{__scopeToast:n,hotkey:r=fn,label:i=`Notifications ({hotkey})`,...a}=e,o=ln(dn,n),s=rn(n),c=X.useRef(null),l=X.useRef(null),u=X.useRef(null),d=X.useRef(null),f=Qe(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;X.useEffect(()=>{let e=Q(e=>{r.length!==0&&r.every(t=>e[t]||e.code===t)&&d.current?.focus()},`handleKeyDown`);return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]),X.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=Q(()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(pn);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},`handlePause`),r=Q(()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(mn);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},`handleResume`),i=Q(t=>{e.contains(t.relatedTarget)||r()},`handleFocusOutResume`),a=Q(()=>{e.contains(document.activeElement)||r()},`handlePointerLeaveResume`);return e.addEventListener(`focusin`,n),e.addEventListener(`focusout`,i),e.addEventListener(`pointermove`,n),e.addEventListener(`pointerleave`,a),window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),()=>{e.removeEventListener(`focusin`,n),e.removeEventListener(`focusout`,i),e.removeEventListener(`pointermove`,n),e.removeEventListener(`pointerleave`,a),window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r)}}},[m,o.isClosePausedRef]);let h=X.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...zn(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return X.useEffect(()=>{let e=d.current;if(e){let t=Q(t=>{let n=t.altKey||t.ctrlKey||t.metaKey;if(t.key===`Tab`&&!n){let n=document.activeElement,r=t.shiftKey;if(t.target===e&&r){l.current?.focus();return}let i=h({tabbingDirection:r?`backwards`:`forwards`}),a=i.findIndex(e=>e===n);Bn(i.slice(a+1))?t.preventDefault():r?l.current?.focus():u.current?.focus()}},`handleKeyDown`);return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)}},[s,h]),(0,Z.jsxs)(ct,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,Z.jsx)(_n,{ref:l,onFocusFromOutsideViewport:()=>{Bn(h({tabbingDirection:`forwards`}))}}),(0,Z.jsx)(nn.Slot,{scope:n,children:(0,Z.jsx)(P.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,Z.jsx)(_n,{ref:u,onFocusFromOutsideViewport:()=>{Bn(h({tabbingDirection:`backwards`}))}})]})},`ToastViewport`)),gn=`ToastFocusProxy`,_n=X.forwardRef(Q(function(e,t){let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=ln(gn,n);return(0,Z.jsx)(it,{tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})},`ToastFocusProxy`)),vn=`Toast`,yn=`toast.swipeStart`,bn=`toast.swipeMove`,xn=`toast.swipeCancel`,Sn=`toast.swipeEnd`,Cn=X.forwardRef(Q(function(e,t){let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s,c]=$e({prop:r,defaultProp:i??!0,onChange:a,caller:vn});return(0,Z.jsx)(tt,{present:n||s,children:(0,Z.jsx)(En,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:rt(e.onPause),onResume:rt(e.onResume),onSwipeStart:F(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:F(e.onSwipeMove,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`move`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-y`,`${n}px`)}),onSwipeCancel:F(e.onSwipeCancel,e=>{e.currentTarget.setAttribute(`data-swipe`,`cancel`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-y`)}),onSwipeEnd:F(e.onSwipeEnd,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`end`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-y`,`${n}px`),c(!1)})})})},`Toast`)),[wn,Tn]=on(vn,{onClose(){}}),En=X.forwardRef(Q(function(e,t){let{__scopeToast:n,type:r=`foreground`,duration:i,open:a,onClose:o,onEscapeKeyDown:s,onPause:c,onResume:l,onSwipeStart:u,onSwipeMove:d,onSwipeCancel:f,onSwipeEnd:p,...m}=e,h=ln(vn,n),g=rn(n),[_,v]=X.useState(null),y=Qe(t,v),b=X.useRef(null),x=X.useRef(null),S=i||h.duration,ee=X.useRef(0),C=X.useRef(S),w=X.useRef(0),{onToastAdd:te,onToastRemove:T}=h,ne=rt(()=>{_?.contains(document.activeElement)&&h.viewport?.focus(),o()}),re=X.useCallback(e=>{!e||e===1/0||(window.clearTimeout(w.current),ee.current=new Date().getTime(),w.current=window.setTimeout(ne,e))},[ne]);X.useEffect(()=>{let e=h.viewport;if(e){let t=Q(()=>{re(C.current),l?.()},`handleResume`),n=Q(()=>{let e=new Date().getTime()-ee.current;C.current-=e,window.clearTimeout(w.current),c?.()},`handlePause`);return e.addEventListener(pn,n),e.addEventListener(mn,t),()=>{e.removeEventListener(pn,n),e.removeEventListener(mn,t)}}},[h.viewport,S,c,l,re]),X.useEffect(()=>{a&&!h.isClosePausedRef.current&&re(S)},[a,S,h.isClosePausedRef,re]),X.useEffect(()=>()=>{window.clearTimeout(w.current)},[]),X.useEffect(()=>(te(),()=>T()),[te,T]);let ie=X.useMemo(()=>_?Pn(_):null,[_]);return h.viewport?(0,Z.jsxs)(Z.Fragment,{children:[ie&&(0,Z.jsx)(Dn,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,children:ie}),(0,Z.jsx)(wn,{scope:n,onClose:ne,children:$t.createPortal((0,Z.jsx)(nn.ItemSlot,{scope:n,children:(0,Z.jsx)(ot,{asChild:!0,onEscapeKeyDown:F(s,e=>{g().some(t=>t.ref.current?.contains(e.target))||ne()}),children:(0,Z.jsx)(P.li,{tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:y,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:F(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||ne())}),onPointerDown:F(e.onPointerDown,e=>{e.button===0&&(b.current={x:e.clientX,y:e.clientY})}),onPointerMove:F(e.onPointerMove,e=>{if(!b.current)return;let t=e.clientX-b.current.x,n=e.clientY-b.current.y,r=!!x.current,i=[`left`,`right`].includes(h.swipeDirection),a=[`left`,`up`].includes(h.swipeDirection)?Math.min:Math.max,o=i?a(0,t):0,s=i?0:a(0,n),c=e.pointerType===`touch`?10:2,l={x:o,y:s},f={originalEvent:e,delta:l};r?(x.current=l,Fn(bn,d,f,{discrete:!1})):In(l,h.swipeDirection,c)?(x.current=l,Fn(yn,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(b.current=null)}),onPointerUp:F(e.onPointerUp,e=>{let t=x.current,n=e.target;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),x.current=null,b.current=null,t){let n=e.currentTarget,r={originalEvent:e,delta:t};In(t,h.swipeDirection,h.swipeThreshold)?Fn(Sn,p,r,{discrete:!0}):Fn(xn,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null},`ToastImpl`)),Dn=Q(e=>{let{__scopeToast:t,children:n,...r}=e,i=ln(vn,t),[a,o]=X.useState(!1),[s,c]=X.useState(!1);return Ln(()=>o(!0)),X.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,Z.jsx)(st,{asChild:!0,container:i.announcerContainer||void 0,children:(0,Z.jsx)(it,{...r,children:a&&(0,Z.jsxs)(Z.Fragment,{children:[i.label,` `,n]})})})},`ToastAnnounce`),On=X.forwardRef(Q(function(e,t){let{__scopeToast:n,...r}=e;return(0,Z.jsx)(P.div,{...r,ref:t})},`ToastDescription`)),kn=`ToastAction`,An=X.forwardRef(Q(function(e,t){let{altText:n,...r}=e;return n.trim()?(0,Z.jsx)(Nn,{altText:n,asChild:!0,children:(0,Z.jsx)(Mn,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${kn}\`. Expected non-empty \`string\`.`),null)},`ToastAction`)),jn=`ToastClose`,Mn=X.forwardRef(Q(function(e,t){let{__scopeToast:n,...r}=e,i=Tn(jn,n);return(0,Z.jsx)(Nn,{asChild:!0,children:(0,Z.jsx)(P.button,{type:`button`,...r,ref:t,onClick:F(e.onClick,i.onClose)})})},`ToastClose`)),Nn=X.forwardRef(Q(function(e,t){let{__scopeToast:n,altText:r,...i}=e;return(0,Z.jsx)(P.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})},`ToastAnnounceExclude`));function Pn(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),Rn(e)){let n=e.ariaHidden||e.hidden||e.style.display===`none`,r=e.dataset.radixToastAnnounceExclude===``;if(!n){if(r){let n=e.dataset.radixToastAnnounceAlt;n&&t.push(n)}else t.push(...Pn(e))}}}),t}Q(Pn,`getAnnounceTextContent`);function Fn(e,t,n,{discrete:r}){let i=n.originalEvent.currentTarget,a=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?et(i,a):i.dispatchEvent(a)}Q(Fn,`handleAndDispatchCustomEvent`);var In=Q((e,t,n=0)=>{let r=Math.abs(e.x),i=Math.abs(e.y),a=r>i;return t===`left`||t===`right`?a&&r>n:!a&&i>n},`isDeltaInDirection`);function Ln(e=()=>{}){let t=rt(e);N(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}Q(Ln,`useNextFrame`);function Rn(e){return e.nodeType===e.ELEMENT_NODE}Q(Rn,`isHTMLElement`);function zn(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:Q(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}Q(zn,`getTabbableCandidates`);function Bn(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}Q(Bn,`focusFirst`);var Vn=un,Hn=hn,Un=Cn,Wn=On,Gn=An,Kn=Mn,qn=_();function Jn({children:e}){let{i18n:t}=de(),n=oe(t.resolvedLanguage)?t.resolvedLanguage:ue;return(0,X.useEffect)(()=>{document.documentElement.lang=n;try{p.setItem(j.language,n)}catch{}window.pisperDesktop?.setLanguage?.(n)},[n]),e}function Yn({children:e}){return(0,Z.jsx)(Xt,{i18n:k,children:(0,Z.jsx)(Jn,{children:e})})}function Xn({children:e}){return(0,X.useEffect)(()=>ye(window),[]),(0,Z.jsx)(pe,{client:he,children:(0,Z.jsx)(Yn,{children:(0,Z.jsx)(lt,{delayDuration:200,children:e})})})}function Zn(e){return typeof e==`string`?e:``}function Qn(e,t){return Array.isArray(e)?e.map(e=>Zn(e?.[t])).filter(Boolean):[]}function $n(e){let t=e&&typeof e==`object`?e:{},n=t.failure;return{state:t.state===`ready`||t.state===`failed`?t.state:`pending`,failure:n?{code:Zn(n.code),message:Zn(n.message)}:null,setAsideFiles:Qn(t.setAside,`file`),failedServices:Qn(t.failed,`service`)}}async function er(e){try{return await Ce(`/api/startup-status`,{signal:e,parse:$n})}catch(e){if(e instanceof xe&&e.status===404)return null;throw e}}var tr=1e3,nr=6e5;function rr(){let{t:e}=A(),[t,n]=(0,X.useState)(null),[r,i]=(0,X.useState)(!1);if((0,X.useEffect)(()=>{let e=new AbortController,t=Date.now()+nr,r,i=async()=>{let a=!1;try{let t=await er(e.signal);if(e.signal.aborted)return;t&&n(t),a=!t||t.state!==`pending`}catch{}!a&&!e.signal.aborted&&Date.now()<t&&(r=window.setTimeout(()=>void i(),tr))};return i(),()=>{e.abort(),window.clearTimeout(r)}},[]),t?.state===`failed`){let n=t.failure;return(0,Z.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-background`,children:(0,Z.jsx)(Tt,{kind:`error`,title:e(`common:runtimeStartup.failedTitle`),description:(0,Z.jsxs)(Z.Fragment,{children:[e(`common:runtimeStartup.failedHint`),n&&(0,Z.jsx)(`code`,{className:`mt-2 block font-mono select-text`,children:n.message.startsWith(n.code)?n.message:`${n.code}: ${n.message}`})]})})})}if(r||!t)return null;let{setAsideFiles:a,failedServices:o}=t;return!a.length&&!o.length?null:(0,Z.jsxs)(At,{className:`fixed right-4 bottom-[calc(1rem+var(--pisper-safe-area-bottom,0px))] z-50 w-[min(26rem,calc(100vw-2rem))] shadow-lg`,"data-runtime-startup-notice":!0,children:[(0,Z.jsx)(kt,{children:e(`common:runtimeStartup.noticeTitle`)}),(0,Z.jsxs)(Ot,{className:`grid gap-1`,children:[a.length>0&&(0,Z.jsx)(`p`,{children:e(`common:runtimeStartup.setAside`,{files:a.join(`、`)})}),o.length>0&&(0,Z.jsx)(`p`,{children:e(`common:runtimeStartup.failedServices`,{services:o.join(`、`)})}),(0,Z.jsx)(dt,{type:`button`,variant:`outline`,className:`mt-1 justify-self-end`,onClick:()=>i(!0),children:e(`common:runtimeStartup.dismiss`)})]})]})}function ir(){return[...document.querySelectorAll(`[role="dialog"], [role="alertdialog"], [role="menu"], [data-slot="popover-content"]`)].some(e=>e.dataset.state!==`closed`&&e.getAttribute(`aria-hidden`)!==`true`&&e.getClientRects().length>0)}function ar({onRouteBack:e}){let t=(0,X.useRef)(e);return t.current=e,(0,X.useEffect)(()=>{let e=new WeakSet,n=t=>{t.key===`Escape`&&ir()&&e.add(t)},r=t=>{t.key!==`Escape`||t.defaultPrevented||t.isComposing||e.has(t)||Dt.dismiss()&&t.preventDefault()},i=()=>{let e=ir(),n=new KeyboardEvent(`keydown`,{key:`Escape`,bubbles:!0,cancelable:!0});return Et(n),(document.activeElement||document.body).dispatchEvent(n),e||n.defaultPrevented?!0:t.current?.()??!1},a=window;return a.__pisperRequestBack=i,window.addEventListener(`keydown`,n,!0),window.addEventListener(`keydown`,r),()=>{a.__pisperRequestBack===i&&delete a.__pisperRequestBack,window.removeEventListener(`keydown`,n,!0),window.removeEventListener(`keydown`,r)}},[]),null}function or(){let e=null,t=!1;return{register(n){return e=n,t&&(t=!1,n()),()=>{e===n&&(e=null)}},invoke(){if(e)return e();t=!0},clear(){e=null}}}Object.freeze([`session`,`board`,`more`,`settings`]);var sr=Object.freeze({board:`board`,more:`more`,settings:`config`});function cr(e,t){return t?`settings`:e===`session`||e===`chat`?`session`:e===`board`?`board`:e===`components`||e===`more`||e===`config`||Xe.has(e)?`more`:null}function lr({location:e,navigation:t}){return t.state!==`idle`&&t.location?.pathname||e.pathname}function ur({location:e,navigation:t}){return C(lr({location:e,navigation:t}))===`session`?null:t.state!==`idle`&&C(e.pathname)===`session`?{to:e.pathname+(e.search||``),replace:!0,state:e.state}:{to:`/`}}var dr=/^\/components\/([^/]+)\/?$/;function fr(e,t,n,{phone:r=!1,homeEntry:i=!1,canGoBack:a=!1}={}){return e===`session`?i||t===`/`||t===``?null:a?-1:null:e===`components`&&dr.test(t)?`/components`:r&&n&&/^\/config\/[^/]+/.test(t)?ee:cr(e,n)===`more`&&e!==`more`?`/more`:`/`}var pr=`flex w-full min-w-0 items-center gap-2.5 rounded-[var(--r-md)] px-2.5 text-base text-content transition-colors duration-(--d-fast) hover:bg-surface-hover focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus`,mr=`grid size-8 flex-none place-items-center rounded-[var(--r-sm)] text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus pointer-coarse:size-11`,hr=`grid size-10 place-items-center rounded-[var(--r-md)] text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus pointer-coarse:size-11`,gr=`(max-width: 899px)`;function _r(e){let t=e.takeover,n=B(e=>e.collapsed)&&!t,r=B(e=>e.peeking),i=B(e=>e.setPeeking),a=(0,X.useRef)(null),o=(0,X.useRef)(null),s=ke(gr),c=B(e=>e.enterNarrowRail),l=B(e=>e.leaveNarrowRail);(0,X.useEffect)(()=>{s?c():l()},[s,c,l]);let u=(0,X.useRef)(!1);return(0,X.useLayoutEffect)(()=>{if(!u.current)return;let e=document.activeElement;e&&e!==document.body&&o.current?.contains(e)||o.current?.querySelector(`[data-sidebar-toggle]`)?.focus()},[n]),(0,X.useEffect)(()=>{t&&r&&i(!1)},[r,i,t]),(0,X.useEffect)(()=>{if(!n||!r)return;let e=e=>e instanceof Element&&!!(a.current?.contains(e)||e.closest(`[role="menu"], [role="dialog"], [data-radix-popper-content-wrapper]`)),t=t=>{e(t.target)||i(!1)},o=t=>{e(t.target)||i(!1)},s=t=>{t.key!==`Escape`||t.defaultPrevented||!e(t.target)||(t.preventDefault(),i(!1))};return document.addEventListener(`focusin`,t),document.addEventListener(`pointerdown`,o),document.addEventListener(`keydown`,s),()=>{document.removeEventListener(`focusin`,t),document.removeEventListener(`pointerdown`,o),document.removeEventListener(`keydown`,s)}},[n,r,i]),(0,Z.jsxs)(`div`,{ref:o,"data-shell-sidebar":t?`settings`:n?`rail`:`expanded`,"data-focus-region":`sidebar`,onFocus:()=>{u.current=!0},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||(u.current=!1)},className:I(`relative z-20 flex h-full flex-none flex-col bg-sidebar transition-[width] duration-(--d-base) ease-out motion-reduce:transition-none`,n?`w-[60px]`:`w-[268px]`,`dark:border-r dark:border-stroke-soft`),children:[t??(0,Z.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col animate-in fade-in duration-(--d-fast) motion-reduce:animate-none`,children:n?(0,Z.jsx)(xr,{...e}):(0,Z.jsx)(br,{...e})},n?`rail`:`expanded`),n&&r&&(0,Z.jsx)(`div`,{ref:a,"data-shell-sidebar-peek":!0,className:`absolute inset-y-0 left-0 z-40 flex w-[268px] flex-col bg-sidebar shadow-float`,children:(0,Z.jsx)(br,{...e,peek:!0})})]})}var vr={newTask:`primaryAction`,search:`commandPalette`,board:`openBoard`,features:`openMore`,settings:`openSettings`};function yr(){let{t:e}=A();return{newTask:e(`navigation:shell.newTask`),search:e(`navigation:sidebar.search`),board:e(`navigation:sidebar.allAgents`),features:e(`navigation:sidebar.features`),settings:e(`navigation:navigation.settings`)}}function br({active:e,onNewTask:t,onSearch:n,onOpenBoard:r,onOpenFeatures:i,onOpenSettings:a,content:o,update:s,peek:c=!1}){let{t:l}=A(),u=yr(),d=B(e=>e.toggleCollapsed),f=B(e=>e.setPeeking),p=L(e=>e.bindings),m=p.toggleSidebar,h=z(`toggleSidebar`),g={newTask:z(`primaryAction`),search:z(`commandPalette`),board:z(`openBoard`),features:z(`openMore`),settings:z(`openSettings`)},_=l(c?`navigation:sidebar.expand`:`navigation:sidebar.collapse`),v=(t,n,r)=>{let i=t===`board`?u.board:t===`features`?u.features:u[t],a=g[t],o=t===e;return(0,Z.jsxs)(`button`,{type:`button`,"data-sidebar-entry":t,"aria-current":o?`page`:void 0,"aria-keyshortcuts":W(p[vr[t]]),className:I(pr,`group/entry h-9 pointer-coarse:h-11`,o&&`bg-surface-active font-medium hover:bg-surface-active`),onClick:r,children:[(0,Z.jsx)(n,{className:`size-[18px] flex-none text-content-secondary`,strokeWidth:1.75,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:i}),a&&(0,Z.jsx)(ft,{"aria-hidden":`true`,className:`border-transparent bg-transparent text-content-faint opacity-0 shadow-none transition-opacity duration-(--d-fast) group-hover/entry:opacity-100 group-focus-visible/entry:opacity-100 pointer-coarse:hidden`,children:a})]})};return(0,Z.jsxs)(`nav`,{"aria-label":l(`navigation:sidebar.label`),className:`flex min-h-0 flex-1 flex-col`,children:[(0,Z.jsxs)(`div`,{"data-window-drag-region":!0,className:`flex h-[52px] flex-none items-center gap-2 pr-2.5 pl-4`,children:[(0,Z.jsx)(It,{size:22}),(0,Z.jsx)(`span`,{className:`text-[15px] font-semibold tracking-[-.01em] text-content`,children:`Pisper`}),(0,Z.jsx)(`span`,{className:`flex-1`}),(0,Z.jsx)(`button`,{type:`button`,"data-sidebar-toggle":c?void 0:`collapse`,"aria-expanded":!c||void 0,className:mr,"aria-label":_,"aria-keyshortcuts":c?void 0:W(m),title:!c&&h?`${_} (${h})`:_,onClick:()=>c?f(!1):d(),children:c?(0,Z.jsx)(Qt,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`}):(0,Z.jsx)(Zt,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`})})]}),(0,Z.jsxs)(`div`,{className:`flex flex-none flex-col gap-px px-2 pt-0.5 pb-1.5`,children:[v(`newTask`,Ge,t),v(`search`,Ue,n),v(`board`,He,r),v(`features`,Ve,i)]}),(0,Z.jsx)(`div`,{"data-sidebar-scroll":!0,className:`min-h-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-contain px-2 pt-1.5`,children:o}),(0,Z.jsxs)(`div`,{className:`flex flex-none items-center gap-1 p-2`,children:[(0,Z.jsx)(`div`,{className:`min-w-0 flex-1`,children:v(`settings`,We,a)}),s]})]})}function xr({active:e,onNewTask:t,onSearch:n,onOpenBoard:r,onOpenFeatures:i,onOpenSettings:a,railCounts:o,update:s}){let{t:c}=A(),l=yr(),u=B(e=>e.toggleCollapsed),d=L(e=>e.bindings),f=d.toggleSidebar,p=z(`toggleSidebar`),m=c(`navigation:sidebar.expand`),h=(t,n,r)=>{let i=t===`board`?l.board:t===`features`?l.features:l[t],a=t===e;return(0,Z.jsx)(`button`,{type:`button`,"data-sidebar-entry":t,"aria-keyshortcuts":W(d[vr[t]]),"aria-label":i,"aria-current":a?`page`:void 0,title:i,className:I(hr,a&&`bg-surface-active text-content`),onClick:r,children:(0,Z.jsx)(n,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`})})};return(0,Z.jsxs)(`nav`,{"aria-label":c(`navigation:sidebar.labelCollapsed`),className:`flex min-h-0 flex-1 flex-col items-center gap-1 pb-2`,children:[(0,Z.jsx)(`div`,{"data-window-drag-region":!0,className:`flex h-[52px] flex-none items-center`,children:(0,Z.jsx)(`button`,{type:`button`,"data-sidebar-toggle":`expand`,"aria-expanded":!1,className:hr,"aria-label":m,"aria-keyshortcuts":W(f),title:p?`${m} (${p})`:m,onClick:u,children:(0,Z.jsx)(Qt,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`})})}),h(`newTask`,Ge,t),h(`search`,Ue,n),(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:`my-1.5 h-px w-6 bg-stroke-strong`}),o,(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:`my-1.5 h-px w-6 bg-stroke-strong`}),h(`board`,He,r),h(`features`,Ve,i),(0,Z.jsx)(`span`,{className:`flex-1`}),s,h(`settings`,We,a)]})}function Sr({collapsed:e=!1}){let{t}=A();return e?(0,Z.jsxs)(`div`,{"aria-hidden":`true`,className:`flex flex-col items-center gap-1`,children:[(0,Z.jsx)(`span`,{className:`size-10 rounded-[var(--r-md)] bg-surface-hover`}),(0,Z.jsx)(`span`,{className:`size-10 rounded-[var(--r-md)] bg-surface-hover`})]}):(0,Z.jsx)(`div`,{role:`status`,"aria-busy":`true`,"aria-label":t(`navigation:sidebar.loading`),children:[60,44,70].map(e=>(0,Z.jsxs)(`div`,{"aria-hidden":`true`,className:`flex h-9 items-center gap-2.5 px-2.5`,children:[(0,Z.jsx)(`span`,{className:`size-4 rounded-full bg-surface-hover`}),(0,Z.jsx)(`span`,{className:`h-3 rounded-sm bg-surface-hover`,style:{width:`${e}%`}})]},e))})}var Cr=`pisper-custom-accent-style`,wr=[`xs`,`sm`,`base`,`lg`,`xl`,`2xl`,`3xl`],Tr=[12,13,14,16,20,24,28];function Er(e){let{uiFontSize:t}=zt(typeof e==`number`?{uiFontSize:e}:{fontScale:e});return Tr.map(e=>Math.round(e*t/14))}function Dr(e,t,n=new Date().getHours()){return e===`dark`?!0:e===`light`?!1:e===`system`?t:n>=18||n<8}function Or(e){let t=document.documentElement;t.dataset.accent=e.accent,t.dataset.density=e.density,t.dataset.fontScale=e.fontScale,t.dataset.motion=e.motion,t.dataset.radius=e.radius;let n=zt(e.uiFontSize===void 0?{fontScale:e.fontScale,codeFontSize:e.codeFontSize}:e);t.style.setProperty(`--ui-font-size`,`${n.uiFontSize}px`),t.style.setProperty(`--font-code-size`,`${n.codeFontSize}px`),Er(n.uiFontSize).forEach((e,n)=>{t.style.setProperty(`--font-ui-${wr[n]}`,`${e}px`)});let r=e.accent===`custom`?q(e.customAccent||``):null,i=document.getElementById(Cr);r?(i||(i=document.createElement(`style`),i.id=Cr,document.head.append(i)),i.textContent=Lt(r)):i?.remove()}function kr(e,t){if(!e)return``;let n=t?.sessions?.find(t=>t?.id===e);return n&&n.archived!==!0?e:``}function Ar(){let e=o(),t=f(),{t:n}=A(),r=(0,X.useRef)(n);return r.current=n,(0,X.useEffect)(()=>{if(!window.pisperDesktop)return;let e=!1,t=()=>{};return i(async()=>{let{startDesktopHosts:e}=await import(`./desktop-hosts-B3CWL4di.js`);return{startDesktopHosts:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])).then(({startDesktopHosts:n})=>{e||(t=n(e=>r.current(e)))}),()=>{e=!0,t()}},[]),(0,X.useEffect)(()=>{let n=n=>{if(n.defaultPrevented)return;let r=(n.target instanceof Element?n.target:null)?.closest(`a[href]`);if(!r)return;let i=G({href:r.href,baseUrl:window.location.href,button:n.button,download:r.hasAttribute(`download`),altKey:n.altKey,ctrlKey:n.ctrlKey,metaKey:n.metaKey,shiftKey:n.shiftKey,behavior:r.dataset.webPreview});if(!i)return;if(n.preventDefault(),n.stopPropagation(),x(e.pathname)){K(i);return}let a=kr(p.getItem(j.activeSession),he.getQueryData(M));if(!a){window.open(i,`_blank`,`noopener,noreferrer`);return}K(i),t(S(a))};return document.addEventListener(`click`,n,!0),()=>document.removeEventListener(`click`,n,!0)},[e.pathname,t]),null}function jr({blocked:e,onCommandPalette:t,onPrimary:n,onSearch:r,onToggleTerminal:i,onToggleSidebar:a,onAgentPanel:o,onPreviousAgent:s,onNextAgent:c,onSettings:l,onOpenSession:u,onOpenBoard:d,onOpenComponents:f,onOpenMore:p,onJumpToAttention:m,onSessionTree:h,onSideChat:g,onCycleFocusRegion:_,onShortcutHelp:v}){let y=L(e=>e.bindings);return(0,X.useLayoutEffect)(()=>{let b=b=>{if(e||yt(b)||bt(b)&&!b.key.startsWith(`Arrow`))return;let x;R(b,y.commandPalette)?x=t:R(b,y.primaryAction)?x=n:R(b,y.openSession)?x=u:R(b,y.openBoard)?x=d:R(b,y.openComponents)?x=f:R(b,y.openMore)?x=p:R(b,y.jumpToAttention)?x=m:R(b,y.sessionTree)?x=h:R(b,y.sideChat)?x=g:R(b,y.cycleFocusRegion)?x=_:R(b,y.toggleSidebar)?x=a:R(b,y.agentPanel)?x=o:R(b,y.previousAgent)?x=s:R(b,y.nextAgent)?x=c:R(b,y.toggleTerminal)?x=i:R(b,y.openSettings)?x=l:R(b,y.shortcutHelp)?x=v:!xt(b.target)&&R(b,y.focusSearch)&&(x=r),x&&(b.preventDefault(),x())};return window.addEventListener(`keydown`,b),()=>window.removeEventListener(`keydown`,b)},[y,e,o,t,_,m,c,d,f,p,u,s,n,r,h,l,v,g,i,a]),null}var Mr=v(`group pointer-events-auto relative flex min-h-11 w-full items-center gap-2 overflow-hidden rounded-md border px-3.5 py-2.5 pr-10 text-[13px] leading-5 font-medium tracking-[0] shadow-float transition data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-right-full data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none`,{variants:{tone:{success:`border-success-border bg-success-soft text-success-strong`,error:`border-danger-border bg-danger-soft text-danger`,info:`border-stroke bg-popover text-foreground`}},defaultVariants:{tone:`success`}});function Nr({className:e,tone:t,...n}){return(0,Z.jsx)(Un,{"data-slot":`toast`,className:I(Mr({tone:t}),e),...n})}function Pr({...e}){return(0,Z.jsx)(Vn,{"data-slot":`toast-provider`,...e})}function Fr({className:e,...t}){return(0,Z.jsx)(Hn,{"data-slot":`toast-viewport`,className:I(`fixed right-5 bottom-5 z-[80] flex w-[min(420px,calc(100vw-40px))] max-w-full flex-col gap-2 outline-none max-sm:right-3 max-sm:bottom-3 max-sm:left-3 max-sm:w-auto`,e),...t})}function Ir({className:e,...t}){return(0,Z.jsx)(Wn,{"data-slot":`toast-description`,className:I(`min-w-0 flex-1 [overflow-wrap:anywhere]`,e),...t})}function Lr({className:e,...t}){return(0,Z.jsx)(Kn,{"data-slot":`toast-close`,className:I(`absolute top-1/2 right-1.5 grid size-7 -translate-y-1/2 place-items-center rounded-sm text-current opacity-70 transition hover:bg-black/5 hover:opacity-100 dark:hover:bg-white/10`,e),...t})}var Rr={success:Pe,error:Ke,info:Be};function zr({message:e,tone:t,closeLabel:n,action:r,...i}){let a=Rr[t];return(0,Z.jsxs)(Nr,{tone:t,type:t===`error`?`foreground`:`background`,...i,children:[(0,Z.jsx)(a,{className:`size-[18px] shrink-0`}),(0,Z.jsx)(Ir,{children:e}),r&&(0,Z.jsx)(Gn,{altText:r.label,asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`h-7 shrink-0 rounded-sm border border-current/30 px-2 text-xs font-semibold hover:bg-current/10`,onClick:r.onAction,children:r.label})}),(0,Z.jsx)(Lr,{"aria-label":n,title:n,children:(0,Z.jsx)(qe,{className:`size-4`})})]})}function Br(){let{t:e}=A(),[t,n]=(0,X.useState)(null),r=(0,X.useRef)(null),i=(0,X.useCallback)(e=>{r.current?.(e),r.current=null,n(null)},[]),a=(0,X.useCallback)(e=>new Promise(t=>{r.current?.(null),r.current=t,n(e)}),[]),o=(0,X.useCallback)((t={})=>a({type:`confirm`,title:e(`common:useAppDialog.confirmAction`),confirmLabel:e(`common:useAppDialog.confirm`),tone:`danger`,...t}).then(e=>e===!0),[a,e]),s=(0,X.useCallback)((t={})=>a({type:`prompt`,title:e(`common:useAppDialog.enterContent`),confirmLabel:e(`common:useAppDialog.save`),tone:`primary`,value:``,...t}).then(e=>typeof e==`string`?e:null),[a,e]),c=(0,X.useCallback)(()=>i(null),[i]);return(0,X.useEffect)(()=>()=>r.current?.(null),[]),{dialog:t,confirm:o,prompt:s,close:c,finish:i}}var Vr=15e3,Hr=216e5,Ur=new Set([`checking`,`downloading`,`downloaded`]);function Wr(e){return!Ur.has(e)}function Gr(e,t=window){let n=!1,r=!1,i=()=>{n||r||(n=!0,Promise.resolve().then(e).catch(()=>{}).finally(()=>{n=!1}))},a=t.setTimeout(i,Vr),o=t.setInterval(i,Hr);return()=>{r=!0,t.clearTimeout(a),t.clearInterval(o)}}var Kr=new Set([`available`,`downloading`,`installed`,`error`]),qr=/\b(?:403|429)\b[\s\S]*api\.github\.com/;function Jr(e){return e.retryAt!=null||qr.test(e.message)}function Yr(e){return e.length>1&&e.every(t=>t.message===e[0].message)?e[0].message:e.map(e=>`${e.component}: ${e.message}`).join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/desktop-hosts-kpDUJPHM.js","assets/event-stream-B3CGgFfm.js","assets/http-response-BMpatf4O.js","assets/i18n-D1oE4DVX.js","assets/vendor-router-CSN_DGvx.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-DwNgTV1j.js","assets/index-Cd49jlmz.js","assets/index-BTqJTVNA.css","assets/storage-DtvZ_lEu.js","assets/session-web-preview-guvsmkWE.js","assets/vendor-state-GkUciC5H.js","assets/web-preview-C7DdG9JP.js","assets/useNativeBrowser-C0j3zafh.js","assets/MobileNavigation-DdvgJ1_H.js","assets/use-i18n-CrMP8KP1.js","assets/runtime-capabilities-store-DcLHj_-T.js","assets/api-CCLf8CGI.js","assets/abort-signal-f4JsiYKX.js","assets/http-Ck9ziPLg.js","assets/runtime-capabilities-CPDBo3tu.js","assets/chevron-left-BAtyp3_6.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/chevron-right-C3t2Rckj.js","assets/settings-navigation-C-nsUyew.js","assets/bell-BjONAtgH.js","assets/bot-B3TaBp_T.js","assets/info-DATxy0fb.js","assets/monitor-ORxecA9m.js","assets/refresh-cw-TbWxTY4K.js","assets/DesktopWindowControls-DlV6D3IF.js","assets/minus-BuutOHSj.js","assets/square-bHHVTT3G.js","assets/x-07u4-129.js","assets/FloatingWidgets-1EwlF6Oj.js","assets/routes-DIeaqWVc.js","assets/placements-BPrt5jd4.js","assets/useQuery-DfOU-27z.js","assets/query-DFQayLF5.js","assets/component-changes-Q9Bf64Ob.js","assets/session-scope-BM93WXwD.js","assets/session-board-status-D2lpFPiI.js","assets/safe-mode-sentinel-CpYA8gLC.js","assets/usePhoneShell-Bjigstxq.js","assets/use-mobile-C2tPBAza.js","assets/client-store-Df-MtlGW.js","assets/AppOverlays-CgpAvY9q.js","assets/startup-queries-DG8R4Ryc.js","assets/mutation-b4pPvB7p.js","assets/circle-alert-DCChabnT.js","assets/loader-circle-BOwQzHB-.js","assets/message-square-SKjZyY3v.js","assets/plus-fQbSqB1n.js","assets/search-D0mqDaf_.js","assets/square-terminal-BVG6cUT1.js","assets/tag-CqkeJlBf.js","assets/utils-C8uzG5AZ.js","assets/vendor-ui-DvrYggeS.js","assets/kbd-CAufZTkl.js","assets/events-fUNyYQhT.js","assets/shortcuts-SQuwtLn8.js","assets/chat-api-PdHMtAmc.js","assets/format-DMJQzoZ7.js","assets/dialog-CEcIiRdx.js","assets/dist-BHkR6BLP.js","assets/dist-41X0pdUs.js","assets/dist-BsRXXcSL.js","assets/es2015-DTZdOI9P.js","assets/button-CCcCN8tE.js","assets/useOverlayFocusReturn-NkxBSSjb.js","assets/palette-navigation-BcPK8UF5.js","assets/blocks-Olsdp5Lp.js","assets/brain-qxhnKqYP.js","assets/calendar-clock-VIxTaqqy.js","assets/folder-open-FIShC5Qk.js","assets/list-T5PqlpS2.js","assets/plug-BsIeHRwC.js","assets/radio-tower-jGQwrFWB.js","assets/rotate-ccw-clock-CO6Bw-sF.js","assets/server-BgNvmqwJ.js","assets/settings-QX0oWnVK.js","assets/sparkles-S_eeuqn9.js","assets/workflow-Bg94dy8I.js","assets/AppDialog-bqakHiqz.js","assets/label-CVWjEcfV.js","assets/input-CPw-zkYh.js","assets/WebDesktopPet-CM4U0kvi.js","assets/public-components-DS306Oz2.js","assets/arrow-right-DqLOhpA2.js","assets/download-BCfIiuaL.js","assets/key-round-C29uZbsf.js","assets/config-search-Bk1H58rt.js","assets/BrandLogo-k3CvJjd4.js","assets/sidebar-B6oY6pcm.js","assets/pin-CU0FG0lI.js","assets/sidebar-store-DWzo4gcp.js","assets/useSessionListQuery-Bfjp1ecc.js","assets/session-organization-api-CLAh265X.js","assets/session-workspaces-Brm-8lHh.js","assets/session-questions-Cf-1g85h.js","assets/useNow-D9FGGV1H.js","assets/card-presentation-1oph2b8P.js","assets/useSidebarModel-0OeDSimB.js","assets/StatusGlyph-1KgitlUg.js","assets/useSessionRowActions-84-_ahHt.js","assets/ellipsis-CfGKfbq6.js","assets/dropdown-menu-Ds0gD8S8.js","assets/check-2vYc6QaP.js","assets/dist-DzGQ7sLi.js","assets/dist-BRjj4UeB.js","assets/dist-OB2r6Xsr.js","assets/dist-BaBySQmo.js","assets/session-home-BE2Q0var.js","assets/motion-DTR4ZVle.js","assets/BotAvatar-CNL-APwP.js","assets/shortcut-aria-jHRmld9z.js","assets/sidebar-commands-ZA1UOA_F.js","assets/public-sidebar-Cxg21QnN.js","assets/use-open-bot-DU7b6x-6.js","assets/WorkspacePicker-BRa_IVqp.js","assets/arrow-up-DST6-qVQ.js","assets/folder-DPM8D8cf.js","assets/triangle-alert-CE1q54ci.js","assets/PageState-Cz6vFMXv.js","assets/alert-DRIrgNI4.js","assets/workspace-folders-1RLblom2.js","assets/textarea-DmATpOqT.js","assets/pick-system-directory-Cnb1L8Kd.js","assets/field-DoLEb0np.js","assets/separator-BPh_qxvc.js","assets/bots-store-BYTwHk9o.js","assets/public-flags-_XZrt2pU.js","assets/public-events-DK8fPqRB.js","assets/PhoneTopBar-CI5JxBFX.js","assets/PhoneMenuButton-DlK5D8AZ.js","assets/public-BhSl1_DQ.js","assets/chevron-down-CxtxIjiP.js","assets/focus-session-composer-bits-DWovCteo.js","assets/braces-DQcXLGFF.js","assets/pencil-U08v_vV9.js","assets/wrench-6pg6_bqI.js","assets/run-activity-CwfO0cui.js","assets/workspace-order-store-Du6GVhMP.js","assets/useMachines-BnEhFLR-.js","assets/machines-api-Be-AjTEL.js","assets/useNewProjectPicker-CsJnnQt_.js","assets/FocusRuntimeControls-DiS4SP0x.js","assets/chevrons-up-down-C2sEPdAh.js","assets/popover-5MqQ5QIH.js","assets/slider-De8rWVNs.js","assets/dist-BS3ekNDj.js","assets/sheet-BTaIEX4w.js","assets/input-group-h8z63MzW.js","assets/model-display-kDwvtxrW.js","assets/session-change-summary-api-BzjbV-XG.js","assets/folder-paths-e_B8xA6T.js","assets/board-projects-C3_RLAYt.js","assets/square-pen-hYbjKh6A.js","assets/PhoneDrawer-_T7G0UlW.js","assets/SidebarUpdateStatus-4sXZK0UG.js","assets/external-link-CEQqPcqc.js","assets/rocket-BgLSjoHY.js","assets/SettingsSidebar-CMu7qKbO.js","assets/arrow-left-B8oVrQ2S.js","assets/back-navigation-CK7X_5Bc.js","assets/ShortcutHelpDialog-CaaKIjWq.js","assets/ShortcutKeys-DEP10d_k.js","assets/PageHeader-V6fYs6FB.js","assets/more-pages-D_PnxLN0.js","assets/TerminalPanel-toRRYBjv.js","assets/terminal-context-aIsIJPn8.js","assets/TaskTerminalView-B5GUaW-L.js","assets/AppSelect-DQYKUW5E.js","assets/select-Bbk9bmXO.js","assets/chevron-up-D_ZcXjqr.js","assets/dist-BiRPwy4W.js","assets/TaskTerminalView-BrP-ENHg.css","assets/MobileViewportStabilizer-uKI4Zp7f.js","assets/browser-notifications-CvHO-BlP.js","assets/session-tree-actions-BlqzMI3H.js","assets/session-tree-summary-B8SEWLOy.js","assets/BoardPage-C3a-6d1u.js","assets/arrow-down-CDGua-ue.js","assets/corner-down-right--hxi-Ihy.js","assets/useCatalogProjects-BJCTVrvM.js","assets/rotate-ccw-C0v8V77_.js","assets/trash-2-CNrPOoPR.js","assets/brand-DIEc3fK8.js","assets/segmented-control-xkrEOP_d.js","assets/tooltip-D4MFbqcG.js","assets/esm-DCV8yILT.js","assets/new-task-DG4I6cda.js","assets/ChatPage-BK61m32j.js","assets/permission-rules-api-i-sBmQT3.js","assets/archive-ojKJT7Fp.js","assets/book-open-BuHHD9os.js","assets/circle-check-iEdCm3Pw.js","assets/image-plus-D7bzZog0.js","assets/GitDiffViewer-BYB7_K9o.js","assets/file-Bllajneu.js","assets/side-chat-context-Dw_WsQW3.js","assets/copy-DHmIFc52.js","assets/eye-uWAPXNzJ.js","assets/undo-2-C-xQ0UVT.js","assets/shield-alert-oZqX6MNu.js","assets/shield-check-Gvek4RJ7.js","assets/vendor-motion-DSW3wzXK.js","assets/MarkdownMessage-BH5Nh-UO.js","assets/vendor-markdown-plugins-CT5L3KA9.js","assets/vendor-shiki-runtime-DM7fm4Bl.js","assets/vendor-markdown-plugins-DEcVZfaU.css","assets/vendor-markdown-CT6Z4fh8.js","assets/route-context-DvWDul4T.js","assets/HoldToConfirmButton-BxdJ7icc.js","assets/card-C3A0b5KR.js","assets/collapsible-Dcoy-qnz.js","assets/dist-DUSSw9eQ.js","assets/FileAttachmentPreview-DkYkLnxt.js","assets/tabs-DsgBuvJv.js","assets/git-branch-N7LGjtzt.js","assets/link-2-mgasYn21.js","assets/panel-right-BSUtqUd8.js","assets/paperclip-BCXrwYpb.js","assets/play-DNDjDNGn.js","assets/users-CCtFZzwl.js","assets/checkbox-BrEHgFV0.js","assets/progress-5odAz3B9.js","assets/switch-D_G8wFhs.js","assets/app-primitives-Drz_SjnR.js","assets/badge-CWB3lj2H.js","assets/session-list-BRMu9JWa.js","assets/public-DHE_Bffl.js","assets/session-inspector-store-BxozyuFV.js","assets/tool-labels-D-3gybP7.js","assets/speech-session-Dx6waD1F.js","assets/web-preview-events-D7F0Z-Hy.js","assets/SessionShell-Byw5069L.js","assets/SessionHome-D-iS34Q7.js","assets/MorePage-CM0nAh27.js","assets/app-window-CPNdvYNt.js","assets/image-BY_c3FYU.js","assets/monitor-smartphone-B1gIjItA.js","assets/ChatHistoryPage-D576j6vI.js","assets/pin-off-BpRu_vrC.js","assets/FeaturePage-qCmYebNB.js","assets/AssetsPage-BIYsLgYo.js","assets/queryOptions-Dfvzj6n2.js","assets/mobile-runtime-recovery-tbTyacip.js","assets/ChannelsPage-6Opibsv4.js","assets/message-circle-D-XrK6Ft.js","assets/send-Cj-W03w_.js","assets/public-B7A7Bf7w.js","assets/accordion-CiJMkjqX.js","assets/SchedulesPage-6Qe506NG.js","assets/ConfigPage-BmnOjD9j.js","assets/arrow-up-right-B6l8qFZz.js","assets/code-xml-BrUXrBax.js","assets/zap-DZHw5afO.js","assets/sliders-horizontal-Dryf1XyC.js","assets/machine-messages-D5urBDZn.js","assets/app-update-DcdhTBg3.js","assets/ChatAppearancePage-D5gk_aXZ.js","assets/PluginsPage-DHJHTTXh.js","assets/earth-Ddy13fHh.js","assets/file-code-corner-BnE1ljT0.js","assets/package-BOmkLaKS.js","assets/save-CHBB52P8.js","assets/MemoryPage-CSZweuq_.js","assets/memory-api-D9qnDSAr.js","assets/McpPage-DFwh1tmO.js","assets/SkillsPage-r_UPbRKb.js","assets/public-DAqU5ju6.js","assets/settings-2-CXJjXJS9.js","assets/use-studio-actions-Cb0xo6pc.js","assets/safe-mode-instance-Dpp0f3FD.js","assets/PageFrame-DNwGZ-Dz.js","assets/WorkflowsPage-BcXqmyBY.js","assets/grip-vertical-B__LYT0s.js","assets/pause-CYWpPg1R.js","assets/vendor-xyflow-hxQFvEHK.js","assets/vendor-xyflow-DLioOiRN.css","assets/navigation-DkcKi1_5.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{a as t,d as n,f as r,h as i,i as a,l as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./vendor-router-CSN_DGvx.js";import{t as p}from"./index-Cd49jlmz.js";import{i as m,n as h,r as g,t as _}from"./vendor-react-DwNgTV1j.js";import{t as v}from"./vendor-ui-DvrYggeS.js";import{a as y,c as b,d as x,f as S,i as ee,l as C,n as w,o as te,r as T,s as ne,t as re,u as ie}from"./routes-DIeaqWVc.js";import{a as E,c as ae,d as oe,i as se,l as ce,o as le,r as D,s as O,t as ue,u as k}from"./i18n-D1oE4DVX.js";import{n as de,r as fe,t as A}from"./use-i18n-CrMP8KP1.js";import{t as j}from"./storage-DtvZ_lEu.js";import{n as pe,t as me}from"./useQuery-DfOU-27z.js";import{a as he,i as ge,n as _e,o as ve,r as ye,s as be,t as M}from"./startup-queries-DG8R4Ryc.js";import{i as xe}from"./http-response-BMpatf4O.js";import{i as Se,n as Ce}from"./http-Ck9ziPLg.js";import{t as we}from"./api-CCLf8CGI.js";import{a as Te,i as Ee,r as De}from"./runtime-capabilities-CPDBo3tu.js";import{t as Oe}from"./runtime-capabilities-store-DcLHj_-T.js";import{i as ke,n as Ae,r as je}from"./use-mobile-C2tPBAza.js";import{t as Me}from"./client-store-Df-MtlGW.js";import{t as Ne}from"./createLucideIcon-Cd-3GVxJ.js";import{t as Pe}from"./circle-check-iEdCm3Pw.js";import{a as Fe,i as Ie,n as Le,o as Re,t as ze}from"./settings-navigation-C-nsUyew.js";import{t as Be}from"./info-DATxy0fb.js";import{n as Ve,t as He}from"./list-T5PqlpS2.js";import{t as Ue}from"./search-D0mqDaf_.js";import{t as We}from"./settings-QX0oWnVK.js";import{t as Ge}from"./square-pen-hYbjKh6A.js";import{t as Ke}from"./triangle-alert-CE1q54ci.js";import{t as qe}from"./x-07u4-129.js";import{i as Je,n as Ye,r as Xe,t as Ze}from"./more-pages-D_PnxLN0.js";import{a as Qe}from"./dist-41X0pdUs.js";import{a as N,c as P,i as $e,l as et,o as F,r as tt,s as nt,t as rt}from"./dist-BsRXXcSL.js";import{r as it}from"./dist-BiRPwy4W.js";import{n as at}from"./dist-DzGQ7sLi.js";import{c as ot,i as st,o as ct}from"./es2015-DTZdOI9P.js";import{r as lt}from"./tooltip-D4MFbqcG.js";import{t as I}from"./utils-C8uzG5AZ.js";import{n as ut,t as dt}from"./button-CCcCN8tE.js";import{t as ft}from"./kbd-CAufZTkl.js";import{_ as pt,h as mt,n as ht,t as gt,v as _t,y as vt}from"./events-fUNyYQhT.js";import{a as yt,c as L,i as bt,n as xt,r as R,s as z}from"./shortcuts-SQuwtLn8.js";import{t as B}from"./sidebar-store-DWzo4gcp.js";import{a as St,i as Ct,l as V,o as H,s as U,t as wt}from"./dialog-CEcIiRdx.js";import{n as Tt}from"./PageState-Cz6vFMXv.js";import{i as Et,t as Dt}from"./back-navigation-CK7X_5Bc.js";import{n as Ot,r as kt,t as At}from"./alert-DRIrgNI4.js";import{t as jt}from"./route-context-DvWDul4T.js";import{t as Mt}from"./new-task-DG4I6cda.js";import{t as W}from"./shortcut-aria-jHRmld9z.js";import{n as Nt}from"./sidebar-commands-ZA1UOA_F.js";import{r as Pt}from"./app-primitives-Drz_SjnR.js";import{t as Ft}from"./public-DHE_Bffl.js";import{t as It}from"./BrandLogo-k3CvJjd4.js";import{a as G}from"./web-preview-C7DdG9JP.js";import{r as K}from"./web-preview-events-D7F0Z-Hy.js";import{C as q,S as Lt,_ as J,a as Rt,b as zt,c as Bt,d as Vt,f as Ht,h as Y,m as Ut,n as Wt,p as Gt,r as Kt,u as qt}from"./app-update-DcdhTBg3.js";import{n as Jt,t as Yt}from"./navigation-DkcKi1_5.js";var X=e(m());function Xt({i18n:e,defaultNS:t,children:n}){let r=(0,X.useMemo)(()=>({i18n:e,defaultNS:t}),[e,t]);return(0,X.createElement)(fe.Provider,{value:r},n)}var Zt=Ne(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),Qt=Ne(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),$t=e(h(),1),Z=g(),en=Object.defineProperty,Q=(e,t)=>en(e,`name`,{value:t,configurable:!0}),tn=`ToastProvider`,[nn,rn,an]=at(`Toast`),[on,sn]=nt(`Toast`,[an]),[cn,ln]=on(tn),un=Q(e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,announcerContainer:o,children:s}=e,[c,l]=X.useState(null),[u,d]=X.useState(0),f=X.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${tn}\`. Expected non-empty \`string\`.`),(0,Z.jsx)(nn.Provider,{scope:t,children:(0,Z.jsx)(cn,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:u,viewport:c,onViewportChange:l,onToastAdd:X.useCallback(()=>d(e=>e+1),[]),onToastRemove:X.useCallback(()=>d(e=>e-1),[]),isClosePausedRef:f,announcerContainer:o,children:s})})},`ToastProvider`),dn=`ToastViewport`,fn=[`F8`],pn=`toast.viewportPause`,mn=`toast.viewportResume`,hn=X.forwardRef(Q(function(e,t){let{__scopeToast:n,hotkey:r=fn,label:i=`Notifications ({hotkey})`,...a}=e,o=ln(dn,n),s=rn(n),c=X.useRef(null),l=X.useRef(null),u=X.useRef(null),d=X.useRef(null),f=Qe(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;X.useEffect(()=>{let e=Q(e=>{r.length!==0&&r.every(t=>e[t]||e.code===t)&&d.current?.focus()},`handleKeyDown`);return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]),X.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=Q(()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(pn);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},`handlePause`),r=Q(()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(mn);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},`handleResume`),i=Q(t=>{e.contains(t.relatedTarget)||r()},`handleFocusOutResume`),a=Q(()=>{e.contains(document.activeElement)||r()},`handlePointerLeaveResume`);return e.addEventListener(`focusin`,n),e.addEventListener(`focusout`,i),e.addEventListener(`pointermove`,n),e.addEventListener(`pointerleave`,a),window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),()=>{e.removeEventListener(`focusin`,n),e.removeEventListener(`focusout`,i),e.removeEventListener(`pointermove`,n),e.removeEventListener(`pointerleave`,a),window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r)}}},[m,o.isClosePausedRef]);let h=X.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...zn(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return X.useEffect(()=>{let e=d.current;if(e){let t=Q(t=>{let n=t.altKey||t.ctrlKey||t.metaKey;if(t.key===`Tab`&&!n){let n=document.activeElement,r=t.shiftKey;if(t.target===e&&r){l.current?.focus();return}let i=h({tabbingDirection:r?`backwards`:`forwards`}),a=i.findIndex(e=>e===n);Bn(i.slice(a+1))?t.preventDefault():r?l.current?.focus():u.current?.focus()}},`handleKeyDown`);return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)}},[s,h]),(0,Z.jsxs)(ct,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,Z.jsx)(_n,{ref:l,onFocusFromOutsideViewport:()=>{Bn(h({tabbingDirection:`forwards`}))}}),(0,Z.jsx)(nn.Slot,{scope:n,children:(0,Z.jsx)(P.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,Z.jsx)(_n,{ref:u,onFocusFromOutsideViewport:()=>{Bn(h({tabbingDirection:`backwards`}))}})]})},`ToastViewport`)),gn=`ToastFocusProxy`,_n=X.forwardRef(Q(function(e,t){let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=ln(gn,n);return(0,Z.jsx)(it,{tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})},`ToastFocusProxy`)),vn=`Toast`,yn=`toast.swipeStart`,bn=`toast.swipeMove`,xn=`toast.swipeCancel`,Sn=`toast.swipeEnd`,Cn=X.forwardRef(Q(function(e,t){let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s,c]=$e({prop:r,defaultProp:i??!0,onChange:a,caller:vn});return(0,Z.jsx)(tt,{present:n||s,children:(0,Z.jsx)(En,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:rt(e.onPause),onResume:rt(e.onResume),onSwipeStart:F(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:F(e.onSwipeMove,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`move`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-y`,`${n}px`)}),onSwipeCancel:F(e.onSwipeCancel,e=>{e.currentTarget.setAttribute(`data-swipe`,`cancel`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-y`)}),onSwipeEnd:F(e.onSwipeEnd,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`end`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-y`,`${n}px`),c(!1)})})})},`Toast`)),[wn,Tn]=on(vn,{onClose(){}}),En=X.forwardRef(Q(function(e,t){let{__scopeToast:n,type:r=`foreground`,duration:i,open:a,onClose:o,onEscapeKeyDown:s,onPause:c,onResume:l,onSwipeStart:u,onSwipeMove:d,onSwipeCancel:f,onSwipeEnd:p,...m}=e,h=ln(vn,n),g=rn(n),[_,v]=X.useState(null),y=Qe(t,v),b=X.useRef(null),x=X.useRef(null),S=i||h.duration,ee=X.useRef(0),C=X.useRef(S),w=X.useRef(0),{onToastAdd:te,onToastRemove:T}=h,ne=rt(()=>{_?.contains(document.activeElement)&&h.viewport?.focus(),o()}),re=X.useCallback(e=>{!e||e===1/0||(window.clearTimeout(w.current),ee.current=new Date().getTime(),w.current=window.setTimeout(ne,e))},[ne]);X.useEffect(()=>{let e=h.viewport;if(e){let t=Q(()=>{re(C.current),l?.()},`handleResume`),n=Q(()=>{let e=new Date().getTime()-ee.current;C.current-=e,window.clearTimeout(w.current),c?.()},`handlePause`);return e.addEventListener(pn,n),e.addEventListener(mn,t),()=>{e.removeEventListener(pn,n),e.removeEventListener(mn,t)}}},[h.viewport,S,c,l,re]),X.useEffect(()=>{a&&!h.isClosePausedRef.current&&re(S)},[a,S,h.isClosePausedRef,re]),X.useEffect(()=>()=>{window.clearTimeout(w.current)},[]),X.useEffect(()=>(te(),()=>T()),[te,T]);let ie=X.useMemo(()=>_?Pn(_):null,[_]);return h.viewport?(0,Z.jsxs)(Z.Fragment,{children:[ie&&(0,Z.jsx)(Dn,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,children:ie}),(0,Z.jsx)(wn,{scope:n,onClose:ne,children:$t.createPortal((0,Z.jsx)(nn.ItemSlot,{scope:n,children:(0,Z.jsx)(ot,{asChild:!0,onEscapeKeyDown:F(s,e=>{g().some(t=>t.ref.current?.contains(e.target))||ne()}),children:(0,Z.jsx)(P.li,{tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:y,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:F(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||ne())}),onPointerDown:F(e.onPointerDown,e=>{e.button===0&&(b.current={x:e.clientX,y:e.clientY})}),onPointerMove:F(e.onPointerMove,e=>{if(!b.current)return;let t=e.clientX-b.current.x,n=e.clientY-b.current.y,r=!!x.current,i=[`left`,`right`].includes(h.swipeDirection),a=[`left`,`up`].includes(h.swipeDirection)?Math.min:Math.max,o=i?a(0,t):0,s=i?0:a(0,n),c=e.pointerType===`touch`?10:2,l={x:o,y:s},f={originalEvent:e,delta:l};r?(x.current=l,Fn(bn,d,f,{discrete:!1})):In(l,h.swipeDirection,c)?(x.current=l,Fn(yn,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(b.current=null)}),onPointerUp:F(e.onPointerUp,e=>{let t=x.current,n=e.target;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),x.current=null,b.current=null,t){let n=e.currentTarget,r={originalEvent:e,delta:t};In(t,h.swipeDirection,h.swipeThreshold)?Fn(Sn,p,r,{discrete:!0}):Fn(xn,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null},`ToastImpl`)),Dn=Q(e=>{let{__scopeToast:t,children:n,...r}=e,i=ln(vn,t),[a,o]=X.useState(!1),[s,c]=X.useState(!1);return Ln(()=>o(!0)),X.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,Z.jsx)(st,{asChild:!0,container:i.announcerContainer||void 0,children:(0,Z.jsx)(it,{...r,children:a&&(0,Z.jsxs)(Z.Fragment,{children:[i.label,` `,n]})})})},`ToastAnnounce`),On=X.forwardRef(Q(function(e,t){let{__scopeToast:n,...r}=e;return(0,Z.jsx)(P.div,{...r,ref:t})},`ToastDescription`)),kn=`ToastAction`,An=X.forwardRef(Q(function(e,t){let{altText:n,...r}=e;return n.trim()?(0,Z.jsx)(Nn,{altText:n,asChild:!0,children:(0,Z.jsx)(Mn,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${kn}\`. Expected non-empty \`string\`.`),null)},`ToastAction`)),jn=`ToastClose`,Mn=X.forwardRef(Q(function(e,t){let{__scopeToast:n,...r}=e,i=Tn(jn,n);return(0,Z.jsx)(Nn,{asChild:!0,children:(0,Z.jsx)(P.button,{type:`button`,...r,ref:t,onClick:F(e.onClick,i.onClose)})})},`ToastClose`)),Nn=X.forwardRef(Q(function(e,t){let{__scopeToast:n,altText:r,...i}=e;return(0,Z.jsx)(P.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})},`ToastAnnounceExclude`));function Pn(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),Rn(e)){let n=e.ariaHidden||e.hidden||e.style.display===`none`,r=e.dataset.radixToastAnnounceExclude===``;if(!n){if(r){let n=e.dataset.radixToastAnnounceAlt;n&&t.push(n)}else t.push(...Pn(e))}}}),t}Q(Pn,`getAnnounceTextContent`);function Fn(e,t,n,{discrete:r}){let i=n.originalEvent.currentTarget,a=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?et(i,a):i.dispatchEvent(a)}Q(Fn,`handleAndDispatchCustomEvent`);var In=Q((e,t,n=0)=>{let r=Math.abs(e.x),i=Math.abs(e.y),a=r>i;return t===`left`||t===`right`?a&&r>n:!a&&i>n},`isDeltaInDirection`);function Ln(e=()=>{}){let t=rt(e);N(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}Q(Ln,`useNextFrame`);function Rn(e){return e.nodeType===e.ELEMENT_NODE}Q(Rn,`isHTMLElement`);function zn(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:Q(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}Q(zn,`getTabbableCandidates`);function Bn(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}Q(Bn,`focusFirst`);var Vn=un,Hn=hn,Un=Cn,Wn=On,Gn=An,Kn=Mn,qn=_();function Jn({children:e}){let{i18n:t}=de(),n=oe(t.resolvedLanguage)?t.resolvedLanguage:ue;return(0,X.useEffect)(()=>{document.documentElement.lang=n;try{p.setItem(j.language,n)}catch{}window.pisperDesktop?.setLanguage?.(n)},[n]),e}function Yn({children:e}){return(0,Z.jsx)(Xt,{i18n:k,children:(0,Z.jsx)(Jn,{children:e})})}function Xn({children:e}){return(0,X.useEffect)(()=>ye(window),[]),(0,Z.jsx)(pe,{client:he,children:(0,Z.jsx)(Yn,{children:(0,Z.jsx)(lt,{delayDuration:200,children:e})})})}function Zn(e){return typeof e==`string`?e:``}function Qn(e,t){return Array.isArray(e)?e.map(e=>Zn(e?.[t])).filter(Boolean):[]}function $n(e){let t=e&&typeof e==`object`?e:{},n=t.failure;return{state:t.state===`ready`||t.state===`failed`?t.state:`pending`,failure:n?{code:Zn(n.code),message:Zn(n.message)}:null,setAsideFiles:Qn(t.setAside,`file`),failedServices:Qn(t.failed,`service`)}}async function er(e){try{return await Ce(`/api/startup-status`,{signal:e,parse:$n})}catch(e){if(e instanceof xe&&e.status===404)return null;throw e}}var tr=1e3,nr=6e5;function rr(){let{t:e}=A(),[t,n]=(0,X.useState)(null),[r,i]=(0,X.useState)(!1);if((0,X.useEffect)(()=>{let e=new AbortController,t=Date.now()+nr,r,i=async()=>{let a=!1;try{let t=await er(e.signal);if(e.signal.aborted)return;t&&n(t),a=!t||t.state!==`pending`}catch{}!a&&!e.signal.aborted&&Date.now()<t&&(r=window.setTimeout(()=>void i(),tr))};return i(),()=>{e.abort(),window.clearTimeout(r)}},[]),t?.state===`failed`){let n=t.failure;return(0,Z.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-background`,children:(0,Z.jsx)(Tt,{kind:`error`,title:e(`common:runtimeStartup.failedTitle`),description:(0,Z.jsxs)(Z.Fragment,{children:[e(`common:runtimeStartup.failedHint`),n&&(0,Z.jsx)(`code`,{className:`mt-2 block font-mono select-text`,children:n.message.startsWith(n.code)?n.message:`${n.code}: ${n.message}`})]})})})}if(r||!t)return null;let{setAsideFiles:a,failedServices:o}=t;return!a.length&&!o.length?null:(0,Z.jsxs)(At,{className:`fixed right-4 bottom-[calc(1rem+var(--pisper-safe-area-bottom,0px))] z-50 w-[min(26rem,calc(100vw-2rem))] shadow-lg`,"data-runtime-startup-notice":!0,children:[(0,Z.jsx)(kt,{children:e(`common:runtimeStartup.noticeTitle`)}),(0,Z.jsxs)(Ot,{className:`grid gap-1`,children:[a.length>0&&(0,Z.jsx)(`p`,{children:e(`common:runtimeStartup.setAside`,{files:a.join(`、`)})}),o.length>0&&(0,Z.jsx)(`p`,{children:e(`common:runtimeStartup.failedServices`,{services:o.join(`、`)})}),(0,Z.jsx)(dt,{type:`button`,variant:`outline`,className:`mt-1 justify-self-end`,onClick:()=>i(!0),children:e(`common:runtimeStartup.dismiss`)})]})]})}function ir(){return[...document.querySelectorAll(`[role="dialog"], [role="alertdialog"], [role="menu"], [data-slot="popover-content"]`)].some(e=>e.dataset.state!==`closed`&&e.getAttribute(`aria-hidden`)!==`true`&&e.getClientRects().length>0)}function ar({onRouteBack:e}){let t=(0,X.useRef)(e);return t.current=e,(0,X.useEffect)(()=>{let e=new WeakSet,n=t=>{t.key===`Escape`&&ir()&&e.add(t)},r=t=>{t.key!==`Escape`||t.defaultPrevented||t.isComposing||e.has(t)||Dt.dismiss()&&t.preventDefault()},i=()=>{let e=ir(),n=new KeyboardEvent(`keydown`,{key:`Escape`,bubbles:!0,cancelable:!0});return Et(n),(document.activeElement||document.body).dispatchEvent(n),e||n.defaultPrevented?!0:t.current?.()??!1},a=window;return a.__pisperRequestBack=i,window.addEventListener(`keydown`,n,!0),window.addEventListener(`keydown`,r),()=>{a.__pisperRequestBack===i&&delete a.__pisperRequestBack,window.removeEventListener(`keydown`,n,!0),window.removeEventListener(`keydown`,r)}},[]),null}function or(){let e=null,t=!1;return{register(n){return e=n,t&&(t=!1,n()),()=>{e===n&&(e=null)}},invoke(){if(e)return e();t=!0},clear(){e=null}}}Object.freeze([`session`,`board`,`more`,`settings`]);var sr=Object.freeze({board:`board`,more:`more`,settings:`config`});function cr(e,t){return t?`settings`:e===`session`||e===`chat`?`session`:e===`board`?`board`:e===`components`||e===`more`||e===`config`||Xe.has(e)?`more`:null}function lr({location:e,navigation:t}){return t.state!==`idle`&&t.location?.pathname||e.pathname}function ur({location:e,navigation:t}){return C(lr({location:e,navigation:t}))===`session`?null:t.state!==`idle`&&C(e.pathname)===`session`?{to:e.pathname+(e.search||``),replace:!0,state:e.state}:{to:`/`}}var dr=/^\/components\/([^/]+)\/?$/;function fr(e,t,n,{phone:r=!1,homeEntry:i=!1,canGoBack:a=!1}={}){return e===`session`?i||t===`/`||t===``?null:a?-1:null:e===`components`&&dr.test(t)?`/components`:r&&n&&/^\/config\/[^/]+/.test(t)?ee:cr(e,n)===`more`&&e!==`more`?`/more`:`/`}var pr=`flex w-full min-w-0 items-center gap-2.5 rounded-[var(--r-md)] px-2.5 text-base text-content transition-colors duration-(--d-fast) hover:bg-surface-hover focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus`,mr=`grid size-8 flex-none place-items-center rounded-[var(--r-sm)] text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus pointer-coarse:size-11`,hr=`grid size-10 place-items-center rounded-[var(--r-md)] text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus pointer-coarse:size-11`,gr=`(max-width: 899px)`;function _r(e){let t=e.takeover,n=B(e=>e.collapsed)&&!t,r=B(e=>e.peeking),i=B(e=>e.setPeeking),a=(0,X.useRef)(null),o=(0,X.useRef)(null),s=ke(gr),c=B(e=>e.enterNarrowRail),l=B(e=>e.leaveNarrowRail);(0,X.useEffect)(()=>{s?c():l()},[s,c,l]);let u=(0,X.useRef)(!1);return(0,X.useLayoutEffect)(()=>{if(!u.current)return;let e=document.activeElement;e&&e!==document.body&&o.current?.contains(e)||o.current?.querySelector(`[data-sidebar-toggle]`)?.focus()},[n]),(0,X.useEffect)(()=>{t&&r&&i(!1)},[r,i,t]),(0,X.useEffect)(()=>{if(!n||!r)return;let e=e=>e instanceof Element&&!!(a.current?.contains(e)||e.closest(`[role="menu"], [role="dialog"], [data-radix-popper-content-wrapper]`)),t=t=>{e(t.target)||i(!1)},o=t=>{e(t.target)||i(!1)},s=t=>{t.key!==`Escape`||t.defaultPrevented||!e(t.target)||(t.preventDefault(),i(!1))};return document.addEventListener(`focusin`,t),document.addEventListener(`pointerdown`,o),document.addEventListener(`keydown`,s),()=>{document.removeEventListener(`focusin`,t),document.removeEventListener(`pointerdown`,o),document.removeEventListener(`keydown`,s)}},[n,r,i]),(0,Z.jsxs)(`div`,{ref:o,"data-shell-sidebar":t?`settings`:n?`rail`:`expanded`,"data-focus-region":`sidebar`,onFocus:()=>{u.current=!0},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||(u.current=!1)},className:I(`relative z-20 flex h-full flex-none flex-col bg-sidebar transition-[width] duration-(--d-base) ease-out motion-reduce:transition-none`,n?`w-[60px]`:`w-[268px]`,`dark:border-r dark:border-stroke-soft`),children:[t??(0,Z.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col animate-in fade-in duration-(--d-fast) motion-reduce:animate-none`,children:n?(0,Z.jsx)(xr,{...e}):(0,Z.jsx)(br,{...e})},n?`rail`:`expanded`),n&&r&&(0,Z.jsx)(`div`,{ref:a,"data-shell-sidebar-peek":!0,className:`absolute inset-y-0 left-0 z-40 flex w-[268px] flex-col bg-sidebar shadow-float`,children:(0,Z.jsx)(br,{...e,peek:!0})})]})}var vr={newTask:`primaryAction`,search:`commandPalette`,board:`openBoard`,features:`openMore`,settings:`openSettings`};function yr(){let{t:e}=A();return{newTask:e(`navigation:shell.newTask`),search:e(`navigation:sidebar.search`),board:e(`navigation:sidebar.allAgents`),features:e(`navigation:sidebar.features`),settings:e(`navigation:navigation.settings`)}}function br({active:e,onNewTask:t,onSearch:n,onOpenBoard:r,onOpenFeatures:i,onOpenSettings:a,content:o,update:s,peek:c=!1}){let{t:l}=A(),u=yr(),d=B(e=>e.toggleCollapsed),f=B(e=>e.setPeeking),p=L(e=>e.bindings),m=p.toggleSidebar,h=z(`toggleSidebar`),g={newTask:z(`primaryAction`),search:z(`commandPalette`),board:z(`openBoard`),features:z(`openMore`),settings:z(`openSettings`)},_=l(c?`navigation:sidebar.expand`:`navigation:sidebar.collapse`),v=(t,n,r)=>{let i=t===`board`?u.board:t===`features`?u.features:u[t],a=g[t],o=t===e;return(0,Z.jsxs)(`button`,{type:`button`,"data-sidebar-entry":t,"aria-current":o?`page`:void 0,"aria-keyshortcuts":W(p[vr[t]]),className:I(pr,`group/entry h-9 pointer-coarse:h-11`,o&&`bg-surface-active font-medium hover:bg-surface-active`),onClick:r,children:[(0,Z.jsx)(n,{className:`size-[18px] flex-none text-content-secondary`,strokeWidth:1.75,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:i}),a&&(0,Z.jsx)(ft,{"aria-hidden":`true`,className:`border-transparent bg-transparent text-content-faint opacity-0 shadow-none transition-opacity duration-(--d-fast) group-hover/entry:opacity-100 group-focus-visible/entry:opacity-100 pointer-coarse:hidden`,children:a})]})};return(0,Z.jsxs)(`nav`,{"aria-label":l(`navigation:sidebar.label`),className:`flex min-h-0 flex-1 flex-col`,children:[(0,Z.jsxs)(`div`,{"data-window-drag-region":!0,className:`flex h-[52px] flex-none items-center gap-2 pr-2.5 pl-4`,children:[(0,Z.jsx)(It,{size:22}),(0,Z.jsx)(`span`,{className:`text-[15px] font-semibold tracking-[-.01em] text-content`,children:`Pisper`}),(0,Z.jsx)(`span`,{className:`flex-1`}),(0,Z.jsx)(`button`,{type:`button`,"data-sidebar-toggle":c?void 0:`collapse`,"aria-expanded":!c||void 0,className:mr,"aria-label":_,"aria-keyshortcuts":c?void 0:W(m),title:!c&&h?`${_} (${h})`:_,onClick:()=>c?f(!1):d(),children:c?(0,Z.jsx)(Qt,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`}):(0,Z.jsx)(Zt,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`})})]}),(0,Z.jsxs)(`div`,{className:`flex flex-none flex-col gap-px px-2 pt-0.5 pb-1.5`,children:[v(`newTask`,Ge,t),v(`search`,Ue,n),v(`board`,He,r),v(`features`,Ve,i)]}),(0,Z.jsx)(`div`,{"data-sidebar-scroll":!0,className:`min-h-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-contain px-2 pt-1.5`,children:o}),(0,Z.jsxs)(`div`,{className:`flex flex-none items-center gap-1 p-2`,children:[(0,Z.jsx)(`div`,{className:`min-w-0 flex-1`,children:v(`settings`,We,a)}),s]})]})}function xr({active:e,onNewTask:t,onSearch:n,onOpenBoard:r,onOpenFeatures:i,onOpenSettings:a,railCounts:o,update:s}){let{t:c}=A(),l=yr(),u=B(e=>e.toggleCollapsed),d=L(e=>e.bindings),f=d.toggleSidebar,p=z(`toggleSidebar`),m=c(`navigation:sidebar.expand`),h=(t,n,r)=>{let i=t===`board`?l.board:t===`features`?l.features:l[t],a=t===e;return(0,Z.jsx)(`button`,{type:`button`,"data-sidebar-entry":t,"aria-keyshortcuts":W(d[vr[t]]),"aria-label":i,"aria-current":a?`page`:void 0,title:i,className:I(hr,a&&`bg-surface-active text-content`),onClick:r,children:(0,Z.jsx)(n,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`})})};return(0,Z.jsxs)(`nav`,{"aria-label":c(`navigation:sidebar.labelCollapsed`),className:`flex min-h-0 flex-1 flex-col items-center gap-1 pb-2`,children:[(0,Z.jsx)(`div`,{"data-window-drag-region":!0,className:`flex h-[52px] flex-none items-center`,children:(0,Z.jsx)(`button`,{type:`button`,"data-sidebar-toggle":`expand`,"aria-expanded":!1,className:hr,"aria-label":m,"aria-keyshortcuts":W(f),title:p?`${m} (${p})`:m,onClick:u,children:(0,Z.jsx)(Qt,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`})})}),h(`newTask`,Ge,t),h(`search`,Ue,n),(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:`my-1.5 h-px w-6 bg-stroke-strong`}),o,(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:`my-1.5 h-px w-6 bg-stroke-strong`}),h(`board`,He,r),h(`features`,Ve,i),(0,Z.jsx)(`span`,{className:`flex-1`}),s,h(`settings`,We,a)]})}function Sr({collapsed:e=!1}){let{t}=A();return e?(0,Z.jsxs)(`div`,{"aria-hidden":`true`,className:`flex flex-col items-center gap-1`,children:[(0,Z.jsx)(`span`,{className:`size-10 rounded-[var(--r-md)] bg-surface-hover`}),(0,Z.jsx)(`span`,{className:`size-10 rounded-[var(--r-md)] bg-surface-hover`})]}):(0,Z.jsx)(`div`,{role:`status`,"aria-busy":`true`,"aria-label":t(`navigation:sidebar.loading`),children:[60,44,70].map(e=>(0,Z.jsxs)(`div`,{"aria-hidden":`true`,className:`flex h-9 items-center gap-2.5 px-2.5`,children:[(0,Z.jsx)(`span`,{className:`size-4 rounded-full bg-surface-hover`}),(0,Z.jsx)(`span`,{className:`h-3 rounded-sm bg-surface-hover`,style:{width:`${e}%`}})]},e))})}var Cr=`pisper-custom-accent-style`,wr=[`xs`,`sm`,`base`,`lg`,`xl`,`2xl`,`3xl`],Tr=[12,13,14,16,20,24,28];function Er(e){let{uiFontSize:t}=zt(typeof e==`number`?{uiFontSize:e}:{fontScale:e});return Tr.map(e=>Math.round(e*t/14))}function Dr(e,t,n=new Date().getHours()){return e===`dark`?!0:e===`light`?!1:e===`system`?t:n>=18||n<8}function Or(e){let t=document.documentElement;t.dataset.accent=e.accent,t.dataset.density=e.density,t.dataset.fontScale=e.fontScale,t.dataset.motion=e.motion,t.dataset.radius=e.radius;let n=zt(e.uiFontSize===void 0?{fontScale:e.fontScale,codeFontSize:e.codeFontSize}:e);t.style.setProperty(`--ui-font-size`,`${n.uiFontSize}px`),t.style.setProperty(`--font-code-size`,`${n.codeFontSize}px`),Er(n.uiFontSize).forEach((e,n)=>{t.style.setProperty(`--font-ui-${wr[n]}`,`${e}px`)});let r=e.accent===`custom`?q(e.customAccent||``):null,i=document.getElementById(Cr);r?(i||(i=document.createElement(`style`),i.id=Cr,document.head.append(i)),i.textContent=Lt(r)):i?.remove()}function kr(e,t){if(!e)return``;let n=t?.sessions?.find(t=>t?.id===e);return n&&n.archived!==!0?e:``}function Ar(){let e=o(),t=f(),{t:n}=A(),r=(0,X.useRef)(n);return r.current=n,(0,X.useEffect)(()=>{if(!window.pisperDesktop)return;let e=!1,t=()=>{};return i(async()=>{let{startDesktopHosts:e}=await import(`./desktop-hosts-kpDUJPHM.js`);return{startDesktopHosts:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])).then(({startDesktopHosts:n})=>{e||(t=n(e=>r.current(e)))}),()=>{e=!0,t()}},[]),(0,X.useEffect)(()=>{let n=n=>{if(n.defaultPrevented)return;let r=(n.target instanceof Element?n.target:null)?.closest(`a[href]`);if(!r)return;let i=G({href:r.href,baseUrl:window.location.href,button:n.button,download:r.hasAttribute(`download`),altKey:n.altKey,ctrlKey:n.ctrlKey,metaKey:n.metaKey,shiftKey:n.shiftKey,behavior:r.dataset.webPreview});if(!i)return;if(n.preventDefault(),n.stopPropagation(),x(e.pathname)){K(i);return}let a=kr(p.getItem(j.activeSession),he.getQueryData(M));if(!a){window.open(i,`_blank`,`noopener,noreferrer`);return}K(i),t(S(a))};return document.addEventListener(`click`,n,!0),()=>document.removeEventListener(`click`,n,!0)},[e.pathname,t]),null}function jr({blocked:e,onCommandPalette:t,onPrimary:n,onSearch:r,onToggleTerminal:i,onToggleSidebar:a,onAgentPanel:o,onPreviousAgent:s,onNextAgent:c,onSettings:l,onOpenSession:u,onOpenBoard:d,onOpenComponents:f,onOpenMore:p,onJumpToAttention:m,onSessionTree:h,onSideChat:g,onCycleFocusRegion:_,onShortcutHelp:v}){let y=L(e=>e.bindings);return(0,X.useLayoutEffect)(()=>{let b=b=>{if(e||yt(b)||bt(b)&&!b.key.startsWith(`Arrow`))return;let x;R(b,y.commandPalette)?x=t:R(b,y.primaryAction)?x=n:R(b,y.openSession)?x=u:R(b,y.openBoard)?x=d:R(b,y.openComponents)?x=f:R(b,y.openMore)?x=p:R(b,y.jumpToAttention)?x=m:R(b,y.sessionTree)?x=h:R(b,y.sideChat)?x=g:R(b,y.cycleFocusRegion)?x=_:R(b,y.toggleSidebar)?x=a:R(b,y.agentPanel)?x=o:R(b,y.previousAgent)?x=s:R(b,y.nextAgent)?x=c:R(b,y.toggleTerminal)?x=i:R(b,y.openSettings)?x=l:R(b,y.shortcutHelp)?x=v:!xt(b.target)&&R(b,y.focusSearch)&&(x=r),x&&(b.preventDefault(),x())};return window.addEventListener(`keydown`,b),()=>window.removeEventListener(`keydown`,b)},[y,e,o,t,_,m,c,d,f,p,u,s,n,r,h,l,v,g,i,a]),null}var Mr=v(`group pointer-events-auto relative flex min-h-11 w-full items-center gap-2 overflow-hidden rounded-md border px-3.5 py-2.5 pr-10 text-[13px] leading-5 font-medium tracking-[0] shadow-float transition data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-right-full data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none`,{variants:{tone:{success:`border-success-border bg-success-soft text-success-strong`,error:`border-danger-border bg-danger-soft text-danger`,info:`border-stroke bg-popover text-foreground`}},defaultVariants:{tone:`success`}});function Nr({className:e,tone:t,...n}){return(0,Z.jsx)(Un,{"data-slot":`toast`,className:I(Mr({tone:t}),e),...n})}function Pr({...e}){return(0,Z.jsx)(Vn,{"data-slot":`toast-provider`,...e})}function Fr({className:e,...t}){return(0,Z.jsx)(Hn,{"data-slot":`toast-viewport`,className:I(`fixed right-5 bottom-5 z-[80] flex w-[min(420px,calc(100vw-40px))] max-w-full flex-col gap-2 outline-none max-sm:right-3 max-sm:bottom-3 max-sm:left-3 max-sm:w-auto`,e),...t})}function Ir({className:e,...t}){return(0,Z.jsx)(Wn,{"data-slot":`toast-description`,className:I(`min-w-0 flex-1 [overflow-wrap:anywhere]`,e),...t})}function Lr({className:e,...t}){return(0,Z.jsx)(Kn,{"data-slot":`toast-close`,className:I(`absolute top-1/2 right-1.5 grid size-7 -translate-y-1/2 place-items-center rounded-sm text-current opacity-70 transition hover:bg-black/5 hover:opacity-100 dark:hover:bg-white/10`,e),...t})}var Rr={success:Pe,error:Ke,info:Be};function zr({message:e,tone:t,closeLabel:n,action:r,...i}){let a=Rr[t];return(0,Z.jsxs)(Nr,{tone:t,type:t===`error`?`foreground`:`background`,...i,children:[(0,Z.jsx)(a,{className:`size-[18px] shrink-0`}),(0,Z.jsx)(Ir,{children:e}),r&&(0,Z.jsx)(Gn,{altText:r.label,asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,className:`h-7 shrink-0 rounded-sm border border-current/30 px-2 text-xs font-semibold hover:bg-current/10`,onClick:r.onAction,children:r.label})}),(0,Z.jsx)(Lr,{"aria-label":n,title:n,children:(0,Z.jsx)(qe,{className:`size-4`})})]})}function Br(){let{t:e}=A(),[t,n]=(0,X.useState)(null),r=(0,X.useRef)(null),i=(0,X.useCallback)(e=>{r.current?.(e),r.current=null,n(null)},[]),a=(0,X.useCallback)(e=>new Promise(t=>{r.current?.(null),r.current=t,n(e)}),[]),o=(0,X.useCallback)((t={})=>a({type:`confirm`,title:e(`common:useAppDialog.confirmAction`),confirmLabel:e(`common:useAppDialog.confirm`),tone:`danger`,...t}).then(e=>e===!0),[a,e]),s=(0,X.useCallback)((t={})=>a({type:`prompt`,title:e(`common:useAppDialog.enterContent`),confirmLabel:e(`common:useAppDialog.save`),tone:`primary`,value:``,...t}).then(e=>typeof e==`string`?e:null),[a,e]),c=(0,X.useCallback)(()=>i(null),[i]);return(0,X.useEffect)(()=>()=>r.current?.(null),[]),{dialog:t,confirm:o,prompt:s,close:c,finish:i}}var Vr=15e3,Hr=216e5,Ur=new Set([`checking`,`downloading`,`downloaded`]);function Wr(e){return!Ur.has(e)}function Gr(e,t=window){let n=!1,r=!1,i=()=>{n||r||(n=!0,Promise.resolve().then(e).catch(()=>{}).finally(()=>{n=!1}))},a=t.setTimeout(i,Vr),o=t.setInterval(i,Hr);return()=>{r=!0,t.clearTimeout(a),t.clearInterval(o)}}var Kr=new Set([`available`,`downloading`,`installed`,`error`]),qr=/\b(?:403|429)\b[\s\S]*api\.github\.com/;function Jr(e){return e.retryAt!=null||qr.test(e.message)}function Yr(e){return e.length>1&&e.every(t=>t.message===e[0].message)?e[0].message:e.map(e=>`${e.component}: ${e.message}`).join(`
3
3
  `)}function Xr(e,t){return t?.find(e=>e.component===`desktop`)?.currentVersion.trim()||e}function Zr(e){return e.filter(e=>e.size>0&&(Kr.has(e.state)||e.canInstall))}function Qr(e){return e.replace(/\r/g,``).split(`
4
4
  `).filter(e=>!/^\s*#{1,6}\s+Pisper\s+(?:Desktop|TUI|Runtime)\s+v?\d+\.\d+\.\d+\s*$/i.test(e)&&!/^\s*#{1,6}\s+What['’]?s Changed\s*$/i.test(e)&&!/^\s*(?:\*\*)?(?:Full Changelog|完整变更)(?:\*\*)?\s*[::].*$/i.test(e)).join(`
5
5
  `).replace(/\n{3,}/g,`
6
6
 
7
7
  `).trim()}function $r(e){let t=e.filter(e=>e.state===`available`||e.state===`downloading`).map(e=>Qr(e.notes)).filter((e,t,n)=>e&&n.indexOf(e)===t);return t.length?`## What's Changed\n\n${t.join(`
8
8
 
9
- `)}`:``}function ei(e,t=new Date().toISOString()){let n=e.filter(e=>e.state===`error`),r=e.filter(e=>e.state===`available`),i=e.some(e=>e.state===`checking`),a=e.filter(e=>e.state===`downloading`),o=e.some(e=>e.state===`installed`),s=a[0]||r[0]||n[0]||e[0],c=n.flatMap(e=>e.retryAt==null?[]:[e.retryAt]),l=$r(e),u=Zr(e),d=u.reduce((e,t)=>e+t.size,0),f=u.reduce((e,t)=>t.state===`installed`?e+t.size:t.state===`downloading`?e+Math.min(t.size,Math.max(0,t.transferred||0)):e,0);return{state:a.length?`downloading`:i?`checking`:n.length?`error`:r.length?`available`:o?`installed`:e.length?`current`:`idle`,checkedAt:t,message:Yr(n),rateLimited:n.length>0&&n.every(Jr),retryAt:c.length?Math.max(...c):void 0,releaseUrl:s?.releaseUrl,canDownload:r.length>0,availableVersion:s?.availableVersion,notes:l,total:d,transferred:f,percent:d>0?Math.min(100,f/d*100):0}}async function ti({refresh:e=!1,fetcher:t=fetch}={}){let n=await t(`/api/app-update${e?`?refresh=1`:``}`,{cache:`no-store`}),r=await n.json().catch(()=>null);if(!n.ok){let e=r&&`error`in r&&typeof r.error==`string`?r.error.trim():``;throw Error(e||`更新检查失败:HTTP ${n.status}`)}return r}var ni=Object.freeze({desktop:!1,packaged:!1,version:`0.6.29`,platform:`browser`,arch:``,releasesUrl:Wt});function ri(){let e=window.pisperDesktop,t=e?void 0:window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke,[n,r]=(0,X.useState)(ni),[i,a]=(0,X.useState)({state:`idle`,checkedAt:null}),[o,s]=(0,X.useState)([]),c=(0,X.useRef)(i),l=(0,X.useRef)(null),u=(0,X.useRef)(!1),d=(0,X.useRef)(!1),f=(0,X.useCallback)(e=>{c.current=e,a(e)},[]),p=(0,X.useCallback)(({refresh:n=!0}={})=>{if(l.current)return l.current;f({...c.current,state:`checking`,message:``});let r=(async()=>{try{if(u.current=!1,e?.checkForUpdates)try{let t=await e.checkForUpdates();if(t.state===`available`&&t.canDownload)return u.current=!0,f(t),t}catch{}if(e?.checkComponentUpdates){let t=await e.checkComponentUpdates();s(t);let n=ei(t);return f(n),!t.some(e=>e.state===`error`||e.state===`available`)&&t.some(e=>e.restartRequired)&&await e.restartForComponentUpdate?.(),n}if(d.current&&t){let e=await t(`mobile_check_app_update`,{refresh:n});return f(e),e}let r=await ti({refresh:n});return f(r),r}catch(e){let t={state:`error`,message:e instanceof Error?e.message:String(e),checkedAt:new Date().toISOString()};return f(t),t}})();return l.current=r,r.finally(()=>{l.current===r&&(l.current=null)}),r},[f,e,t]);(0,X.useEffect)(()=>{let n=!0,i=()=>{},a=()=>{},o=()=>{i=Gr(()=>{if(Wr(c.current.state))return p({refresh:!1})})};if(!e){let e=()=>{n&&p({refresh:!1})};return t?(t(`mobile_app_info`).then(t=>{if(!n)return;if(!t.mobile){e();return}d.current=!0,r(t),s([]),t.update&&f(t.update),p({refresh:!1}),o();let i=()=>{document.visibilityState===`visible`&&Wr(c.current.state)&&p({refresh:!1})};document.addEventListener(`visibilitychange`,i),a=()=>document.removeEventListener(`visibilitychange`,i)}).catch(e),()=>{n=!1,i(),a()}):(e(),()=>{n=!1})}return e.getAppInfo().then(t=>{n&&(r({...t,hostVersion:t.version}),e.componentUpdateStatus?.().then(e=>{n&&(s(e),f(ei(e)))}).catch(()=>{}),t.packaged&&o())}).catch(()=>{}),()=>{n=!1,i()}},[f,e,p,t]);let m=(0,X.useCallback)(async()=>{if(u.current&&e?.downloadUpdate){f({...c.current,state:`downloading`,message:``,transferred:0,percent:0});let t=e.onUpdateStatus?.(f);try{let t=await e.downloadUpdate();f(t),t.state===`downloaded`&&t.canInstall&&await e.installUpdate?.()}finally{t?.()}return[]}if(!e?.installComponentUpdates)return[];f({...c.current,state:`downloading`,message:``,transferred:0,percent:0});let t=!1,n=!1,r=async()=>{if(!(n||t||!e.componentUpdateStatus)){t=!0;try{let t=await e.componentUpdateStatus();if(n)return;s(t);let r=ei(t);r.state!==`available`&&f(r)}catch{}finally{t=!1}}},i=window.setInterval(()=>void r(),250);try{let t=await e.installComponentUpdates();return n=!0,s(t),f(ei(t)),!t.some(e=>e.state===`error`)&&t.some(e=>e.restartRequired)&&await e.restartForComponentUpdate?.(),t}finally{n=!0,window.clearInterval(i)}},[f,e]),h=(0,X.useCallback)(async()=>{if(e)return e.openReleases();let r=i.releaseUrl||n.releasesUrl||`https://github.com/ling-kong-ran/pisper/releases`;return d.current&&t?t(`mobile_open_app_update`,{url:r}):(window.open(r,`_blank`,`noopener,noreferrer`),!0)},[e,n.releasesUrl,t,i.releaseUrl]),g=(0,X.useCallback)(()=>e?.openUpdateLog?.(),[e]),_=(0,X.useCallback)(()=>d.current&&t&&i.downloadUrl?t(`mobile_open_app_update`,{url:i.downloadUrl}):h(),[t,h,i.downloadUrl]),v=(0,X.useCallback)(()=>_(),[_]);return{info:(0,X.useMemo)(()=>({...n,version:n.desktop?Xr(n.hostVersion||n.version,o):n.version}),[o,n]),status:i,components:o,check:p,installComponents:m,download:_,install:v,openReleases:h,openUpdateLog:g}}function ii(e){return!!e.providers?.some(e=>e.configured&&e.models?.some(e=>e.kind===`chat`))}function ai(e,t){return!t&&!ii(e)}function oi(){try{return JSON.parse(p.getItem(j.terminalPanel)||`{}`)}catch{return{}}}var si=()=>i(()=>import(`./MobileNavigation-CEUnhv7K.js`),__vite__mapDeps([14,5,6,15,3,4,7,8,9,11,16,17,18,2,1,19,20,21,22,23,24,25,26,27,28,29])),ci=(0,X.lazy)(()=>si().then(e=>({default:e.MobileSettingsBack}))),li=(0,X.lazy)(()=>si().then(e=>({default:e.MobileSettingsList}))),ui=(0,X.lazy)(()=>i(()=>import(`./DesktopWindowControls-DaK-mWjx.js`).then(e=>({default:e.DesktopWindowControls})),__vite__mapDeps([30,5,6,15,3,4,7,8,9,11,31,22,32,33]))),di=(0,X.lazy)(()=>i(()=>import(`./FloatingWidgets-CWAsDelc.js`).then(e=>({default:e.FloatingWidgets})),__vite__mapDeps([34,5,4,6,7,8,35,36,3,9,15,11,37,38,39,16,17,18,2,1,19,20,40,41,42,43,44,45]))),fi=(0,X.lazy)(async()=>{let[{CommandPalette:e},{getNavigation:t}]=await Promise.all([i(()=>import(`./AppOverlays-yAnO5otc.js`),__vite__mapDeps([46,5,6,15,3,4,7,8,9,11,37,38,47,48,17,18,2,1,19,20,16,22,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,33,64,65,66,67,68,69])),i(()=>import(`./palette-navigation-BcPK8UF5.js`),__vite__mapDeps([70,20,71,22,5,6,72,73,74,75,51,76,77,78,79,80,81,82]))]);function n(n){let{t:r}=A(),i=Oe(e=>e.capabilities),a=(0,X.useMemo)(()=>t(r,i),[i,r]);return(0,Z.jsx)(e,{...n,navigation:a})}return{default:n}}),pi=(0,X.lazy)(()=>i(()=>import(`./AppDialog-CA7tBvM8.js`).then(e=>({default:e.AppDialog})),__vite__mapDeps([83,5,6,15,3,4,7,8,9,11,33,22,84,66,65,56,57,68,63,64,67,85]))),mi=(0,X.lazy)(()=>i(()=>import(`./WebDesktopPet-mgzM1lUl.js`).then(e=>({default:e.WebDesktopPet})),__vite__mapDeps([86,5,7,4,6,8,15,3,9,11,17,18,2,1,19]))),hi=(0,X.lazy)(()=>i(()=>import(`./public-components-jrX-6RqC.js`).then(e=>({default:e.ConfigSearchBox})),__vite__mapDeps([87,5,6,15,3,4,7,8,9,11,16,17,18,2,1,19,20,88,22,89,90,53,79,33,56,57,68,65,58,91,60,63,64,66,67,85,92]))),gi=(0,X.lazy)(()=>i(()=>import(`./public-components-jrX-6RqC.js`).then(e=>({default:e.ModelOnboardingDialog})),__vite__mapDeps([87,5,6,15,3,4,7,8,9,11,16,17,18,2,1,19,20,88,22,89,90,53,79,33,56,57,68,65,58,91,60,63,64,66,67,85,92]))),_i=()=>Promise.all([i(()=>import(`./sidebar-Ddf5aEv6.js`),__vite__mapDeps([93,5,4,6,35,15,3,7,8,9,11,23,22,94,78,56,57,60,95,96,38,37,47,48,17,18,2,1,19,39,16,20,41,61,97,59,98,99,100,101,102,103,104,105,106,107,65,66,108,67,109,110,111,112,113,114,115,116])),D()]).then(([e])=>e),vi=(0,X.lazy)(()=>i(()=>import(`./public-sidebar-BA8SJ3r0.js`),__vite__mapDeps([117,5,4,6,35,15,3,7,8,9,11,52,22,118,119,2,16,17,18,1,19,20,120,107,23,74,121,122,68,57,65,56,63,33,64,66,67,85,123,124,125,126,127,128,84,129,114,113,130,47,38,48,131,59,132]))),yi=(0,X.lazy)(()=>_i().then(e=>({default:e.SidebarSessions}))),bi=(0,X.lazy)(()=>_i().then(e=>({default:e.SidebarRailCounts}))),xi=(0,X.lazy)(()=>_i().then(e=>({default:e.SidebarCommands}))),Si=(0,X.lazy)(()=>_i().then(e=>({default:e.SidebarFleetLine}))),Ci=(0,X.lazy)(()=>Promise.all([i(()=>import(`./PhoneTopBar-UNRjPZJo.js`),__vite__mapDeps([133,6,5,15,3,4,7,8,9,11,134,22,56,57,95,102,100,47,38,48,17,18,2,1,19,16,20,41,59,61,96,37,39,97,98,99,101,135,136,137,120,138,139,29,32,140,33,68,65,58,60,103,141,74,142,121,143,144,52,79,106,107,23,66,108,67,109,110,111,145,146,147,53,64,148,63,149,150,151,62,152,85,126,153,154,155,127,156,157])),D()]).then(([e])=>({default:e.PhoneTopBar}))),wi=(0,X.lazy)(()=>i(()=>import(`./PhoneDrawer-D3eRtYUJ.js`).then(e=>({default:e.PhoneDrawer})),__vite__mapDeps([158,6,5,15,3,4,7,8,9,11,75,22,53,80,157,56,57,151,33,64,65,66,67,68,95]))),Ti=(0,X.lazy)(()=>i(()=>import(`./SidebarUpdateStatus-CgDyoVVT.js`),__vite__mapDeps([159,6,5,15,3,4,7,8,9,11,89,22,160,29,161]))),Ei=(0,X.lazy)(()=>i(()=>import(`./SettingsSidebar-SMxWLbhN.js`).then(e=>({default:e.SettingsSidebar})),__vite__mapDeps([162,5,6,15,3,4,7,8,9,11,16,17,18,2,1,19,20,163,22,88,24,25,26,27,28,29,56,57,58,60,164]))),Di=(0,X.lazy)(async()=>{let[{ShortcutHelpDialog:e}]=await Promise.all([i(()=>import(`./ShortcutHelpDialog-DDyxtBqb.js`),__vite__mapDeps([165,5,6,15,3,4,7,8,9,11,80,22,68,57,65,56,60,63,33,64,66,67,166,58])),D()]);return{default:e}}),Oi=(0,X.lazy)(()=>i(()=>import(`./PageHeader-DQkMisCZ.js`).then(e=>({default:e.PageHeader})),__vite__mapDeps([167,6,5,15,3,4,7,8,9,11,21,22,54,168,56,57,68,65,60]))),ki=(0,X.lazy)(()=>i(()=>import(`./TerminalPanel-CeGX1ISs.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([169,5,6,15,3,4,7,8,9,11,22,31,52,54,33,68,57,65,56,170,171,32,123,172,44,173,107,136,174,147,66,175,108,67,109,110,150,176]))),Ai=(0,X.lazy)(()=>i(()=>import(`./MobileViewportStabilizer-uKI4Zp7f.js`).then(e=>({default:e.MobileViewportStabilizer})),__vite__mapDeps([177,5,6])));function ji(e,t){return String(e||``).replace(/\{\{\s*([\w.]+)\s*\}\}/g,(e,n)=>{let r=n.split(`.`).reduce((e,t)=>{if(!(!e||typeof e!=`object`))return e[t]},t);return r==null?`{{${n}}}`:String(r)})}function Mi(e){try{return decodeURIComponent(e)}catch{return``}}function Ni(e,t){let n=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return n?n(e,t):Promise.reject(Error(`native bridge unavailable`))}function Pi({routerState:e}){let{t}=A();(0,X.useEffect)(()=>be(`react-app-mounted`),[]);let n=o(),r=f(),s=(0,X.useCallback)(()=>e?.()??{location:n,navigation:{state:`idle`}},[n,e]),c=Oe(e=>e.capabilities),l=Oe(e=>e.loaded),u=Oe(e=>e.load),d=(0,X.useMemo)(()=>Yt(t),[t]),m=C(n.pathname)||`board`,h=!!x(n.pathname),g=m===`config`?Mi(n.pathname.split(`/`)[2]||`models`):`models`,_=ze.has(g)&&De(c,g)?g:`models`,v=Fe(m,_),b=(0,X.useRef)(m),[te,E]=(0,X.useState)(``),[ae,oe]=(0,X.useState)(()=>p.getItem(j.activeSession)||``),se=y(n.pathname,ae),ce=Me(e=>e.client===`mobile-app`),le=Me(e=>e.loaded),D=Ae(),O=ce||D,ue=je()&&ce,k=O&&!window.pisperDesktop&&!ue,de=cr(m,v),fe=de===`board`?`board`:de===`more`?`features`:de===`settings`?`settings`:null,pe=B(e=>e.toggleCollapsed);(0,X.useEffect)(()=>{document.documentElement.toggleAttribute(`data-phone-shell`,k)},[k]),(0,X.useEffect)(()=>{B.getState().setDrawerOpen(!1)},[n.pathname,k]);let[ye,M]=(0,X.useState)(!1),[xe,Se]=(0,X.useState)(!1),Ce=J(e=>e.theme),ke=J(e=>e.cycleTheme),Ne=J(e=>e.density),Pe=J(e=>e.accent),Be=J(e=>e.customAccent),Ve=J(e=>e.fontScale),He=J(e=>e.uiFontSize),Ue=J(e=>e.codeFontSize),We=J(e=>e.radius),Ge=J(e=>e.motion),[Ke,qe]=(0,X.useState)([]),[Xe,Qe]=(0,X.useState)(!1),N=Xe?void 0:Ke[0],P=(0,X.useRef)(N);P.current=N;let[$e,et]=(0,X.useState)(!1),[F,tt]=(0,X.useState)(null),{data:nt,isPending:rt,isSuccess:it}=me(ve(`config`)),{data:at}=me(ve(`notification-settings`)),[ot,st]=(0,X.useState)(!1),[ct,lt]=(0,X.useState)({browser:{enabled:!1},connections:{},scopes:[],templates:[]}),[I,ut]=(0,X.useState)(null),dt=(0,X.useMemo)(()=>({terminal:t(`terminal:terminalPanel.terminal`),resizeTerminal:t(`terminal:terminalPanel.resizeTerminal`),hideTerminal:t(`terminal:terminalPanel.hideTerminal`),showTerminal:t(`terminal:terminalPanel.showTerminal`),newTerminal:t(`terminal:terminalPanel.newTerminal`),closeTerminal:t(`terminal:terminalPanel.closeTerminal`),maximizeTerminal:t(`terminal:terminalPanel.maximizeTerminal`),openTerminal:t(`terminal:terminalPanel.openTerminal`),usesActiveSessionWorkspace:t(`terminal:terminalPanel.usesActiveSessionWorkspace`),orphanedTerminal:t(`terminal:terminalPanel.orphanedTerminal`),starting:t(`terminal:terminalPanel.starting`),processExited:e=>t(`terminal:terminalPanel.processExited`,{code:e??`-`})}),[t]),[ft,yt]=(0,X.useState)(()=>!!oi().open),[L,bt]=(0,X.useState)(()=>Math.max(180,Math.min(640,Number(oi().height)||300)));(0,X.useEffect)(()=>{let e=()=>{window.pisperDesktop?.terminalProfiles&&Ee(c,`terminal`)&&yt(e=>!e)};return window.addEventListener(`pisper:toggle-terminal`,e),()=>window.removeEventListener(`pisper:toggle-terminal`,e)},[c]);let xt=(0,X.useRef)(``),[R]=(0,X.useState)(or),z=(0,X.useRef)(null),St=(0,X.useRef)(null),Ct=(0,X.useRef)(0),V=Br(),H=ri();(0,X.useEffect)(()=>{Or({accent:Pe,density:Ne,fontScale:Ve,motion:Ge,radius:We,customAccent:Be,uiFontSize:He,codeFontSize:Ue})},[Pe,Ne,Ve,Ge,We,Be,He,Ue]),(0,X.useEffect)(()=>{p.setItem(j.terminalPanel,JSON.stringify({open:ft,height:L}))},[L,ft]),(0,X.useEffect)(()=>{let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>{let t=Dr(Ce,e.matches);document.documentElement.dataset.theme=t?`dark`:`light`,document.documentElement.classList.toggle(`dark`,t)};if(t(),Ce===`system`)return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t);if(Ce===`scheduled`){let e=window.setInterval(t,6e4);return()=>window.clearInterval(e)}},[Ce]);let U=(0,X.useCallback)((e,t=`success`,n)=>{Ct.current+=1;let r={id:Ct.current,message:e,tone:t,action:n?.action};qe(e=>[...e,r])},[]);(0,X.useEffect)(()=>{let e=e=>{let t=P.current;if(e.key!==`Escape`||!e.isTrusted||!t||!document.querySelector(`[data-radix-popper-content-wrapper], [role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]`))return;e.stopImmediatePropagation(),e.preventDefault();let n=document.activeElement instanceof HTMLElement?document.activeElement:document.body;Qe(!0),qe(e=>e.filter(e=>e.id!==t.id)),requestAnimationFrame(()=>requestAnimationFrame(()=>{n.dispatchEvent(new KeyboardEvent(`keydown`,{key:`Escape`,code:`Escape`,bubbles:!0,cancelable:!0})),Qe(!1)}))};return document.addEventListener(`keydown`,e,{capture:!0}),()=>document.removeEventListener(`keydown`,e,{capture:!0})},[]),(0,X.useEffect)(()=>{let e=e=>{let t=e.detail?.id;oe(t??p.getItem(j.activeSession)??``)};window.addEventListener(gt,e);let t=e=>{let t=e.detail;t?.message&&U(t.message,t.tone===`error`?`error`:`info`)};return window.addEventListener(jt,t),Me.getState().load({refresh:!1}).then(()=>be(`client-info-loaded`)),u({refresh:!1}).then(()=>be(`capabilities-loaded`)),()=>{window.removeEventListener(gt,e),window.removeEventListener(jt,t)}},[u,U]);let wt=(0,X.useRef)(!1);(0,X.useEffect)(()=>{!le||!ce||wt.current||(wt.current=!0,(async()=>{await Ni(`mobile_ensure_local_network_permission`).catch(()=>void 0)})())},[le,ce]);let Tt=(0,X.useCallback)((e,t,{force:n=!1}={})=>{if(ct.browser?.enabled&&!(!n&&document.visibilityState===`visible`&&document.hasFocus())){if(window.pisperDesktop?.showNotification){window.pisperDesktop.showNotification({title:e,body:t}).catch(()=>{});return}if(Kt()){Rt(e,t).catch(()=>{});return}i(async()=>{let{showBrowserSystemNotification:e}=await import(`./browser-notifications-CvHO-BlP.js`).then(e=>e.t);return{showBrowserSystemNotification:e}},__vite__mapDeps([178,5])).then(({showBrowserSystemNotification:n})=>n({title:e,body:t,tag:`pisper-${e}`,url:window.location.href})).catch(()=>{})}},[ct.browser?.enabled]);(0,X.useEffect)(()=>qt(),[]);let Et=(0,X.useCallback)(e=>{let t=Bt.getState();if(!t.enabled||!t.whileFocused&&document.visibilityState===`visible`&&document.hasFocus())return;let n=[`waiting`,`failed`,`finished`].find(n=>e.some(e=>e.kind===n&&t.sounds[n]!==`none`)),r=n?t.sounds[n]:`none`;r!==`none`&&Vt(r,t.volume)},[]),Dt=(0,X.useCallback)((e,t,n)=>{let r=ct.templates?.find(t=>t.id===e),i=r?.channels?.browser?.content;!r?.enabled||r.channels?.browser?.enabled===!1||!i||Tt(r.name,ji(i,t||{}),n)},[ct.templates,Tt]),Ot=(0,X.useCallback)(e=>R.register(e),[R]),kt=(0,X.useCallback)(()=>{R.invoke()},[R]),At=(0,X.useCallback)(e=>(ut(e),()=>ut(t=>t===e?null:t)),[]),W=(0,X.useCallback)((e,t)=>{if(!(!w.has(e)||!Te(c,e))){if(e===`chat`){if(!h){let e=mt();r(e?S(e.sessionId):`/`,t)}}else r(ie(e),t);E(``)}},[c,r,h]),Pt=(0,X.useCallback)((e,t=``)=>{e&&(vt(e,`open`,t),h||r(S(e)),E(``))},[r,h]),G=(0,X.useCallback)(()=>{E(``),pt(),x(n.pathname)!==`new`&&r(S())},[n.pathname,r]);(0,X.useEffect)(()=>{if(l&&!Te(c,m)){r(`/`,{replace:!0});return}l&&m===`config`&&g!==_&&r(`/config/${_}`,{replace:!0})},[c,l,_,m,g,r]);let K=(0,X.useCallback)((e,t)=>{let n=ze.has(e)&&De(c,e)?e:`models`;r(n===`interface`&&t===`widgets`?T.components:`/config/${n}`),E(``)},[c,r]),q=(0,X.useCallback)(e=>{if(e===`session`){let e=ur(s());e&&r(e.to,{replace:e.replace,state:e.state}),E(``)}else e===`settings`?k?r(ee):K(`models`):W(sr[e])},[W,k,s,r,K]),Lt=(0,X.useCallback)(()=>x(lr(s())),[s]),zt=(0,X.useCallback)(e=>{if(!e)return;let t=s(),n=lr(t);if(x(n)===e)return;if(E(``),C(n)!==`session`){r(S(e));return}let i=n===`/`?re:t.location.state;r(S(e),{replace:!0,state:i})},[s,r]),Ht=(0,X.useCallback)(e=>{Lt()===e&&r(`/`,{replace:!0})},[Lt,r]),Y=(0,X.useCallback)(()=>{try{p.setItem(j.modelOnboardingDismissed,`1`)}catch{}et(!1)},[]),Ut=(0,X.useCallback)(()=>{Y(),R.clear(),R.invoke(),K(`models`)},[Y,R,K]),Wt=(0,X.useCallback)(()=>{Y(),r(`/config/models?import=1`),E(``)},[Y,r]),Gt=(0,X.useCallback)(()=>K(`updates`),[K]),Xt=(0,X.useCallback)(()=>K(`notifications`),[K]),Zt=(0,X.useRef)(null);(0,X.useEffect)(()=>{if(!v){Zt.current=null;return}if(Zt.current!==null)return;let e=window.history.state?.idx;Zt.current=typeof e==`number`?e:0},[n.key,v]);let Qt=(0,X.useCallback)(()=>{let e=Zt.current,t=window.history.state?.idx;r(e!==null&&e>0&&typeof t==`number`&&t>=e?-(t-e+1):`/`)},[r]),$t=(0,X.useCallback)(async e=>e&&(await _e(`sessions`)).sessions?.find(t=>t.id===e)?.cwd||``,[]),en=(0,X.useCallback)(e=>{let t=p.getItem(j.activeSession)||``;tt({asset:e,targetSessionId:t}),t?Pt(t):r(`/`)},[Pt,r]);(0,X.useEffect)(()=>{let e=()=>{!V.dialog&&!$e&&M(!0)},t=e=>{if(!(e.defaultPrevented||e.isComposing||e.keyCode===229)&&e.key===`Escape`&&!V.dialog){ye&&(M(!1),e.preventDefault());return}};return window.addEventListener(`keydown`,t),window.addEventListener(ht,e),()=>{window.removeEventListener(`keydown`,t),window.removeEventListener(ht,e)}},[V.dialog,$e,ye]);let Q=(0,X.useRef)(!1);(0,X.useEffect)(()=>{if(rt||Q.current||(Q.current=!0,st(!0),!it||!nt))return;be(`config-loaded`);let e=!1;try{e=p.getItem(j.modelOnboardingDismissed)===`1`}catch{}b.current!==`config`&&ai(nt,e)&&et(!0)},[nt,rt,it]),(0,X.useEffect)(()=>{ot&&l&&(m===`board`||m===`session`)&&be(`chat-shell-ready`)},[l,m,ot]);let tn=(0,X.useRef)(m);(0,X.useLayoutEffect)(()=>{tn.current===`config`&&m!==`config`&&(ge(`config`),ge(`notification-settings`)),tn.current=m},[m]),(0,X.useEffect)(()=>{at&&lt(at)},[at]),(0,X.useEffect)(()=>{let e=!0,t=async()=>{try{let t=xt.current,n=await he.fetchQuery({queryKey:[`browser-notification-events`,t],queryFn:()=>we(`/api/settings/notifications/browser/events?after=${encodeURIComponent(t)}`),staleTime:0,retry:!1});if(!e)return;for(let e of n.events||[])Tt(e.title,e.body,{force:!0});xt.current=n.latestId||xt.current}catch{}};t();let n=window.setInterval(t,3e3);return()=>{e=!1,window.clearInterval(n)}},[Tt]);let nn=m===`chat`?[t(`common:app.sessions`),O?``:t(`common:app.dragTabsOrSplitChatsInAnyDirectionFromTheSessionList`)]:m===`config`?[v&&Ie(_)?Re(t,_):Le(t,_),``]:m===`workflowCreate`?Jt(t,I?I.editing:Mi(n.pathname.split(`/`)[2]||`new`)!==`new`):d[m]||[t(`common:app.sessions`),``],rn=(0,X.useCallback)(e=>{he.cancelQueries({queryKey:[`notification-settings`],exact:!0}),he.setQueryData([`notification-settings`],e),lt(e)},[]),an=de===`more`&&m!==`more`,on=(0,X.useCallback)(()=>r(T.more),[r]),sn={activeSessionId:se,navigate:W,notify:U,browserNotify:Dt,registerPrimaryAction:Ot,invokePrimaryAction:kt,pendingAsset:F,onAssetConsumed:()=>tt(null),onUseAsset:en,requestText:V.prompt,requestConfirm:V.confirm,openNotificationSettings:Xt,configSection:_,setConfigSection:K,setNotificationSettings:rn,appUpdate:H,registerWorkflowActions:At,startNewTask:G,onBackToFeatures:an?on:void 0},cn=(0,X.useCallback)(()=>{let e=window.history.state?.idx,t=fr(m,n.pathname,v,{phone:k,homeEntry:ne(n.state),canGoBack:typeof e==`number`&&e>0});return t===-1?r(-1):t&&r(t),t!==null},[n.pathname,n.state,m,k,r,v]),ln=(0,X.useCallback)(()=>{m===`more`?document.getElementById(Je)?.focus():Ye.has(m)?document.getElementById(Ze)?.focus():m===`board`?document.getElementById(Mt)?.querySelector(`[data-state="on"]`)?.focus():z.current?.focus()},[m]),un=k&&m!==`session`,dn=k&&v&&/^\/config\/?$/.test(n.pathname),fn=![`board`,`session`,`more`,`chat`,`workflowCreate`,`config`,`bots`].includes(m)&&!Ye.has(m),pn=v&&!k;if(!ot||!l)return(0,Z.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"aria-busy":`true`,className:`app-startup flex min-h-[100vh] w-full items-center justify-center gap-2.5 bg-chrome text-[13px] text-content-muted`,children:[(0,Z.jsx)(It,{size:30,className:`startup-logo`}),(0,Z.jsx)(`strong`,{className:`font-medium`,children:t(`common:app.wakingPisper`)})]});let mn=e=>(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(hi,{query:te,onQueryChange:E,onSelect:K,inputRef:z,placement:e})});return(0,Z.jsx)(Pr,{duration:2800,swipeDirection:`right`,children:(0,Z.jsx)(Ft,{bridge:window.pisperDesktop,children:(0,Z.jsxs)(`div`,{ref:St,className:`app-shell flex w-full h-full min-h-0 flex-col overflow-hidden bg-chrome text-content [&[data-phone-shell]]:bg-panel [&[data-phone-shell][data-shell-canvas]]:bg-background pt-[var(--pisper-safe-area-top)] pr-[var(--pisper-safe-area-right)] pb-[var(--pisper-safe-area-bottom)] pl-[var(--pisper-safe-area-left)] [&[data-mobile-app]]:h-[100dvh] [&[data-mobile-app]]:min-h-0 [&[data-mobile-app]]:overflow-hidden [&[data-mobile-keyboard='open']]:pb-0 [&[data-phone-shell]]:pb-0`,"data-mobile-app":O||void 0,"data-phone-shell":k||void 0,"data-shell-canvas":m===`board`||m===`more`||void 0,"data-custom-titlebar":window.pisperDesktop?.customTitlebar||void 0,children:[window.pisperDesktop?.customTitlebar&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(ui,{})}),(0,Z.jsx)(Ar,{}),O&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Ai,{enabled:le&&ot,shellRef:St})}),Ee(c,`desktopPet`)&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(mi,{})}),(0,Z.jsx)(ar,{onRouteBack:O?cn:void 0}),(0,Z.jsx)(jr,{blocked:!!(V.dialog||$e||ye),onCommandPalette:()=>M(!0),onPrimary:()=>G(),onSearch:ln,onToggleTerminal:window.pisperDesktop?.terminalProfiles&&Ee(c,`terminal`)?()=>yt(e=>!e):void 0,onSettings:()=>q(`settings`),onOpenSession:()=>q(`session`),onOpenBoard:()=>q(`board`),onOpenComponents:()=>W(`components`),onOpenMore:()=>q(`more`),onToggleSidebar:k?void 0:pe,onAgentPanel:()=>Nt({kind:`focus-list`}),onPreviousAgent:()=>Nt({kind:`adjacent`,direction:-1}),onNextAgent:()=>Nt({kind:`adjacent`,direction:1}),onJumpToAttention:()=>Nt({kind:`focus-attention`}),onSessionTree:m===`session`?()=>_t(`tree`):void 0,onSideChat:m===`session`?()=>_t(`side-chat`):void 0,onCycleFocusRegion:()=>void i(()=>import(`./focus-regions-B9MkPSKC.js`).then(e=>e.cycleFocusRegion()),[]),onShortcutHelp:()=>Se(!0)}),(0,Z.jsxs)(`div`,{className:`app-body flex min-h-0 flex-1 overflow-hidden`,"data-mobile-app":O||void 0,children:[!k&&(0,Z.jsx)(_r,{active:fe,onNewTask:()=>G(),onSearch:()=>M(!0),onOpenBoard:()=>q(`board`),onOpenFeatures:()=>q(`more`),onOpenSettings:()=>q(`settings`),content:(0,Z.jsxs)(X.Suspense,{fallback:(0,Z.jsx)(Sr,{}),children:[(0,Z.jsx)(vi,{}),(0,Z.jsx)(yi,{currentId:x(n.pathname),notify:U,requestText:V.prompt,onOpenSession:zt,onOpenBoard:()=>q(`board`),onOpenHistory:()=>W(`chatHistory`),onArchived:Ht})]}),takeover:pn?(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`nav`,{"aria-busy":`true`,"aria-label":t(`config:settingsShell.settingsNavigation`),className:`flex-1`}),children:(0,Z.jsx)(Ei,{configSection:_,onSelectSection:K,onBack:Qt,onOpenFeatures:()=>q(`more`),search:mn(`sidebar`),version:H.info?.version,footer:(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Si,{onOpenBoard:()=>q(`board`)})})})}):void 0,railCounts:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(Sr,{collapsed:!0}),children:(0,Z.jsx)(bi,{onOpenBoard:()=>q(`board`)})}),update:H.status&&[`available`,`downloading`,`downloaded`].includes(H.status.state)?(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(`div`,{className:`flex-none [&>button]:size-8 [&>button]:min-h-0 pointer-coarse:[&>button]:size-11`,children:(0,Z.jsx)(Ti,{update:H,collapsed:!0,onOpen:Gt})})}):void 0}),(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(xi,{resolveCurrentId:Lt,renderedSessionId:m===`session`?x(n.pathname):null,onOpenSession:zt,onWaiting:({title:e,reason:t})=>Dt(`chat.waiting`,{chat:{title:e,tool:t,reason:t}}),onAlerts:Et})}),(0,Z.jsxs)(`main`,{"data-focus-region":`main`,className:`main-surface relative flex min-w-0 flex-1 flex-col overflow-hidden bg-panel`,children:[un&&(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`div`,{className:`h-14 flex-none bg-panel`,"aria-hidden":`true`}),children:(0,Z.jsx)(Ci,{title:dn?t(`navigation:navigation.settings`):nn[0],onNewTask:()=>G(),onSearch:m===`board`?()=>M(!0):void 0})}),k&&v&&!dn&&(0,Z.jsxs)(X.Suspense,{fallback:null,children:[(0,Z.jsx)(ci,{onBack:()=>r(`/config`)}),(0,Z.jsx)(`div`,{"data-mobile-settings-search":!0,className:`flex-none px-4 pb-1`,children:mn()})]}),fn&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Oi,{meta:nn,page:m,desktopPlatform:window.pisperDesktop?.platform||``,terminalOpen:ft,onToggleTerminal:()=>yt(e=>!e),onBackToMore:an?on:void 0,phoneShell:k})}),(0,Z.jsx)(`div`,{className:`page-content flex-1 min-h-0 overflow-auto ${m===`session`||m===`chat`?`page-chat flex overflow-hidden p-0`:w.has(m)?`page-${m} overflow-hidden p-0`:`page-${m} px-6 pt-5 pb-5 max-[650px]:px-3 max-[650px]:pt-0`}`,children:dn?(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(li,{onNavigate:K,onOpenFeatures:()=>q(`more`)})}):(0,Z.jsx)(a,{context:sn})},m),window.pisperDesktop?.terminalProfiles&&Ee(c,`terminal`)&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(ki,{open:ft,height:L,labels:dt,activeSessionId:se,resolveSessionCwd:$t,onOpenChange:yt,onHeightChange:bt})})]})]}),k&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(wi,{active:fe,onSearch:()=>M(!0),onNewTask:()=>G(),onOpenBoard:()=>q(`board`),onOpenFeatures:()=>q(`more`),onOpenSettings:()=>q(`settings`),content:(0,Z.jsxs)(X.Suspense,{fallback:(0,Z.jsx)(Sr,{}),children:[(0,Z.jsx)(vi,{}),(0,Z.jsx)(yi,{drawer:!0,currentId:x(n.pathname),notify:U,requestText:V.prompt,onOpenSession:zt,onOpenBoard:()=>q(`board`),onOpenHistory:()=>W(`chatHistory`),onArchived:Ht})]}),update:H.status&&[`available`,`downloading`,`downloaded`].includes(H.status.state)?(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(`div`,{className:`flex-none [&>button]:size-11 [&>button]:min-h-0`,children:(0,Z.jsx)(Ti,{update:H,collapsed:!0,onOpen:Gt})})}):void 0})}),(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(di,{activeSessionId:se,notify:U})}),N&&(0,Z.jsx)(zr,{open:!0,message:N.message,tone:N.tone,action:N.action,duration:N.action?1e4:void 0,closeLabel:t(`common:ui.closeDialog`),onOpenChange:e=>!e&&qe(e=>e.filter(e=>e.id!==N.id))},N.id),(0,Z.jsx)(Fr,{hotkey:[],label:t(`common:ui.notifications`)}),V.dialog&&(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`span`,{role:`status`,className:`sr-only`,children:t(`common:pageTemplate.loading`)}),children:(0,Z.jsx)(pi,{dialog:V.dialog,onClose:V.close,onFinish:V.finish})}),(0,Z.jsx)(X.Suspense,{fallback:null,children:$e&&(0,Z.jsx)(gi,{open:!0,onDismiss:Y,onOpenImport:Wt,onOpenSettings:Ut})}),(0,Z.jsxs)(X.Suspense,{fallback:null,children:[ye&&(0,Z.jsx)(fi,{onClose:()=>M(!1),onNavigate:W,onOpenSession:async(e,n,r)=>{try{if(n&&!r){let{switchToTurnOnOtherBranch:r}=await i(async()=>{let{switchToTurnOnOtherBranch:e}=await import(`./session-tree-actions-C7sDBs9_.js`);return{switchToTurnOnOtherBranch:e}},__vite__mapDeps([179,59,7,4,5,6,8,9,61,47,38,48,17,18,2,3,1,19,180,37]));await r({sessionId:e,entryId:n,confirm:V.confirm,open:Pt,notify:U,t});return}Pt(e,n)}catch(e){throw U(t(`navigation:appOverlays.openLabeledTurnFailed`),`error`),e}},onNewChat:()=>G(),onToggleTheme:ke}),xe&&(0,Z.jsx)(Di,{open:!0,onOpenChange:Se,onCustomize:()=>r(`/config/shortcuts`)})]})]})})})}function Fi({children:e}){let{t}=A(),n=f(),r=o(),i=(0,X.useRef)(new Map),a=(0,X.useRef)(new Map),s=(0,X.useRef)(0),[c,l]=(0,X.useState)(0),[d,p]=(0,X.useState)(null),m=(0,X.useRef)(null),[h,g]=(0,X.useState)(!1),_=u(({currentLocation:e,nextLocation:t})=>Ut(e,t)&&Object.values(Y(i.current.values())).some(Boolean)),v=(0,X.useRef)(_);v.current=_;let y=(0,X.useCallback)(e=>{m.current=e,p(e)},[]),b=(0,X.useCallback)(e=>{let t=i.current.get(e.id);i.current.set(e.id,e),(!t||t.dirty!==e.dirty||t.saving!==e.saving)&&l(e=>e+1)},[]),x=(0,X.useCallback)(e=>{i.current.delete(e)&&l(e=>e+1)},[]),S=(0,X.useCallback)(()=>{y(null),a.current.clear(),v.current.state===`blocked`&&v.current.reset()},[y]),ee=(0,X.useCallback)((e,t,r)=>{a.current.clear();let i=`navigation-${++s.current}`;r&&a.current.set(i,r),n(e,{...t,state:{...t?.state,[Ht]:i}})},[n]),C=(0,X.useCallback)((e,t)=>{let n=i.current.get(e);if(n?.saving){S(),g(!0);return}if(v.current.state===`blocked`&&v.current.reset(),a.current.clear(),!n?.dirty){y(null),t();return}g(!1),y({kind:`close`,id:e,close:t})},[S,y]);(0,X.useLayoutEffect)(()=>{let e=Y(i.current.values());if(_.state===`blocked`)e.saving||!e.dirty?(S(),g(e.saving)):(g(!1),y({kind:`route`}));else if(m.current?.kind===`close`){let e=i.current.get(m.current.id);(!e||e.saving||!e.dirty)&&(y(null),g(!!e?.saving))}},[_,c,S,y]),(0,X.useLayoutEffect)(()=>{let e=r.state?.[Ht],t=typeof e==`string`?a.current.get(e):void 0;t&&(a.current.delete(e),t())},[r]);let w=Y(i.current.values());(0,X.useEffect)(()=>{if(!w.dirty&&!w.saving)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[w.dirty,w.saving]);let te=()=>{let e=m.current;if(!e)return;let t=e.kind===`close`?[i.current.get(e.id)].filter(e=>!!e):[...i.current.values()];if(t.some(e=>e.saving)){S(),g(!0);return}y(null);for(let e of t)e.dirty&&e.discard();e.kind===`close`?e.close():v.current.state===`blocked`&&v.current.proceed()},T=(0,X.useMemo)(()=>({update:b,remove:x,requestClose:C,navigate:ee}),[b,x,C,ee]);return(0,Z.jsxs)(Gt.Provider,{value:T,children:[e,h&&(0,Z.jsx)(`p`,{role:`status`,className:`fixed right-4 bottom-4 z-[300] rounded-lg border bg-popover p-3 text-sm text-popover-foreground shadow-md`,children:t(`common:unsaved.saving`)}),(0,Z.jsx)(wt,{open:!!d,onOpenChange:e=>{e||S()},children:(0,Z.jsxs)(Ct,{size:`compact`,surface:`confirmation`,showCloseButton:!1,className:`z-[400]`,overlayClassName:`z-[400]`,children:[(0,Z.jsxs)(U,{children:[(0,Z.jsx)(V,{children:t(`common:unsaved.title`)}),(0,Z.jsx)(St,{children:t(`common:unsaved.description`)})]}),(0,Z.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),te()},children:(0,Z.jsxs)(H,{children:[(0,Z.jsx)(dt,{type:`button`,variant:`outline`,size:`dialogAction`,onClick:S,autoFocus:!0,children:t(`common:unsaved.keepEditing`)}),(0,Z.jsx)(dt,{type:`submit`,variant:`destructive`,size:`dialogAction`,children:t(`common:unsaved.discard`)})]})})]})})]})}function Ii(){let{t:e}=A();return(0,Z.jsxs)(Pt,{children:[(0,Z.jsx)(`span`,{className:`grid place-items-center`,children:(0,Z.jsx)(ut,{className:`size-6`})}),(0,Z.jsx)(`h2`,{children:e(`navigation:pageLoader.lightingUpThisPage`)}),(0,Z.jsx)(`p`,{children:e(`navigation:pageLoader.bringingTheNeededCapabilitiesIntoPlace`)})]})}async function Li(){window.__PISPER_MOBILE_APP__&&await Se().catch(()=>void 0);let e=new URL(window.location.href);window.__PISPER_MOBILE_APP__&&e.protocol===`http:`&&e.hostname===`127.0.0.1`&&e.searchParams.set(`_pisper_recovery`,String(Date.now())),window.location.replace(e.href)}function Ri(){let e=c(),t=s(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:`页面加载失败`;return(0,Z.jsxs)(`main`,{className:`app-startup flex min-h-[100vh] w-full items-center justify-center gap-2.5 bg-chrome text-[13px] text-content-muted`,role:`alert`,children:[(0,Z.jsx)(`strong`,{className:`font-medium`,children:t}),(0,Z.jsx)(dt,{variant:`secondary`,type:`button`,onClick:()=>void Li(),children:`重新加载`})]})}function $(){return n()}async function zi(){let[{BoardPage:e}]=await Promise.all([i(()=>import(`./BoardPage-DzHXQHbY.js`),__vite__mapDeps([181,5,4,6,15,3,7,8,9,11,37,38,36,39,16,17,18,2,1,19,20,40,41,42,44,43,45,22,182,88,120,136,23,183,105,184,142,98,96,47,48,61,97,59,99,156,101,121,94,52,185,157,186,33,187,106,107,65,66,108,67,109,110,111,56,57,188,189,175,68,58,60,100,145,137,138,139,29,32,140,103,141,146,147,53,64,148,63,149,150,151,62,152,85,126,153,154,155,127,123,190,104,35,112,113,114,172,173,174,191])),D()]);function t(e){let{origin:t,pathname:n,search:r,hash:i}=window.location;return i.startsWith(`#/`)?`${t}${n}${r}#${S(e)}`:`${t}${S(e)}`}function n(){let n=$(),r=f();return(0,Z.jsx)(e,{activeSessionId:n.activeSessionId,onOpenSession:e=>r(S(e)),onOpenHistory:()=>n.navigate(`chatHistory`),onConfigureModels:()=>r(`/config/models`),sessionHref:t,notify:n.notify,requestConfirm:n.requestConfirm,requestText:n.requestText,onNewTask:n.startNewTask})}return{Component:n}}async function Bi(){let[{ChatPage:e},{SessionShell:t}]=await Promise.all([i(()=>import(`./ChatPage-B9kyMRtf.js`),__vite__mapDeps([192,5,4,6,7,8,15,3,9,11,38,37,47,48,17,18,2,1,19,20,16,44,45,22,193,194,195,26,138,107,136,21,23,196,197,137,120,139,29,32,140,33,56,57,68,65,58,60,103,141,183,89,198,59,190,146,147,53,66,64,67,148,109,110,63,149,108,150,151,61,62,152,85,126,153,199,200,35,41,43,182,174,201,105,202,74,27,203,50,78,185,204,205,55,186,106,111,189,175,123,124,206,207,208,209,210,211,212,113,213,214,10,92,215,216,180,217,218,119,121,122,125,219,220,51,221,222,223,52,80,157,224,82,187,225,226,227,188,97,98,99,154,127,164,115,228,229,230,231,132,170,232,233,179,234,235,12])),i(()=>import(`./SessionShell-CI6d2UxF.js`),__vite__mapDeps([236,5,4,6,35,15,3,7,8,9,11,36,37,38,39,16,17,18,2,1,19,20,40,41,42,45,43,44,134,22,56,57,95,102,100,47,48,59,61,96,97,98,99,101,135,136,137,120,138,139,29,32,140,33,68,65,58,60,103,141,74,142,121,143,144,52,79,106,107,23,66,108,67,109,110,111,145,146,147,53,64,148,63,149,150,151,62,152,85,126,153,154,155,127,156,112])),D()]);function n(){return(0,Z.jsx)(t,{context:$(),ChatPage:e})}return{Component:n}}async function Vi(){Bi().catch(()=>void 0);let[{SessionHome:e}]=await Promise.all([i(()=>import(`./SessionHome-CS5HPhh0.js`),__vite__mapDeps([237,5,4,6,35,15,3,7,8,9,11,43,44,45,17,18,2,1,19,134,22,56,57,95,102,100,47,38,48,16,20,41,59,61,96,37,39,97,98,99,101,135,136,137,120,138,139,29,32,140,33,68,65,58,60,103,141,74,142,121,143,144,52,79,106,107,23,66,108,67,109,110,111,145,146,147,53,64,148,63,149,150,151,62,152,85,126,153,154,155,127,156,123,112])),D()]);function t(){return(0,Z.jsx)(e,{context:$()})}return{Component:t}}async function Hi(){let{MorePage:e}=await i(async()=>{let{MorePage:e}=await import(`./MorePage-DC_HNY-i.js`);return{MorePage:e}},__vite__mapDeps([238,5,6,15,3,4,7,8,9,11,37,38,2,19,18,20,16,17,1,36,39,40,41,42,45,43,44,22,239,71,26,72,73,23,240,241,76,52,77,78,53,79,81,82,33,187,168,56,57,68,65,58,59,91,60]));function t(){let t=$(),n=f();return(0,Z.jsx)(e,{onOpen:e=>{e.type===`page`?n(ie(e.id)):e.type===`config`?t.setConfigSection(e.id):n(`/tools/components/${encodeURIComponent(e.id)}`)}})}return{Component:t}}async function Ui(){let{ChatHistoryPage:e}=await i(async()=>{let{ChatHistoryPage:e}=await import(`./ChatHistoryPage-CYU3FOWt.js`);return{ChatHistoryPage:e}},__vite__mapDeps([242,5,7,4,6,8,15,3,9,11,37,38,47,48,17,18,2,1,19,43,44,45,22,194,105,139,243,94,29,157,186,187,168,106,107,23,65,66,108,67,109,110,111,56,57,68,59,60,97,62,103,154,123,244,136,21,53,122,33,58,229,230]));function t(){let t=$();return(0,Z.jsx)(e,{navigate:t.navigate,onBack:t.onBackToFeatures,onNewTask:t.startNewTask,notify:t.notify,requestConfirm:t.requestConfirm,requestText:t.requestText})}return{Component:t}}async function Wi(){let{AssetsPage:e}=await i(async()=>{let{AssetsPage:e}=await import(`./AssetsPage-NJ7uc7WV.js`);return{AssetsPage:e}},__vite__mapDeps([245,5,6,3,4,7,8,9,15,11,37,38,246,2,19,18,22,89,160,199,220,222,52,29,186,122,33,168,106,107,23,65,66,108,67,109,110,111,56,57,68,60,62,63,64,85,123,244,43,44,45,17,1,136,21,53,58,247,128,84,129,207,208,209,210,211,201,212]));function t(){let t=$();return(0,Z.jsx)(e,{activeSessionId:t.activeSessionId,onBack:t.onBackToFeatures,notify:t.notify,requestConfirm:t.requestConfirm,onUse:t.onUseAsset})}return{Component:t}}async function Gi(){let[{ChannelsPage:e}]=await Promise.all([i(()=>import(`./ChannelsPage-DPVT00J9.js`),__vite__mapDeps([248,5,6,15,3,4,7,8,9,11,17,18,2,1,19,22,26,160,74,249,51,52,29,250,205,186,122,33,187,168,56,57,68,65,60,62,103,85,152,126,123,244,43,44,45,136,21,53,58,128,84,66,129,172,173,107,174,147,175,108,67,109,110,150,228,227,218,111,229,214])),se()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestConfirm:t.requestConfirm})}return{Component:t}}async function Ki(){let{BotsPage:e}=await i(async()=>{let{BotsPage:e}=await import(`./public-Dbs615LR.js`);return{BotsPage:e}},__vite__mapDeps([251,5,4,6,35,15,3,7,8,9,11,2,19,18,182,22,120,73,136,21,23,201,119,16,17,1,20,107,74,121,122,68,57,65,56,63,33,64,66,67,85,123,124,125,249,28,139,52,118,126,127,128,84,129,114,113,130,47,38,48,186,224,252,174,108,216,227,110,188,111,153,172,44,173,147,175,109,150,131,59,132]));function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify})}return{Component:t}}async function qi(){let[{SchedulesPage:e}]=await Promise.all([i(()=>import(`./SchedulesPage-C-MlYxbU.js`),__vite__mapDeps([253,5,4,6,15,3,7,8,9,11,17,18,2,1,19,25,22,26,73,196,119,16,20,120,107,23,74,121,122,68,57,65,56,63,33,64,66,67,85,123,124,125,249,223,52,250,186,168,227,110,60,62,103,126,127,244,43,44,45,136,21,53,58,128,84,129,172,173,174,147,175,108,109,150,228,218,111,229,214])),O()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestConfirm:t.requestConfirm,openNotificationSettings:t.openNotificationSettings})}return{Component:t}}async function Ji(){let[{ConfigPage:e},{ChatAppearancePage:t}]=await Promise.all([i(()=>import(`./ConfigPage-YOI6Jn64.js`),__vite__mapDeps([254,5,4,6,7,8,3,9,15,11,2,19,18,17,1,20,16,45,22,193,163,88,255,25,26,72,107,136,21,49,196,256,201,89,105,160,24,27,28,29,240,143,144,50,51,241,257,223,52,161,185,53,79,205,258,81,54,186,122,140,33,187,65,66,108,252,174,216,56,57,110,111,106,23,67,109,148,63,64,68,173,147,175,150,129,149,227,58,91,60,62,103,85,126,153,123,69,244,43,44,128,84,207,208,209,210,211,212,172,131,59,132,229,228,218,214,232,92,215,259,260,166,178])),i(()=>import(`./ChatAppearancePage-RygKPTc1.js`),__vite__mapDeps([261,4,5,6,35,15,3,7,8,9,11])),D(),E()]);function n(){let n=$();return(0,Z.jsx)(e,{notify:n.notify,registerPrimaryAction:n.registerPrimaryAction,invokePrimaryAction:n.invokePrimaryAction,section:n.configSection,onBackToFeatures:n.onBackToFeatures,onBrowserNotificationChange:n.setNotificationSettings,requestConfirm:n.requestConfirm,update:n.appUpdate,renderInterfaceSettings:e=>(0,Z.jsx)(t,{appearance:e})})}return{Component:n}}async function Yi(){let{PluginsPage:e}=await i(async()=>{let{PluginsPage:e}=await import(`./PluginsPage-B19V8jKI.js`);return{PluginsPage:e}},__vite__mapDeps([262,5,6,15,3,4,7,8,9,11,17,18,2,1,19,20,16,22,196,263,160,202,264,74,240,265,76,266,53,79,204,186,122,168,65,66,64,67,56,57,68,60,63,33,85,127,123,244,43,44,45,136,21,58,172,173,107,174,147,175,108,109,110,150,228,227,218,111,229,214,233]));function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function Xi(){let{MemoryPage:e}=await i(async()=>{let{MemoryPage:e}=await import(`./MemoryPage-CXNLDgIX.js`);return{MemoryPage:e}},__vite__mapDeps([267,5,4,6,7,8,35,15,3,9,11,2,19,18,22,194,195,105,264,203,139,243,94,52,29,78,185,258,186,122,33,168,106,107,23,65,66,108,67,109,110,111,56,57,218,188,68,60,63,64,85,126,123,244,43,44,45,17,1,136,21,53,58,128,84,129,172,173,174,147,175,150,229,228,227,214,268]));function t(){let t=$();return(0,Z.jsx)(e,{onBack:t.onBackToFeatures,notify:t.notify,requestConfirm:t.requestConfirm})}return{Component:t}}async function Zi(){let[{McpPage:e}]=await Promise.all([i(()=>import(`./McpPage-DZuv-kd4.js`),__vite__mapDeps([269,5,6,15,3,4,7,8,9,11,38,37,48,246,2,19,18,107,22,201,90,52,29,78,79,186,140,33,168,227,65,66,110,56,57,68,60,62,63,64,67,126,123,124,244,43,44,45,17,1,136,21,53,122,58])),le()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function Qi(){let[{SkillsPage:e}]=await Promise.all([i(()=>import(`./SkillsPage-C217PvFK.js`),__vite__mapDeps([270,5,6,15,3,4,7,8,9,11,17,18,2,1,19,264,22,240,265,52,266,81,186,140,168,225,107,65,66,110,56,57,68,60,123,244,43,44,45,136,21,53,122,33,58,228,227,218,108,111,229,214])),ae()]);function t(){let t=$();return(0,Z.jsx)(e,{activeSessionId:t.activeSessionId,notify:t.notify,onBack:t.onBackToFeatures,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}var $i=Object.freeze({componentFromList:!0});function ea(e){return typeof e==`object`&&!!e&&e.componentFromList===!0}async function ta(){let[{CustomUiPage:e}]=await Promise.all([i(()=>import(`./public-COJrQD9j.js`),__vite__mapDeps([271,5,4,6,35,15,3,7,8,9,11,37,38,39,40,2,19,18,41,36,16,17,1,20,42,43,44,45,22,239,255,71,107,136,21,23,256,201,89,105,221,52,78,53,272,204,81,186,33,225,65,66,110,56,57,106,108,67,109,111,84,173,174,147,175,150,227,188,68,58,60,151,64,95,145,137,120,138,139,29,32,140,103,141,146,148,63,149,61,47,48,62,152,85,126,153,142,98,96,97,59,99,100,101,154,155,127,135,74,121,143,144,79,102,156,123,69,229,273,226,129,189,274,275])),E()]);function t(){let t=$(),n=f(),i=o(),{componentId:a=``}=r();return(0,Z.jsx)(e,{activeSessionId:t.activeSessionId,notify:t.notify,selectedId:a,onSelect:(e,t)=>{!e&&!t&&ea(i.state)?n(-1):n(te(e),{replace:t||!e,state:e&&!t?$i:void 0})}})}return{Component:t}}async function na(){let[{CustomUiToolPage:e}]=await Promise.all([i(()=>import(`./public-COJrQD9j.js`),__vite__mapDeps([271,5,4,6,35,15,3,7,8,9,11,37,38,39,40,2,19,18,41,36,16,17,1,20,42,43,44,45,22,239,255,71,107,136,21,23,256,201,89,105,221,52,78,53,272,204,81,186,33,225,65,66,110,56,57,106,108,67,109,111,84,173,174,147,175,150,227,188,68,58,60,151,64,95,145,137,120,138,139,29,32,140,103,141,146,148,63,149,61,47,48,62,152,85,126,153,142,98,96,97,59,99,100,101,154,155,127,135,74,121,143,144,79,102,156,123,69,229,273,226,129,189,274,275])),E()]);function t(){let t=$(),{componentId:n=``}=r();return(0,Z.jsx)(e,{componentId:n,activeSessionId:t.activeSessionId,notify:t.notify})}return{Component:t}}async function ra(){let[{WorkflowsPage:e}]=await Promise.all([i(()=>import(`./WorkflowsPage-CsH9o0Vt.js`),__vite__mapDeps([276,5,4,6,35,3,7,8,9,15,11,37,38,2,19,18,17,1,43,44,45,22,182,120,25,26,138,107,136,21,23,196,197,256,201,89,105,264,199,219,277,240,50,249,257,221,222,278,139,223,52,29,161,266,53,250,79,272,32,186,122,82,33,168,106,65,66,108,67,109,110,111,56,57,84,148,63,64,68,226,149,150,227,218,60,151,62,103,85,126,123,124,244,58,128,129,172,173,174,147,175,215,216,178,275,279,280,281])),ce()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestConfirm:t.requestConfirm})}return{Component:t}}async function ia(){let[{WorkflowBuilder:e}]=await Promise.all([i(()=>import(`./WorkflowsPage-CsH9o0Vt.js`),__vite__mapDeps([276,5,4,6,35,3,7,8,9,15,11,37,38,2,19,18,17,1,43,44,45,22,182,120,25,26,138,107,136,21,23,196,197,256,201,89,105,264,199,219,277,240,50,249,257,221,222,278,139,223,52,29,161,266,53,250,79,272,32,186,122,82,33,168,106,65,66,108,67,109,110,111,56,57,84,148,63,64,68,226,149,150,227,218,60,151,62,103,85,126,123,124,244,58,128,129,172,173,174,147,175,215,216,178,275,279,280,281])),ce()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,registerWorkflowActions:t.registerWorkflowActions})}return{Component:t}}var aa=t([{element:(0,Z.jsx)(Fi,{children:(0,Z.jsx)(Pi,{routerState:()=>aa.state})}),errorElement:(0,Z.jsx)(Ri,{}),hydrateFallbackElement:(0,Z.jsx)(Ii,{}),children:[{index:!0,lazy:Vi},{path:T.board,lazy:zi},{path:`/board/:sessionId`,lazy:Bi},{path:T.more,lazy:Hi},{path:T.chat,element:(0,Z.jsx)(l,{to:`/`,replace:!0})},{path:T.chatHistory,lazy:Ui},{path:T.assets,lazy:Wi},{path:T.channels,lazy:Gi},{path:T.schedules,lazy:qi},{path:`/bots/:botId?`,lazy:Ki},{path:T.config,lazy:Ji},{path:`/config/:configSection`,lazy:Ji},{path:`/config`,element:(0,Z.jsx)(l,{to:T.config,replace:!0})},{path:T.plugins,lazy:Yi},{path:T.memory,lazy:Xi},{path:T.mcp,lazy:Zi},{path:T.skills,lazy:Qi},{path:`/components/:componentId?`,lazy:ta},{path:`/tools/components/:componentId`,lazy:na},{path:T.workflows,lazy:ra},{path:T.workflowCreate,lazy:ia},{path:`/workflows/:workflowId`,lazy:ia},{path:`*`,element:(0,Z.jsx)(l,{to:`/`,replace:!0})}]}]),oa=()=>{document.documentElement.dataset.pageVisibility=document.visibilityState};oa(),document.addEventListener(`visibilitychange`,oa);var sa=b(window.location.hash);sa&&window.history.replaceState(null,``,`${window.location.pathname}${window.location.search}#${sa}`);var ca=document.getElementById(`root`);if(!ca)throw Error(`Missing #root application mount point`);(0,qn.createRoot)(ca).render((0,Z.jsx)(X.StrictMode,{children:(0,Z.jsxs)(Xn,{children:[(0,Z.jsx)(d,{router:aa}),(0,Z.jsx)(rr,{})]})}));
9
+ `)}`:``}function ei(e,t=new Date().toISOString()){let n=e.filter(e=>e.state===`error`),r=e.filter(e=>e.state===`available`),i=e.some(e=>e.state===`checking`),a=e.filter(e=>e.state===`downloading`),o=e.some(e=>e.state===`installed`),s=a[0]||r[0]||n[0]||e[0],c=n.flatMap(e=>e.retryAt==null?[]:[e.retryAt]),l=$r(e),u=Zr(e),d=u.reduce((e,t)=>e+t.size,0),f=u.reduce((e,t)=>t.state===`installed`?e+t.size:t.state===`downloading`?e+Math.min(t.size,Math.max(0,t.transferred||0)):e,0);return{state:a.length?`downloading`:i?`checking`:n.length?`error`:r.length?`available`:o?`installed`:e.length?`current`:`idle`,checkedAt:t,message:Yr(n),rateLimited:n.length>0&&n.every(Jr),retryAt:c.length?Math.max(...c):void 0,releaseUrl:s?.releaseUrl,canDownload:r.length>0,availableVersion:s?.availableVersion,notes:l,total:d,transferred:f,percent:d>0?Math.min(100,f/d*100):0}}async function ti({refresh:e=!1,fetcher:t=fetch}={}){let n=await t(`/api/app-update${e?`?refresh=1`:``}`,{cache:`no-store`}),r=await n.json().catch(()=>null);if(!n.ok){let e=r&&`error`in r&&typeof r.error==`string`?r.error.trim():``;throw Error(e||`更新检查失败:HTTP ${n.status}`)}return r}var ni=Object.freeze({desktop:!1,packaged:!1,version:`0.6.30`,platform:`browser`,arch:``,releasesUrl:Wt});function ri(){let e=window.pisperDesktop,t=e?void 0:window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke,[n,r]=(0,X.useState)(ni),[i,a]=(0,X.useState)({state:`idle`,checkedAt:null}),[o,s]=(0,X.useState)([]),c=(0,X.useRef)(i),l=(0,X.useRef)(null),u=(0,X.useRef)(!1),d=(0,X.useRef)(!1),f=(0,X.useCallback)(e=>{c.current=e,a(e)},[]),p=(0,X.useCallback)(({refresh:n=!0}={})=>{if(l.current)return l.current;f({...c.current,state:`checking`,message:``});let r=(async()=>{try{if(u.current=!1,e?.checkForUpdates)try{let t=await e.checkForUpdates();if(t.state===`available`&&t.canDownload)return u.current=!0,f(t),t}catch{}if(e?.checkComponentUpdates){let t=await e.checkComponentUpdates();s(t);let n=ei(t);return f(n),!t.some(e=>e.state===`error`||e.state===`available`)&&t.some(e=>e.restartRequired)&&await e.restartForComponentUpdate?.(),n}if(d.current&&t){let e=await t(`mobile_check_app_update`,{refresh:n});return f(e),e}let r=await ti({refresh:n});return f(r),r}catch(e){let t={state:`error`,message:e instanceof Error?e.message:String(e),checkedAt:new Date().toISOString()};return f(t),t}})();return l.current=r,r.finally(()=>{l.current===r&&(l.current=null)}),r},[f,e,t]);(0,X.useEffect)(()=>{let n=!0,i=()=>{},a=()=>{},o=()=>{i=Gr(()=>{if(Wr(c.current.state))return p({refresh:!1})})};if(!e){let e=()=>{n&&p({refresh:!1})};return t?(t(`mobile_app_info`).then(t=>{if(!n)return;if(!t.mobile){e();return}d.current=!0,r(t),s([]),t.update&&f(t.update),p({refresh:!1}),o();let i=()=>{document.visibilityState===`visible`&&Wr(c.current.state)&&p({refresh:!1})};document.addEventListener(`visibilitychange`,i),a=()=>document.removeEventListener(`visibilitychange`,i)}).catch(e),()=>{n=!1,i(),a()}):(e(),()=>{n=!1})}return e.getAppInfo().then(t=>{n&&(r({...t,hostVersion:t.version}),e.componentUpdateStatus?.().then(e=>{n&&(s(e),f(ei(e)))}).catch(()=>{}),t.packaged&&o())}).catch(()=>{}),()=>{n=!1,i()}},[f,e,p,t]);let m=(0,X.useCallback)(async()=>{if(u.current&&e?.downloadUpdate){f({...c.current,state:`downloading`,message:``,transferred:0,percent:0});let t=e.onUpdateStatus?.(f);try{let t=await e.downloadUpdate();f(t),t.state===`downloaded`&&t.canInstall&&await e.installUpdate?.()}finally{t?.()}return[]}if(!e?.installComponentUpdates)return[];f({...c.current,state:`downloading`,message:``,transferred:0,percent:0});let t=!1,n=!1,r=async()=>{if(!(n||t||!e.componentUpdateStatus)){t=!0;try{let t=await e.componentUpdateStatus();if(n)return;s(t);let r=ei(t);r.state!==`available`&&f(r)}catch{}finally{t=!1}}},i=window.setInterval(()=>void r(),250);try{let t=await e.installComponentUpdates();return n=!0,s(t),f(ei(t)),!t.some(e=>e.state===`error`)&&t.some(e=>e.restartRequired)&&await e.restartForComponentUpdate?.(),t}finally{n=!0,window.clearInterval(i)}},[f,e]),h=(0,X.useCallback)(async()=>{if(e)return e.openReleases();let r=i.releaseUrl||n.releasesUrl||`https://github.com/ling-kong-ran/pisper/releases`;return d.current&&t?t(`mobile_open_app_update`,{url:r}):(window.open(r,`_blank`,`noopener,noreferrer`),!0)},[e,n.releasesUrl,t,i.releaseUrl]),g=(0,X.useCallback)(()=>e?.openUpdateLog?.(),[e]),_=(0,X.useCallback)(()=>d.current&&t&&i.downloadUrl?t(`mobile_open_app_update`,{url:i.downloadUrl}):h(),[t,h,i.downloadUrl]),v=(0,X.useCallback)(()=>_(),[_]);return{info:(0,X.useMemo)(()=>({...n,version:n.desktop?Xr(n.hostVersion||n.version,o):n.version}),[o,n]),status:i,components:o,check:p,installComponents:m,download:_,install:v,openReleases:h,openUpdateLog:g}}function ii(e){return!!e.providers?.some(e=>e.configured&&e.models?.some(e=>e.kind===`chat`))}function ai(e,t){return!t&&!ii(e)}function oi(){try{return JSON.parse(p.getItem(j.terminalPanel)||`{}`)}catch{return{}}}var si=()=>i(()=>import(`./MobileNavigation-DdvgJ1_H.js`),__vite__mapDeps([14,5,6,15,3,4,7,8,9,11,16,17,18,2,1,19,20,21,22,23,24,25,26,27,28,29])),ci=(0,X.lazy)(()=>si().then(e=>({default:e.MobileSettingsBack}))),li=(0,X.lazy)(()=>si().then(e=>({default:e.MobileSettingsList}))),ui=(0,X.lazy)(()=>i(()=>import(`./DesktopWindowControls-DlV6D3IF.js`).then(e=>({default:e.DesktopWindowControls})),__vite__mapDeps([30,5,6,15,3,4,7,8,9,11,31,22,32,33]))),di=(0,X.lazy)(()=>i(()=>import(`./FloatingWidgets-1EwlF6Oj.js`).then(e=>({default:e.FloatingWidgets})),__vite__mapDeps([34,5,4,6,7,8,35,36,3,9,15,11,37,38,39,16,17,18,2,1,19,20,40,41,42,43,44,45]))),fi=(0,X.lazy)(async()=>{let[{CommandPalette:e},{getNavigation:t}]=await Promise.all([i(()=>import(`./AppOverlays-CgpAvY9q.js`),__vite__mapDeps([46,5,6,15,3,4,7,8,9,11,37,38,47,48,17,18,2,1,19,20,16,22,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,33,64,65,66,67,68,69])),i(()=>import(`./palette-navigation-BcPK8UF5.js`),__vite__mapDeps([70,20,71,22,5,6,72,73,74,75,51,76,77,78,79,80,81,82]))]);function n(n){let{t:r}=A(),i=Oe(e=>e.capabilities),a=(0,X.useMemo)(()=>t(r,i),[i,r]);return(0,Z.jsx)(e,{...n,navigation:a})}return{default:n}}),pi=(0,X.lazy)(()=>i(()=>import(`./AppDialog-bqakHiqz.js`).then(e=>({default:e.AppDialog})),__vite__mapDeps([83,5,6,15,3,4,7,8,9,11,33,22,84,66,65,56,57,68,63,64,67,85]))),mi=(0,X.lazy)(()=>i(()=>import(`./WebDesktopPet-CM4U0kvi.js`).then(e=>({default:e.WebDesktopPet})),__vite__mapDeps([86,5,7,4,6,8,15,3,9,11,17,18,2,1,19]))),hi=(0,X.lazy)(()=>i(()=>import(`./public-components-DS306Oz2.js`).then(e=>({default:e.ConfigSearchBox})),__vite__mapDeps([87,5,6,15,3,4,7,8,9,11,16,17,18,2,1,19,20,88,22,89,90,53,79,33,56,57,68,65,58,91,60,63,64,66,67,85,92]))),gi=(0,X.lazy)(()=>i(()=>import(`./public-components-DS306Oz2.js`).then(e=>({default:e.ModelOnboardingDialog})),__vite__mapDeps([87,5,6,15,3,4,7,8,9,11,16,17,18,2,1,19,20,88,22,89,90,53,79,33,56,57,68,65,58,91,60,63,64,66,67,85,92]))),_i=()=>Promise.all([i(()=>import(`./sidebar-B6oY6pcm.js`),__vite__mapDeps([93,5,4,6,35,15,3,7,8,9,11,23,22,94,78,56,57,60,95,96,38,37,47,48,17,18,2,1,19,39,16,20,41,61,97,59,98,99,100,101,102,103,104,105,106,107,65,66,108,67,109,110,111,112,113,114,115,116])),D()]).then(([e])=>e),vi=(0,X.lazy)(()=>i(()=>import(`./public-sidebar-Cxg21QnN.js`),__vite__mapDeps([117,5,4,6,35,15,3,7,8,9,11,52,22,118,119,2,16,17,18,1,19,20,120,107,23,74,121,122,68,57,65,56,63,33,64,66,67,85,123,124,125,126,127,128,84,129,114,113,130,47,38,48,131,59,132]))),yi=(0,X.lazy)(()=>_i().then(e=>({default:e.SidebarSessions}))),bi=(0,X.lazy)(()=>_i().then(e=>({default:e.SidebarRailCounts}))),xi=(0,X.lazy)(()=>_i().then(e=>({default:e.SidebarCommands}))),Si=(0,X.lazy)(()=>_i().then(e=>({default:e.SidebarFleetLine}))),Ci=(0,X.lazy)(()=>Promise.all([i(()=>import(`./PhoneTopBar-CI5JxBFX.js`),__vite__mapDeps([133,6,5,15,3,4,7,8,9,11,134,22,56,57,95,102,100,47,38,48,17,18,2,1,19,16,20,41,59,61,96,37,39,97,98,99,101,135,136,137,120,138,139,29,32,140,33,68,65,58,60,103,141,74,142,121,143,144,52,79,106,107,23,66,108,67,109,110,111,145,146,147,53,64,148,63,149,150,151,62,152,85,126,153,154,155,127,156,157])),D()]).then(([e])=>({default:e.PhoneTopBar}))),wi=(0,X.lazy)(()=>i(()=>import(`./PhoneDrawer-_T7G0UlW.js`).then(e=>({default:e.PhoneDrawer})),__vite__mapDeps([158,6,5,15,3,4,7,8,9,11,75,22,53,80,157,56,57,151,33,64,65,66,67,68,95]))),Ti=(0,X.lazy)(()=>i(()=>import(`./SidebarUpdateStatus-4sXZK0UG.js`),__vite__mapDeps([159,6,5,15,3,4,7,8,9,11,89,22,160,29,161]))),Ei=(0,X.lazy)(()=>i(()=>import(`./SettingsSidebar-CMu7qKbO.js`).then(e=>({default:e.SettingsSidebar})),__vite__mapDeps([162,5,6,15,3,4,7,8,9,11,16,17,18,2,1,19,20,163,22,88,24,25,26,27,28,29,56,57,58,60,164]))),Di=(0,X.lazy)(async()=>{let[{ShortcutHelpDialog:e}]=await Promise.all([i(()=>import(`./ShortcutHelpDialog-CaaKIjWq.js`),__vite__mapDeps([165,5,6,15,3,4,7,8,9,11,80,22,68,57,65,56,60,63,33,64,66,67,166,58])),D()]);return{default:e}}),Oi=(0,X.lazy)(()=>i(()=>import(`./PageHeader-V6fYs6FB.js`).then(e=>({default:e.PageHeader})),__vite__mapDeps([167,6,5,15,3,4,7,8,9,11,21,22,54,168,56,57,68,65,60]))),ki=(0,X.lazy)(()=>i(()=>import(`./TerminalPanel-toRRYBjv.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([169,5,6,15,3,4,7,8,9,11,22,31,52,54,33,68,57,65,56,170,171,32,123,172,44,173,107,136,174,147,66,175,108,67,109,110,150,176]))),Ai=(0,X.lazy)(()=>i(()=>import(`./MobileViewportStabilizer-uKI4Zp7f.js`).then(e=>({default:e.MobileViewportStabilizer})),__vite__mapDeps([177,5,6])));function ji(e,t){return String(e||``).replace(/\{\{\s*([\w.]+)\s*\}\}/g,(e,n)=>{let r=n.split(`.`).reduce((e,t)=>{if(!(!e||typeof e!=`object`))return e[t]},t);return r==null?`{{${n}}}`:String(r)})}function Mi(e){try{return decodeURIComponent(e)}catch{return``}}function Ni(e,t){let n=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return n?n(e,t):Promise.reject(Error(`native bridge unavailable`))}function Pi({routerState:e}){let{t}=A();(0,X.useEffect)(()=>be(`react-app-mounted`),[]);let n=o(),r=f(),s=(0,X.useCallback)(()=>e?.()??{location:n,navigation:{state:`idle`}},[n,e]),c=Oe(e=>e.capabilities),l=Oe(e=>e.loaded),u=Oe(e=>e.load),d=(0,X.useMemo)(()=>Yt(t),[t]),m=C(n.pathname)||`board`,h=!!x(n.pathname),g=m===`config`?Mi(n.pathname.split(`/`)[2]||`models`):`models`,_=ze.has(g)&&De(c,g)?g:`models`,v=Fe(m,_),b=(0,X.useRef)(m),[te,E]=(0,X.useState)(``),[ae,oe]=(0,X.useState)(()=>p.getItem(j.activeSession)||``),se=y(n.pathname,ae),ce=Me(e=>e.client===`mobile-app`),le=Me(e=>e.loaded),D=Ae(),O=ce||D,ue=je()&&ce,k=O&&!window.pisperDesktop&&!ue,de=cr(m,v),fe=de===`board`?`board`:de===`more`?`features`:de===`settings`?`settings`:null,pe=B(e=>e.toggleCollapsed);(0,X.useEffect)(()=>{document.documentElement.toggleAttribute(`data-phone-shell`,k)},[k]),(0,X.useEffect)(()=>{B.getState().setDrawerOpen(!1)},[n.pathname,k]);let[ye,M]=(0,X.useState)(!1),[xe,Se]=(0,X.useState)(!1),Ce=J(e=>e.theme),ke=J(e=>e.cycleTheme),Ne=J(e=>e.density),Pe=J(e=>e.accent),Be=J(e=>e.customAccent),Ve=J(e=>e.fontScale),He=J(e=>e.uiFontSize),Ue=J(e=>e.codeFontSize),We=J(e=>e.radius),Ge=J(e=>e.motion),[Ke,qe]=(0,X.useState)([]),[Xe,Qe]=(0,X.useState)(!1),N=Xe?void 0:Ke[0],P=(0,X.useRef)(N);P.current=N;let[$e,et]=(0,X.useState)(!1),[F,tt]=(0,X.useState)(null),{data:nt,isPending:rt,isSuccess:it}=me(ve(`config`)),{data:at}=me(ve(`notification-settings`)),[ot,st]=(0,X.useState)(!1),[ct,lt]=(0,X.useState)({browser:{enabled:!1},connections:{},scopes:[],templates:[]}),[I,ut]=(0,X.useState)(null),dt=(0,X.useMemo)(()=>({terminal:t(`terminal:terminalPanel.terminal`),resizeTerminal:t(`terminal:terminalPanel.resizeTerminal`),hideTerminal:t(`terminal:terminalPanel.hideTerminal`),showTerminal:t(`terminal:terminalPanel.showTerminal`),newTerminal:t(`terminal:terminalPanel.newTerminal`),closeTerminal:t(`terminal:terminalPanel.closeTerminal`),maximizeTerminal:t(`terminal:terminalPanel.maximizeTerminal`),openTerminal:t(`terminal:terminalPanel.openTerminal`),usesActiveSessionWorkspace:t(`terminal:terminalPanel.usesActiveSessionWorkspace`),orphanedTerminal:t(`terminal:terminalPanel.orphanedTerminal`),starting:t(`terminal:terminalPanel.starting`),processExited:e=>t(`terminal:terminalPanel.processExited`,{code:e??`-`})}),[t]),[ft,yt]=(0,X.useState)(()=>!!oi().open),[L,bt]=(0,X.useState)(()=>Math.max(180,Math.min(640,Number(oi().height)||300)));(0,X.useEffect)(()=>{let e=()=>{window.pisperDesktop?.terminalProfiles&&Ee(c,`terminal`)&&yt(e=>!e)};return window.addEventListener(`pisper:toggle-terminal`,e),()=>window.removeEventListener(`pisper:toggle-terminal`,e)},[c]);let xt=(0,X.useRef)(``),[R]=(0,X.useState)(or),z=(0,X.useRef)(null),St=(0,X.useRef)(null),Ct=(0,X.useRef)(0),V=Br(),H=ri();(0,X.useEffect)(()=>{Or({accent:Pe,density:Ne,fontScale:Ve,motion:Ge,radius:We,customAccent:Be,uiFontSize:He,codeFontSize:Ue})},[Pe,Ne,Ve,Ge,We,Be,He,Ue]),(0,X.useEffect)(()=>{p.setItem(j.terminalPanel,JSON.stringify({open:ft,height:L}))},[L,ft]),(0,X.useEffect)(()=>{let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>{let t=Dr(Ce,e.matches);document.documentElement.dataset.theme=t?`dark`:`light`,document.documentElement.classList.toggle(`dark`,t)};if(t(),Ce===`system`)return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t);if(Ce===`scheduled`){let e=window.setInterval(t,6e4);return()=>window.clearInterval(e)}},[Ce]);let U=(0,X.useCallback)((e,t=`success`,n)=>{Ct.current+=1;let r={id:Ct.current,message:e,tone:t,action:n?.action};qe(e=>[...e,r])},[]);(0,X.useEffect)(()=>{let e=e=>{let t=P.current;if(e.key!==`Escape`||!e.isTrusted||!t||!document.querySelector(`[data-radix-popper-content-wrapper], [role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]`))return;e.stopImmediatePropagation(),e.preventDefault();let n=document.activeElement instanceof HTMLElement?document.activeElement:document.body;Qe(!0),qe(e=>e.filter(e=>e.id!==t.id)),requestAnimationFrame(()=>requestAnimationFrame(()=>{n.dispatchEvent(new KeyboardEvent(`keydown`,{key:`Escape`,code:`Escape`,bubbles:!0,cancelable:!0})),Qe(!1)}))};return document.addEventListener(`keydown`,e,{capture:!0}),()=>document.removeEventListener(`keydown`,e,{capture:!0})},[]),(0,X.useEffect)(()=>{let e=e=>{let t=e.detail?.id;oe(t??p.getItem(j.activeSession)??``)};window.addEventListener(gt,e);let t=e=>{let t=e.detail;t?.message&&U(t.message,t.tone===`error`?`error`:`info`)};return window.addEventListener(jt,t),Me.getState().load({refresh:!1}).then(()=>be(`client-info-loaded`)),u({refresh:!1}).then(()=>be(`capabilities-loaded`)),()=>{window.removeEventListener(gt,e),window.removeEventListener(jt,t)}},[u,U]);let wt=(0,X.useRef)(!1);(0,X.useEffect)(()=>{!le||!ce||wt.current||(wt.current=!0,(async()=>{await Ni(`mobile_ensure_local_network_permission`).catch(()=>void 0)})())},[le,ce]);let Tt=(0,X.useCallback)((e,t,{force:n=!1}={})=>{if(ct.browser?.enabled&&!(!n&&document.visibilityState===`visible`&&document.hasFocus())){if(window.pisperDesktop?.showNotification){window.pisperDesktop.showNotification({title:e,body:t}).catch(()=>{});return}if(Kt()){Rt(e,t).catch(()=>{});return}i(async()=>{let{showBrowserSystemNotification:e}=await import(`./browser-notifications-CvHO-BlP.js`).then(e=>e.t);return{showBrowserSystemNotification:e}},__vite__mapDeps([178,5])).then(({showBrowserSystemNotification:n})=>n({title:e,body:t,tag:`pisper-${e}`,url:window.location.href})).catch(()=>{})}},[ct.browser?.enabled]);(0,X.useEffect)(()=>qt(),[]);let Et=(0,X.useCallback)(e=>{let t=Bt.getState();if(!t.enabled||!t.whileFocused&&document.visibilityState===`visible`&&document.hasFocus())return;let n=[`waiting`,`failed`,`finished`].find(n=>e.some(e=>e.kind===n&&t.sounds[n]!==`none`)),r=n?t.sounds[n]:`none`;r!==`none`&&Vt(r,t.volume)},[]),Dt=(0,X.useCallback)((e,t,n)=>{let r=ct.templates?.find(t=>t.id===e),i=r?.channels?.browser?.content;!r?.enabled||r.channels?.browser?.enabled===!1||!i||Tt(r.name,ji(i,t||{}),n)},[ct.templates,Tt]),Ot=(0,X.useCallback)(e=>R.register(e),[R]),kt=(0,X.useCallback)(()=>{R.invoke()},[R]),At=(0,X.useCallback)(e=>(ut(e),()=>ut(t=>t===e?null:t)),[]),W=(0,X.useCallback)((e,t)=>{if(!(!w.has(e)||!Te(c,e))){if(e===`chat`){if(!h){let e=mt();r(e?S(e.sessionId):`/`,t)}}else r(ie(e),t);E(``)}},[c,r,h]),Pt=(0,X.useCallback)((e,t=``)=>{e&&(vt(e,`open`,t),h||r(S(e)),E(``))},[r,h]),G=(0,X.useCallback)(()=>{E(``),pt(),x(n.pathname)!==`new`&&r(S())},[n.pathname,r]);(0,X.useEffect)(()=>{if(l&&!Te(c,m)){r(`/`,{replace:!0});return}l&&m===`config`&&g!==_&&r(`/config/${_}`,{replace:!0})},[c,l,_,m,g,r]);let K=(0,X.useCallback)((e,t)=>{let n=ze.has(e)&&De(c,e)?e:`models`;r(n===`interface`&&t===`widgets`?T.components:`/config/${n}`),E(``)},[c,r]),q=(0,X.useCallback)(e=>{if(e===`session`){let e=ur(s());e&&r(e.to,{replace:e.replace,state:e.state}),E(``)}else e===`settings`?k?r(ee):K(`models`):W(sr[e])},[W,k,s,r,K]),Lt=(0,X.useCallback)(()=>x(lr(s())),[s]),zt=(0,X.useCallback)(e=>{if(!e)return;let t=s(),n=lr(t);if(x(n)===e)return;if(E(``),C(n)!==`session`){r(S(e));return}let i=n===`/`?re:t.location.state;r(S(e),{replace:!0,state:i})},[s,r]),Ht=(0,X.useCallback)(e=>{Lt()===e&&r(`/`,{replace:!0})},[Lt,r]),Y=(0,X.useCallback)(()=>{try{p.setItem(j.modelOnboardingDismissed,`1`)}catch{}et(!1)},[]),Ut=(0,X.useCallback)(()=>{Y(),R.clear(),R.invoke(),K(`models`)},[Y,R,K]),Wt=(0,X.useCallback)(()=>{Y(),r(`/config/models?import=1`),E(``)},[Y,r]),Gt=(0,X.useCallback)(()=>K(`updates`),[K]),Xt=(0,X.useCallback)(()=>K(`notifications`),[K]),Zt=(0,X.useRef)(null);(0,X.useEffect)(()=>{if(!v){Zt.current=null;return}if(Zt.current!==null)return;let e=window.history.state?.idx;Zt.current=typeof e==`number`?e:0},[n.key,v]);let Qt=(0,X.useCallback)(()=>{let e=Zt.current,t=window.history.state?.idx;r(e!==null&&e>0&&typeof t==`number`&&t>=e?-(t-e+1):`/`)},[r]),$t=(0,X.useCallback)(async e=>e&&(await _e(`sessions`)).sessions?.find(t=>t.id===e)?.cwd||``,[]),en=(0,X.useCallback)(e=>{let t=p.getItem(j.activeSession)||``;tt({asset:e,targetSessionId:t}),t?Pt(t):r(`/`)},[Pt,r]);(0,X.useEffect)(()=>{let e=()=>{!V.dialog&&!$e&&M(!0)},t=e=>{if(!(e.defaultPrevented||e.isComposing||e.keyCode===229)&&e.key===`Escape`&&!V.dialog){ye&&(M(!1),e.preventDefault());return}};return window.addEventListener(`keydown`,t),window.addEventListener(ht,e),()=>{window.removeEventListener(`keydown`,t),window.removeEventListener(ht,e)}},[V.dialog,$e,ye]);let Q=(0,X.useRef)(!1);(0,X.useEffect)(()=>{if(rt||Q.current||(Q.current=!0,st(!0),!it||!nt))return;be(`config-loaded`);let e=!1;try{e=p.getItem(j.modelOnboardingDismissed)===`1`}catch{}b.current!==`config`&&ai(nt,e)&&et(!0)},[nt,rt,it]),(0,X.useEffect)(()=>{ot&&l&&(m===`board`||m===`session`)&&be(`chat-shell-ready`)},[l,m,ot]);let tn=(0,X.useRef)(m);(0,X.useLayoutEffect)(()=>{tn.current===`config`&&m!==`config`&&(ge(`config`),ge(`notification-settings`)),tn.current=m},[m]),(0,X.useEffect)(()=>{at&&lt(at)},[at]),(0,X.useEffect)(()=>{let e=!0,t=async()=>{try{let t=xt.current,n=await he.fetchQuery({queryKey:[`browser-notification-events`,t],queryFn:()=>we(`/api/settings/notifications/browser/events?after=${encodeURIComponent(t)}`),staleTime:0,retry:!1});if(!e)return;for(let e of n.events||[])Tt(e.title,e.body,{force:!0});xt.current=n.latestId||xt.current}catch{}};t();let n=window.setInterval(t,3e3);return()=>{e=!1,window.clearInterval(n)}},[Tt]);let nn=m===`chat`?[t(`common:app.sessions`),O?``:t(`common:app.dragTabsOrSplitChatsInAnyDirectionFromTheSessionList`)]:m===`config`?[v&&Ie(_)?Re(t,_):Le(t,_),``]:m===`workflowCreate`?Jt(t,I?I.editing:Mi(n.pathname.split(`/`)[2]||`new`)!==`new`):d[m]||[t(`common:app.sessions`),``],rn=(0,X.useCallback)(e=>{he.cancelQueries({queryKey:[`notification-settings`],exact:!0}),he.setQueryData([`notification-settings`],e),lt(e)},[]),an=de===`more`&&m!==`more`,on=(0,X.useCallback)(()=>r(T.more),[r]),sn={activeSessionId:se,navigate:W,notify:U,browserNotify:Dt,registerPrimaryAction:Ot,invokePrimaryAction:kt,pendingAsset:F,onAssetConsumed:()=>tt(null),onUseAsset:en,requestText:V.prompt,requestConfirm:V.confirm,openNotificationSettings:Xt,configSection:_,setConfigSection:K,setNotificationSettings:rn,appUpdate:H,registerWorkflowActions:At,startNewTask:G,onBackToFeatures:an?on:void 0},cn=(0,X.useCallback)(()=>{let e=window.history.state?.idx,t=fr(m,n.pathname,v,{phone:k,homeEntry:ne(n.state),canGoBack:typeof e==`number`&&e>0});return t===-1?r(-1):t&&r(t),t!==null},[n.pathname,n.state,m,k,r,v]),ln=(0,X.useCallback)(()=>{m===`more`?document.getElementById(Je)?.focus():Ye.has(m)?document.getElementById(Ze)?.focus():m===`board`?document.getElementById(Mt)?.querySelector(`[data-state="on"]`)?.focus():z.current?.focus()},[m]),un=k&&m!==`session`,dn=k&&v&&/^\/config\/?$/.test(n.pathname),fn=![`board`,`session`,`more`,`chat`,`workflowCreate`,`config`,`bots`].includes(m)&&!Ye.has(m),pn=v&&!k;if(!ot||!l)return(0,Z.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"aria-busy":`true`,className:`app-startup flex min-h-[100vh] w-full items-center justify-center gap-2.5 bg-chrome text-[13px] text-content-muted`,children:[(0,Z.jsx)(It,{size:30,className:`startup-logo`}),(0,Z.jsx)(`strong`,{className:`font-medium`,children:t(`common:app.wakingPisper`)})]});let mn=e=>(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(hi,{query:te,onQueryChange:E,onSelect:K,inputRef:z,placement:e})});return(0,Z.jsx)(Pr,{duration:2800,swipeDirection:`right`,children:(0,Z.jsx)(Ft,{bridge:window.pisperDesktop,children:(0,Z.jsxs)(`div`,{ref:St,className:`app-shell flex w-full h-full min-h-0 flex-col overflow-hidden bg-chrome text-content [&[data-phone-shell]]:bg-panel [&[data-phone-shell][data-shell-canvas]]:bg-background pt-[var(--pisper-safe-area-top)] pr-[var(--pisper-safe-area-right)] pb-[var(--pisper-safe-area-bottom)] pl-[var(--pisper-safe-area-left)] [&[data-mobile-app]]:h-[100dvh] [&[data-mobile-app]]:min-h-0 [&[data-mobile-app]]:overflow-hidden [&[data-mobile-keyboard='open']]:pb-0 [&[data-phone-shell]]:pb-0`,"data-mobile-app":O||void 0,"data-phone-shell":k||void 0,"data-shell-canvas":m===`board`||m===`more`||void 0,"data-custom-titlebar":window.pisperDesktop?.customTitlebar||void 0,children:[window.pisperDesktop?.customTitlebar&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(ui,{})}),(0,Z.jsx)(Ar,{}),O&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Ai,{enabled:le&&ot,shellRef:St})}),Ee(c,`desktopPet`)&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(mi,{})}),(0,Z.jsx)(ar,{onRouteBack:O?cn:void 0}),(0,Z.jsx)(jr,{blocked:!!(V.dialog||$e||ye),onCommandPalette:()=>M(!0),onPrimary:()=>G(),onSearch:ln,onToggleTerminal:window.pisperDesktop?.terminalProfiles&&Ee(c,`terminal`)?()=>yt(e=>!e):void 0,onSettings:()=>q(`settings`),onOpenSession:()=>q(`session`),onOpenBoard:()=>q(`board`),onOpenComponents:()=>W(`components`),onOpenMore:()=>q(`more`),onToggleSidebar:k?void 0:pe,onAgentPanel:()=>Nt({kind:`focus-list`}),onPreviousAgent:()=>Nt({kind:`adjacent`,direction:-1}),onNextAgent:()=>Nt({kind:`adjacent`,direction:1}),onJumpToAttention:()=>Nt({kind:`focus-attention`}),onSessionTree:m===`session`?()=>_t(`tree`):void 0,onSideChat:m===`session`?()=>_t(`side-chat`):void 0,onCycleFocusRegion:()=>void i(()=>import(`./focus-regions-B9MkPSKC.js`).then(e=>e.cycleFocusRegion()),[]),onShortcutHelp:()=>Se(!0)}),(0,Z.jsxs)(`div`,{className:`app-body flex min-h-0 flex-1 overflow-hidden`,"data-mobile-app":O||void 0,children:[!k&&(0,Z.jsx)(_r,{active:fe,onNewTask:()=>G(),onSearch:()=>M(!0),onOpenBoard:()=>q(`board`),onOpenFeatures:()=>q(`more`),onOpenSettings:()=>q(`settings`),content:(0,Z.jsxs)(X.Suspense,{fallback:(0,Z.jsx)(Sr,{}),children:[(0,Z.jsx)(vi,{}),(0,Z.jsx)(yi,{currentId:x(n.pathname),notify:U,requestText:V.prompt,onOpenSession:zt,onOpenBoard:()=>q(`board`),onOpenHistory:()=>W(`chatHistory`),onArchived:Ht})]}),takeover:pn?(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`nav`,{"aria-busy":`true`,"aria-label":t(`config:settingsShell.settingsNavigation`),className:`flex-1`}),children:(0,Z.jsx)(Ei,{configSection:_,onSelectSection:K,onBack:Qt,onOpenFeatures:()=>q(`more`),search:mn(`sidebar`),version:H.info?.version,footer:(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Si,{onOpenBoard:()=>q(`board`)})})})}):void 0,railCounts:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(Sr,{collapsed:!0}),children:(0,Z.jsx)(bi,{onOpenBoard:()=>q(`board`)})}),update:H.status&&[`available`,`downloading`,`downloaded`].includes(H.status.state)?(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(`div`,{className:`flex-none [&>button]:size-8 [&>button]:min-h-0 pointer-coarse:[&>button]:size-11`,children:(0,Z.jsx)(Ti,{update:H,collapsed:!0,onOpen:Gt})})}):void 0}),(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(xi,{resolveCurrentId:Lt,renderedSessionId:m===`session`?x(n.pathname):null,onOpenSession:zt,onWaiting:({title:e,reason:t})=>Dt(`chat.waiting`,{chat:{title:e,tool:t,reason:t}}),onAlerts:Et})}),(0,Z.jsxs)(`main`,{"data-focus-region":`main`,className:`main-surface relative flex min-w-0 flex-1 flex-col overflow-hidden bg-panel`,children:[un&&(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`div`,{className:`h-14 flex-none bg-panel`,"aria-hidden":`true`}),children:(0,Z.jsx)(Ci,{title:dn?t(`navigation:navigation.settings`):nn[0],onNewTask:()=>G(),onSearch:m===`board`?()=>M(!0):void 0})}),k&&v&&!dn&&(0,Z.jsxs)(X.Suspense,{fallback:null,children:[(0,Z.jsx)(ci,{onBack:()=>r(`/config`)}),(0,Z.jsx)(`div`,{"data-mobile-settings-search":!0,className:`flex-none px-4 pb-1`,children:mn()})]}),fn&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Oi,{meta:nn,page:m,desktopPlatform:window.pisperDesktop?.platform||``,terminalOpen:ft,onToggleTerminal:()=>yt(e=>!e),onBackToMore:an?on:void 0,phoneShell:k})}),(0,Z.jsx)(`div`,{className:`page-content flex-1 min-h-0 overflow-auto ${m===`session`||m===`chat`?`page-chat flex overflow-hidden p-0`:w.has(m)?`page-${m} overflow-hidden p-0`:`page-${m} px-6 pt-5 pb-5 max-[650px]:px-3 max-[650px]:pt-0`}`,children:dn?(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(li,{onNavigate:K,onOpenFeatures:()=>q(`more`)})}):(0,Z.jsx)(a,{context:sn})},m),window.pisperDesktop?.terminalProfiles&&Ee(c,`terminal`)&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(ki,{open:ft,height:L,labels:dt,activeSessionId:se,resolveSessionCwd:$t,onOpenChange:yt,onHeightChange:bt})})]})]}),k&&(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(wi,{active:fe,onSearch:()=>M(!0),onNewTask:()=>G(),onOpenBoard:()=>q(`board`),onOpenFeatures:()=>q(`more`),onOpenSettings:()=>q(`settings`),content:(0,Z.jsxs)(X.Suspense,{fallback:(0,Z.jsx)(Sr,{}),children:[(0,Z.jsx)(vi,{}),(0,Z.jsx)(yi,{drawer:!0,currentId:x(n.pathname),notify:U,requestText:V.prompt,onOpenSession:zt,onOpenBoard:()=>q(`board`),onOpenHistory:()=>W(`chatHistory`),onArchived:Ht})]}),update:H.status&&[`available`,`downloading`,`downloaded`].includes(H.status.state)?(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(`div`,{className:`flex-none [&>button]:size-11 [&>button]:min-h-0`,children:(0,Z.jsx)(Ti,{update:H,collapsed:!0,onOpen:Gt})})}):void 0})}),(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(di,{activeSessionId:se,notify:U})}),N&&(0,Z.jsx)(zr,{open:!0,message:N.message,tone:N.tone,action:N.action,duration:N.action?1e4:void 0,closeLabel:t(`common:ui.closeDialog`),onOpenChange:e=>!e&&qe(e=>e.filter(e=>e.id!==N.id))},N.id),(0,Z.jsx)(Fr,{hotkey:[],label:t(`common:ui.notifications`)}),V.dialog&&(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`span`,{role:`status`,className:`sr-only`,children:t(`common:pageTemplate.loading`)}),children:(0,Z.jsx)(pi,{dialog:V.dialog,onClose:V.close,onFinish:V.finish})}),(0,Z.jsx)(X.Suspense,{fallback:null,children:$e&&(0,Z.jsx)(gi,{open:!0,onDismiss:Y,onOpenImport:Wt,onOpenSettings:Ut})}),(0,Z.jsxs)(X.Suspense,{fallback:null,children:[ye&&(0,Z.jsx)(fi,{onClose:()=>M(!1),onNavigate:W,onOpenSession:async(e,n,r)=>{try{if(n&&!r){let{switchToTurnOnOtherBranch:r}=await i(async()=>{let{switchToTurnOnOtherBranch:e}=await import(`./session-tree-actions-BlqzMI3H.js`);return{switchToTurnOnOtherBranch:e}},__vite__mapDeps([179,59,7,4,5,6,8,9,61,47,38,48,17,18,2,3,1,19,180,37]));await r({sessionId:e,entryId:n,confirm:V.confirm,open:Pt,notify:U,t});return}Pt(e,n)}catch(e){throw U(t(`navigation:appOverlays.openLabeledTurnFailed`),`error`),e}},onNewChat:()=>G(),onToggleTheme:ke}),xe&&(0,Z.jsx)(Di,{open:!0,onOpenChange:Se,onCustomize:()=>r(`/config/shortcuts`)})]})]})})})}function Fi({children:e}){let{t}=A(),n=f(),r=o(),i=(0,X.useRef)(new Map),a=(0,X.useRef)(new Map),s=(0,X.useRef)(0),[c,l]=(0,X.useState)(0),[d,p]=(0,X.useState)(null),m=(0,X.useRef)(null),[h,g]=(0,X.useState)(!1),_=u(({currentLocation:e,nextLocation:t})=>Ut(e,t)&&Object.values(Y(i.current.values())).some(Boolean)),v=(0,X.useRef)(_);v.current=_;let y=(0,X.useCallback)(e=>{m.current=e,p(e)},[]),b=(0,X.useCallback)(e=>{let t=i.current.get(e.id);i.current.set(e.id,e),(!t||t.dirty!==e.dirty||t.saving!==e.saving)&&l(e=>e+1)},[]),x=(0,X.useCallback)(e=>{i.current.delete(e)&&l(e=>e+1)},[]),S=(0,X.useCallback)(()=>{y(null),a.current.clear(),v.current.state===`blocked`&&v.current.reset()},[y]),ee=(0,X.useCallback)((e,t,r)=>{a.current.clear();let i=`navigation-${++s.current}`;r&&a.current.set(i,r),n(e,{...t,state:{...t?.state,[Ht]:i}})},[n]),C=(0,X.useCallback)((e,t)=>{let n=i.current.get(e);if(n?.saving){S(),g(!0);return}if(v.current.state===`blocked`&&v.current.reset(),a.current.clear(),!n?.dirty){y(null),t();return}g(!1),y({kind:`close`,id:e,close:t})},[S,y]);(0,X.useLayoutEffect)(()=>{let e=Y(i.current.values());if(_.state===`blocked`)e.saving||!e.dirty?(S(),g(e.saving)):(g(!1),y({kind:`route`}));else if(m.current?.kind===`close`){let e=i.current.get(m.current.id);(!e||e.saving||!e.dirty)&&(y(null),g(!!e?.saving))}},[_,c,S,y]),(0,X.useLayoutEffect)(()=>{let e=r.state?.[Ht],t=typeof e==`string`?a.current.get(e):void 0;t&&(a.current.delete(e),t())},[r]);let w=Y(i.current.values());(0,X.useEffect)(()=>{if(!w.dirty&&!w.saving)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[w.dirty,w.saving]);let te=()=>{let e=m.current;if(!e)return;let t=e.kind===`close`?[i.current.get(e.id)].filter(e=>!!e):[...i.current.values()];if(t.some(e=>e.saving)){S(),g(!0);return}y(null);for(let e of t)e.dirty&&e.discard();e.kind===`close`?e.close():v.current.state===`blocked`&&v.current.proceed()},T=(0,X.useMemo)(()=>({update:b,remove:x,requestClose:C,navigate:ee}),[b,x,C,ee]);return(0,Z.jsxs)(Gt.Provider,{value:T,children:[e,h&&(0,Z.jsx)(`p`,{role:`status`,className:`fixed right-4 bottom-4 z-[300] rounded-lg border bg-popover p-3 text-sm text-popover-foreground shadow-md`,children:t(`common:unsaved.saving`)}),(0,Z.jsx)(wt,{open:!!d,onOpenChange:e=>{e||S()},children:(0,Z.jsxs)(Ct,{size:`compact`,surface:`confirmation`,showCloseButton:!1,className:`z-[400]`,overlayClassName:`z-[400]`,children:[(0,Z.jsxs)(U,{children:[(0,Z.jsx)(V,{children:t(`common:unsaved.title`)}),(0,Z.jsx)(St,{children:t(`common:unsaved.description`)})]}),(0,Z.jsx)(`form`,{onSubmit:e=>{e.preventDefault(),te()},children:(0,Z.jsxs)(H,{children:[(0,Z.jsx)(dt,{type:`button`,variant:`outline`,size:`dialogAction`,onClick:S,autoFocus:!0,children:t(`common:unsaved.keepEditing`)}),(0,Z.jsx)(dt,{type:`submit`,variant:`destructive`,size:`dialogAction`,children:t(`common:unsaved.discard`)})]})})]})})]})}function Ii(){let{t:e}=A();return(0,Z.jsxs)(Pt,{children:[(0,Z.jsx)(`span`,{className:`grid place-items-center`,children:(0,Z.jsx)(ut,{className:`size-6`})}),(0,Z.jsx)(`h2`,{children:e(`navigation:pageLoader.lightingUpThisPage`)}),(0,Z.jsx)(`p`,{children:e(`navigation:pageLoader.bringingTheNeededCapabilitiesIntoPlace`)})]})}async function Li(){window.__PISPER_MOBILE_APP__&&await Se().catch(()=>void 0);let e=new URL(window.location.href);window.__PISPER_MOBILE_APP__&&e.protocol===`http:`&&e.hostname===`127.0.0.1`&&e.searchParams.set(`_pisper_recovery`,String(Date.now())),window.location.replace(e.href)}function Ri(){let e=c(),t=s(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:`页面加载失败`;return(0,Z.jsxs)(`main`,{className:`app-startup flex min-h-[100vh] w-full items-center justify-center gap-2.5 bg-chrome text-[13px] text-content-muted`,role:`alert`,children:[(0,Z.jsx)(`strong`,{className:`font-medium`,children:t}),(0,Z.jsx)(dt,{variant:`secondary`,type:`button`,onClick:()=>void Li(),children:`重新加载`})]})}function $(){return n()}async function zi(){let[{BoardPage:e}]=await Promise.all([i(()=>import(`./BoardPage-C3a-6d1u.js`),__vite__mapDeps([181,5,4,6,15,3,7,8,9,11,37,38,36,39,16,17,18,2,1,19,20,40,41,42,44,43,45,22,182,88,120,136,23,183,105,184,142,98,96,47,48,61,97,59,99,156,101,121,94,52,185,157,186,33,187,106,107,65,66,108,67,109,110,111,56,57,188,189,175,68,58,60,100,145,137,138,139,29,32,140,103,141,146,147,53,64,148,63,149,150,151,62,152,85,126,153,154,155,127,123,190,104,35,112,113,114,172,173,174,191])),D()]);function t(e){let{origin:t,pathname:n,search:r,hash:i}=window.location;return i.startsWith(`#/`)?`${t}${n}${r}#${S(e)}`:`${t}${S(e)}`}function n(){let n=$(),r=f();return(0,Z.jsx)(e,{activeSessionId:n.activeSessionId,onOpenSession:e=>r(S(e)),onOpenHistory:()=>n.navigate(`chatHistory`),onConfigureModels:()=>r(`/config/models`),sessionHref:t,notify:n.notify,requestConfirm:n.requestConfirm,requestText:n.requestText,onNewTask:n.startNewTask})}return{Component:n}}async function Bi(){let[{ChatPage:e},{SessionShell:t}]=await Promise.all([i(()=>import(`./ChatPage-BK61m32j.js`),__vite__mapDeps([192,5,4,6,7,8,15,3,9,11,38,37,47,48,17,18,2,1,19,20,16,44,45,22,193,194,195,26,138,107,136,21,23,196,197,137,120,139,29,32,140,33,56,57,68,65,58,60,103,141,183,89,198,59,190,146,147,53,66,64,67,148,109,110,63,149,108,150,151,61,62,152,85,126,153,199,200,35,41,43,182,174,201,105,202,74,27,203,50,78,185,204,205,55,186,106,111,189,175,123,124,206,207,208,209,210,211,212,113,213,214,10,92,215,216,180,217,218,119,121,122,125,219,220,51,221,222,223,52,80,157,224,82,187,225,226,227,188,97,98,99,154,127,164,115,228,229,230,231,132,170,232,233,179,234,235,12])),i(()=>import(`./SessionShell-Byw5069L.js`),__vite__mapDeps([236,5,4,6,35,15,3,7,8,9,11,36,37,38,39,16,17,18,2,1,19,20,40,41,42,45,43,44,134,22,56,57,95,102,100,47,48,59,61,96,97,98,99,101,135,136,137,120,138,139,29,32,140,33,68,65,58,60,103,141,74,142,121,143,144,52,79,106,107,23,66,108,67,109,110,111,145,146,147,53,64,148,63,149,150,151,62,152,85,126,153,154,155,127,156,112])),D()]);function n(){return(0,Z.jsx)(t,{context:$(),ChatPage:e})}return{Component:n}}async function Vi(){Bi().catch(()=>void 0);let[{SessionHome:e}]=await Promise.all([i(()=>import(`./SessionHome-D-iS34Q7.js`),__vite__mapDeps([237,5,4,6,35,15,3,7,8,9,11,43,44,45,17,18,2,1,19,134,22,56,57,95,102,100,47,38,48,16,20,41,59,61,96,37,39,97,98,99,101,135,136,137,120,138,139,29,32,140,33,68,65,58,60,103,141,74,142,121,143,144,52,79,106,107,23,66,108,67,109,110,111,145,146,147,53,64,148,63,149,150,151,62,152,85,126,153,154,155,127,156,123,112])),D()]);function t(){return(0,Z.jsx)(e,{context:$()})}return{Component:t}}async function Hi(){let{MorePage:e}=await i(async()=>{let{MorePage:e}=await import(`./MorePage-CM0nAh27.js`);return{MorePage:e}},__vite__mapDeps([238,5,6,15,3,4,7,8,9,11,37,38,2,19,18,20,16,17,1,36,39,40,41,42,45,43,44,22,239,71,26,72,73,23,240,241,76,52,77,78,53,79,81,82,33,187,168,56,57,68,65,58,59,91,60]));function t(){let t=$(),n=f();return(0,Z.jsx)(e,{onOpen:e=>{e.type===`page`?n(ie(e.id)):e.type===`config`?t.setConfigSection(e.id):n(`/tools/components/${encodeURIComponent(e.id)}`)}})}return{Component:t}}async function Ui(){let{ChatHistoryPage:e}=await i(async()=>{let{ChatHistoryPage:e}=await import(`./ChatHistoryPage-D576j6vI.js`);return{ChatHistoryPage:e}},__vite__mapDeps([242,5,7,4,6,8,15,3,9,11,37,38,47,48,17,18,2,1,19,43,44,45,22,194,105,139,243,94,29,157,186,187,168,106,107,23,65,66,108,67,109,110,111,56,57,68,59,60,97,62,103,154,123,244,136,21,53,122,33,58,229,230]));function t(){let t=$();return(0,Z.jsx)(e,{navigate:t.navigate,onBack:t.onBackToFeatures,onNewTask:t.startNewTask,notify:t.notify,requestConfirm:t.requestConfirm,requestText:t.requestText})}return{Component:t}}async function Wi(){let{AssetsPage:e}=await i(async()=>{let{AssetsPage:e}=await import(`./AssetsPage-BIYsLgYo.js`);return{AssetsPage:e}},__vite__mapDeps([245,5,6,3,4,7,8,9,15,11,37,38,246,2,19,18,22,89,160,199,220,222,52,29,186,122,33,168,106,107,23,65,66,108,67,109,110,111,56,57,68,60,62,63,64,85,123,244,43,44,45,17,1,136,21,53,58,247,128,84,129,207,208,209,210,211,201,212]));function t(){let t=$();return(0,Z.jsx)(e,{activeSessionId:t.activeSessionId,onBack:t.onBackToFeatures,notify:t.notify,requestConfirm:t.requestConfirm,onUse:t.onUseAsset})}return{Component:t}}async function Gi(){let[{ChannelsPage:e}]=await Promise.all([i(()=>import(`./ChannelsPage-6Opibsv4.js`),__vite__mapDeps([248,5,6,15,3,4,7,8,9,11,17,18,2,1,19,22,26,160,74,249,51,52,29,250,205,186,122,33,187,168,56,57,68,65,60,62,103,85,152,126,123,244,43,44,45,136,21,53,58,128,84,66,129,172,173,107,174,147,175,108,67,109,110,150,228,227,218,111,229,214])),se()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestConfirm:t.requestConfirm})}return{Component:t}}async function Ki(){let{BotsPage:e}=await i(async()=>{let{BotsPage:e}=await import(`./public-B7A7Bf7w.js`);return{BotsPage:e}},__vite__mapDeps([251,5,4,6,35,15,3,7,8,9,11,2,19,18,182,22,120,73,136,21,23,201,119,16,17,1,20,107,74,121,122,68,57,65,56,63,33,64,66,67,85,123,124,125,249,28,139,52,118,126,127,128,84,129,114,113,130,47,38,48,186,224,252,174,108,216,227,110,188,111,153,172,44,173,147,175,109,150,131,59,132]));function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify})}return{Component:t}}async function qi(){let[{SchedulesPage:e}]=await Promise.all([i(()=>import(`./SchedulesPage-6Qe506NG.js`),__vite__mapDeps([253,5,4,6,15,3,7,8,9,11,17,18,2,1,19,25,22,26,73,196,119,16,20,120,107,23,74,121,122,68,57,65,56,63,33,64,66,67,85,123,124,125,249,223,52,250,186,168,227,110,60,62,103,126,127,244,43,44,45,136,21,53,58,128,84,129,172,173,174,147,175,108,109,150,228,218,111,229,214])),O()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestConfirm:t.requestConfirm,openNotificationSettings:t.openNotificationSettings})}return{Component:t}}async function Ji(){let[{ConfigPage:e},{ChatAppearancePage:t}]=await Promise.all([i(()=>import(`./ConfigPage-BmnOjD9j.js`),__vite__mapDeps([254,5,4,6,7,8,3,9,15,11,2,19,18,17,1,20,16,45,22,193,163,88,255,25,26,72,107,136,21,49,196,256,201,89,105,160,24,27,28,29,240,143,144,50,51,241,257,223,52,161,185,53,79,205,258,81,54,186,122,140,33,187,65,66,108,252,174,216,56,57,110,111,106,23,67,109,148,63,64,68,173,147,175,150,129,149,227,58,91,60,62,103,85,126,153,123,69,244,43,44,128,84,207,208,209,210,211,212,172,131,59,132,229,228,218,214,232,92,215,259,260,166,178])),i(()=>import(`./ChatAppearancePage-D5gk_aXZ.js`),__vite__mapDeps([261,4,5,6,35,15,3,7,8,9,11])),D(),E()]);function n(){let n=$();return(0,Z.jsx)(e,{notify:n.notify,registerPrimaryAction:n.registerPrimaryAction,invokePrimaryAction:n.invokePrimaryAction,section:n.configSection,onBackToFeatures:n.onBackToFeatures,onBrowserNotificationChange:n.setNotificationSettings,requestConfirm:n.requestConfirm,update:n.appUpdate,renderInterfaceSettings:e=>(0,Z.jsx)(t,{appearance:e})})}return{Component:n}}async function Yi(){let{PluginsPage:e}=await i(async()=>{let{PluginsPage:e}=await import(`./PluginsPage-DHJHTTXh.js`);return{PluginsPage:e}},__vite__mapDeps([262,5,6,15,3,4,7,8,9,11,17,18,2,1,19,20,16,22,196,263,160,202,264,74,240,265,76,266,53,79,204,186,122,168,65,66,64,67,56,57,68,60,63,33,85,127,123,244,43,44,45,136,21,58,172,173,107,174,147,175,108,109,110,150,228,227,218,111,229,214,233]));function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function Xi(){let{MemoryPage:e}=await i(async()=>{let{MemoryPage:e}=await import(`./MemoryPage-CSZweuq_.js`);return{MemoryPage:e}},__vite__mapDeps([267,5,4,6,7,8,35,15,3,9,11,2,19,18,22,194,195,105,264,203,139,243,94,52,29,78,185,258,186,122,33,168,106,107,23,65,66,108,67,109,110,111,56,57,218,188,68,60,63,64,85,126,123,244,43,44,45,17,1,136,21,53,58,128,84,129,172,173,174,147,175,150,229,228,227,214,268]));function t(){let t=$();return(0,Z.jsx)(e,{onBack:t.onBackToFeatures,notify:t.notify,requestConfirm:t.requestConfirm})}return{Component:t}}async function Zi(){let[{McpPage:e}]=await Promise.all([i(()=>import(`./McpPage-DFwh1tmO.js`),__vite__mapDeps([269,5,6,15,3,4,7,8,9,11,38,37,48,246,2,19,18,107,22,201,90,52,29,78,79,186,140,33,168,227,65,66,110,56,57,68,60,62,63,64,67,126,123,124,244,43,44,45,17,1,136,21,53,122,58])),le()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function Qi(){let[{SkillsPage:e}]=await Promise.all([i(()=>import(`./SkillsPage-r_UPbRKb.js`),__vite__mapDeps([270,5,6,15,3,4,7,8,9,11,17,18,2,1,19,264,22,240,265,52,266,81,186,140,168,225,107,65,66,110,56,57,68,60,123,244,43,44,45,136,21,53,122,33,58,228,227,218,108,111,229,214])),ae()]);function t(){let t=$();return(0,Z.jsx)(e,{activeSessionId:t.activeSessionId,notify:t.notify,onBack:t.onBackToFeatures,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}var $i=Object.freeze({componentFromList:!0});function ea(e){return typeof e==`object`&&!!e&&e.componentFromList===!0}async function ta(){let[{CustomUiPage:e}]=await Promise.all([i(()=>import(`./public-DAqU5ju6.js`),__vite__mapDeps([271,5,4,6,35,15,3,7,8,9,11,37,38,39,40,2,19,18,41,36,16,17,1,20,42,43,44,45,22,239,255,71,107,136,21,23,256,201,89,105,221,52,78,53,272,204,81,186,33,225,65,66,110,56,57,106,108,67,109,111,84,173,174,147,175,150,227,188,68,58,60,151,64,95,145,137,120,138,139,29,32,140,103,141,146,148,63,149,61,47,48,62,152,85,126,153,142,98,96,97,59,99,100,101,154,155,127,135,74,121,143,144,79,102,156,123,69,229,273,226,129,189,274,275])),E()]);function t(){let t=$(),n=f(),i=o(),{componentId:a=``}=r();return(0,Z.jsx)(e,{activeSessionId:t.activeSessionId,notify:t.notify,selectedId:a,onSelect:(e,t)=>{!e&&!t&&ea(i.state)?n(-1):n(te(e),{replace:t||!e,state:e&&!t?$i:void 0})}})}return{Component:t}}async function na(){let[{CustomUiToolPage:e}]=await Promise.all([i(()=>import(`./public-DAqU5ju6.js`),__vite__mapDeps([271,5,4,6,35,15,3,7,8,9,11,37,38,39,40,2,19,18,41,36,16,17,1,20,42,43,44,45,22,239,255,71,107,136,21,23,256,201,89,105,221,52,78,53,272,204,81,186,33,225,65,66,110,56,57,106,108,67,109,111,84,173,174,147,175,150,227,188,68,58,60,151,64,95,145,137,120,138,139,29,32,140,103,141,146,148,63,149,61,47,48,62,152,85,126,153,142,98,96,97,59,99,100,101,154,155,127,135,74,121,143,144,79,102,156,123,69,229,273,226,129,189,274,275])),E()]);function t(){let t=$(),{componentId:n=``}=r();return(0,Z.jsx)(e,{componentId:n,activeSessionId:t.activeSessionId,notify:t.notify})}return{Component:t}}async function ra(){let[{WorkflowsPage:e}]=await Promise.all([i(()=>import(`./WorkflowsPage-BcXqmyBY.js`),__vite__mapDeps([276,5,4,6,35,3,7,8,9,15,11,37,38,2,19,18,17,1,43,44,45,22,182,120,25,26,138,107,136,21,23,196,197,256,201,89,105,264,199,219,277,240,50,249,257,221,222,278,139,223,52,29,161,266,53,250,79,272,32,186,122,82,33,168,106,65,66,108,67,109,110,111,56,57,84,148,63,64,68,226,149,150,227,218,60,151,62,103,85,126,123,124,244,58,128,129,172,173,174,147,175,215,216,178,275,279,280,281])),ce()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,onBack:t.onBackToFeatures,requestConfirm:t.requestConfirm})}return{Component:t}}async function ia(){let[{WorkflowBuilder:e}]=await Promise.all([i(()=>import(`./WorkflowsPage-BcXqmyBY.js`),__vite__mapDeps([276,5,4,6,35,3,7,8,9,15,11,37,38,2,19,18,17,1,43,44,45,22,182,120,25,26,138,107,136,21,23,196,197,256,201,89,105,264,199,219,277,240,50,249,257,221,222,278,139,223,52,29,161,266,53,250,79,272,32,186,122,82,33,168,106,65,66,108,67,109,110,111,56,57,84,148,63,64,68,226,149,150,227,218,60,151,62,103,85,126,123,124,244,58,128,129,172,173,174,147,175,215,216,178,275,279,280,281])),ce()]);function t(){let t=$();return(0,Z.jsx)(e,{notify:t.notify,registerWorkflowActions:t.registerWorkflowActions})}return{Component:t}}var aa=t([{element:(0,Z.jsx)(Fi,{children:(0,Z.jsx)(Pi,{routerState:()=>aa.state})}),errorElement:(0,Z.jsx)(Ri,{}),hydrateFallbackElement:(0,Z.jsx)(Ii,{}),children:[{index:!0,lazy:Vi},{path:T.board,lazy:zi},{path:`/board/:sessionId`,lazy:Bi},{path:T.more,lazy:Hi},{path:T.chat,element:(0,Z.jsx)(l,{to:`/`,replace:!0})},{path:T.chatHistory,lazy:Ui},{path:T.assets,lazy:Wi},{path:T.channels,lazy:Gi},{path:T.schedules,lazy:qi},{path:`/bots/:botId?`,lazy:Ki},{path:T.config,lazy:Ji},{path:`/config/:configSection`,lazy:Ji},{path:`/config`,element:(0,Z.jsx)(l,{to:T.config,replace:!0})},{path:T.plugins,lazy:Yi},{path:T.memory,lazy:Xi},{path:T.mcp,lazy:Zi},{path:T.skills,lazy:Qi},{path:`/components/:componentId?`,lazy:ta},{path:`/tools/components/:componentId`,lazy:na},{path:T.workflows,lazy:ra},{path:T.workflowCreate,lazy:ia},{path:`/workflows/:workflowId`,lazy:ia},{path:`*`,element:(0,Z.jsx)(l,{to:`/`,replace:!0})}]}]),oa=()=>{document.documentElement.dataset.pageVisibility=document.visibilityState};oa(),document.addEventListener(`visibilitychange`,oa);var sa=b(window.location.hash);sa&&window.history.replaceState(null,``,`${window.location.pathname}${window.location.search}#${sa}`);var ca=document.getElementById(`root`);if(!ca)throw Error(`Missing #root application mount point`);(0,qn.createRoot)(ca).render((0,Z.jsx)(X.StrictMode,{children:(0,Z.jsxs)(Xn,{children:[(0,Z.jsx)(d,{router:aa}),(0,Z.jsx)(rr,{})]})}));