pisper 0.6.25 → 0.6.26
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 +6 -6
- package/web/.vite/manifest.json +573 -573
- package/web/assets/{AppDialog-CuxO26Km.js → AppDialog-B9y7rq_4.js} +1 -1
- package/web/assets/{AppOverlays-Bt5SL3PY.js → AppOverlays-CzdCHrpC.js} +1 -1
- package/web/assets/{AssetsPage-BE6AzOGC.js → AssetsPage-MzCklx_a.js} +1 -1
- package/web/assets/{BoardPage-DX0fJ_ap.js → BoardPage-CjQXbluj.js} +3 -3
- package/web/assets/{ChannelsPage-CyT7oDYZ.js → ChannelsPage-C6HqgnP7.js} +1 -1
- package/web/assets/{ChatAppearancePage-B6Dzj2Bj.js → ChatAppearancePage-BRlvWkJX.js} +1 -1
- package/web/assets/{ChatHistoryPage-Cq20l93c.js → ChatHistoryPage-D3jSE4oY.js} +1 -1
- package/web/assets/{ChatPage-DgiS-Qj_.js → ChatPage-BfG3KbJi.js} +3 -3
- package/web/assets/{ConfigPage-CgrWdzb5.js → ConfigPage-CshLFv2D.js} +1 -1
- package/web/assets/{DesktopWindowControls-D8axeuEx.js → DesktopWindowControls-BZu-eiS1.js} +1 -1
- package/web/assets/{FeaturePage-BB1TeMlr.js → FeaturePage-DD_32h19.js} +1 -1
- package/web/assets/{FileAttachmentPreview-DPjT_iYk.js → FileAttachmentPreview-DDX_cRzm.js} +1 -1
- package/web/assets/{FloatingWidgets-FI1S4hdn.js → FloatingWidgets-Dc4Lhl5d.js} +1 -1
- package/web/assets/{FocusRuntimeControls-CvAx-KDV.js → FocusRuntimeControls-CkYJXBrP.js} +1 -1
- package/web/assets/{GitDiffViewer-DwFfeFOA.js → GitDiffViewer-DeVUAwce.js} +1 -1
- package/web/assets/{ManageProjectsDialog-BSLNf6qD.js → ManageProjectsDialog-DPzESWUB.js} +1 -1
- package/web/assets/{MarkdownMessage-NK7Ixb4Y.js → MarkdownMessage-BfSy1Cg4.js} +1 -1
- package/web/assets/{McpPage-Cn-yDgC5.js → McpPage-CcJDe2nE.js} +1 -1
- package/web/assets/MemoryEvolution-Cwdreg5P.js +1 -0
- package/web/assets/{MemoryPage-ZwoG_oj6.js → MemoryPage-BkALQ2WN.js} +2 -2
- package/web/assets/{MobileNavigation-DK5a0kZU.js → MobileNavigation-C1mjjmqO.js} +1 -1
- package/web/assets/{MorePage-BL8nDnTQ.js → MorePage-C7kCRfpo.js} +1 -1
- package/web/assets/{NewFolderDialog-COkq83LW.js → NewFolderDialog-sqiEXqxJ.js} +1 -1
- package/web/assets/{PageHeader-BBTCMqXc.js → PageHeader-DDaW4Sdv.js} +1 -1
- package/web/assets/{PhoneDrawer-BcPKJWl-.js → PhoneDrawer-Be7C0xLf.js} +1 -1
- package/web/assets/{PhoneMenuButton-D6vdTZdF.js → PhoneMenuButton-1dPMDaRV.js} +1 -1
- package/web/assets/{PhoneTopBar-MqNeI69v.js → PhoneTopBar-BLXoPO6P.js} +1 -1
- package/web/assets/{PluginsPage-Bp71HpKD.js → PluginsPage-Bjp82DPO.js} +1 -1
- package/web/assets/{SafeModePrompt-CpvvU5wL.js → SafeModePrompt-D_OCmR6G.js} +1 -1
- package/web/assets/{SchedulesPage-Drs10rEV.js → SchedulesPage-DCOhjQ8W.js} +1 -1
- package/web/assets/{SessionBrowserPane-DjtB4MCI.js → SessionBrowserPane-Cvmqo12R.js} +2 -2
- package/web/assets/{SessionContextPanel-ETfnp4pT.js → SessionContextPanel-B9KtrMwl.js} +2 -2
- package/web/assets/{SessionHome-CHBw3ZvP.js → SessionHome-DMAZBF3M.js} +1 -1
- package/web/assets/{SessionInspector-DVaRflQy.js → SessionInspector-DfinUUs5.js} +1 -1
- package/web/assets/{SessionShell-CwfQAX7i.js → SessionShell-BxYZQh_O.js} +1 -1
- package/web/assets/{SettingsSidebar-FgC-tlY2.js → SettingsSidebar-DWXc-Z4_.js} +1 -1
- package/web/assets/{ShortcutHelpDialog-DKbIkUnk.js → ShortcutHelpDialog-QBYqmifG.js} +1 -1
- package/web/assets/{ShortcutKeys-BuHXNKVW.js → ShortcutKeys-B6hllpKE.js} +1 -1
- package/web/assets/{SidebarUpdateStatus-LKwNKESF.js → SidebarUpdateStatus-C-ebi4wI.js} +1 -1
- package/web/assets/{SkillsPage-BbnerW44.js → SkillsPage-CcNononn.js} +1 -1
- package/web/assets/{TaskProcessesPane-B2fyZEK9.js → TaskProcessesPane-D442bSux.js} +1 -1
- package/web/assets/{TaskTerminalView-CKApgF75.js → TaskTerminalView-B4fD3kVF.js} +1 -1
- package/web/assets/{TerminalPanel-D03WycYm.js → TerminalPanel-64E97AR4.js} +1 -1
- package/web/assets/{WebDesktopPet-K2dbcbnQ.js → WebDesktopPet-DUpnoJ1_.js} +1 -1
- package/web/assets/{WorkflowsPage-CmzftCtz.js → WorkflowsPage-Cj0mQmb3.js} +1 -1
- package/web/assets/{WorkspacePicker-DbdbTOV2.js → WorkspacePicker-_dbgAw5b.js} +1 -1
- package/web/assets/{api-BW_X0FMZ.js → api-_MWfl2VL.js} +1 -1
- package/web/assets/{app-update-DYFXTosD.js → app-update-CJSjwHEp.js} +1 -1
- package/web/assets/{approval-confirm-DQ5N_lJB.js → approval-confirm-D9j-l9WE.js} +1 -1
- package/web/assets/{board-projects-CrejrMrn.js → board-projects-BI5ssHIa.js} +1 -1
- package/web/assets/{bots-store-CNXTx3UY.js → bots-store-D8M80DQa.js} +1 -1
- package/web/assets/{chat-api-Bo6nhq40.js → chat-api-9V8j4rSS.js} +1 -1
- package/web/assets/{client-store-DzgOPMlh.js → client-store-xZC2AfqC.js} +1 -1
- package/web/assets/{config-search-BiQmWst4.js → config-search-VE6brXfx.js} +1 -1
- package/web/assets/{dialog-DFZX_Dek.js → dialog-BgFAhLng.js} +1 -1
- package/web/assets/{events-PfANjkHx.js → events-C96FsPEU.js} +1 -1
- package/web/assets/{focus-session-composer-bits-C_LOpJH_.js → focus-session-composer-bits-DJHZmmrf.js} +1 -1
- package/web/assets/{folder-paths-aRRH_MYq.js → folder-paths-BguW7FsR.js} +1 -1
- package/web/assets/{hosts-lvoPwC3T.js → hosts-D2X7ud3S.js} +1 -1
- package/web/assets/i18n-zKD1z9i9.js +1 -0
- package/web/assets/{index-D_zLThH_.js → index-CwdjZZLG.js} +2 -2
- package/web/assets/{memory-api-DkPje--t.js → memory-api-DilYLnpG.js} +1 -1
- package/web/assets/{mount-app-7pFSwVLO.js → mount-app-Dc-WeJ9N.js} +3 -3
- package/web/assets/{permission-rules-api-CAJsSBA5.js → permission-rules-api-CW4GK6hJ.js} +1 -1
- package/web/assets/{pick-system-directory-yk6L7wR2.js → pick-system-directory-UTgPstWX.js} +1 -1
- package/web/assets/{placements-CMrgmg3t.js → placements-Cw2TcTmd.js} +2 -2
- package/web/assets/{popover--q2hs_pT.js → popover-Cw7QFeII.js} +1 -1
- package/web/assets/{public-DkqrpWXx.js → public-4OSY9BE4.js} +2 -2
- package/web/assets/{public-DWbrDr0p.js → public-DaL-1TT_.js} +1 -1
- package/web/assets/{public-62LVX7HU.js → public-DdhGlwHC.js} +1 -1
- package/web/assets/{public-components-DHMvCgH2.js → public-components-C0KUBrxH.js} +1 -1
- package/web/assets/public-diff-ooK8-fn0.js +1 -0
- package/web/assets/public-events-ntCr-b1Y.js +1 -0
- package/web/assets/{public-flags-D9LdpQwJ.js → public-flags-D6y-DU98.js} +1 -1
- package/web/assets/{public-greeting-DEKYruJJ.js → public-greeting-JGqTdWhf.js} +1 -1
- package/web/assets/{public-session-B9UHA6rN.js → public-session-fPM64rB7.js} +1 -1
- package/web/assets/{public-sidebar-Lne86i_K.js → public-sidebar-CvLw1vam.js} +1 -1
- package/web/assets/{runtime-capabilities-store-BNM5Ug-5.js → runtime-capabilities-store-CWJvmV83.js} +1 -1
- package/web/assets/{safe-mode-instance-DnTP7EUr.js → safe-mode-instance-Dz4-ObZg.js} +1 -1
- package/web/assets/safe-mode-sentinel-Bg8pbnu-.js +1 -0
- package/web/assets/{session-change-summary-api-DMTwGz7o.js → session-change-summary-api-C3QE98fZ.js} +1 -1
- package/web/assets/{session-home-DUpZt2dn.js → session-home-CLGrhgld.js} +1 -1
- package/web/assets/{session-organization-api-BGyp66Uv.js → session-organization-api-B2UGOx0B.js} +1 -1
- package/web/assets/{session-scope-DZITSvZr.js → session-scope-okdygSiV.js} +1 -1
- package/web/assets/{session-tree-actions-CRWyFqAD.js → session-tree-actions-9m9DHqIx.js} +1 -1
- package/web/assets/{session-tree-summary-HTmAo_9V.js → session-tree-summary-u-RSxXXY.js} +1 -1
- package/web/assets/{shortcuts-D72gQCwH.js → shortcuts-CVPFuAiJ.js} +1 -1
- package/web/assets/{side-chat-context-D1hZOT7g.js → side-chat-context-By5GbAvl.js} +4 -4
- package/web/assets/{sidebar-sj8X80Y9.js → sidebar-BWHi3RGN.js} +1 -1
- package/web/assets/{sidebar-store-CXZ7QrOr.js → sidebar-store-CLA6EfOm.js} +1 -1
- package/web/assets/{speech-session-D2GQEOAL.js → speech-session-CFUz5f6J.js} +1 -1
- package/web/assets/{startup-queries-CuEXV1Zu.js → startup-queries-Xa-I9BT7.js} +1 -1
- package/web/assets/{use-i18n-_vdxObu5.js → use-i18n-CIheiCov.js} +1 -1
- package/web/assets/{use-open-bot-BTxzOAbZ.js → use-open-bot-zjJ_Tnfv.js} +1 -1
- package/web/assets/{use-studio-actions-CbMHRZpd.js → use-studio-actions-BiRUtcRX.js} +1 -1
- package/web/assets/{useCatalogProjects-BEkCpADy.js → useCatalogProjects-CbyrRuIn.js} +1 -1
- package/web/assets/{useNewProjectPicker-CUtLjwYE.js → useNewProjectPicker-6iK1xIT3.js} +2 -2
- package/web/assets/{useNow-eQeBCqQk.js → useNow-CE8ZJGxH.js} +1 -1
- package/web/assets/{usePhoneShell-DZHZWXnN.js → usePhoneShell-sWQz-gv8.js} +1 -1
- package/web/assets/{useSessionListQuery-BoUzmjZC.js → useSessionListQuery-K7Hh_V_2.js} +1 -1
- package/web/assets/{useSessionRowActions-DCqDrGZY.js → useSessionRowActions-Geuo0bzR.js} +1 -1
- package/web/assets/{useSidebarModel-CZAfH4Fa.js → useSidebarModel-BuyZjTgh.js} +1 -1
- package/web/assets/{web-preview-XrRFo42l.js → web-preview-0hEXH_IN.js} +1 -1
- package/web/assets/{web-preview-events-Ba6duwGi.js → web-preview-events-B5w8DSl2.js} +1 -1
- package/web/assets/{workspace-order-store-Ao4OZ13V.js → workspace-order-store-GwJH1aiS.js} +1 -1
- package/web/index.html +1 -1
- package/web/assets/MemoryEvolution-B8IeSLcd.js +0 -1
- package/web/assets/i18n-EVP8yIdy.js +0 -1
- package/web/assets/public-diff-WjbTu91T.js +0 -1
- package/web/assets/public-events-CTdTIu5Q.js +0 -1
- package/web/assets/safe-mode-sentinel-DOhqH4gj.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{o as n}from"./vendor-state-GkUciC5H.js";import{u as r}from"./query-Bj-DUNYq.js";import{t as i}from"./useQuery-DdcpUQhO.js";import{a,i as o,n as s,o as c,t as l}from"./startup-queries-CuEXV1Zu.js";import{t as u}from"./component-changes-Q9Bf64Ob.js";import{a as d,c as f,s as p,u as m}from"./api-BW_X0FMZ.js";import{t as h}from"./runtime-capabilities-store-BNM5Ug-5.js";import{a as g,c as _,r as v,s as y,t as ee}from"./session-board-status-D2lpFPiI.js";import{t as b}from"./chat-api-Bo6nhq40.js";import{n as x}from"./session-organization-api-BGyp66Uv.js";import{c as te,s as ne}from"./session-workspaces-Csgpuzxd.js";import{i as re}from"./session-questions-Cf-1g85h.js";var S=400,ie=2e3,ae=160,oe=512,se=400,ce=240,le=240,ue=8,C=40,de=80,fe=3;function w(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function T(e){return typeof e==`string`?e:``}function E(e){return typeof e==`string`&&Number.isFinite(Date.parse(e))?e:null}function D(e,t){let n=Array.from(e);return n.length>t?`${n.slice(0,t-1).join(``)}…`:e}function pe(e,t){let n=w(t),r=e===`bash`?n.command:n.path??n.file_path??n.url??n.query??n.pattern;return D(((typeof r==`string`?r:Object.values(n).find(e=>typeof e==`string`))||``).replace(/\s+/g,` `).trim(),ae)}function me(e){let t=w(e);if(t.type===`model`)return{type:`model`,stage:T(t.stage)||`thinking`};if(t.type===`tool`&&T(t.name)){let e=T(t.name);return{type:`tool`,name:e,summary:pe(e,t.args),startedAt:E(t.startedAt)}}return null}function he(e){let t=w(e),n=T(t.id);if(!n)return null;let r=w(t.args),i=w(t.fileChange);return{id:n,toolName:T(t.toolName),toolCallId:T(t.toolCallId),args:r,command:T(r.command),path:T(i.path)||T(r.path)||T(r.file_path),reason:D(T(t.reason),S),risk:T(t.risk),severity:g(t),createdAt:E(t.createdAt)}}function ge(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){let e=he(r);!e||t.has(e.id)||(t.add(e.id),n.push(e))}return n}function _e(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function O(e){let t=_e(e);return t===null?null:Math.max(0,Math.floor(t))}var ve=/[\u0000-\u001f\u007f-\u009f]/g;function k(e,t){return D(T(e).replace(ve,` `).trimEnd(),t)}function ye(e){let t=/^(?:path|file_path): (.+)$/m.exec(e);return t?t[1].trim():``}function be(e){let t=w(e),n=T(t.id);if(!n)return null;let r=T(t.toolName),i=T(t.argsPreview),a=D(i,oe),o=t.argsTruncated===!0||a!==i,s=r===`bash`;return{id:n,toolName:r,toolCallId:``,args:{},command:s?a:``,path:s?``:ye(a),reason:D(T(t.reason),S),risk:T(t.risk),severity:g({severity:t.severity,reason:t.reason,toolName:r}),createdAt:E(t.createdAt),argsText:s?``:a,truncated:o}}function xe(e){let t=w(e);return t.type===`model`?{type:`model`,stage:D(T(t.stage),C)}:t.type===`tool`&&T(t.name)?{type:`tool`,name:D(T(t.name),C),summary:D(T(t.argsSummary).replace(/\s+/g,` `).trim(),ae),startedAt:E(t.startedAt)}:null}function Se(e){let t=w(e),n=T(t.id),r=k(t.name,C);if(!n||!r)return null;let i=w(t.avatar);return{id:D(n,C),name:r,character:D(T(i.character),C),color:D(T(i.color),C)}}function Ce(e){return e?{bot:e}:{}}function we(e){let t=w(e),n=T(t.status);return n?{added:O(t.added),removed:O(t.removed),files:O(t.files),status:D(n,C)}:null}function Te(e){let t=w(e),n=w(t.error),r=k(n.message,se),i=w(t.agents),a=O(i.running),o=O(i.total),s=_e(t.contextPct),c=ee.includes(T(t.outcome))?t.outcome:null,l=[],u=new Set;for(let e of Array.isArray(t.approvals)?t.approvals:[]){let t=be(e);if(!(!t||u.has(t.id))&&(u.add(t.id),l.push(t),l.length>=ue))break}return{boardStatus:D(T(t.boardStatus),C),runId:D(T(t.runId),de),activity:xe(t.activity),startedAt:E(t.startedAt),lastActivityAt:E(t.lastActivityAt),finishedAt:E(t.finishedAt),outcome:c,error:r?{message:r,kind:D(T(n.kind),C)||`runtime`}:null,approvals:l,queuedInputCount:O(t.queuedInputCount)??0,contextPct:s===null?null:Math.min(100,Math.max(0,s)),changeStats:we(t.changeStats),preview:k(t.lastAssistantPreview,ce),tail:(Array.isArray(t.tail)?t.tail:[]).map(e=>k(e,le)).filter(e=>e.trim()).slice(-3),agents:a!==null&&o!==null&&o>0?{running:Math.min(a,o),total:o}:null,totalTokens:O(w(t.usage).totalTokens),...Ce(Se(t.bot))}}function Ee(e){let t=w(e),n=T(t.id);if(!n)return null;let r={...t,id:n};return delete r.card,r}function De(e){let t=Ee(e);return t?{session:t,card:Te(w(e).card)}:null}function Oe(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function ke(e){let t=w(e),n=[],r=new Set;for(let e of Array.isArray(t.sessions)?t.sessions:[]){let t=De(e);!t||r.has(t.session.id)||(r.add(t.session.id),n.push(t))}let i=T(t.nextCursor);return{items:n,nextCursor:i&&i.length<=1024?i:null,revision:Oe(t.revision)}}function Ae(){return-new Date().getTimezoneOffset()}function je(e){let t=w(e);return{streaming:t.streaming===!0,approvals:ge(t.approvals),error:D(T(t.error),ie),activity:me(t.currentActivity),startedAt:E(t.startedAt),lastActivityAt:E(t.lastActivityAt),finishedAt:E(t.finishedAt)}}var A={listSessions:()=>b.listSessions(),getLiveDetail:async(e,t)=>je(await b.getLiveSession(e,{signal:t,timeout:15e3})),resolveApproval:async(e,t,n)=>{try{return w(await b.resolveApproval(e,t,n)).alreadyResolved===!0?`already-resolved`:`resolved`}catch(e){if(e instanceof m&&e.status===404)return`missing`;throw e}},retry:(e,t,n)=>b.retryLastTurn(e,t,{signal:n}),updateOrganization:(e,t)=>x(e,t),renameSession:async(e,t)=>{let n=w(await b.renameSession(e,t));return typeof n.name==`string`?n.name:t},listBoardView:async e=>{let t=[],n=new Set,r=``,i=null;for(let a=0;a<fe;a+=1){let o=new URLSearchParams({view:`board`,window:`7d`,limit:`200`,tzOffset:String(Ae())});r&&o.set(`cursor`,r);let s=await d(`/api/sessions?${o}`,{signal:e,timeout:15e3,parse:ke});a===0&&(i=s.revision);for(let e of s.items)n.has(e.session.id)||(n.add(e.session.id),t.push(e));if(r=s.nextCursor??``,!r||t.length>=500)break}return{items:t.slice(0,500),nextCursor:r||null,revision:i}},openBoardEvents:async(e,t,n)=>{await p(n);let r=e===null?``:`?after=${encodeURIComponent(String(e))}`,i;try{i=await fetch(`/api/board/events${r}`,{signal:n,headers:{Accept:`text/event-stream`}})}catch(e){throw n.aborted?e:new m(e instanceof Error?e.message:`network`,{kind:`network`})}await f(i,(e,n)=>t(e,n))}};function j(e=`legacy`){return{mode:e,ready:!1,revision:null,awaitingSnapshot:!1,entries:{},updatedAt:0}}function M(){return{upserts:[],removed:[],resync:!1,reconnect:!1,truncated:!1,catalog:!1,changed:!1}}function Me(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function Ne(e,t,n,r=Date.now()){let i=M(),a={},o=n??e.revision??0;for(let e of t)a[e.session.id]={...e,revision:o,receivedAt:r},i.upserts.push(e.session);for(let t of Object.keys(e.entries))t in a||i.removed.push(t);return i.changed=!0,{feed:{...e,ready:!0,revision:n??e.revision,awaitingSnapshot:!1,entries:a,updatedAt:r},effects:i}}function Pe(e,t,n,r=Date.now()){let i=Me(n),a=Oe(i.revision),o={feed:e,effects:M()};if(t===`snapshot`){if(a===null||!Array.isArray(i.items))return o;let t=[],n=new Set;for(let e of i.items){let r=De(e);!r||n.has(r.session.id)||(n.add(r.session.id),t.push(r))}let s=Ne(e,t,a,r);return s.effects.truncated=i.truncated===!0,s}if(t===`resync_required`){let t=M();return t.resync=!0,t.reconnect=i.reason===`flush_failed`,t.changed=!e.awaitingSnapshot,{feed:{...e,awaitingSnapshot:!0},effects:t}}if(e.awaitingSnapshot||a===null||e.revision!==null&&a<=e.revision)return o;if(t===`heartbeat`||t===`component_changed`||t===`catalog_changed`){let n=M();return n.changed=!0,n.catalog=t===`catalog_changed`,{feed:{...e,revision:a,updatedAt:r},effects:n}}if(t!==`session_card`)return o;let s=typeof i.id==`string`?i.id:``;if(!s)return o;let c=e.entries[s];if(c&&a<=c.revision)return o;let l=M();if(l.changed=!0,i.removed===!0){let t={...e.entries};return delete t[s],c&&l.removed.push(s),{feed:{...e,revision:a,entries:t,updatedAt:r},effects:l}}let u=Ee(i.session);return!u||u.id!==s?{feed:{...e,revision:a,updatedAt:r},effects:l}:(l.upserts.push(u),{feed:{...e,revision:a,entries:{...e.entries,[s]:{session:u,card:Te(i.card),revision:a,receivedAt:r}},updatedAt:r},effects:l})}var N=l,Fe=3e3,Ie=2e3,Le=3e4,Re=1e3,ze=3e4,Be=6e4,Ve=4e3,He=4e4,Ue=300,We=6e3,Ge=6e4,Ke=1e3,qe={feed:j(),live:{},localRuns:{},runningSince:{},patches:{},pending:{}},P=n()(()=>({...qe}));function Je(){return a.getQueryData(N)?.sessions??[]}function F(){return s(`sessions`,!0)}async function Ye(){o(`sessions`),await F()}async function Xe(e,t=()=>!0,{fresh:n=!1}={}){if(V.active&&V.mode===`events`&&V.events.controller){if(!n&&t(P.getState().feed.entries[e]))return;await Ze(e,t,Ve);return}if(V.active&&V.mode!==`legacy`&&I().view){await K();return}await Ye().catch(()=>void 0)}function Ze(e,t,n){return new Promise(r=>{let i=P.getState().feed.entries[e],a=null,o=()=>{},s=()=>{a&&clearTimeout(a),o(),r()};o=P.subscribe(n=>{let r=n.feed.entries[e];r!==i&&t(r)&&s()}),a=setTimeout(s,n)})}function I(){let{capabilities:e,loaded:t}=h.getState(),n=e.features;return{loaded:t,view:t&&n[`board.view`]===!0,events:t&&n[`board.events`]===!0}}function Qe(){return I().view}var $e=0;function et(e,t){let n=++$e;return P.setState(r=>({patches:{...r.patches,[e]:[...r.patches[e]??[],{token:n,patch:t}]}})),n}function tt(e,t){P.setState(n=>{let r=n.patches[e];if(!r?.some(e=>e.token===t))return n;let i=r.filter(e=>e.token!==t),a={...n.patches};return i.length?a[e]=i:delete a[e],{patches:a}})}function L(e,t){let n=t[e.id];return n?.length?n.reduce((e,t)=>({...e,...t.patch}),e):e}function R(e,t,n=``){return e===`approve`||e===`deny`?`approval:${t}:${n}`:`${e}:${t}`}function nt(e,t){return!P.getState().pending[e]&&(P.setState(n=>({pending:{...n.pending,[e]:t}})),!0)}function rt(e){P.setState(t=>{if(!(e in t.pending))return t;let n={...t.pending};return delete n[e],{pending:n}})}function z(e,t){P.setState(n=>{let r=t(n.live[e]);if(r===n.live[e])return n;let i={...n.live};return r?i[e]=r:delete i[e],{live:i}})}function it(e,t){P.setState(n=>{let r=n.feed.entries[e];if(!r)return n;let i=t(r.card.approvals);return i===r.card.approvals?n:{feed:{...n.feed,entries:{...n.feed.entries,[e]:{...r,card:{...r.card,approvals:i}}}}}})}function at(e,t){z(e,e=>e&&e.approvals.some(e=>e.id===t)?{...e,approvals:e.approvals.filter(e=>e.id!==t)}:e??null),it(e,e=>e.some(e=>e.id===t)?e.filter(e=>e.id!==t):e)}function ot(e,t){if(P.getState().feed.entries[e]){it(e,e=>e.some(e=>e.id===t.id)?e:[...e,t]);return}z(e,e=>{let n=e??B(`ready`);return n.approvals.some(e=>e.id===t.id)?n:{...n,approvals:[...n.approvals,t]}})}function st(e,t){let n=P.getState(),r=n.live[e]?.approvals.find(e=>e.id===t);if(r)return r;let i=n.feed.entries[e]?.card.approvals.find(e=>e.id===t);return i&&!i.truncated?i:void 0}function ct(e,t){P.setState(n=>{let r=n.feed.entries[e];return r?{feed:{...n.feed,entries:{...n.feed.entries,[e]:{...r,session:{...r.session,...t},receivedAt:Date.now()}}}}:n})}function lt(e){let t=P.getState(),n=t.feed.entries[e];return n&&V.mode!==`legacy`?n.card.approvals:t.live[e]?.approvals??[]}function B(e){return{status:e,approvals:[],error:``,activity:null,startedAt:null,fetchedAt:null,failures:0}}var V={retainers:0,active:!1,mode:`legacy`,pollTimer:null,releaseTimer:null,catalogTimer:null,liveTimers:new Map,liveControllers:new Map,liveNextAt:new Map,runControllers:new Map,events:{controller:null,retryTimer:null,attempt:0,blockedUntil:0,blockTimer:null,watchdog:null},view:{inFlight:null,controller:null,failures:0},feedSettled:!1,catalogFetchAt:0,cleanups:[]};function H(){return typeof document>`u`||document.visibilityState!==`hidden`}function ut(){let e=I();return e.events&&Date.now()>=V.events.blockedUntil?`events`:e.view?`view`:`legacy`}function U(e=P.getState().feed){return V.mode!==`legacy`&&e.ready}function W(){V.pollTimer&&clearTimeout(V.pollTimer),V.pollTimer=null}function G(e){W(),!(!V.active||V.mode===`events`||!H())&&(V.pollTimer=setTimeout(()=>{V.pollTimer=null,ft()},e))}function dt(){return V.view.failures?Math.min(Ie*2**V.view.failures,Le):Ie}async function ft(){let e=V.mode;if(e===`view`)await pt();else try{await F()}catch{}!V.active||V.mode!==e||(Z(),G(e===`view`?dt():Fe))}function pt(){if(V.view.inFlight)return V.view.inFlight;let e=new AbortController;V.view.controller=e;let t=(async()=>{try{let t=await A.listBoardView(e.signal);if(e.signal.aborted||!V.active)return;V.view.failures=0,V.feedSettled=!0,bt(Ne(P.getState().feed,t.items,V.mode===`events`?null:t.revision))}catch{if(e.signal.aborted)return;V.view.failures+=1,V.feedSettled=!0,Z()}finally{V.view.controller===e&&(V.view.controller=null,V.view.inFlight=null)}})();return V.view.inFlight=t,t}async function K(){let e=V.view.inFlight;e&&await e,await pt()}function mt(){V.view.controller?.abort(),V.view.controller=null,V.view.inFlight=null}function q(){let e=V.events;e.retryTimer&&clearTimeout(e.retryTimer),e.retryTimer=null,J();let t=e.controller;e.controller=null,t?.abort()}function J(){V.events.watchdog&&clearTimeout(V.events.watchdog),V.events.watchdog=null}function ht(e){J(),V.events.watchdog=setTimeout(()=>{V.events.watchdog=null;let t=V.events;t.controller!==e||e.signal.aborted||(t.controller=null,e.abort(),!(!V.active||V.mode!==`events`)&&(gt(0),Z()))},He)}function gt(e){let t=V.events;t.retryTimer&&clearTimeout(t.retryTimer),t.retryTimer=setTimeout(()=>{t.retryTimer=null,Y()},e)}function _t(e){return e instanceof m&&e.kind===`http`&&typeof e.status==`number`&&e.status>=400&&e.status<500}function vt(){let e=V.events;e.blockedUntil=Date.now()+Be,e.blockTimer&&clearTimeout(e.blockTimer),e.blockTimer=setTimeout(()=>{e.blockTimer=null,X()},60010),X()}function Y(){let e=V.events;if(!V.active||V.mode!==`events`||e.controller||e.retryTimer||!H())return;let t=new AbortController;e.controller=t,ht(t);let n=P.getState().feed,r=n.ready&&!n.awaitingSnapshot?n.revision:null,i=!1,a=!1;A.openBoardEvents(r,(n,r)=>{if(t.signal.aborted||e.controller!==t)return!1;if(ht(t),i=!0,e.attempt=0,V.feedSettled=!0,yt(n,r).reconnect)return a=!0,!1},t.signal).then(()=>null,e=>e).then(n=>{if(e.controller===t&&(e.controller=null,J(),!(t.signal.aborted||!V.active))){if(V.feedSettled=!0,n&&_t(n))vt();else{let t=a?0:i?Re:Math.min(Re*2**e.attempt,ze);!i&&!a&&(e.attempt+=1),gt(t)}Z()}})}function yt(e,t){let n=Pe(P.getState().feed,e,t);return bt(n,e===`heartbeat`||e===`component_changed`||e===`catalog_changed`),u(e,t,n.effects.changed),n.effects}function bt({feed:e,effects:t},n=!1){t.changed&&P.setState({feed:{...e,mode:V.mode}}),t.upserts.length&&xt(t.upserts),(t.removed.length||t.resync||t.catalog)&&St(),t.changed&&!n&&Z()}function xt(e){let t=a.getQueryData(N);if(!t||!e.length)return;let n=new Map(t.sessions.map((e,t)=>[e.id,t])),r=null,i=[];for(let a of e){let e=n.get(a.id);if(e===void 0){i.some(e=>e.id===a.id)||i.push(a);continue}let o=(r??t.sessions)[e];JSON.stringify(o)!==JSON.stringify(a)&&(r??=[...t.sessions],r[e]=a)}!r&&!i.length||a.setQueryData(N,{...t,sessions:[...i,...r??t.sessions]})}function St(){V.catalogTimer||!V.active||(V.catalogTimer=setTimeout(()=>{V.catalogTimer=null,V.active&&F().catch(()=>void 0)},Ue))}function X(){if(!V.active)return;let e=ut();e!==V.mode&&(V.mode=e,V.feedSettled=!1,V.view.failures=0,q(),mt(),W(),P.setState(t=>({feed:e===`legacy`?j(`legacy`):{...t.feed,mode:e}})),e===`events`?(V.events.attempt=0,Y()):G(0),Z())}function Ct(){V.retainers+=1,V.releaseTimer&&=(clearTimeout(V.releaseTimer),null),V.active||wt();let e=!1;return()=>{e||(e=!0,V.retainers=Math.max(0,V.retainers-1),!(V.retainers>0)&&(V.releaseTimer=setTimeout(()=>{V.releaseTimer=null,V.retainers===0&&Tt()},Ke)))}}function wt(){V.active=!0,V.mode=ut(),V.feedSettled=!1,V.view.failures=0,V.events.attempt=0,P.setState(e=>({feed:V.mode===`legacy`?j(`legacy`):{...e.feed,mode:V.mode}}));let e=r(N);if(V.catalogFetchAt=Math.max(V.catalogFetchAt,a.getQueryState(N)?.dataUpdatedAt??0),V.cleanups.push(a.getQueryCache().subscribe(t=>{if(t.type===`updated`&&t.query.queryHash===e){if(t.action.type===`fetch`){V.catalogFetchAt=Date.now();return}t.action.type===`success`&&Dt()}})),V.cleanups.push(h.subscribe(()=>X())),typeof document<`u`){let e=()=>{if(H()){V.mode===`events`?Y():G(0),Z();return}W(),q()};document.addEventListener(`visibilitychange`,e),V.cleanups.push(()=>document.removeEventListener(`visibilitychange`,e))}if(Dt(),V.mode===`events`)Y();else if(V.mode===`view`)G(0);else{let e=a.getQueryState(N)?.dataUpdatedAt??0;G(Math.max(0,e+Fe-Date.now()))}}function Tt(){V.active=!1,W(),V.releaseTimer&&clearTimeout(V.releaseTimer),V.catalogTimer&&clearTimeout(V.catalogTimer),V.events.blockTimer&&clearTimeout(V.events.blockTimer),V.releaseTimer=null,V.catalogTimer=null,V.events.blockTimer=null,q(),mt();for(let e of V.cleanups.splice(0))e();for(let e of V.liveTimers.values())clearTimeout(e);for(let e of V.liveControllers.values())e.abort();for(let e of V.runControllers.values())e.controller.abort();V.liveTimers.clear(),V.liveControllers.clear(),V.liveNextAt.clear(),V.runControllers.clear(),P.setState({live:{},localRuns:{},runningSince:{}})}async function Et(){let e=F();V.active&&V.mode===`view`&&await K(),await e}function Dt(){let e=Je(),t=Date.now(),{runningSince:n,localRuns:r,feed:i}=P.getState(),a=U(i)?[...Object.values(i.entries).map(e=>e.session),...e]:e,o={},s=!1;for(let e of a)e.streaming!==!0||e.id in o||(o[e.id]=n[e.id]??r[e.id]?.startedAt??t,e.id in n||(s=!0));s||=Object.keys(n).some(e=>!(e in o)),s&&P.setState({runningSince:o}),U(i)&&Ot(e),Z()}function Ot(e){let t=V.catalogFetchAt,n=new Map(e.map(e=>[e.id,e])),r=[],i={};for(let e of Object.values(P.getState().feed.entries)){if((e.receivedAt??1/0)>=t){r.push(e.session);continue}let a=n.get(e.session.id);a&&a!==e.session&&JSON.stringify(a)!==JSON.stringify(e.session)&&(i[a.id]=a)}Object.keys(i).length&&P.setState(e=>{let t={...e.feed.entries};for(let[e,n]of Object.entries(i))t[e]&&(t[e]={...t[e],session:n});return{feed:{...e.feed,entries:t}}}),xt(r)}function kt(){let{patches:e,feed:t}=P.getState(),n=new Set,r=Date.now();if(U(t)){for(let i of Object.values(t.entries)){let t=L(i.session,e);if(t.archived===!0)continue;let a=i.card.approvals;_({...t,card:{approvals:a}},{now:r}).status===`approval`&&(!a.length||a.some(e=>e.truncated))&&n.add(i.session.id)}return n}if(V.mode!==`legacy`&&!V.feedSettled)return n;for(let t of Je()){let i=L(t,e);i.archived!==!0&&_(i,{now:r}).status===`approval`&&n.add(t.id)}return n}function At(e){let t=V.liveTimers.get(e);t&&clearTimeout(t),V.liveTimers.delete(e),V.liveControllers.get(e)?.abort(),V.liveControllers.delete(e),V.liveNextAt.delete(e),z(e,()=>null)}function Z(){if(!V.active)return;let e=kt();for(let t of Object.keys(P.getState().live))e.has(t)||At(t);for(let t of[...V.liveControllers.keys()])e.has(t)||At(t);if(!H())return;let t=Date.now(),n=P.getState().live,r=[...e].filter(e=>!V.liveControllers.has(e)&&(V.liveNextAt.get(e)??0)<=t).sort((e,t)=>Number(!!n[e])-Number(!!n[t])||(V.liveNextAt.get(e)??0)-(V.liveNextAt.get(t)??0)),i=Math.max(0,Math.min(3-V.liveControllers.size,4-V.liveControllers.size-V.runControllers.size-!!V.events.controller));r.slice(0,i).forEach((e,t)=>jt(e,t*250))}function jt(e,t){let n=new AbortController;V.liveControllers.set(e,n);let r=async()=>{V.liveTimers.delete(e),z(e,e=>e??B(`loading`));try{let t=await A.getLiveDetail(e,n.signal);if(n.signal.aborted||V.liveControllers.get(e)!==n)return;V.liveNextAt.set(e,Date.now()+We);let{pending:r}=P.getState(),i=t.approvals.filter(t=>!r[R(`approve`,e,t.id)]);z(e,()=>({status:`ready`,approvals:i,error:t.error,activity:t.activity,startedAt:t.startedAt,fetchedAt:Date.now(),failures:0}))}catch{if(n.signal.aborted||V.liveControllers.get(e)!==n)return;let t=(P.getState().live[e]?.failures??0)+1;V.liveNextAt.set(e,Date.now()+Math.min(We*2**t,Ge)),z(e,e=>({...e??B(`error`),status:e?.approvals.length?e.status:`error`,failures:t}))}finally{V.liveControllers.get(e)===n&&V.liveControllers.delete(e)}};t<=0?r():V.liveTimers.set(e,setTimeout(()=>void r(),t))}var Mt=class extends Error{code=`board_run_active`},Nt=0;function Pt(e,t){return e===t?!0:!e||!t||e.type!==t.type?!1:e.type===`model`?e.stage===t.stage:e.name===t.name&&e.summary===t.summary}function Q(e,t,n){P.setState(r=>{let i=r.localRuns[e];return!i||i.token!==t||(n.activity===void 0||Pt(i.activity,n.activity))&&(n.runId===void 0||n.runId===i.runId)?r:{localRuns:{...r.localRuns,[e]:{...i,...n}}}})}function Ft(e,t,n,r){if(n===`run`)Q(e,t,{runId:typeof r.runId==`string`?r.runId:``});else if(n===`tool_start`){let n=typeof r.name==`string`?r.name:``;n&&Q(e,t,{activity:{type:`tool`,name:n,summary:pe(n,r.args),startedAt:typeof r.startedAt==`string`?r.startedAt:new Date().toISOString()}})}else if(n===`tool_end`||n===`thinking_patch`||n===`thinking_reset`)Q(e,t,{activity:{type:`model`,stage:`thinking`}});else if(n===`text_delta`||n===`text_patch`)Q(e,t,{activity:{type:`model`,stage:`responding`}});else if(n===`permission_request`){let t=he(r);t&&ot(e,t),o(`sessions`)}else n===`permission_resolved`&&(typeof r.id==`string`&&at(e,r.id),o(`sessions`))}function It(){let e=V.runControllers.size-2;for(let[t,n]of V.runControllers){if(e<=0)return;n.accepted&&(V.runControllers.delete(t),n.controller.abort(),--e)}}function Lt(e,t,n){if(V.runControllers.has(e))return Promise.reject(new Mt);let r=new AbortController,i=++Nt,a={controller:r,accepted:!1};V.runControllers.set(e,a),It();let o=Date.now();return P.setState(n=>({localRuns:{...n.localRuns,[e]:{token:i,kind:t,runId:``,startedAt:o,activity:{type:`model`,stage:`starting`}}}})),new Promise((t,o)=>{let s=()=>{a.accepted||(a.accepted=!0,It(),t())};n((t,n)=>{if(r.signal.aborted)return!1;t===`run`&&s(),Ft(e,i,t,n)},r.signal).then(s,e=>{a.accepted||o(e)}).finally(()=>{V.runControllers.get(e)===a&&V.runControllers.delete(e),P.setState(t=>{if(t.localRuns[e]?.token!==i)return t;let n={...t.localRuns};return delete n[e],{localRuns:n}}),V.active&&(V.mode===`legacy`?F().catch(()=>void 0):I().view&&(V.mode===`view`||!V.events.controller)&&K(),Z())})})}var Rt=e(t(),1);function zt(){(0,Rt.useEffect)(()=>Ct(),[])}function Bt(e){let t=e.queue;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return{startAfter:typeof n.startAfter==`string`?n.startAfter:``,position:typeof n.position==`number`&&Number.isSafeInteger(n.position)&&n.position>0?n.position:null}}var Vt=120;function Ht(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function $(e){let t=typeof e.name==`string`?e.name.trim():``;if(t)return D(t,Vt);let n=typeof e.firstMessage==`string`?e.firstMessage.trim():``,r=n.search(/[。!?!?\n]|\.\s/u);return D((r<0?n:n.slice(0,n[r]===`
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{o as n}from"./vendor-state-GkUciC5H.js";import{u as r}from"./query-Bj-DUNYq.js";import{t as i}from"./useQuery-DdcpUQhO.js";import{a,i as o,n as s,o as c,t as l}from"./startup-queries-Xa-I9BT7.js";import{t as u}from"./component-changes-Q9Bf64Ob.js";import{a as d,c as f,s as p,u as m}from"./api-_MWfl2VL.js";import{t as h}from"./runtime-capabilities-store-CWJvmV83.js";import{a as g,c as _,r as v,s as y,t as ee}from"./session-board-status-D2lpFPiI.js";import{t as b}from"./chat-api-9V8j4rSS.js";import{n as x}from"./session-organization-api-B2UGOx0B.js";import{c as te,s as ne}from"./session-workspaces-Csgpuzxd.js";import{i as re}from"./session-questions-Cf-1g85h.js";var S=400,ie=2e3,ae=160,oe=512,se=400,ce=240,le=240,ue=8,C=40,de=80,fe=3;function w(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function T(e){return typeof e==`string`?e:``}function E(e){return typeof e==`string`&&Number.isFinite(Date.parse(e))?e:null}function D(e,t){let n=Array.from(e);return n.length>t?`${n.slice(0,t-1).join(``)}…`:e}function pe(e,t){let n=w(t),r=e===`bash`?n.command:n.path??n.file_path??n.url??n.query??n.pattern;return D(((typeof r==`string`?r:Object.values(n).find(e=>typeof e==`string`))||``).replace(/\s+/g,` `).trim(),ae)}function me(e){let t=w(e);if(t.type===`model`)return{type:`model`,stage:T(t.stage)||`thinking`};if(t.type===`tool`&&T(t.name)){let e=T(t.name);return{type:`tool`,name:e,summary:pe(e,t.args),startedAt:E(t.startedAt)}}return null}function he(e){let t=w(e),n=T(t.id);if(!n)return null;let r=w(t.args),i=w(t.fileChange);return{id:n,toolName:T(t.toolName),toolCallId:T(t.toolCallId),args:r,command:T(r.command),path:T(i.path)||T(r.path)||T(r.file_path),reason:D(T(t.reason),S),risk:T(t.risk),severity:g(t),createdAt:E(t.createdAt)}}function ge(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){let e=he(r);!e||t.has(e.id)||(t.add(e.id),n.push(e))}return n}function _e(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function O(e){let t=_e(e);return t===null?null:Math.max(0,Math.floor(t))}var ve=/[\u0000-\u001f\u007f-\u009f]/g;function k(e,t){return D(T(e).replace(ve,` `).trimEnd(),t)}function ye(e){let t=/^(?:path|file_path): (.+)$/m.exec(e);return t?t[1].trim():``}function be(e){let t=w(e),n=T(t.id);if(!n)return null;let r=T(t.toolName),i=T(t.argsPreview),a=D(i,oe),o=t.argsTruncated===!0||a!==i,s=r===`bash`;return{id:n,toolName:r,toolCallId:``,args:{},command:s?a:``,path:s?``:ye(a),reason:D(T(t.reason),S),risk:T(t.risk),severity:g({severity:t.severity,reason:t.reason,toolName:r}),createdAt:E(t.createdAt),argsText:s?``:a,truncated:o}}function xe(e){let t=w(e);return t.type===`model`?{type:`model`,stage:D(T(t.stage),C)}:t.type===`tool`&&T(t.name)?{type:`tool`,name:D(T(t.name),C),summary:D(T(t.argsSummary).replace(/\s+/g,` `).trim(),ae),startedAt:E(t.startedAt)}:null}function Se(e){let t=w(e),n=T(t.id),r=k(t.name,C);if(!n||!r)return null;let i=w(t.avatar);return{id:D(n,C),name:r,character:D(T(i.character),C),color:D(T(i.color),C)}}function Ce(e){return e?{bot:e}:{}}function we(e){let t=w(e),n=T(t.status);return n?{added:O(t.added),removed:O(t.removed),files:O(t.files),status:D(n,C)}:null}function Te(e){let t=w(e),n=w(t.error),r=k(n.message,se),i=w(t.agents),a=O(i.running),o=O(i.total),s=_e(t.contextPct),c=ee.includes(T(t.outcome))?t.outcome:null,l=[],u=new Set;for(let e of Array.isArray(t.approvals)?t.approvals:[]){let t=be(e);if(!(!t||u.has(t.id))&&(u.add(t.id),l.push(t),l.length>=ue))break}return{boardStatus:D(T(t.boardStatus),C),runId:D(T(t.runId),de),activity:xe(t.activity),startedAt:E(t.startedAt),lastActivityAt:E(t.lastActivityAt),finishedAt:E(t.finishedAt),outcome:c,error:r?{message:r,kind:D(T(n.kind),C)||`runtime`}:null,approvals:l,queuedInputCount:O(t.queuedInputCount)??0,contextPct:s===null?null:Math.min(100,Math.max(0,s)),changeStats:we(t.changeStats),preview:k(t.lastAssistantPreview,ce),tail:(Array.isArray(t.tail)?t.tail:[]).map(e=>k(e,le)).filter(e=>e.trim()).slice(-3),agents:a!==null&&o!==null&&o>0?{running:Math.min(a,o),total:o}:null,totalTokens:O(w(t.usage).totalTokens),...Ce(Se(t.bot))}}function Ee(e){let t=w(e),n=T(t.id);if(!n)return null;let r={...t,id:n};return delete r.card,r}function De(e){let t=Ee(e);return t?{session:t,card:Te(w(e).card)}:null}function Oe(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function ke(e){let t=w(e),n=[],r=new Set;for(let e of Array.isArray(t.sessions)?t.sessions:[]){let t=De(e);!t||r.has(t.session.id)||(r.add(t.session.id),n.push(t))}let i=T(t.nextCursor);return{items:n,nextCursor:i&&i.length<=1024?i:null,revision:Oe(t.revision)}}function Ae(){return-new Date().getTimezoneOffset()}function je(e){let t=w(e);return{streaming:t.streaming===!0,approvals:ge(t.approvals),error:D(T(t.error),ie),activity:me(t.currentActivity),startedAt:E(t.startedAt),lastActivityAt:E(t.lastActivityAt),finishedAt:E(t.finishedAt)}}var A={listSessions:()=>b.listSessions(),getLiveDetail:async(e,t)=>je(await b.getLiveSession(e,{signal:t,timeout:15e3})),resolveApproval:async(e,t,n)=>{try{return w(await b.resolveApproval(e,t,n)).alreadyResolved===!0?`already-resolved`:`resolved`}catch(e){if(e instanceof m&&e.status===404)return`missing`;throw e}},retry:(e,t,n)=>b.retryLastTurn(e,t,{signal:n}),updateOrganization:(e,t)=>x(e,t),renameSession:async(e,t)=>{let n=w(await b.renameSession(e,t));return typeof n.name==`string`?n.name:t},listBoardView:async e=>{let t=[],n=new Set,r=``,i=null;for(let a=0;a<fe;a+=1){let o=new URLSearchParams({view:`board`,window:`7d`,limit:`200`,tzOffset:String(Ae())});r&&o.set(`cursor`,r);let s=await d(`/api/sessions?${o}`,{signal:e,timeout:15e3,parse:ke});a===0&&(i=s.revision);for(let e of s.items)n.has(e.session.id)||(n.add(e.session.id),t.push(e));if(r=s.nextCursor??``,!r||t.length>=500)break}return{items:t.slice(0,500),nextCursor:r||null,revision:i}},openBoardEvents:async(e,t,n)=>{await p(n);let r=e===null?``:`?after=${encodeURIComponent(String(e))}`,i;try{i=await fetch(`/api/board/events${r}`,{signal:n,headers:{Accept:`text/event-stream`}})}catch(e){throw n.aborted?e:new m(e instanceof Error?e.message:`network`,{kind:`network`})}await f(i,(e,n)=>t(e,n))}};function j(e=`legacy`){return{mode:e,ready:!1,revision:null,awaitingSnapshot:!1,entries:{},updatedAt:0}}function M(){return{upserts:[],removed:[],resync:!1,reconnect:!1,truncated:!1,catalog:!1,changed:!1}}function Me(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function Ne(e,t,n,r=Date.now()){let i=M(),a={},o=n??e.revision??0;for(let e of t)a[e.session.id]={...e,revision:o,receivedAt:r},i.upserts.push(e.session);for(let t of Object.keys(e.entries))t in a||i.removed.push(t);return i.changed=!0,{feed:{...e,ready:!0,revision:n??e.revision,awaitingSnapshot:!1,entries:a,updatedAt:r},effects:i}}function Pe(e,t,n,r=Date.now()){let i=Me(n),a=Oe(i.revision),o={feed:e,effects:M()};if(t===`snapshot`){if(a===null||!Array.isArray(i.items))return o;let t=[],n=new Set;for(let e of i.items){let r=De(e);!r||n.has(r.session.id)||(n.add(r.session.id),t.push(r))}let s=Ne(e,t,a,r);return s.effects.truncated=i.truncated===!0,s}if(t===`resync_required`){let t=M();return t.resync=!0,t.reconnect=i.reason===`flush_failed`,t.changed=!e.awaitingSnapshot,{feed:{...e,awaitingSnapshot:!0},effects:t}}if(e.awaitingSnapshot||a===null||e.revision!==null&&a<=e.revision)return o;if(t===`heartbeat`||t===`component_changed`||t===`catalog_changed`){let n=M();return n.changed=!0,n.catalog=t===`catalog_changed`,{feed:{...e,revision:a,updatedAt:r},effects:n}}if(t!==`session_card`)return o;let s=typeof i.id==`string`?i.id:``;if(!s)return o;let c=e.entries[s];if(c&&a<=c.revision)return o;let l=M();if(l.changed=!0,i.removed===!0){let t={...e.entries};return delete t[s],c&&l.removed.push(s),{feed:{...e,revision:a,entries:t,updatedAt:r},effects:l}}let u=Ee(i.session);return!u||u.id!==s?{feed:{...e,revision:a,updatedAt:r},effects:l}:(l.upserts.push(u),{feed:{...e,revision:a,entries:{...e.entries,[s]:{session:u,card:Te(i.card),revision:a,receivedAt:r}},updatedAt:r},effects:l})}var N=l,Fe=3e3,Ie=2e3,Le=3e4,Re=1e3,ze=3e4,Be=6e4,Ve=4e3,He=4e4,Ue=300,We=6e3,Ge=6e4,Ke=1e3,qe={feed:j(),live:{},localRuns:{},runningSince:{},patches:{},pending:{}},P=n()(()=>({...qe}));function Je(){return a.getQueryData(N)?.sessions??[]}function F(){return s(`sessions`,!0)}async function Ye(){o(`sessions`),await F()}async function Xe(e,t=()=>!0,{fresh:n=!1}={}){if(V.active&&V.mode===`events`&&V.events.controller){if(!n&&t(P.getState().feed.entries[e]))return;await Ze(e,t,Ve);return}if(V.active&&V.mode!==`legacy`&&I().view){await K();return}await Ye().catch(()=>void 0)}function Ze(e,t,n){return new Promise(r=>{let i=P.getState().feed.entries[e],a=null,o=()=>{},s=()=>{a&&clearTimeout(a),o(),r()};o=P.subscribe(n=>{let r=n.feed.entries[e];r!==i&&t(r)&&s()}),a=setTimeout(s,n)})}function I(){let{capabilities:e,loaded:t}=h.getState(),n=e.features;return{loaded:t,view:t&&n[`board.view`]===!0,events:t&&n[`board.events`]===!0}}function Qe(){return I().view}var $e=0;function et(e,t){let n=++$e;return P.setState(r=>({patches:{...r.patches,[e]:[...r.patches[e]??[],{token:n,patch:t}]}})),n}function tt(e,t){P.setState(n=>{let r=n.patches[e];if(!r?.some(e=>e.token===t))return n;let i=r.filter(e=>e.token!==t),a={...n.patches};return i.length?a[e]=i:delete a[e],{patches:a}})}function L(e,t){let n=t[e.id];return n?.length?n.reduce((e,t)=>({...e,...t.patch}),e):e}function R(e,t,n=``){return e===`approve`||e===`deny`?`approval:${t}:${n}`:`${e}:${t}`}function nt(e,t){return!P.getState().pending[e]&&(P.setState(n=>({pending:{...n.pending,[e]:t}})),!0)}function rt(e){P.setState(t=>{if(!(e in t.pending))return t;let n={...t.pending};return delete n[e],{pending:n}})}function z(e,t){P.setState(n=>{let r=t(n.live[e]);if(r===n.live[e])return n;let i={...n.live};return r?i[e]=r:delete i[e],{live:i}})}function it(e,t){P.setState(n=>{let r=n.feed.entries[e];if(!r)return n;let i=t(r.card.approvals);return i===r.card.approvals?n:{feed:{...n.feed,entries:{...n.feed.entries,[e]:{...r,card:{...r.card,approvals:i}}}}}})}function at(e,t){z(e,e=>e&&e.approvals.some(e=>e.id===t)?{...e,approvals:e.approvals.filter(e=>e.id!==t)}:e??null),it(e,e=>e.some(e=>e.id===t)?e.filter(e=>e.id!==t):e)}function ot(e,t){if(P.getState().feed.entries[e]){it(e,e=>e.some(e=>e.id===t.id)?e:[...e,t]);return}z(e,e=>{let n=e??B(`ready`);return n.approvals.some(e=>e.id===t.id)?n:{...n,approvals:[...n.approvals,t]}})}function st(e,t){let n=P.getState(),r=n.live[e]?.approvals.find(e=>e.id===t);if(r)return r;let i=n.feed.entries[e]?.card.approvals.find(e=>e.id===t);return i&&!i.truncated?i:void 0}function ct(e,t){P.setState(n=>{let r=n.feed.entries[e];return r?{feed:{...n.feed,entries:{...n.feed.entries,[e]:{...r,session:{...r.session,...t},receivedAt:Date.now()}}}}:n})}function lt(e){let t=P.getState(),n=t.feed.entries[e];return n&&V.mode!==`legacy`?n.card.approvals:t.live[e]?.approvals??[]}function B(e){return{status:e,approvals:[],error:``,activity:null,startedAt:null,fetchedAt:null,failures:0}}var V={retainers:0,active:!1,mode:`legacy`,pollTimer:null,releaseTimer:null,catalogTimer:null,liveTimers:new Map,liveControllers:new Map,liveNextAt:new Map,runControllers:new Map,events:{controller:null,retryTimer:null,attempt:0,blockedUntil:0,blockTimer:null,watchdog:null},view:{inFlight:null,controller:null,failures:0},feedSettled:!1,catalogFetchAt:0,cleanups:[]};function H(){return typeof document>`u`||document.visibilityState!==`hidden`}function ut(){let e=I();return e.events&&Date.now()>=V.events.blockedUntil?`events`:e.view?`view`:`legacy`}function U(e=P.getState().feed){return V.mode!==`legacy`&&e.ready}function W(){V.pollTimer&&clearTimeout(V.pollTimer),V.pollTimer=null}function G(e){W(),!(!V.active||V.mode===`events`||!H())&&(V.pollTimer=setTimeout(()=>{V.pollTimer=null,ft()},e))}function dt(){return V.view.failures?Math.min(Ie*2**V.view.failures,Le):Ie}async function ft(){let e=V.mode;if(e===`view`)await pt();else try{await F()}catch{}!V.active||V.mode!==e||(Z(),G(e===`view`?dt():Fe))}function pt(){if(V.view.inFlight)return V.view.inFlight;let e=new AbortController;V.view.controller=e;let t=(async()=>{try{let t=await A.listBoardView(e.signal);if(e.signal.aborted||!V.active)return;V.view.failures=0,V.feedSettled=!0,bt(Ne(P.getState().feed,t.items,V.mode===`events`?null:t.revision))}catch{if(e.signal.aborted)return;V.view.failures+=1,V.feedSettled=!0,Z()}finally{V.view.controller===e&&(V.view.controller=null,V.view.inFlight=null)}})();return V.view.inFlight=t,t}async function K(){let e=V.view.inFlight;e&&await e,await pt()}function mt(){V.view.controller?.abort(),V.view.controller=null,V.view.inFlight=null}function q(){let e=V.events;e.retryTimer&&clearTimeout(e.retryTimer),e.retryTimer=null,J();let t=e.controller;e.controller=null,t?.abort()}function J(){V.events.watchdog&&clearTimeout(V.events.watchdog),V.events.watchdog=null}function ht(e){J(),V.events.watchdog=setTimeout(()=>{V.events.watchdog=null;let t=V.events;t.controller!==e||e.signal.aborted||(t.controller=null,e.abort(),!(!V.active||V.mode!==`events`)&&(gt(0),Z()))},He)}function gt(e){let t=V.events;t.retryTimer&&clearTimeout(t.retryTimer),t.retryTimer=setTimeout(()=>{t.retryTimer=null,Y()},e)}function _t(e){return e instanceof m&&e.kind===`http`&&typeof e.status==`number`&&e.status>=400&&e.status<500}function vt(){let e=V.events;e.blockedUntil=Date.now()+Be,e.blockTimer&&clearTimeout(e.blockTimer),e.blockTimer=setTimeout(()=>{e.blockTimer=null,X()},60010),X()}function Y(){let e=V.events;if(!V.active||V.mode!==`events`||e.controller||e.retryTimer||!H())return;let t=new AbortController;e.controller=t,ht(t);let n=P.getState().feed,r=n.ready&&!n.awaitingSnapshot?n.revision:null,i=!1,a=!1;A.openBoardEvents(r,(n,r)=>{if(t.signal.aborted||e.controller!==t)return!1;if(ht(t),i=!0,e.attempt=0,V.feedSettled=!0,yt(n,r).reconnect)return a=!0,!1},t.signal).then(()=>null,e=>e).then(n=>{if(e.controller===t&&(e.controller=null,J(),!(t.signal.aborted||!V.active))){if(V.feedSettled=!0,n&&_t(n))vt();else{let t=a?0:i?Re:Math.min(Re*2**e.attempt,ze);!i&&!a&&(e.attempt+=1),gt(t)}Z()}})}function yt(e,t){let n=Pe(P.getState().feed,e,t);return bt(n,e===`heartbeat`||e===`component_changed`||e===`catalog_changed`),u(e,t,n.effects.changed),n.effects}function bt({feed:e,effects:t},n=!1){t.changed&&P.setState({feed:{...e,mode:V.mode}}),t.upserts.length&&xt(t.upserts),(t.removed.length||t.resync||t.catalog)&&St(),t.changed&&!n&&Z()}function xt(e){let t=a.getQueryData(N);if(!t||!e.length)return;let n=new Map(t.sessions.map((e,t)=>[e.id,t])),r=null,i=[];for(let a of e){let e=n.get(a.id);if(e===void 0){i.some(e=>e.id===a.id)||i.push(a);continue}let o=(r??t.sessions)[e];JSON.stringify(o)!==JSON.stringify(a)&&(r??=[...t.sessions],r[e]=a)}!r&&!i.length||a.setQueryData(N,{...t,sessions:[...i,...r??t.sessions]})}function St(){V.catalogTimer||!V.active||(V.catalogTimer=setTimeout(()=>{V.catalogTimer=null,V.active&&F().catch(()=>void 0)},Ue))}function X(){if(!V.active)return;let e=ut();e!==V.mode&&(V.mode=e,V.feedSettled=!1,V.view.failures=0,q(),mt(),W(),P.setState(t=>({feed:e===`legacy`?j(`legacy`):{...t.feed,mode:e}})),e===`events`?(V.events.attempt=0,Y()):G(0),Z())}function Ct(){V.retainers+=1,V.releaseTimer&&=(clearTimeout(V.releaseTimer),null),V.active||wt();let e=!1;return()=>{e||(e=!0,V.retainers=Math.max(0,V.retainers-1),!(V.retainers>0)&&(V.releaseTimer=setTimeout(()=>{V.releaseTimer=null,V.retainers===0&&Tt()},Ke)))}}function wt(){V.active=!0,V.mode=ut(),V.feedSettled=!1,V.view.failures=0,V.events.attempt=0,P.setState(e=>({feed:V.mode===`legacy`?j(`legacy`):{...e.feed,mode:V.mode}}));let e=r(N);if(V.catalogFetchAt=Math.max(V.catalogFetchAt,a.getQueryState(N)?.dataUpdatedAt??0),V.cleanups.push(a.getQueryCache().subscribe(t=>{if(t.type===`updated`&&t.query.queryHash===e){if(t.action.type===`fetch`){V.catalogFetchAt=Date.now();return}t.action.type===`success`&&Dt()}})),V.cleanups.push(h.subscribe(()=>X())),typeof document<`u`){let e=()=>{if(H()){V.mode===`events`?Y():G(0),Z();return}W(),q()};document.addEventListener(`visibilitychange`,e),V.cleanups.push(()=>document.removeEventListener(`visibilitychange`,e))}if(Dt(),V.mode===`events`)Y();else if(V.mode===`view`)G(0);else{let e=a.getQueryState(N)?.dataUpdatedAt??0;G(Math.max(0,e+Fe-Date.now()))}}function Tt(){V.active=!1,W(),V.releaseTimer&&clearTimeout(V.releaseTimer),V.catalogTimer&&clearTimeout(V.catalogTimer),V.events.blockTimer&&clearTimeout(V.events.blockTimer),V.releaseTimer=null,V.catalogTimer=null,V.events.blockTimer=null,q(),mt();for(let e of V.cleanups.splice(0))e();for(let e of V.liveTimers.values())clearTimeout(e);for(let e of V.liveControllers.values())e.abort();for(let e of V.runControllers.values())e.controller.abort();V.liveTimers.clear(),V.liveControllers.clear(),V.liveNextAt.clear(),V.runControllers.clear(),P.setState({live:{},localRuns:{},runningSince:{}})}async function Et(){let e=F();V.active&&V.mode===`view`&&await K(),await e}function Dt(){let e=Je(),t=Date.now(),{runningSince:n,localRuns:r,feed:i}=P.getState(),a=U(i)?[...Object.values(i.entries).map(e=>e.session),...e]:e,o={},s=!1;for(let e of a)e.streaming!==!0||e.id in o||(o[e.id]=n[e.id]??r[e.id]?.startedAt??t,e.id in n||(s=!0));s||=Object.keys(n).some(e=>!(e in o)),s&&P.setState({runningSince:o}),U(i)&&Ot(e),Z()}function Ot(e){let t=V.catalogFetchAt,n=new Map(e.map(e=>[e.id,e])),r=[],i={};for(let e of Object.values(P.getState().feed.entries)){if((e.receivedAt??1/0)>=t){r.push(e.session);continue}let a=n.get(e.session.id);a&&a!==e.session&&JSON.stringify(a)!==JSON.stringify(e.session)&&(i[a.id]=a)}Object.keys(i).length&&P.setState(e=>{let t={...e.feed.entries};for(let[e,n]of Object.entries(i))t[e]&&(t[e]={...t[e],session:n});return{feed:{...e.feed,entries:t}}}),xt(r)}function kt(){let{patches:e,feed:t}=P.getState(),n=new Set,r=Date.now();if(U(t)){for(let i of Object.values(t.entries)){let t=L(i.session,e);if(t.archived===!0)continue;let a=i.card.approvals;_({...t,card:{approvals:a}},{now:r}).status===`approval`&&(!a.length||a.some(e=>e.truncated))&&n.add(i.session.id)}return n}if(V.mode!==`legacy`&&!V.feedSettled)return n;for(let t of Je()){let i=L(t,e);i.archived!==!0&&_(i,{now:r}).status===`approval`&&n.add(t.id)}return n}function At(e){let t=V.liveTimers.get(e);t&&clearTimeout(t),V.liveTimers.delete(e),V.liveControllers.get(e)?.abort(),V.liveControllers.delete(e),V.liveNextAt.delete(e),z(e,()=>null)}function Z(){if(!V.active)return;let e=kt();for(let t of Object.keys(P.getState().live))e.has(t)||At(t);for(let t of[...V.liveControllers.keys()])e.has(t)||At(t);if(!H())return;let t=Date.now(),n=P.getState().live,r=[...e].filter(e=>!V.liveControllers.has(e)&&(V.liveNextAt.get(e)??0)<=t).sort((e,t)=>Number(!!n[e])-Number(!!n[t])||(V.liveNextAt.get(e)??0)-(V.liveNextAt.get(t)??0)),i=Math.max(0,Math.min(3-V.liveControllers.size,4-V.liveControllers.size-V.runControllers.size-!!V.events.controller));r.slice(0,i).forEach((e,t)=>jt(e,t*250))}function jt(e,t){let n=new AbortController;V.liveControllers.set(e,n);let r=async()=>{V.liveTimers.delete(e),z(e,e=>e??B(`loading`));try{let t=await A.getLiveDetail(e,n.signal);if(n.signal.aborted||V.liveControllers.get(e)!==n)return;V.liveNextAt.set(e,Date.now()+We);let{pending:r}=P.getState(),i=t.approvals.filter(t=>!r[R(`approve`,e,t.id)]);z(e,()=>({status:`ready`,approvals:i,error:t.error,activity:t.activity,startedAt:t.startedAt,fetchedAt:Date.now(),failures:0}))}catch{if(n.signal.aborted||V.liveControllers.get(e)!==n)return;let t=(P.getState().live[e]?.failures??0)+1;V.liveNextAt.set(e,Date.now()+Math.min(We*2**t,Ge)),z(e,e=>({...e??B(`error`),status:e?.approvals.length?e.status:`error`,failures:t}))}finally{V.liveControllers.get(e)===n&&V.liveControllers.delete(e)}};t<=0?r():V.liveTimers.set(e,setTimeout(()=>void r(),t))}var Mt=class extends Error{code=`board_run_active`},Nt=0;function Pt(e,t){return e===t?!0:!e||!t||e.type!==t.type?!1:e.type===`model`?e.stage===t.stage:e.name===t.name&&e.summary===t.summary}function Q(e,t,n){P.setState(r=>{let i=r.localRuns[e];return!i||i.token!==t||(n.activity===void 0||Pt(i.activity,n.activity))&&(n.runId===void 0||n.runId===i.runId)?r:{localRuns:{...r.localRuns,[e]:{...i,...n}}}})}function Ft(e,t,n,r){if(n===`run`)Q(e,t,{runId:typeof r.runId==`string`?r.runId:``});else if(n===`tool_start`){let n=typeof r.name==`string`?r.name:``;n&&Q(e,t,{activity:{type:`tool`,name:n,summary:pe(n,r.args),startedAt:typeof r.startedAt==`string`?r.startedAt:new Date().toISOString()}})}else if(n===`tool_end`||n===`thinking_patch`||n===`thinking_reset`)Q(e,t,{activity:{type:`model`,stage:`thinking`}});else if(n===`text_delta`||n===`text_patch`)Q(e,t,{activity:{type:`model`,stage:`responding`}});else if(n===`permission_request`){let t=he(r);t&&ot(e,t),o(`sessions`)}else n===`permission_resolved`&&(typeof r.id==`string`&&at(e,r.id),o(`sessions`))}function It(){let e=V.runControllers.size-2;for(let[t,n]of V.runControllers){if(e<=0)return;n.accepted&&(V.runControllers.delete(t),n.controller.abort(),--e)}}function Lt(e,t,n){if(V.runControllers.has(e))return Promise.reject(new Mt);let r=new AbortController,i=++Nt,a={controller:r,accepted:!1};V.runControllers.set(e,a),It();let o=Date.now();return P.setState(n=>({localRuns:{...n.localRuns,[e]:{token:i,kind:t,runId:``,startedAt:o,activity:{type:`model`,stage:`starting`}}}})),new Promise((t,o)=>{let s=()=>{a.accepted||(a.accepted=!0,It(),t())};n((t,n)=>{if(r.signal.aborted)return!1;t===`run`&&s(),Ft(e,i,t,n)},r.signal).then(s,e=>{a.accepted||o(e)}).finally(()=>{V.runControllers.get(e)===a&&V.runControllers.delete(e),P.setState(t=>{if(t.localRuns[e]?.token!==i)return t;let n={...t.localRuns};return delete n[e],{localRuns:n}}),V.active&&(V.mode===`legacy`?F().catch(()=>void 0):I().view&&(V.mode===`view`||!V.events.controller)&&K(),Z())})})}var Rt=e(t(),1);function zt(){(0,Rt.useEffect)(()=>Ct(),[])}function Bt(e){let t=e.queue;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return{startAfter:typeof n.startAfter==`string`?n.startAfter:``,position:typeof n.position==`number`&&Number.isSafeInteger(n.position)&&n.position>0?n.position:null}}var Vt=120;function Ht(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function $(e){let t=typeof e.name==`string`?e.name.trim():``;if(t)return D(t,Vt);let n=typeof e.firstMessage==`string`?e.firstMessage.trim():``,r=n.search(/[。!?!?\n]|\.\s/u);return D((r<0?n:n.slice(0,n[r]===`
|
|
2
2
|
`?r:r+1)).trim(),Vt)}function Ut(e){return e.length?e.some(e=>e.severity===`critical`)?`critical`:`standard`:null}function Wt(e,t){if(!t?.approvals.length||!e.approvals.some(e=>e.truncated))return e.approvals;let n=new Map(t.approvals.map(e=>[e.id,e]));return e.approvals.map(e=>e.truncated?n.get(e.id)??e:e)}function Gt(e,t){return!!e[t]?.some(e=>e.patch.streaming===!0)}function Kt(e,t){let n=t.feed;if(!n?.ready)return e.filter(e=>e&&typeof e.id==`string`&&e.id).map(e=>({session:e,card:null}));let r=Object.values(n.entries).map(e=>({session:e.session,card:e.card}));for(let i of e)!i||typeof i.id!=`string`||!i.id||n.entries[i.id]||(t.localRuns[i.id]||Gt(t.patches,i.id))&&r.push({session:i,card:null});return r}function qt(e,t,{now:n,capabilities:r,doneWindow:i=`today`,timeZoneOffsetMinutes:a}){let o=[],s=t.pending??{},c=Kt(e,t),l=new Map;for(let t of e)t?.id&&l.set(t.id,$(t));for(let{session:e}of c)l.set(e.id,$(e));for(let{session:e,card:u}of c){let c=L(e,t.patches),d=t.localRuns[c.id],f=t.live[c.id],p=d?.startedAt??Ht(u?.startedAt)??Ht(f?.startedAt),m=u?Wt(u,f).filter(e=>!s[R(`approve`,c.id,e.id)]):null,h=m?.length?m:f?.approvals,g=_({...c,startedAt:p??t.runningSince[c.id]??null,approvals:h,card:u?{outcome:u.outcome??void 0}:void 0},{now:n,capabilities:r,doneWindow:i,timeZoneOffsetMinutes:a});if(!g.lane)continue;let v=g.status===`approval`?h??[]:[],y=v[0],ee=g.status===`approval`?y&&!y.truncated?`ready`:f?.status===`error`?`error`:`loading`:`none`,b=g.lane===`running`,x=g.status===`failed`,S=g.status===`question`?re(c.question):null;o.push({id:c.id,session:c,title:$(c),cwd:typeof c.cwd==`string`?c.cwd:``,workspaceKey:te(c),projectCwd:ne(c),lane:g.lane,status:g.status,handled:g.handled,since:g.since,startedAt:b?p:null,pinned:c.pinned===!0,unread:c.unread===!0,approvals:v,approvalsState:ee,severity:Ut(v),activity:b?d?.activity??u?.activity??f?.activity??null:null,error:x&&(u?.error?.message||f?.error)||``,localRun:!!d,hasCard:!!u,tail:u&&(b||x)?u.tail:[],preview:u&&g.lane===`done`&&!x?u.preview:``,changeStats:u?.changeStats??null,contextPct:u?.contextPct??null,agents:u?.agents??null,question:S,questionCount:S?S.questions.length:null,totalTokens:u?.totalTokens??null,...u?.bot?{bot:u.bot}:{},...Jt(g.lane,c,l)})}return o.sort(y)}function Jt(e,t,n){let r=e===`queued`?Bt(t):null;return{queuePosition:r?.position??null,queue:r?{startAfter:r.startAfter,startAfterTitle:n.get(r.startAfter)??``}:null}}function Yt(e,{lanes:t,projects:n}){let r=t?.length?new Set(t):null,i=n?.length?new Set(n):null;return!r&&!i?[...e]:e.filter(e=>(!r||r.has(e.lane))&&(!i||i.has(e.workspaceKey)))}function Xt(e){let t=Object.fromEntries(v.map(e=>[e,[]]));for(let n of e)t[n.lane].push(n);return t}function Zt(e){let t=new Map;for(let n of e){let e=t.get(n.workspaceKey);e?e.count+=1:t.set(n.workspaceKey,{key:n.workspaceKey,cwd:n.projectCwd,count:1})}return[...t.values()]}function Qt(e,t){let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>(n.get(e.key)??2**53-1)-(n.get(t.key)??2**53-1)||t.count-e.count)}function $t(){return zt(),i(c(`sessions`))}export{at as C,A as D,P as E,Et as S,ct as T,tt as _,Yt as a,rt as b,zt as c,et as d,nt as f,lt as g,Qe as h,qt as i,N as l,st as m,Zt as n,Xt as o,R as p,$ as r,Qt as s,$t as t,Mt as u,Xe as v,ot as w,Lt as x,Ye as y};
|
|
@@ -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{f as r}from"./routes-DIeaqWVc.js";import{t as i}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{f as r}from"./routes-DIeaqWVc.js";import{t as i}from"./use-i18n-CIheiCov.js";import{t as a}from"./ellipsis-CfGKfbq6.js";import{c as o,i as s,p as c,r as l,t as u}from"./dropdown-menu-Ds0gD8S8.js";import{t as d}from"./utils-C8uzG5AZ.js";import{f}from"./useNow-CE8ZJGxH.js";import{t as p}from"./session-home-CLGrhgld.js";import{t as m}from"./motion-DTR4ZVle.js";import"./BotAvatar-CNL-APwP.js";var h=`pisper:overview-focus`;function g(e){window.dispatchEvent(new CustomEvent(h,{detail:{sessionId:e}}))}var _=n();function v({row:e,actions:t,canMarkHandled:n,open:r,onOpenChange:f,side:p,align:m=`start`,tabIndex:h,className:g}){let{t:v}=i();return(0,_.jsxs)(u,{open:r,onOpenChange:f,children:[(0,_.jsx)(c,{asChild:!0,children:(0,_.jsx)(`button`,{type:`button`,tabIndex:h,"aria-label":v(`board:sidebar.rowMenu`,{title:e.title}),className:d(`grid size-[26px] flex-none place-items-center rounded-[var(--r-sm)] text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-active hover:text-content focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus`,g),children:(0,_.jsx)(a,{className:`size-4`,"aria-hidden":`true`})})}),(0,_.jsxs)(l,{align:m,side:p,className:`min-w-44`,children:[(0,_.jsx)(s,{onSelect:()=>t.open(e),children:v(`board:menu.open`)}),(0,_.jsx)(s,{onSelect:()=>t.pin(e),children:e.pinned?v(`board:menu.unpin`):v(`board:menu.pin`)}),(0,_.jsx)(s,{onSelect:()=>t.rename(e),children:v(`board:menu.rename`)}),n&&(0,_.jsx)(s,{onSelect:()=>t.markHandled(e),children:v(`board:menu.markHandled`)}),(0,_.jsx)(s,{onSelect:()=>t.copyLink(e),children:v(`board:menu.copyLink`)}),(0,_.jsx)(o,{}),(0,_.jsx)(s,{onSelect:()=>t.archive(e),children:v(`board:menu.archive`)})]})]})}function y(e,t){return t.map((t,n)=>t.kind===`failed`?e(`board:sidebar.reason.failed`):t.kind===`approval`?t.critical?e(`board:sidebar.reason.criticalApproval`):e(`board:sidebar.reason.approval`):t.count===null?e(`board:sidebar.reason.question`):e(n===0?`board:sidebar.reason.questions`:`board:sidebar.reason.questionCount`,{count:t.count})).join(` · `)}function b(e){if(e===null||!Number.isFinite(e))return``;let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}function x(e){if(e===null||!Number.isFinite(e))return``;let t=Math.max(0,Math.floor(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=String(t%60).padStart(2,`0`);return n>0?`${n}:${String(r).padStart(2,`0`)}:${i}`:`${r}:${i}`}function S(e){if(e===null||!Number.isFinite(e))return``;let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function C(e,t){if(e===null||!Number.isFinite(e))return``;let n=new Date(e),r=new Date(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()?S(e):`${n.getMonth()+1}/${n.getDate()}`}function w(){return!m()&&document.visibilityState!==`hidden`}function T(e,{duration:t,scale:n}){return!e||!w()||typeof e.animate!=`function`?Promise.resolve():(e.style.transformOrigin=`top center`,e.animate([{transform:`scaleY(1)`,opacity:1},{transform:`scaleY(${n})`,opacity:0}],{duration:t,easing:`ease-in`,fill:`forwards`}).finished.then(()=>void 0,()=>void 0))}var E=e(t(),1);function D(e){let{origin:t,pathname:n,search:i,hash:a}=window.location;return a.startsWith(`#/`)?`${t}${n}${i}#${r(e)}`:`${t}${r(e)}`}function O({notify:e,requestText:t,onOpenSession:n,onArchived:r}){let{t:a}=i(),o=f(),s=(0,E.useRef)(o);s.current=o;let c=(0,E.useCallback)(t=>{t.ok||t.reason===`pending`||e(a(`board:action.failed`),`error`)},[e,a]),l=(0,E.useCallback)(async n=>{let r=(await t({title:a(`board:sidebar.renameTitle`),inputLabel:a(`board:sidebar.renameLabel`),value:n.title,confirmLabel:a(`board:sidebar.renameSave`),maxLength:200}))?.trim();if(!r||r===n.title)return;let i=await s.current.rename(n.id,r);i.ok?e(a(`board:sidebar.renamed`)):c(i)},[e,c,t,a]);return(0,E.useMemo)(()=>({open:e=>n(e.id),pin:e=>void s.current.pin(e.id,!e.pinned).then(c),rename:e=>void l(e),markHandled:e=>void s.current.markHandled(e.id).then(c),copyLink:t=>{let n=typeof navigator<`u`?navigator.clipboard:void 0;if(!n){e(a(`board:action.copyFailed`),`error`);return}n.writeText(D(t.id)).then(()=>e(a(`board:action.copied`)),()=>e(a(`board:action.copyFailed`),`error`))},archive:t=>void s.current.archive(t.id,!0).then(n=>{if(!n.ok){c(n);return}e(a(`board:action.archived`,{title:t.title})),p(t.id),r?.(t.id)}),report:c}),[e,r,n,l,c,a])}export{C as a,y as c,g as d,x as i,v as l,T as n,S as o,w as r,b as s,O as t,h as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{c as n,i as r,t as i}from"./useNow-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{c as n,i as r,t as i}from"./useNow-CE8ZJGxH.js";var a=e(t(),1);function o(){let{query:e,items:t,capabilities:o,isLoading:s}=n(`today`),c=i(),l=(0,a.useMemo)(()=>r(t,{now:c,capabilities:o}),[o,t,c]),u=e.refetch,d=e.data?.sessions;return(0,a.useMemo)(()=>({model:l,items:t,sessions:d,capabilities:o,isLoading:s,error:e.error??null,refetch:()=>void u()}),[o,s,t,l,e.error,u,d])}export{o as t};
|
|
@@ -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{S as r}from"./events-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{S as r}from"./events-C96FsPEU.js";import"./public-events-ntCr-b1Y.js";import{t as i}from"./terminal-context-aIsIJPn8.js";var a=e(t(),1),o=2097152,s=524288;function c(){let e=new TextDecoder,t=`text`;return n=>{let r=``;for(let i of e.decode(n,{stream:!0})){let e=i.codePointAt(0);t===`text`?e===27?t=`escape`:e===155?t=`csi`:e===157?t=`osc`:(e===9||e===10||e===13||e>=32&&e!==127)&&(r+=i):t===`escape`?t=i===`[`?`csi`:i===`]`?`osc`:`()*+`.includes(i)?`charset`:`text`:t===`csi`?e>=64&&e<=126&&(t=`text`):t===`charset`?t=`text`:t===`osc`?e===7?t=`text`:e===27&&(t=`osc-escape`):t===`osc-escape`&&(t=i===`\\`?`text`:e===27?`osc-escape`:`osc`)}return r}}function l(e){let t=new Map,n=new Map,r=new Set,i=new Map,a=new Map,l=new Set,u=new Set,d=new Map,f=!1,p,m=e=>(d.has(e)||d.set(e,[...t.values()].filter(t=>e===void 0||t.sessionId===e)),d.get(e)),h=()=>{for(let[e,n]of d){let r=[...t.values()].filter(t=>e===void 0||t.sessionId===e);(r.length!==n.length||r.some((e,t)=>e!==n[t]))&&d.set(e,r)}for(let e of l)e()},g=(e,n)=>{let r=t.get(e);r&&(t.set(e,{...r,...n}),h())},_=(e,i)=>{if(!(f||i.terminalId!==e||!r.has(e))){if(i.type===`output`){if(!Array.isArray(i.data)||i.data.some(e=>!Number.isInteger(e)||e<0||e>255))return;let r=n.get(e),a=Uint8Array.from(i.data.slice(-2097152));r.chunks.push({sequence:++r.sequence,data:a}),r.bytes+=a.length;let c=t.get(e).truncated||i.data.length>o;for(;r.bytes>o&&r.chunks.length>1;)r.bytes-=r.chunks.shift().data.length,c=!0;r.text+=r.decoder(a),r.text.length>s&&(r.text=r.text.slice(-524288).replace(/^[\uDC00-\uDFFF]/,``),c=!0),g(e,{output:r.text,truncated:c})}else i.type===`exit`?(r.delete(e),g(e,{status:`exited`,exitCode:i.code,error:``})):i.type===`error`&&g(e,{status:`error`,error:i.message});for(let e of u)e(i)}},v=async(a,o,s)=>{if(f)throw Error(`Terminal registry disposed`);let l=`terminal-${crypto.randomUUID()}`;t.set(l,{id:l,sessionId:a,cwd:o,profileId:s,orphaned:!1,status:`starting`,exitCode:null,error:``,output:``,truncated:!1}),n.set(l,{chunks:[],bytes:0,sequence:0,decoder:c(),text:``}),r.add(l),h();let u=(async()=>{try{let n=await e.terminalCreate({terminalId:l,profileId:s,cwd:o,cols:100,rows:24},e=>_(l,e));if(n.terminalId!==l)throw Error(`Terminal creation returned a different identity`);return g(l,{cwd:n.cwd,profileId:n.profileId,...!f&&t.get(l)?.status===`starting`?{status:`running`}:{}}),l}catch(e){throw g(l,{status:`error`,error:e instanceof Error?e.message:String(e)}),e}finally{i.delete(l)}})();return i.set(l,u),u},y=t=>{let n=a.get(t);if(n)return n;if(!r.has(t))return Promise.resolve();g(t,{status:`stopping`,error:``});let o=(async()=>{try{let n=i.get(t);if(n&&await n.catch(()=>void 0),!r.has(t))return;await e.terminalClose(t),r.delete(t),g(t,{status:`exited`,exitCode:null,error:``})}catch(e){throw g(t,{status:`error`,error:e instanceof Error?e.message:String(e)}),e}finally{a.delete(t)}})();return a.set(t,o),o};return{create:v,stop:y,snapshot:m,subscribe(e){return l.add(e),()=>{l.delete(e)}},subscribeEvents(e){return u.add(e),()=>{u.delete(e)}},outputChunks(e){return n.get(e)?.chunks||[]},async write(t,n){if(f||!r.has(t))throw Error(`Terminal is not running`);await e.terminalWrite(t,n)},async resize(t,n,i){f||!r.has(t)||!Number.isInteger(n)||!Number.isInteger(i)||n<1||i<1||await e.terminalResize(t,n,i)},orphan(e){let n=new Set(e);for(let e of t.values())n.has(e.sessionId)&&!e.orphaned&&t.set(e.id,{...e,orphaned:!0});h()},dispose(){return p||(f=!0,p=(async()=>{let e=await Promise.allSettled([...r].map(y));l.clear(),u.clear();let t=e.find(e=>e.status===`rejected`);if(t?.status===`rejected`)throw t.reason})(),p)}}}var u=n();function d({bridge:e,children:t}){let[n,o]=(0,a.useState)(null);return(0,a.useEffect)(()=>{if(!e?.terminalCreate||!e.terminalWrite||!e.terminalResize||!e.terminalClose||!e.terminalProfiles){o(null);return}let t=l({terminalCreate:e.terminalCreate,terminalWrite:e.terminalWrite,terminalResize:e.terminalResize,terminalClose:e.terminalClose}),n=new Map,i,a=e.terminalProfiles;o({registry:t,profiles:()=>i||=a().catch(e=>{throw i=void 0,e}),renderer:(e,t)=>(n.has(e)||n.set(e,t()),n.get(e))});let s=r(window,({deletedIds:e})=>t.orphan(e)),c=()=>{for(let e of n.values())e.dispose();n.clear(),t.dispose().catch(()=>{})};return window.addEventListener(`pagehide`,c),()=>{s(),window.removeEventListener(`pagehide`,c),c()}},[e]),(0,u.jsx)(i.Provider,{value:n,children:t})}function f(e,t){try{let n=new URL(e,t);return n.protocol===`http:`||n.protocol===`https:`?n:null}catch{return null}}function p(e,t){let n=e.trim();return n&&f(/^[a-z][a-z\d+.-]*:/i.test(n)||n.startsWith(`//`)?n:`https://${n}`,t)?.href||null}function m({href:e,baseUrl:t,button:n=0,download:r=!1,altKey:i=!1,ctrlKey:a=!1,metaKey:o=!1,shiftKey:s=!1,behavior:c}){if(n!==0||r||i||a||o||s||c===`external`||c===`ignore`)return null;let l=f(e,t);if(!l)return null;let u=f(t,t);return u&&l.origin===u.origin?null:l.href}export{m as n,d as r,p as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./storage-DtvZ_lEu.js";import{t}from"./web-preview-
|
|
1
|
+
import{t as e}from"./storage-DtvZ_lEu.js";import{t}from"./web-preview-0hEXH_IN.js";var n=`pisper:web-preview-open`;function r(r){let i=t(r,window.location.href);if(!i)return null;let a={url:i};return localStorage.setItem(e.webPreviewRequest,JSON.stringify(a)),window.dispatchEvent(new CustomEvent(n,{detail:a})),a}function i(){let n=localStorage.getItem(e.webPreviewRequest);if(localStorage.removeItem(e.webPreviewRequest),!n)return null;try{let e=JSON.parse(n),r=typeof e?.url==`string`?t(e.url,window.location.href):null;return r?{url:r}:null}catch{return null}}export{i as n,r,n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./index-
|
|
1
|
+
import{t as e}from"./index-CwdjZZLG.js";import{a as t,i as n,o as r}from"./vendor-state-GkUciC5H.js";import{t as i}from"./createLucideIcon-Cd-3GVxJ.js";import{a,i as o,r as s,u as c}from"./session-workspaces-Csgpuzxd.js";var l=i(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`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`}]]);function u(e){if(typeof e!=`string`)return``;let t=e.trim();if(!t||t.length>2048||t.includes(`\0`))return``;let n=/^(?:[A-Za-z]:)?[\\/]+$/u.test(t)?t:t.replace(/[\\/]+$/u,``),r=c(n);return r&&r!==`\0`?n:``}function d(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){let e=u(r),i=e&&c(e);if(!(!i||t.has(i))&&(t.add(i),n.push(e),n.length>=50))break}return n}function f(e,t){let n=u(t);if(!n)return d(e);let r=c(n);return d([n,...e.filter(e=>c(e)!==r)])}function p(e,t){let n=c(t);return d(e.filter(e=>c(e)!==n))}function m(e,t){let n=new Set(t),r=[];for(let t of d(e)){let e=c(t);n.has(e)||(n.add(e),r.push({key:e,cwd:t}))}return r}var h=`pisper-registered-projects`,g=n(()=>({getItem:t=>{try{return e.getItem(t)}catch{return null}},setItem:(t,n)=>{try{e.setItem(t,n)}catch{}},removeItem:t=>{try{e.removeItem(t)}catch{}}}));function _(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}var v=r()(t((e,t)=>({projects:[],registerProject:n=>{let r=u(n);if(!r)return``;let i=t().projects,a=f(i,r);return _(a,i)||e({projects:a}),r},unregisterProject:n=>{let r=t().projects;return r.some(e=>c(e)===c(n))?(e({projects:p(r,n)}),!0):!1}}),{name:h,storage:g,version:1,partialize:({projects:e})=>({projects:e}),merge:(e,t)=>({...t,projects:d(e&&typeof e==`object`&&`projects`in e?e.projects:void 0)})}));function y(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function b(e){let t=c(e);return t&&t!==`\0`&&!t.includes(`\0`)?t:null}function x(e){let t=Object.create(null);if(!e||typeof e!=`object`||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let e=b(n);if(!e||typeof r!=`string`)continue;let i=r.trim();i&&Array.from(i).length<=120&&(t[e]=i)}return t}var S=n(()=>e),C=r()(t((e,t)=>({order:[],names:x(void 0),rememberWorkspaces:n=>{let r=t().order,i=a(r,n);y(i,r)||e({order:i})},moveWorkspace:(n,r,i)=>{let a=t().order,o=s(a,i,n,r);y(o,a)||e({order:o})},setWorkspaceName:(n,r)=>{let i=typeof n==`string`?b(n):null;if(!i||typeof r!=`string`)throw TypeError(`Invalid workspace name`);let a=r.trim();if(Array.from(a).length>120)throw RangeError(`Workspace name is too long`);let o=t().names;if((o[i]||``)===a)return;if(!S)throw Error(`Workspace preferences storage is unavailable`);let s=x(o);a?s[i]=a:delete s[i];try{e({names:s})}catch(t){try{e({names:o})}catch{}throw t}}}),{name:`pisper-workspace-order`,storage:S,version:1,partialize:({order:e,names:t})=>({order:e,names:t}),merge:(e,t)=>({...t,order:o(e&&typeof e==`object`&&`order`in e?e.order:void 0),names:x(e&&typeof e==`object`&&`names`in e?e.names:void 0)})}));export{l as i,v as n,m as r,C as t};
|
package/web/index.html
CHANGED
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
document.documentElement.lang = storedLanguage === 'en-US' ? 'en-US' : 'zh-CN'
|
|
56
56
|
} catch {}
|
|
57
57
|
</script>
|
|
58
|
-
<script type="module" crossorigin src="/assets/index-
|
|
58
|
+
<script type="module" crossorigin src="/assets/index-CwdjZZLG.js"></script>
|
|
59
59
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-B0Z9INg1.js">
|
|
60
60
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-DwNgTV1j.js">
|
|
61
61
|
<link rel="modulepreload" crossorigin href="/assets/vendor-router-CSN_DGvx.js">
|
|
@@ -1 +0,0 @@
|
|
|
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-_vdxObu5.js";import{t as i}from"./createLucideIcon-Cd-3GVxJ.js";import{t as a}from"./info-DATxy0fb.js";import{t as o}from"./pause-CYWpPg1R.js";import{t as s}from"./play-DNDjDNGn.js";import{t as c}from"./x-07u4-129.js";import{i as l,n as u,t as d}from"./popover--q2hs_pT.js";import{t as f}from"./slider-De8rWVNs.js";import{t as p}from"./segmented-control-xkrEOP_d.js";import{t as m}from"./utils-C8uzG5AZ.js";import{n as h,t as g}from"./button-CCcCN8tE.js";import{n as ee,t as te}from"./PageState-Cz6vFMXv.js";import{t as _}from"./motion-DTR4ZVle.js";import{d as v,l as ne}from"./memory-api-DkPje--t.js";var re=i(`skip-forward`,[[`path`,{d:`M21 4v16`,key:`7j8fe9`}],[`path`,{d:`M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z`,key:`zs4d6`}]]),y=e(t(),1);function ie(e={}){let{rootMargin:t=`96px 0px`,threshold:n=0}=e,[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(()=>!document.hidden),[s,c]=(0,y.useState)(!0),l=(0,y.useCallback)(e=>{i(e)},[]);return(0,y.useEffect)(()=>{let e=()=>o(!document.hidden);return e(),document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),(0,y.useEffect)(()=>{if(!r||typeof IntersectionObserver>`u`)return;let e=new IntersectionObserver(([e])=>{e&&c(e.isIntersecting)},{rootMargin:t,threshold:n});return e.observe(r),()=>e.disconnect()},[r,t,n]),{ref:l,playing:a&&s}}var b=864e5,x=Math.PI*2,S=.055,C=.85,w=1e3,T=6e3,E=[`decision`,`preference`,`fact`,`concept`,`risk`,`file`,`task`];function D(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}var ae=e=>D(e)/4294967296,O=e=>Math.min(1,Math.max(0,e));function k(e,t){let n=Date.parse(String(e||``));return Number.isNaN(n)?t:n}function A(e,t){let n=Math.max(1,e.end-e.start);return S+.945*O((t-e.start)/n)**C}function oe(e,t){return t*(1+.046*(.62*Math.sin(3*e+1.1+1.9*t)+.28*Math.sin(5*e+4.2-2.7*t)+.1*Math.sin(11*e+2.3+5.1*t))*Math.min(1,t*2.2))}var se=.042,ce=-.03;function j(e,t){return oe(e,t)*Math.cos(e)+se*(1-t)}function M(e,t){return oe(e,t)*Math.sin(e)+ce*(1-t)}function le(e){let t=(e.end-e.start)/b;return t<=21?`day`:t<=120?`week`:t<=1e3?`month`:t<=3e3?`quarter`:`year`}function ue(e,t){let n=new Date(e);if(t===`day`)return new Date(n.getFullYear(),n.getMonth(),n.getDate()+1);if(t===`week`){let e=(8-n.getDay())%7||7;return new Date(n.getFullYear(),n.getMonth(),n.getDate()+e)}return t===`month`?new Date(n.getFullYear(),n.getMonth()+1,1):t===`quarter`?new Date(n.getFullYear(),Math.floor(n.getMonth()/3)*3+3,1):new Date(n.getFullYear()+1,0,1)}function N(e,t){return t===`day`?new Date(e.getFullYear(),e.getMonth(),e.getDate()+1):t===`week`?new Date(e.getFullYear(),e.getMonth(),e.getDate()+7):t===`month`?new Date(e.getFullYear(),e.getMonth()+1,1):t===`quarter`?new Date(e.getFullYear(),e.getMonth()+3,1):new Date(e.getFullYear()+1,0,1)}function de(e,t){return t===`day`?e.getDay()===1:t===`week`?e.getDate()<=7:t===`month`?e.getMonth()%3==0:t!==`quarter`||e.getMonth()===0}function fe(e,t,n){let r=[],i=ue(e.start,t);for(;i.getTime()<e.end&&r.length<400;)r.push(i),i=N(i,t);let a=Array(r.length).fill(0);for(let e of n){let t=0,n=r.length;for(;t<n;){let i=t+n>>1;r[i].getTime()<e?t=i+1:n=i}t<a.length&&(a[t]+=1)}let o=Math.max(1,...a);return r.map((n,r)=>{let i=n.getTime();return{at:i,rho:A(e,i),major:de(n,t),activity:a[r]/o}})}var pe=new Set([`project`,`projects`,`user`,`users`,`global`,`repo`,`app`,`pisper`,`general`,`misc`,`title`]);function me(e){let t=String(e||``).split(`.`).filter(Boolean);for(;t.length>1&&pe.has(t[0]);)t.shift();return t[0]||``}function he(e,t){let n=k(e.createdAt,t),r=k(e.validFrom,n);return{created:n,valid:r,appear:Math.max(n,r)}}function ge(e,t){if(!e.length)return{start:t-180*b,end:t};let n=1/0,r=t;for(let i of e){let{valid:e,appear:a}=he(i,t);n=Math.min(n,e,a),a<=t&&(r=Math.max(r,a))}let i=Math.max(b,r-n);return{start:Math.min(n-Math.max(i*.02,b/4),r-7*b),end:r}}function _e(e){let t=new Map,n=e.map(e=>me(e.topicKey));e.forEach((e,r)=>{let i=`${e.spaceId}\u0000${n[r]}`,a=t.get(i);a?a.push(r):t.set(i,[r])});let r=Math.max(2,Math.ceil(e.length*.012)),i=new Map,a=(e,t)=>{let n=i.get(e);n?n.push(t):i.set(e,[t])},o=new Map,s=new Map,c=[...t.entries()].sort((e,t)=>t[1].length-e[1].length||e[0].localeCompare(t[0]));for(let[t,n]of c){let[i,c]=t.split(`\0`),l=s.get(i)||0;if(c&&n.length>=r&&l<16){s.set(i,l+1),a(i,{key:t,label:c,kind:`topic`,spaceId:i,members:n});continue}for(let t of n){let n=`${i}\u0000type:${e[t].type}`,r=o.get(n);r?r.push(t):o.set(n,[t])}}for(let[e,t]of o){let[n,r]=e.split(`\0`);a(n,{key:e,label:r.slice(5),kind:`type`,spaceId:n,members:t})}return i}function ve(e,t,n){let r=_e(e),i=[...r.keys()].sort((e,t)=>e===`global`?-1:t===`global`?1:D(e)-D(t)),a=[],o=new Int16Array(e.length),s=new Float32Array(e.length),c=[],l=i.length>1?.09:0,u=i.reduce((e,t)=>e+(r.get(t)?.length||0),0),d=Math.min(.022,x*.25/Math.max(1,u)),f=e=>(r.get(e)||[]).reduce((e,t)=>e+Math.sqrt(t.members.length)+.6,0),p=i.reduce((e,t)=>e+f(t),0)||1,m=x-l*i.length-d*u,h=-Math.PI/2+l/2;for(let u of i){let i=[...r.get(u)||[]].sort((e,t)=>D(e.key)-D(t.key)),f=h;for(let n of i){let r=m*(Math.sqrt(n.members.length)+.6)/p,i=a.length;a.push({key:n.key.split(`\0`)[1],label:n.label,kind:n.kind,spaceId:u,start:h,end:h+r,count:n.members.length});let c=[...n.members].sort((n,r)=>t[n]-t[r]||e[n].id.localeCompare(e[r].id)),l=ae(n.key);c.forEach((e,t)=>{o[e]=i;let n=(l+t*.61803398875)%1;s[e]=h+r*(.05+.9*n)}),h+=r+d}c.push({spaceId:u,name:n.find(e=>e.id===u)?.name||u,start:f,end:h-d}),h+=l}return{sectors:a,sectorOf:o,theta:s,spaceArcs:i.length>1?c:[]}}function ye(e){return Float64Array.from(e).sort()}function be(e,{histogramBins:t=160}={}){let n=k(e.now,Date.now()),r=[...e.facts].sort((e,t)=>e.id.localeCompare(t.id)),i=r.length,a=ge(r,n),o=a.end-a.start,s=Math.max(b,o*.015),c=new Map(r.map((e,t)=>[e.id,t])),l=new Float64Array(i),u=new Float64Array(i),d=new Float64Array(i).fill(1/0),f=new Float64Array(i).fill(1/0),p=new Int32Array(i).fill(-1),m=new Uint8Array(i),h=new Uint8Array(i),g=new Map;r.forEach((e,t)=>{let{created:r,valid:i,appear:a}=he(e,n);l[t]=i,u[t]=a;let o=E.indexOf(e.type);h[t]=o>=0?o:E.indexOf(`concept`);let d=0;e.pinned&&(d|=1),e.tainted&&(d|=2),e.status===`stale`&&(d|=8),r-i>s&&(d|=4),m[t]=d;let f=e.supersededBy?c.get(e.supersededBy):void 0;if(f!==void 0&&f!==t){p[t]=f;let e=g.get(f);e?e.push(t):g.set(f,[t])}}),r.forEach((e,t)=>{let n=k(e.supersededAt,NaN)||k(e.validTo,NaN)||(e.status===`superseded`?p[t]>=0?u[p[t]]:a.end:NaN);Number.isFinite(n)&&(d[t]=Math.max(n,u[t]));let r=k(e.archivedAt,NaN)||(e.status===`archived`?a.end:NaN);Number.isFinite(r)&&(f[t]=Math.max(r,u[t]))});let{sectors:ee,sectorOf:te,theta:_,spaceArcs:v}=ve(r,u,e.spaces),ne=new Float32Array(i),re=new Float32Array(i),y=new Float32Array(i),ie=new Float32Array(i),S=new Float32Array(i),C=new Float32Array(i),w=new Float32Array(i);r.forEach((e,t)=>{ne[t]=A(a,l[t]),re[t]=j(_[t],ne[t]),y[t]=M(_[t],ne[t]);let n=O(Number(e.importance)||0),r=O((Number(e.authority)||0)/100);S[t]=.16+.84*n**1.5,C[t]=(.4+.22*r+.38*n)*(e.tainted?.6:1),ie[t]=.016+.105*n**1.5+(e.pinned?.03:0),w[t]=ae(e.id)*x});let T=[];r.forEach((e,t)=>{Number.isFinite(d[t])&&T.push({at:d[t],from:t,to:p[t]})}),T.sort((e,t)=>e.at-t.at||e.from-t.from);let D=Math.max(1,t),oe=new Uint16Array(D),se=new Uint16Array(D),ce=e=>Math.min(D-1,Math.floor(O((e-a.start)/o)*D));for(let e=0;e<i;e+=1)u[e]<=a.end&&(oe[ce(u[e])]+=1);for(let e of T)e.at<=a.end&&(se[ce(e.at)]+=1);let ue=[...u],N=[],de=[];for(let e=0;e<i;e+=1){let t=Math.min(d[e],f[e]);Number.isFinite(t)&&N.push(t),Number.isFinite(f[e])&&de.push(f[e])}let pe=e.digests.map(e=>{let t=k(e.windowEnd,a.end),n=k(e.windowStart,t),r=v.find(t=>t.spaceId===e.spaceId),i=r?.start??-Math.PI,o=(r?.end??Math.PI)-i,s=o*(e.level===`month`?.16:e.level===`week`?.085:.045),c=i+ae(e.id)*Math.max(0,o-s);return{id:e.id,level:e.level,at:t,rho:A(a,(n+t)/2),start:c,end:c+s}}),me=le(a);return{facts:r,count:i,indexById:c,domain:a,unit:me,rings:fe(a,me,ue),bornWindow:Math.max(o*.012,1),validAt:l,appearAt:u,replacedAt:d,archivedAt:f,theta:_,rho:ne,x:re,y,lift:ie,size:S,brightness:C,phase:w,typeIndex:h,sector:te,flags:m,successor:p,predecessors:g,replacements:T,sectors:ee,spaceArcs:v,digests:pe,histogram:oe,histogramReplacements:se,truncated:!!e.truncated,sortedAppear:ye(ue),sortedEnded:ye(N),sortedArchived:ye(de)}}function xe(e,t,n){return n<e.appearAt[t]?0:n>=e.archivedAt[t]?3:n>=e.replacedAt[t]?2:1}function Se(e,t,n,r=e.bornWindow){let i=xe(e,t,n);return i===0?`hidden`:i===3?`archived`:i===2?`superseded`:n-e.appearAt[t]<r?`born`:`active`}function P(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>1;e[i]<=t?n=i+1:r=i}return n}function Ce(e,t){let n=P(e.sortedAppear,t),r=P(e.sortedEnded,t),i=P(e.sortedArchived,t);return{active:n-r,superseded:r-i,archived:i,known:n}}function we(e,t){let n=new Set([t]),r=[],i=[t];for(;i.length;)for(let t of e.predecessors.get(i.pop())||[])n.has(t)||(n.add(t),r.push(t),i.push(t));let a=[],o=e.successor[t];for(;o>=0&&!n.has(o);)n.add(o),a.push(o),o=e.successor[o];return[...r,t,...a].sort((t,n)=>e.appearAt[t]-e.appearAt[n]||t-n)}function Te(e,t){return e.start+(e.end-e.start)*O(t/w)}function Ee(e,t){let n=Math.max(1,e.end-e.start);return Math.round(O((t-e.start)/n)*w)}function De(e,t=T){let n=O(e/t);return n<.5?4*n*n*n:1-(-2*n+2)**3/2}var F=Math.PI*2,I=144,Oe=72,ke=.2,L=96,Ae=620,R=55e5,je={decision:[255,196,92],preference:[186,164,255],fact:[176,214,255],concept:[104,176,255],risk:[255,104,158],file:[92,226,176],task:[92,222,240]},z=[255,96,44],Me=[96,118,164],Ne=[156,164,178],B=[236,208,164],V=[255,232,192],H=[255,176,104],U=[255,236,204],Pe=[255,206,138],W=[255,222,180],Fe=[176,202,255],G=([e,t,n],r=1)=>`rgba(${e}, ${t}, ${n}, ${r})`;function K(e,t){let n=document.createElement(`canvas`);return n.width=Math.max(1,Math.round(e)),n.height=Math.max(1,Math.round(t)),n}function q([e,t,n]){let r=K(L,L),i=r.getContext(`2d`);if(!i)return r;let a=L/2,o=i.createRadialGradient(a,a,0,a,a,a),s=r=>[255+(e-255)*r,255+(t-255)*r,255+(n-255)*r],c=(e,t)=>{let[n,r,i]=s(e);return`rgba(${n|0}, ${r|0}, ${i|0}, ${t})`};return o.addColorStop(0,c(.12,1)),o.addColorStop(.08,c(.5,.96)),o.addColorStop(.16,c(1,.62)),o.addColorStop(.3,c(1,.22)),o.addColorStop(.56,c(1,.06)),o.addColorStop(1,c(1,0)),i.fillStyle=o,i.fillRect(0,0,L,L),r}function Ie([e,t,n]){let r=K(L,L),i=r.getContext(`2d`);if(!i)return r;let a=L/2,o=i.createRadialGradient(a,a,0,a,a,a);return o.addColorStop(0,`rgba(${e}, ${t}, ${n}, 0.55)`),o.addColorStop(.35,`rgba(${e}, ${t}, ${n}, 0.16)`),o.addColorStop(.7,`rgba(${e}, ${t}, ${n}, 0.035)`),o.addColorStop(1,`rgba(${e}, ${t}, ${n}, 0)`),i.fillStyle=o,i.fillRect(0,0,L,L),r}var Le=class{canvas;ctx;camera={yaw:0,tilt:.92,zoom:1};quality;scene=null;width=1;height=1;dpr=1;maxDpr=2;insets={top:0,right:0,bottom:0,left:0};targetInsets={top:0,right:0,bottom:0,left:0};typeSprites;emberSprite;archiveSprite;untrustedSprite;pulseSprite;coreSprite;discSprite;pinnedHalo;background=null;bloomA=null;bloomB=null;ringPaths=[];grainPaths=[];frontierPath=new Float32Array(288);rimPath=new Float32Array(288);screenX=new Float32Array;screenY=new Float32Array;screenR=new Float32Array;liftNow=new Float32Array;worldX=new Float32Array;worldY=new Float32Array;morphX=null;morphY=null;morphStart=0;slowWindows=0;chainMask=new Uint8Array;ringLabels=[];sectorOrder=[];selected=-1;selectedSector=-1;hovered=-1;ringFormatter=()=>``;dust;rippleQueue=new Int32Array(48);lateQueue=new Int32Array(24);typeCss;ambientPulses=[];nextAmbientPulse=0;frameTimes=0;frameCount=0;px=0;py=0;ps=1;cx=0;cy=0;unit=1;cosYaw=1;sinYaw=0;cosTilt=1;sinTilt=0;constructor(e,{quality:t=3}={}){this.canvas=e;let n=e.getContext(`2d`,{alpha:!1});if(!n)throw Error(`canvas 2d unavailable`);this.ctx=n,this.quality=t,this.typeSprites=E.map(e=>q(je[e])),this.typeCss=E.map(e=>G(je[e])),this.emberSprite=q(z),this.archiveSprite=q(Me),this.untrustedSprite=q(Ne),this.pulseSprite=q(U),this.coreSprite=Ie(Pe),this.discSprite=Ie([206,158,104]),this.pinnedHalo=Ie(V),this.dust=new Float32Array(1e3);let r=20261105,i=()=>(r=Math.imul(r,1664525)+1013904223>>>0,r/4294967296);for(let e=0;e<200;e+=1){let t=i()*F,n=.08+Math.sqrt(i())*1.42;this.dust[e*5]=Math.cos(t)*n,this.dust[e*5+1]=Math.sin(t)*n,this.dust[e*5+2]=(i()-.35)*.42,this.dust[e*5+3]=i()*F,this.dust[e*5+4]=.15+i()*.55}}setRingFormatter(e){this.ringFormatter=e,this.refreshLabels()}setScene(e,{animate:t=!1,now:n=0}={}){let r=this.scene,i=this.worldX,a=this.worldY;if(this.scene=e,this.ambientPulses=[],this.morphX=null,this.morphY=null,!e)return!1;let o=!1;if(t&&r&&r.count&&e.count){let t=Float32Array.from(e.x),s=Float32Array.from(e.y),c=0;e.facts.forEach((e,n)=>{let o=r.indexById.get(e.id);o!==void 0&&(t[n]=i[o],s[n]=a[o],c+=1)}),c>=Math.max(1,e.count*.3)&&(this.morphX=t,this.morphY=s,this.morphStart=n,o=!0)}return this.worldX=Float32Array.from(this.morphX??e.x),this.worldY=Float32Array.from(this.morphY??e.y),this.screenX=new Float32Array(e.count),this.screenY=new Float32Array(e.count),this.screenR=new Float32Array(e.count),this.liftNow=new Float32Array(e.count),this.chainMask=new Uint8Array(e.count),this.ringPaths=e.rings.map(e=>{let t=new Float32Array(288);return this.fillRingPath(t,e.rho),t}),this.fillRingPath(this.rimPath,1),this.grainPaths=this.buildGrain(),this.sectorOrder=e.sectors.map((e,t)=>({sector:e,index:t})).filter(({sector:e})=>e.kind===`topic`).sort((e,t)=>t.sector.count-e.sector.count).slice(0,10).map(e=>e.index),this.refreshLabels(),this.setSelection(this.selected<e.count?this.selected:-1),this.hovered=-1,o}buildGrain(){let e=[],t=7;for(let n=.07;n<1;n+=.0115){t=Math.imul(t,1664525)+1013904223>>>0;let r=((t>>>8)/16777216-.5)*.006,i=new Float32Array(144);for(let e=0;e<Oe;e+=1){let t=e/Oe*F;i[e*2]=j(t,n+r),i[e*2+1]=M(t,n+r)}e.push({rho:n+r,path:i})}return e}refreshLabels(){this.ringLabels=this.scene?this.scene.rings.map(e=>this.ringFormatter(e.at)):[]}setSelection(e){let{scene:t}=this;if(this.selected=e,this.chainMask.fill(0),this.selectedSector=-1,!t||e<0||e>=t.count){this.selected=-1;return}for(let n of we(t,e))this.chainMask[n]=1;this.selectedSector=t.sector[e]}setHover(e){this.hovered=e}resize(e,t,n){let r=Math.max(1,e),i=Math.max(1,t);(r!==this.width||i!==this.height||n!==this.maxDpr)&&(this.width=r,this.height=i,this.maxDpr=n,this.applyResolution())}setInsets(e,{animate:t=!1}={}){this.targetInsets=e,t||(this.insets=e)}get settling(){let{insets:e,targetInsets:t}=this;return e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left}stepInsets(){let e=(e,t)=>Math.abs(t-e)<.5?t:e+(t-e)*.14,{insets:t,targetInsets:n}=this;this.settling&&(this.insets={top:e(t.top,n.top),right:e(t.right,n.right),bottom:e(t.bottom,n.bottom),left:e(t.left,n.left)})}applyResolution(){let e=typeof devicePixelRatio==`number`?devicePixelRatio:1,t=this.quality===1?1:this.maxDpr,n=Math.sqrt(R/(this.width*this.height));this.dpr=Math.max(1,Math.min(e||1,t,n)),this.canvas.width=Math.max(1,Math.round(this.width*this.dpr)),this.canvas.height=Math.max(1,Math.round(this.height*this.dpr)),this.background=this.paintBackground(),this.bloomA=K(this.canvas.width/4,this.canvas.height/4),this.bloomB=K(this.canvas.width/10,this.canvas.height/10)}noteFrameInterval(e){if(this.frameTimes+=e,this.frameCount+=1,this.frameCount<45)return;let t=this.frameTimes/this.frameCount;this.frameTimes=0,this.frameCount=0,this.slowWindows=t>30?this.slowWindows+1:0,this.slowWindows>=2&&this.quality>1&&(this.slowWindows=0,--this.quality,this.applyResolution())}paintBackground(){let e=K(Math.min(1024,this.width),Math.min(1024,this.height)),t=e.getContext(`2d`);if(!t)return e;let{width:n,height:r}=e;t.fillStyle=`#05060a`,t.fillRect(0,0,n,r);let i=this.layoutCenter(),a=t.createRadialGradient(i.x/this.width*n,i.y/this.height*r,0,i.x/this.width*n,i.y/this.height*r,Math.max(n,r)*.72);return a.addColorStop(0,`rgba(30, 27, 32, 0.8)`),a.addColorStop(.42,`rgba(10, 13, 22, 0.7)`),a.addColorStop(1,`rgba(3, 4, 8, 0)`),t.fillStyle=a,t.fillRect(0,0,n,r),e}layoutCenter(){let{top:e,bottom:t,left:n,right:r}=this.insets;return{x:n+(this.width-n-r)/2,y:e+(this.height-e-t)/2}}fillRingPath(e,t){for(let n=0;n<I;n+=1){let r=n/I*F;e[n*2]=j(r,t),e[n*2+1]=M(r,t)}}project(e,t,n){let r=e*this.cosYaw-t*this.sinYaw,i=e*this.sinYaw+t*this.cosYaw,a=1/(1-ke*(i*this.sinTilt+n*this.cosTilt));this.px=this.cx+this.unit*r*a,this.py=this.cy+this.unit*(i*this.cosTilt-n*this.sinTilt)*a,this.ps=a}traceRing(e){let{ctx:t}=this;for(let n=0;n<I;n+=1)this.project(e[n*2],e[n*2+1],0),n===0?t.moveTo(this.px,this.py):t.lineTo(this.px,this.py);t.closePath()}applyCamera(e){let{camera:t}=this;this.stepInsets(),this.cosYaw=Math.cos(t.yaw),this.sinYaw=Math.sin(t.yaw),this.cosTilt=Math.cos(t.tilt),this.sinTilt=Math.sin(t.tilt);let{top:n,bottom:r,left:i,right:a}=this.insets,o=Math.max(40,this.width-i-a),s=Math.max(40,this.height-n-r),c=this.layoutCenter(),l=1+ke*this.sinTilt*.55,u=Math.min(o/(2.08*l),s/(2.08*Math.max(this.cosTilt,.34)*l+.14*this.sinTilt)),d=1+.72*(1-e)**2;this.unit=u*t.zoom*d,this.cx=c.x,this.cy=c.y+this.sinTilt*this.unit*.02}pick(e,t,n,r){let{scene:i}=this;if(!i)return-1;let a=-1,o=n*n;for(let n=0;n<i.count;n+=1){let s=this.screenX[n];if(Number.isNaN(s))continue;let c=s-e,l=this.screenY[n]-t,u=c*c+l*l;(r>=i.replacedAt[n]||r>=i.archivedAt[n])&&(u*=1.8),u<o&&(o=u,a=n)}return a}screenPosition(e){let t=this.screenX[e];return t===void 0||Number.isNaN(t)?null:{x:t,y:this.screenY[e]}}draw(e){let{ctx:t,scene:n,dpr:r}=this;t.setTransform(r,0,0,r,0,0),t.globalCompositeOperation=`source-over`,t.globalAlpha=1,this.background?t.drawImage(this.background,0,0,this.width,this.height):(t.fillStyle=`#05060a`,t.fillRect(0,0,this.width,this.height));let i=n?A(n.domain,e.at):1;this.applyCamera(i),t.globalCompositeOperation=`lighter`,t.lineCap=`round`,t.lineJoin=`round`,this.drawDust(e),n&&(this.stepMorph(n,e),this.drawDiscBody(n,e,i),this.drawDigests(n,e),this.computePositions(n,e),this.drawThreads(n,e),this.drawStems(n,e),this.drawFacts(n,e),this.drawPulses(n,e),this.drawFrontier(e,i)),this.applyBloom(),t.setTransform(r,0,0,r,0,0),t.globalCompositeOperation=`source-over`,t.globalAlpha=1,n&&this.drawLabels(n,e,i),e.fade<1&&(t.globalAlpha=1-e.fade,t.fillStyle=`#05060a`,t.fillRect(0,0,this.width,this.height),t.globalAlpha=1)}stepMorph(e,t){let{morphX:n,morphY:r}=this;if(!n||!r)return;let i=Math.min(1,Math.max(0,(t.wall-this.morphStart)/Ae)),a=i*i*(3-2*i);for(let t=0;t<e.count;t+=1)this.worldX[t]=n[t]+(e.x[t]-n[t])*a,this.worldY[t]=r[t]+(e.y[t]-r[t])*a;i>=1&&(this.morphX=null,this.morphY=null)}get morphing(){return this.morphX!==null}drawDust(e){let{ctx:t,dust:n}=this,r=this.quality===3?200:this.quality===2?110:40,i=e.ambient?e.wall*12e-6:0;for(let a=0;a<r;a+=1){let r=a*5,o=.55+a%7*.05,s=Math.cos(i*o),c=Math.sin(i*o),l=n[r]*s-n[r+1]*c,u=n[r]*c+n[r+1]*s;if(this.project(l,u,n[r+2]),this.px<-4||this.py<-4||this.px>this.width+4||this.py>this.height+4)continue;let d=e.ambient?.55+.45*Math.sin(e.wall*7e-4+n[r+3]):.7,f=(.7+n[r+4]*1.1)*this.ps;t.globalAlpha=n[r+4]*d*.5,t.fillStyle=G(a%3==0?Fe:W),t.fillRect(this.px-f/2,this.py-f/2,f,f)}t.globalAlpha=1}drawDiscBody(e,t,n){let{ctx:r}=this,i=this.selected>=0?.55:1;this.project(j(0,0),M(0,0),0);let a=this.px,o=this.py,s=this.unit*Math.max(n,.1)*1.32;if(r.globalAlpha=.5*i,r.drawImage(this.discSprite,this.cx-s,this.cy-s*this.cosTilt,s*2,s*2*this.cosTilt),n<.995&&(r.beginPath(),this.traceRing(this.rimPath),r.globalAlpha=.06,r.strokeStyle=G(B),r.lineWidth=.8,r.stroke()),this.quality>=2){let e=this.quality===3?1:2;r.strokeStyle=G(B),r.lineWidth=.5,r.globalAlpha=.075*e*i,r.beginPath();for(let t=0;t<this.grainPaths.length;t+=e){let{rho:e,path:i}=this.grainPaths[t];if(e>n)break;for(let e=0;e<Oe;e+=1)this.project(i[e*2],i[e*2+1],0),e===0?r.moveTo(this.px,this.py):r.lineTo(this.px,this.py);r.closePath()}r.stroke()}let{rings:c}=e,l=-1;for(let e=0;e<c.length&&!(c[e].at>t.at);e+=1)l=e;r.fillStyle=G(B);for(let e=0;e<=l;e+=2){let t=c[e];r.beginPath(),this.traceRing(this.ringPaths[e]),e>0&&this.traceRing(this.ringPaths[e-1]),r.globalAlpha=(.012+.03*t.activity)*i,r.fill(`evenodd`)}r.strokeStyle=G(B);for(let e=0;e<=l;e+=1){let t=c[e];r.beginPath(),this.traceRing(this.ringPaths[e]),r.globalAlpha=(.11+.17*t.activity+(t.major?.13:0))*i,r.lineWidth=t.major?1:.65,r.stroke()}let u=this.knownCount(e,t.at),d=t.ambient?1+.08*Math.sin(t.wall*.0011):1,f=this.unit*(.17+.028*Math.log1p(u))*d;r.globalAlpha=.62*i,r.drawImage(this.coreSprite,a-f,o-f,f*2,f*2),r.globalAlpha=1}knownCount(e,t){let n=0,r=e.sortedAppear.length;for(;n<r;){let i=n+r>>1;e.sortedAppear[i]<=t?n=i+1:r=i}return n}drawDigests(e,t){let{ctx:n}=this;if(e.digests.length){n.strokeStyle=G(V),n.lineWidth=1.25,n.globalAlpha=this.selected>=0?.1:.34,n.beginPath();for(let r of e.digests){if(r.at>t.at)continue;let e=Math.max(4,Math.ceil((r.end-r.start)/F*I));for(let t=0;t<=e;t+=1){let i=r.start+(r.end-r.start)*t/e;this.project(j(i,r.rho),M(i,r.rho),0),t===0?n.moveTo(this.px,this.py):n.lineTo(this.px,this.py)}}n.stroke(),n.globalAlpha=1}}computePositions(e,t){let{at:n,effectWindow:r}=t,{appearAt:i,replacedAt:a,archivedAt:o,lift:s,count:c}=e,{worldX:l,worldY:u}=this;for(let e=0;e<c;e+=1){if(n<i[e]){this.screenX[e]=NaN;continue}let t=s[e],c=Math.min(a[e],o[e]);if(n>=c){let i=Math.min(1,(n-c)/(r*1.6)),a=i*i*(3-2*i);t=n>=o[e]?s[e]*(1-a)-.035*a:s[e]*(1-a)}this.liftNow[e]=t,this.project(l[e],u[e],t),this.screenX[e]=this.px,this.screenY[e]=this.py,this.screenR[e]=this.ps}}threadControl(e,t){let n=this.worldX[e],r=this.worldY[e],i=this.worldX[t],a=this.worldY[t],o=i-n,s=a-r,c=Math.sqrt(o*o+s*s);this.project((n+i)/2,(r+a)/2,(this.liftNow[e]+this.liftNow[t])/2+.018+c*.46)}drawThreads(e,t){let{ctx:n,selected:r,chainMask:i}=this,{at:a}=t;n.strokeStyle=G(H),n.lineWidth=.95,n.globalAlpha=r>=0?.06:.42,n.beginPath();for(let t of e.replacements){if(t.at>a)break;t.to<0||a<e.appearAt[t.to]||r>=0&&i[t.from]&&i[t.to]||(this.threadControl(t.from,t.to),n.moveTo(this.screenX[t.from],this.screenY[t.from]),n.quadraticCurveTo(this.px,this.py,this.screenX[t.to],this.screenY[t.to]))}if(n.stroke(),r>=0){n.strokeStyle=G(V),n.lineWidth=1.5,n.globalAlpha=.8,n.beginPath();for(let t of e.replacements){if(t.at>a)break;t.to<0||a<e.appearAt[t.to]||!i[t.from]||!i[t.to]||(this.threadControl(t.from,t.to),n.moveTo(this.screenX[t.from],this.screenY[t.from]),n.quadraticCurveTo(this.px,this.py,this.screenX[t.to],this.screenY[t.to]))}n.stroke()}n.globalAlpha=1}drawStems(e,t){if(this.sinTilt<.2||this.quality<2||this.quality===2&&e.count>800)return;let{ctx:n,selected:r}=this,{at:i}=t,{appearAt:a,replacedAt:o,archivedAt:s,count:c}=e,{worldX:l,worldY:u}=this;n.strokeStyle=G(B),n.lineWidth=.6,n.globalAlpha=r>=0?.05:.3,n.beginPath();for(let e=0;e<c;e+=1)i<a[e]||i>=o[e]||i>=s[e]||(this.project(l[e],u[e],0),n.moveTo(this.px,this.py),n.lineTo(this.screenX[e],this.screenY[e]));if(n.stroke(),this.quality===3&&c<=1500&&r<0){let t=Math.max(.2,this.cosTilt);for(let r=0;r<c;r+=1){if(i<a[r]||i>=o[r]||i>=s[r])continue;this.project(l[r],u[r],0);let c=12*(.5+e.size[r])*this.ps;n.globalAlpha=.2,n.drawImage(this.typeSprites[e.typeIndex[r]],this.px-c/2,this.py-c*t/2,c,c*t)}}n.globalAlpha=1}drawFacts(e,t){let{ctx:n,selected:r,selectedSector:i,chainMask:a,hovered:o}=this,{at:s,effectWindow:c,wall:l,ambient:u}=t,{appearAt:d,replacedAt:f,archivedAt:p,size:m,brightness:h,phase:g,typeIndex:ee,flags:te,count:_}=e,v=Math.min(1.75,Math.max(.74,(420/Math.max(1,_))**.26)),ne=Math.min(1.35,Math.max(.7,this.unit/330))*v,re=this.quality===3?48:this.quality===2?24:8,y=_>2200||_>800&&this.quality<3?.34:this.quality===1&&_>300?.26:0,ie=0,b=0;for(let v=0;v<_;v+=1){if(s<d[v])continue;let _=this.screenX[v],x=this.screenY[v],S=this.screenR[v],C=1;r>=0&&(C=a[v]?1.3:e.sector[v]===i?.5:.11),v===o&&(C=Math.max(C,1.5)),C*=.62+.42*Math.min(1,Math.max(0,(S-.84)/.3));let w=(6+19*m[v])*ne*S,T=Math.min(f[v],p[v]);if(s>=p[v]){let e=Math.min(1,(s-p[v])/(c*1.6)),t=w*(.62+.25*(1-e));n.globalAlpha=Math.min(1,(.2+.4*(1-e))*C),n.drawImage(this.archiveSprite,_-t/2,x-t/2,t,t);continue}if(s>=T){let e=Math.min(1,(s-T)/c),t=u?.82+.18*Math.sin(l*.0016+g[v]):.9,r=w*(.86+.9*(1-e)*(1-e));if(e<1){n.globalAlpha=Math.min(1,(1-e)*h[v]*C);let t=this.spriteFor(v,ee,te);n.drawImage(t,_-r/2,x-r/2,r,r)}n.globalAlpha=Math.min(1,(.62+.38*(1-e))*t*C),n.drawImage(this.emberSprite,_-r/2,x-r/2,r,r);continue}let E=s-d[v],D=E<c?(1-E/c)*t.effectGain:0;if(m[v]<y&&D===0&&v!==o&&r<0){let e=1.7*S;n.globalAlpha=Math.min(1,h[v]*C),n.fillStyle=this.typeCss[ee[v]],n.fillRect(_-e/2,x-e/2,e,e);continue}let ae=u?.86+.14*Math.sin(l*.0013+g[v]):.95,O=h[v]*ae*C;te[v]&8&&(O*=.72);let k=w*(1+2.4*D*D);n.globalAlpha=Math.min(1,O+D*.5);let A=this.spriteFor(v,ee,te);if(n.drawImage(A,_-k/2,x-k/2,k,k),te[v]&1){let e=w*2.9;n.globalAlpha=Math.min(1,.5*C*ae),n.drawImage(this.pinnedHalo,_-e/2,x-e/2,e,e)}D>0&&(ie<re&&(this.rippleQueue[ie++]=v),te[v]&4&&b<this.lateQueue.length&&(this.lateQueue[b++]=v))}n.globalAlpha=1,this.drawRipples(e,t,ie),this.drawLateBeams(e,t,b),this.drawSelectionMarks(e,t)}spriteFor(e,t,n){return n[e]&2?this.untrustedSprite:this.typeSprites[t[e]]}drawRipples(e,t,n){if(!n)return;let{ctx:r}=this;r.lineWidth=1;for(let i=0;i<n;i+=1){let n=this.rippleQueue[i],a=(t.at-e.appearAt[n])/t.effectWindow;if(a<0||a>=1)continue;this.project(this.worldX[n],this.worldY[n],0);let o=this.unit*(.006+.052*Math.sqrt(a))*this.ps;r.globalAlpha=(1-a)*(1-a)*.42*t.effectGain,r.strokeStyle=G(je[E[e.typeIndex[n]]]),r.beginPath(),r.ellipse(this.px,this.py,o,o*Math.max(.2,this.cosTilt),0,0,F),r.stroke()}r.globalAlpha=1}drawLateBeams(e,t,n){if(!n)return;let{ctx:r}=this,i=A(e.domain,t.at);r.strokeStyle=G(V),r.lineWidth=1.2;for(let a=0;a<n;a+=1){let n=this.lateQueue[a],o=(t.at-e.appearAt[n])/t.effectWindow;if(o<0||o>=1)continue;let s=e.theta[n];this.project(j(s,i),M(s,i),0),r.globalAlpha=(1-o)*.8*t.effectGain,r.beginPath(),r.moveTo(this.px,this.py),r.lineTo(this.screenX[n],this.screenY[n]),r.stroke()}r.globalAlpha=1}drawSelectionMarks(e,t){let{ctx:n,selected:r,hovered:i,chainMask:a}=this,o=(r,i,a)=>{r<0||r>=e.count||t.at<e.appearAt[r]||(n.globalAlpha=a,n.beginPath(),n.arc(this.screenX[r],this.screenY[r],i,0,F),n.stroke())};if(n.strokeStyle=G(V),n.lineWidth=1,r>=0)for(let t=0;t<e.count;t+=1)a[t]&&o(t,t===r?12:7,t===r?.95:.55);i>=0&&i!==r&&o(i,9,.7),n.globalAlpha=1}drawPulseAlong(e,t,n,r){let{ctx:i}=this;this.threadControl(e,t);let a=this.px,o=this.py,s=this.screenX[e],c=this.screenY[e],l=this.screenX[t],u=this.screenY[t],d=e=>{let t=1-e;this.px=t*t*s+2*t*e*a+e*e*l,this.py=t*t*c+2*t*e*o+e*e*u},f=Math.min(1,n*1.3),p=Math.max(0,f-.42),m=r*(n>.75?(1-n)/.25:1);i.strokeStyle=G(U);for(let e=0;e<9;e+=1){let t=p+(f-p)*e/9,n=p+(f-p)*(e+1)/9;d(t);let r=this.px,a=this.py;d(n),i.globalAlpha=Math.min(1,((e+1)/9)**2*m),i.lineWidth=.7+1.5*((e+1)/9),i.beginPath(),i.moveTo(r,a),i.lineTo(this.px,this.py),i.stroke()}d(f);let h=20*Math.min(1.2,this.unit/300);i.globalAlpha=Math.min(1,m),i.drawImage(this.pulseSprite,this.px-h/2,this.py-h/2,h,h)}drawPulses(e,t){let{at:n,effectWindow:r,wall:i,ambient:a}=t,{replacements:o}=e;if(!o.length)return;let s=this.quality===3?36:this.quality===2?18:6,c=0,l=o.length;for(;c<l;){let e=c+l>>1;o[e].at<=n?c=e+1:l=e}let u=c,d=r*1.8,f=0;for(let r=u-1;r>=0&&f<s;--r){let i=o[r],a=(n-i.at)/d;if(a>=1)break;i.to<0||n<e.appearAt[i.to]||(t.effectGain>.02&&this.drawPulseAlong(i.from,i.to,a,t.effectGain),f+=1)}if(!a){this.ctx.globalAlpha=1;return}if(this.selected>=0){let e=0;for(let t of o){if(t.to<0||t.at>n||!this.chainMask[t.from]||!this.chainMask[t.to])continue;let r=((i*45e-5+e*.27)%1+1)%1;this.drawPulseAlong(t.from,t.to,r,.9),e+=1}}else if(u){if(i>=this.nextAmbientPulse&&this.ambientPulses.length<3){this.nextAmbientPulse=i+650+(Math.sin(i)+1)*500;let e=Math.floor(Math.abs(Math.sin(i*12.9898))*u)%u;this.ambientPulses.push({replacement:e,start:i})}for(let t=this.ambientPulses.length-1;t>=0;--t){let r=this.ambientPulses[t],a=(i-r.start)/1900,s=o[r.replacement];if(a>=1||!s||s.at>n){this.ambientPulses.splice(t,1);continue}s.to<0||n<e.appearAt[s.to]||this.drawPulseAlong(s.from,s.to,a,.55)}}this.ctx.globalAlpha=1}drawFrontier(e,t){let{ctx:n}=this,r=this.frontierPath;this.fillRingPath(r,t),n.strokeStyle=G(V);let i=(e.moving?1:.62)*(this.selected>=0?.5:1),a=this.quality===1?1:3;for(let e=0;e<a;e+=1)n.beginPath(),this.traceRing(r),e===a-1?(n.lineWidth=1.1,n.globalAlpha=.72*i):e===0?(n.lineWidth=9,n.globalAlpha=.035*i):(n.lineWidth=3.6,n.globalAlpha=.09*i),n.stroke();if(e.ambient&&this.quality>=2){let r=Math.min(46,this.unit*.11)*(e.moving?1.25:1);for(let a=0;a<3;a+=1){let o=e.wall*17e-5*(a===1?-1:1)+a*2.1;this.project(j(o,t),M(o,t),0),n.globalAlpha=(.32+.3*Math.max(0,Math.sin(e.wall*6e-4+a*2)))*i,n.drawImage(this.pulseSprite,this.px-r/2,this.py-r/2,r,r)}}n.globalAlpha=1}applyBloom(){let{ctx:e,canvas:t}=this;if(this.quality<2||!this.bloomA)return;let n=this.bloomA.getContext(`2d`);if(n){if(n.globalCompositeOperation=`copy`,n.imageSmoothingEnabled=!0,n.drawImage(t,0,0,this.bloomA.width,this.bloomA.height),e.setTransform(1,0,0,1,0,0),e.imageSmoothingEnabled=!0,e.globalCompositeOperation=`lighter`,e.globalAlpha=.34,e.drawImage(this.bloomA,0,0,t.width,t.height),this.quality>=3&&this.bloomB){let n=this.bloomB.getContext(`2d`);n&&(n.globalCompositeOperation=`copy`,n.imageSmoothingEnabled=!0,n.drawImage(this.bloomA,0,0,this.bloomB.width,this.bloomB.height),e.globalAlpha=.3,e.drawImage(this.bloomB,0,0,t.width,t.height))}e.globalAlpha=1}}drawLabels(e,t,n){let{ctx:r}=this;if(this.width<280||!e.count)return;r.textBaseline=`middle`,r.textAlign=`left`,r.font=`10.5px ui-sans-serif, system-ui, sans-serif`;let i=this.selected>=0?.45:1,a=Math.PI*.2-this.camera.yaw,o=1/0,s=1/0;for(let n=e.rings.length-1;n>=0;--n){let c=e.rings[n];if(c.at>t.at||!c.major||(this.project(j(a,c.rho),M(a,c.rho),0),Math.hypot(this.px-o,this.py-s)<34))continue;o=this.px,s=this.py,r.globalAlpha=.62*i,r.fillStyle=G(B);let l=this.ringLabels[n]||``;r.fillText(l,Math.min(this.px+4,this.width-8-r.measureText(l).width),this.py)}let c=Math.min(1.09,n+.07),l=Math.min(1.14,n+.12);if(this.width>=560&&n>.32){r.textAlign=`center`;for(let t of this.sectorOrder){let i=e.sectors[t],a=(i.start+i.end)/2;if(e.spaceArcs.some(e=>e.name.includes(i.label)))continue;this.project(j(a,c),M(a,c),0);let o=(.14+.5*Math.min(1,Math.max(0,(this.ps-.86)/.24)))*Math.min(1,(n-.32)*4);this.selected>=0&&(o=t===this.selectedSector?.95:.1),r.globalAlpha=o,r.fillStyle=G(B),r.fillText(i.label.slice(0,18),this.px,this.py)}}if(e.spaceArcs.length){r.textAlign=`center`;for(let t of e.spaceArcs){let e=Math.max(6,Math.ceil((t.end-t.start)/F*I));r.beginPath();for(let n=0;n<=e;n+=1){let i=t.start+(t.end-t.start)*n/e;this.project(j(i,l),M(i,l),0),n===0?r.moveTo(this.px,this.py):r.lineTo(this.px,this.py)}r.strokeStyle=G(B),r.lineWidth=1,r.globalAlpha=.34*i,r.stroke();let n=(t.start+t.end)/2;this.project(j(n,l+.035),M(n,l+.035),0),r.globalAlpha=.72*i,r.fillStyle=G(V),r.fillText(t.name.slice(0,22),this.px,this.py)}}r.globalAlpha=1}};function Re(e,t,n,r,i){let a=e.getContext(`2d`);if(!a)return;let o=Math.min((typeof devicePixelRatio==`number`?devicePixelRatio:1)||1,2),s=Math.max(1,Math.round(r*o)),c=Math.max(1,Math.round(i*o));(e.width!==s||e.height!==c)&&(e.width=s,e.height=c),a.setTransform(o,0,0,o,0,0),a.clearRect(0,0,r,i);let{histogram:l,histogramReplacements:u,domain:d}=t,f=l.length,p=Math.max(1,d.end-d.start),m=Math.min(1,Math.max(0,(n-d.start)/p))*r,h=1;for(let e=0;e<f;e+=1)h=Math.max(h,l[e]);let g=r/f,ee=i-5;for(let e=0;e<f;e+=1){let t=l[e],n=e*g,r=n+g/2<=m;if(t){let e=Math.max(1.5,Math.sqrt(t/h)*ee);a.fillStyle=r?G(B,.78):G(B,.2),a.fillRect(n+.5,i-e,Math.max(1,g-1),e)}if(u[e]){let t=Math.min(ee,3+u[e]*1.5);a.fillStyle=r?G(z,.95):G(z,.34),a.fillRect(n+g/2-.75,0,1.5,t)}}}var J=n(),ze=400,Be=540,Ve=880,He=16,Ue={colorScheme:`dark`,"--text":`rgba(246, 240, 228, 0.96)`,"--foreground":`rgba(246, 240, 228, 0.96)`,"--text-soft":`rgba(246, 240, 228, 0.86)`,"--text-secondary":`rgba(240, 232, 218, 0.74)`,"--text-muted":`rgba(232, 224, 208, 0.58)`,"--text-faint":`rgba(232, 224, 208, 0.38)`,"--surface-hover":`rgba(255, 244, 224, 0.1)`,"--surface-active":`rgba(255, 244, 224, 0.17)`,"--surface-muted":`rgba(255, 244, 224, 0.07)`,"--surface-subtle":`rgba(255, 244, 224, 0.1)`,"--stroke":`rgba(255, 244, 224, 0.13)`,"--stroke-soft":`rgba(255, 244, 224, 0.08)`,"--stroke-strong":`rgba(255, 244, 224, 0.22)`,"--solid":`rgba(255, 244, 224, 0.14)`,"--star":`rgba(255, 232, 192, 0.92)`,"--star-hover":`rgba(255, 240, 214, 1)`,"--key-bg":`rgba(255, 240, 214, 1)`,"--key-border":`rgba(255, 244, 224, 0.2)`,"--key-shadow":`0 0 14px rgba(255, 214, 150, 0.55)`,"--control-border":`rgba(255, 240, 214, 0.9)`,"--focus":`rgba(255, 222, 170, 1)`,"--focus-ring":`rgba(255, 222, 170, 0.32)`,"--danger":`rgba(255, 150, 130, 1)`,"--evo-panel":`rgba(13, 14, 19, 0.74)`,"--evo-line":`rgba(255, 244, 224, 0.13)`,"--evo-scrim":`rgba(5, 6, 10, 0.86)`,"--evo-scrim-clear":`rgba(5, 6, 10, 0)`,"--evo-base":`rgba(5, 6, 10, 1)`,"--evo-active":`rgba(255, 232, 192, 1)`},We=G(z),Ge=G(Me),Ke=24e3,qe=[`0.5`,`1`,`2`],Je=-.38,Ye=.94,Xe=.68,Ze=.24,Qe=26e-6,$e=450,et=2e4,tt=Math.PI*.62,nt=1.1,rt=30,it=7,at=!1;function ot(e){let t=navigator.deviceMemory;return t!==void 0&&t<=2?1:e||t!==void 0&&t<=4?2:3}function st(e){let t=Math.min(1,Math.max(0,e));return t*t*(3-2*t)}var ct=e=>e instanceof Error?e.message:String(e),lt=e=>e instanceof DOMException&&e.name===`AbortError`;function ut({spaceId:e,refreshKey:t=0,selectedId:n=null,onSelect:i}){let{t:b,language:x}=r(),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!0),[D,ae]=(0,y.useState)(``),[O,k]=(0,y.useState)(0),[A,oe]=(0,y.useState)(0),[se,ce]=(0,y.useState)(0),[j,M]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(`1`),[N,de]=(0,y.useState)(null),[fe,pe]=(0,y.useState)(null),[me,he]=(0,y.useState)(null),[ge,_e]=(0,y.useState)(0),[ve,ye]=(0,y.useState)(0),xe=(0,y.useRef)(null),P=(0,y.useRef)(null),F=(0,y.useRef)(null),I=(0,y.useRef)(null),Oe=(0,y.useRef)(null),ke=(0,y.useRef)(null),L=(0,y.useRef)(null),Ae=(0,y.useRef)(null),R=(0,y.useRef)(null),z=(0,y.useRef)(null),Me=(0,y.useRef)(-1),Ne=(0,y.useRef)(-1),B=(0,y.useRef)(`1`),V=(0,y.useRef)(0),H=(0,y.useRef)(0),U=(0,y.useRef)(`idle`),Pe=(0,y.useRef)(0),W=(0,y.useRef)(1),Fe=(0,y.useRef)(0),K=(0,y.useRef)(!0),q=(0,y.useRef)(0),Ie=(0,y.useRef)(!1),ut=(0,y.useRef)(0),dt=(0,y.useRef)(0),ft=(0,y.useRef)(0),pt=(0,y.useRef)(0),Y=(0,y.useRef)(Je),X=(0,y.useRef)(Ye),mt=(0,y.useRef)(!1),ht=(0,y.useRef)(null),gt=(0,y.useRef)(1),_t=(0,y.useRef)(()=>{}),vt=(0,y.useRef)(null),yt=(0,y.useRef)(!1),{ref:bt,playing:xt}=ie(),St=(0,y.useCallback)(e=>{P.current=e,bt(e)},[bt]),Ct=(0,y.useCallback)((e=!1)=>{if(!z.current)return;let t=performance.now();!e&&t-ft.current<33||(ft.current=t,oe(V.current))},[]),wt=(0,y.useCallback)(e=>{q.current=0;let t=R.current;if(!t)return;let n=z.current,r=yt.current,i=ut.current?Math.min(64,e-ut.current):16;ut.current=e;let a=!1;if(n){let{start:e,end:o}=n.domain,s=Math.max(1,o-e);if(U.current===`opening`){Pe.current+=i;let n=De(Pe.current);V.current=e+s*n,t.camera.tilt=Ze+(X.current-Ze)*st(n*1.15),t.camera.yaw=Y.current-1.3*(1-n)**2,a=!0,Pe.current>=6e3&&(V.current=o,U.current=`idle`,M(!1),Ct(!0))}else U.current===`play`&&(V.current+=i*s*Number(B.current)/Ke,a=!0,V.current>=o&&(V.current=o,U.current=`idle`,M(!1),Ct(!0)));let c=H.current,l=V.current-c;U.current!==`idle`||Math.abs(l)<s*2e-4?H.current=V.current:H.current=c+l*(1-Math.exp(-i/85)),H.current!==c&&(a=!0);let u=Math.abs(H.current-c)/Math.max(1,i),d=Math.min(s*.08,Math.max(s*.002,u*520)),f=d>W.current?90:420;r?W.current=s*.002:(W.current+=(d-W.current)*(1-Math.exp(-i/f)),Math.abs(d-W.current)>s*2e-4&&(a=!0))}let o=!!vt.current?.moved;if(!r&&!o&&U.current!==`opening`&&Ne.current<0&&Me.current<0&&(Y.current+=i*Qe),ht.current!==null&&!o){let e=Math.atan2(Math.sin(ht.current-Y.current),Math.cos(ht.current-Y.current));Math.abs(e)<.002||r?(Y.current=ht.current,ht.current=null):(Y.current+=e*(1-Math.exp(-i/240)),a=!0)}let s=gt.current*(Me.current>=0?nt:1);Math.abs(t.camera.zoom-s)>.001&&!r?(t.camera.zoom+=(s-t.camera.zoom)*(1-Math.exp(-i/240)),a=!0):t.camera.zoom=s,t.settling&&(a=!0),U.current!==`opening`&&(t.camera.yaw=Y.current);let c=Math.min(1,(e-Fe.current)/$e);(a||o)&&(pt.current=e);let l=e-pt.current>et?66:t.quality===3?32:48;(a||K.current||o||c<1||t.morphing||!r&&e-dt.current>=l)&&(t.draw({at:H.current,wall:e,effectWindow:W.current,effectGain:n?Math.min(1,Math.max(0,(W.current/(Math.max(1,n.domain.end-n.domain.start)*.002)-1.05)/1.6)):0,ambient:!r,fade:r?1:c,moving:U.current!==`idle`||o}),dt.current=e,K.current=!1),r||t.noteFrameInterval(i),a&&Ct(),Ie.current&&(!r||a||c<1||K.current||t.morphing)?q.current=requestAnimationFrame(wt):a||Ct(!0)},[Ct]),Z=(0,y.useCallback)(()=>{K.current=!0,Ie.current&&!q.current&&(q.current=requestAnimationFrame(wt))},[wt]),Tt=(0,y.useCallback)(()=>{let e=R.current;U.current===`opening`&&e&&(e.camera.tilt=X.current,e.camera.yaw=Y.current),U.current!==`idle`&&(U.current=`idle`,M(!1))},[]),Et=(0,y.useCallback)(e=>{let t=z.current;t&&(Tt(),V.current=Math.min(t.domain.end,Math.max(t.domain.start,e)),Ct(!0),Z())},[Ct,Tt,Z]),Dt=(0,y.useCallback)(()=>{let e=z.current;if(!e||!e.count)return;if(U.current!==`idle`){Tt(),Ct(!0),Z();return}let{start:t,end:n}=e.domain;V.current>=n-(n-t)*.002&&(V.current=t,H.current=t),U.current=`play`,M(!0),Z()},[Ct,Tt,Z]);(0,y.useLayoutEffect)(()=>{let e=xe.current;if(!e)return;let t=e.closest(`[data-feature-scroller]`);if(!t)return;let n=()=>{let n=t.clientWidth,r=Math.min(n-(n<=650?0:24)*2,1280),i=e.clientWidth;he(r>i?{width:r,offset:(i-r)/2}:{width:i,offset:0});let a=P.current;if(a){let e=a.getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop,r=t.clientHeight-e-He;_e(Math.round(Math.min(Ve,Math.max(n<=650?Be:ze,r))))}};n();let r=new ResizeObserver(n);return r.observe(t),r.observe(e),()=>r.disconnect()},[]),(0,y.useLayoutEffect)(()=>{let e=F.current;if(!e)return;let t=matchMedia(`(pointer: coarse)`).matches;yt.current=_();let n;try{n=new Le(e,{quality:ot(t)})}catch{return}n.camera.yaw=Y.current,R.current=n;let r=(e=!1)=>{let r=P.current;if(!r)return;let i=r.clientWidth,a=r.clientHeight,o=i>=720,s=I.current?.offsetHeight??0,c=ke.current?.offsetHeight??0;r.style.setProperty(`--evo-controls`,`${c}px`),mt.current||(X.current=o?Ye:Xe,U.current!==`opening`&&(n.camera.tilt=X.current)),n.resize(i,a,t?1.5:2);let l=o?0:Oe.current?.offsetHeight??0;n.setInsets({top:o?18:s+10,bottom:c+4+(l?l+4:0),left:o?28:6,right:o?28:6},{animate:e&&!yt.current}),K.current=!0,Ie.current&&(q.current&&cancelAnimationFrame(q.current),q.current=0,wt(performance.now()))};r(),_t.current=r;let i=new ResizeObserver(()=>r());return P.current&&i.observe(P.current),I.current&&i.observe(I.current),ke.current&&i.observe(ke.current),()=>{i.disconnect(),R.current=null}},[wt]),(0,y.useEffect)(()=>(Ie.current=xt,xt&&(ut.current=0,Z()),()=>{Ie.current=!1,q.current&&cancelAnimationFrame(q.current),q.current=0}),[xt,Z]),(0,y.useEffect)(()=>{let e=F.current;if(!e)return;let t=e=>{!e.ctrlKey&&!e.metaKey||(e.preventDefault(),R.current&&(gt.current=Math.min(2.6,Math.max(.72,gt.current*Math.exp(-e.deltaY*.0022))),Z()))};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[Z]),(0,y.useEffect)(()=>{let t=new AbortController;return T(!0),ae(``),v(e,t.signal).then(e=>{t.signal.aborted||(C(be(e)),T(!1))}).catch(e=>{t.signal.aborted||lt(e)||(ae(ct(e)),T(!1))}),()=>t.abort()},[e,t,O]);let Ot=(0,y.useMemo)(()=>{let e=S?.unit===`day`||S?.unit===`week`?{month:`short`,day:`numeric`}:{year:`numeric`,month:`short`};return new Intl.DateTimeFormat(x,e)},[x,S?.unit]),kt=(0,y.useMemo)(()=>new Intl.DateTimeFormat(x,{year:`numeric`,month:`long`,day:`numeric`}),[x]),At=(0,y.useMemo)(()=>new Intl.DateTimeFormat(x,{year:`numeric`,month:`2-digit`,day:`2-digit`}),[x]);(0,y.useEffect)(()=>{let e=R.current;e&&(e.setRingFormatter(e=>Ot.format(e)),K.current=!0)},[Ot]),(0,y.useEffect)(()=>{if(!S)return;let e=z.current,t=R.current,{start:n,end:r}=S.domain,i=r;if(e){let t=e.domain.end-e.domain.start;V.current>=e.domain.end-t*.002||(i=Math.min(r,Math.max(n,V.current))),U.current!==`idle`&&(U.current=`idle`,M(!1))}else!at&&!yt.current&&S.count>0&&(at=!0,U.current=`opening`,Pe.current=0,i=n,M(!0));z.current=S,V.current=i,H.current=i,W.current=(r-n)*.002;let a=performance.now();t?.setScene(S,{animate:!!e&&!yt.current,now:a})||(Fe.current=a),oe(i),ce(i),de(null),Ne.current=-1,Z()},[S,Z]);let Q=(0,y.useMemo)(()=>!S||!n?-1:S.indexById.get(n)??-1,[S,n]);(0,y.useEffect)(()=>{let e=R.current;Me.current=Q,e?.setSelection(Q);let t=z.current;t&&Q>=0?(ht.current=tt-t.theta[Q],V.current<t.appearAt[Q]&&Et(t.appearAt[Q])):ht.current=null,Z()},[Et,Q,Z]),(0,y.useEffect)(()=>{if(pe(null),!n)return;let e=new AbortController;return ne(n,e.signal).then(t=>{e.signal.aborted||pe(t)}).catch(()=>{}),()=>e.abort()},[n,t]);let jt=(0,y.useMemo)(()=>S&&Q>=0?we(S,Q):[],[S,Q]);(0,y.useLayoutEffect)(()=>{_t.current(!0),Z()},[jt,fe,Z]),(0,y.useEffect)(()=>{if(!n)return;let e=e=>{e.key!==`Escape`||e.defaultPrevented||document.querySelector(`[role="dialog"], [data-slot="popover-content"]`)||i(null)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[i,n]),(0,y.useEffect)(()=>{if(j)return;let e=window.setTimeout(()=>ce(A),700);return()=>window.clearTimeout(e)},[A,j]),(0,y.useEffect)(()=>{let e=Ae.current;if(!e)return;let t=new ResizeObserver(()=>ye(e.clientWidth));return t.observe(e),ye(e.clientWidth),()=>t.disconnect()},[]),(0,y.useEffect)(()=>{let e=L.current;!e||!S||!ve||Re(e,S,A,ve,rt)},[A,ve,S]);let Mt=(0,y.useMemo)(()=>S?Ce(S,A):{active:0,superseded:0,archived:0,known:0},[A,S]),Nt=(0,y.useMemo)(()=>S?Ce(S,se):Mt,[se,S,Mt]),$=!!S?.count,Pt=!S||A>=S.domain.end-(S.domain.end-S.domain.start)*.002,Ft=S?kt.format(A):``,It=b(`memory:memoryEvolution.stageLabel`,{date:S?kt.format(se):``,active:Nt.active,superseded:Nt.superseded,archived:Nt.archived}),Lt=e=>b(e===`decision`?`memory:memoryEvolution.typeDecision`:e===`preference`?`memory:memoryEvolution.typePreference`:e===`fact`?`memory:memoryEvolution.typeFact`:e===`risk`?`memory:memoryEvolution.typeRisk`:e===`file`?`memory:memoryEvolution.typeFile`:e===`task`?`memory:memoryEvolution.typeTask`:`memory:memoryEvolution.typeConcept`),Rt=e=>b(e===`superseded`?`memory:memoryEvolution.superseded`:e===`archived`?`memory:memoryEvolution.archived`:e===`hidden`?`memory:memoryEvolution.notYet`:`memory:memoryEvolution.active`),zt=e=>{let t=e.target,n=!!t.closest(`[data-slot="segmented-control"], [data-slot="popover-content"]`);if(e.key===` `){if(t.closest(`button, a, [role="radio"]`))return;e.preventDefault(),Dt();return}let r=z.current;if(!r||!r.count||n)return;let i=(r.domain.end-r.domain.start)*(e.shiftKey?.05:.01),a=null;e.key===`ArrowLeft`?a=V.current-i:e.key===`ArrowRight`?a=V.current+i:e.key===`Home`?a=r.domain.start:e.key===`End`&&(a=r.domain.end),a!==null&&(e.preventDefault(),e.stopPropagation(),Et(a))},Bt=e=>{e.button===0&&(vt.current={id:e.pointerId,x:e.clientX,y:e.clientY,lastX:e.clientX,lastY:e.clientY,moved:!1},e.currentTarget.setPointerCapture?.(e.pointerId))},Vt=e=>{let t=R.current;if(!t)return;let n=vt.current;if(n&&n.id===e.pointerId){let r=e.clientX-n.lastX,i=e.clientY-n.lastY;if(!n.moved&&Math.hypot(e.clientX-n.x,e.clientY-n.y)<5)return;n.moved=!0,ht.current=null,n.lastX=e.clientX,n.lastY=e.clientY,Y.current+=r*.0062,e.pointerType===`mouse`&&(mt.current=!0,X.current=Math.min(1.16,Math.max(0,X.current-i*.0042)),t.camera.tilt=X.current),U.current===`opening`&&Tt(),Ne.current=-1,t.setHover(-1),de(null),Z();return}if(e.pointerType!==`mouse`)return;let r=e.currentTarget.getBoundingClientRect(),i=e.clientX-r.left,a=e.clientY-r.top,o=t.pick(i,a,15,H.current);o!==Ne.current&&(Ne.current=o,t.setHover(o),Z()),de(o>=0?{index:o,x:i,y:a}:null)},Ht=e=>{let t=vt.current;vt.current=null;let n=R.current;if(!n||!z.current||!t||t.moved)return;let r=e.currentTarget.getBoundingClientRect(),a=n.pick(e.clientX-r.left,e.clientY-r.top,e.pointerType===`mouse`?16:28,H.current);i(a>=0?z.current.facts[a].id:null)},Ut=()=>{Ne.current>=0&&(Ne.current=-1,R.current?.setHover(-1),Z()),de(null)},Wt=()=>{let e=R.current;e&&(gt.current=1,mt.current=!1,X.current=(P.current?.clientWidth??800)>=720?Ye:Xe,e.camera.tilt=X.current,Z())},Gt=N&&S?S.facts[N.index]:null,Kt=(0,y.useMemo)(()=>{let e=new Map;fe?.item&&e.set(fe.item.id,fe.item.content);for(let t of fe?.history||[])e.set(t.id,t.content);return e},[fe]),qt=e=>(0,J.jsx)(p,{size:`sm`,className:e,"aria-label":b(`memory:memoryEvolution.speed`),value:le,onValueChange:e=>{B.current=e,ue(e)},options:qe.map(e=>({value:e,label:`${e}×`}))}),Jt=me?.width??null,Yt=(()=>{if(!N)return;let e=P.current?.clientWidth??800,t=P.current?.clientHeight??600;return{left:Math.min(e-272,N.x+16),...N.y>t-150?{bottom:t-N.y+16}:{top:N.y+16}}})();return(0,J.jsx)(`div`,{ref:xe,className:`min-w-0`,children:(0,J.jsxs)(`div`,{ref:St,role:`group`,"aria-label":b(`memory:memoryEvolution.regionLabel`),"data-memory-evolution":!0,"data-at":S?new Date(A).toISOString():void 0,"data-active-count":Mt.active,"data-playing":j||void 0,onKeyDownCapture:zt,style:{...Ue,...Jt?{width:Jt,marginLeft:me?.offset??0}:{},...ge?{height:ge}:{}},className:`@container relative isolate h-[clamp(560px,calc(100dvh-196px),880px)] overflow-hidden rounded-xl bg-[var(--evo-base)] text-content select-none max-[650px]:h-[clamp(540px,calc(100dvh-132px),780px)] max-[650px]:rounded-none`,children:[(0,J.jsx)(`canvas`,{ref:F,role:`img`,"aria-label":It,tabIndex:0,onPointerDown:Bt,onPointerMove:Vt,onPointerUp:Ht,onPointerCancel:()=>{vt.current=null},onPointerLeave:Ut,onDoubleClick:Wt,className:`absolute inset-0 size-full cursor-grab touch-pan-y outline-none focus-visible:ring-2 focus-visible:ring-focus focus-visible:ring-inset active:cursor-grabbing`}),(0,J.jsx)(`div`,{className:`sr-only`,"aria-live":`polite`,role:`status`,children:S&&!j?It:``}),(0,J.jsxs)(`div`,{ref:I,className:`pointer-events-none absolute top-5 left-6 z-10 flex max-w-[min(70%,420px)] flex-col gap-1.5 @max-[719px]:top-3.5 @max-[719px]:right-4 @max-[719px]:left-4 @max-[719px]:max-w-none`,children:[(0,J.jsxs)(`div`,{className:`flex items-baseline gap-2.5`,children:[$&&(0,J.jsx)(`span`,{"data-memory-evolution-date":!0,className:`text-[30px] leading-9 font-light tracking-[-0.015em] text-content tabular-nums @max-[719px]:text-2xl @max-[719px]:leading-8`,children:Ft}),$&&Pt&&(0,J.jsx)(`span`,{className:`text-xs text-[var(--evo-active)]`,children:b(`memory:memoryEvolution.now`)})]}),$&&(0,J.jsxs)(`dl`,{className:`flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-content-muted tabular-nums`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`size-1.5 rounded-full bg-[var(--evo-active)] shadow-[0_0_8px_var(--evo-active)]`}),(0,J.jsx)(`dt`,{children:b(`memory:memoryEvolution.active`)}),(0,J.jsx)(`dd`,{"data-memory-evolution-active":!0,className:`font-medium text-content`,children:Mt.active})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`size-1.5 rounded-full`,style:{backgroundColor:We,boxShadow:`0 0 8px ${We}`}}),(0,J.jsx)(`dt`,{children:b(`memory:memoryEvolution.superseded`)}),(0,J.jsx)(`dd`,{className:`font-medium text-content`,children:Mt.superseded})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`size-1.5 rounded-full`,style:{backgroundColor:Ge}}),(0,J.jsx)(`dt`,{children:b(`memory:memoryEvolution.archived`)}),(0,J.jsx)(`dd`,{className:`font-medium text-content`,children:Mt.archived})]})]}),S?.truncated&&(0,J.jsx)(`p`,{className:`m-0 text-xs text-content-faint`,children:b(`memory:memoryEvolution.truncated`,{count:S.count})}),D&&S&&(0,J.jsx)(`p`,{className:`m-0 text-xs text-danger`,children:D})]}),$&&Q<0&&(0,J.jsx)(`ul`,{"aria-label":b(`memory:memoryEvolution.legend`),className:`pointer-events-none absolute top-1/2 right-6 z-10 hidden -translate-y-[62%] list-none flex-col gap-1.5 p-0 text-[11px] text-content-muted @min-[880px]:flex`,children:E.map(e=>(0,J.jsxs)(`li`,{className:`flex items-center justify-end gap-2`,children:[Lt(e),(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`size-1.5 rounded-full`,style:{backgroundColor:G(je[e]),boxShadow:`0 0 7px ${G(je[e])}`}})]},e))}),$&&(0,J.jsx)(`div`,{className:`absolute top-3.5 right-4 z-10 @max-[719px]:top-2.5 @max-[719px]:right-2.5`,children:(0,J.jsxs)(d,{children:[(0,J.jsx)(l,{asChild:!0,children:(0,J.jsx)(g,{variant:`ghost`,size:`icon-sm`,"aria-label":b(`memory:memoryEvolution.howToRead`),title:b(`memory:memoryEvolution.howToRead`),children:(0,J.jsx)(a,{"aria-hidden":`true`})})}),(0,J.jsxs)(u,{align:`end`,className:`w-80 gap-2 text-xs`,children:[(0,J.jsx)(`p`,{className:`m-0 leading-relaxed`,children:b(`memory:memoryEvolution.howToReadBody`)}),(0,J.jsx)(`ul`,{className:`m-0 grid list-none grid-cols-2 gap-x-3 gap-y-1 p-0`,children:E.map(e=>(0,J.jsxs)(`li`,{className:`flex items-center gap-2 text-content-secondary`,children:[(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`size-2 rounded-full`,style:{backgroundColor:G(je[e])}}),Lt(e)]},e))}),(0,J.jsx)(`p`,{className:`m-0 leading-relaxed text-content-muted`,children:b(`memory:memoryEvolution.gestures`)})]})]})}),Gt&&N&&S&&N.index!==Q&&(0,J.jsxs)(`div`,{role:`tooltip`,"data-memory-evolution-tooltip":!0,style:Yt,className:`pointer-events-none absolute z-20 flex w-max max-w-64 flex-col gap-0.5 rounded-md border border-[var(--evo-line)] bg-[var(--evo-panel)] px-2.5 py-1.5 text-xs backdrop-blur-md`,children:[(0,J.jsx)(`strong`,{className:`line-clamp-2 font-medium text-content`,children:Gt.title}),(0,J.jsxs)(`span`,{className:`text-content-muted tabular-nums`,children:[Lt(Gt.type),` · `,At.format(S.validAt[N.index]),` ·`,` `,Rt(Se(S,N.index,A))]}),!!(S.flags[N.index]&4)&&(0,J.jsx)(`span`,{className:`text-content-muted tabular-nums`,children:b(`memory:memoryEvolution.learnedLate`,{date:At.format(S.appearAt[N.index])})})]}),S&&Q>=0&&(0,J.jsxs)(`section`,{ref:Oe,"data-memory-evolution-card":!0,"aria-label":S.facts[Q].title,className:`absolute top-14 right-4 z-20 flex max-h-[calc(100%-230px)] w-[320px] flex-col gap-2 overflow-y-auto rounded-lg border border-[var(--evo-line)] bg-[var(--evo-panel)] p-3 backdrop-blur-md @max-[719px]:top-auto @max-[719px]:right-2.5 @max-[719px]:bottom-[calc(var(--evo-controls,160px)+4px)] @max-[719px]:left-2.5 @max-[719px]:max-h-[32%] @max-[719px]:w-auto`,children:[(0,J.jsxs)(`header`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[(0,J.jsx)(`h3`,{className:`m-0 min-w-0 text-[13px] leading-5 font-medium break-words text-content`,children:S.facts[Q].title}),(0,J.jsx)(g,{variant:`ghost`,size:`icon-sm`,className:`-mt-1 -mr-1 flex-none`,"aria-label":b(`memory:memoryEvolution.closeCard`),onClick:()=>i(null),children:(0,J.jsx)(c,{"aria-hidden":`true`})})]}),(0,J.jsxs)(`p`,{className:`m-0 flex flex-wrap gap-x-2 text-[11px] text-content-muted`,children:[(0,J.jsx)(`span`,{children:Lt(S.facts[Q].type)}),!!(S.flags[Q]&1)&&(0,J.jsx)(`span`,{children:b(`memory:memoryEvolution.pinned`)}),!!(S.flags[Q]&2)&&(0,J.jsx)(`span`,{children:b(`memory:memoryEvolution.untrusted`)}),!!(S.flags[Q]&8)&&(0,J.jsx)(`span`,{children:b(`memory:memoryEvolution.stale`)})]}),(0,J.jsx)(`ol`,{className:`m-0 flex list-none flex-col gap-0.5 p-0`,children:jt.map(e=>{let t=S.facts[e],n=Se(S,e,A),r=Kt.get(t.id);return(0,J.jsx)(`li`,{children:(0,J.jsxs)(`button`,{type:`button`,"aria-current":e===Q||void 0,onClick:()=>{Et(S.appearAt[e]),i(t.id)},className:m(`flex w-full min-w-0 flex-col gap-0.5 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-focus focus-visible:outline-none pointer-coarse:min-h-11`,e===Q&&`bg-surface-muted`),children:[(0,J.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[11px] text-content-muted tabular-nums`,children:[(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`size-1.5 flex-none rounded-full`,style:{backgroundColor:n===`superseded`?We:n===`archived`?Ge:G(je[t.type]??je.concept)}}),At.format(S.validAt[e]),` · `,Rt(n)]}),(0,J.jsx)(`span`,{className:`line-clamp-3 text-xs leading-[1.45] break-words text-content-soft`,children:r||t.title})]})},t.id)})})]}),S&&!$&&(0,J.jsx)(`div`,{className:`absolute inset-x-0 bottom-5 z-10 flex justify-center px-6`,children:(0,J.jsx)(te,{compact:!0,illustration:(0,J.jsx)(`span`,{}),title:b(`memory:memoryEvolution.emptyTitle`),description:b(`memory:memoryEvolution.emptyDescription`)})}),!S&&w&&(0,J.jsx)(`div`,{role:`status`,className:`absolute inset-0 z-10 grid place-items-center text-xs text-content-muted`,children:(0,J.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(h,{className:`size-4`}),b(`memory:memoryEvolution.loading`)]})}),!S&&!w&&D&&(0,J.jsx)(`div`,{className:`absolute inset-0 z-10 grid place-items-center`,children:(0,J.jsx)(ee,{kind:`error`,title:b(`memory:memoryEvolution.loadFailed`),description:D,action:(0,J.jsx)(g,{variant:`secondary`,className:`max-[650px]:h-11`,onClick:()=>k(e=>e+1),children:b(`memory:memoryEvolution.retry`)})})}),(0,J.jsx)(`div`,{ref:ke,className:m(`absolute inset-x-0 bottom-0 z-10 bg-gradient-to-t from-[var(--evo-scrim)] via-[var(--evo-scrim)] via-40% to-[var(--evo-scrim-clear)] px-5 pt-7 pb-3.5 @max-[719px]:px-3 @max-[719px]:pt-5 @max-[719px]:pb-3`,!$&&`invisible`),children:(0,J.jsxs)(`div`,{className:`flex items-end gap-3 @max-[719px]:flex-col @max-[719px]:items-stretch @max-[719px]:gap-1`,children:[(0,J.jsxs)(`div`,{className:`flex flex-none items-center gap-1 pb-1 @max-[719px]:order-2 @max-[719px]:justify-between @max-[719px]:pb-0`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(g,{variant:`ghost`,size:`icon`,"data-memory-evolution-play":!0,className:`max-[650px]:size-11`,"aria-label":b(j?`memory:memoryEvolution.pause`:`memory:memoryEvolution.play`),title:b(j?`memory:memoryEvolution.pause`:`memory:memoryEvolution.play`),disabled:!$,onClick:Dt,children:j?(0,J.jsx)(o,{"aria-hidden":`true`}):(0,J.jsx)(s,{"aria-hidden":`true`})}),(0,J.jsxs)(g,{variant:`ghost`,size:`sm`,"data-memory-evolution-now":!0,className:`aria-disabled:opacity-50 max-[650px]:h-11`,"aria-disabled":!$||Pt&&!j,onClick:()=>{S&&!(Pt&&!j)&&Et(S.domain.end)},children:[(0,J.jsx)(re,{"aria-hidden":`true`}),b(`memory:memoryEvolution.backToNow`)]})]}),qt(`hidden @max-[719px]:inline-flex`)]}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1 @max-[719px]:order-1`,children:[(0,J.jsx)(`div`,{ref:Ae,"aria-hidden":`true`,style:{marginLeft:it,marginRight:it,height:rt},children:(0,J.jsx)(`canvas`,{ref:L,className:`block size-full`})}),S&&(0,J.jsx)(f,{"aria-label":b(`memory:memoryEvolution.timelineLabel`),valueText:Ft,min:0,max:1e3,step:1,value:[Ee(S.domain,A)],disabled:!$,className:`h-5 pointer-coarse:h-11 max-[650px]:h-11`,onValueChange:([e])=>Et(Te(S.domain,e))}),S&&(0,J.jsxs)(`div`,{"aria-hidden":`true`,className:`flex justify-between px-[7px] text-[11px] text-content-faint tabular-nums`,children:[(0,J.jsx)(`span`,{children:At.format(S.domain.start)}),(0,J.jsx)(`span`,{children:At.format(S.domain.end)})]})]}),qt(`mb-1 flex-none @max-[719px]:hidden`)]})})]})})}export{ut as MemoryEvolution,ut as default};
|