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.
Files changed (65) hide show
  1. package/package.json +7 -7
  2. package/web/.vite/manifest.json +256 -256
  3. package/web/assets/{AppOverlays-D-yAp1vf.js → AppOverlays-CR5iJcP5.js} +1 -1
  4. package/web/assets/{AppShortcuts-CtNLVerh.js → AppShortcuts-BachmLQ3.js} +1 -1
  5. package/web/assets/{AssetsPage-DOzB9Wnk.js → AssetsPage-BltehMID.js} +1 -1
  6. package/web/assets/{ChannelsPage-DAPrpSTC.js → ChannelsPage-Tuw_qicj.js} +1 -1
  7. package/web/assets/{ChatAppearancePage-Q8jLnp7A.js → ChatAppearancePage-DME3PgDr.js} +2 -2
  8. package/web/assets/{ChatDockView-1fxZrR7W.js → ChatDockView-DoGtrBpY.js} +1 -1
  9. package/web/assets/{ChatHistoryPage-Bpyxsay_.js → ChatHistoryPage-DTXS6i3n.js} +1 -1
  10. package/web/assets/{ChatPage-CVOjCtOP.js → ChatPage-ibc_7olm.js} +3 -3
  11. package/web/assets/{ConfigPage-sVAdZytK.js → ConfigPage-CI6one5Y.js} +1 -1
  12. package/web/assets/{DecisionsPage-zq88dfkB.js → DecisionsPage-DOhLbIaD.js} +1 -1
  13. package/web/assets/{DesktopWindowControls-DYmSShHE.js → DesktopWindowControls-KmgemDO8.js} +1 -1
  14. package/web/assets/{FloatingWidgets-CFY30wFr.js → FloatingWidgets-Bs7ec6lW.js} +1 -1
  15. package/web/assets/{GitDiffViewer-BZV0A9mh.js → GitDiffViewer-xm2LnN9r.js} +1 -1
  16. package/web/assets/{MarkdownMessage-_VrT_sON.js → MarkdownMessage-H1336cMr.js} +1 -1
  17. package/web/assets/{McpPage-ROftSC8m.js → McpPage-Ck-7aLuZ.js} +1 -1
  18. package/web/assets/{MemoryPage-DkBjt-3Y.js → MemoryPage-BEdNJ3ot.js} +1 -1
  19. package/web/assets/{MobileContextScreen-BEss6aR9.js → MobileContextScreen-Dasny2J9.js} +2 -2
  20. package/web/assets/{MobileThreePane-DjyMuG9k.js → MobileThreePane-DEKMHPfN.js} +1 -1
  21. package/web/assets/{PageHeader-DyoCht8Y.js → PageHeader-C_bfu8Ir.js} +1 -1
  22. package/web/assets/{PluginsPage-DjaIps8G.js → PluginsPage-BPx5ERHL.js} +1 -1
  23. package/web/assets/{QuickPromptIdeas-B8P77vjW.js → QuickPromptIdeas-Bs-udcSZ.js} +1 -1
  24. package/web/assets/{SchedulesPage-CsJS8r9L.js → SchedulesPage-W4Mg7frl.js} +1 -1
  25. package/web/assets/{SessionContextPanel-BYlJfIxm.js → SessionContextPanel-lu9F9AJg.js} +1 -1
  26. package/web/assets/{SessionFilesPane-DWuwTplj.js → SessionFilesPane-BIRQ_hHi.js} +2 -2
  27. package/web/assets/{SidebarMoreTools-C2kAUJm0.js → SidebarMoreTools-BDqt5VTG.js} +1 -1
  28. package/web/assets/{SidebarRecentSessions-CoaY-U88.js → SidebarRecentSessions-1G_huYu9.js} +1 -1
  29. package/web/assets/{SidebarSettingsButton-BvmP3q5N.js → SidebarSettingsButton-B4_vEBS5.js} +1 -1
  30. package/web/assets/{SidebarUpdateStatus-DHxZy6-o.js → SidebarUpdateStatus-DD8f4Fxv.js} +1 -1
  31. package/web/assets/{SkillsPage-CX55drgE.js → SkillsPage-CpRRosmo.js} +1 -1
  32. package/web/assets/{TerminalPanel-gBBjaBlu.js → TerminalPanel-DVKC4htc.js} +1 -1
  33. package/web/assets/{ThemeToggleButton-D6NR_guG.js → ThemeToggleButton-CXXbLtcY.js} +1 -1
  34. package/web/assets/{WebDesktopPet-BKP_jSW2.js → WebDesktopPet-DWFspeZE.js} +1 -1
  35. package/web/assets/{WorkbenchSidebarToggle-Kxa_tpUy.js → WorkbenchSidebarToggle-AgjfcT29.js} +1 -1
  36. package/web/assets/{WorkflowsPage-CNVCHm3u.js → WorkflowsPage-bhQlHSzS.js} +1 -1
  37. package/web/assets/{api-BbC90EzT.js → api-Dzobr-o_.js} +1 -1
  38. package/web/assets/catalog-D4eaIju4.js +1 -0
  39. package/web/assets/{chat-api-BWIsQYmQ.js → chat-api-DfnvubiW.js} +1 -1
  40. package/web/assets/{client-store-CAjI7P8I.js → client-store-DPMvgPNS.js} +1 -1
  41. package/web/assets/{component-api-CQ_xu0Wa.js → component-api-Nwo2yGZI.js} +1 -1
  42. package/web/assets/{config-search-BnPZPrUR.js → config-search-CwVhh2uc.js} +1 -1
  43. package/web/assets/{events-DJwBfKGM.js → events-Bwv6HmwM.js} +1 -1
  44. package/web/assets/{floating-widgets-store-DGeXH0NK.js → floating-widgets-store-DIy4GSy4.js} +2 -2
  45. package/web/assets/{http-BrDjjNkv.js → http-DphgzWtw.js} +1 -1
  46. package/web/assets/{i18n-Bo7twSO7.js → i18n-7QvbQzOQ.js} +1 -1
  47. package/web/assets/{index-IemAtsU4.js → index-iBrSU61i.js} +2 -2
  48. package/web/assets/{local-path-reveal-BSjf-Pum.js → local-path-reveal-DWhkyox-.js} +1 -1
  49. package/web/assets/{mount-app-AtqeFC4t.js → mount-app-n_05p6iW.js} +3 -3
  50. package/web/assets/{pick-system-directory-Wa63igLM.js → pick-system-directory-R1F5WyaB.js} +1 -1
  51. package/web/assets/{public-CsBeGSro.js → public-BcTP7F3I.js} +1 -1
  52. package/web/assets/{public-components-BYWnKxmu.js → public-components-Ck5BYo6M.js} +1 -1
  53. package/web/assets/{runtime-capabilities-store-BxCUS5xR.js → runtime-capabilities-store-DaWPY5y-.js} +1 -1
  54. package/web/assets/{session-change-summary-api-x1sTdOgD.js → session-change-summary-api-DFgTzTci.js} +1 -1
  55. package/web/assets/{session-list-DPpH_zbz.js → session-list-CMaoK_ZX.js} +1 -1
  56. package/web/assets/{session-streaming-state-OU65zaiO.js → session-streaming-state-llCTupbI.js} +1 -1
  57. package/web/assets/{shortcuts-B3q7nKdq.js → shortcuts-BO-h6OmP.js} +1 -1
  58. package/web/assets/{speech-session-BB9aLyRQ.js → speech-session-DKjw0mV_.js} +1 -1
  59. package/web/assets/{startup-queries-C-Xq7N50.js → startup-queries-CAQZvUIR.js} +1 -1
  60. package/web/assets/{ui-store-3r51KJe8.js → ui-store-2wpnH8Kf.js} +1 -1
  61. package/web/assets/{use-i18n-DyzoXal-.js → use-i18n-BSZKFkMb.js} +1 -1
  62. package/web/assets/{useCustomUiComponents-B3Z-pphj.js → useCustomUiComponents-BH86kuaq.js} +1 -1
  63. package/web/assets/{web-preview-panel-DNEqdotS.js → web-preview-panel-DVQxVfig.js} +4 -4
  64. package/web/index.html +1 -1
  65. package/web/assets/catalog-BPgyo6Yf.js +0 -1
@@ -1 +1 @@
1
- import{n as e,r as t}from"./http-BrDjjNkv.js";import{i as n}from"./api-BbC90EzT.js";import{r,t as i}from"./startup-queries-C-Xq7N50.js";var a=e=>`/api/sessions/${encodeURIComponent(e)}`;async function o(t,n={}){let i=await e(t,n);return n.method&&n.method!==`GET`&&(/^\/api\/sessions(?:$|\/[^/]+(?:\/(?:derive|model|cwd|execution-mode|run-mode|thinking-level|goal|tree\/navigate))?$)/.test(t)&&r(`sessions`),t===`/api/settings/compaction`&&r(`config`)),i}var s={listSessions:({refresh:e=!0}={})=>i(`sessions`,e),searchSessionTreeLabels:(e,t=20)=>o(`/api/session-labels?${new URLSearchParams({query:e,limit:String(t)})}`),listSessionTreeLabels:(e=500)=>o(`/api/session-labels?limit=${e}`),createSession:(e,t=``)=>o(`/api/sessions`,{method:`POST`,data:{name:e,cwd:t||null}}),deriveSession:(e,t,n)=>o(`${a(e)}/derive`,{method:`POST`,data:{boundaryEntryId:t,name:n}}),getSessionTree:e=>o(`${a(e)}/tree`),navigateSessionTree:(e,t,n)=>o(`${a(e)}/tree/navigate`,{method:`POST`,data:{targetEntryId:t,summarize:n},timeout:18e4}),navigateSessionTreeTarget:(e,t)=>o(`${a(e)}/tree/navigate`,{method:`POST`,data:{targetEntryId:t,summarize:!1,includeTree:!1},timeout:18e4}),setSessionTreeLabel:(e,t,n)=>o(`${a(e)}/tree/labels/${encodeURIComponent(t)}`,{method:`PUT`,data:{label:n}}),getSessionCommands:e=>o(`${a(e)}/commands`),getConfig:({refresh:e=!1}={})=>i(`config`,e),updateCompactionPreference:e=>o(`/api/settings/compaction`,{method:`PATCH`,data:{thresholdPercent:e}}),getLiveSession:(e,t={})=>o(`${a(e)}/live`,t),getMessages:(e,t)=>{let n=new URLSearchParams({limit:String(t.limit)});return t.before&&n.set(`before`,t.before),o(`${a(e)}/messages?${n}`)},openStream:async(e,r)=>{await n({open:async()=>(await t(),fetch(`/api/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})),resume:async(e,n)=>(await t(),fetch(`/api/runs/${encodeURIComponent(e)}/events?after=${n}`)),onEvent:r})},retryLastTurn:async(e,r)=>{await n({open:async()=>(await t(),fetch(`${a(e)}/retry`,{method:`POST`})),resume:async(e,n)=>(await t(),fetch(`/api/runs/${encodeURIComponent(e)}/events?after=${n}`)),onEvent:r})},queueInput:(e,t,n,r)=>o(`${a(e)}/input`,{method:`POST`,data:{message:t,attachments:n,behavior:r}}),withdrawQueuedInput:(e,t)=>o(`${a(e)}/input/${encodeURIComponent(t)}`,{method:`DELETE`}),compactSession:e=>o(`${a(e)}/compact`,{method:`POST`,data:{},timeout:18e4}),getSessionWorkflowRuns:(e,t)=>o(`${a(e)}/workflow-runs`,{signal:t}),resolveWorkflowApproval:(e,t,n)=>o(`/api/workflow-runs/${encodeURIComponent(e)}/approvals/${encodeURIComponent(t)}`,{method:`POST`,data:{approved:n}}),stopWorkflowRun:e=>o(`/api/workflow-runs/${encodeURIComponent(e)}/stop`,{method:`POST`,data:{}}),abort:e=>o(`${a(e)}/abort`,{method:`POST`,data:{}}),resolveMobileOperation:(e,t,n)=>o(`${a(e)}/mobile-operations/${encodeURIComponent(t)}`,{method:`POST`,data:n}),pauseGoal:e=>o(`${a(e)}/goal`,{method:`PATCH`,data:{action:`pause`}}),setGoalBudget:(e,t)=>o(`${a(e)}/goal`,{method:`PATCH`,data:{action:`set-budget`,tokenBudget:t}}),getGitChanges:e=>o(`${a(e)}/git/changes`),commitGitChanges:(e,t)=>o(`${a(e)}/git/commit`,{method:`POST`,data:{message:t},timeout:6e4}),pushGitChanges:e=>o(`${a(e)}/git/push`,{method:`POST`,data:{},timeout:15e4}),revertGitChanges:e=>o(`${a(e)}/git/revert`,{method:`POST`,data:{},timeout:6e4}),getVcsChanges:e=>o(`${a(e)}/vcs/changes`),getFileDiff:(e,t)=>o(`${a(e)}/vcs/file-diff?path=${encodeURIComponent(t)}`),commitVcsChanges:(e,t)=>o(`${a(e)}/vcs/commit`,{method:`POST`,data:{message:t},timeout:15e4}),pushVcsChanges:e=>o(`${a(e)}/vcs/push`,{method:`POST`,data:{},timeout:15e4}),revertVcsChanges:e=>o(`${a(e)}/vcs/revert`,{method:`POST`,data:{},timeout:6e4}),getSessionFileChanges:(e,t={})=>o(`${a(e)}/file-changes`,t),getSessionFileChangeDiff:(e,t)=>o(`${a(e)}/file-changes/diff?path=${encodeURIComponent(t)}`),revertSessionFileChanges:(e,t=``)=>o(`${a(e)}/file-changes/revert`,{method:`POST`,data:{path:t},timeout:6e4}),approveSessionFileChanges:(e,t=``)=>o(`${a(e)}/file-changes/approve`,{method:`POST`,data:{path:t}}),updateModel:(e,t,n)=>o(`${a(e)}/model`,{method:`PUT`,data:{provider:t,model:n}}),getThinkingLevel:e=>o(`${a(e)}/thinking-level`),setThinkingLevel:(e,t)=>o(`${a(e)}/thinking-level`,{method:`PUT`,data:{level:t}}),updateExecutionMode:(e,t)=>o(`${a(e)}/execution-mode`,{method:`PUT`,data:{mode:t}}),updateRunMode:(e,t)=>o(`${a(e)}/run-mode`,{method:`PUT`,data:{mode:t}}),resolveApproval:(e,t,n)=>o(`${a(e)}/approvals/${encodeURIComponent(t)}`,{method:`POST`,data:{approved:n}}),updateCwd:(e,t)=>o(`${a(e)}/cwd`,{method:`PUT`,data:{cwd:t}}),renameSession:(e,t)=>o(a(e),{method:`PATCH`,data:{name:t}})};export{s as t};
1
+ import{n as e,r as t}from"./http-DphgzWtw.js";import{i as n}from"./api-Dzobr-o_.js";import{r,t as i}from"./startup-queries-CAQZvUIR.js";var a=e=>`/api/sessions/${encodeURIComponent(e)}`;async function o(t,n={}){let i=await e(t,n);return n.method&&n.method!==`GET`&&(/^\/api\/sessions(?:$|\/[^/]+(?:\/(?:derive|model|cwd|execution-mode|run-mode|thinking-level|goal|tree\/navigate))?$)/.test(t)&&r(`sessions`),t===`/api/settings/compaction`&&r(`config`)),i}var s={listSessions:({refresh:e=!0}={})=>i(`sessions`,e),searchSessionTreeLabels:(e,t=20)=>o(`/api/session-labels?${new URLSearchParams({query:e,limit:String(t)})}`),listSessionTreeLabels:(e=500)=>o(`/api/session-labels?limit=${e}`),createSession:(e,t=``)=>o(`/api/sessions`,{method:`POST`,data:{name:e,cwd:t||null}}),deriveSession:(e,t,n)=>o(`${a(e)}/derive`,{method:`POST`,data:{boundaryEntryId:t,name:n}}),getSessionTree:e=>o(`${a(e)}/tree`),navigateSessionTree:(e,t,n)=>o(`${a(e)}/tree/navigate`,{method:`POST`,data:{targetEntryId:t,summarize:n},timeout:18e4}),navigateSessionTreeTarget:(e,t)=>o(`${a(e)}/tree/navigate`,{method:`POST`,data:{targetEntryId:t,summarize:!1,includeTree:!1},timeout:18e4}),setSessionTreeLabel:(e,t,n)=>o(`${a(e)}/tree/labels/${encodeURIComponent(t)}`,{method:`PUT`,data:{label:n}}),getSessionCommands:e=>o(`${a(e)}/commands`),getConfig:({refresh:e=!1}={})=>i(`config`,e),updateCompactionPreference:e=>o(`/api/settings/compaction`,{method:`PATCH`,data:{thresholdPercent:e}}),getLiveSession:(e,t={})=>o(`${a(e)}/live`,t),getMessages:(e,t)=>{let n=new URLSearchParams({limit:String(t.limit)});return t.before&&n.set(`before`,t.before),o(`${a(e)}/messages?${n}`)},openStream:async(e,r)=>{await n({open:async()=>(await t(),fetch(`/api/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})),resume:async(e,n)=>(await t(),fetch(`/api/runs/${encodeURIComponent(e)}/events?after=${n}`)),onEvent:r})},retryLastTurn:async(e,r)=>{await n({open:async()=>(await t(),fetch(`${a(e)}/retry`,{method:`POST`})),resume:async(e,n)=>(await t(),fetch(`/api/runs/${encodeURIComponent(e)}/events?after=${n}`)),onEvent:r})},queueInput:(e,t,n,r)=>o(`${a(e)}/input`,{method:`POST`,data:{message:t,attachments:n,behavior:r}}),withdrawQueuedInput:(e,t)=>o(`${a(e)}/input/${encodeURIComponent(t)}`,{method:`DELETE`}),compactSession:e=>o(`${a(e)}/compact`,{method:`POST`,data:{},timeout:18e4}),getSessionWorkflowRuns:(e,t)=>o(`${a(e)}/workflow-runs`,{signal:t}),resolveWorkflowApproval:(e,t,n)=>o(`/api/workflow-runs/${encodeURIComponent(e)}/approvals/${encodeURIComponent(t)}`,{method:`POST`,data:{approved:n}}),stopWorkflowRun:e=>o(`/api/workflow-runs/${encodeURIComponent(e)}/stop`,{method:`POST`,data:{}}),abort:e=>o(`${a(e)}/abort`,{method:`POST`,data:{}}),resolveMobileOperation:(e,t,n)=>o(`${a(e)}/mobile-operations/${encodeURIComponent(t)}`,{method:`POST`,data:n}),pauseGoal:e=>o(`${a(e)}/goal`,{method:`PATCH`,data:{action:`pause`}}),setGoalBudget:(e,t)=>o(`${a(e)}/goal`,{method:`PATCH`,data:{action:`set-budget`,tokenBudget:t}}),getGitChanges:e=>o(`${a(e)}/git/changes`),commitGitChanges:(e,t)=>o(`${a(e)}/git/commit`,{method:`POST`,data:{message:t},timeout:6e4}),pushGitChanges:e=>o(`${a(e)}/git/push`,{method:`POST`,data:{},timeout:15e4}),revertGitChanges:e=>o(`${a(e)}/git/revert`,{method:`POST`,data:{},timeout:6e4}),getVcsChanges:e=>o(`${a(e)}/vcs/changes`),getFileDiff:(e,t)=>o(`${a(e)}/vcs/file-diff?path=${encodeURIComponent(t)}`),commitVcsChanges:(e,t)=>o(`${a(e)}/vcs/commit`,{method:`POST`,data:{message:t},timeout:15e4}),pushVcsChanges:e=>o(`${a(e)}/vcs/push`,{method:`POST`,data:{},timeout:15e4}),revertVcsChanges:e=>o(`${a(e)}/vcs/revert`,{method:`POST`,data:{},timeout:6e4}),getSessionFileChanges:(e,t={})=>o(`${a(e)}/file-changes`,t),getSessionFileChangeDiff:(e,t)=>o(`${a(e)}/file-changes/diff?path=${encodeURIComponent(t)}`),revertSessionFileChanges:(e,t=``)=>o(`${a(e)}/file-changes/revert`,{method:`POST`,data:{path:t},timeout:6e4}),approveSessionFileChanges:(e,t=``)=>o(`${a(e)}/file-changes/approve`,{method:`POST`,data:{path:t}}),updateModel:(e,t,n)=>o(`${a(e)}/model`,{method:`PUT`,data:{provider:t,model:n}}),getThinkingLevel:e=>o(`${a(e)}/thinking-level`),setThinkingLevel:(e,t)=>o(`${a(e)}/thinking-level`,{method:`PUT`,data:{level:t}}),updateExecutionMode:(e,t)=>o(`${a(e)}/execution-mode`,{method:`PUT`,data:{mode:t}}),updateRunMode:(e,t)=>o(`${a(e)}/run-mode`,{method:`PUT`,data:{mode:t}}),resolveApproval:(e,t,n)=>o(`${a(e)}/approvals/${encodeURIComponent(t)}`,{method:`POST`,data:{approved:n}}),updateCwd:(e,t)=>o(`${a(e)}/cwd`,{method:`PUT`,data:{cwd:t}}),renameSession:(e,t)=>o(a(e),{method:`PATCH`,data:{name:t}})};export{s as t};
@@ -1 +1 @@
1
- import{o as e}from"./vendor-state-GkUciC5H.js";import{t}from"./api-BbC90EzT.js";function n(){return typeof window<`u`&&window.__PISPER_MOBILE_APP__===!0}var r=null,i=!1,a=e()(e=>({client:n()?`mobile-app`:`web`,loaded:n(),load:({refresh:a=!0}={})=>r||(!a&&i?Promise.resolve():(r=(async()=>{let r=n();r&&e({client:`mobile-app`,loaded:!0});try{let n=await t(`/api/client-info`);e({client:r||n.client===`mobile-app`?`mobile-app`:`web`,loaded:!0})}catch{e({client:r?`mobile-app`:`web`,loaded:!0})}})().finally(()=>{i=!0,r=null}),r))}));function o(){return a(e=>e.client===`mobile-app`)}export{o as n,a as t};
1
+ import{o as e}from"./vendor-state-GkUciC5H.js";import{t}from"./api-Dzobr-o_.js";function n(){return typeof window<`u`&&window.__PISPER_MOBILE_APP__===!0}var r=null,i=!1,a=e()(e=>({client:n()?`mobile-app`:`web`,loaded:n(),load:({refresh:a=!0}={})=>r||(!a&&i?Promise.resolve():(r=(async()=>{let r=n();r&&e({client:`mobile-app`,loaded:!0});try{let n=await t(`/api/client-info`);e({client:r||n.client===`mobile-app`?`mobile-app`:`web`,loaded:!0})}catch{e({client:r?`mobile-app`:`web`,loaded:!0})}})().finally(()=>{i=!0,r=null}),r))}));function o(){return a(e=>e.client===`mobile-app`)}export{o as n,a as t};
@@ -1 +1 @@
1
- import{i as e,n as t,t as n}from"./http-BrDjjNkv.js";import{i as r,n as i,o as a,r as o,t as s}from"./sprite-engine-catalog-D1HQWa1X.js";function c(e=`workflow_image_invalid_edits`){return Object.assign(Error(e),{code:e,statusCode:400})}function l(e){if(!e||typeof e!=`object`||Array.isArray(e))throw c();return e}function u(e,t,n,r){if(e===void 0)return t;if(typeof e!=`number`||!Number.isFinite(e)||e<n||e>r)throw c();return e}function d(e){let t=l(e);if(!Array.isArray(t.frames)||t.frames.length<1||t.frames.length>512)throw c();let n=0;return{frames:t.frames.map(e=>{let t=l(e);if(!Number.isSafeInteger(t.sourceIndex)||typeof t.sourceIndex!=`number`||t.sourceIndex<0||t.sourceIndex>511)throw c();let r=t.eraseStrokes===void 0?[]:t.eraseStrokes;if(!Array.isArray(r)||r.length>64)throw c();let i=u(t.durationMs,125,16,1e4);if(!Number.isSafeInteger(i))throw c();return{sourceIndex:t.sourceIndex,x:u(t.x,0,-4096,4096),y:u(t.y,0,-4096,4096),rotation:u(t.rotation,0,-360,360),scale:u(t.scale,1,.05,8),opacity:u(t.opacity,1,0,1),durationMs:i,eraseStrokes:r.map(e=>{let t=l(e);if(!Array.isArray(t.points)||t.points.length<1||t.points.length>512||t.restore!==void 0&&typeof t.restore!=`boolean`)throw c();if(n+=t.points.length,n>2e4)throw c(`workflow_image_too_large`);let r=u(t.radius,NaN,.001,.25);if(!Number.isFinite(r))throw c();return{radius:r,restore:t.restore===!0,points:t.points.map(e=>{let t=l(e),n=u(t.x,NaN,0,1),r=u(t.y,NaN,0,1);if(!Number.isFinite(n)||!Number.isFinite(r))throw c();return{x:n,y:r}})}})}})}}var f=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,p=[`id`,`name`,`prompt`,`reference`,`originalReference`,`frameCount`,`directions`,`model`,`actions`],m=[`running`,`completed`,`failed`,`cancelled`,`interrupted`],h=class extends Error{constructor(e,t=400){super(e),this.code=e,this.statusCode=t}};function g(){throw new h(`game_assets_invalid`)}function _(e,t){return!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).some(e=>!t.includes(e))?g():e}function v(e,t,n=!1){return typeof e!=`string`||e.length>t||n&&!e.trim()?g():e.trim()}function y(e){return typeof e!=`string`||!f.test(e)?g():e}function b(e){return typeof e!=`string`||!Number.isFinite(Date.parse(e))||new Date(e).toISOString()!==e?g():e}function x(e,t,n){return typeof e!=`number`||!Number.isSafeInteger(e)||e<t||e>n?g():e}function S(e){if(e==null)return null;try{let t=a(e);return t.mimeType.startsWith(`image/`)?t:g()}catch{return g()}}function C(e){let t=_(e,p),n=t.directions??[...i],r=t.actions??[];if(!Array.isArray(n)||!n.length||n.length>8||n.some(e=>!i.some(t=>t===e))||new Set(n).size!==n.length||!Array.isArray(r)||r.length>8)return g();let a=x(t.frameCount===void 0?4:t.frameCount,1,16),o=r.map(e=>{let t=_(e,[`id`,`name`,`prompt`,`enabled`]);return typeof t.id!=`string`||!/^[A-Za-z0-9][A-Za-z0-9_-]{0,39}$/.test(t.id)||typeof t.enabled!=`boolean`?g():{id:t.id,name:v(t.name,100,!0),prompt:v(t.prompt??``,2e3),enabled:t.enabled}});if(new Set(o.map(e=>e.id)).size!==o.length||o.filter(e=>e.enabled).length*n.length*a>512)return g();let s=null;if(t.model!==null&&t.model!==void 0){let e=_(t.model,[`provider`,`model`]);s={provider:v(e.provider,200,!0),model:v(e.model,300,!0)}}return{...t.id===void 0?{}:{id:y(t.id)},name:v(t.name,100,!0),prompt:v(t.prompt??``,8e3),reference:S(t.reference),originalReference:S(t.originalReference),frameCount:a,directions:[...n],model:s,actions:o}}function w(e){let{createdAt:t,updatedAt:n,...r}=_(e,[...p,`createdAt`,`updatedAt`]);return{...C(r),id:y(r.id),createdAt:b(t),updatedAt:b(n)}}function T(e){let t=_(e,[`id`,`projectId`,`status`,`startedAt`,`finishedAt`,`completed`,`total`,`error`,`output`,`originalOutput`,`edits`,`revision`]);if(typeof t.status!=`string`||!m.includes(t.status)||t.error!==null&&(typeof t.error!=`string`||!/^(?:game_assets|workflow_image|workflow_media|sprite_engine)_[a-z_]{1,60}$/.test(t.error)))return g();let n=x(t.total,1,8),i=x(t.completed,0,n);if(t.status===`running`!=(t.finishedAt===null)||t.status===`completed`&&i!==n)return g();let a,o,s;try{if(a=r(t.output),o=r(t.originalOutput),t.edits!==void 0&&(s=d(t.edits),s.frames.some(e=>e.sourceIndex>=o.frames.length)||s.frames.length!==a.frames.length))return g()}catch{return g()}return{id:y(t.id),projectId:y(t.projectId),status:t.status,startedAt:b(t.startedAt),finishedAt:t.finishedAt===null?null:b(t.finishedAt),completed:i,total:n,error:t.error,output:a,originalOutput:o,revision:x(t.revision,0,2**53-1),...s?{edits:s}:{}}}function E(e){let t=_(e,[`projects`,`jobs`]);if(!Array.isArray(t.projects)||t.projects.length>100||!Array.isArray(t.jobs)||t.jobs.length>100)return g();let n=t.projects.map(w),r=t.jobs.map(T);return new Set(n.map(e=>e.id)).size!==n.length||new Set(r.map(e=>e.id)).size!==r.length||r.some(e=>!n.some(t=>t.id===e.projectId))?g():{projects:n,jobs:r}}function D(t){if(!t||typeof t!=`object`||Array.isArray(t))throw e();return t}function O(t){if(typeof t!=`string`||!/^[0-9a-f-]{36}$/i.test(t))throw e();return encodeURIComponent(t)}function k(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)}function A(t){let n=D(t),r=E({projects:n.projects,jobs:n.jobs});if(!Array.isArray(n.models)||n.models.length>1e3)throw e();let i=n.models.map(t=>{let n=D(t);if(typeof n.id!=`string`||typeof n.name!=`string`||typeof n.providerId!=`string`||typeof n.providerName!=`string`||!n.id.startsWith(n.providerId+`/`))throw e();return{id:n.id,name:n.name,providerId:n.providerId,providerName:n.providerName}});return{...r,models:i,engines:s({engines:n.engines}).engines}}var j=e=>`/api/game-assets/media/${O(e)}/content`;async function M(r,i,c){if(c.throwIfAborted(),r===`gameAssets.list`)return t(`/api/game-assets`,{signal:c,parse:A});if(r===`gameAssets.save`){let e=C(i);return t(e.id?`/api/game-assets/projects/${O(e.id)}`:`/api/game-assets/projects`,{method:e.id?`PATCH`:`POST`,data:e,signal:c,parse:w})}if(r===`gameAssets.remove`)return t(`/api/game-assets/projects/${O(i.id)}`,{method:`DELETE`,signal:c});if(r===`gameAssets.run`||r===`gameAssets.stop`){let e=r===`gameAssets.run`?`/api/game-assets/projects/${O(i.id)}/run`:`/api/game-assets/jobs/${O(i.jobId)}/stop`;return t(e,{method:`POST`,data:{},signal:c,parse:e=>({job:T(D(e).job)})})}if(r===`gameAssets.editFrames`)return t(`/api/game-assets/jobs/${O(i.jobId)}/frames`,{method:`POST`,data:d(i.edits),signal:c,timeout:12e4,parse:T});if(r===`gameAssets.export`){let r=await t(`/api/game-assets/jobs/${O(i.jobId)}`,{signal:c,parse:T});if(!r.output.atlas)throw e();if(i.format===`png`){let e=await n(j(r.output.atlas.media.id),{signal:c});c.throwIfAborted(),k(e,`game-assets.png`)}else if(i.format===`json`)k(new Blob([JSON.stringify(r.output.atlas,null,2)],{type:`application/json`}),`game-assets.json`);else throw e();return null}if(r===`gameAssets.uploadImage`){if(!(i.buffer instanceof ArrayBuffer)||!i.buffer.byteLength||i.buffer.byteLength>8388608||![`image/png`,`image/jpeg`,`image/webp`].includes(String(i.mimeType))||typeof i.name!=`string`||i.name.length>200)throw e();return t(`/api/game-assets/media?name=${encodeURIComponent(i.name)}`,{method:`POST`,data:new Blob([i.buffer],{type:String(i.mimeType)}),signal:c,parse:a})}if(r===`gameAssets.image`){let t=await n(j(i.id),{signal:c});if(t.size>8388608||![`image/png`,`image/jpeg`,`image/webp`].includes(t.type))throw e();return{buffer:await t.arrayBuffer(),mimeType:t.type}}if(r===`gameAssets.process`){if(![`background`,`inpaint`].includes(String(i.operation)))throw e();return t(`/api/game-assets/process`,{method:`POST`,signal:c,timeout:12e4,data:{reference:a(i.reference),operation:i.operation,image:o(i.image)},parse:a})}if(r===`gameAssets.engine`){if(i.id!==`background`&&i.id!==`inpaint`||i.action!==`download`&&i.action!==`cancel`)throw e();return t(`/api/game-assets/engines/${i.id}/${i.action}`,{method:`POST`,data:{},signal:c,parse:s})}throw e()}export{M as handleGameAssetComponentRequest};
1
+ import{i as e,n as t,t as n}from"./http-DphgzWtw.js";import{i as r,n as i,o as a,r as o,t as s}from"./sprite-engine-catalog-D1HQWa1X.js";function c(e=`workflow_image_invalid_edits`){return Object.assign(Error(e),{code:e,statusCode:400})}function l(e){if(!e||typeof e!=`object`||Array.isArray(e))throw c();return e}function u(e,t,n,r){if(e===void 0)return t;if(typeof e!=`number`||!Number.isFinite(e)||e<n||e>r)throw c();return e}function d(e){let t=l(e);if(!Array.isArray(t.frames)||t.frames.length<1||t.frames.length>512)throw c();let n=0;return{frames:t.frames.map(e=>{let t=l(e);if(!Number.isSafeInteger(t.sourceIndex)||typeof t.sourceIndex!=`number`||t.sourceIndex<0||t.sourceIndex>511)throw c();let r=t.eraseStrokes===void 0?[]:t.eraseStrokes;if(!Array.isArray(r)||r.length>64)throw c();let i=u(t.durationMs,125,16,1e4);if(!Number.isSafeInteger(i))throw c();return{sourceIndex:t.sourceIndex,x:u(t.x,0,-4096,4096),y:u(t.y,0,-4096,4096),rotation:u(t.rotation,0,-360,360),scale:u(t.scale,1,.05,8),opacity:u(t.opacity,1,0,1),durationMs:i,eraseStrokes:r.map(e=>{let t=l(e);if(!Array.isArray(t.points)||t.points.length<1||t.points.length>512||t.restore!==void 0&&typeof t.restore!=`boolean`)throw c();if(n+=t.points.length,n>2e4)throw c(`workflow_image_too_large`);let r=u(t.radius,NaN,.001,.25);if(!Number.isFinite(r))throw c();return{radius:r,restore:t.restore===!0,points:t.points.map(e=>{let t=l(e),n=u(t.x,NaN,0,1),r=u(t.y,NaN,0,1);if(!Number.isFinite(n)||!Number.isFinite(r))throw c();return{x:n,y:r}})}})}})}}var f=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,p=[`id`,`name`,`prompt`,`reference`,`originalReference`,`frameCount`,`directions`,`model`,`actions`],m=[`running`,`completed`,`failed`,`cancelled`,`interrupted`],h=class extends Error{constructor(e,t=400){super(e),this.code=e,this.statusCode=t}};function g(){throw new h(`game_assets_invalid`)}function _(e,t){return!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).some(e=>!t.includes(e))?g():e}function v(e,t,n=!1){return typeof e!=`string`||e.length>t||n&&!e.trim()?g():e.trim()}function y(e){return typeof e!=`string`||!f.test(e)?g():e}function b(e){return typeof e!=`string`||!Number.isFinite(Date.parse(e))||new Date(e).toISOString()!==e?g():e}function x(e,t,n){return typeof e!=`number`||!Number.isSafeInteger(e)||e<t||e>n?g():e}function S(e){if(e==null)return null;try{let t=a(e);return t.mimeType.startsWith(`image/`)?t:g()}catch{return g()}}function C(e){let t=_(e,p),n=t.directions??[...i],r=t.actions??[];if(!Array.isArray(n)||!n.length||n.length>8||n.some(e=>!i.some(t=>t===e))||new Set(n).size!==n.length||!Array.isArray(r)||r.length>8)return g();let a=x(t.frameCount===void 0?4:t.frameCount,1,16),o=r.map(e=>{let t=_(e,[`id`,`name`,`prompt`,`enabled`]);return typeof t.id!=`string`||!/^[A-Za-z0-9][A-Za-z0-9_-]{0,39}$/.test(t.id)||typeof t.enabled!=`boolean`?g():{id:t.id,name:v(t.name,100,!0),prompt:v(t.prompt??``,2e3),enabled:t.enabled}});if(new Set(o.map(e=>e.id)).size!==o.length||o.filter(e=>e.enabled).length*n.length*a>512)return g();let s=null;if(t.model!==null&&t.model!==void 0){let e=_(t.model,[`provider`,`model`]);s={provider:v(e.provider,200,!0),model:v(e.model,300,!0)}}return{...t.id===void 0?{}:{id:y(t.id)},name:v(t.name,100,!0),prompt:v(t.prompt??``,8e3),reference:S(t.reference),originalReference:S(t.originalReference),frameCount:a,directions:[...n],model:s,actions:o}}function w(e){let{createdAt:t,updatedAt:n,...r}=_(e,[...p,`createdAt`,`updatedAt`]);return{...C(r),id:y(r.id),createdAt:b(t),updatedAt:b(n)}}function T(e){let t=_(e,[`id`,`projectId`,`status`,`startedAt`,`finishedAt`,`completed`,`total`,`error`,`output`,`originalOutput`,`edits`,`revision`]);if(typeof t.status!=`string`||!m.includes(t.status)||t.error!==null&&(typeof t.error!=`string`||!/^(?:game_assets|workflow_image|workflow_media|sprite_engine)_[a-z_]{1,60}$/.test(t.error)))return g();let n=x(t.total,1,8),i=x(t.completed,0,n);if(t.status===`running`!=(t.finishedAt===null)||t.status===`completed`&&i!==n)return g();let a,o,s;try{if(a=r(t.output),o=r(t.originalOutput),t.edits!==void 0&&(s=d(t.edits),s.frames.some(e=>e.sourceIndex>=o.frames.length)||s.frames.length!==a.frames.length))return g()}catch{return g()}return{id:y(t.id),projectId:y(t.projectId),status:t.status,startedAt:b(t.startedAt),finishedAt:t.finishedAt===null?null:b(t.finishedAt),completed:i,total:n,error:t.error,output:a,originalOutput:o,revision:x(t.revision,0,2**53-1),...s?{edits:s}:{}}}function E(e){let t=_(e,[`projects`,`jobs`]);if(!Array.isArray(t.projects)||t.projects.length>100||!Array.isArray(t.jobs)||t.jobs.length>100)return g();let n=t.projects.map(w),r=t.jobs.map(T);return new Set(n.map(e=>e.id)).size!==n.length||new Set(r.map(e=>e.id)).size!==r.length||r.some(e=>!n.some(t=>t.id===e.projectId))?g():{projects:n,jobs:r}}function D(t){if(!t||typeof t!=`object`||Array.isArray(t))throw e();return t}function O(t){if(typeof t!=`string`||!/^[0-9a-f-]{36}$/i.test(t))throw e();return encodeURIComponent(t)}function k(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),window.setTimeout(()=>URL.revokeObjectURL(n),1e3)}function A(t){let n=D(t),r=E({projects:n.projects,jobs:n.jobs});if(!Array.isArray(n.models)||n.models.length>1e3)throw e();let i=n.models.map(t=>{let n=D(t);if(typeof n.id!=`string`||typeof n.name!=`string`||typeof n.providerId!=`string`||typeof n.providerName!=`string`||!n.id.startsWith(n.providerId+`/`))throw e();return{id:n.id,name:n.name,providerId:n.providerId,providerName:n.providerName}});return{...r,models:i,engines:s({engines:n.engines}).engines}}var j=e=>`/api/game-assets/media/${O(e)}/content`;async function M(r,i,c){if(c.throwIfAborted(),r===`gameAssets.list`)return t(`/api/game-assets`,{signal:c,parse:A});if(r===`gameAssets.save`){let e=C(i);return t(e.id?`/api/game-assets/projects/${O(e.id)}`:`/api/game-assets/projects`,{method:e.id?`PATCH`:`POST`,data:e,signal:c,parse:w})}if(r===`gameAssets.remove`)return t(`/api/game-assets/projects/${O(i.id)}`,{method:`DELETE`,signal:c});if(r===`gameAssets.run`||r===`gameAssets.stop`){let e=r===`gameAssets.run`?`/api/game-assets/projects/${O(i.id)}/run`:`/api/game-assets/jobs/${O(i.jobId)}/stop`;return t(e,{method:`POST`,data:{},signal:c,parse:e=>({job:T(D(e).job)})})}if(r===`gameAssets.editFrames`)return t(`/api/game-assets/jobs/${O(i.jobId)}/frames`,{method:`POST`,data:d(i.edits),signal:c,timeout:12e4,parse:T});if(r===`gameAssets.export`){let r=await t(`/api/game-assets/jobs/${O(i.jobId)}`,{signal:c,parse:T});if(!r.output.atlas)throw e();if(i.format===`png`){let e=await n(j(r.output.atlas.media.id),{signal:c});c.throwIfAborted(),k(e,`game-assets.png`)}else if(i.format===`json`)k(new Blob([JSON.stringify(r.output.atlas,null,2)],{type:`application/json`}),`game-assets.json`);else throw e();return null}if(r===`gameAssets.uploadImage`){if(!(i.buffer instanceof ArrayBuffer)||!i.buffer.byteLength||i.buffer.byteLength>8388608||![`image/png`,`image/jpeg`,`image/webp`].includes(String(i.mimeType))||typeof i.name!=`string`||i.name.length>200)throw e();return t(`/api/game-assets/media?name=${encodeURIComponent(i.name)}`,{method:`POST`,data:new Blob([i.buffer],{type:String(i.mimeType)}),signal:c,parse:a})}if(r===`gameAssets.image`){let t=await n(j(i.id),{signal:c});if(t.size>8388608||![`image/png`,`image/jpeg`,`image/webp`].includes(t.type))throw e();return{buffer:await t.arrayBuffer(),mimeType:t.type}}if(r===`gameAssets.process`){if(![`background`,`inpaint`].includes(String(i.operation)))throw e();return t(`/api/game-assets/process`,{method:`POST`,signal:c,timeout:12e4,data:{reference:a(i.reference),operation:i.operation,image:o(i.image)},parse:a})}if(r===`gameAssets.engine`){if(i.id!==`background`&&i.id!==`inpaint`||i.action!==`download`&&i.action!==`cancel`)throw e();return t(`/api/game-assets/engines/${i.id}/${i.action}`,{method:`POST`,data:{},signal:c,parse:s})}throw e()}export{M as handleGameAssetComponentRequest};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{u as n}from"./i18n-Bo7twSO7.js";var r=e(t(),1),i=`section`,a={models:`config:configPage.models`,notifications:`config:configPage.notifications`,interface:`config:configPage.interface`,shortcuts:`config:configPage.shortcuts`,"desktop-pet":`config:configPage.desktopPet`,updates:`config:configPage.appUpdates`,about:`config:configPage.about`,"remote-access":`config:configPage.remoteAccess`,"mobile-server":`config:configPage.mobileServer`},o=[{id:`sec-models`,section:`models`,card:i,titleKey:`config:configPage.models`,keywords:[`model`,`provider`,`llm`,`api`,`模型`,`供应商`,`大模型`]},{id:`sec-notifications`,section:`notifications`,card:i,titleKey:`config:configPage.notifications`,keywords:[`notification`,`push`,`alert`,`通知`,`推送`,`提醒`]},{id:`sec-interface`,section:`interface`,card:i,titleKey:`config:configPage.interface`,keywords:[`interface`,`theme`,`appearance`,`display`,`界面`,`主题`,`外观`,`显示`]},{id:`sec-shortcuts`,section:`shortcuts`,card:i,titleKey:`config:configPage.shortcuts`,keywords:[`keyboard`,`shortcut`,`hotkey`,`keybinding`,`voice`,`push to talk`,`快捷键`,`按键`,`键盘`,`语音`,`长按`]},{id:`sec-desktop-pet`,section:`desktop-pet`,card:i,titleKey:`config:configPage.desktopPet`,keywords:[`pet`,`petdex`,`宠物`,`桌宠`]},{id:`sec-updates`,section:`updates`,card:i,titleKey:`config:configPage.appUpdates`,keywords:[`update`,`upgrade`,`version`,`更新`,`升级`,`版本`]},{id:`sec-about`,section:`about`,card:i,titleKey:`config:configPage.about`,keywords:[`about`,`info`,`license`,`关于`,`信息`,`许可`]},{id:`sec-remote-access`,section:`remote-access`,card:i,titleKey:`config:configPage.remoteAccess`,keywords:[`remote`,`network`,`phone`,`远程`,`网络`,`手机`]},{id:`sec-mobile-server`,section:`mobile-server`,card:i,titleKey:`config:configPage.mobileServer`,keywords:[`server`,`remote`,`network`,`服务器`,`远程`,`网络`]},{id:`models-current-model`,section:`models`,card:`models-current-model`,titleKey:`config:configPage.currentChatModel`,keywords:[`model`,`provider`,`quick setup`,`模型`,`供应商`,`快速配置`,`对话模型`]},{id:`models-connections`,section:`models`,card:`models-connections`,titleKey:`config:configPage.manageConnections`,keywords:[`provider`,`connection`,`api key`,`import`,`连接`,`供应商`,`导入`,`密钥`]},{id:`models-runtime-policy`,section:`models`,card:`models-connections`,titleKey:`config:configPage.agentRuntimePolicy`,keywords:[`runtime`,`agent`,`policy`,`运行策略`,`运行时`,`执行策略`]},{id:`models-visual`,section:`models`,card:`models-visual`,titleKey:`config:configPage.currentVisualModel`,keywords:[`image`,`video`,`visual`,`图片`,`图像`,`视频`,`视觉`,`生图`]},{id:`notifications-browser`,section:`notifications`,card:`notifications-browser`,titleKey:`config:notificationSettings.notification`,keywords:[`browser`,`system`,`push`,`浏览器通知`,`系统通知`,`推送`]},{id:`notifications-templates`,section:`notifications`,card:`notifications-templates`,titleKey:`config:notificationSettings.notificationTemplates`,keywords:[`template`,`模板`,`通知模板`]},{id:`interface-custom-ui`,section:`interface`,card:`interface-custom-ui`,titleKey:`config:interfaceSettings.customUiTab`,keywords:[`custom ui`,`standalone widgets`,`component`,`html`,`manifest`,`独立组件`,`自定义组件`,`组件`]},{id:`interface-appearance`,section:`interface`,card:`interface-appearance`,titleKey:`config:interfaceSettings.appearance`,keywords:[`theme`,`dark`,`light`,`accent`,`font`,`corner`,`主题`,`深色`,`浅色`,`强调色`,`字体`,`圆角`,`外观`]},{id:`interface-motion`,section:`interface`,card:`interface-motion`,titleKey:`config:interfaceSettings.displayAndMotion`,keywords:[`motion`,`density`,`animation`,`动效`,`动画`,`密度`,`显示`]},{id:`interface-language`,section:`interface`,card:`interface-language`,titleKey:`config:languageSettings.displayLanguage`,keywords:[`language`,`chinese`,`english`,`语言`,`中文`,`英文`,`英语`]},{id:`desktop-pet-settings`,section:`desktop-pet`,card:`desktop-pet-settings`,titleKey:`config:desktopPetSettings.title`,keywords:[`pet`,`宠物`,`桌宠`,`宠物设置`]},{id:`desktop-pet-install`,section:`desktop-pet`,card:`desktop-pet-install`,titleKey:`config:desktopPetSettings.installTitle`,keywords:[`petdex`,`install`,`宠物安装`,`添加宠物`]},{id:`desktop-pet-installed`,section:`desktop-pet`,card:`desktop-pet-installed`,titleKey:`config:desktopPetSettings.installedTitle`,keywords:[`installed`,`已安装`,`宠物列表`]},{id:`mobile-server-main`,section:`mobile-server`,card:`mobile-server-main`,titleKey:`config:mobileServer.title`,keywords:[`server`,`remote`,`服务器`,`远程`,`手机访问`]},{id:`mobile-server-local`,section:`mobile-server`,card:`mobile-server-local`,titleKey:`config:mobileServer.localTitle`,keywords:[`local`,`on-device`,`本机`,`本地运行`]},{id:`remote-workspaces`,section:`remote-access`,card:`remote-workspaces`,titleKey:`config:remoteWorkspace.title`,keywords:[`linux`,`remote workspace`,`服务器`,`远程工作区`]},{id:`remote-access-main`,section:`remote-access`,card:`remote-access-main`,titleKey:`config:remoteAccess.title`,keywords:[`remote`,`network`,`phone`,`远程`,`网络`,`手机`]},{id:`remote-access-pairing`,section:`remote-access`,card:`remote-access-pairing`,titleKey:`config:remoteAccess.pairing`,keywords:[`pairing`,`qr`,`配对`,`二维码`]},{id:`remote-access-devices`,section:`remote-access`,card:`remote-access-devices`,titleKey:`config:remoteAccess.devices`,keywords:[`device`,`paired`,`设备`,`已配对`,`授权`]},{id:`updates-main`,section:`updates`,card:`updates-main`,titleKey:`config:updateSettings.pisperAppUpdates`,keywords:[`update`,`version`,`channel`,`更新`,`版本`,`升级`,`渠道`]},{id:`updates-components`,section:`updates`,card:`updates-components`,titleKey:`config:updateSettings.appComponents`,keywords:[`component`,`runtime`,`sidecar`,`组件`,`运行时`]},{id:`updates-cli`,section:`updates`,card:`updates-cli`,titleKey:`config:cliSettings.title`,keywords:[`cli`,`terminal`,`command`,`命令行`,`终端`,`命令`]},{id:`updates-sponsors`,section:`updates`,card:`updates-sponsors`,titleKey:`config:updateSettings.sponsors`,keywords:[`sponsor`,`赞助`,`赞助商`]},{id:`about-project`,section:`about`,card:`about-project`,titleKey:`config:aboutSettings.projectInformation`,keywords:[`project`,`version`,`license`,`项目`,`版本`,`许可`]},{id:`about-support`,section:`about`,card:`about-support`,titleKey:`config:aboutSettings.supportPisper`,keywords:[`support`,`donate`,`sponsor`,`支持`,`捐赠`,`赞助`]}],s={provider:[`sec-models`,`models-current-model`,`models-connections`],供应商:[`sec-models`,`models-current-model`,`models-connections`],model:[`sec-models`,`models-current-model`,`models-connections`],模型:[`sec-models`,`models-current-model`,`models-connections`],theme:[`sec-interface`,`interface-appearance`],主题:[`sec-interface`,`interface-appearance`],interface:[`sec-interface`,`interface-appearance`],界面:[`sec-interface`,`interface-appearance`,`interface-language`],diy:[`interface-custom-ui`],components:[`interface-custom-ui`],widgets:[`interface-custom-ui`],组件:[`interface-custom-ui`],pet:[`sec-desktop-pet`,`desktop-pet-settings`,`desktop-pet-install`,`desktop-pet-installed`],宠物:[`sec-desktop-pet`,`desktop-pet-settings`,`desktop-pet-install`,`desktop-pet-installed`],update:[`sec-updates`,`updates-main`,`updates-components`],更新:[`sec-updates`,`updates-main`,`updates-components`],network:[`sec-remote-access`,`sec-mobile-server`,`remote-access-main`],网络:[`sec-remote-access`,`sec-mobile-server`,`remote-access-main`],remote:[`sec-remote-access`,`sec-mobile-server`,`remote-access-main`],远程:[`sec-remote-access`,`sec-mobile-server`,`remote-access-main`],notification:[`sec-notifications`,`notifications-browser`,`notifications-templates`],通知:[`sec-notifications`,`notifications-browser`,`notifications-templates`],language:[`interface-language`],语言:[`interface-language`]},c=12;function l(e){return[n(e.titleKey,`zh-CN`).toLowerCase(),n(e.titleKey,`en-US`).toLowerCase()]}function u(e,t){let r=e.trim().toLowerCase();if(!r)return[];let i=new Set(s[r]||[]);for(let e of r.split(/\s+/))for(let t of s[e]||[])i.add(t);let u=[];for(let e of o){if(typeof window<`u`&&(e.id===`remote-workspaces`&&!window.pisperDesktop?.remoteWorkspaces||e.id===`remote-access-main`&&window.__PISPER_REMOTE_WORKSPACE__))continue;let[t,n]=l(e),a=0;i.has(e.id)?a=100:t===r||n===r?a=90:t.startsWith(r)||n.startsWith(r)?a=80:t.includes(r)||n.includes(r)?a=65:(e.keywords||[]).some(e=>{let t=e.toLowerCase();return t.includes(r)?r.length>=2||/[\u4e00-\u9fff]/.test(r):/[\u4e00-\u9fff]/.test(t)&&t.includes(r)})&&(a=40),a>0&&u.push({entry:e,score:a})}u.sort((e,t)=>t.score-e.score);let d=new Set,f=[];for(let{entry:e}of u){let r={entry:e,title:n(e.titleKey,t),sectionTitle:n(a[e.section],t)},i=`${e.section}|${r.title}`;if(!d.has(i)&&(d.add(i),f.push(r),f.length>=c))break}return f}var d=`pisper:config-card-highlight`,f=null;function p(e,t){f={card:e,section:t},window.dispatchEvent(new Event(d))}function m(){let e=f;return f=null,e}function h(e){let t=document.querySelector(`[data-config-card="${e.card}"]`);if(t||=document.querySelector(`[data-config-card="${i}"]`),!t)return;t.scrollIntoView({behavior:`smooth`,block:`center`});let n={boxShadow:t.style.boxShadow,borderColor:t.style.borderColor,transition:t.style.transition};t.style.transition=`box-shadow .3s ease, border-color .3s ease`,t.style.boxShadow=`0 0 0 3px var(--focus-ring)`,t.style.borderColor=`var(--focus)`,window.setTimeout(()=>{t.style.boxShadow=n.boxShadow,t.style.borderColor=n.borderColor,t.style.transition=n.transition},1200)}function g(e){(0,r.useEffect)(()=>{let e=()=>{let e=m();e&&requestAnimationFrame(()=>requestAnimationFrame(()=>h(e)))};return e(),window.addEventListener(d,e),()=>window.removeEventListener(d,e)},[e])}export{g as i,p as n,u as r,i as t};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{u as n}from"./i18n-7QvbQzOQ.js";var r=e(t(),1),i=`section`,a={models:`config:configPage.models`,notifications:`config:configPage.notifications`,interface:`config:configPage.interface`,shortcuts:`config:configPage.shortcuts`,"desktop-pet":`config:configPage.desktopPet`,updates:`config:configPage.appUpdates`,about:`config:configPage.about`,"remote-access":`config:configPage.remoteAccess`,"mobile-server":`config:configPage.mobileServer`},o=[{id:`sec-models`,section:`models`,card:i,titleKey:`config:configPage.models`,keywords:[`model`,`provider`,`llm`,`api`,`模型`,`供应商`,`大模型`]},{id:`sec-notifications`,section:`notifications`,card:i,titleKey:`config:configPage.notifications`,keywords:[`notification`,`push`,`alert`,`通知`,`推送`,`提醒`]},{id:`sec-interface`,section:`interface`,card:i,titleKey:`config:configPage.interface`,keywords:[`interface`,`theme`,`appearance`,`display`,`界面`,`主题`,`外观`,`显示`]},{id:`sec-shortcuts`,section:`shortcuts`,card:i,titleKey:`config:configPage.shortcuts`,keywords:[`keyboard`,`shortcut`,`hotkey`,`keybinding`,`voice`,`push to talk`,`快捷键`,`按键`,`键盘`,`语音`,`长按`]},{id:`sec-desktop-pet`,section:`desktop-pet`,card:i,titleKey:`config:configPage.desktopPet`,keywords:[`pet`,`petdex`,`宠物`,`桌宠`]},{id:`sec-updates`,section:`updates`,card:i,titleKey:`config:configPage.appUpdates`,keywords:[`update`,`upgrade`,`version`,`更新`,`升级`,`版本`]},{id:`sec-about`,section:`about`,card:i,titleKey:`config:configPage.about`,keywords:[`about`,`info`,`license`,`关于`,`信息`,`许可`]},{id:`sec-remote-access`,section:`remote-access`,card:i,titleKey:`config:configPage.remoteAccess`,keywords:[`remote`,`network`,`phone`,`远程`,`网络`,`手机`]},{id:`sec-mobile-server`,section:`mobile-server`,card:i,titleKey:`config:configPage.mobileServer`,keywords:[`server`,`remote`,`network`,`服务器`,`远程`,`网络`]},{id:`models-current-model`,section:`models`,card:`models-current-model`,titleKey:`config:configPage.currentChatModel`,keywords:[`model`,`provider`,`quick setup`,`模型`,`供应商`,`快速配置`,`对话模型`]},{id:`models-connections`,section:`models`,card:`models-connections`,titleKey:`config:configPage.manageConnections`,keywords:[`provider`,`connection`,`api key`,`import`,`连接`,`供应商`,`导入`,`密钥`]},{id:`models-runtime-policy`,section:`models`,card:`models-connections`,titleKey:`config:configPage.agentRuntimePolicy`,keywords:[`runtime`,`agent`,`policy`,`运行策略`,`运行时`,`执行策略`]},{id:`models-visual`,section:`models`,card:`models-visual`,titleKey:`config:configPage.currentVisualModel`,keywords:[`image`,`video`,`visual`,`图片`,`图像`,`视频`,`视觉`,`生图`]},{id:`notifications-browser`,section:`notifications`,card:`notifications-browser`,titleKey:`config:notificationSettings.notification`,keywords:[`browser`,`system`,`push`,`浏览器通知`,`系统通知`,`推送`]},{id:`notifications-templates`,section:`notifications`,card:`notifications-templates`,titleKey:`config:notificationSettings.notificationTemplates`,keywords:[`template`,`模板`,`通知模板`]},{id:`interface-custom-ui`,section:`interface`,card:`interface-custom-ui`,titleKey:`config:interfaceSettings.customUiTab`,keywords:[`custom ui`,`standalone widgets`,`component`,`html`,`manifest`,`独立组件`,`自定义组件`,`组件`]},{id:`interface-appearance`,section:`interface`,card:`interface-appearance`,titleKey:`config:interfaceSettings.appearance`,keywords:[`theme`,`dark`,`light`,`accent`,`font`,`corner`,`主题`,`深色`,`浅色`,`强调色`,`字体`,`圆角`,`外观`]},{id:`interface-motion`,section:`interface`,card:`interface-motion`,titleKey:`config:interfaceSettings.displayAndMotion`,keywords:[`motion`,`density`,`animation`,`动效`,`动画`,`密度`,`显示`]},{id:`interface-language`,section:`interface`,card:`interface-language`,titleKey:`config:languageSettings.displayLanguage`,keywords:[`language`,`chinese`,`english`,`语言`,`中文`,`英文`,`英语`]},{id:`desktop-pet-settings`,section:`desktop-pet`,card:`desktop-pet-settings`,titleKey:`config:desktopPetSettings.title`,keywords:[`pet`,`宠物`,`桌宠`,`宠物设置`]},{id:`desktop-pet-install`,section:`desktop-pet`,card:`desktop-pet-install`,titleKey:`config:desktopPetSettings.installTitle`,keywords:[`petdex`,`install`,`宠物安装`,`添加宠物`]},{id:`desktop-pet-installed`,section:`desktop-pet`,card:`desktop-pet-installed`,titleKey:`config:desktopPetSettings.installedTitle`,keywords:[`installed`,`已安装`,`宠物列表`]},{id:`mobile-server-main`,section:`mobile-server`,card:`mobile-server-main`,titleKey:`config:mobileServer.title`,keywords:[`server`,`remote`,`服务器`,`远程`,`手机访问`]},{id:`mobile-server-local`,section:`mobile-server`,card:`mobile-server-local`,titleKey:`config:mobileServer.localTitle`,keywords:[`local`,`on-device`,`本机`,`本地运行`]},{id:`remote-workspaces`,section:`remote-access`,card:`remote-workspaces`,titleKey:`config:remoteWorkspace.title`,keywords:[`linux`,`remote workspace`,`服务器`,`远程工作区`]},{id:`remote-access-main`,section:`remote-access`,card:`remote-access-main`,titleKey:`config:remoteAccess.title`,keywords:[`remote`,`network`,`phone`,`远程`,`网络`,`手机`]},{id:`remote-access-pairing`,section:`remote-access`,card:`remote-access-pairing`,titleKey:`config:remoteAccess.pairing`,keywords:[`pairing`,`qr`,`配对`,`二维码`]},{id:`remote-access-devices`,section:`remote-access`,card:`remote-access-devices`,titleKey:`config:remoteAccess.devices`,keywords:[`device`,`paired`,`设备`,`已配对`,`授权`]},{id:`updates-main`,section:`updates`,card:`updates-main`,titleKey:`config:updateSettings.pisperAppUpdates`,keywords:[`update`,`version`,`channel`,`更新`,`版本`,`升级`,`渠道`]},{id:`updates-components`,section:`updates`,card:`updates-components`,titleKey:`config:updateSettings.appComponents`,keywords:[`component`,`runtime`,`sidecar`,`组件`,`运行时`]},{id:`updates-cli`,section:`updates`,card:`updates-cli`,titleKey:`config:cliSettings.title`,keywords:[`cli`,`terminal`,`command`,`命令行`,`终端`,`命令`]},{id:`updates-sponsors`,section:`updates`,card:`updates-sponsors`,titleKey:`config:updateSettings.sponsors`,keywords:[`sponsor`,`赞助`,`赞助商`]},{id:`about-project`,section:`about`,card:`about-project`,titleKey:`config:aboutSettings.projectInformation`,keywords:[`project`,`version`,`license`,`项目`,`版本`,`许可`]},{id:`about-support`,section:`about`,card:`about-support`,titleKey:`config:aboutSettings.supportPisper`,keywords:[`support`,`donate`,`sponsor`,`支持`,`捐赠`,`赞助`]}],s={provider:[`sec-models`,`models-current-model`,`models-connections`],供应商:[`sec-models`,`models-current-model`,`models-connections`],model:[`sec-models`,`models-current-model`,`models-connections`],模型:[`sec-models`,`models-current-model`,`models-connections`],theme:[`sec-interface`,`interface-appearance`],主题:[`sec-interface`,`interface-appearance`],interface:[`sec-interface`,`interface-appearance`],界面:[`sec-interface`,`interface-appearance`,`interface-language`],diy:[`interface-custom-ui`],components:[`interface-custom-ui`],widgets:[`interface-custom-ui`],组件:[`interface-custom-ui`],pet:[`sec-desktop-pet`,`desktop-pet-settings`,`desktop-pet-install`,`desktop-pet-installed`],宠物:[`sec-desktop-pet`,`desktop-pet-settings`,`desktop-pet-install`,`desktop-pet-installed`],update:[`sec-updates`,`updates-main`,`updates-components`],更新:[`sec-updates`,`updates-main`,`updates-components`],network:[`sec-remote-access`,`sec-mobile-server`,`remote-access-main`],网络:[`sec-remote-access`,`sec-mobile-server`,`remote-access-main`],remote:[`sec-remote-access`,`sec-mobile-server`,`remote-access-main`],远程:[`sec-remote-access`,`sec-mobile-server`,`remote-access-main`],notification:[`sec-notifications`,`notifications-browser`,`notifications-templates`],通知:[`sec-notifications`,`notifications-browser`,`notifications-templates`],language:[`interface-language`],语言:[`interface-language`]},c=12;function l(e){return[n(e.titleKey,`zh-CN`).toLowerCase(),n(e.titleKey,`en-US`).toLowerCase()]}function u(e,t){let r=e.trim().toLowerCase();if(!r)return[];let i=new Set(s[r]||[]);for(let e of r.split(/\s+/))for(let t of s[e]||[])i.add(t);let u=[];for(let e of o){if(typeof window<`u`&&(e.id===`remote-workspaces`&&!window.pisperDesktop?.remoteWorkspaces||e.id===`remote-access-main`&&window.__PISPER_REMOTE_WORKSPACE__))continue;let[t,n]=l(e),a=0;i.has(e.id)?a=100:t===r||n===r?a=90:t.startsWith(r)||n.startsWith(r)?a=80:t.includes(r)||n.includes(r)?a=65:(e.keywords||[]).some(e=>{let t=e.toLowerCase();return t.includes(r)?r.length>=2||/[\u4e00-\u9fff]/.test(r):/[\u4e00-\u9fff]/.test(t)&&t.includes(r)})&&(a=40),a>0&&u.push({entry:e,score:a})}u.sort((e,t)=>t.score-e.score);let d=new Set,f=[];for(let{entry:e}of u){let r={entry:e,title:n(e.titleKey,t),sectionTitle:n(a[e.section],t)},i=`${e.section}|${r.title}`;if(!d.has(i)&&(d.add(i),f.push(r),f.length>=c))break}return f}var d=`pisper:config-card-highlight`,f=null;function p(e,t){f={card:e,section:t},window.dispatchEvent(new Event(d))}function m(){let e=f;return f=null,e}function h(e){let t=document.querySelector(`[data-config-card="${e.card}"]`);if(t||=document.querySelector(`[data-config-card="${i}"]`),!t)return;t.scrollIntoView({behavior:`smooth`,block:`center`});let n={boxShadow:t.style.boxShadow,borderColor:t.style.borderColor,transition:t.style.transition};t.style.transition=`box-shadow .3s ease, border-color .3s ease`,t.style.boxShadow=`0 0 0 3px var(--focus-ring)`,t.style.borderColor=`var(--focus)`,window.setTimeout(()=>{t.style.boxShadow=n.boxShadow,t.style.borderColor=n.borderColor,t.style.transition=n.transition},1200)}function g(e){(0,r.useEffect)(()=>{let e=()=>{let e=m();e&&requestAnimationFrame(()=>requestAnimationFrame(()=>h(e)))};return e(),window.addEventListener(d,e),()=>window.removeEventListener(d,e)},[e])}export{g as i,p as n,u as r,i as t};
@@ -1 +1 @@
1
- import{t as e}from"./index-IemAtsU4.js";import{t}from"./storage-BpAqa-YY.js";var n=Object.freeze([`open`,`left`,`right`,`above`,`below`]),r=`session:`;function i(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function a(e){return e?`${r}${e}`:``}function o(e){let t=typeof e==`object`&&e?e.params?.sessionId:void 0;if(typeof t==`string`&&t)return t;let n=typeof e==`string`?e:e?.id;return typeof n==`string`&&n.startsWith(r)?n.slice(8):``}function s(e){if(!i(e)||!i(e.panels))return[];let t=[],n=new Set;for(let[r,i]of Object.entries(e.panels)){let e=o(r)||o(i);e&&!n.has(e)&&(n.add(e),t.push(e))}return t}function c(e,t=``){return{version:1,engine:`dockview`,activePanelId:typeof t==`string`?t:``,layout:e}}function l(e){if(!e)return null;try{let t=typeof e==`string`?JSON.parse(e):e;return!i(t)||t.version!==1||t.engine!==`dockview`||!i(t.layout)||!i(t.layout.grid)||!i(t.layout.panels)?null:{version:1,engine:`dockview`,activePanelId:typeof t.activePanelId==`string`?t.activePanelId:``,layout:t.layout}}catch{return null}}function u(e){return e===`above`?`top`:e===`below`?`bottom`:e}function d(e,t=`open`,r=``){return!e||!n.includes(t)?null:{sessionId:e,disposition:t,...r?{targetEntryId:r}:{}}}function f(e){if(!e)return null;try{let t=typeof e==`string`?JSON.parse(e):e;return i(t)?d(typeof t.sessionId==`string`?t.sessionId:``,typeof t.disposition==`string`?t.disposition:`open`,typeof t.targetEntryId==`string`?t.targetEntryId:``):null}catch{return null}}function p({activeSessionId:e=``,validSessionIds:t=[]}={}){return e&&t.includes(e)?[e]:t[0]?[t[0]]:[]}var m=`pisper:session-selected`,h=`pisper:session-create-requested`,g=`pisper:active-session-changed`,_=`pisper:sessions-updated`,v=`pisper:command-palette-requested`;function y(e){if(!e||typeof e!=`object`)return null;let{cwd:t,prompt:n}=e;if(t!==void 0&&typeof t!=`string`)return null;let r=typeof n==`string`&&n.trim()?n.trim():void 0;return{cwd:typeof t==`string`?t:``,...r?{prompt:r}:{}}}function b(e){if(!e)return null;try{return y(JSON.parse(e))}catch{return null}}function x(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t.sessionId==`string`&&typeof t.entryId==`string`?{sessionId:t.sessionId,entryId:t.entryId}:null}catch{return null}}function S(){window.dispatchEvent(new Event(v))}function C(e,n){let r=y({cwd:e,prompt:n});return r?(localStorage.setItem(t.sessionCreateRequest,JSON.stringify(r)),window.dispatchEvent(new CustomEvent(h,{detail:r})),!0):!1}function w(){let e=b(localStorage.getItem(t.sessionCreateRequest));return localStorage.removeItem(t.sessionCreateRequest),e}function T(n,r=`open`,i=``){let a=d(n,r,i);a&&(e.setItem(t.activeSession,n),localStorage.setItem(t.sessionOpenRequest,JSON.stringify(a)),i?localStorage.setItem(t.sessionMessageTarget,JSON.stringify({sessionId:n,entryId:i})):localStorage.removeItem(t.sessionMessageTarget),window.dispatchEvent(new CustomEvent(m,{detail:a})))}function E(e){let n=x(localStorage.getItem(t.sessionMessageTarget));return n?.sessionId===e?n.entryId:``}function D(e,n){let r=x(localStorage.getItem(t.sessionMessageTarget));r?.sessionId===e&&r.entryId===n&&localStorage.removeItem(t.sessionMessageTarget)}function O(){let e=f(localStorage.getItem(t.sessionOpenRequest));return localStorage.removeItem(t.sessionOpenRequest),e}function k(e,t=``){window.dispatchEvent(new CustomEvent(g,{detail:{id:e||``,model:t||``}}))}function A(e){window.dispatchEvent(e?new CustomEvent(_,{detail:e}):new Event(_))}function j(e){let t=`detail`in e?e.detail:null;if(!t||typeof t!=`object`)return null;let{id:n,pinned:r,archived:i,unread:a,needsAttention:o,attentionReason:s}=t;return typeof n!=`string`||!n||typeof r!=`boolean`||typeof i!=`boolean`||typeof a!=`boolean`||typeof o!=`boolean`||s!==null&&s!==`approval`&&s!==`failure`?null:{id:n,pinned:r,archived:i,unread:a,needsAttention:o,attentionReason:s}}function M(e,t){let n=e=>{let n=j(e);n&&t(n)};return e.addEventListener(_,n),()=>e.removeEventListener(_,n)}function N(e){let t=`detail`in e?e.detail:null;if(!t||typeof t!=`object`)return null;let{id:n,name:r}=t;return typeof n==`string`&&n.length>0&&typeof r==`string`?{id:n,name:r}:null}function P(e,t){let n=e=>{let n=N(e);n&&t(n)};return e.addEventListener(_,n),()=>e.removeEventListener(_,n)}function F(e){let t=`detail`in e?e.detail:null;if(!t||typeof t!=`object`)return null;let{deletedIds:n}=t;return!Array.isArray(n)||!n.length||!n.every(e=>typeof e==`string`&&e.length>0)?null:{deletedIds:[...new Set(n)]}}function I(e,t){let n=e=>{let n=F(e);n&&t(n)};return e.addEventListener(_,n),()=>e.removeEventListener(_,n)}export{a as C,s as E,p as S,o as T,I as _,m as a,c as b,D as c,E as d,S as f,j as g,F as h,h as i,w as l,T as m,v as n,k as o,C as p,_ as r,A as s,g as t,O as u,M as v,l as w,u as x,P as y};
1
+ import{t as e}from"./index-iBrSU61i.js";import{t}from"./storage-BpAqa-YY.js";var n=Object.freeze([`open`,`left`,`right`,`above`,`below`]),r=`session:`;function i(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function a(e){return e?`${r}${e}`:``}function o(e){let t=typeof e==`object`&&e?e.params?.sessionId:void 0;if(typeof t==`string`&&t)return t;let n=typeof e==`string`?e:e?.id;return typeof n==`string`&&n.startsWith(r)?n.slice(8):``}function s(e){if(!i(e)||!i(e.panels))return[];let t=[],n=new Set;for(let[r,i]of Object.entries(e.panels)){let e=o(r)||o(i);e&&!n.has(e)&&(n.add(e),t.push(e))}return t}function c(e,t=``){return{version:1,engine:`dockview`,activePanelId:typeof t==`string`?t:``,layout:e}}function l(e){if(!e)return null;try{let t=typeof e==`string`?JSON.parse(e):e;return!i(t)||t.version!==1||t.engine!==`dockview`||!i(t.layout)||!i(t.layout.grid)||!i(t.layout.panels)?null:{version:1,engine:`dockview`,activePanelId:typeof t.activePanelId==`string`?t.activePanelId:``,layout:t.layout}}catch{return null}}function u(e){return e===`above`?`top`:e===`below`?`bottom`:e}function d(e,t=`open`,r=``){return!e||!n.includes(t)?null:{sessionId:e,disposition:t,...r?{targetEntryId:r}:{}}}function f(e){if(!e)return null;try{let t=typeof e==`string`?JSON.parse(e):e;return i(t)?d(typeof t.sessionId==`string`?t.sessionId:``,typeof t.disposition==`string`?t.disposition:`open`,typeof t.targetEntryId==`string`?t.targetEntryId:``):null}catch{return null}}function p({activeSessionId:e=``,validSessionIds:t=[]}={}){return e&&t.includes(e)?[e]:t[0]?[t[0]]:[]}var m=`pisper:session-selected`,h=`pisper:session-create-requested`,g=`pisper:active-session-changed`,_=`pisper:sessions-updated`,v=`pisper:command-palette-requested`;function y(e){if(!e||typeof e!=`object`)return null;let{cwd:t,prompt:n}=e;if(t!==void 0&&typeof t!=`string`)return null;let r=typeof n==`string`&&n.trim()?n.trim():void 0;return{cwd:typeof t==`string`?t:``,...r?{prompt:r}:{}}}function b(e){if(!e)return null;try{return y(JSON.parse(e))}catch{return null}}function x(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t.sessionId==`string`&&typeof t.entryId==`string`?{sessionId:t.sessionId,entryId:t.entryId}:null}catch{return null}}function S(){window.dispatchEvent(new Event(v))}function C(e,n){let r=y({cwd:e,prompt:n});return r?(localStorage.setItem(t.sessionCreateRequest,JSON.stringify(r)),window.dispatchEvent(new CustomEvent(h,{detail:r})),!0):!1}function w(){let e=b(localStorage.getItem(t.sessionCreateRequest));return localStorage.removeItem(t.sessionCreateRequest),e}function T(n,r=`open`,i=``){let a=d(n,r,i);a&&(e.setItem(t.activeSession,n),localStorage.setItem(t.sessionOpenRequest,JSON.stringify(a)),i?localStorage.setItem(t.sessionMessageTarget,JSON.stringify({sessionId:n,entryId:i})):localStorage.removeItem(t.sessionMessageTarget),window.dispatchEvent(new CustomEvent(m,{detail:a})))}function E(e){let n=x(localStorage.getItem(t.sessionMessageTarget));return n?.sessionId===e?n.entryId:``}function D(e,n){let r=x(localStorage.getItem(t.sessionMessageTarget));r?.sessionId===e&&r.entryId===n&&localStorage.removeItem(t.sessionMessageTarget)}function O(){let e=f(localStorage.getItem(t.sessionOpenRequest));return localStorage.removeItem(t.sessionOpenRequest),e}function k(e,t=``){window.dispatchEvent(new CustomEvent(g,{detail:{id:e||``,model:t||``}}))}function A(e){window.dispatchEvent(e?new CustomEvent(_,{detail:e}):new Event(_))}function j(e){let t=`detail`in e?e.detail:null;if(!t||typeof t!=`object`)return null;let{id:n,pinned:r,archived:i,unread:a,needsAttention:o,attentionReason:s}=t;return typeof n!=`string`||!n||typeof r!=`boolean`||typeof i!=`boolean`||typeof a!=`boolean`||typeof o!=`boolean`||s!==null&&s!==`approval`&&s!==`failure`?null:{id:n,pinned:r,archived:i,unread:a,needsAttention:o,attentionReason:s}}function M(e,t){let n=e=>{let n=j(e);n&&t(n)};return e.addEventListener(_,n),()=>e.removeEventListener(_,n)}function N(e){let t=`detail`in e?e.detail:null;if(!t||typeof t!=`object`)return null;let{id:n,name:r}=t;return typeof n==`string`&&n.length>0&&typeof r==`string`?{id:n,name:r}:null}function P(e,t){let n=e=>{let n=N(e);n&&t(n)};return e.addEventListener(_,n),()=>e.removeEventListener(_,n)}function F(e){let t=`detail`in e?e.detail:null;if(!t||typeof t!=`object`)return null;let{deletedIds:n}=t;return!Array.isArray(n)||!n.length||!n.every(e=>typeof e==`string`&&e.length>0)?null:{deletedIds:[...new Set(n)]}}function I(e,t){let n=e=>{let n=F(e);n&&t(n)};return e.addEventListener(_,n),()=>e.removeEventListener(_,n)}export{a as C,s as E,p as S,o as T,I as _,m as a,c as b,D as c,E as d,S as f,j as g,F as h,h as i,w as l,T as m,v as n,k as o,C as p,_ as r,A as s,g as t,O as u,M as v,l as w,u as x,P as y};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/component-api-CQ_xu0Wa.js","assets/http-BrDjjNkv.js","assets/vendor-router-CZg2bCPV.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-DwNgTV1j.js","assets/i18n-Bo7twSO7.js","assets/index-IemAtsU4.js","assets/index-CdASiNlI.css","assets/storage-BpAqa-YY.js","assets/abort-signal-f4JsiYKX.js","assets/sprite-engine-catalog-D1HQWa1X.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{p as t}from"./vendor-router-CZg2bCPV.js";import{t as n}from"./index-IemAtsU4.js";import{i as r,r as i}from"./vendor-react-DwNgTV1j.js";import{u as a}from"./i18n-Bo7twSO7.js";import{t as o}from"./use-i18n-DyzoXal-.js";import{a as s,o as c}from"./vendor-state-GkUciC5H.js";import{t as l}from"./utils-C8uzG5AZ.js";import{t as u}from"./api-BbC90EzT.js";import{t as d}from"./button-CQA36izu.js";import{a as f,n as p,o as m}from"./useCustomUiComponents-B3Z-pphj.js";var h=e(r(),1),g=`--bg.--panel.--solid.--surface-subtle.--surface-muted.--surface-hover.--stroke.--stroke-soft.--stroke-hover.--text.--text-soft.--text-secondary.--text-muted.--brand-blue.--brand-blue-soft.--brand-blue-border.--accent-soft.--accent-strong.--accent-border.--star-strong.--on-accent.--success.--success-soft.--danger.--danger-soft.--warning-strong.--warning-soft.--focus.--r-sm.--r-md.--r-lg`.split(`.`);function _(){let e=document.documentElement,t=getComputedStyle(e),n={};for(let e of g){let r=t.getPropertyValue(e).trim();r&&(n[e]=r)}return{mode:e.classList.contains(`dark`)?`dark`:`light`,variables:n}}var v={getConfig:`config.read`,listSessions:`sessions.read`,notify:`notify`,"gameAssets.list":`game-assets.read`,"gameAssets.save":`game-assets.write`,"gameAssets.run":`game-assets.run`,"gameAssets.stop":`game-assets.run`,"gameAssets.uploadImage":`game-assets.write`,"gameAssets.image":`game-assets.read`,"gameAssets.process":`game-assets.write`,"gameAssets.engine":`game-assets.write`,"gameAssets.export":`game-assets.read`,"gameAssets.editFrames":`game-assets.write`,"gameAssets.remove":`game-assets.write`},y=4;function b(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function x(e,{component:n,notify:r,preview:i=!1,locale:o=document.documentElement.lang||`zh-CN`}){let s=i?[]:n.permissions,c=new Set(s),l=new AbortController,d=0,f=o===`en-US`?`en-US`:`zh-CN`,p=()=>({..._(),locale:o}),m=()=>{l.signal.aborted||e.contentWindow?.postMessage({pisperBridge:1,type:`theme`,theme:p()},`*`)},h=new MutationObserver(m);h.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`,`data-accent`]});let g=(t,n,r)=>{l.signal.aborted||e.contentWindow?.postMessage(n?{pisperBridge:1,id:t,ok:!0,result:r}:{pisperBridge:1,id:t,ok:!1,error:String(r||`请求失败。`)},`*`)},x=async(e,i)=>{if(e===`ready`)return{component:{id:n.id,name:n.name,version:n.version,permissions:s},locale:o,theme:p()};let m=v[e];if(!m)throw Error(a(`custom-ui:bridge.unknownMethod`,f));if(!c.has(m))throw Error(a(`custom-ui:bridge.permissionDenied`,f,{permission:m}));if(e.startsWith(`gameAssets.`)){if(d>=y)throw Error(a(`custom-ui:bridge.gameAssetBusy`,f));d+=1;try{let{handleGameAssetComponentRequest:n}=await t(async()=>{let{handleGameAssetComponentRequest:e}=await import(`./component-api-CQ_xu0Wa.js`);return{handleGameAssetComponentRequest:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]));return l.signal.throwIfAborted(),await n(e,i,l.signal)}finally{--d}}if(e===`getConfig`)return u(`/api/config`,{signal:l.signal});if(e===`listSessions`){let e=Math.min(Math.max(Number(i.limit)||50,1),200);return u(`/api/sessions?limit=${e}`,{signal:l.signal})}if(e===`notify`){let e=String(i.message||``).trim().slice(0,500);return e&&r(e),null}return null},S=t=>{if(l.signal.aborted||t.source!==e.contentWindow)return;let n=b(t.data)||{};if(n.pisperBridge!==1||typeof n.id!=`number`||!Number.isSafeInteger(n.id)||typeof n.method!=`string`)return;let r=n.id;x(n.method,b(n.params)||{}).then(e=>g(r,!0,e??null),e=>g(r,!1,e instanceof Error?e.message:String(e)))};return window.addEventListener(`message`,S),m(),()=>{l.abort(),window.removeEventListener(`message`,S),h.disconnect()}}function S(e,t,n){let r=new AbortController,i=null,a,o=e=>{f(e.id).catch(()=>void 0)},s=()=>{r.abort(),clearTimeout(a),i&&=(o(i),null)},c=()=>{r.signal.aborted||(n(),s())},l=async()=>{if(!(!i||r.signal.aborted))try{await m(i.id,r.signal),r.signal.aborted||(a=setTimeout(()=>void l(),6e4))}catch{c()}};return p(e,r.signal).then(e=>{if(r.signal.aborted){o(e);return}i=e,t(e),a=setTimeout(()=>void l(),6e4)},c),s}function C(e,t){return e.builtIn&&e.id===`pisper-island`?t(`custom-ui:builtIn.islandName`):e.name}function w(e,t){return e.builtIn&&e.id===`pisper-island`?t(`custom-ui:builtIn.islandDescription`):e.description}var T=i();function E({component:e,notify:t,preview:n=!1}){let{t:r,locale:i}=o(),a=(0,h.useRef)(null),s=(0,h.useRef)(null),c=(0,h.useRef)(t);c.current=t;let[u,f]=(0,h.useState)(!1),[p,m]=(0,h.useState)(0),[g,_]=(0,h.useState)(null);return(0,h.useEffect)(()=>{f(!1),_(null);let t=S(e.id,_,()=>f(!0));return s.current=t,()=>{t(),s.current=null}},[e.id,e.entry,p]),(0,h.useEffect)(()=>{let t=a.current;if(!(!t||u||!g))return x(t,{component:e,preview:n,locale:i,notify:e=>c.current?.(e)})},[e,n,g,u,i]),u?(0,T.jsxs)(`div`,{role:`status`,className:`flex h-full min-h-0 min-w-0 flex-col items-center justify-center gap-2 overflow-auto p-3 text-center text-xs text-[var(--text-muted)]`,children:[(0,T.jsx)(`p`,{children:r(`custom-ui:customUiPage.componentFailedToLoad`)}),(0,T.jsx)(d,{variant:`outline`,size:`sm`,onClick:()=>m(e=>e+1),children:r(`custom-ui:widget.retry`)})]}):g?(0,T.jsx)(`iframe`,{ref:a,title:C(e,r),src:g.entryUrl,referrerPolicy:`no-referrer`,sandbox:`allow-scripts`,inert:n||void 0,tabIndex:n?-1:void 0,className:l(`block h-full min-h-0 w-full min-w-0 border-0 bg-transparent`,n&&`pointer-events-none`),onError:()=>{s.current?.(),f(!0)}}):(0,T.jsx)(`div`,{role:`status`,className:`grid h-full min-h-0 min-w-0 place-items-center p-3 text-xs text-[var(--text-muted)]`,children:r(`custom-ui:customUiPage.loading`)})}var D=128,O=/^[a-z0-9][a-z0-9._-]{0,63}$/;function k(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function A(e){return typeof e==`string`&&O.test(e)}function j(e){let t={};if(!k(e))return t;for(let n of Object.keys(e)){if(Object.keys(t).length>=D)break;let r=Object.getOwnPropertyDescriptor(e,n);A(n)&&r&&`value`in r&&typeof r.value==`boolean`&&(t[n]=r.value)}return t}function M(e){if(!k(e)||Object.keys(e).some(e=>e!==`prefs`))return{prefs:{}};let t=Object.getOwnPropertyDescriptor(e,`prefs`);return{prefs:j(t&&`value`in t?t.value:null)}}function N(e,t){let n=j(t),r=new Set;for(let t of e)A(t)&&(t===`pisper-island`?n[t]===!0:n[t]!==!1)&&r.add(t);for(let[e,t]of Object.entries(n))t&&r.add(e);return[...r]}var P=c()((e,t,r)=>{let i=!1,a=n=>{i=n,t()&&t().storageError!==n&&e({storageError:n})};return s((e,t)=>({prefs:{},storageError:!1,setVisible:(n,r)=>{if(!A(n))throw Object.assign(Error(`Invalid component ID`),{code:`invalid_id`});if(typeof r!=`boolean`)throw Object.assign(Error(`Invalid visibility`),{code:`invalid_visibility`});let i=t().prefs;if(i[n]!==r){if(!Object.hasOwn(i,n)&&Object.keys(i).length>=D)throw Object.assign(Error(`Too many floating preferences`),{code:`preferences_limit`});e({prefs:{...i,[n]:r}})}}}),{name:`pisper-floating-widgets`,version:1,storage:{getItem:e=>{try{let t=n.getItem(e);if(t===null)return a(!1),null;let r=JSON.parse(t);return a(!1),{state:k(r)&&r.version===1?M(r.state):{prefs:{}},version:1}}catch{return a(!0),{state:{prefs:{}},version:1}}},setItem:(e,t)=>{try{n.setItem(e,JSON.stringify(t)),a(!1)}catch{a(!0)}},removeItem:e=>{try{n.removeItem(e),a(!1)}catch{a(!0)}}},partialize:({prefs:e})=>({prefs:e}),merge:(e,t)=>({...t,...M(e),storageError:i})})(e,t,r)});export{C as a,w as i,P as n,E as r,N as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/component-api-Nwo2yGZI.js","assets/http-DphgzWtw.js","assets/vendor-router-CZg2bCPV.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-DwNgTV1j.js","assets/i18n-7QvbQzOQ.js","assets/index-iBrSU61i.js","assets/index-CdASiNlI.css","assets/storage-BpAqa-YY.js","assets/abort-signal-f4JsiYKX.js","assets/sprite-engine-catalog-D1HQWa1X.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{p as t}from"./vendor-router-CZg2bCPV.js";import{t as n}from"./index-iBrSU61i.js";import{i as r,r as i}from"./vendor-react-DwNgTV1j.js";import{u as a}from"./i18n-7QvbQzOQ.js";import{t as o}from"./use-i18n-BSZKFkMb.js";import{a as s,o as c}from"./vendor-state-GkUciC5H.js";import{t as l}from"./utils-C8uzG5AZ.js";import{t as u}from"./api-Dzobr-o_.js";import{t as d}from"./button-CQA36izu.js";import{a as f,n as p,o as m}from"./useCustomUiComponents-BH86kuaq.js";var h=e(r(),1),g=`--bg.--panel.--solid.--surface-subtle.--surface-muted.--surface-hover.--stroke.--stroke-soft.--stroke-hover.--text.--text-soft.--text-secondary.--text-muted.--brand-blue.--brand-blue-soft.--brand-blue-border.--accent-soft.--accent-strong.--accent-border.--star-strong.--on-accent.--success.--success-soft.--danger.--danger-soft.--warning-strong.--warning-soft.--focus.--r-sm.--r-md.--r-lg`.split(`.`);function _(){let e=document.documentElement,t=getComputedStyle(e),n={};for(let e of g){let r=t.getPropertyValue(e).trim();r&&(n[e]=r)}return{mode:e.classList.contains(`dark`)?`dark`:`light`,variables:n}}var v={getConfig:`config.read`,listSessions:`sessions.read`,notify:`notify`,"gameAssets.list":`game-assets.read`,"gameAssets.save":`game-assets.write`,"gameAssets.run":`game-assets.run`,"gameAssets.stop":`game-assets.run`,"gameAssets.uploadImage":`game-assets.write`,"gameAssets.image":`game-assets.read`,"gameAssets.process":`game-assets.write`,"gameAssets.engine":`game-assets.write`,"gameAssets.export":`game-assets.read`,"gameAssets.editFrames":`game-assets.write`,"gameAssets.remove":`game-assets.write`},y=4;function b(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function x(e,{component:n,notify:r,preview:i=!1,locale:o=document.documentElement.lang||`zh-CN`}){let s=i?[]:n.permissions,c=new Set(s),l=new AbortController,d=0,f=o===`en-US`?`en-US`:`zh-CN`,p=()=>({..._(),locale:o}),m=()=>{l.signal.aborted||e.contentWindow?.postMessage({pisperBridge:1,type:`theme`,theme:p()},`*`)},h=new MutationObserver(m);h.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`,`data-accent`]});let g=(t,n,r)=>{l.signal.aborted||e.contentWindow?.postMessage(n?{pisperBridge:1,id:t,ok:!0,result:r}:{pisperBridge:1,id:t,ok:!1,error:String(r||`请求失败。`)},`*`)},x=async(e,i)=>{if(e===`ready`)return{component:{id:n.id,name:n.name,version:n.version,permissions:s},locale:o,theme:p()};let m=v[e];if(!m)throw Error(a(`custom-ui:bridge.unknownMethod`,f));if(!c.has(m))throw Error(a(`custom-ui:bridge.permissionDenied`,f,{permission:m}));if(e.startsWith(`gameAssets.`)){if(d>=y)throw Error(a(`custom-ui:bridge.gameAssetBusy`,f));d+=1;try{let{handleGameAssetComponentRequest:n}=await t(async()=>{let{handleGameAssetComponentRequest:e}=await import(`./component-api-Nwo2yGZI.js`);return{handleGameAssetComponentRequest:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]));return l.signal.throwIfAborted(),await n(e,i,l.signal)}finally{--d}}if(e===`getConfig`)return u(`/api/config`,{signal:l.signal});if(e===`listSessions`){let e=Math.min(Math.max(Number(i.limit)||50,1),200);return u(`/api/sessions?limit=${e}`,{signal:l.signal})}if(e===`notify`){let e=String(i.message||``).trim().slice(0,500);return e&&r(e),null}return null},S=t=>{if(l.signal.aborted||t.source!==e.contentWindow)return;let n=b(t.data)||{};if(n.pisperBridge!==1||typeof n.id!=`number`||!Number.isSafeInteger(n.id)||typeof n.method!=`string`)return;let r=n.id;x(n.method,b(n.params)||{}).then(e=>g(r,!0,e??null),e=>g(r,!1,e instanceof Error?e.message:String(e)))};return window.addEventListener(`message`,S),m(),()=>{l.abort(),window.removeEventListener(`message`,S),h.disconnect()}}function S(e,t,n){let r=new AbortController,i=null,a,o=e=>{f(e.id).catch(()=>void 0)},s=()=>{r.abort(),clearTimeout(a),i&&=(o(i),null)},c=()=>{r.signal.aborted||(n(),s())},l=async()=>{if(!(!i||r.signal.aborted))try{await m(i.id,r.signal),r.signal.aborted||(a=setTimeout(()=>void l(),6e4))}catch{c()}};return p(e,r.signal).then(e=>{if(r.signal.aborted){o(e);return}i=e,t(e),a=setTimeout(()=>void l(),6e4)},c),s}function C(e,t){return e.builtIn&&e.id===`pisper-island`?t(`custom-ui:builtIn.islandName`):e.name}function w(e,t){return e.builtIn&&e.id===`pisper-island`?t(`custom-ui:builtIn.islandDescription`):e.description}var T=i();function E({component:e,notify:t,preview:n=!1}){let{t:r,locale:i}=o(),a=(0,h.useRef)(null),s=(0,h.useRef)(null),c=(0,h.useRef)(t);c.current=t;let[u,f]=(0,h.useState)(!1),[p,m]=(0,h.useState)(0),[g,_]=(0,h.useState)(null);return(0,h.useEffect)(()=>{f(!1),_(null);let t=S(e.id,_,()=>f(!0));return s.current=t,()=>{t(),s.current=null}},[e.id,e.entry,p]),(0,h.useEffect)(()=>{let t=a.current;if(!(!t||u||!g))return x(t,{component:e,preview:n,locale:i,notify:e=>c.current?.(e)})},[e,n,g,u,i]),u?(0,T.jsxs)(`div`,{role:`status`,className:`flex h-full min-h-0 min-w-0 flex-col items-center justify-center gap-2 overflow-auto p-3 text-center text-xs text-[var(--text-muted)]`,children:[(0,T.jsx)(`p`,{children:r(`custom-ui:customUiPage.componentFailedToLoad`)}),(0,T.jsx)(d,{variant:`outline`,size:`sm`,onClick:()=>m(e=>e+1),children:r(`custom-ui:widget.retry`)})]}):g?(0,T.jsx)(`iframe`,{ref:a,title:C(e,r),src:g.entryUrl,referrerPolicy:`no-referrer`,sandbox:`allow-scripts`,inert:n||void 0,tabIndex:n?-1:void 0,className:l(`block h-full min-h-0 w-full min-w-0 border-0 bg-transparent`,n&&`pointer-events-none`),onError:()=>{s.current?.(),f(!0)}}):(0,T.jsx)(`div`,{role:`status`,className:`grid h-full min-h-0 min-w-0 place-items-center p-3 text-xs text-[var(--text-muted)]`,children:r(`custom-ui:customUiPage.loading`)})}var D=128,O=/^[a-z0-9][a-z0-9._-]{0,63}$/;function k(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function A(e){return typeof e==`string`&&O.test(e)}function j(e){let t={};if(!k(e))return t;for(let n of Object.keys(e)){if(Object.keys(t).length>=D)break;let r=Object.getOwnPropertyDescriptor(e,n);A(n)&&r&&`value`in r&&typeof r.value==`boolean`&&(t[n]=r.value)}return t}function M(e){if(!k(e)||Object.keys(e).some(e=>e!==`prefs`))return{prefs:{}};let t=Object.getOwnPropertyDescriptor(e,`prefs`);return{prefs:j(t&&`value`in t?t.value:null)}}function N(e,t){let n=j(t),r=new Set;for(let t of e)A(t)&&(t===`pisper-island`?n[t]===!0:n[t]!==!1)&&r.add(t);for(let[e,t]of Object.entries(n))t&&r.add(e);return[...r]}var P=c()((e,t,r)=>{let i=!1,a=n=>{i=n,t()&&t().storageError!==n&&e({storageError:n})};return s((e,t)=>({prefs:{},storageError:!1,setVisible:(n,r)=>{if(!A(n))throw Object.assign(Error(`Invalid component ID`),{code:`invalid_id`});if(typeof r!=`boolean`)throw Object.assign(Error(`Invalid visibility`),{code:`invalid_visibility`});let i=t().prefs;if(i[n]!==r){if(!Object.hasOwn(i,n)&&Object.keys(i).length>=D)throw Object.assign(Error(`Too many floating preferences`),{code:`preferences_limit`});e({prefs:{...i,[n]:r}})}}}),{name:`pisper-floating-widgets`,version:1,storage:{getItem:e=>{try{let t=n.getItem(e);if(t===null)return a(!1),null;let r=JSON.parse(t);return a(!1),{state:k(r)&&r.version===1?M(r.state):{prefs:{}},version:1}}catch{return a(!0),{state:{prefs:{}},version:1}}},setItem:(e,t)=>{try{n.setItem(e,JSON.stringify(t)),a(!1)}catch{a(!0)}},removeItem:e=>{try{n.removeItem(e),a(!1)}catch{a(!0)}}},partialize:({prefs:e})=>({prefs:e}),merge:(e,t)=>({...t,...M(e),storageError:i})})(e,t,r)});export{C as a,w as i,P as n,E as r,N as t};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mobile-runtime-recovery-tbTyacip.js","assets/rolldown-runtime-B0Z9INg1.js"])))=>i.map(i=>d[i]);
2
- import{p as e}from"./vendor-router-CZg2bCPV.js";import{c as t,l as n,s as r,u as i}from"./i18n-Bo7twSO7.js";import{i as a,n as o}from"./abort-signal-f4JsiYKX.js";var s=class extends Error{status;data;kind;constructor(e,t={}){super(e),this.name=`ApiError`,this.status=t.status,this.data=t.data,this.kind=t.kind}};function c(e){return new s(i(`common:api.invalidResponse`,t(r.language)?r.language:n()),{status:e,kind:`protocol`,data:{code:`INVALID_RESPONSE`}})}function l(e){if(e)try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?{...t,error:`error`in t&&typeof t.error==`string`?t.error:void 0}:{error:typeof t==`string`?t:e,body:t}}catch{return{error:e}}}async function u(e){let t=l(await e.text());return new s(t?.error||e.statusText||`HTTP ${e.status}`,{status:e.status,data:t,kind:`http`})}async function d(e){if(e.status===204)return;let t=await e.text();if(t)try{return JSON.parse(t)}catch{throw c(e.status)}}async function f(t){if(typeof window>`u`||!window.__PISPER_MOBILE_APP__)return;let n=o(t,p);try{await a(e(()=>import(`./mobile-runtime-recovery-tbTyacip.js`).then(e=>e.t).then(async e=>{e.installMobileRuntimeForegroundRecovery(),await e.waitForMobileRuntimeReady()}),__vite__mapDeps([0,1])),n.signal)}finally{n.dispose()}}var p=3e4;function m(e,t){return e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:t}async function h(e,t,n){let{body:r,data:i,headers:a,signal:o,timeout:c=p,...l}=t,d=i===void 0?r:i,h=new Headers(a),g;d!==void 0&&(d instanceof Blob?(g=d,h.has(`Content-Type`)||h.set(`Content-Type`,d.type||`application/octet-stream`)):(g=typeof d==`string`?d:JSON.stringify(d),h.has(`Content-Type`)||h.set(`Content-Type`,`application/json`)));let _=new AbortController,v=!1,y=()=>_.abort(o?.reason);o?.aborted?y():o?.addEventListener(`abort`,y,{once:!0});let b=c>0?setTimeout(()=>{v=!0,_.abort(new DOMException(`Request timed out`,`TimeoutError`))},c):void 0;try{if(await f(_.signal),_.signal.aborted)throw _.signal.reason;let t=await fetch(e,{...l,body:g,headers:h,signal:_.signal});if(!t.ok)throw await u(t);return await n(t)}catch(e){throw e instanceof s?e:v?new s(`请求超时 (${c}ms)`,{kind:`timeout`}):o?.aborted?new s(m(o.reason,`请求已取消`),{kind:`cancelled`}):new s(m(e,`请求失败 (network)`),{kind:`network`})}finally{b!==void 0&&clearTimeout(b),o?.removeEventListener(`abort`,y)}}function g(e,t={}){let{parse:n,...r}=t;return h(e,r,async e=>{let t=await d(e);return n?n(t):t})}function _(e,t={}){return h(e,t,e=>e.blob())}export{u as a,c as i,g as n,s as o,f as r,_ as t};
2
+ import{p as e}from"./vendor-router-CZg2bCPV.js";import{c as t,l as n,s as r,u as i}from"./i18n-7QvbQzOQ.js";import{i as a,n as o}from"./abort-signal-f4JsiYKX.js";var s=class extends Error{status;data;kind;constructor(e,t={}){super(e),this.name=`ApiError`,this.status=t.status,this.data=t.data,this.kind=t.kind}};function c(e){return new s(i(`common:api.invalidResponse`,t(r.language)?r.language:n()),{status:e,kind:`protocol`,data:{code:`INVALID_RESPONSE`}})}function l(e){if(e)try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?{...t,error:`error`in t&&typeof t.error==`string`?t.error:void 0}:{error:typeof t==`string`?t:e,body:t}}catch{return{error:e}}}async function u(e){let t=l(await e.text());return new s(t?.error||e.statusText||`HTTP ${e.status}`,{status:e.status,data:t,kind:`http`})}async function d(e){if(e.status===204)return;let t=await e.text();if(t)try{return JSON.parse(t)}catch{throw c(e.status)}}async function f(t){if(typeof window>`u`||!window.__PISPER_MOBILE_APP__)return;let n=o(t,p);try{await a(e(()=>import(`./mobile-runtime-recovery-tbTyacip.js`).then(e=>e.t).then(async e=>{e.installMobileRuntimeForegroundRecovery(),await e.waitForMobileRuntimeReady()}),__vite__mapDeps([0,1])),n.signal)}finally{n.dispose()}}var p=3e4;function m(e,t){return e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:t}async function h(e,t,n){let{body:r,data:i,headers:a,signal:o,timeout:c=p,...l}=t,d=i===void 0?r:i,h=new Headers(a),g;d!==void 0&&(d instanceof Blob?(g=d,h.has(`Content-Type`)||h.set(`Content-Type`,d.type||`application/octet-stream`)):(g=typeof d==`string`?d:JSON.stringify(d),h.has(`Content-Type`)||h.set(`Content-Type`,`application/json`)));let _=new AbortController,v=!1,y=()=>_.abort(o?.reason);o?.aborted?y():o?.addEventListener(`abort`,y,{once:!0});let b=c>0?setTimeout(()=>{v=!0,_.abort(new DOMException(`Request timed out`,`TimeoutError`))},c):void 0;try{if(await f(_.signal),_.signal.aborted)throw _.signal.reason;let t=await fetch(e,{...l,body:g,headers:h,signal:_.signal});if(!t.ok)throw await u(t);return await n(t)}catch(e){throw e instanceof s?e:v?new s(`请求超时 (${c}ms)`,{kind:`timeout`}):o?.aborted?new s(m(o.reason,`请求已取消`),{kind:`cancelled`}):new s(m(e,`请求失败 (network)`),{kind:`network`})}finally{b!==void 0&&clearTimeout(b),o?.removeEventListener(`abort`,y)}}function g(e,t={}){let{parse:n,...r}=t;return h(e,r,async e=>{let t=await d(e);return n?n(t):t})}function _(e,t={}){return h(e,t,e=>e.blob())}export{u as a,c as i,g as n,s as o,f as r,_ as t};