pisper 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -7
- package/web/.vite/manifest.json +256 -256
- package/web/assets/{AppOverlays-D-yAp1vf.js → AppOverlays-CR5iJcP5.js} +1 -1
- package/web/assets/{AppShortcuts-CtNLVerh.js → AppShortcuts-BachmLQ3.js} +1 -1
- package/web/assets/{AssetsPage-DOzB9Wnk.js → AssetsPage-BltehMID.js} +1 -1
- package/web/assets/{ChannelsPage-DAPrpSTC.js → ChannelsPage-Tuw_qicj.js} +1 -1
- package/web/assets/{ChatAppearancePage-Q8jLnp7A.js → ChatAppearancePage-DME3PgDr.js} +2 -2
- package/web/assets/{ChatDockView-1fxZrR7W.js → ChatDockView-DoGtrBpY.js} +1 -1
- package/web/assets/{ChatHistoryPage-Bpyxsay_.js → ChatHistoryPage-DTXS6i3n.js} +1 -1
- package/web/assets/{ChatPage-CVOjCtOP.js → ChatPage-ibc_7olm.js} +3 -3
- package/web/assets/{ConfigPage-sVAdZytK.js → ConfigPage-CI6one5Y.js} +1 -1
- package/web/assets/{DecisionsPage-zq88dfkB.js → DecisionsPage-DOhLbIaD.js} +1 -1
- package/web/assets/{DesktopWindowControls-DYmSShHE.js → DesktopWindowControls-KmgemDO8.js} +1 -1
- package/web/assets/{FloatingWidgets-CFY30wFr.js → FloatingWidgets-Bs7ec6lW.js} +1 -1
- package/web/assets/{GitDiffViewer-BZV0A9mh.js → GitDiffViewer-xm2LnN9r.js} +1 -1
- package/web/assets/{MarkdownMessage-_VrT_sON.js → MarkdownMessage-H1336cMr.js} +1 -1
- package/web/assets/{McpPage-ROftSC8m.js → McpPage-Ck-7aLuZ.js} +1 -1
- package/web/assets/{MemoryPage-DkBjt-3Y.js → MemoryPage-BEdNJ3ot.js} +1 -1
- package/web/assets/{MobileContextScreen-BEss6aR9.js → MobileContextScreen-Dasny2J9.js} +2 -2
- package/web/assets/{MobileThreePane-DjyMuG9k.js → MobileThreePane-DEKMHPfN.js} +1 -1
- package/web/assets/{PageHeader-DyoCht8Y.js → PageHeader-C_bfu8Ir.js} +1 -1
- package/web/assets/{PluginsPage-DjaIps8G.js → PluginsPage-BPx5ERHL.js} +1 -1
- package/web/assets/{QuickPromptIdeas-B8P77vjW.js → QuickPromptIdeas-Bs-udcSZ.js} +1 -1
- package/web/assets/{SchedulesPage-CsJS8r9L.js → SchedulesPage-W4Mg7frl.js} +1 -1
- package/web/assets/{SessionContextPanel-BYlJfIxm.js → SessionContextPanel-lu9F9AJg.js} +1 -1
- package/web/assets/{SessionFilesPane-DWuwTplj.js → SessionFilesPane-BIRQ_hHi.js} +2 -2
- package/web/assets/{SidebarMoreTools-C2kAUJm0.js → SidebarMoreTools-BDqt5VTG.js} +1 -1
- package/web/assets/{SidebarRecentSessions-CoaY-U88.js → SidebarRecentSessions-1G_huYu9.js} +1 -1
- package/web/assets/{SidebarSettingsButton-BvmP3q5N.js → SidebarSettingsButton-B4_vEBS5.js} +1 -1
- package/web/assets/{SidebarUpdateStatus-DHxZy6-o.js → SidebarUpdateStatus-DD8f4Fxv.js} +1 -1
- package/web/assets/{SkillsPage-CX55drgE.js → SkillsPage-CpRRosmo.js} +1 -1
- package/web/assets/{TerminalPanel-gBBjaBlu.js → TerminalPanel-DVKC4htc.js} +1 -1
- package/web/assets/{ThemeToggleButton-D6NR_guG.js → ThemeToggleButton-CXXbLtcY.js} +1 -1
- package/web/assets/{WebDesktopPet-BKP_jSW2.js → WebDesktopPet-DWFspeZE.js} +1 -1
- package/web/assets/{WorkbenchSidebarToggle-Kxa_tpUy.js → WorkbenchSidebarToggle-AgjfcT29.js} +1 -1
- package/web/assets/{WorkflowsPage-CNVCHm3u.js → WorkflowsPage-bhQlHSzS.js} +1 -1
- package/web/assets/{api-BbC90EzT.js → api-Dzobr-o_.js} +1 -1
- package/web/assets/catalog-D4eaIju4.js +1 -0
- package/web/assets/{chat-api-BWIsQYmQ.js → chat-api-DfnvubiW.js} +1 -1
- package/web/assets/{client-store-CAjI7P8I.js → client-store-DPMvgPNS.js} +1 -1
- package/web/assets/{component-api-CQ_xu0Wa.js → component-api-Nwo2yGZI.js} +1 -1
- package/web/assets/{config-search-BnPZPrUR.js → config-search-CwVhh2uc.js} +1 -1
- package/web/assets/{events-DJwBfKGM.js → events-Bwv6HmwM.js} +1 -1
- package/web/assets/{floating-widgets-store-DGeXH0NK.js → floating-widgets-store-DIy4GSy4.js} +2 -2
- package/web/assets/{http-BrDjjNkv.js → http-DphgzWtw.js} +1 -1
- package/web/assets/{i18n-Bo7twSO7.js → i18n-7QvbQzOQ.js} +1 -1
- package/web/assets/{index-IemAtsU4.js → index-iBrSU61i.js} +2 -2
- package/web/assets/{local-path-reveal-BSjf-Pum.js → local-path-reveal-DWhkyox-.js} +1 -1
- package/web/assets/{mount-app-AtqeFC4t.js → mount-app-n_05p6iW.js} +3 -3
- package/web/assets/{pick-system-directory-Wa63igLM.js → pick-system-directory-R1F5WyaB.js} +1 -1
- package/web/assets/{public-CsBeGSro.js → public-BcTP7F3I.js} +1 -1
- package/web/assets/{public-components-BYWnKxmu.js → public-components-Ck5BYo6M.js} +1 -1
- package/web/assets/{runtime-capabilities-store-BxCUS5xR.js → runtime-capabilities-store-DaWPY5y-.js} +1 -1
- package/web/assets/{session-change-summary-api-x1sTdOgD.js → session-change-summary-api-DFgTzTci.js} +1 -1
- package/web/assets/{session-list-DPpH_zbz.js → session-list-CMaoK_ZX.js} +1 -1
- package/web/assets/{session-streaming-state-OU65zaiO.js → session-streaming-state-llCTupbI.js} +1 -1
- package/web/assets/{shortcuts-B3q7nKdq.js → shortcuts-BO-h6OmP.js} +1 -1
- package/web/assets/{speech-session-BB9aLyRQ.js → speech-session-DKjw0mV_.js} +1 -1
- package/web/assets/{startup-queries-C-Xq7N50.js → startup-queries-CAQZvUIR.js} +1 -1
- package/web/assets/{ui-store-3r51KJe8.js → ui-store-2wpnH8Kf.js} +1 -1
- package/web/assets/{use-i18n-DyzoXal-.js → use-i18n-BSZKFkMb.js} +1 -1
- package/web/assets/{useCustomUiComponents-B3Z-pphj.js → useCustomUiComponents-BH86kuaq.js} +1 -1
- package/web/assets/{web-preview-panel-DNEqdotS.js → web-preview-panel-DVQxVfig.js} +4 -4
- package/web/index.html +1 -1
- package/web/assets/catalog-BPgyo6Yf.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-app-
|
|
2
|
-
import{p as e}from"./vendor-router-CZg2bCPV.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-session-context-layout`,`pisper-composer-toolbar`,`pisper-zcode-composer-toolbar`,`pisper-workspace-order`,`pisper-floating-widgets`,`pisper-floating-placement`,`pisper-language`,`pisper-shortcuts`,`pisper-active-session`,`pisper-mobile-session-tabs`,`pisper-terminal-panel`,`pisper-sponsor-dismissals`,`pisper-model-onboarding-v1-dismissed`,`pisper.config.manageConnectionsOpen`,`pisper.config.visualConnectionsOpen`,`pisper-web-desktop-pet-position`]),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-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mount-app-n_05p6iW.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-router-CZg2bCPV.js","assets/vendor-react-DwNgTV1j.js","assets/vendor-ui-DvrYggeS.js","assets/i18n-7QvbQzOQ.js","assets/storage-BpAqa-YY.js","assets/use-i18n-BSZKFkMb.js","assets/vendor-state-GkUciC5H.js","assets/dist-Cfh4kzCK.js","assets/dist-B_a0oV4U.js","assets/dist-BlIIpW6W.js","assets/dist-DAs5KRGl.js","assets/es2015-0QT3KgdC.js","assets/label-BzlNatZM.js","assets/utils-C8uzG5AZ.js","assets/tooltip-Bxq7c2mZ.js","assets/dist-alOyD2Bh.js","assets/dist-TksYpDID.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/bell-BjONAtgH.js","assets/blocks-Olsdp5Lp.js","assets/bot-B3TaBp_T.js","assets/app-update-DppJNspd.js","assets/circle-check-iEdCm3Pw.js","assets/folder-open-FIShC5Qk.js","assets/info-DATxy0fb.js","assets/message-square-SKjZyY3v.js","assets/web-preview-CQbpHjt1.js","assets/WorkbenchSidebarToggle-AgjfcT29.js","assets/sidebar-CfWEKOIK.js","assets/separator-BDICnhEL.js","assets/panel-left-C_lYsiIA.js","assets/use-mobile-YXncArOq.js","assets/button-CQA36izu.js","assets/input-CvjGYteF.js","assets/sheet--Om3LZxh.js","assets/dist-BdkTa5R3.js","assets/x-07u4-129.js","assets/plug-BsIeHRwC.js","assets/refresh-cw-TbWxTY4K.js","assets/search-D0mqDaf_.js","assets/server-BgNvmqwJ.js","assets/sparkles-S_eeuqn9.js","assets/triangle-alert-CE1q54ci.js","assets/workflow-Bg94dy8I.js","assets/http-DphgzWtw.js","assets/abort-signal-f4JsiYKX.js","assets/api-Dzobr-o_.js","assets/client-store-DPMvgPNS.js","assets/useQuery-DdcpUQhO.js","assets/query-Bj-DUNYq.js","assets/startup-queries-CAQZvUIR.js","assets/mutation-CEbxdVYy.js","assets/chat-api-DfnvubiW.js","assets/dialog-D-ER2p-D.js","assets/app-primitives-BBXY6U2S.js","assets/switch-Ci_hmu39.js","assets/tabs-DQYVDdOp.js","assets/card-BdUpL1KB.js","assets/shortcuts-BO-h6OmP.js","assets/ui-store-2wpnH8Kf.js","assets/events-Bwv6HmwM.js","assets/route-context-DvWDul4T.js","assets/runtime-capabilities-store-DaWPY5y-.js","assets/brand-DIEc3fK8.js","assets/web-preview-events-o845ErdA.js","assets/mobile-shell-layout-CMpTmYRX.js","assets/browser-notifications-DBS0oXqN.js","assets/routes-C4kwUiVG.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{p as e}from"./vendor-router-CZg2bCPV.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-session-context-layout`,`pisper-composer-toolbar`,`pisper-zcode-composer-toolbar`,`pisper-workspace-order`,`pisper-floating-widgets`,`pisper-floating-placement`,`pisper-language`,`pisper-shortcuts`,`pisper-active-session`,`pisper-mobile-session-tabs`,`pisper-terminal-panel`,`pisper-sponsor-dismissals`,`pisper-model-onboarding-v1-dismissed`,`pisper.config.manageConnectionsOpen`,`pisper.config.visualConnectionsOpen`,`pisper-web-desktop-pet-position`]),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-n_05p6iW.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])));export{j as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./http-
|
|
1
|
+
import{i as e}from"./http-DphgzWtw.js";import{t}from"./api-Dzobr-o_.js";var n=8e3;async function r(r){if(window.__PISPER_MOBILE_APP__)throw new i(`unavailable`);let a=await t(`/api/desktop/reveal-path`,{method:`POST`,body:JSON.stringify({path:r}),timeout:n});if(!a||typeof a!=`object`||!(`revealed`in a)||typeof a.revealed!=`boolean`)throw e();return a.revealed}var i=class extends Error{reason;constructor(e){super(`local-reveal:${e}`),this.reason=e,this.name=`LocalPathRevealError`}};async function a(e,t){if(typeof t!=`function`)throw new i(`unavailable`);let n;try{if(await Promise.race([Promise.resolve().then(()=>t(e)),new Promise((e,t)=>{n=setTimeout(()=>t(new i(`timeout`)),8e3)})])!==!0)throw new i(`failed`)}finally{clearTimeout(n)}}export{a as n,r,i as t};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SidebarSettingsButton-
|
|
2
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{a as t,c as n,d as r,i,l as a,o,p as s,r as c,s as l,t as u,u as d}from"./vendor-router-CZg2bCPV.js";import{t as f}from"./index-IemAtsU4.js";import{i as p,n as m,r as h,t as g}from"./vendor-react-DwNgTV1j.js";import{t as _}from"./vendor-ui-DvrYggeS.js";import{a as v,c as y,i as b,o as x,r as S,s as ee,t as C}from"./i18n-Bo7twSO7.js";import{n as w,r as te,t as T}from"./use-i18n-DyzoXal-.js";import{t as E}from"./storage-BpAqa-YY.js";import{i as D}from"./dist-Cfh4kzCK.js";import{a as O,c as k,i as A,l as j,o as M,r as ne,s as re,t as ie}from"./dist-B_a0oV4U.js";import{r as ae}from"./dist-BlIIpW6W.js";import{a as oe}from"./dist-DAs5KRGl.js";import{c as N,i as se,o as ce}from"./es2015-0QT3KgdC.js";import{t as P}from"./label-BzlNatZM.js";import{r as le}from"./tooltip-Bxq7c2mZ.js";import{t as F}from"./utils-C8uzG5AZ.js";import{t as I}from"./createLucideIcon-Cd-3GVxJ.js";import{t as ue}from"./bell-BjONAtgH.js";import{t as de}from"./blocks-Olsdp5Lp.js";import{t as fe}from"./bot-B3TaBp_T.js";import{a as pe,c as me,d as he,f as ge,l as L,n as _e,r as ve,s as ye,u as be}from"./app-update-DppJNspd.js";import{t as R}from"./circle-check-iEdCm3Pw.js";import{t as z}from"./folder-open-FIShC5Qk.js";import{t as xe}from"./info-DATxy0fb.js";import{t as Se}from"./message-square-SKjZyY3v.js";import{i as Ce,n as we,r as Te}from"./web-preview-CQbpHjt1.js";import{t as Ee}from"./WorkbenchSidebarToggle-Kxa_tpUy.js";import{t as De}from"./plug-BsIeHRwC.js";import{t as Oe}from"./refresh-cw-TbWxTY4K.js";import{t as ke}from"./search-D0mqDaf_.js";import{t as Ae}from"./server-BgNvmqwJ.js";import{t as je}from"./sparkles-S_eeuqn9.js";import{t as Me}from"./triangle-alert-CE1q54ci.js";import{t as Ne}from"./workflow-Bg94dy8I.js";import{t as Pe}from"./x-07u4-129.js";import{r as Fe}from"./use-mobile-YXncArOq.js";import{r as Ie}from"./http-BrDjjNkv.js";import{t as Le}from"./api-BbC90EzT.js";import{n as Re,t as ze}from"./client-store-CAjI7P8I.js";import{t as B}from"./button-CQA36izu.js";import{n as Be,t as Ve}from"./useQuery-DdcpUQhO.js";import{a as He,i as Ue,n as We,o as Ge,r as Ke,t as qe}from"./startup-queries-C-Xq7N50.js";import{t as Je}from"./chat-api-BWIsQYmQ.js";import{i as Ye,r as Xe,s as Ze,t as V}from"./dialog-D-ER2p-D.js";import{t as Qe}from"./input-CvjGYteF.js";import{r as H}from"./app-primitives-BBXY6U2S.js";import{o as U}from"./shortcuts-B3q7nKdq.js";import{a as $e,n as et,r as tt,t as nt}from"./sidebar-CfWEKOIK.js";import{r as W}from"./ui-store-3r51KJe8.js";import{m as rt,n as it,p as at,t as ot}from"./events-DJwBfKGM.js";import{t as st}from"./route-context-DvWDul4T.js";import{a as ct,i as lt,n as ut,r as dt,t as ft}from"./runtime-capabilities-store-BxCUS5xR.js";import{t as G}from"./brand-DIEc3fK8.js";import{a as pt,i as mt,o as ht,r as K}from"./web-preview-events-o845ErdA.js";import{i as gt}from"./browser-notifications-DBS0oXqN.js";import{a as _t,i as vt,n as q,r as yt,t as bt}from"./routes-C4kwUiVG.js";var J=e(p());function xt({i18n:e,defaultNS:t,children:n}){let r=(0,J.useMemo)(()=>({i18n:e,defaultNS:t}),[e,t]);return(0,J.createElement)(te.Provider,{value:r},n)}var St=e(m(),1),Y=h(),Ct=Object.defineProperty,X=(e,t)=>Ct(e,`name`,{value:t,configurable:!0}),Z=`ToastProvider`,[wt,Q,Tt]=oe(`Toast`),[Et,Dt]=re(`Toast`,[Tt]),[Ot,kt]=Et(Z),At=X(e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,announcerContainer:o,children:s}=e,[c,l]=J.useState(null),[u,d]=J.useState(0),f=J.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${Z}\`. Expected non-empty \`string\`.`),(0,Y.jsx)(wt.Provider,{scope:t,children:(0,Y.jsx)(Ot,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:u,viewport:c,onViewportChange:l,onToastAdd:J.useCallback(()=>d(e=>e+1),[]),onToastRemove:J.useCallback(()=>d(e=>e-1),[]),isClosePausedRef:f,announcerContainer:o,children:s})})},`ToastProvider`),jt=`ToastViewport`,Mt=[`F8`],Nt=`toast.viewportPause`,Pt=`toast.viewportResume`,Ft=J.forwardRef(X(function(e,t){let{__scopeToast:n,hotkey:r=Mt,label:i=`Notifications ({hotkey})`,...a}=e,o=kt(jt,n),s=Q(n),c=J.useRef(null),l=J.useRef(null),u=J.useRef(null),d=J.useRef(null),f=D(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;J.useEffect(()=>{let e=X(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]),J.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=X(()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(Nt);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},`handlePause`),r=X(()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(Pt);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},`handleResume`),i=X(t=>{e.contains(t.relatedTarget)||r()},`handleFocusOutResume`),a=X(()=>{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=J.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...rn(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return J.useEffect(()=>{let e=d.current;if(e){let t=X(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);an(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,Y.jsxs)(ce,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,Y.jsx)(Lt,{ref:l,onFocusFromOutsideViewport:()=>{an(h({tabbingDirection:`forwards`}))}}),(0,Y.jsx)(wt.Slot,{scope:n,children:(0,Y.jsx)(k.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,Y.jsx)(Lt,{ref:u,onFocusFromOutsideViewport:()=>{an(h({tabbingDirection:`backwards`}))}})]})},`ToastViewport`)),It=`ToastFocusProxy`,Lt=J.forwardRef(X(function(e,t){let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=kt(It,n);return(0,Y.jsx)(ae,{tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})},`ToastFocusProxy`)),Rt=`Toast`,zt=`toast.swipeStart`,Bt=`toast.swipeMove`,Vt=`toast.swipeCancel`,Ht=`toast.swipeEnd`,Ut=J.forwardRef(X(function(e,t){let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s,c]=A({prop:r,defaultProp:i??!0,onChange:a,caller:Rt});return(0,Y.jsx)(ne,{present:n||s,children:(0,Y.jsx)(Kt,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:ie(e.onPause),onResume:ie(e.onResume),onSwipeStart:M(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:M(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:M(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:M(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`)),[Wt,Gt]=Et(Rt,{onClose(){}}),Kt=J.forwardRef(X(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=kt(Rt,n),g=Q(n),[_,v]=J.useState(null),y=D(t,v),b=J.useRef(null),x=J.useRef(null),S=i||h.duration,ee=J.useRef(0),C=J.useRef(S),w=J.useRef(0),{onToastAdd:te,onToastRemove:T}=h,E=ie(()=>{_?.contains(document.activeElement)&&h.viewport?.focus(),o()}),O=J.useCallback(e=>{!e||e===1/0||(window.clearTimeout(w.current),ee.current=new Date().getTime(),w.current=window.setTimeout(E,e))},[E]);J.useEffect(()=>{let e=h.viewport;if(e){let t=X(()=>{O(C.current),l?.()},`handleResume`),n=X(()=>{let e=new Date().getTime()-ee.current;C.current-=e,window.clearTimeout(w.current),c?.()},`handlePause`);return e.addEventListener(Nt,n),e.addEventListener(Pt,t),()=>{e.removeEventListener(Nt,n),e.removeEventListener(Pt,t)}}},[h.viewport,S,c,l,O]),J.useEffect(()=>{a&&!h.isClosePausedRef.current&&O(S)},[a,S,h.isClosePausedRef,O]),J.useEffect(()=>()=>{window.clearTimeout(w.current)},[]),J.useEffect(()=>(te(),()=>T()),[te,T]);let A=J.useMemo(()=>_?Qt(_):null,[_]);return h.viewport?(0,Y.jsxs)(Y.Fragment,{children:[A&&(0,Y.jsx)(qt,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,children:A}),(0,Y.jsx)(Wt,{scope:n,onClose:E,children:St.createPortal((0,Y.jsx)(wt.ItemSlot,{scope:n,children:(0,Y.jsx)(N,{asChild:!0,onEscapeKeyDown:M(s,e=>{g().some(t=>t.ref.current?.contains(e.target))||E()}),children:(0,Y.jsx)(k.li,{tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:y,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:M(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||E())}),onPointerDown:M(e.onPointerDown,e=>{e.button===0&&(b.current={x:e.clientX,y:e.clientY})}),onPointerMove:M(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,$t(Bt,d,f,{discrete:!1})):en(l,h.swipeDirection,c)?(x.current=l,$t(zt,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(b.current=null)}),onPointerUp:M(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};en(t,h.swipeDirection,h.swipeThreshold)?$t(Ht,p,r,{discrete:!0}):$t(Vt,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null},`ToastImpl`)),qt=X(e=>{let{__scopeToast:t,children:n,...r}=e,i=kt(Rt,t),[a,o]=J.useState(!1),[s,c]=J.useState(!1);return tn(()=>o(!0)),J.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,Y.jsx)(se,{asChild:!0,container:i.announcerContainer||void 0,children:(0,Y.jsx)(ae,{...r,children:a&&(0,Y.jsxs)(Y.Fragment,{children:[i.label,` `,n]})})})},`ToastAnnounce`),Jt=J.forwardRef(X(function(e,t){let{__scopeToast:n,...r}=e;return(0,Y.jsx)(k.div,{...r,ref:t})},`ToastDescription`)),Yt=`ToastClose`,Xt=J.forwardRef(X(function(e,t){let{__scopeToast:n,...r}=e,i=Gt(Yt,n);return(0,Y.jsx)(Zt,{asChild:!0,children:(0,Y.jsx)(k.button,{type:`button`,...r,ref:t,onClick:M(e.onClick,i.onClose)})})},`ToastClose`)),Zt=J.forwardRef(X(function(e,t){let{__scopeToast:n,altText:r,...i}=e;return(0,Y.jsx)(k.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})},`ToastAnnounceExclude`));function Qt(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),nn(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(...Qt(e))}}}),t}X(Qt,`getAnnounceTextContent`);function $t(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?j(i,a):i.dispatchEvent(a)}X($t,`handleAndDispatchCustomEvent`);var en=X((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 tn(e=()=>{}){let t=ie(e);O(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}X(tn,`useNextFrame`);function nn(e){return e.nodeType===e.ELEMENT_NODE}X(nn,`isHTMLElement`);function rn(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:X(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}X(rn,`getTabbableCandidates`);function an(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}X(an,`focusFirst`);var on=At,sn=Ft,cn=Ut,ln=Jt,un=Xt,dn=I(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`path`,{d:`M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338`,key:`7hb8p4`}],[`path`,{d:`M3 9h5.859`,key:`numkqi`}],[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),fn=I(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),pn=I(`message-circle-plus`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]),mn=I(`radio-tower`,[[`path`,{d:`M4.9 16.1C1 12.2 1 5.8 4.9 1.9`,key:`s0qx1y`}],[`path`,{d:`M7.8 4.7a6.14 6.14 0 0 0-.8 7.5`,key:`1idnkw`}],[`circle`,{cx:`12`,cy:`9`,r:`2`,key:`1092wv`}],[`path`,{d:`M16.2 4.8c2 2 2.26 5.11.8 7.47`,key:`ojru2q`}],[`path`,{d:`M19.1 1.9a9.96 9.96 0 0 1 0 14.1`,key:`rhi7fg`}],[`path`,{d:`M9.5 18h5`,key:`mfy3pd`}],[`path`,{d:`m8 22 4-11 4 11`,key:`25yftu`}]]),hn=g();function gn({children:e}){let{i18n:t}=w(),n=y(t.resolvedLanguage)?t.resolvedLanguage:C;return(0,J.useEffect)(()=>{document.documentElement.lang=n;try{f.setItem(E.language,n)}catch{}window.pisperDesktop?.setLanguage?.(n)},[n]),e}function _n({children:e}){return(0,Y.jsx)(xt,{i18n:ee,children:(0,Y.jsx)(gn,{children:e})})}function vn({children:e}){return(0,J.useEffect)(()=>We(window),[]),(0,Y.jsx)(Be,{client:Ue,children:(0,Y.jsx)(_n,{children:(0,Y.jsx)(le,{delayDuration:300,children:e})})})}function yn(){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}}}function bn(e=e=>e,t=ut){let n=[[`chat`,e(`navigation:navigation.chat`),Se],[`assets`,e(`navigation:navigation.assets`),z],[`workflows`,e(`navigation:navigation.workflows`),Ne],[`schedules`,e(`navigation:navigation.schedules`),dn]];return[[e(`navigation:navigation.app`),n.filter(([e])=>ct(t,e))]]}function xn(e=e=>e){return{chat:[e(`navigation:navigation.chat`),e(`navigation:navigation.chatDescription`)],chatHistory:[e(`navigation:navigation.chatHistory`),e(`navigation:navigation.chatHistoryDescription`)],assets:[e(`navigation:navigation.assets`),e(`navigation:navigation.assetsDescription`)],channels:[e(`navigation:navigation.channels`),e(`navigation:navigation.channelsDescription`)],schedules:[e(`navigation:navigation.schedules`),e(`navigation:navigation.schedulesDescription`)],config:[e(`navigation:navigation.settings`),e(`navigation:navigation.settingsDescription`)],plugins:[e(`navigation:navigation.plugins`),e(`navigation:navigation.pluginsDescription`)],memory:[e(`navigation:navigation.memory`),e(`navigation:navigation.memoryDescription`)],mcp:[e(`navigation:navigation.mcp`),e(`navigation:navigation.mcpDescription`)],skills:[e(`navigation:navigation.skills`),e(`navigation:navigation.skillsDescription`)],components:[e(`navigation:navigation.components`),e(`navigation:navigation.componentsDescription`)],decisions:[e(`navigation:navigation.decisions`),e(`navigation:navigation.decisionsDescription`)],workflows:[e(`navigation:navigation.workflows`),e(`navigation:navigation.workflowsDescription`)],gameAssetWorkbench:[e(`navigation:navigation.gameAssetWorkbench`),e(`navigation:navigation.gameAssetWorkbenchDescription`)],customComponentTool:[e(`navigation:navigation.components`),e(`navigation:navigation.componentsDescription`)],workflowCreate:[e(`navigation:navigation.newWorkflow`),e(`navigation:navigation.newWorkflowDescription`)]}}var Sn=new Set([`models`,`notifications`,`interface`,`shortcuts`,`desktop-pet`,`updates`,`remote-access`,`mobile-server`,`about`]),Cn=new Set([`config`,`channels`,`plugins`,`memory`,`mcp`,`skills`,`decisions`]);function wn(e,{mobileApp:t=!1,capabilities:n=ut}={}){let r=t?[{key:`config:mobile-server`,label:e(`config:configPage.mobileServer`),icon:be,destination:{type:`config`,id:`mobile-server`}}]:[{key:`config:remote-access`,label:e(`config:configPage.remoteAccess`),icon:be,destination:{type:`config`,id:`remote-access`}}];return[{label:e(`config:settingsShell.agent`),items:[{key:`config:models`,label:e(`config:configPage.models`),icon:fe,destination:{type:`config`,id:`models`}}]},{label:e(`config:settingsShell.agentCapabilities`),items:[{key:`page:plugins`,label:e(`navigation:navigation.plugins`),icon:De,destination:{type:`page`,id:`plugins`}},{key:`page:mcp`,label:e(`navigation:navigation.mcp`),icon:Ae,destination:{type:`page`,id:`mcp`}},{key:`page:skills`,label:e(`navigation:navigation.skills`),icon:je,destination:{type:`page`,id:`skills`}},{key:`page:decisions`,label:e(`navigation:navigation.decisions`),icon:L,destination:{type:`page`,id:`decisions`}}]},{label:e(`config:settingsShell.contextAndData`),items:[{key:`page:memory`,label:e(`navigation:navigation.memory`),icon:ge,destination:{type:`page`,id:`memory`}}]},{label:e(`config:settingsShell.connections`),items:[{key:`page:channels`,label:e(`navigation:navigation.channels`),icon:mn,destination:{type:`page`,id:`channels`}},...r,{key:`config:notifications`,label:e(`config:configPage.notifications`),icon:ue,destination:{type:`config`,id:`notifications`}}]},{label:e(`config:settingsShell.application`),items:[{key:`config:interface`,label:e(`config:configPage.interface`),icon:Ce,destination:{type:`config`,id:`interface`}},{key:`config:shortcuts`,label:e(`config:configPage.shortcuts`),icon:he,destination:{type:`config`,id:`shortcuts`}},{key:`config:desktop-pet`,label:e(`config:configPage.desktopPet`),icon:fe,destination:{type:`config`,id:`desktop-pet`}},{key:`config:updates`,label:e(`config:configPage.appUpdates`),icon:Oe,destination:{type:`config`,id:`updates`}},{key:`config:about`,label:e(`config:configPage.about`),icon:xe,destination:{type:`config`,id:`about`}}]}].map(e=>({...e,items:e.items.filter(e=>e.destination.type===`config`?dt(n,e.destination.id):ct(n,e.destination.id))})).filter(e=>e.items.length>0)}function Tn(e,t){return e===`config`?`config:${t}`:`page:${e}`}var En=`pisper-custom-accent-style`;function Dn(e,t,n=new Date().getHours()){return e===`dark`?!0:e===`light`?!1:e===`system`?t:n>=18||n<8}function On(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=e.accent===`custom`?me(e.customAccent||``):null,r=document.getElementById(En);n?(r||(r=document.createElement(`style`),r.id=En,document.head.append(r)),r.textContent=ye(n)):r?.remove()}function kn(){let e=l(),t=n();return(0,J.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=we({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});i&&(n.preventDefault(),n.stopPropagation(),K(i),e.pathname!==_t(`chat`)&&t(_t(`chat`)))};return document.addEventListener(`click`,n,!0),()=>document.removeEventListener(`click`,n,!0)},[e.pathname,t]),null}var An=(0,J.lazy)(()=>s(()=>import(`./SidebarSettingsButton-BvmP3q5N.js`).then(e=>({default:e.SidebarSettingsButton})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),jn=(0,J.lazy)(()=>s(()=>import(`./SidebarMoreTools-C2kAUJm0.js`),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,17,15,18,19,20,21,22,23,10,11,24,13,14]))),Mn=(0,J.lazy)(()=>s(()=>import(`./SidebarRecentSessions-CoaY-U88.js`).then(e=>({default:e.SidebarRecentSessions})),__vite__mapDeps([25,2,6,5,1,7,3,4,8,9,18,15,19,20,21,22,23,10,11,13,26,27,28,29,30,31,32,33,34,35,36,37,38,39,14,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57]))),Nn=(0,J.lazy)(()=>s(()=>import(`./SidebarUpdateStatus-DHxZy6-o.js`),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,59,13,60,61,62])));function Pn({page:e,configSection:t,navigation:n,installedTools:r,navigate:i,onOpenComponent:a,navigateSettings:o,onNewChat:s,onSearch:c,collapsed:l,update:u,onOpenUpdates:d,requestText:f,requestConfirm:p,notify:m}){let{t:h}=T(),{isMobile:g,setOpenMobile:_}=$e(),v=l&&!g,y=Re(),b=ft(e=>e.capabilities),x=Cn.has(e),S=(0,J.useMemo)(()=>wn(h,{mobileApp:y,capabilities:b}),[b,y,h]),ee=Tn(e,t),C=U(`primaryAction`),w=U(`commandPalette`),te=n.flatMap(([,e])=>e),E=[`workflows`,`assets`].flatMap(e=>te.filter(([t])=>t===e)),D=[...te.filter(([e])=>![`chat`,`workflows`,`assets`].includes(e)),...r.map(({id:e,name:t})=>[`component:${e}`,t,de])],O=pt(),k=e=>{e(),g&&_(!1)},A=()=>{if(!O.active){k(()=>i(`assets`));return}if(O.mode===`phone`&&O.pane===`context`&&O.tab===`assets`){O.setPane(`chat`);return}O.openContext(`assets`)},j=F(`w-full gap-2 rounded-lg text-sm font-normal text-foreground shadow-none hover:bg-sidebar-accent`,v?`h-11 justify-center px-0`:`h-8 justify-start px-2.5`),M=v?`sr-only`:`truncate`;return(0,Y.jsx)(nt,{collapsible:`icon`,className:`pisper-sidebar-container border-0`,children:(0,Y.jsxs)(`aside`,{className:`sidebar flex h-full w-full min-w-0 flex-col bg-sidebar text-foreground`,id:`workbench-sidebar`,"data-testid":`workbench-sidebar`,children:[(0,Y.jsx)(`div`,{className:F(`flex h-12 shrink-0 items-center gap-2 px-3`,v?`justify-center`:`justify-between`),"data-window-drag-region":!0,children:(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(Te,{className:`size-6`,size:24}),(0,Y.jsx)(`span`,{className:F(v?`sr-only`:`truncate`,`text-sm font-semibold`),children:G})]})}),x?(0,Y.jsxs)(`nav`,{className:`min-h-0 flex-1 overflow-y-auto px-2 pb-4 pt-3`,"aria-label":h(`config:settingsShell.settingsNavigation`),children:[(0,Y.jsxs)(B,{variant:`ghost`,className:F(j,`mb-5`),onClick:()=>k(()=>i(`chat`)),"data-testid":`workbench-home`,title:v?h(`navigation:workbench.home`):void 0,children:[(0,Y.jsx)(fn,{size:16,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:M,children:h(`navigation:workbench.home`)})]}),S.map(e=>(0,Y.jsxs)(`div`,{className:`mb-5 flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:v?`sr-only`:`px-2.5 pb-1.5 text-[12px] text-muted-foreground`,children:e.label}),e.items.map(e=>(0,Y.jsxs)(B,{variant:`ghost`,className:F(j,ee===e.key&&`bg-sidebar-accent`),"aria-current":ee===e.key?`page`:void 0,onClick:()=>k(()=>o(e.destination)),title:v?e.label:void 0,children:[(0,Y.jsx)(e.icon,{size:16}),(0,Y.jsx)(`span`,{className:M,children:e.label})]},e.key))]},e.label))]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`nav`,{className:`flex min-h-0 flex-col gap-1 overflow-y-auto px-2 py-3`,"aria-label":h(`navigation:appSidebar.mainNavigation`),children:[(0,Y.jsxs)(B,{variant:`ghost`,className:F(j,e===`chat`&&`bg-sidebar-accent`),"aria-current":e===`chat`?`page`:void 0,onClick:()=>k(()=>i(`chat`)),"data-testid":`workbench-home`,title:v?h(`navigation:workbench.home`):void 0,children:[(0,Y.jsx)(fn,{size:16,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:M,children:h(`navigation:workbench.home`)})]}),(0,Y.jsxs)(B,{variant:`ghost`,className:j,onClick:()=>k(s),"data-testid":`workbench-new-task`,title:v?h(`navigation:workbench.newTask`):void 0,children:[(0,Y.jsx)(pn,{size:16}),(0,Y.jsx)(`span`,{className:M,children:h(`navigation:workbench.newTask`)}),(0,Y.jsx)(`kbd`,{className:F(`ml-auto text-[10px] font-normal text-muted-foreground/60`,v&&`hidden`),children:C})]}),(0,Y.jsxs)(B,{variant:`ghost`,className:j,onClick:()=>k(c),title:v?h(`navigation:workbench.search`):void 0,children:[(0,Y.jsx)(ke,{size:16}),(0,Y.jsx)(`span`,{className:M,children:h(`navigation:workbench.search`)}),(0,Y.jsx)(`kbd`,{className:F(`ml-auto text-[10px] font-normal text-muted-foreground/60`,v&&`hidden`),children:w})]}),E.map(([t,n,r])=>{let a=t===`assets`&&O.active&&O.tab===`assets`&&(O.mode===`pad`||O.pane===`context`),o=t===`assets`&&a||e===t;return(0,Y.jsxs)(B,{variant:`ghost`,className:F(j,o&&`bg-sidebar-accent`),"aria-current":o?`page`:void 0,onClick:()=>t===`assets`?A():k(()=>i(t)),title:v?n:void 0,children:[(0,Y.jsx)(r,{size:16}),(0,Y.jsx)(`span`,{className:M,children:n})]},t)}),D.length>0&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(jn,{items:D,buttonClassName:j,compact:v,onNavigate:e=>k(()=>e.startsWith(`component:`)?a(e.slice(10)):i(e))})})]}),(0,Y.jsx)(`div`,{className:F(`min-h-0 flex-1 flex-col`,v?`hidden`:`flex`),children:(0,Y.jsx)(J.Suspense,{fallback:(0,Y.jsx)(`div`,{className:`mx-2 h-20 animate-pulse rounded-lg bg-sidebar-accent`}),children:(0,Y.jsx)(Mn,{navigate:i,requestText:f,requestConfirm:p,notify:m})})})]}),(0,Y.jsxs)(`footer`,{className:F(`mt-auto flex shrink-0 flex-col gap-2 pb-3 pt-2`,v?`px-2`:`px-3`),children:[u.status&&[`available`,`downloading`,`downloaded`].includes(u.status.state)&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(Nn,{update:u,collapsed:v,onOpen:d})}),(0,Y.jsxs)(`div`,{className:F(`flex items-center`,v?`flex-col gap-1`:`gap-2`),children:[(0,Y.jsx)(`div`,{className:F(`min-w-0`,v?`w-full`:`flex-1`),children:(0,Y.jsx)(J.Suspense,{fallback:(0,Y.jsx)(`div`,{className:`h-11`,"aria-busy":`true`}),children:(0,Y.jsx)(An,{active:x,compact:v,onOpen:()=>k(()=>o({type:`config`,id:`models`}))})})}),(0,Y.jsx)(Ee,{inSidebar:!0})]})]})]})})}function Fn({page:e,configSection:t,mobileApp:n,onNavigate:r}){let{t:i}=T(),a=Tn(e,t),o=(0,J.useRef)(null),s=ft(e=>e.capabilities),c=(0,J.useMemo)(()=>wn(i,{mobileApp:n,capabilities:s}).flatMap(e=>e.items).filter(e=>e.destination.type!==`config`||e.destination.id!==`desktop-pet`),[s,n,i]);return(0,J.useEffect)(()=>{o.current?.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})},[a]),(0,Y.jsx)(`nav`,{"aria-label":i(`config:settingsShell.settingsNavigation`),className:`flex flex-none gap-2 overflow-x-auto px-4 pb-3 pt-1 [-ms-overflow-style:none] [scrollbar-width:none] max-[650px]:px-2 [&::-webkit-scrollbar]:hidden`,"data-mobile-navigation":`settings`,children:c.map(e=>{let t=a===e.key,n=e.icon;return(0,Y.jsxs)(`button`,{"aria-current":t?`page`:void 0,className:F(`flex flex-none items-center gap-1.5 rounded-full border px-3 py-1.5 text-[12px] font-medium transition-colors`,t?`border-[var(--star-strong)] bg-[var(--star-soft)] text-[var(--star-strong)]`:`border-[var(--border)] text-[var(--text-muted)] hover:text-[var(--text)]`),onClick:()=>r(e.destination),ref:t?o:void 0,children:[(0,Y.jsx)(n,{"aria-hidden":`true`,size:14}),(0,Y.jsx)(`span`,{children:e.label})]},e.key)})})}function In({dialog:e,onClose:t,onFinish:n}){let{t:r}=T(),[i,a]=(0,J.useState)(e?.value||``),o=(0,J.useRef)(null);return(0,J.useEffect)(()=>{a(e?.value||``)},[e]),(0,Y.jsx)(V,{open:!!e,onOpenChange:e=>!e&&t(),children:e&&(0,Y.jsx)(Xe,{showCloseButton:!1,className:`max-w-[430px] gap-0 rounded-dialog border border-surface-highlight bg-popover p-[18px] text-popover-foreground shadow-dialog ring-0`,onOpenAutoFocus:t=>{e.type===`prompt`&&(t.preventDefault(),o.current?.focus(),o.current?.select())},children:(0,Y.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),e&&n(e.type!==`prompt`||i.trim())},children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(Ze,{className:`text-[17px] leading-6 font-bold tracking-[0]`,children:e.title}),(0,Y.jsx)(Ye,{className:e.message?`mt-1.5 text-[13px] leading-5 text-content-muted`:`sr-only`,children:e.message||e.title})]}),(0,Y.jsx)(B,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":r(`common:ui.closeDialog`),title:r(`common:ui.closeDialog`),className:`size-8 shrink-0 text-content-muted`,onClick:t,children:(0,Y.jsx)(Pe,{className:`size-[18px]`})})]}),e.type===`prompt`&&(0,Y.jsxs)(P,{className:`mt-4 block text-[12px] leading-5 font-semibold text-content-soft`,children:[e.inputLabel||r(`common:ui.name`),(0,Y.jsx)(Qe,{ref:o,className:`mt-2 h-10 rounded-lg border-border bg-background px-3 text-[13px]`,value:i,placeholder:e.placeholder,maxLength:e.maxLength||120,onChange:e=>a(e.target.value)})]}),(0,Y.jsxs)(`div`,{className:`mt-[18px] flex justify-end gap-2`,children:[(0,Y.jsx)(B,{type:`button`,variant:`secondary`,onClick:t,children:r(`common:ui.cancel`)}),(0,Y.jsx)(B,{type:`submit`,variant:e.tone===`danger`?`destructive`:`default`,className:e.tone===`danger`?void 0:`text-primary-foreground`,disabled:e.type===`prompt`&&!i.trim(),children:e.confirmLabel||r(`common:ui.confirm`)})]})]})})})}var Ln=_(`group pointer-events-auto relative flex min-h-11 w-full items-center gap-2 overflow-hidden rounded-surface border px-3.5 py-2.5 pr-10 text-[13px] leading-5 font-semibold tracking-[0] shadow-floating 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-border bg-surface-muted text-content-soft`}},defaultVariants:{tone:`success`}});function Rn({className:e,tone:t,...n}){return(0,Y.jsx)(cn,{"data-slot":`toast`,className:F(Ln({tone:t}),e),...n})}function zn({...e}){return(0,Y.jsx)(on,{"data-slot":`toast-provider`,...e})}function Bn({className:e,...t}){return(0,Y.jsx)(sn,{"data-slot":`toast-viewport`,className:F(`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 Vn({className:e,...t}){return(0,Y.jsx)(ln,{"data-slot":`toast-description`,className:F(`min-w-0 flex-1 [overflow-wrap:anywhere]`,e),...t})}function Hn({className:e,...t}){return(0,Y.jsx)(un,{"data-slot":`toast-close`,className:F(`absolute top-1/2 right-1.5 grid size-7 -translate-y-1/2 place-items-center rounded-md text-current opacity-70 outline-none transition hover:bg-black/5 hover:opacity-100 focus-visible:ring-3 focus-visible:ring-ring/50 dark:hover:bg-white/10`,e),...t})}var Un={success:R,error:Me,info:xe};function Wn({message:e,tone:t,closeLabel:n,...r}){let i=Un[t];return(0,Y.jsxs)(Rn,{tone:t,type:t===`error`?`foreground`:`background`,...r,children:[(0,Y.jsx)(i,{className:`size-[18px] shrink-0`}),(0,Y.jsx)(Vn,{children:e}),(0,Y.jsx)(Hn,{"aria-label":n,title:n,children:(0,Y.jsx)(Pe,{className:`size-4`})})]})}function Gn(){let{t:e}=T(),[t,n]=(0,J.useState)(null),r=(0,J.useRef)(null),i=(0,J.useCallback)(e=>{r.current?.(e),r.current=null,n(null)},[]),a=(0,J.useCallback)(e=>new Promise(t=>{r.current?.(null),r.current=t,n(e)}),[]),o=(0,J.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,J.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,J.useCallback)(()=>i(null),[i]);return(0,J.useEffect)(()=>()=>r.current?.(null),[]),{dialog:t,confirm:o,prompt:s,close:c,finish:i}}var Kn=15e3,qn=216e5,Jn=new Set([`checking`,`downloading`,`downloaded`]);function Yn(e){return!Jn.has(e)}function Xn(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,Kn),o=t.setInterval(i,qn);return()=>{r=!0,t.clearTimeout(a),t.clearInterval(o)}}var Zn=new Set([`available`,`downloading`,`installed`,`error`]);function Qn(e,t){return t?.find(e=>e.component===`desktop`)?.currentVersion.trim()||e}function $n(e){return e.filter(e=>e.size>0&&(Zn.has(e.state)||e.canInstall))}function er(e){return e.replace(/\r/g,``).split(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SidebarSettingsButton-B4_vEBS5.js","assets/vendor-react-DwNgTV1j.js","assets/rolldown-runtime-B0Z9INg1.js","assets/use-i18n-BSZKFkMb.js","assets/i18n-7QvbQzOQ.js","assets/vendor-router-CZg2bCPV.js","assets/index-iBrSU61i.js","assets/index-CdASiNlI.css","assets/storage-BpAqa-YY.js","assets/vendor-state-GkUciC5H.js","assets/utils-C8uzG5AZ.js","assets/vendor-ui-DvrYggeS.js","assets/settings-QX0oWnVK.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/button-CQA36izu.js","assets/dist-Cfh4kzCK.js","assets/SidebarMoreTools-BDqt5VTG.js","assets/dropdown-menu-DmL4pJTo.js","assets/dist-B_a0oV4U.js","assets/dist-swnK7PHk.js","assets/dist-DAs5KRGl.js","assets/es2015-0QT3KgdC.js","assets/dist-alOyD2Bh.js","assets/dist-TksYpDID.js","assets/ellipsis-CfGKfbq6.js","assets/SidebarRecentSessions-1G_huYu9.js","assets/pin-off-DRR1KEvN.js","assets/pin-Dc2zE4cS.js","assets/chevron-right-C3t2Rckj.js","assets/circle-alert-DCChabnT.js","assets/loader-circle-BOwQzHB-.js","assets/message-square-SKjZyY3v.js","assets/pencil-U08v_vV9.js","assets/plus-fQbSqB1n.js","assets/rotate-ccw-C0v8V77_.js","assets/search-D0mqDaf_.js","assets/trash-2-CNrPOoPR.js","assets/api-Dzobr-o_.js","assets/http-DphgzWtw.js","assets/abort-signal-f4JsiYKX.js","assets/useQuery-DdcpUQhO.js","assets/query-Bj-DUNYq.js","assets/startup-queries-CAQZvUIR.js","assets/mutation-CEbxdVYy.js","assets/format-BRFKAYMT.js","assets/sidebar-CfWEKOIK.js","assets/separator-BDICnhEL.js","assets/tooltip-Bxq7c2mZ.js","assets/dist-BlIIpW6W.js","assets/panel-left-C_lYsiIA.js","assets/use-mobile-YXncArOq.js","assets/input-CvjGYteF.js","assets/sheet--Om3LZxh.js","assets/dist-BdkTa5R3.js","assets/x-07u4-129.js","assets/events-Bwv6HmwM.js","assets/session-list-CMaoK_ZX.js","assets/pick-system-directory-R1F5WyaB.js","assets/SidebarUpdateStatus-DD8f4Fxv.js","assets/download-BCfIiuaL.js","assets/external-link-CEQqPcqc.js","assets/refresh-cw-TbWxTY4K.js","assets/rocket-BgLSjoHY.js","assets/DesktopWindowControls-KmgemDO8.js","assets/minus-BuutOHSj.js","assets/square-bHHVTT3G.js","assets/AppShortcuts-BachmLQ3.js","assets/shortcuts-BO-h6OmP.js","assets/FloatingWidgets-Bs7ec6lW.js","assets/grip-vertical-B__LYT0s.js","assets/client-store-DPMvgPNS.js","assets/floating-widgets-store-DIy4GSy4.js","assets/useCustomUiComponents-BH86kuaq.js","assets/queryOptions-Dfvzj6n2.js","assets/AppOverlays-CR5iJcP5.js","assets/tag-CqkeJlBf.js","assets/chat-api-DfnvubiW.js","assets/dialog-D-ER2p-D.js","assets/field-3bN8nouy.js","assets/label-BzlNatZM.js","assets/app-primitives-BBXY6U2S.js","assets/switch-Ci_hmu39.js","assets/tabs-DQYVDdOp.js","assets/card-BdUpL1KB.js","assets/WebDesktopPet-DWFspeZE.js","assets/public-components-Ck5BYo6M.js","assets/arrow-right-DqLOhpA2.js","assets/bot-B3TaBp_T.js","assets/key-round-C29uZbsf.js","assets/server-BgNvmqwJ.js","assets/config-search-CwVhh2uc.js","assets/PageHeader-C_bfu8Ir.js","assets/ThemeToggleButton-CXXbLtcY.js","assets/sun-DBWBo3We.js","assets/ui-store-2wpnH8Kf.js","assets/link-2-mgasYn21.js","assets/WorkbenchSidebarToggle-AgjfcT29.js","assets/play-DNDjDNGn.js","assets/save-CHBB52P8.js","assets/square-terminal-BVG6cUT1.js","assets/TerminalPanel-DVKC4htc.js","assets/chevron-down-CxtxIjiP.js","assets/TerminalPanel-BrP-ENHg.css","assets/MobileThreePane-DEKMHPfN.js","assets/chevron-left-BAtyp3_6.js","assets/mobile-shell-layout-CMpTmYRX.js","assets/MobileContextScreen-Dasny2J9.js","assets/blocks-Olsdp5Lp.js","assets/file-diff-GxOMJkLj.js","assets/folder-open-FIShC5Qk.js","assets/SessionFilesPane-BIRQ_hHi.js","assets/check-2vYc6QaP.js","assets/undo-2-CJE_nRTk.js","assets/session-change-summary-api-DFgTzTci.js","assets/local-path-reveal-DWhkyox-.js","assets/MobileViewportStabilizer-OtwVmIPm.js","assets/catalog-D4eaIju4.js","assets/ChatPage-ibc_7olm.js","assets/web-preview-panel-DVQxVfig.js","assets/collapsible-C__hRcbA.js","assets/AppSelect-D149YYg1.js","assets/popover-BBuzaBfd.js","assets/progress-C_G6VqQ_.js","assets/circle-check-iEdCm3Pw.js","assets/circle-x-Ba4QL7Ec.js","assets/shield-alert-CvFOTe9h.js","assets/file-text-N9JICX6E.js","assets/file-Bllajneu.js","assets/session-streaming-state-llCTupbI.js","assets/circle-dot-nVrXgDaG.js","assets/clock-3-CBHGbD_G.js","assets/code-xml-BrUXrBax.js","assets/info-DATxy0fb.js","assets/list-checks-B5Jl4aiO.js","assets/web-preview-CQbpHjt1.js","assets/shield-check-Gvek4RJ7.js","assets/triangle-alert-CE1q54ci.js","assets/vendor-motion-DSW3wzXK.js","assets/MarkdownMessage-H1336cMr.js","assets/vendor-markdown-plugins-DisoihU3.js","assets/vendor-shiki-runtime-UFMr0O-Q.js","assets/vendor-markdown-plugins-DEcVZfaU.css","assets/vendor-markdown-Ck4Y_w0n.js","assets/copy-DHmIFc52.js","assets/route-context-DvWDul4T.js","assets/alert-QoPGoIY6.js","assets/GitDiffViewer-xm2LnN9r.js","assets/paperclip-BCXrwYpb.js","assets/settings-2-CXJjXJS9.js","assets/sliders-horizontal-Dryf1XyC.js","assets/workflow-Bg94dy8I.js","assets/wrench-6pg6_bqI.js","assets/runtime-capabilities-store-DaWPY5y-.js","assets/tool-labels-DJzY62Yr.js","assets/speech-session-DKjw0mV_.js","assets/usePagePrimaryAction-CWPC0C_f.js","assets/side-chat-context-Dr2QLUJA.js","assets/brand-DIEc3fK8.js","assets/web-preview-events-o845ErdA.js","assets/ChatHistoryPage-DTXS6i3n.js","assets/panel-right-BSUtqUd8.js","assets/StarOrbit-BAAjh-hY.js","assets/react-bits-DQli9s7O.css","assets/AssetsPage-BltehMID.js","assets/mobile-runtime-recovery-tbTyacip.js","assets/ChannelsPage-Tuw_qicj.js","assets/message-circle-D-XrK6Ft.js","assets/send-Cj-W03w_.js","assets/SchedulesPage-W4Mg7frl.js","assets/bell-BjONAtgH.js","assets/ConfigPage-CI6one5Y.js","assets/arrow-left-B8oVrQ2S.js","assets/zap-3wDb3GcJ.js","assets/app-update-DppJNspd.js","assets/earth-Ddy13fHh.js","assets/flask-conical-DhW5v7Zz.js","assets/image-BY_c3FYU.js","assets/sparkles-S_eeuqn9.js","assets/wand-sparkles-DdQneChm.js","assets/browser-notifications-DBS0oXqN.js","assets/ChatAppearancePage-DME3PgDr.js","assets/PluginsPage-BPx5ERHL.js","assets/file-code-corner-BnE1ljT0.js","assets/plug-BsIeHRwC.js","assets/MemoryPage-BEdNJ3ot.js","assets/use-animation-visibility-_Xe7jeUy.js","assets/McpPage-Ck-7aLuZ.js","assets/textarea-bYCRTyEt.js","assets/SkillsPage-CpRRosmo.js","assets/public-BcTP7F3I.js","assets/DecisionsPage-DOhLbIaD.js","assets/WorkflowsPage-bhQlHSzS.js","assets/sprite-engine-catalog-D1HQWa1X.js","assets/vendor-xyflow-hxQFvEHK.js","assets/vendor-xyflow-DLioOiRN.css","assets/routes-C4kwUiVG.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{a as t,c as n,d as r,i,l as a,o,p as s,r as c,s as l,t as u,u as d}from"./vendor-router-CZg2bCPV.js";import{t as f}from"./index-iBrSU61i.js";import{i as p,n as m,r as h,t as g}from"./vendor-react-DwNgTV1j.js";import{t as _}from"./vendor-ui-DvrYggeS.js";import{a as v,c as y,i as b,o as x,r as S,s as ee,t as C}from"./i18n-7QvbQzOQ.js";import{n as w,r as te,t as T}from"./use-i18n-BSZKFkMb.js";import{t as E}from"./storage-BpAqa-YY.js";import{i as D}from"./dist-Cfh4kzCK.js";import{a as O,c as k,i as A,l as j,o as M,r as ne,s as re,t as ie}from"./dist-B_a0oV4U.js";import{r as ae}from"./dist-BlIIpW6W.js";import{a as oe}from"./dist-DAs5KRGl.js";import{c as N,i as se,o as ce}from"./es2015-0QT3KgdC.js";import{t as P}from"./label-BzlNatZM.js";import{r as le}from"./tooltip-Bxq7c2mZ.js";import{t as F}from"./utils-C8uzG5AZ.js";import{t as I}from"./createLucideIcon-Cd-3GVxJ.js";import{t as ue}from"./bell-BjONAtgH.js";import{t as de}from"./blocks-Olsdp5Lp.js";import{t as fe}from"./bot-B3TaBp_T.js";import{a as pe,c as me,d as he,f as ge,l as L,n as _e,r as ve,s as ye,u as be}from"./app-update-DppJNspd.js";import{t as R}from"./circle-check-iEdCm3Pw.js";import{t as z}from"./folder-open-FIShC5Qk.js";import{t as xe}from"./info-DATxy0fb.js";import{t as Se}from"./message-square-SKjZyY3v.js";import{i as Ce,n as we,r as Te}from"./web-preview-CQbpHjt1.js";import{t as Ee}from"./WorkbenchSidebarToggle-AgjfcT29.js";import{t as De}from"./plug-BsIeHRwC.js";import{t as Oe}from"./refresh-cw-TbWxTY4K.js";import{t as ke}from"./search-D0mqDaf_.js";import{t as Ae}from"./server-BgNvmqwJ.js";import{t as je}from"./sparkles-S_eeuqn9.js";import{t as Me}from"./triangle-alert-CE1q54ci.js";import{t as Ne}from"./workflow-Bg94dy8I.js";import{t as Pe}from"./x-07u4-129.js";import{r as Fe}from"./use-mobile-YXncArOq.js";import{r as Ie}from"./http-DphgzWtw.js";import{t as Le}from"./api-Dzobr-o_.js";import{n as Re,t as ze}from"./client-store-DPMvgPNS.js";import{t as B}from"./button-CQA36izu.js";import{n as Be,t as Ve}from"./useQuery-DdcpUQhO.js";import{a as He,i as Ue,n as We,o as Ge,r as Ke,t as qe}from"./startup-queries-CAQZvUIR.js";import{t as Je}from"./chat-api-DfnvubiW.js";import{i as Ye,r as Xe,s as Ze,t as V}from"./dialog-D-ER2p-D.js";import{t as Qe}from"./input-CvjGYteF.js";import{r as H}from"./app-primitives-BBXY6U2S.js";import{o as U}from"./shortcuts-BO-h6OmP.js";import{a as $e,n as et,r as tt,t as nt}from"./sidebar-CfWEKOIK.js";import{r as W}from"./ui-store-2wpnH8Kf.js";import{m as rt,n as it,p as at,t as ot}from"./events-Bwv6HmwM.js";import{t as st}from"./route-context-DvWDul4T.js";import{a as ct,i as lt,n as ut,r as dt,t as ft}from"./runtime-capabilities-store-DaWPY5y-.js";import{t as G}from"./brand-DIEc3fK8.js";import{a as pt,i as mt,o as ht,r as K}from"./web-preview-events-o845ErdA.js";import{i as gt}from"./browser-notifications-DBS0oXqN.js";import{a as _t,i as vt,n as q,r as yt,t as bt}from"./routes-C4kwUiVG.js";var J=e(p());function xt({i18n:e,defaultNS:t,children:n}){let r=(0,J.useMemo)(()=>({i18n:e,defaultNS:t}),[e,t]);return(0,J.createElement)(te.Provider,{value:r},n)}var St=e(m(),1),Y=h(),Ct=Object.defineProperty,X=(e,t)=>Ct(e,`name`,{value:t,configurable:!0}),Z=`ToastProvider`,[wt,Q,Tt]=oe(`Toast`),[Et,Dt]=re(`Toast`,[Tt]),[Ot,kt]=Et(Z),At=X(e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,announcerContainer:o,children:s}=e,[c,l]=J.useState(null),[u,d]=J.useState(0),f=J.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${Z}\`. Expected non-empty \`string\`.`),(0,Y.jsx)(wt.Provider,{scope:t,children:(0,Y.jsx)(Ot,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:u,viewport:c,onViewportChange:l,onToastAdd:J.useCallback(()=>d(e=>e+1),[]),onToastRemove:J.useCallback(()=>d(e=>e-1),[]),isClosePausedRef:f,announcerContainer:o,children:s})})},`ToastProvider`),jt=`ToastViewport`,Mt=[`F8`],Nt=`toast.viewportPause`,Pt=`toast.viewportResume`,Ft=J.forwardRef(X(function(e,t){let{__scopeToast:n,hotkey:r=Mt,label:i=`Notifications ({hotkey})`,...a}=e,o=kt(jt,n),s=Q(n),c=J.useRef(null),l=J.useRef(null),u=J.useRef(null),d=J.useRef(null),f=D(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;J.useEffect(()=>{let e=X(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]),J.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=X(()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(Nt);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},`handlePause`),r=X(()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(Pt);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},`handleResume`),i=X(t=>{e.contains(t.relatedTarget)||r()},`handleFocusOutResume`),a=X(()=>{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=J.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...rn(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return J.useEffect(()=>{let e=d.current;if(e){let t=X(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);an(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,Y.jsxs)(ce,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,Y.jsx)(Lt,{ref:l,onFocusFromOutsideViewport:()=>{an(h({tabbingDirection:`forwards`}))}}),(0,Y.jsx)(wt.Slot,{scope:n,children:(0,Y.jsx)(k.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,Y.jsx)(Lt,{ref:u,onFocusFromOutsideViewport:()=>{an(h({tabbingDirection:`backwards`}))}})]})},`ToastViewport`)),It=`ToastFocusProxy`,Lt=J.forwardRef(X(function(e,t){let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=kt(It,n);return(0,Y.jsx)(ae,{tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})},`ToastFocusProxy`)),Rt=`Toast`,zt=`toast.swipeStart`,Bt=`toast.swipeMove`,Vt=`toast.swipeCancel`,Ht=`toast.swipeEnd`,Ut=J.forwardRef(X(function(e,t){let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s,c]=A({prop:r,defaultProp:i??!0,onChange:a,caller:Rt});return(0,Y.jsx)(ne,{present:n||s,children:(0,Y.jsx)(Kt,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:ie(e.onPause),onResume:ie(e.onResume),onSwipeStart:M(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:M(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:M(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:M(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`)),[Wt,Gt]=Et(Rt,{onClose(){}}),Kt=J.forwardRef(X(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=kt(Rt,n),g=Q(n),[_,v]=J.useState(null),y=D(t,v),b=J.useRef(null),x=J.useRef(null),S=i||h.duration,ee=J.useRef(0),C=J.useRef(S),w=J.useRef(0),{onToastAdd:te,onToastRemove:T}=h,E=ie(()=>{_?.contains(document.activeElement)&&h.viewport?.focus(),o()}),O=J.useCallback(e=>{!e||e===1/0||(window.clearTimeout(w.current),ee.current=new Date().getTime(),w.current=window.setTimeout(E,e))},[E]);J.useEffect(()=>{let e=h.viewport;if(e){let t=X(()=>{O(C.current),l?.()},`handleResume`),n=X(()=>{let e=new Date().getTime()-ee.current;C.current-=e,window.clearTimeout(w.current),c?.()},`handlePause`);return e.addEventListener(Nt,n),e.addEventListener(Pt,t),()=>{e.removeEventListener(Nt,n),e.removeEventListener(Pt,t)}}},[h.viewport,S,c,l,O]),J.useEffect(()=>{a&&!h.isClosePausedRef.current&&O(S)},[a,S,h.isClosePausedRef,O]),J.useEffect(()=>()=>{window.clearTimeout(w.current)},[]),J.useEffect(()=>(te(),()=>T()),[te,T]);let A=J.useMemo(()=>_?Qt(_):null,[_]);return h.viewport?(0,Y.jsxs)(Y.Fragment,{children:[A&&(0,Y.jsx)(qt,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,children:A}),(0,Y.jsx)(Wt,{scope:n,onClose:E,children:St.createPortal((0,Y.jsx)(wt.ItemSlot,{scope:n,children:(0,Y.jsx)(N,{asChild:!0,onEscapeKeyDown:M(s,e=>{g().some(t=>t.ref.current?.contains(e.target))||E()}),children:(0,Y.jsx)(k.li,{tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:y,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:M(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||E())}),onPointerDown:M(e.onPointerDown,e=>{e.button===0&&(b.current={x:e.clientX,y:e.clientY})}),onPointerMove:M(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,$t(Bt,d,f,{discrete:!1})):en(l,h.swipeDirection,c)?(x.current=l,$t(zt,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(b.current=null)}),onPointerUp:M(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};en(t,h.swipeDirection,h.swipeThreshold)?$t(Ht,p,r,{discrete:!0}):$t(Vt,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null},`ToastImpl`)),qt=X(e=>{let{__scopeToast:t,children:n,...r}=e,i=kt(Rt,t),[a,o]=J.useState(!1),[s,c]=J.useState(!1);return tn(()=>o(!0)),J.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,Y.jsx)(se,{asChild:!0,container:i.announcerContainer||void 0,children:(0,Y.jsx)(ae,{...r,children:a&&(0,Y.jsxs)(Y.Fragment,{children:[i.label,` `,n]})})})},`ToastAnnounce`),Jt=J.forwardRef(X(function(e,t){let{__scopeToast:n,...r}=e;return(0,Y.jsx)(k.div,{...r,ref:t})},`ToastDescription`)),Yt=`ToastClose`,Xt=J.forwardRef(X(function(e,t){let{__scopeToast:n,...r}=e,i=Gt(Yt,n);return(0,Y.jsx)(Zt,{asChild:!0,children:(0,Y.jsx)(k.button,{type:`button`,...r,ref:t,onClick:M(e.onClick,i.onClose)})})},`ToastClose`)),Zt=J.forwardRef(X(function(e,t){let{__scopeToast:n,altText:r,...i}=e;return(0,Y.jsx)(k.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})},`ToastAnnounceExclude`));function Qt(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),nn(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(...Qt(e))}}}),t}X(Qt,`getAnnounceTextContent`);function $t(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?j(i,a):i.dispatchEvent(a)}X($t,`handleAndDispatchCustomEvent`);var en=X((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 tn(e=()=>{}){let t=ie(e);O(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}X(tn,`useNextFrame`);function nn(e){return e.nodeType===e.ELEMENT_NODE}X(nn,`isHTMLElement`);function rn(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:X(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}X(rn,`getTabbableCandidates`);function an(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}X(an,`focusFirst`);var on=At,sn=Ft,cn=Ut,ln=Jt,un=Xt,dn=I(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`path`,{d:`M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338`,key:`7hb8p4`}],[`path`,{d:`M3 9h5.859`,key:`numkqi`}],[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),fn=I(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),pn=I(`message-circle-plus`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]),mn=I(`radio-tower`,[[`path`,{d:`M4.9 16.1C1 12.2 1 5.8 4.9 1.9`,key:`s0qx1y`}],[`path`,{d:`M7.8 4.7a6.14 6.14 0 0 0-.8 7.5`,key:`1idnkw`}],[`circle`,{cx:`12`,cy:`9`,r:`2`,key:`1092wv`}],[`path`,{d:`M16.2 4.8c2 2 2.26 5.11.8 7.47`,key:`ojru2q`}],[`path`,{d:`M19.1 1.9a9.96 9.96 0 0 1 0 14.1`,key:`rhi7fg`}],[`path`,{d:`M9.5 18h5`,key:`mfy3pd`}],[`path`,{d:`m8 22 4-11 4 11`,key:`25yftu`}]]),hn=g();function gn({children:e}){let{i18n:t}=w(),n=y(t.resolvedLanguage)?t.resolvedLanguage:C;return(0,J.useEffect)(()=>{document.documentElement.lang=n;try{f.setItem(E.language,n)}catch{}window.pisperDesktop?.setLanguage?.(n)},[n]),e}function _n({children:e}){return(0,Y.jsx)(xt,{i18n:ee,children:(0,Y.jsx)(gn,{children:e})})}function vn({children:e}){return(0,J.useEffect)(()=>We(window),[]),(0,Y.jsx)(Be,{client:Ue,children:(0,Y.jsx)(_n,{children:(0,Y.jsx)(le,{delayDuration:300,children:e})})})}function yn(){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}}}function bn(e=e=>e,t=ut){let n=[[`chat`,e(`navigation:navigation.chat`),Se],[`assets`,e(`navigation:navigation.assets`),z],[`workflows`,e(`navigation:navigation.workflows`),Ne],[`schedules`,e(`navigation:navigation.schedules`),dn]];return[[e(`navigation:navigation.app`),n.filter(([e])=>ct(t,e))]]}function xn(e=e=>e){return{chat:[e(`navigation:navigation.chat`),e(`navigation:navigation.chatDescription`)],chatHistory:[e(`navigation:navigation.chatHistory`),e(`navigation:navigation.chatHistoryDescription`)],assets:[e(`navigation:navigation.assets`),e(`navigation:navigation.assetsDescription`)],channels:[e(`navigation:navigation.channels`),e(`navigation:navigation.channelsDescription`)],schedules:[e(`navigation:navigation.schedules`),e(`navigation:navigation.schedulesDescription`)],config:[e(`navigation:navigation.settings`),e(`navigation:navigation.settingsDescription`)],plugins:[e(`navigation:navigation.plugins`),e(`navigation:navigation.pluginsDescription`)],memory:[e(`navigation:navigation.memory`),e(`navigation:navigation.memoryDescription`)],mcp:[e(`navigation:navigation.mcp`),e(`navigation:navigation.mcpDescription`)],skills:[e(`navigation:navigation.skills`),e(`navigation:navigation.skillsDescription`)],components:[e(`navigation:navigation.components`),e(`navigation:navigation.componentsDescription`)],decisions:[e(`navigation:navigation.decisions`),e(`navigation:navigation.decisionsDescription`)],workflows:[e(`navigation:navigation.workflows`),e(`navigation:navigation.workflowsDescription`)],gameAssetWorkbench:[e(`navigation:navigation.gameAssetWorkbench`),e(`navigation:navigation.gameAssetWorkbenchDescription`)],customComponentTool:[e(`navigation:navigation.components`),e(`navigation:navigation.componentsDescription`)],workflowCreate:[e(`navigation:navigation.newWorkflow`),e(`navigation:navigation.newWorkflowDescription`)]}}var Sn=new Set([`models`,`notifications`,`interface`,`shortcuts`,`desktop-pet`,`updates`,`remote-access`,`mobile-server`,`about`]),Cn=new Set([`config`,`channels`,`plugins`,`memory`,`mcp`,`skills`,`decisions`]);function wn(e,{mobileApp:t=!1,capabilities:n=ut}={}){let r=t?[{key:`config:mobile-server`,label:e(`config:configPage.mobileServer`),icon:be,destination:{type:`config`,id:`mobile-server`}}]:[{key:`config:remote-access`,label:e(`config:configPage.remoteAccess`),icon:be,destination:{type:`config`,id:`remote-access`}}];return[{label:e(`config:settingsShell.agent`),items:[{key:`config:models`,label:e(`config:configPage.models`),icon:fe,destination:{type:`config`,id:`models`}}]},{label:e(`config:settingsShell.agentCapabilities`),items:[{key:`page:plugins`,label:e(`navigation:navigation.plugins`),icon:De,destination:{type:`page`,id:`plugins`}},{key:`page:mcp`,label:e(`navigation:navigation.mcp`),icon:Ae,destination:{type:`page`,id:`mcp`}},{key:`page:skills`,label:e(`navigation:navigation.skills`),icon:je,destination:{type:`page`,id:`skills`}},{key:`page:decisions`,label:e(`navigation:navigation.decisions`),icon:L,destination:{type:`page`,id:`decisions`}}]},{label:e(`config:settingsShell.contextAndData`),items:[{key:`page:memory`,label:e(`navigation:navigation.memory`),icon:ge,destination:{type:`page`,id:`memory`}}]},{label:e(`config:settingsShell.connections`),items:[{key:`page:channels`,label:e(`navigation:navigation.channels`),icon:mn,destination:{type:`page`,id:`channels`}},...r,{key:`config:notifications`,label:e(`config:configPage.notifications`),icon:ue,destination:{type:`config`,id:`notifications`}}]},{label:e(`config:settingsShell.application`),items:[{key:`config:interface`,label:e(`config:configPage.interface`),icon:Ce,destination:{type:`config`,id:`interface`}},{key:`config:shortcuts`,label:e(`config:configPage.shortcuts`),icon:he,destination:{type:`config`,id:`shortcuts`}},{key:`config:desktop-pet`,label:e(`config:configPage.desktopPet`),icon:fe,destination:{type:`config`,id:`desktop-pet`}},{key:`config:updates`,label:e(`config:configPage.appUpdates`),icon:Oe,destination:{type:`config`,id:`updates`}},{key:`config:about`,label:e(`config:configPage.about`),icon:xe,destination:{type:`config`,id:`about`}}]}].map(e=>({...e,items:e.items.filter(e=>e.destination.type===`config`?dt(n,e.destination.id):ct(n,e.destination.id))})).filter(e=>e.items.length>0)}function Tn(e,t){return e===`config`?`config:${t}`:`page:${e}`}var En=`pisper-custom-accent-style`;function Dn(e,t,n=new Date().getHours()){return e===`dark`?!0:e===`light`?!1:e===`system`?t:n>=18||n<8}function On(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=e.accent===`custom`?me(e.customAccent||``):null,r=document.getElementById(En);n?(r||(r=document.createElement(`style`),r.id=En,document.head.append(r)),r.textContent=ye(n)):r?.remove()}function kn(){let e=l(),t=n();return(0,J.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=we({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});i&&(n.preventDefault(),n.stopPropagation(),K(i),e.pathname!==_t(`chat`)&&t(_t(`chat`)))};return document.addEventListener(`click`,n,!0),()=>document.removeEventListener(`click`,n,!0)},[e.pathname,t]),null}var An=(0,J.lazy)(()=>s(()=>import(`./SidebarSettingsButton-B4_vEBS5.js`).then(e=>({default:e.SidebarSettingsButton})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),jn=(0,J.lazy)(()=>s(()=>import(`./SidebarMoreTools-BDqt5VTG.js`),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,17,15,18,19,20,21,22,23,10,11,24,13,14]))),Mn=(0,J.lazy)(()=>s(()=>import(`./SidebarRecentSessions-1G_huYu9.js`).then(e=>({default:e.SidebarRecentSessions})),__vite__mapDeps([25,2,6,5,1,7,3,4,8,9,18,15,19,20,21,22,23,10,11,13,26,27,28,29,30,31,32,33,34,35,36,37,38,39,14,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57]))),Nn=(0,J.lazy)(()=>s(()=>import(`./SidebarUpdateStatus-DD8f4Fxv.js`),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,59,13,60,61,62])));function Pn({page:e,configSection:t,navigation:n,installedTools:r,navigate:i,onOpenComponent:a,navigateSettings:o,onNewChat:s,onSearch:c,collapsed:l,update:u,onOpenUpdates:d,requestText:f,requestConfirm:p,notify:m}){let{t:h}=T(),{isMobile:g,setOpenMobile:_}=$e(),v=l&&!g,y=Re(),b=ft(e=>e.capabilities),x=Cn.has(e),S=(0,J.useMemo)(()=>wn(h,{mobileApp:y,capabilities:b}),[b,y,h]),ee=Tn(e,t),C=U(`primaryAction`),w=U(`commandPalette`),te=n.flatMap(([,e])=>e),E=[`workflows`,`assets`].flatMap(e=>te.filter(([t])=>t===e)),D=[...te.filter(([e])=>![`chat`,`workflows`,`assets`].includes(e)),...r.map(({id:e,name:t})=>[`component:${e}`,t,de])],O=pt(),k=e=>{e(),g&&_(!1)},A=()=>{if(!O.active){k(()=>i(`assets`));return}if(O.mode===`phone`&&O.pane===`context`&&O.tab===`assets`){O.setPane(`chat`);return}O.openContext(`assets`)},j=F(`w-full gap-2 rounded-lg text-sm font-normal text-foreground shadow-none hover:bg-sidebar-accent`,v?`h-11 justify-center px-0`:`h-8 justify-start px-2.5`),M=v?`sr-only`:`truncate`;return(0,Y.jsx)(nt,{collapsible:`icon`,className:`pisper-sidebar-container border-0`,children:(0,Y.jsxs)(`aside`,{className:`sidebar flex h-full w-full min-w-0 flex-col bg-sidebar text-foreground`,id:`workbench-sidebar`,"data-testid":`workbench-sidebar`,children:[(0,Y.jsx)(`div`,{className:F(`flex h-12 shrink-0 items-center gap-2 px-3`,v?`justify-center`:`justify-between`),"data-window-drag-region":!0,children:(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(Te,{className:`size-6`,size:24}),(0,Y.jsx)(`span`,{className:F(v?`sr-only`:`truncate`,`text-sm font-semibold`),children:G})]})}),x?(0,Y.jsxs)(`nav`,{className:`min-h-0 flex-1 overflow-y-auto px-2 pb-4 pt-3`,"aria-label":h(`config:settingsShell.settingsNavigation`),children:[(0,Y.jsxs)(B,{variant:`ghost`,className:F(j,`mb-5`),onClick:()=>k(()=>i(`chat`)),"data-testid":`workbench-home`,title:v?h(`navigation:workbench.home`):void 0,children:[(0,Y.jsx)(fn,{size:16,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:M,children:h(`navigation:workbench.home`)})]}),S.map(e=>(0,Y.jsxs)(`div`,{className:`mb-5 flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:v?`sr-only`:`px-2.5 pb-1.5 text-[12px] text-muted-foreground`,children:e.label}),e.items.map(e=>(0,Y.jsxs)(B,{variant:`ghost`,className:F(j,ee===e.key&&`bg-sidebar-accent`),"aria-current":ee===e.key?`page`:void 0,onClick:()=>k(()=>o(e.destination)),title:v?e.label:void 0,children:[(0,Y.jsx)(e.icon,{size:16}),(0,Y.jsx)(`span`,{className:M,children:e.label})]},e.key))]},e.label))]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`nav`,{className:`flex min-h-0 flex-col gap-1 overflow-y-auto px-2 py-3`,"aria-label":h(`navigation:appSidebar.mainNavigation`),children:[(0,Y.jsxs)(B,{variant:`ghost`,className:F(j,e===`chat`&&`bg-sidebar-accent`),"aria-current":e===`chat`?`page`:void 0,onClick:()=>k(()=>i(`chat`)),"data-testid":`workbench-home`,title:v?h(`navigation:workbench.home`):void 0,children:[(0,Y.jsx)(fn,{size:16,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:M,children:h(`navigation:workbench.home`)})]}),(0,Y.jsxs)(B,{variant:`ghost`,className:j,onClick:()=>k(s),"data-testid":`workbench-new-task`,title:v?h(`navigation:workbench.newTask`):void 0,children:[(0,Y.jsx)(pn,{size:16}),(0,Y.jsx)(`span`,{className:M,children:h(`navigation:workbench.newTask`)}),(0,Y.jsx)(`kbd`,{className:F(`ml-auto text-[10px] font-normal text-muted-foreground/60`,v&&`hidden`),children:C})]}),(0,Y.jsxs)(B,{variant:`ghost`,className:j,onClick:()=>k(c),title:v?h(`navigation:workbench.search`):void 0,children:[(0,Y.jsx)(ke,{size:16}),(0,Y.jsx)(`span`,{className:M,children:h(`navigation:workbench.search`)}),(0,Y.jsx)(`kbd`,{className:F(`ml-auto text-[10px] font-normal text-muted-foreground/60`,v&&`hidden`),children:w})]}),E.map(([t,n,r])=>{let a=t===`assets`&&O.active&&O.tab===`assets`&&(O.mode===`pad`||O.pane===`context`),o=t===`assets`&&a||e===t;return(0,Y.jsxs)(B,{variant:`ghost`,className:F(j,o&&`bg-sidebar-accent`),"aria-current":o?`page`:void 0,onClick:()=>t===`assets`?A():k(()=>i(t)),title:v?n:void 0,children:[(0,Y.jsx)(r,{size:16}),(0,Y.jsx)(`span`,{className:M,children:n})]},t)}),D.length>0&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(jn,{items:D,buttonClassName:j,compact:v,onNavigate:e=>k(()=>e.startsWith(`component:`)?a(e.slice(10)):i(e))})})]}),(0,Y.jsx)(`div`,{className:F(`min-h-0 flex-1 flex-col`,v?`hidden`:`flex`),children:(0,Y.jsx)(J.Suspense,{fallback:(0,Y.jsx)(`div`,{className:`mx-2 h-20 animate-pulse rounded-lg bg-sidebar-accent`}),children:(0,Y.jsx)(Mn,{navigate:i,requestText:f,requestConfirm:p,notify:m})})})]}),(0,Y.jsxs)(`footer`,{className:F(`mt-auto flex shrink-0 flex-col gap-2 pb-3 pt-2`,v?`px-2`:`px-3`),children:[u.status&&[`available`,`downloading`,`downloaded`].includes(u.status.state)&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(Nn,{update:u,collapsed:v,onOpen:d})}),(0,Y.jsxs)(`div`,{className:F(`flex items-center`,v?`flex-col gap-1`:`gap-2`),children:[(0,Y.jsx)(`div`,{className:F(`min-w-0`,v?`w-full`:`flex-1`),children:(0,Y.jsx)(J.Suspense,{fallback:(0,Y.jsx)(`div`,{className:`h-11`,"aria-busy":`true`}),children:(0,Y.jsx)(An,{active:x,compact:v,onOpen:()=>k(()=>o({type:`config`,id:`models`}))})})}),(0,Y.jsx)(Ee,{inSidebar:!0})]})]})]})})}function Fn({page:e,configSection:t,mobileApp:n,onNavigate:r}){let{t:i}=T(),a=Tn(e,t),o=(0,J.useRef)(null),s=ft(e=>e.capabilities),c=(0,J.useMemo)(()=>wn(i,{mobileApp:n,capabilities:s}).flatMap(e=>e.items).filter(e=>e.destination.type!==`config`||e.destination.id!==`desktop-pet`),[s,n,i]);return(0,J.useEffect)(()=>{o.current?.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})},[a]),(0,Y.jsx)(`nav`,{"aria-label":i(`config:settingsShell.settingsNavigation`),className:`flex flex-none gap-2 overflow-x-auto px-4 pb-3 pt-1 [-ms-overflow-style:none] [scrollbar-width:none] max-[650px]:px-2 [&::-webkit-scrollbar]:hidden`,"data-mobile-navigation":`settings`,children:c.map(e=>{let t=a===e.key,n=e.icon;return(0,Y.jsxs)(`button`,{"aria-current":t?`page`:void 0,className:F(`flex flex-none items-center gap-1.5 rounded-full border px-3 py-1.5 text-[12px] font-medium transition-colors`,t?`border-[var(--star-strong)] bg-[var(--star-soft)] text-[var(--star-strong)]`:`border-[var(--border)] text-[var(--text-muted)] hover:text-[var(--text)]`),onClick:()=>r(e.destination),ref:t?o:void 0,children:[(0,Y.jsx)(n,{"aria-hidden":`true`,size:14}),(0,Y.jsx)(`span`,{children:e.label})]},e.key)})})}function In({dialog:e,onClose:t,onFinish:n}){let{t:r}=T(),[i,a]=(0,J.useState)(e?.value||``),o=(0,J.useRef)(null);return(0,J.useEffect)(()=>{a(e?.value||``)},[e]),(0,Y.jsx)(V,{open:!!e,onOpenChange:e=>!e&&t(),children:e&&(0,Y.jsx)(Xe,{showCloseButton:!1,className:`max-w-[430px] gap-0 rounded-dialog border border-surface-highlight bg-popover p-[18px] text-popover-foreground shadow-dialog ring-0`,onOpenAutoFocus:t=>{e.type===`prompt`&&(t.preventDefault(),o.current?.focus(),o.current?.select())},children:(0,Y.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),e&&n(e.type!==`prompt`||i.trim())},children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(Ze,{className:`text-[17px] leading-6 font-bold tracking-[0]`,children:e.title}),(0,Y.jsx)(Ye,{className:e.message?`mt-1.5 text-[13px] leading-5 text-content-muted`:`sr-only`,children:e.message||e.title})]}),(0,Y.jsx)(B,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":r(`common:ui.closeDialog`),title:r(`common:ui.closeDialog`),className:`size-8 shrink-0 text-content-muted`,onClick:t,children:(0,Y.jsx)(Pe,{className:`size-[18px]`})})]}),e.type===`prompt`&&(0,Y.jsxs)(P,{className:`mt-4 block text-[12px] leading-5 font-semibold text-content-soft`,children:[e.inputLabel||r(`common:ui.name`),(0,Y.jsx)(Qe,{ref:o,className:`mt-2 h-10 rounded-lg border-border bg-background px-3 text-[13px]`,value:i,placeholder:e.placeholder,maxLength:e.maxLength||120,onChange:e=>a(e.target.value)})]}),(0,Y.jsxs)(`div`,{className:`mt-[18px] flex justify-end gap-2`,children:[(0,Y.jsx)(B,{type:`button`,variant:`secondary`,onClick:t,children:r(`common:ui.cancel`)}),(0,Y.jsx)(B,{type:`submit`,variant:e.tone===`danger`?`destructive`:`default`,className:e.tone===`danger`?void 0:`text-primary-foreground`,disabled:e.type===`prompt`&&!i.trim(),children:e.confirmLabel||r(`common:ui.confirm`)})]})]})})})}var Ln=_(`group pointer-events-auto relative flex min-h-11 w-full items-center gap-2 overflow-hidden rounded-surface border px-3.5 py-2.5 pr-10 text-[13px] leading-5 font-semibold tracking-[0] shadow-floating 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-border bg-surface-muted text-content-soft`}},defaultVariants:{tone:`success`}});function Rn({className:e,tone:t,...n}){return(0,Y.jsx)(cn,{"data-slot":`toast`,className:F(Ln({tone:t}),e),...n})}function zn({...e}){return(0,Y.jsx)(on,{"data-slot":`toast-provider`,...e})}function Bn({className:e,...t}){return(0,Y.jsx)(sn,{"data-slot":`toast-viewport`,className:F(`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 Vn({className:e,...t}){return(0,Y.jsx)(ln,{"data-slot":`toast-description`,className:F(`min-w-0 flex-1 [overflow-wrap:anywhere]`,e),...t})}function Hn({className:e,...t}){return(0,Y.jsx)(un,{"data-slot":`toast-close`,className:F(`absolute top-1/2 right-1.5 grid size-7 -translate-y-1/2 place-items-center rounded-md text-current opacity-70 outline-none transition hover:bg-black/5 hover:opacity-100 focus-visible:ring-3 focus-visible:ring-ring/50 dark:hover:bg-white/10`,e),...t})}var Un={success:R,error:Me,info:xe};function Wn({message:e,tone:t,closeLabel:n,...r}){let i=Un[t];return(0,Y.jsxs)(Rn,{tone:t,type:t===`error`?`foreground`:`background`,...r,children:[(0,Y.jsx)(i,{className:`size-[18px] shrink-0`}),(0,Y.jsx)(Vn,{children:e}),(0,Y.jsx)(Hn,{"aria-label":n,title:n,children:(0,Y.jsx)(Pe,{className:`size-4`})})]})}function Gn(){let{t:e}=T(),[t,n]=(0,J.useState)(null),r=(0,J.useRef)(null),i=(0,J.useCallback)(e=>{r.current?.(e),r.current=null,n(null)},[]),a=(0,J.useCallback)(e=>new Promise(t=>{r.current?.(null),r.current=t,n(e)}),[]),o=(0,J.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,J.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,J.useCallback)(()=>i(null),[i]);return(0,J.useEffect)(()=>()=>r.current?.(null),[]),{dialog:t,confirm:o,prompt:s,close:c,finish:i}}var Kn=15e3,qn=216e5,Jn=new Set([`checking`,`downloading`,`downloaded`]);function Yn(e){return!Jn.has(e)}function Xn(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,Kn),o=t.setInterval(i,qn);return()=>{r=!0,t.clearTimeout(a),t.clearInterval(o)}}var Zn=new Set([`available`,`downloading`,`installed`,`error`]);function Qn(e,t){return t?.find(e=>e.component===`desktop`)?.currentVersion.trim()||e}function $n(e){return e.filter(e=>e.size>0&&(Zn.has(e.state)||e.canInstall))}function er(e){return e.replace(/\r/g,``).split(`
|
|
3
3
|
`).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(`
|
|
4
4
|
`).replace(/\n{3,}/g,`
|
|
5
5
|
|
|
6
6
|
`).trim()}function tr(e){let t=e.filter(e=>e.state===`available`||e.state===`downloading`).map(e=>er(e.notes)).filter((e,t,n)=>e&&n.indexOf(e)===t);return t.length?`## What's Changed\n\n${t.join(`
|
|
7
7
|
|
|
8
8
|
`)}`:``}function nr(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=tr(e),l=$n(e),u=l.reduce((e,t)=>e+t.size,0),d=l.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:n.map(e=>`${e.component}: ${e.message}`).join(`
|
|
9
|
-
`),releaseUrl:s?.releaseUrl,canDownload:r.length>0,availableVersion:s?.availableVersion,notes:c,total:u,transferred:d,percent:u>0?Math.min(100,d/u*100):0}}async function rr({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 ir=Object.freeze({desktop:!1,packaged:!1,version:`0.6.1`,platform:`browser`,arch:``,releasesUrl:_e});function ar(){let e=window.pisperDesktop,t=e?void 0:window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke,[n,r]=(0,J.useState)(ir),[i,a]=(0,J.useState)({state:`idle`,checkedAt:null}),[o,s]=(0,J.useState)([]),c=(0,J.useRef)(i),l=(0,J.useRef)(null),u=(0,J.useRef)(!1),d=(0,J.useRef)(!1),f=(0,J.useCallback)(e=>{c.current=e,a(e)},[]),p=(0,J.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=nr(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 rr({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,J.useEffect)(()=>{let n=!0,i=()=>{},a=()=>{},o=()=>{i=Xn(()=>{if(Yn(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`&&Yn(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(nr(e)))}).catch(()=>{}),t.packaged&&o())}).catch(()=>{}),()=>{n=!1,i()}},[f,e,p,t]);let m=(0,J.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=nr(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(nr(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,J.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,J.useCallback)(()=>e?.openUpdateLog?.(),[e]),_=(0,J.useCallback)(()=>d.current&&t&&i.downloadUrl?t(`mobile_open_app_update`,{url:i.downloadUrl}):h(),[t,h,i.downloadUrl]),v=(0,J.useCallback)(()=>_(),[_]);return{info:(0,J.useMemo)(()=>({...n,version:n.desktop?Qn(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 or(e){return!!e.providers?.some(e=>e.configured&&e.models?.some(e=>e.kind===`chat`))}function sr(e,t){return!t&&!or(e)}function cr(){try{return JSON.parse(f.getItem(E.terminalPanel)||`{}`)}catch{return{}}}var lr=(0,J.lazy)(()=>s(()=>import(`./DesktopWindowControls-DYmSShHE.js`).then(e=>({default:e.DesktopWindowControls})),__vite__mapDeps([63,2,1,3,4,5,6,7,8,9,64,13,65,54]))),ur=(0,J.lazy)(()=>s(()=>import(`./AppShortcuts-CtNLVerh.js`).then(e=>({default:e.AppShortcuts})),__vite__mapDeps([66,2,1,67,6,5,7,9,8]))),dr=(0,J.lazy)(async()=>{let[{FloatingWidgets:e}]=await Promise.all([s(()=>import(`./FloatingWidgets-CFY30wFr.js`),__vite__mapDeps([68,2,6,5,1,7,3,4,8,9,10,11,69,13,34,54,50,70,37,38,39,14,15,71,72,40,41,73])),b()]);return{default:e}}),fr=(0,J.lazy)(()=>s(()=>import(`./AppOverlays-D-yAp1vf.js`).then(e=>({default:e.CommandPalette})),__vite__mapDeps([74,2,1,3,4,5,6,7,8,9,30,13,31,33,35,75,54,14,11,15,10,40,41,42,37,38,39,43,76,77,53,18,21,51,78,79,46,44,80,81,23,82,20,83]))),pr=(0,J.lazy)(()=>s(()=>import(`./AppOverlays-D-yAp1vf.js`).then(e=>({default:e.QuickCreate})),__vite__mapDeps([74,2,1,3,4,5,6,7,8,9,30,13,31,33,35,75,54,14,11,15,10,40,41,42,37,38,39,43,76,77,53,18,21,51,78,79,46,44,80,81,23,82,20,83]))),mr=(0,J.lazy)(()=>s(()=>import(`./WebDesktopPet-BKP_jSW2.js`).then(e=>({default:e.WebDesktopPet})),__vite__mapDeps([84,2,6,5,1,7,3,4,8,9,37,38,39]))),hr=(0,J.lazy)(()=>s(()=>import(`./public-components-BYWnKxmu.js`).then(e=>({default:e.ConfigSearchBox})),__vite__mapDeps([85,2,1,3,4,5,6,7,8,9,10,11,86,13,87,59,88,35,89,54,14,15,77,53,18,21,51,90]))),gr=(0,J.lazy)(()=>s(()=>import(`./public-components-BYWnKxmu.js`).then(e=>({default:e.ModelOnboardingDialog})),__vite__mapDeps([85,2,1,3,4,5,6,7,8,9,10,11,86,13,87,59,88,35,89,54,14,15,77,53,18,21,51,90]))),_r=(0,J.lazy)(()=>s(()=>import(`./PageHeader-DyoCht8Y.js`).then(e=>({default:e.PageHeader})),__vite__mapDeps([91,1,2,3,4,5,6,7,8,9,10,11,92,13,93,14,15,94,95,96,45,46,18,47,48,21,22,23,49,50,51,52,53,54,97,33,62,98,35,99,65,67]))),vr=(0,J.lazy)(()=>s(()=>import(`./TerminalPanel-gBBjaBlu.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([100,2,1,13,101,64,33,99,54,37,38,5,4,6,7,8,39,14,11,15,10,55,102]))),yr=(0,J.lazy)(()=>s(()=>import(`./MobileThreePane-DjyMuG9k.js`).then(e=>({default:e.MobileThreePane})),__vite__mapDeps([103,2,1,3,4,5,6,7,8,9,10,11,104,13,28,14,15,105])));function br({sessions:e,chat:t}){return(0,Y.jsxs)(Y.Fragment,{children:[e,t]})}var xr=(0,J.lazy)(()=>s(()=>import(`./MobileContextScreen-BEss6aR9.js`).then(e=>({default:e.MobileContextScreen})),__vite__mapDeps([106,2,5,1,3,4,6,7,8,9,10,11,107,13,108,109,99,14,15,110,111,61,112,76,38,39,37,42,41,43,113,114]))),Sr=(0,J.lazy)(()=>s(()=>import(`./MobileViewportStabilizer-OtwVmIPm.js`).then(e=>({default:e.MobileViewportStabilizer})),__vite__mapDeps([115,2,1])));function Cr(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 wr(e){try{return decodeURIComponent(e)}catch{return``}}function Tr(e,t){let n=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return n?n(e,t):Promise.reject(Error(`native bridge unavailable`))}function Er(){let{t:e}=T();(0,J.useEffect)(()=>Ge(`react-app-mounted`),[]);let t=l(),r=n(),a=ft(e=>e.capabilities),o=ft(e=>e.loaded),c=ft(e=>e.load),u=(0,J.useMemo)(()=>bn(e,a),[a,e]),d=(0,J.useMemo)(()=>xn(e),[e]),p=vt(t.pathname)||`chat`,m=(0,J.useRef)(p),[h,g]=(0,J.useState)(``),[_,v]=(0,J.useState)([]);(0,J.useEffect)(()=>{let e=!0;return s(async()=>{let{listCustomUiComponents:e}=await import(`./catalog-BPgyo6Yf.js`);return{listCustomUiComponents:e}},__vite__mapDeps([116,71,2,5,1,6,7,4,8,3,9,10,11,37,38,39,14,15,72,40,41,73])).then(({listCustomUiComponents:e})=>e()).then(({components:t})=>{e&&v(t.filter(e=>!e.builtIn).map(({id:e,name:t})=>({id:e,name:t})))}).catch(()=>{}),()=>{e=!1}},[]);let[y,b]=(0,J.useState)(()=>f.getItem(E.activeSession)||``),x=ze(e=>e.client===`mobile-app`),S=ze(e=>e.loaded),ee=Fe(),C=x||ee,w=C?yr:br,te=C,D=ht(C),[O,k]=(0,J.useState)(`chat`),[A,j]=(0,J.useState)(`assets`),[M,ne]=(0,J.useState)(!1),[re,ie]=(0,J.useState)(null),ae=(0,J.useCallback)(e=>{k(t=>(typeof e==`function`?e(t===`sessions`):e)?`sessions`:t===`sessions`?`chat`:t)},[]),[oe,N]=(0,J.useState)(!1),se=W(e=>e.sidebarCollapsed),ce=W(e=>e.setSidebarCollapsed),P=W(e=>e.theme),le=W(e=>e.cycleTheme),F=W(e=>e.density),I=W(e=>e.accent),ue=W(e=>e.customAccent),de=W(e=>e.fontScale),fe=W(e=>e.radius),me=W(e=>e.motion),[he,ge]=(0,J.useState)(null),[L,_e]=(0,J.useState)(null),[ye,be]=(0,J.useState)(!1),R=p===`config`?wr(t.pathname.split(`/`)[2]||`models`):`models`,z=Sn.has(R)&&dt(a,R)?R:`models`,[xe,Se]=(0,J.useState)(null),Ce=(0,J.useCallback)(()=>Se(null),[]),{data:we,isPending:Ee,isSuccess:De}=Ve(He(`config`)),{data:Oe}=Ve(He(`notification-settings`)),[ke,Ae]=(0,J.useState)(!1),[je,Me]=(0,J.useState)({browser:{enabled:!1},connections:{},scopes:[],templates:[]}),[Ne,Pe]=(0,J.useState)(null),Ie=(0,J.useMemo)(()=>({terminal:e(`terminal:terminalPanel.terminal`),resizeTerminal:e(`terminal:terminalPanel.resizeTerminal`),hideTerminal:e(`terminal:terminalPanel.hideTerminal`),showTerminal:e(`terminal:terminalPanel.showTerminal`),newTerminal:e(`terminal:terminalPanel.newTerminal`),closeTerminal:e(`terminal:terminalPanel.closeTerminal`),maximizeTerminal:e(`terminal:terminalPanel.maximizeTerminal`),openTerminal:e(`terminal:terminalPanel.openTerminal`),usesActiveSessionWorkspace:e(`terminal:terminalPanel.usesActiveSessionWorkspace`),orphanedTerminal:e(`terminal:terminalPanel.orphanedTerminal`),starting:e(`terminal:terminalPanel.starting`),workspaceUnavailable:e(`terminal:terminalPanel.workspaceUnavailable`),processExited:t=>e(`terminal:terminalPanel.processExited`,{code:t??`-`})}),[e]),[Re,B]=(0,J.useState)(()=>!!cr().open),[Be,We]=(0,J.useState)(()=>Math.max(180,Math.min(640,Number(cr().height)||300))),Ye=(0,J.useRef)(O),Xe=(0,J.useRef)(A),Ze=(0,J.useRef)(D);Ye.current=O,Xe.current=A,Ze.current=D;let V=(0,J.useCallback)(()=>{if(Ze.current!==`off`){Ye.current===`context`&&Xe.current===`terminal`?k(`chat`):(j(`terminal`),k(`context`));return}window.pisperDesktop?.terminalProfiles&<(a,`terminal`)&&B(e=>!e)},[a]);(0,J.useEffect)(()=>(window.addEventListener(`pisper:toggle-terminal`,V),()=>window.removeEventListener(`pisper:toggle-terminal`,V)),[V]);let Qe=(0,J.useRef)(``),[H]=(0,J.useState)(yn),U=(0,J.useRef)(null),$e=(0,J.useRef)(null),nt=(0,J.useRef)(null),ut=(0,J.useRef)(0),G=Gn(),pt=ar();(0,J.useEffect)(()=>{On({accent:I,density:F,fontScale:de,motion:me,radius:fe,customAccent:ue})},[I,F,de,me,fe,ue]),(0,J.useEffect)(()=>{f.setItem(E.terminalPanel,JSON.stringify({open:Re,height:Be}))},[Be,Re]),(0,J.useEffect)(()=>{let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>{let t=Dn(P,e.matches);document.documentElement.dataset.theme=t?`dark`:`light`,document.documentElement.classList.toggle(`dark`,t)};if(t(),P===`system`)return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t);if(P===`scheduled`){let e=window.setInterval(t,6e4);return()=>window.clearInterval(e)}},[P]);let K=(0,J.useCallback)((e,t=`success`)=>{ut.current+=1,ge({id:ut.current,message:e,tone:t})},[]);(0,J.useEffect)(()=>{let e=e=>{let t=e.detail?.id;b(t??f.getItem(E.activeSession)??``)};window.addEventListener(ot,e);let t=e=>{let t=e.detail;t?.message&&K(t.message,t.tone===`error`?`error`:`info`)};return window.addEventListener(st,t),ze.getState().load({refresh:!1}).then(()=>Ge(`client-info-loaded`)),c({refresh:!1}).then(()=>Ge(`capabilities-loaded`)),()=>{window.removeEventListener(ot,e),window.removeEventListener(st,t)}},[c,K]);let q=(0,J.useRef)(!1);(0,J.useEffect)(()=>{!S||!x||q.current||(q.current=!0,(async()=>{await Tr(`mobile_ensure_local_network_permission`).catch(()=>void 0)})())},[S,x]);let yt=(0,J.useCallback)((e,t,{force:n=!1}={})=>{if(je.browser?.enabled&&!(!n&&document.visibilityState===`visible`&&document.hasFocus())){if(window.pisperDesktop?.showNotification){window.pisperDesktop.showNotification({title:e,body:t}).catch(()=>{});return}if(ve()){pe(e,t).catch(()=>{});return}gt({title:e,body:t,tag:`pisper-${e}`,url:window.location.href}).catch(()=>{})}},[je.browser?.enabled]),xt=(0,J.useCallback)((e,t,n)=>{let r=je.templates?.find(t=>t.id===e),i=r?.channels?.browser?.content;!r?.enabled||!i||yt(r.name,Cr(i,t||{}),n)},[je.templates,yt]),St=(0,J.useCallback)(e=>H.register(e),[H]),Ct=(0,J.useCallback)(()=>{H.invoke()},[H]),X=(0,J.useCallback)(e=>(Pe(e),()=>Pe(t=>t===e?null:t)),[]),Z=(0,J.useCallback)((e,t)=>{!bt.has(e)||!ct(a,e)||(r(_t(e),t),g(``))},[a,r]),wt=(0,J.useCallback)(()=>{at(``),Z(`chat`)},[Z]);(0,J.useEffect)(()=>{if(o&&!ct(a,p)){r(`/chat`,{replace:!0});return}p===`config`&&R!==z&&r(`/config/${z}`,{replace:!0})},[a,o,z,p,R,r]);let Q=(0,J.useCallback)((e,t)=>{let n=Sn.has(e)&&dt(a,e)?e:`models`,i=n===`interface`&&t&&t!==`appearance`?`?view=${t}`:``;r(`/config/${n}${i}`),g(``)},[a,r]),Tt=(0,J.useCallback)(()=>{try{f.setItem(E.modelOnboardingDismissed,`1`)}catch{}be(!1)},[]),Et=(0,J.useCallback)(()=>{Tt(),H.clear(),H.invoke(),Q(`models`)},[Tt,H,Q]),Dt=(0,J.useCallback)(()=>{Tt(),r(`/config/models?import=1`),g(``)},[Tt,r]),Ot=(0,J.useCallback)(()=>Q(`updates`),[Q]),kt=(0,J.useCallback)(()=>Q(`notifications`),[Q]),At=(0,J.useCallback)(e=>{e.type===`config`?Q(e.id):Z(e.id)},[Z,Q]),jt=(0,J.useCallback)(async e=>e&&(await qe(`sessions`)).sessions?.find(t=>t.id===e)?.cwd||``,[]),Mt=(0,J.useCallback)(e=>{let t=f.getItem(E.activeSession)||``;Se({asset:e,targetSessionId:t}),t&&rt(t),k(`chat`),Z(`chat`)},[Z]),Nt=(0,J.useCallback)(()=>{(p!==`config`||z===`models`)&&([`chat`,`config`,`assets`,`plugins`,`channels`,`schedules`,`memory`,`mcp`,`skills`,`workflowCreate`].includes(p)?Ct():p===`chatHistory`?(Z(`chat`),Ct()):p===`workflows`?Z(`workflowCreate`):_e(p))},[z,Ct,Z,p]);(0,J.useEffect)(()=>{let e=()=>{!G.dialog&&!L&&!ye&&N(!0)},t=e=>{if(!(e.defaultPrevented||e.isComposing||e.keyCode===229)&&e.key===`Escape`&&!G.dialog){oe?N(!1):L?_e(null):C&&O!==`chat`&&k(`chat`);return}};return window.addEventListener(`keydown`,t),window.addEventListener(it,e),()=>{window.removeEventListener(`keydown`,t),window.removeEventListener(it,e)}},[G.dialog,C,L,ye,oe,O]);let Pt=(0,J.useRef)(!1);(0,J.useEffect)(()=>{if(Ee||Pt.current||(Pt.current=!0,Ae(!0),!De||!we))return;Ge(`config-loaded`);let e=!1;try{e=f.getItem(E.modelOnboardingDismissed)===`1`}catch{}m.current!==`config`&&sr(we,e)&&be(!0)},[we,Ee,De]),(0,J.useEffect)(()=>{ke&&o&&p===`chat`&&Ge(`chat-shell-ready`)},[o,p,ke]);let Ft=(0,J.useRef)(p);(0,J.useLayoutEffect)(()=>{Ft.current===`config`&&p!==`config`&&(Ke(`config`),Ke(`notification-settings`)),Ft.current=p},[p]),(0,J.useEffect)(()=>{Oe&&Me(Oe)},[Oe]),(0,J.useEffect)(()=>{let e=!0,t=async()=>{try{let t=Qe.current,n=await Ue.fetchQuery({queryKey:[`browser-notification-events`,t],queryFn:()=>Le(`/api/settings/notifications/browser/events?after=${encodeURIComponent(t)}`),staleTime:0,retry:!1});if(!e)return;for(let e of n.events||[])yt(e.title,e.body,{force:!0});Qe.current=n.latestId||Qe.current}catch{}};t();let n=window.setInterval(t,3e3);return()=>{e=!1,window.clearInterval(n)}},[yt]),(0,J.useEffect)(()=>{C||k(`chat`)},[C]),(0,J.useEffect)(()=>{C&&p!==`chat`&&p!==`assets`&&k(`chat`)},[t.pathname,C,p]),(0,J.useEffect)(()=>{!C||p!==`assets`||(j(`assets`),k(`context`),r(_t(`chat`),{replace:!0}))},[C,p,r]);let It=(0,J.useCallback)(e=>{j(e),k(`context`)},[]),Lt=(0,J.useMemo)(()=>({active:D!==`off`,mode:D,pane:O,tab:A,setPane:k,openContext:It}),[A,It,O,D]),Rt=!!(window.pisperDesktop?.terminalProfiles&<(a,`terminal`)),zt=C&&(D===`pad`||O===`context`);(0,J.useEffect)(()=>{zt&&ne(!0)},[zt]);let Bt=p===`chat`?[e(`common:app.sessions`),C?``:e(`common:app.dragTabsOrSplitChatsInAnyDirectionFromTheSessionList`)]:d[p]||[e(`common:app.sessions`),``],Vt=(0,J.useCallback)(e=>{Ue.cancelQueries({queryKey:[`notification-settings`],exact:!0}),Ue.setQueryData([`notification-settings`],e),Me(e)},[]),Ht={query:h,activeSessionId:y,reportActiveSessionRun:ie,navigate:Z,notify:K,browserNotify:xt,registerPrimaryAction:St,pendingAsset:xe,onAssetConsumed:Ce,onUseAsset:Mt,requestText:G.prompt,requestConfirm:G.confirm,openNotificationSettings:kt,configSection:z,setConfigSection:Q,setNotificationSettings:Vt,appUpdate:pt,registerWorkflowActions:X};return!ke||!o?(0,Y.jsxs)(`div`,{className:`app-startup dark:bg-[var(--bg)] dark:text-[var(--text)] flex w-full min-h-[100vh] items-center justify-center gap-[10px] bg-[var(--bg)] text-[var(--text-muted)] text-[13px]`,children:[(0,Y.jsx)(Te,{size:30,className:`startup-logo [.app-startup_&]:mr-[2px]`}),(0,Y.jsx)(`strong`,{children:e(`common:app.wakingPisper`)})]}):(0,Y.jsx)(zn,{duration:2800,swipeDirection:`right`,children:(0,Y.jsxs)(`div`,{ref:$e,className:`app-shell dark:bg-[var(--bg)] dark:text-[var(--text)] flex w-full h-full min-h-0 flex-col overflow-hidden bg-[var(--bg)] 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-app]]:pb-0`,"data-mobile-app":C||void 0,"data-custom-titlebar":window.pisperDesktop?.customTitlebar||void 0,children:[window.pisperDesktop?.customTitlebar&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(lr,{})}),(0,Y.jsx)(kn,{}),C&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(Sr,{enabled:S&&ke,shellRef:$e})}),lt(a,`desktopPet`)&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(mr,{})}),(0,Y.jsx)(mt,{value:Lt,children:(0,Y.jsxs)(tt,{style:{"--sidebar-width":`264px`},className:`app-body flex min-h-0 flex-1 overflow-hidden`,"data-mobile-app":C||void 0,mobile:C,mobilePresentation:C?`pane`:`sheet`,persistent:D===`pad`,open:!se,onOpenChange:e=>ce(!e),openMobile:O===`sessions`,onOpenMobileChange:ae,children:[(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(ur,{blocked:!!(G.dialog||L||ye||oe),onCommandPalette:()=>N(!0),onPrimary:Nt,onToggleSidebar:()=>{D!==`pad`&&(te?ae(e=>!e):ce(!se))},onSearch:()=>{p===`chat`?(Z(`chatHistory`),requestAnimationFrame(()=>requestAnimationFrame(()=>U.current?.focus()))):U.current?.focus()},onToggleTerminal:D!==`off`||window.pisperDesktop?.terminalProfiles&<(a,`terminal`)?V:void 0,onSettings:()=>Z(`config`)})}),(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(w,{enabled:C,mode:D,pane:O,onPaneChange:k,sessions:(0,Y.jsx)(Pn,{page:p,configSection:z,navigation:u,installedTools:_,navigate:Z,onOpenComponent:e=>r(`/tools/components/${encodeURIComponent(e)}`),navigateSettings:At,collapsed:se,onNewChat:wt,onSearch:()=>N(!0),update:pt,onOpenUpdates:Ot,requestText:G.prompt,requestConfirm:G.confirm,notify:K}),chat:(0,Y.jsxs)(et,{className:`main-surface relative flex h-full min-w-0 flex-1 flex-col overflow-hidden border-0 bg-background`,children:[p!==`chat`&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(_r,{elementRef:nt,meta:Bt,page:p,query:h,setQuery:g,configSection:z,onMenu:()=>ae(!0),onPrimary:Nt,searchSlot:p===`config`?(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(hr,{query:h,onQueryChange:g,onSelect:Q,inputRef:U})}):void 0,searchInputRef:U,theme:P,onCycleTheme:le,workflowActions:Ne,desktopPlatform:window.pisperDesktop?.platform||``,mobileApp:x,terminalOpen:D===`off`?Re:O===`context`&&A===`terminal`,onToggleTerminal:V})}),S&&C&&Cn.has(p)&&(0,Y.jsx)(Fn,{page:p,configSection:z,mobileApp:x,onNavigate:At}),(0,Y.jsx)(`div`,{className:`page-content flex-1 min-h-0 overflow-auto ${p===`chat`?`page-chat flex overflow-hidden p-0`:`page-${p} px-6 pb-5 max-[650px]:px-3`}`,children:(0,Y.jsx)(i,{context:Ht})},p),D===`off`&&window.pisperDesktop?.terminalProfiles&<(a,`terminal`)&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(vr,{open:Re,height:Be,labels:Ie,activeSessionId:y,resolveSessionCwd:jt,onOpenChange:B,onHeightChange:We})})]}),context:C&&(zt||M)?(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(xr,{tab:A,visible:zt,onCloseTerminal:()=>D===`pad`?j(`assets`):k(`chat`),onOpenChat:()=>{Z(`chat`),k(`context`)},sessionStreaming:re?.sessionId===y?re.streaming:null,onTabChange:j,activeSessionId:y,query:h,notify:K,requestConfirm:G.confirm,requestText:G.prompt,onUseAsset:Mt,terminalSupported:Rt,terminalLabels:Ie,resolveSessionCwd:jt})}):null})})]})}),(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(dr,{anchorRef:nt,notify:K})}),he&&(0,Y.jsx)(Wn,{open:!0,message:he.message,tone:he.tone,closeLabel:e(`common:ui.closeDialog`),onOpenChange:e=>!e&&ge(null)},he.id),(0,Y.jsx)(Bn,{hotkey:[],label:e(`common:ui.notifications`)}),(0,Y.jsx)(In,{dialog:G.dialog,onClose:G.close,onFinish:G.finish}),(0,Y.jsx)(J.Suspense,{fallback:null,children:ye&&(0,Y.jsx)(gr,{open:!0,onDismiss:Tt,onOpenImport:Dt,onOpenSettings:Et})}),(0,Y.jsxs)(J.Suspense,{fallback:null,children:[oe&&(0,Y.jsx)(fr,{navigation:u,onClose:()=>N(!1),onNavigate:Z,onOpenSession:async(t,n,r)=>{try{n&&!r&&await Je.navigateSessionTreeTarget(t,n),rt(t,`open`,n),Z(`chat`)}catch(t){throw K(e(`navigation:appOverlays.openLabeledTurnFailed`),`error`),t}},onNewChat:wt}),L&&(0,Y.jsx)(pr,{type:L,close:()=>_e(null),notify:K})]})]})})}function Dr(){let{t:e}=T();return(0,Y.jsxs)(H,{children:[(0,Y.jsx)(Oe,{className:`animate-spin`,size:24}),(0,Y.jsx)(`h2`,{children:e(`navigation:pageLoader.lightingUpThisPage`)}),(0,Y.jsx)(`p`,{children:e(`navigation:pageLoader.bringingTheNeededCapabilitiesIntoPlace`)})]})}async function Or(){window.__PISPER_MOBILE_APP__&&await Ie().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 kr(){let e=r(),t=o(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:`页面加载失败`;return(0,Y.jsxs)(`main`,{className:`app-startup dark:bg-[var(--bg)] dark:text-[var(--text)] flex w-full min-h-[100vh] items-center justify-center gap-[10px] bg-[var(--bg)] text-[var(--text-muted)] text-[13px]`,role:`alert`,children:[(0,Y.jsx)(`strong`,{children:t}),(0,Y.jsx)(B,{variant:`outline`,size:`lg`,className:`bg-surface-subtle`,type:`button`,onClick:()=>void Or(),children:`重新加载`})]})}function $(){return a()}async function Ar(){let{ChatPage:e}=await s(async()=>{let{ChatPage:e}=await import(`./ChatPage-CVOjCtOP.js`);return{ChatPage:e}},__vite__mapDeps([117,2,5,1,6,7,3,4,8,9,10,11,118,119,15,18,120,48,20,21,22,23,13,111,101,50,121,122,82,47,27,87,104,28,123,124,92,93,14,94,59,125,126,127,109,128,129,130,131,108,132,133,30,134,61,34,135,65,75,36,136,112,54,37,38,39,76,42,41,43,114,77,53,51,44,83,55,137,138,139,140,141,142,143,144,145,146,31,96,45,46,49,52,147,32,97,33,35,148,12,149,99,150,151,70,40,80,81,67,152,153,154,56,57,155,156,157,158,105]));function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify,navigate:t.navigate,browserNotify:t.browserNotify,reportActiveSessionRun:t.reportActiveSessionRun,registerPrimaryAction:t.registerPrimaryAction,pendingAsset:t.pendingAsset,onAssetConsumed:t.onAssetConsumed,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function jr(){let{ChatHistoryPage:e}=await s(async()=>{let{ChatHistoryPage:e}=await import(`./ChatHistoryPage-Bpyxsay_.js`);return{ChatHistoryPage:e}},__vite__mapDeps([159,2,6,5,1,7,3,4,8,9,17,15,18,19,20,21,22,23,10,11,13,26,27,28,29,24,31,49,160,32,61,36,50,37,38,39,70,14,40,41,42,43,113,44,80,81,82,83,55,56,161,157,162]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,navigate:t.navigate,notify:t.notify,requestConfirm:t.requestConfirm,requestText:t.requestText})}return{Component:t}}async function Mr(){let{AssetsPage:e}=await s(async()=>{let{AssetsPage:e}=await import(`./AssetsPage-DOzB9Wnk.js`);return{AssetsPage:e}},__vite__mapDeps([163,2,6,5,1,7,3,4,8,9,13,59,60,127,95,147,33,61,36,136,54,37,38,39,14,11,15,10,78,79,18,46,44,80,81,23,82,20,83,161,155,138,139,140,141,142,111,143,114,144,164]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestConfirm:t.requestConfirm,onUse:t.onUseAsset})}return{Component:t}}async function Nr(){let[{ChannelsPage:e}]=await Promise.all([s(()=>import(`./ChannelsPage-DAPrpSTC.js`),__vite__mapDeps([165,2,1,3,4,5,6,7,8,9,87,13,60,166,31,33,61,167,12,135,136,54,37,38,39,14,11,15,10,51,78,79,18,46,44,80,81,23,82,20,83,161,155])),S()]);function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestConfirm:t.requestConfirm})}return{Component:t}}async function Pr(){let{SchedulesPage:e}=await s(async()=>{let{SchedulesPage:e}=await import(`./SchedulesPage-CsJS8r9L.js`);return{SchedulesPage:e}},__vite__mapDeps([168,2,1,3,4,5,6,7,8,9,120,15,18,48,20,21,22,23,10,11,13,111,101,50,169,87,123,109,166,97,33,61,167,36,136,54,37,38,39,14,77,53,78,79,46,44,80,81,82,83,57,161,155]));function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestConfirm:t.requestConfirm,openNotificationSettings:t.openNotificationSettings})}return{Component:t}}async function Fr(){let[{ConfigPage:e},{ChatAppearancePage:t}]=await Promise.all([s(()=>import(`./ConfigPage-sVAdZytK.js`),__vite__mapDeps([170,2,5,1,6,7,4,8,3,9,15,18,20,119,23,17,19,21,22,10,11,79,120,48,13,111,101,50,46,81,171,86,172,169,87,173,29,123,130,131,143,59,174,24,60,175,176,30,31,93,33,61,62,34,98,35,167,89,135,149,177,99,36,136,178,151,54,37,38,39,14,77,53,51,78,44,80,82,83,67,94,155,138,139,140,141,142,114,144,157,90,179])),s(()=>import(`./ChatAppearancePage-Q8jLnp7A.js`),__vite__mapDeps([180,2,5,1,4,6,7,8,3,9,82,11,18,15,20,10]))]);function n(){let n=$();return(0,Y.jsx)(e,{notify:n.notify,registerPrimaryAction:n.registerPrimaryAction,section:n.configSection,onBrowserNotificationChange:n.setNotificationSettings,requestConfirm:n.requestConfirm,update:n.appUpdate,renderInterfaceSettings:e=>(0,Y.jsx)(t,{appearance:e,notify:n.notify})})}return{Component:n}}async function Ir(){let{PluginsPage:e}=await s(async()=>{let{PluginsPage:e}=await import(`./PluginsPage-DjaIps8G.js`);return{PluginsPage:e}},__vite__mapDeps([181,2,1,3,4,5,6,7,8,9,15,18,53,21,120,48,20,22,23,10,11,13,111,101,50,123,174,60,125,182,109,176,30,183,61,35,89,36,136,37,38,39,14,77,54,80,81,82,83,57,155,152,153]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function Lr(){let{MemoryPage:e}=await s(async()=>{let{MemoryPage:e}=await import(`./MemoryPage-DkBjt-3Y.js`);return{MemoryPage:e}},__vite__mapDeps([184,2,1,3,4,5,6,7,8,9,120,15,18,48,20,21,22,23,10,11,13,111,101,50,47,28,182,132,30,32,33,61,36,54,37,38,39,14,78,79,46,80,81,82,83,185,161,155]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestConfirm:t.requestConfirm})}return{Component:t}}async function Rr(){let[{McpPage:e}]=await Promise.all([s(()=>import(`./McpPage-ROftSC8m.js`),__vite__mapDeps([186,2,1,3,4,5,6,7,8,9,81,11,15,18,23,10,129,13,143,88,61,89,36,151,38,39,14,41,40,43,73,77,53,21,54,44,83,155,145,187])),v()]);function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function zr(){let{SkillsPage:e}=await s(async()=>{let{SkillsPage:e}=await import(`./SkillsPage-CX55drgE.js`);return{SkillsPage:e}},__vite__mapDeps([188,2,1,3,4,5,6,7,8,9,13,182,176,61,98,177,36,151,37,38,39,14,11,15,10,80,81,18,23,82,20,83,155]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,activeSessionId:t.activeSessionId,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function Br(){function e(){return(0,Y.jsx)(c,{to:`/config/interface?view=widgets`,replace:!0})}return{Component:e}}async function Vr(){let[{CustomUiToolPage:e}]=await Promise.all([s(()=>import(`./public-CsBeGSro.js`),__vite__mapDeps([189,2,5,1,3,4,6,7,8,9,10,11,13,171,107,61,148,135,38,39,14,15,71,37,72,40,41,73,77,53,18,21,54,80,81,23,82,20,83])),b()]);function t(){let t=$();return(0,Y.jsx)(e,{componentId:`pisper-game-asset-workbench`,notify:t.notify})}return{Component:t}}async function Hr(){let[{CustomUiToolPage:e}]=await Promise.all([s(()=>import(`./public-CsBeGSro.js`),__vite__mapDeps([189,2,5,1,3,4,6,7,8,9,10,11,13,171,107,61,148,135,38,39,14,15,71,37,72,40,41,73,77,53,18,21,54,80,81,23,82,20,83])),b()]);function t(){let t=$(),{componentId:n=``}=d();return(0,Y.jsx)(e,{componentId:n,notify:t.notify})}return{Component:t}}async function Ur(){let{DecisionsPage:e}=await s(async()=>{let{DecisionsPage:e}=await import(`./DecisionsPage-zq88dfkB.js`);return{DecisionsPage:e}},__vite__mapDeps([190,2,1,3,4,5,6,7,8,9,119,15,18,79,10,11,120,48,20,21,22,23,13,111,101,50,123,124,175,88,30,61,98,38,39,37,14,51,78,46,80,81,82,83]));function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify})}return{Component:t}}async function Wr(){let[{WorkflowsPage:e}]=await Promise.all([s(()=>import(`./WorkflowsPage-CNVCHm3u.js`),__vite__mapDeps([191,2,5,1,4,6,7,8,3,9,119,15,18,79,10,11,120,48,20,21,22,23,13,111,101,50,121,122,81,82,171,172,169,87,104,28,123,124,131,143,59,182,127,69,176,30,166,160,147,32,97,33,61,62,35,167,89,148,65,36,136,54,38,39,37,14,40,41,77,53,51,78,46,44,83,80,52,155,145,179,192,187,193,194,195])),x()]);function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,requestConfirm:t.requestConfirm})}return{Component:t}}async function Gr(){let[{WorkflowBuilder:e}]=await Promise.all([s(()=>import(`./WorkflowsPage-CNVCHm3u.js`),__vite__mapDeps([191,2,5,1,4,6,7,8,3,9,119,15,18,79,10,11,120,48,20,21,22,23,13,111,101,50,121,122,81,82,171,172,169,87,104,28,123,124,131,143,59,182,127,69,176,30,166,160,147,32,97,33,61,62,35,167,89,148,65,36,136,54,38,39,37,14,40,41,77,53,51,78,46,44,83,80,52,155,145,179,192,187,193,194,195])),x()]);function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,registerWorkflowActions:t.registerWorkflowActions})}return{Component:t}}var Kr=t([{element:(0,Y.jsx)(Er,{}),errorElement:(0,Y.jsx)(kr,{}),hydrateFallbackElement:(0,Y.jsx)(Dr,{}),children:[{index:!0,element:(0,Y.jsx)(c,{to:q.chat,replace:!0})},{path:q.chat,lazy:Ar},{path:q.chatHistory,lazy:jr},{path:q.assets,lazy:Mr},{path:q.channels,lazy:Nr},{path:q.schedules,lazy:Pr},{path:q.config,lazy:Fr},{path:`/config/:configSection`,lazy:Fr},{path:`/config`,element:(0,Y.jsx)(c,{to:q.config,replace:!0})},{path:q.plugins,lazy:Ir},{path:q.memory,lazy:Lr},{path:q.mcp,lazy:Rr},{path:q.skills,lazy:zr},{path:q.components,lazy:Br},{path:`/tools/components/:componentId`,lazy:Hr},{path:q.gameAssetWorkbench,lazy:Vr},{path:q.decisions,lazy:Ur},{path:q.workflows,lazy:Wr},{path:q.workflowCreate,lazy:Gr},{path:`/workflows/:workflowId`,lazy:Gr},{path:`*`,element:(0,Y.jsx)(c,{to:q.chat,replace:!0})}]}]),qr=()=>{document.documentElement.dataset.pageVisibility=document.visibilityState};qr(),document.addEventListener(`visibilitychange`,qr);var Jr=yt(window.location.hash);Jr&&window.history.replaceState(null,``,`${window.location.pathname}${window.location.search}#${Jr}`);var Yr=document.getElementById(`root`);if(!Yr)throw Error(`Missing #root application mount point`);(0,hn.createRoot)(Yr).render((0,Y.jsx)(J.StrictMode,{children:(0,Y.jsx)(vn,{children:(0,Y.jsx)(u,{router:Kr})})}));
|
|
9
|
+
`),releaseUrl:s?.releaseUrl,canDownload:r.length>0,availableVersion:s?.availableVersion,notes:c,total:u,transferred:d,percent:u>0?Math.min(100,d/u*100):0}}async function rr({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 ir=Object.freeze({desktop:!1,packaged:!1,version:`0.6.2`,platform:`browser`,arch:``,releasesUrl:_e});function ar(){let e=window.pisperDesktop,t=e?void 0:window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke,[n,r]=(0,J.useState)(ir),[i,a]=(0,J.useState)({state:`idle`,checkedAt:null}),[o,s]=(0,J.useState)([]),c=(0,J.useRef)(i),l=(0,J.useRef)(null),u=(0,J.useRef)(!1),d=(0,J.useRef)(!1),f=(0,J.useCallback)(e=>{c.current=e,a(e)},[]),p=(0,J.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=nr(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 rr({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,J.useEffect)(()=>{let n=!0,i=()=>{},a=()=>{},o=()=>{i=Xn(()=>{if(Yn(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`&&Yn(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(nr(e)))}).catch(()=>{}),t.packaged&&o())}).catch(()=>{}),()=>{n=!1,i()}},[f,e,p,t]);let m=(0,J.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=nr(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(nr(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,J.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,J.useCallback)(()=>e?.openUpdateLog?.(),[e]),_=(0,J.useCallback)(()=>d.current&&t&&i.downloadUrl?t(`mobile_open_app_update`,{url:i.downloadUrl}):h(),[t,h,i.downloadUrl]),v=(0,J.useCallback)(()=>_(),[_]);return{info:(0,J.useMemo)(()=>({...n,version:n.desktop?Qn(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 or(e){return!!e.providers?.some(e=>e.configured&&e.models?.some(e=>e.kind===`chat`))}function sr(e,t){return!t&&!or(e)}function cr(){try{return JSON.parse(f.getItem(E.terminalPanel)||`{}`)}catch{return{}}}var lr=(0,J.lazy)(()=>s(()=>import(`./DesktopWindowControls-KmgemDO8.js`).then(e=>({default:e.DesktopWindowControls})),__vite__mapDeps([63,2,1,3,4,5,6,7,8,9,64,13,65,54]))),ur=(0,J.lazy)(()=>s(()=>import(`./AppShortcuts-BachmLQ3.js`).then(e=>({default:e.AppShortcuts})),__vite__mapDeps([66,2,1,67,6,5,7,9,8]))),dr=(0,J.lazy)(async()=>{let[{FloatingWidgets:e}]=await Promise.all([s(()=>import(`./FloatingWidgets-Bs7ec6lW.js`),__vite__mapDeps([68,2,6,5,1,7,3,4,8,9,10,11,69,13,34,54,50,70,37,38,39,14,15,71,72,40,41,73])),b()]);return{default:e}}),fr=(0,J.lazy)(()=>s(()=>import(`./AppOverlays-CR5iJcP5.js`).then(e=>({default:e.CommandPalette})),__vite__mapDeps([74,2,1,3,4,5,6,7,8,9,30,13,31,33,35,75,54,14,11,15,10,40,41,42,37,38,39,43,76,77,53,18,21,51,78,79,46,44,80,81,23,82,20,83]))),pr=(0,J.lazy)(()=>s(()=>import(`./AppOverlays-CR5iJcP5.js`).then(e=>({default:e.QuickCreate})),__vite__mapDeps([74,2,1,3,4,5,6,7,8,9,30,13,31,33,35,75,54,14,11,15,10,40,41,42,37,38,39,43,76,77,53,18,21,51,78,79,46,44,80,81,23,82,20,83]))),mr=(0,J.lazy)(()=>s(()=>import(`./WebDesktopPet-DWFspeZE.js`).then(e=>({default:e.WebDesktopPet})),__vite__mapDeps([84,2,6,5,1,7,3,4,8,9,37,38,39]))),hr=(0,J.lazy)(()=>s(()=>import(`./public-components-Ck5BYo6M.js`).then(e=>({default:e.ConfigSearchBox})),__vite__mapDeps([85,2,1,3,4,5,6,7,8,9,10,11,86,13,87,59,88,35,89,54,14,15,77,53,18,21,51,90]))),gr=(0,J.lazy)(()=>s(()=>import(`./public-components-Ck5BYo6M.js`).then(e=>({default:e.ModelOnboardingDialog})),__vite__mapDeps([85,2,1,3,4,5,6,7,8,9,10,11,86,13,87,59,88,35,89,54,14,15,77,53,18,21,51,90]))),_r=(0,J.lazy)(()=>s(()=>import(`./PageHeader-C_bfu8Ir.js`).then(e=>({default:e.PageHeader})),__vite__mapDeps([91,1,2,3,4,5,6,7,8,9,10,11,92,13,93,14,15,94,95,96,45,46,18,47,48,21,22,23,49,50,51,52,53,54,97,33,62,98,35,99,65,67]))),vr=(0,J.lazy)(()=>s(()=>import(`./TerminalPanel-DVKC4htc.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([100,2,1,13,101,64,33,99,54,37,38,5,4,6,7,8,39,14,11,15,10,55,102]))),yr=(0,J.lazy)(()=>s(()=>import(`./MobileThreePane-DEKMHPfN.js`).then(e=>({default:e.MobileThreePane})),__vite__mapDeps([103,2,1,3,4,5,6,7,8,9,10,11,104,13,28,14,15,105])));function br({sessions:e,chat:t}){return(0,Y.jsxs)(Y.Fragment,{children:[e,t]})}var xr=(0,J.lazy)(()=>s(()=>import(`./MobileContextScreen-Dasny2J9.js`).then(e=>({default:e.MobileContextScreen})),__vite__mapDeps([106,2,5,1,3,4,6,7,8,9,10,11,107,13,108,109,99,14,15,110,111,61,112,76,38,39,37,42,41,43,113,114]))),Sr=(0,J.lazy)(()=>s(()=>import(`./MobileViewportStabilizer-OtwVmIPm.js`).then(e=>({default:e.MobileViewportStabilizer})),__vite__mapDeps([115,2,1])));function Cr(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 wr(e){try{return decodeURIComponent(e)}catch{return``}}function Tr(e,t){let n=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return n?n(e,t):Promise.reject(Error(`native bridge unavailable`))}function Er(){let{t:e}=T();(0,J.useEffect)(()=>Ge(`react-app-mounted`),[]);let t=l(),r=n(),a=ft(e=>e.capabilities),o=ft(e=>e.loaded),c=ft(e=>e.load),u=(0,J.useMemo)(()=>bn(e,a),[a,e]),d=(0,J.useMemo)(()=>xn(e),[e]),p=vt(t.pathname)||`chat`,m=(0,J.useRef)(p),[h,g]=(0,J.useState)(``),[_,v]=(0,J.useState)([]);(0,J.useEffect)(()=>{let e=!0;return s(async()=>{let{listCustomUiComponents:e}=await import(`./catalog-D4eaIju4.js`);return{listCustomUiComponents:e}},__vite__mapDeps([116,71,2,5,1,6,7,4,8,3,9,10,11,37,38,39,14,15,72,40,41,73])).then(({listCustomUiComponents:e})=>e()).then(({components:t})=>{e&&v(t.filter(e=>!e.builtIn).map(({id:e,name:t})=>({id:e,name:t})))}).catch(()=>{}),()=>{e=!1}},[]);let[y,b]=(0,J.useState)(()=>f.getItem(E.activeSession)||``),x=ze(e=>e.client===`mobile-app`),S=ze(e=>e.loaded),ee=Fe(),C=x||ee,w=C?yr:br,te=C,D=ht(C),[O,k]=(0,J.useState)(`chat`),[A,j]=(0,J.useState)(`assets`),[M,ne]=(0,J.useState)(!1),[re,ie]=(0,J.useState)(null),ae=(0,J.useCallback)(e=>{k(t=>(typeof e==`function`?e(t===`sessions`):e)?`sessions`:t===`sessions`?`chat`:t)},[]),[oe,N]=(0,J.useState)(!1),se=W(e=>e.sidebarCollapsed),ce=W(e=>e.setSidebarCollapsed),P=W(e=>e.theme),le=W(e=>e.cycleTheme),F=W(e=>e.density),I=W(e=>e.accent),ue=W(e=>e.customAccent),de=W(e=>e.fontScale),fe=W(e=>e.radius),me=W(e=>e.motion),[he,ge]=(0,J.useState)(null),[L,_e]=(0,J.useState)(null),[ye,be]=(0,J.useState)(!1),R=p===`config`?wr(t.pathname.split(`/`)[2]||`models`):`models`,z=Sn.has(R)&&dt(a,R)?R:`models`,[xe,Se]=(0,J.useState)(null),Ce=(0,J.useCallback)(()=>Se(null),[]),{data:we,isPending:Ee,isSuccess:De}=Ve(He(`config`)),{data:Oe}=Ve(He(`notification-settings`)),[ke,Ae]=(0,J.useState)(!1),[je,Me]=(0,J.useState)({browser:{enabled:!1},connections:{},scopes:[],templates:[]}),[Ne,Pe]=(0,J.useState)(null),Ie=(0,J.useMemo)(()=>({terminal:e(`terminal:terminalPanel.terminal`),resizeTerminal:e(`terminal:terminalPanel.resizeTerminal`),hideTerminal:e(`terminal:terminalPanel.hideTerminal`),showTerminal:e(`terminal:terminalPanel.showTerminal`),newTerminal:e(`terminal:terminalPanel.newTerminal`),closeTerminal:e(`terminal:terminalPanel.closeTerminal`),maximizeTerminal:e(`terminal:terminalPanel.maximizeTerminal`),openTerminal:e(`terminal:terminalPanel.openTerminal`),usesActiveSessionWorkspace:e(`terminal:terminalPanel.usesActiveSessionWorkspace`),orphanedTerminal:e(`terminal:terminalPanel.orphanedTerminal`),starting:e(`terminal:terminalPanel.starting`),workspaceUnavailable:e(`terminal:terminalPanel.workspaceUnavailable`),processExited:t=>e(`terminal:terminalPanel.processExited`,{code:t??`-`})}),[e]),[Re,B]=(0,J.useState)(()=>!!cr().open),[Be,We]=(0,J.useState)(()=>Math.max(180,Math.min(640,Number(cr().height)||300))),Ye=(0,J.useRef)(O),Xe=(0,J.useRef)(A),Ze=(0,J.useRef)(D);Ye.current=O,Xe.current=A,Ze.current=D;let V=(0,J.useCallback)(()=>{if(Ze.current!==`off`){Ye.current===`context`&&Xe.current===`terminal`?k(`chat`):(j(`terminal`),k(`context`));return}window.pisperDesktop?.terminalProfiles&<(a,`terminal`)&&B(e=>!e)},[a]);(0,J.useEffect)(()=>(window.addEventListener(`pisper:toggle-terminal`,V),()=>window.removeEventListener(`pisper:toggle-terminal`,V)),[V]);let Qe=(0,J.useRef)(``),[H]=(0,J.useState)(yn),U=(0,J.useRef)(null),$e=(0,J.useRef)(null),nt=(0,J.useRef)(null),ut=(0,J.useRef)(0),G=Gn(),pt=ar();(0,J.useEffect)(()=>{On({accent:I,density:F,fontScale:de,motion:me,radius:fe,customAccent:ue})},[I,F,de,me,fe,ue]),(0,J.useEffect)(()=>{f.setItem(E.terminalPanel,JSON.stringify({open:Re,height:Be}))},[Be,Re]),(0,J.useEffect)(()=>{let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>{let t=Dn(P,e.matches);document.documentElement.dataset.theme=t?`dark`:`light`,document.documentElement.classList.toggle(`dark`,t)};if(t(),P===`system`)return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t);if(P===`scheduled`){let e=window.setInterval(t,6e4);return()=>window.clearInterval(e)}},[P]);let K=(0,J.useCallback)((e,t=`success`)=>{ut.current+=1,ge({id:ut.current,message:e,tone:t})},[]);(0,J.useEffect)(()=>{let e=e=>{let t=e.detail?.id;b(t??f.getItem(E.activeSession)??``)};window.addEventListener(ot,e);let t=e=>{let t=e.detail;t?.message&&K(t.message,t.tone===`error`?`error`:`info`)};return window.addEventListener(st,t),ze.getState().load({refresh:!1}).then(()=>Ge(`client-info-loaded`)),c({refresh:!1}).then(()=>Ge(`capabilities-loaded`)),()=>{window.removeEventListener(ot,e),window.removeEventListener(st,t)}},[c,K]);let q=(0,J.useRef)(!1);(0,J.useEffect)(()=>{!S||!x||q.current||(q.current=!0,(async()=>{await Tr(`mobile_ensure_local_network_permission`).catch(()=>void 0)})())},[S,x]);let yt=(0,J.useCallback)((e,t,{force:n=!1}={})=>{if(je.browser?.enabled&&!(!n&&document.visibilityState===`visible`&&document.hasFocus())){if(window.pisperDesktop?.showNotification){window.pisperDesktop.showNotification({title:e,body:t}).catch(()=>{});return}if(ve()){pe(e,t).catch(()=>{});return}gt({title:e,body:t,tag:`pisper-${e}`,url:window.location.href}).catch(()=>{})}},[je.browser?.enabled]),xt=(0,J.useCallback)((e,t,n)=>{let r=je.templates?.find(t=>t.id===e),i=r?.channels?.browser?.content;!r?.enabled||!i||yt(r.name,Cr(i,t||{}),n)},[je.templates,yt]),St=(0,J.useCallback)(e=>H.register(e),[H]),Ct=(0,J.useCallback)(()=>{H.invoke()},[H]),X=(0,J.useCallback)(e=>(Pe(e),()=>Pe(t=>t===e?null:t)),[]),Z=(0,J.useCallback)((e,t)=>{!bt.has(e)||!ct(a,e)||(r(_t(e),t),g(``))},[a,r]),wt=(0,J.useCallback)(()=>{at(``),Z(`chat`)},[Z]);(0,J.useEffect)(()=>{if(o&&!ct(a,p)){r(`/chat`,{replace:!0});return}p===`config`&&R!==z&&r(`/config/${z}`,{replace:!0})},[a,o,z,p,R,r]);let Q=(0,J.useCallback)((e,t)=>{let n=Sn.has(e)&&dt(a,e)?e:`models`,i=n===`interface`&&t&&t!==`appearance`?`?view=${t}`:``;r(`/config/${n}${i}`),g(``)},[a,r]),Tt=(0,J.useCallback)(()=>{try{f.setItem(E.modelOnboardingDismissed,`1`)}catch{}be(!1)},[]),Et=(0,J.useCallback)(()=>{Tt(),H.clear(),H.invoke(),Q(`models`)},[Tt,H,Q]),Dt=(0,J.useCallback)(()=>{Tt(),r(`/config/models?import=1`),g(``)},[Tt,r]),Ot=(0,J.useCallback)(()=>Q(`updates`),[Q]),kt=(0,J.useCallback)(()=>Q(`notifications`),[Q]),At=(0,J.useCallback)(e=>{e.type===`config`?Q(e.id):Z(e.id)},[Z,Q]),jt=(0,J.useCallback)(async e=>e&&(await qe(`sessions`)).sessions?.find(t=>t.id===e)?.cwd||``,[]),Mt=(0,J.useCallback)(e=>{let t=f.getItem(E.activeSession)||``;Se({asset:e,targetSessionId:t}),t&&rt(t),k(`chat`),Z(`chat`)},[Z]),Nt=(0,J.useCallback)(()=>{(p!==`config`||z===`models`)&&([`chat`,`config`,`assets`,`plugins`,`channels`,`schedules`,`memory`,`mcp`,`skills`,`workflowCreate`].includes(p)?Ct():p===`chatHistory`?(Z(`chat`),Ct()):p===`workflows`?Z(`workflowCreate`):_e(p))},[z,Ct,Z,p]);(0,J.useEffect)(()=>{let e=()=>{!G.dialog&&!L&&!ye&&N(!0)},t=e=>{if(!(e.defaultPrevented||e.isComposing||e.keyCode===229)&&e.key===`Escape`&&!G.dialog){oe?N(!1):L?_e(null):C&&O!==`chat`&&k(`chat`);return}};return window.addEventListener(`keydown`,t),window.addEventListener(it,e),()=>{window.removeEventListener(`keydown`,t),window.removeEventListener(it,e)}},[G.dialog,C,L,ye,oe,O]);let Pt=(0,J.useRef)(!1);(0,J.useEffect)(()=>{if(Ee||Pt.current||(Pt.current=!0,Ae(!0),!De||!we))return;Ge(`config-loaded`);let e=!1;try{e=f.getItem(E.modelOnboardingDismissed)===`1`}catch{}m.current!==`config`&&sr(we,e)&&be(!0)},[we,Ee,De]),(0,J.useEffect)(()=>{ke&&o&&p===`chat`&&Ge(`chat-shell-ready`)},[o,p,ke]);let Ft=(0,J.useRef)(p);(0,J.useLayoutEffect)(()=>{Ft.current===`config`&&p!==`config`&&(Ke(`config`),Ke(`notification-settings`)),Ft.current=p},[p]),(0,J.useEffect)(()=>{Oe&&Me(Oe)},[Oe]),(0,J.useEffect)(()=>{let e=!0,t=async()=>{try{let t=Qe.current,n=await Ue.fetchQuery({queryKey:[`browser-notification-events`,t],queryFn:()=>Le(`/api/settings/notifications/browser/events?after=${encodeURIComponent(t)}`),staleTime:0,retry:!1});if(!e)return;for(let e of n.events||[])yt(e.title,e.body,{force:!0});Qe.current=n.latestId||Qe.current}catch{}};t();let n=window.setInterval(t,3e3);return()=>{e=!1,window.clearInterval(n)}},[yt]),(0,J.useEffect)(()=>{C||k(`chat`)},[C]),(0,J.useEffect)(()=>{C&&p!==`chat`&&p!==`assets`&&k(`chat`)},[t.pathname,C,p]),(0,J.useEffect)(()=>{!C||p!==`assets`||(j(`assets`),k(`context`),r(_t(`chat`),{replace:!0}))},[C,p,r]);let It=(0,J.useCallback)(e=>{j(e),k(`context`)},[]),Lt=(0,J.useMemo)(()=>({active:D!==`off`,mode:D,pane:O,tab:A,setPane:k,openContext:It}),[A,It,O,D]),Rt=!!(window.pisperDesktop?.terminalProfiles&<(a,`terminal`)),zt=C&&(D===`pad`||O===`context`);(0,J.useEffect)(()=>{zt&&ne(!0)},[zt]);let Bt=p===`chat`?[e(`common:app.sessions`),C?``:e(`common:app.dragTabsOrSplitChatsInAnyDirectionFromTheSessionList`)]:d[p]||[e(`common:app.sessions`),``],Vt=(0,J.useCallback)(e=>{Ue.cancelQueries({queryKey:[`notification-settings`],exact:!0}),Ue.setQueryData([`notification-settings`],e),Me(e)},[]),Ht={query:h,activeSessionId:y,reportActiveSessionRun:ie,navigate:Z,notify:K,browserNotify:xt,registerPrimaryAction:St,pendingAsset:xe,onAssetConsumed:Ce,onUseAsset:Mt,requestText:G.prompt,requestConfirm:G.confirm,openNotificationSettings:kt,configSection:z,setConfigSection:Q,setNotificationSettings:Vt,appUpdate:pt,registerWorkflowActions:X};return!ke||!o?(0,Y.jsxs)(`div`,{className:`app-startup dark:bg-[var(--bg)] dark:text-[var(--text)] flex w-full min-h-[100vh] items-center justify-center gap-[10px] bg-[var(--bg)] text-[var(--text-muted)] text-[13px]`,children:[(0,Y.jsx)(Te,{size:30,className:`startup-logo [.app-startup_&]:mr-[2px]`}),(0,Y.jsx)(`strong`,{children:e(`common:app.wakingPisper`)})]}):(0,Y.jsx)(zn,{duration:2800,swipeDirection:`right`,children:(0,Y.jsxs)(`div`,{ref:$e,className:`app-shell dark:bg-[var(--bg)] dark:text-[var(--text)] flex w-full h-full min-h-0 flex-col overflow-hidden bg-[var(--bg)] 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-app]]:pb-0`,"data-mobile-app":C||void 0,"data-custom-titlebar":window.pisperDesktop?.customTitlebar||void 0,children:[window.pisperDesktop?.customTitlebar&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(lr,{})}),(0,Y.jsx)(kn,{}),C&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(Sr,{enabled:S&&ke,shellRef:$e})}),lt(a,`desktopPet`)&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(mr,{})}),(0,Y.jsx)(mt,{value:Lt,children:(0,Y.jsxs)(tt,{style:{"--sidebar-width":`264px`},className:`app-body flex min-h-0 flex-1 overflow-hidden`,"data-mobile-app":C||void 0,mobile:C,mobilePresentation:C?`pane`:`sheet`,persistent:D===`pad`,open:!se,onOpenChange:e=>ce(!e),openMobile:O===`sessions`,onOpenMobileChange:ae,children:[(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(ur,{blocked:!!(G.dialog||L||ye||oe),onCommandPalette:()=>N(!0),onPrimary:Nt,onToggleSidebar:()=>{D!==`pad`&&(te?ae(e=>!e):ce(!se))},onSearch:()=>{p===`chat`?(Z(`chatHistory`),requestAnimationFrame(()=>requestAnimationFrame(()=>U.current?.focus()))):U.current?.focus()},onToggleTerminal:D!==`off`||window.pisperDesktop?.terminalProfiles&<(a,`terminal`)?V:void 0,onSettings:()=>Z(`config`)})}),(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(w,{enabled:C,mode:D,pane:O,onPaneChange:k,sessions:(0,Y.jsx)(Pn,{page:p,configSection:z,navigation:u,installedTools:_,navigate:Z,onOpenComponent:e=>r(`/tools/components/${encodeURIComponent(e)}`),navigateSettings:At,collapsed:se,onNewChat:wt,onSearch:()=>N(!0),update:pt,onOpenUpdates:Ot,requestText:G.prompt,requestConfirm:G.confirm,notify:K}),chat:(0,Y.jsxs)(et,{className:`main-surface relative flex h-full min-w-0 flex-1 flex-col overflow-hidden border-0 bg-background`,children:[p!==`chat`&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(_r,{elementRef:nt,meta:Bt,page:p,query:h,setQuery:g,configSection:z,onMenu:()=>ae(!0),onPrimary:Nt,searchSlot:p===`config`?(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(hr,{query:h,onQueryChange:g,onSelect:Q,inputRef:U})}):void 0,searchInputRef:U,theme:P,onCycleTheme:le,workflowActions:Ne,desktopPlatform:window.pisperDesktop?.platform||``,mobileApp:x,terminalOpen:D===`off`?Re:O===`context`&&A===`terminal`,onToggleTerminal:V})}),S&&C&&Cn.has(p)&&(0,Y.jsx)(Fn,{page:p,configSection:z,mobileApp:x,onNavigate:At}),(0,Y.jsx)(`div`,{className:`page-content flex-1 min-h-0 overflow-auto ${p===`chat`?`page-chat flex overflow-hidden p-0`:`page-${p} px-6 pb-5 max-[650px]:px-3`}`,children:(0,Y.jsx)(i,{context:Ht})},p),D===`off`&&window.pisperDesktop?.terminalProfiles&<(a,`terminal`)&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(vr,{open:Re,height:Be,labels:Ie,activeSessionId:y,resolveSessionCwd:jt,onOpenChange:B,onHeightChange:We})})]}),context:C&&(zt||M)?(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(xr,{tab:A,visible:zt,onCloseTerminal:()=>D===`pad`?j(`assets`):k(`chat`),onOpenChat:()=>{Z(`chat`),k(`context`)},sessionStreaming:re?.sessionId===y?re.streaming:null,onTabChange:j,activeSessionId:y,query:h,notify:K,requestConfirm:G.confirm,requestText:G.prompt,onUseAsset:Mt,terminalSupported:Rt,terminalLabels:Ie,resolveSessionCwd:jt})}):null})})]})}),(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(dr,{anchorRef:nt,notify:K})}),he&&(0,Y.jsx)(Wn,{open:!0,message:he.message,tone:he.tone,closeLabel:e(`common:ui.closeDialog`),onOpenChange:e=>!e&&ge(null)},he.id),(0,Y.jsx)(Bn,{hotkey:[],label:e(`common:ui.notifications`)}),(0,Y.jsx)(In,{dialog:G.dialog,onClose:G.close,onFinish:G.finish}),(0,Y.jsx)(J.Suspense,{fallback:null,children:ye&&(0,Y.jsx)(gr,{open:!0,onDismiss:Tt,onOpenImport:Dt,onOpenSettings:Et})}),(0,Y.jsxs)(J.Suspense,{fallback:null,children:[oe&&(0,Y.jsx)(fr,{navigation:u,onClose:()=>N(!1),onNavigate:Z,onOpenSession:async(t,n,r)=>{try{n&&!r&&await Je.navigateSessionTreeTarget(t,n),rt(t,`open`,n),Z(`chat`)}catch(t){throw K(e(`navigation:appOverlays.openLabeledTurnFailed`),`error`),t}},onNewChat:wt}),L&&(0,Y.jsx)(pr,{type:L,close:()=>_e(null),notify:K})]})]})})}function Dr(){let{t:e}=T();return(0,Y.jsxs)(H,{children:[(0,Y.jsx)(Oe,{className:`animate-spin`,size:24}),(0,Y.jsx)(`h2`,{children:e(`navigation:pageLoader.lightingUpThisPage`)}),(0,Y.jsx)(`p`,{children:e(`navigation:pageLoader.bringingTheNeededCapabilitiesIntoPlace`)})]})}async function Or(){window.__PISPER_MOBILE_APP__&&await Ie().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 kr(){let e=r(),t=o(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:`页面加载失败`;return(0,Y.jsxs)(`main`,{className:`app-startup dark:bg-[var(--bg)] dark:text-[var(--text)] flex w-full min-h-[100vh] items-center justify-center gap-[10px] bg-[var(--bg)] text-[var(--text-muted)] text-[13px]`,role:`alert`,children:[(0,Y.jsx)(`strong`,{children:t}),(0,Y.jsx)(B,{variant:`outline`,size:`lg`,className:`bg-surface-subtle`,type:`button`,onClick:()=>void Or(),children:`重新加载`})]})}function $(){return a()}async function Ar(){let{ChatPage:e}=await s(async()=>{let{ChatPage:e}=await import(`./ChatPage-ibc_7olm.js`);return{ChatPage:e}},__vite__mapDeps([117,2,5,1,6,7,3,4,8,9,10,11,118,119,15,18,120,48,20,21,22,23,13,111,101,50,121,122,82,47,27,87,104,28,123,124,92,93,14,94,59,125,126,127,109,128,129,130,131,108,132,133,30,134,61,34,135,65,75,36,136,112,54,37,38,39,76,42,41,43,114,77,53,51,44,83,55,137,138,139,140,141,142,143,144,145,146,31,96,45,46,49,52,147,32,97,33,35,148,12,149,99,150,151,70,40,80,81,67,152,153,154,56,57,155,156,157,158,105]));function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify,navigate:t.navigate,browserNotify:t.browserNotify,reportActiveSessionRun:t.reportActiveSessionRun,registerPrimaryAction:t.registerPrimaryAction,pendingAsset:t.pendingAsset,onAssetConsumed:t.onAssetConsumed,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function jr(){let{ChatHistoryPage:e}=await s(async()=>{let{ChatHistoryPage:e}=await import(`./ChatHistoryPage-DTXS6i3n.js`);return{ChatHistoryPage:e}},__vite__mapDeps([159,2,6,5,1,7,3,4,8,9,17,15,18,19,20,21,22,23,10,11,13,26,27,28,29,24,31,49,160,32,61,36,50,37,38,39,70,14,40,41,42,43,113,44,80,81,82,83,55,56,161,157,162]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,navigate:t.navigate,notify:t.notify,requestConfirm:t.requestConfirm,requestText:t.requestText})}return{Component:t}}async function Mr(){let{AssetsPage:e}=await s(async()=>{let{AssetsPage:e}=await import(`./AssetsPage-BltehMID.js`);return{AssetsPage:e}},__vite__mapDeps([163,2,6,5,1,7,3,4,8,9,13,59,60,127,95,147,33,61,36,136,54,37,38,39,14,11,15,10,78,79,18,46,44,80,81,23,82,20,83,161,155,138,139,140,141,142,111,143,114,144,164]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestConfirm:t.requestConfirm,onUse:t.onUseAsset})}return{Component:t}}async function Nr(){let[{ChannelsPage:e}]=await Promise.all([s(()=>import(`./ChannelsPage-Tuw_qicj.js`),__vite__mapDeps([165,2,1,3,4,5,6,7,8,9,87,13,60,166,31,33,61,167,12,135,136,54,37,38,39,14,11,15,10,51,78,79,18,46,44,80,81,23,82,20,83,161,155])),S()]);function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestConfirm:t.requestConfirm})}return{Component:t}}async function Pr(){let{SchedulesPage:e}=await s(async()=>{let{SchedulesPage:e}=await import(`./SchedulesPage-W4Mg7frl.js`);return{SchedulesPage:e}},__vite__mapDeps([168,2,1,3,4,5,6,7,8,9,120,15,18,48,20,21,22,23,10,11,13,111,101,50,169,87,123,109,166,97,33,61,167,36,136,54,37,38,39,14,77,53,78,79,46,44,80,81,82,83,57,161,155]));function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestConfirm:t.requestConfirm,openNotificationSettings:t.openNotificationSettings})}return{Component:t}}async function Fr(){let[{ConfigPage:e},{ChatAppearancePage:t}]=await Promise.all([s(()=>import(`./ConfigPage-CI6one5Y.js`),__vite__mapDeps([170,2,5,1,6,7,4,8,3,9,15,18,20,119,23,17,19,21,22,10,11,79,120,48,13,111,101,50,46,81,171,86,172,169,87,173,29,123,130,131,143,59,174,24,60,175,176,30,31,93,33,61,62,34,98,35,167,89,135,149,177,99,36,136,178,151,54,37,38,39,14,77,53,51,78,44,80,82,83,67,94,155,138,139,140,141,142,114,144,157,90,179])),s(()=>import(`./ChatAppearancePage-DME3PgDr.js`),__vite__mapDeps([180,2,5,1,4,6,7,8,3,9,82,11,18,15,20,10]))]);function n(){let n=$();return(0,Y.jsx)(e,{notify:n.notify,registerPrimaryAction:n.registerPrimaryAction,section:n.configSection,onBrowserNotificationChange:n.setNotificationSettings,requestConfirm:n.requestConfirm,update:n.appUpdate,renderInterfaceSettings:e=>(0,Y.jsx)(t,{appearance:e,notify:n.notify})})}return{Component:n}}async function Ir(){let{PluginsPage:e}=await s(async()=>{let{PluginsPage:e}=await import(`./PluginsPage-BPx5ERHL.js`);return{PluginsPage:e}},__vite__mapDeps([181,2,1,3,4,5,6,7,8,9,15,18,53,21,120,48,20,22,23,10,11,13,111,101,50,123,174,60,125,182,109,176,30,183,61,35,89,36,136,37,38,39,14,77,54,80,81,82,83,57,155,152,153]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function Lr(){let{MemoryPage:e}=await s(async()=>{let{MemoryPage:e}=await import(`./MemoryPage-BEdNJ3ot.js`);return{MemoryPage:e}},__vite__mapDeps([184,2,1,3,4,5,6,7,8,9,120,15,18,48,20,21,22,23,10,11,13,111,101,50,47,28,182,132,30,32,33,61,36,54,37,38,39,14,78,79,46,80,81,82,83,185,161,155]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestConfirm:t.requestConfirm})}return{Component:t}}async function Rr(){let[{McpPage:e}]=await Promise.all([s(()=>import(`./McpPage-Ck-7aLuZ.js`),__vite__mapDeps([186,2,1,3,4,5,6,7,8,9,81,11,15,18,23,10,129,13,143,88,61,89,36,151,38,39,14,41,40,43,73,77,53,21,54,44,83,155,145,187])),v()]);function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function zr(){let{SkillsPage:e}=await s(async()=>{let{SkillsPage:e}=await import(`./SkillsPage-CpRRosmo.js`);return{SkillsPage:e}},__vite__mapDeps([188,2,1,3,4,5,6,7,8,9,13,182,176,61,98,177,36,151,37,38,39,14,11,15,10,80,81,18,23,82,20,83,155]));function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,activeSessionId:t.activeSessionId,notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,requestText:t.requestText,requestConfirm:t.requestConfirm})}return{Component:t}}async function Br(){function e(){return(0,Y.jsx)(c,{to:`/config/interface?view=widgets`,replace:!0})}return{Component:e}}async function Vr(){let[{CustomUiToolPage:e}]=await Promise.all([s(()=>import(`./public-BcTP7F3I.js`),__vite__mapDeps([189,2,5,1,3,4,6,7,8,9,10,11,13,171,107,61,148,135,38,39,14,15,71,37,72,40,41,73,77,53,18,21,54,80,81,23,82,20,83])),b()]);function t(){let t=$();return(0,Y.jsx)(e,{componentId:`pisper-game-asset-workbench`,notify:t.notify})}return{Component:t}}async function Hr(){let[{CustomUiToolPage:e}]=await Promise.all([s(()=>import(`./public-BcTP7F3I.js`),__vite__mapDeps([189,2,5,1,3,4,6,7,8,9,10,11,13,171,107,61,148,135,38,39,14,15,71,37,72,40,41,73,77,53,18,21,54,80,81,23,82,20,83])),b()]);function t(){let t=$(),{componentId:n=``}=d();return(0,Y.jsx)(e,{componentId:n,notify:t.notify})}return{Component:t}}async function Ur(){let{DecisionsPage:e}=await s(async()=>{let{DecisionsPage:e}=await import(`./DecisionsPage-DOhLbIaD.js`);return{DecisionsPage:e}},__vite__mapDeps([190,2,1,3,4,5,6,7,8,9,119,15,18,79,10,11,120,48,20,21,22,23,13,111,101,50,123,124,175,88,30,61,98,38,39,37,14,51,78,46,80,81,82,83]));function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify})}return{Component:t}}async function Wr(){let[{WorkflowsPage:e}]=await Promise.all([s(()=>import(`./WorkflowsPage-bhQlHSzS.js`),__vite__mapDeps([191,2,5,1,4,6,7,8,3,9,119,15,18,79,10,11,120,48,20,21,22,23,13,111,101,50,121,122,81,82,171,172,169,87,104,28,123,124,131,143,59,182,127,69,176,30,166,160,147,32,97,33,61,62,35,167,89,148,65,36,136,54,38,39,37,14,40,41,77,53,51,78,46,44,83,80,52,155,145,179,192,187,193,194,195])),x()]);function t(){let t=$();return(0,Y.jsx)(e,{query:t.query,notify:t.notify,requestConfirm:t.requestConfirm})}return{Component:t}}async function Gr(){let[{WorkflowBuilder:e}]=await Promise.all([s(()=>import(`./WorkflowsPage-bhQlHSzS.js`),__vite__mapDeps([191,2,5,1,4,6,7,8,3,9,119,15,18,79,10,11,120,48,20,21,22,23,13,111,101,50,121,122,81,82,171,172,169,87,104,28,123,124,131,143,59,182,127,69,176,30,166,160,147,32,97,33,61,62,35,167,89,148,65,36,136,54,38,39,37,14,40,41,77,53,51,78,46,44,83,80,52,155,145,179,192,187,193,194,195])),x()]);function t(){let t=$();return(0,Y.jsx)(e,{notify:t.notify,registerPrimaryAction:t.registerPrimaryAction,registerWorkflowActions:t.registerWorkflowActions})}return{Component:t}}var Kr=t([{element:(0,Y.jsx)(Er,{}),errorElement:(0,Y.jsx)(kr,{}),hydrateFallbackElement:(0,Y.jsx)(Dr,{}),children:[{index:!0,element:(0,Y.jsx)(c,{to:q.chat,replace:!0})},{path:q.chat,lazy:Ar},{path:q.chatHistory,lazy:jr},{path:q.assets,lazy:Mr},{path:q.channels,lazy:Nr},{path:q.schedules,lazy:Pr},{path:q.config,lazy:Fr},{path:`/config/:configSection`,lazy:Fr},{path:`/config`,element:(0,Y.jsx)(c,{to:q.config,replace:!0})},{path:q.plugins,lazy:Ir},{path:q.memory,lazy:Lr},{path:q.mcp,lazy:Rr},{path:q.skills,lazy:zr},{path:q.components,lazy:Br},{path:`/tools/components/:componentId`,lazy:Hr},{path:q.gameAssetWorkbench,lazy:Vr},{path:q.decisions,lazy:Ur},{path:q.workflows,lazy:Wr},{path:q.workflowCreate,lazy:Gr},{path:`/workflows/:workflowId`,lazy:Gr},{path:`*`,element:(0,Y.jsx)(c,{to:q.chat,replace:!0})}]}]),qr=()=>{document.documentElement.dataset.pageVisibility=document.visibilityState};qr(),document.addEventListener(`visibilitychange`,qr);var Jr=yt(window.location.hash);Jr&&window.history.replaceState(null,``,`${window.location.pathname}${window.location.search}#${Jr}`);var Yr=document.getElementById(`root`);if(!Yr)throw Error(`Missing #root application mount point`);(0,hn.createRoot)(Yr).render((0,Y.jsx)(J.StrictMode,{children:(0,Y.jsx)(vn,{children:(0,Y.jsx)(u,{router:Kr})})}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as e}from"./i18n-
|
|
1
|
+
import{u as e}from"./i18n-7QvbQzOQ.js";import{i as t}from"./http-DphgzWtw.js";import{t as n}from"./api-Dzobr-o_.js";function r(e){let t=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return t?t(e):Promise.reject(Error(`native bridge unavailable`))}async function i(){if(window.__PISPER_MOBILE_PLATFORM__!==`android`)throw Error(`workspace_import_unsupported`);let e=await r(`mobile_state`);if(e.mode!==`local`||!e.onDevice?.running)throw Error(`workspace_import_requires_local_runtime`);let t=await r(`mobile_import_workspace_directory`);if(t.path===null)return null;if(typeof t.path!=`string`||!t.path.startsWith(`/`))throw Error(`workspace_import_invalid_path`);return t.path}var a=!1;function o(){return typeof window<`u`&&window.__PISPER_MOBILE_PLATFORM__!==`ios`}async function s(r=``){if(a)return null;a=!0;try{if(window.__PISPER_MOBILE_APP__){if(window.__PISPER_MOBILE_PLATFORM__!==`android`)throw Error(e(`common:workspacePicker.systemUnavailable`));return await i()}if(window.pisperDesktop?.pickDirectory)return await window.pisperDesktop.pickDirectory(r||void 0);let a=await n(`/api/desktop/pick-directory`,{method:`POST`,body:JSON.stringify({initialDirectory:r}),timeout:61e4});if(!a||typeof a!=`object`||!(`path`in a))throw t();let o=a.path;if(o!==null&&(typeof o!=`string`||!o.trim()))throw t();return o}finally{a=!1}}export{s as n,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{n as t,p as n}from"./vendor-router-CZg2bCPV.js";import{i as r,r as i}from"./vendor-react-DwNgTV1j.js";import{t as a}from"./use-i18n-DyzoXal-.js";import{t as o}from"./utils-C8uzG5AZ.js";import{t as s}from"./createLucideIcon-Cd-3GVxJ.js";import{t as c}from"./arrow-left-B8oVrQ2S.js";import{t as l}from"./blocks-Olsdp5Lp.js";import{t as u}from"./refresh-cw-TbWxTY4K.js";import{t as d}from"./settings-2-CXJjXJS9.js";import{t as f}from"./shield-check-Gvek4RJ7.js";import{o as p}from"./http-BrDjjNkv.js";import{t as m}from"./button-CQA36izu.js";import{a as h,i as g,n as _,r as v,t as y}from"./floating-widgets-store-DGeXH0NK.js";import{r as b,t as x}from"./useCustomUiComponents-B3Z-pphj.js";import{a as S,i as C,o as w,r as T,s as E,t as D}from"./dialog-D-ER2p-D.js";import{a as O,r as k,t as A}from"./app-primitives-BBXY6U2S.js";var j=s(`folder-code`,[[`path`,{d:`M10 10.5 8 13l2 2.5`,key:`m4t9c1`}],[`path`,{d:`m14 10.5 2 2.5-2 2.5`,key:`14w2eb`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z`,key:`1u1bxd`}]]),M=s(`folder-up`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`m9 13 3-3 3 3`,key:`1pxg3c`}]]),N=s(`panels-top-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 21V9`,key:`1oto5p`}]]),P=s(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),F=e(r(),1),I=i();function L(e,t){return e===`config.read`?t(`custom-ui:customUiPage.permissionConfigRead`):e===`sessions.read`?t(`custom-ui:customUiPage.permissionSessionsRead`):e===`notify`?t(`custom-ui:customUiPage.permissionNotify`):e===`game-assets.read`?t(`custom-ui:customUiPage.permissionGameAssetsRead`):e===`game-assets.write`?t(`custom-ui:customUiPage.permissionGameAssetsWrite`):e===`game-assets.run`?t(`custom-ui:customUiPage.permissionGameAssetsRun`):e}function R({component:e,notify:n,floating:r,onToggleFloating:i}){let{t:o}=a();return(0,I.jsxs)(A,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-2 overflow-hidden p-3`,children:[(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,I.jsx)(`strong`,{className:`min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-[14px]`,children:h(e,o)}),e.builtIn&&(0,I.jsx)(`span`,{className:`rounded bg-[var(--surface-muted)] px-1.5 py-0.5 text-xs text-[var(--text-muted)]`,children:o(`custom-ui:builtIn.badge`)}),e.version&&(0,I.jsxs)(`span`,{className:`flex-none text-[12px] text-[var(--text-muted)]`,children:[`v`,e.version]}),(0,I.jsx)(m,{variant:`outline`,size:`sm`,asChild:!0,children:(0,I.jsx)(t,{to:`/tools/components/${encodeURIComponent(e.id)}`,children:o(`custom-ui:customUiPage.openComponent`)})}),(0,I.jsxs)(m,{variant:`ghost`,size:`sm`,"aria-pressed":r,title:o(`custom-ui:floating.hint`),onClick:i,children:[(0,I.jsx)(N,{size:13}),o(r?`custom-ui:floating.hide`:`custom-ui:floating.show`)]})]}),(0,I.jsx)(`p`,{className:`m-0 text-xs leading-5 text-[var(--text-muted)]`,children:o(`custom-ui:floating.hint`)}),e.description&&(0,I.jsx)(`p`,{className:`m-0 text-[12px] leading-[1.55] text-[var(--text-secondary)]`,children:g(e,o)}),e.permissions.length>0&&(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-[6px] text-[11px] text-[var(--text-muted)]`,children:[(0,I.jsx)(f,{size:12,className:`flex-none`}),e.permissions.map(e=>(0,I.jsx)(`span`,{className:`rounded-[var(--r-sm)] bg-[var(--surface-muted)] px-[6px] py-[2px]`,children:L(e,o)},e))]}),(0,I.jsx)(`div`,{className:`min-h-[240px] flex-1 overflow-hidden rounded-[var(--r-md)] border border-[var(--stroke-soft)] bg-[var(--surface-subtle)]`,children:(0,I.jsx)(v,{component:e,notify:n})})]})}function z({notify:e}){let{t}=a(),r=x(),i=r.data?.components||[],s=r.data?.root||``,[c,d]=(0,F.useState)(``),[f,g]=(0,F.useState)(!1),[v,N]=(0,F.useState)(``),[L,z]=(0,F.useState)(``),B=(0,F.useRef)(null),V=(0,F.useRef)(null),H=r.isPending,U=r.isFetching,W=r.error?t(`custom-ui:widget.catalogFailed`):``,G=i.find(e=>e.id===c)||i[0]||null,K=_(e=>e.prefs),q=_(e=>e.storageError),J=y([],K),Y=()=>{if(G)try{_.getState().setVisible(G.id,!J.includes(G.id))}catch{e(t(`custom-ui:floating.storageFailed`))}},X=async e=>{g(!0),N(``);try{let t=await b(e);await r.refetch(),d(t.id),z(t.name)}catch(e){let n=e instanceof p?e.data?.code:void 0;N(t(n===`component_already_installed`?`custom-ui:customUiPage.importExists`:`custom-ui:customUiPage.importFailed`))}finally{g(!1)}},Z=async e=>{g(!0),N(``);try{let t=e.filter(e=>!e.name.startsWith(`.`));if(!t.length||t.reduce((e,t)=>e+t.size,0)>15728640)throw Error(`Invalid component folder`);let r={};for(let e of t){let t=e.webkitRelativePath||e.name;r[t]=new Uint8Array(await e.arrayBuffer())}let{zipSync:i}=await n(async()=>{let{zipSync:e}=await import(`./browser-BvGt_LFQ.js`);return{zipSync:e}},[]);await X(new Blob([i(r,{level:0})],{type:`application/zip`}))}catch{N(t(`custom-ui:customUiPage.importFailed`))}finally{g(!1)}},Q=(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,I.jsx)(`input`,{ref:e=>{V.current=e,e?.setAttribute(`webkitdirectory`,``)},type:`file`,multiple:!0,className:`sr-only`,"aria-hidden":`true`,tabIndex:-1,onChange:e=>{let t=[...e.currentTarget.files||[]];e.currentTarget.value=``,t.length&&Z(t)}}),(0,I.jsx)(`input`,{ref:B,type:`file`,accept:`.zip,application/zip`,className:`sr-only`,"aria-hidden":`true`,tabIndex:-1,onChange:e=>{let t=e.currentTarget.files?.[0];t&&X(t),e.currentTarget.value=``}}),(0,I.jsxs)(m,{variant:`outline`,size:`sm`,disabled:f,onClick:()=>V.current?.click(),children:[(0,I.jsx)(M,{size:14}),t(`custom-ui:customUiPage.importFolder`)]}),(0,I.jsxs)(m,{variant:`outline`,size:`sm`,disabled:f,onClick:()=>B.current?.click(),children:[(0,I.jsx)(P,{size:14}),t(`custom-ui:customUiPage.importZip`)]}),f&&(0,I.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:t(`custom-ui:customUiPage.importing`)}),v&&(0,I.jsx)(`span`,{role:`alert`,className:`text-xs text-destructive`,children:v})]}),$=(0,I.jsx)(D,{open:!!L,onOpenChange:e=>!e&&z(``),children:(0,I.jsxs)(T,{children:[(0,I.jsxs)(w,{children:[(0,I.jsx)(E,{children:t(`custom-ui:customUiPage.imported`,{name:L})}),(0,I.jsx)(C,{children:t(`custom-ui:customUiPage.restartHint`)})]}),(0,I.jsxs)(S,{children:[(0,I.jsx)(m,{variant:`outline`,onClick:()=>z(``),children:t(`custom-ui:customUiPage.restartLater`)}),(0,I.jsx)(m,{onClick:()=>window.location.reload(),children:t(`custom-ui:customUiPage.reloadNow`)})]})]})});return H?(0,I.jsx)(`div`,{className:`flex min-h-[100%] items-center justify-center text-[12px] text-[var(--text-muted)]`,children:t(`custom-ui:customUiPage.loading`)}):!i.length&&!W?(0,I.jsxs)(`div`,{className:`flex min-h-[100%] min-w-0 flex-col gap-[12px]`,children:[Q,$,(0,I.jsxs)(k,{className:`flex flex-1 flex-col items-center justify-center gap-[10px] p-[40px_24px] text-center`,children:[(0,I.jsx)(l,{size:28,className:`text-[var(--text-muted)]`}),(0,I.jsx)(`strong`,{className:`text-[14px]`,children:t(`custom-ui:customUiPage.emptyTitle`)}),(0,I.jsx)(`p`,{className:`m-0 max-w-[520px] text-[12px] leading-[1.7] text-[var(--text-secondary)]`,children:t(`custom-ui:customUiPage.emptyHint`)}),s&&(0,I.jsx)(`code`,{className:`max-w-full break-all rounded-[var(--r-sm)] bg-[var(--surface-muted)] px-[8px] py-[4px] text-[11px] text-[var(--text-soft)]`,children:s}),(0,I.jsx)(`p`,{className:`m-0 max-w-[520px] text-[11px] leading-[1.6] text-[var(--text-muted)]`,children:t(`custom-ui:customUiPage.directoryLocationHint`)}),(0,I.jsxs)(m,{variant:`outline`,size:`sm`,disabled:U,onClick:()=>void r.refetch(),children:[(0,I.jsx)(u,{size:13,className:U?`animate-spin`:``}),t(`custom-ui:customUiPage.rescan`)]})]})]}):(0,I.jsxs)(`div`,{className:`flex min-h-[100%] min-w-0 flex-col gap-[12px]`,children:[Q,$,W&&(0,I.jsxs)(O,{children:[(0,I.jsx)(j,{size:14}),(0,I.jsx)(`span`,{children:W})]}),q&&(0,I.jsx)(O,{children:t(`custom-ui:floating.storageFailed`)}),(0,I.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-[12px] lg:grid-cols-[minmax(220px,280px)_minmax(0,1fr)]`,children:[(0,I.jsxs)(A,{className:`flex min-h-0 flex-col gap-[8px] overflow-y-auto p-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between px-1 pt-1`,children:[(0,I.jsx)(`span`,{className:`text-[12px] font-semibold text-[var(--text-secondary)]`,children:t(`custom-ui:customUiPage.installedComponents`,{count:i.length})}),(0,I.jsx)(m,{variant:`ghost`,size:`icon`,className:`h-[26px] w-[26px]`,title:t(`custom-ui:customUiPage.rescan`),"aria-label":t(`custom-ui:customUiPage.rescan`),disabled:U,onClick:()=>void r.refetch(),children:(0,I.jsx)(u,{size:13,className:U?`animate-spin`:``})})]}),i.map(e=>(0,I.jsxs)(`button`,{type:`button`,onClick:()=>d(e.id),className:o(`flex min-w-0 cursor-pointer flex-col gap-[2px] rounded-[var(--r-md)] border-0 px-[10px] py-[8px] text-left transition-colors`,e.id===G?.id?`bg-[var(--accent-soft)] text-[var(--text)]`:`bg-transparent text-[var(--text-secondary)] hover:bg-[var(--surface-muted)]`),children:[(0,I.jsxs)(`span`,{className:`flex min-w-0 items-center gap-[6px]`,children:[(0,I.jsx)(l,{size:13,className:`flex-none text-[var(--star-strong)]`}),(0,I.jsx)(`strong`,{className:`min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-[13px]`,children:h(e,t)})]}),e.builtIn&&(0,I.jsx)(`small`,{className:`pl-[19px] text-xs text-[var(--text-muted)]`,children:t(`custom-ui:builtIn.badge`)}),(0,I.jsx)(`small`,{className:`overflow-hidden text-ellipsis whitespace-nowrap pl-[19px] text-[11px] text-[var(--text-muted)]`,children:e.id})]},e.id)),(0,I.jsx)(`p`,{className:`m-0 mt-auto break-all px-1 pb-1 text-[11px] leading-[1.6] text-[var(--text-muted)]`,children:t(`custom-ui:customUiPage.directoryHint`,{path:s})})]}),G?(0,I.jsx)(R,{component:G,notify:e,floating:J.includes(G.id),onToggleFloating:Y},`${G.id}:${r.dataUpdatedAt}`):(0,I.jsx)(A,{className:`grid place-items-center text-[12px] text-[var(--text-muted)]`,children:t(`custom-ui:customUiPage.selectComponent`)})]})]})}function B({componentId:e,notify:n}){let{t:r}=a(),i=x(),o=i.data?.components.find(t=>t.id===e);return(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,I.jsx)(m,{variant:`ghost`,size:`sm`,asChild:!0,children:(0,I.jsxs)(t,{to:`/chat`,children:[(0,I.jsx)(c,{}),r(`custom-ui:tool.back`)]})}),(0,I.jsx)(m,{variant:`ghost`,size:`sm`,asChild:!0,children:(0,I.jsxs)(t,{to:`/config/interface?view=widgets`,children:[(0,I.jsx)(d,{}),r(`custom-ui:tool.openSettings`)]})})]}),(0,I.jsx)(`div`,{className:`h-[max(520px,calc(100dvh-180px))] min-w-0 overflow-hidden rounded-xl border bg-card`,children:o?(0,I.jsx)(v,{component:o,notify:n}):(0,I.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 p-4 text-sm text-muted-foreground`,role:`status`,children:[i.isPending?r(`custom-ui:customUiPage.loading`):i.error?r(`custom-ui:widget.catalogFailed`):r(`custom-ui:widget.missing`,{id:e}),!i.isPending&&(0,I.jsx)(m,{variant:`outline`,onClick:()=>void i.refetch(),children:r(`custom-ui:widget.retry`)})]})})]})}export{z as CustomUiPage,B as CustomUiToolPage};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{n as t,p as n}from"./vendor-router-CZg2bCPV.js";import{i as r,r as i}from"./vendor-react-DwNgTV1j.js";import{t as a}from"./use-i18n-BSZKFkMb.js";import{t as o}from"./utils-C8uzG5AZ.js";import{t as s}from"./createLucideIcon-Cd-3GVxJ.js";import{t as c}from"./arrow-left-B8oVrQ2S.js";import{t as l}from"./blocks-Olsdp5Lp.js";import{t as u}from"./refresh-cw-TbWxTY4K.js";import{t as d}from"./settings-2-CXJjXJS9.js";import{t as f}from"./shield-check-Gvek4RJ7.js";import{o as p}from"./http-DphgzWtw.js";import{t as m}from"./button-CQA36izu.js";import{a as h,i as g,n as _,r as v,t as y}from"./floating-widgets-store-DIy4GSy4.js";import{r as b,t as x}from"./useCustomUiComponents-BH86kuaq.js";import{a as S,i as C,o as w,r as T,s as E,t as D}from"./dialog-D-ER2p-D.js";import{a as O,r as k,t as A}from"./app-primitives-BBXY6U2S.js";var j=s(`folder-code`,[[`path`,{d:`M10 10.5 8 13l2 2.5`,key:`m4t9c1`}],[`path`,{d:`m14 10.5 2 2.5-2 2.5`,key:`14w2eb`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z`,key:`1u1bxd`}]]),M=s(`folder-up`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`m9 13 3-3 3 3`,key:`1pxg3c`}]]),N=s(`panels-top-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 21V9`,key:`1oto5p`}]]),P=s(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),F=e(r(),1),I=i();function L(e,t){return e===`config.read`?t(`custom-ui:customUiPage.permissionConfigRead`):e===`sessions.read`?t(`custom-ui:customUiPage.permissionSessionsRead`):e===`notify`?t(`custom-ui:customUiPage.permissionNotify`):e===`game-assets.read`?t(`custom-ui:customUiPage.permissionGameAssetsRead`):e===`game-assets.write`?t(`custom-ui:customUiPage.permissionGameAssetsWrite`):e===`game-assets.run`?t(`custom-ui:customUiPage.permissionGameAssetsRun`):e}function R({component:e,notify:n,floating:r,onToggleFloating:i}){let{t:o}=a();return(0,I.jsxs)(A,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-2 overflow-hidden p-3`,children:[(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,I.jsx)(`strong`,{className:`min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-[14px]`,children:h(e,o)}),e.builtIn&&(0,I.jsx)(`span`,{className:`rounded bg-[var(--surface-muted)] px-1.5 py-0.5 text-xs text-[var(--text-muted)]`,children:o(`custom-ui:builtIn.badge`)}),e.version&&(0,I.jsxs)(`span`,{className:`flex-none text-[12px] text-[var(--text-muted)]`,children:[`v`,e.version]}),(0,I.jsx)(m,{variant:`outline`,size:`sm`,asChild:!0,children:(0,I.jsx)(t,{to:`/tools/components/${encodeURIComponent(e.id)}`,children:o(`custom-ui:customUiPage.openComponent`)})}),(0,I.jsxs)(m,{variant:`ghost`,size:`sm`,"aria-pressed":r,title:o(`custom-ui:floating.hint`),onClick:i,children:[(0,I.jsx)(N,{size:13}),o(r?`custom-ui:floating.hide`:`custom-ui:floating.show`)]})]}),(0,I.jsx)(`p`,{className:`m-0 text-xs leading-5 text-[var(--text-muted)]`,children:o(`custom-ui:floating.hint`)}),e.description&&(0,I.jsx)(`p`,{className:`m-0 text-[12px] leading-[1.55] text-[var(--text-secondary)]`,children:g(e,o)}),e.permissions.length>0&&(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-[6px] text-[11px] text-[var(--text-muted)]`,children:[(0,I.jsx)(f,{size:12,className:`flex-none`}),e.permissions.map(e=>(0,I.jsx)(`span`,{className:`rounded-[var(--r-sm)] bg-[var(--surface-muted)] px-[6px] py-[2px]`,children:L(e,o)},e))]}),(0,I.jsx)(`div`,{className:`min-h-[240px] flex-1 overflow-hidden rounded-[var(--r-md)] border border-[var(--stroke-soft)] bg-[var(--surface-subtle)]`,children:(0,I.jsx)(v,{component:e,notify:n})})]})}function z({notify:e}){let{t}=a(),r=x(),i=r.data?.components||[],s=r.data?.root||``,[c,d]=(0,F.useState)(``),[f,g]=(0,F.useState)(!1),[v,N]=(0,F.useState)(``),[L,z]=(0,F.useState)(``),B=(0,F.useRef)(null),V=(0,F.useRef)(null),H=r.isPending,U=r.isFetching,W=r.error?t(`custom-ui:widget.catalogFailed`):``,G=i.find(e=>e.id===c)||i[0]||null,K=_(e=>e.prefs),q=_(e=>e.storageError),J=y([],K),Y=()=>{if(G)try{_.getState().setVisible(G.id,!J.includes(G.id))}catch{e(t(`custom-ui:floating.storageFailed`))}},X=async e=>{g(!0),N(``);try{let t=await b(e);await r.refetch(),d(t.id),z(t.name)}catch(e){let n=e instanceof p?e.data?.code:void 0;N(t(n===`component_already_installed`?`custom-ui:customUiPage.importExists`:`custom-ui:customUiPage.importFailed`))}finally{g(!1)}},Z=async e=>{g(!0),N(``);try{let t=e.filter(e=>!e.name.startsWith(`.`));if(!t.length||t.reduce((e,t)=>e+t.size,0)>15728640)throw Error(`Invalid component folder`);let r={};for(let e of t){let t=e.webkitRelativePath||e.name;r[t]=new Uint8Array(await e.arrayBuffer())}let{zipSync:i}=await n(async()=>{let{zipSync:e}=await import(`./browser-BvGt_LFQ.js`);return{zipSync:e}},[]);await X(new Blob([i(r,{level:0})],{type:`application/zip`}))}catch{N(t(`custom-ui:customUiPage.importFailed`))}finally{g(!1)}},Q=(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,I.jsx)(`input`,{ref:e=>{V.current=e,e?.setAttribute(`webkitdirectory`,``)},type:`file`,multiple:!0,className:`sr-only`,"aria-hidden":`true`,tabIndex:-1,onChange:e=>{let t=[...e.currentTarget.files||[]];e.currentTarget.value=``,t.length&&Z(t)}}),(0,I.jsx)(`input`,{ref:B,type:`file`,accept:`.zip,application/zip`,className:`sr-only`,"aria-hidden":`true`,tabIndex:-1,onChange:e=>{let t=e.currentTarget.files?.[0];t&&X(t),e.currentTarget.value=``}}),(0,I.jsxs)(m,{variant:`outline`,size:`sm`,disabled:f,onClick:()=>V.current?.click(),children:[(0,I.jsx)(M,{size:14}),t(`custom-ui:customUiPage.importFolder`)]}),(0,I.jsxs)(m,{variant:`outline`,size:`sm`,disabled:f,onClick:()=>B.current?.click(),children:[(0,I.jsx)(P,{size:14}),t(`custom-ui:customUiPage.importZip`)]}),f&&(0,I.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:t(`custom-ui:customUiPage.importing`)}),v&&(0,I.jsx)(`span`,{role:`alert`,className:`text-xs text-destructive`,children:v})]}),$=(0,I.jsx)(D,{open:!!L,onOpenChange:e=>!e&&z(``),children:(0,I.jsxs)(T,{children:[(0,I.jsxs)(w,{children:[(0,I.jsx)(E,{children:t(`custom-ui:customUiPage.imported`,{name:L})}),(0,I.jsx)(C,{children:t(`custom-ui:customUiPage.restartHint`)})]}),(0,I.jsxs)(S,{children:[(0,I.jsx)(m,{variant:`outline`,onClick:()=>z(``),children:t(`custom-ui:customUiPage.restartLater`)}),(0,I.jsx)(m,{onClick:()=>window.location.reload(),children:t(`custom-ui:customUiPage.reloadNow`)})]})]})});return H?(0,I.jsx)(`div`,{className:`flex min-h-[100%] items-center justify-center text-[12px] text-[var(--text-muted)]`,children:t(`custom-ui:customUiPage.loading`)}):!i.length&&!W?(0,I.jsxs)(`div`,{className:`flex min-h-[100%] min-w-0 flex-col gap-[12px]`,children:[Q,$,(0,I.jsxs)(k,{className:`flex flex-1 flex-col items-center justify-center gap-[10px] p-[40px_24px] text-center`,children:[(0,I.jsx)(l,{size:28,className:`text-[var(--text-muted)]`}),(0,I.jsx)(`strong`,{className:`text-[14px]`,children:t(`custom-ui:customUiPage.emptyTitle`)}),(0,I.jsx)(`p`,{className:`m-0 max-w-[520px] text-[12px] leading-[1.7] text-[var(--text-secondary)]`,children:t(`custom-ui:customUiPage.emptyHint`)}),s&&(0,I.jsx)(`code`,{className:`max-w-full break-all rounded-[var(--r-sm)] bg-[var(--surface-muted)] px-[8px] py-[4px] text-[11px] text-[var(--text-soft)]`,children:s}),(0,I.jsx)(`p`,{className:`m-0 max-w-[520px] text-[11px] leading-[1.6] text-[var(--text-muted)]`,children:t(`custom-ui:customUiPage.directoryLocationHint`)}),(0,I.jsxs)(m,{variant:`outline`,size:`sm`,disabled:U,onClick:()=>void r.refetch(),children:[(0,I.jsx)(u,{size:13,className:U?`animate-spin`:``}),t(`custom-ui:customUiPage.rescan`)]})]})]}):(0,I.jsxs)(`div`,{className:`flex min-h-[100%] min-w-0 flex-col gap-[12px]`,children:[Q,$,W&&(0,I.jsxs)(O,{children:[(0,I.jsx)(j,{size:14}),(0,I.jsx)(`span`,{children:W})]}),q&&(0,I.jsx)(O,{children:t(`custom-ui:floating.storageFailed`)}),(0,I.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-[12px] lg:grid-cols-[minmax(220px,280px)_minmax(0,1fr)]`,children:[(0,I.jsxs)(A,{className:`flex min-h-0 flex-col gap-[8px] overflow-y-auto p-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between px-1 pt-1`,children:[(0,I.jsx)(`span`,{className:`text-[12px] font-semibold text-[var(--text-secondary)]`,children:t(`custom-ui:customUiPage.installedComponents`,{count:i.length})}),(0,I.jsx)(m,{variant:`ghost`,size:`icon`,className:`h-[26px] w-[26px]`,title:t(`custom-ui:customUiPage.rescan`),"aria-label":t(`custom-ui:customUiPage.rescan`),disabled:U,onClick:()=>void r.refetch(),children:(0,I.jsx)(u,{size:13,className:U?`animate-spin`:``})})]}),i.map(e=>(0,I.jsxs)(`button`,{type:`button`,onClick:()=>d(e.id),className:o(`flex min-w-0 cursor-pointer flex-col gap-[2px] rounded-[var(--r-md)] border-0 px-[10px] py-[8px] text-left transition-colors`,e.id===G?.id?`bg-[var(--accent-soft)] text-[var(--text)]`:`bg-transparent text-[var(--text-secondary)] hover:bg-[var(--surface-muted)]`),children:[(0,I.jsxs)(`span`,{className:`flex min-w-0 items-center gap-[6px]`,children:[(0,I.jsx)(l,{size:13,className:`flex-none text-[var(--star-strong)]`}),(0,I.jsx)(`strong`,{className:`min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-[13px]`,children:h(e,t)})]}),e.builtIn&&(0,I.jsx)(`small`,{className:`pl-[19px] text-xs text-[var(--text-muted)]`,children:t(`custom-ui:builtIn.badge`)}),(0,I.jsx)(`small`,{className:`overflow-hidden text-ellipsis whitespace-nowrap pl-[19px] text-[11px] text-[var(--text-muted)]`,children:e.id})]},e.id)),(0,I.jsx)(`p`,{className:`m-0 mt-auto break-all px-1 pb-1 text-[11px] leading-[1.6] text-[var(--text-muted)]`,children:t(`custom-ui:customUiPage.directoryHint`,{path:s})})]}),G?(0,I.jsx)(R,{component:G,notify:e,floating:J.includes(G.id),onToggleFloating:Y},`${G.id}:${r.dataUpdatedAt}`):(0,I.jsx)(A,{className:`grid place-items-center text-[12px] text-[var(--text-muted)]`,children:t(`custom-ui:customUiPage.selectComponent`)})]})]})}function B({componentId:e,notify:n}){let{t:r}=a(),i=x(),o=i.data?.components.find(t=>t.id===e);return(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,I.jsx)(m,{variant:`ghost`,size:`sm`,asChild:!0,children:(0,I.jsxs)(t,{to:`/chat`,children:[(0,I.jsx)(c,{}),r(`custom-ui:tool.back`)]})}),(0,I.jsx)(m,{variant:`ghost`,size:`sm`,asChild:!0,children:(0,I.jsxs)(t,{to:`/config/interface?view=widgets`,children:[(0,I.jsx)(d,{}),r(`custom-ui:tool.openSettings`)]})})]}),(0,I.jsx)(`div`,{className:`h-[max(520px,calc(100dvh-180px))] min-w-0 overflow-hidden rounded-xl border bg-card`,children:o?(0,I.jsx)(v,{component:o,notify:n}):(0,I.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 p-4 text-sm text-muted-foreground`,role:`status`,children:[i.isPending?r(`custom-ui:customUiPage.loading`):i.error?r(`custom-ui:widget.catalogFailed`):r(`custom-ui:widget.missing`,{id:e}),!i.isPending&&(0,I.jsx)(m,{variant:`outline`,onClick:()=>void i.refetch(),children:r(`custom-ui:widget.retry`)})]})})]})}export{z as CustomUiPage,B as CustomUiToolPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-BSZKFkMb.js";import{t as i}from"./utils-C8uzG5AZ.js";import{t as a}from"./arrow-right-DqLOhpA2.js";import{t as o}from"./bot-B3TaBp_T.js";import{t as s}from"./download-BCfIiuaL.js";import{t as c}from"./key-round-C29uZbsf.js";import{t as l}from"./search-D0mqDaf_.js";import{t as u}from"./server-BgNvmqwJ.js";import{t as d}from"./x-07u4-129.js";import{t as f}from"./button-CQA36izu.js";import{a as p,i as m,o as h,r as g,s as _,t as v}from"./dialog-D-ER2p-D.js";import{t as y}from"./input-CvjGYteF.js";import{n as b,r as x}from"./config-search-CwVhh2uc.js";var S=e(t(),1),C=n();function w({query:e,onQueryChange:t,onSelect:n,inputRef:a}){let{t:o,language:s}=r(),[c,u]=(0,S.useState)(!1),[d,f]=(0,S.useState)(0),p=(0,S.useRef)(null),m=(0,S.useMemo)(()=>x(e,s),[s,e]);(0,S.useEffect)(()=>f(0),[e]),(0,S.useEffect)(()=>{if(!c)return;let e=e=>{p.current&&!p.current.contains(e.target)&&u(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[c]);let h=e=>{if(u(!1),t(``),b(e.entry.card,e.entry.section),e.entry.section===`interface`){let t=e.entry.card===`interface-custom-ui`?`widgets`:`appearance`;n(e.entry.section,t)}else n(e.entry.section)},g=c&&e.trim().length>0;return(0,C.jsxs)(`div`,{ref:p,className:`relative w-[min(250px,24vw)] max-[900px]:w-[190px] max-[650px]:col-start-1 max-[650px]:row-start-1 max-[650px]:w-full max-[650px]:min-w-0`,children:[(0,C.jsx)(l,{size:15,className:`pointer-events-none absolute top-1/2 left-2.5 -translate-y-1/2 text-[var(--text-muted)]`}),(0,C.jsx)(y,{ref:a,value:e,title:o(`navigation:pageHeader.search`),"aria-label":o(`navigation:pageHeader.search`),className:`h-[34px] pl-8 text-[13px] in-data-[density=compact]:h-[30px]`,placeholder:o(`config:configSearch.placeholder`),onChange:e=>{t(e.target.value),u(!0)},onFocus:()=>{e.trim()&&u(!0)},onKeyDown:e=>{e.key===`Escape`?(e.stopPropagation(),t(``),u(!1)):e.key===`ArrowDown`?(e.preventDefault(),f(e=>Math.min(e+1,m.length-1))):e.key===`ArrowUp`?(e.preventDefault(),f(e=>Math.max(e-1,0))):e.key===`Enter`&&m[d]&&(e.preventDefault(),h(m[d]))}}),g&&(0,C.jsx)(`div`,{className:`absolute top-full left-0 z-50 mt-1.5 w-[max(100%,280px)] overflow-hidden rounded-[var(--r-md)] border border-[var(--stroke)] bg-[var(--solid)] shadow-[var(--sh-floating)]`,children:m.length===0?(0,C.jsx)(`p`,{className:`px-3 py-3 text-[12px] text-[var(--text-muted)]`,children:o(`config:configSearch.noResults`)}):(0,C.jsx)(`ul`,{className:`max-h-[280px] overflow-auto py-1`,children:m.map((e,t)=>(0,C.jsx)(`li`,{children:(0,C.jsxs)(`button`,{type:`button`,className:i(`flex w-full flex-col gap-0.5 px-3 py-2 text-left`,t===d?`bg-[var(--accent-soft)]`:`hover:bg-[var(--surface-subtle)]`),onMouseEnter:()=>f(t),onClick:()=>h(e),children:[(0,C.jsx)(`span`,{className:`text-[13px] text-[var(--text)]`,children:e.title}),(0,C.jsx)(`span`,{className:`text-[11px] text-[var(--text-muted)]`,children:e.sectionTitle})]})},e.entry.id))})})]})}function T({open:e,onDismiss:t,onOpenImport:n,onOpenSettings:i}){let{t:l}=r();return(0,C.jsx)(v,{open:e,onOpenChange:e=>!e&&t(),children:(0,C.jsxs)(g,{showCloseButton:!1,overlayClassName:`z-[220] bg-black/40`,className:`z-[220] gap-0 p-0`,style:{maxWidth:`min(28rem, calc(100vw - max(1rem, env(safe-area-inset-left), env(safe-area-inset-right)) - max(1rem, env(safe-area-inset-left), env(safe-area-inset-right))))`,maxHeight:`calc(100dvh - max(1rem, env(safe-area-inset-top), env(safe-area-inset-bottom)) - max(1rem, env(safe-area-inset-top), env(safe-area-inset-bottom)))`},"aria-describedby":`model-onboarding-description`,children:[(0,C.jsxs)(`div`,{className:`relative border-b border-border bg-[var(--accent-soft)] px-5 pt-5 pb-4 max-[650px]:px-4 max-[650px]:pt-4`,children:[(0,C.jsxs)(h,{className:`gap-3 pr-9 text-left`,children:[(0,C.jsx)(`div`,{className:`grid size-11 place-items-center rounded-xl bg-primary text-primary-foreground shadow-sm`,children:(0,C.jsx)(o,{className:`size-5`})}),(0,C.jsxs)(`div`,{className:`space-y-2`,children:[(0,C.jsx)(`p`,{className:`text-xs font-semibold tracking-wide text-primary uppercase`,children:l(`config:modelOnboarding.eyebrow`)}),(0,C.jsx)(_,{className:`text-xl leading-7 font-semibold`,children:l(`config:modelOnboarding.title`)}),(0,C.jsx)(m,{id:`model-onboarding-description`,className:`leading-6`,children:l(`config:modelOnboarding.description`)})]})]}),(0,C.jsx)(f,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`absolute top-3 right-3`,"aria-label":l(`common:ui.closeDialog`),title:l(`common:ui.closeDialog`),onClick:t,children:(0,C.jsx)(d,{})})]}),(0,C.jsxs)(`div`,{className:`grid gap-2.5 px-5 py-4 max-[650px]:px-4`,children:[(0,C.jsxs)(`div`,{className:`flex items-start gap-3 rounded-xl border border-border bg-muted/50 p-3`,children:[(0,C.jsx)(`span`,{className:`grid size-8 shrink-0 place-items-center rounded-lg border border-border bg-background text-primary`,children:(0,C.jsx)(u,{className:`size-4`})}),(0,C.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,C.jsx)(`strong`,{className:`block text-sm font-semibold`,children:l(`config:modelOnboarding.connectionTitle`)}),(0,C.jsx)(`p`,{className:`text-xs leading-5 text-muted-foreground`,children:l(`config:modelOnboarding.connectionDescription`)})]})]}),(0,C.jsxs)(`div`,{className:`flex items-start gap-3 rounded-xl border border-border bg-muted/50 p-3`,children:[(0,C.jsx)(`span`,{className:`grid size-8 shrink-0 place-items-center rounded-lg border border-border bg-background text-primary`,children:(0,C.jsx)(c,{className:`size-4`})}),(0,C.jsxs)(`div`,{className:`min-w-0 space-y-0.5`,children:[(0,C.jsx)(`strong`,{className:`block text-sm font-semibold`,children:l(`config:modelOnboarding.modelTitle`)}),(0,C.jsx)(`p`,{className:`text-xs leading-5 text-muted-foreground`,children:l(`config:modelOnboarding.modelDescription`)})]})]}),(0,C.jsxs)(f,{type:`button`,variant:`outline`,className:`w-full max-[650px]:h-10`,onClick:n,children:[(0,C.jsx)(s,{}),l(`config:modelOnboarding.findExisting`)]})]}),(0,C.jsxs)(p,{className:`m-0 rounded-none px-5 pt-3 max-[650px]:px-4`,style:{paddingBottom:`max(env(safe-area-inset-bottom), 1rem)`},children:[(0,C.jsx)(f,{type:`button`,variant:`ghost`,className:`max-[650px]:h-10`,onClick:t,children:l(`config:modelOnboarding.later`)}),(0,C.jsxs)(f,{type:`button`,className:`max-[650px]:h-10`,onClick:i,children:[l(`config:modelOnboarding.openSettings`),(0,C.jsx)(a,{})]})]})]})})}export{w as ConfigSearchBox,T as ModelOnboardingDialog};
|
package/web/assets/{runtime-capabilities-store-BxCUS5xR.js → runtime-capabilities-store-DaWPY5y-.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./vendor-state-GkUciC5H.js";import{t}from"./api-
|
|
1
|
+
import{o as e}from"./vendor-state-GkUciC5H.js";import{t}from"./api-Dzobr-o_.js";var n={version:0,profile:`desktop`,engine:`node`,degraded:!1,modules:{childProcess:!0,workerThreads:!0,sqlite:!0,wasm:!0},features:{chat:!0,sessions:!0,providers:!0,filesystem:!0,assets:!0,skills:!0,webSearch:!0,visualGeneration:!0,imageProcessing:!0,imageAssets:!0,processes:!0,shell:!0,terminal:!0,vcs:!0,memory:!0,workers:!0,plugins:!0,mcp:!0,goals:!0,plans:!0,multiAgent:!0,channels:!0,workflows:!0,schedules:!0,computerUse:!0,browserAutomation:!0,remoteAccess:!0,desktopPet:!0},tools:[]};function r(e,t){return e.features[t]!==!1}var i={assets:`assets`,channels:`channels`,schedules:`schedules`,memory:`memory`,mcp:`mcp`,skills:`skills`,workflows:`workflows`,workflowCreate:`workflows`,gameAssetWorkbench:`imageAssets`},a={"desktop-pet":`desktopPet`,"remote-access":`remoteAccess`};function o(e,t){let n=i[t];return!n||r(e,n)}function s(e,t){let n=a[t];return!n||r(e,n)}function c(e){let t={...n.features};for(let n of Object.keys(t)){let r=e.features?.[n];typeof r==`boolean`&&(t[n]=r)}let r=[`desktop`,`mobile-embedded`,`mobile-store`].includes(String(e.profile))?e.profile:`desktop`;return{version:Number(e.version)||0,profile:r,engine:e.engine===`pi-rs`?`pi-rs`:`node`,degraded:e.degraded===!0,modules:{childProcess:e.modules?.childProcess!==!1,workerThreads:e.modules?.workerThreads!==!1,sqlite:e.modules?.sqlite!==!1,wasm:e.modules?.wasm!==!1},features:t,tools:Array.isArray(e.tools)?e.tools.filter(e=>typeof e==`string`):[]}}var l=null,u=e()((e,r)=>({capabilities:n,loaded:!1,load:({refresh:i=!0}={})=>l||(!i&&r().loaded?Promise.resolve():(l=(async()=>{try{e({capabilities:c(await t(`/api/runtime/capabilities`)),loaded:!0})}catch{e({capabilities:n,loaded:!0})}})().finally(()=>{l=null}),l))}));export{o as a,r as i,n,s as r,u as t};
|
package/web/assets/{session-change-summary-api-x1sTdOgD.js → session-change-summary-api-DFgTzTci.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./api-
|
|
1
|
+
import{t as e}from"./api-Dzobr-o_.js";import{i as t}from"./startup-queries-CAQZvUIR.js";function n(e){if(!e||typeof e!=`object`)throw Error(`Invalid change summary`);let t=e;if(t.status!==`known`&&t.status!==`partial`&&t.status!==`unavailable`||!Number.isInteger(t.unknownFiles)||Number(t.unknownFiles)<0||typeof t.capped!=`boolean`||![`changedFiles`,`pendingFiles`,`added`,`removed`].every(e=>t.status===`known`?Number.isInteger(t[e])&&Number(t[e])>=0:t[e]===null))throw Error(`Invalid change summary`);return t}async function r(t){return n(await e(`/api/sessions/${encodeURIComponent(t)}/change-summary`))}function i(e){return t.invalidateQueries({queryKey:[`session-change-summary`,e]})}export{i as n,r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./api-
|
|
1
|
+
import{t as e}from"./api-Dzobr-o_.js";import{s as t}from"./events-Bwv6HmwM.js";var n=class extends Error{code=`invalid_session_organization_response`};function r(e){if(!e||typeof e!=`object`)throw new n;let{id:t,pinned:r,archived:i,unread:a,needsAttention:o,attentionReason:s}=e;if(typeof t!=`string`||!t||typeof r!=`boolean`||typeof i!=`boolean`||typeof a!=`boolean`||typeof o!=`boolean`||s!==null&&s!==`approval`&&s!==`failure`)throw new n;return{id:t,pinned:r,archived:i,unread:a,needsAttention:o,attentionReason:s}}async function i(i,a){if(!i||!Object.keys(a).length)throw new n;let o=r(await e(`/api/sessions/${encodeURIComponent(i)}/organization`,{method:`PATCH`,body:JSON.stringify(a)}));if(o.id!==i)throw new n;return t(o),o}function a(e,t){let n=new Set(t.map(e=>e.id)),r=e.filter(e=>!n.has(e.id));return[...t,...r]}function o(e,{id:t,name:n}){return e.some(e=>e.id===t&&e.name!==n)?e.map(e=>e.id===t?{...e,name:n}:e):e}function s(){let e=0,t=new Map;return{getRevision:()=>e,record({id:n,name:r}){t.set(n,{name:r,revision:++e})},remove(e){for(let n of e)t.delete(n)},reconcile(e,n){return e.map(e=>{let r=t.get(e.id);return r&&r.revision>n&&r.name!==e.name?{...e,name:r.name}:e})}}}function c(e,t){return e.some(e=>e.id===t.id)?e.map(e=>e.id===t.id?{...e,pinned:t.pinned,archived:t.archived,unread:t.unread,needsAttention:t.needsAttention,attentionReason:t.attentionReason}:e):e}function l(e){return[...e].sort((e,t)=>Number(!!t.pinned)-Number(!!e.pinned)||(Date.parse(t.modified||``)||0)-(Date.parse(e.modified||``)||0))}function u(e){for(let t of e){let e=typeof t.cwd==`string`?t.cwd.trim():``;if(e)return e}return``}function d(e,t){return!e||t?.paired===!0&&t.mode===`remote`}function f(e,t,n=!0){return e||(n?u(t):``)}export{l as a,n as c,a as i,i as l,o as n,f as o,s as r,d as s,c as t};
|