pisper 0.6.20 → 0.6.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/package.json +5 -5
  2. package/web/.vite/manifest.json +550 -550
  3. package/web/assets/{AppDialog-BKTqwx46.js → AppDialog-CyOinq_c.js} +1 -1
  4. package/web/assets/{AppOverlays-DEYd3Zud.js → AppOverlays-tniCecGA.js} +1 -1
  5. package/web/assets/{AssetsPage-BsIG0e5H.js → AssetsPage-DYFCPNhU.js} +1 -1
  6. package/web/assets/{BoardPage-CgbOwsbF.js → BoardPage-Dp-FZv-N.js} +3 -3
  7. package/web/assets/{ChannelsPage-C9eEdxbz.js → ChannelsPage-vBRUJEhU.js} +1 -1
  8. package/web/assets/{ChatAppearancePage-CBnvknpv.js → ChatAppearancePage-DH4LSb0w.js} +1 -1
  9. package/web/assets/{ChatHistoryPage-Bq-_Qawn.js → ChatHistoryPage-ChspTm6r.js} +1 -1
  10. package/web/assets/ChatPage-DvU-p808.js +553 -0
  11. package/web/assets/{ConfigPage-D44C5I7w.js → ConfigPage-CFFaLkKD.js} +2 -2
  12. package/web/assets/{DesktopWindowControls-DGhN5dWj.js → DesktopWindowControls-Cz0mpg2c.js} +1 -1
  13. package/web/assets/{FeaturePage-B3PLRtEG.js → FeaturePage-DT_WfUIg.js} +1 -1
  14. package/web/assets/{FileAttachmentPreview-fSmyWf24.js → FileAttachmentPreview-yuCLHoKm.js} +1 -1
  15. package/web/assets/{FloatingWidgets-C1_4vp7k.js → FloatingWidgets-D-48zs1T.js} +1 -1
  16. package/web/assets/{FocusRuntimeControls-DraooZz_.js → FocusRuntimeControls-D61-BVTV.js} +1 -1
  17. package/web/assets/{GitDiffViewer-XzdYQWbX.js → GitDiffViewer-DWHHRnjQ.js} +1 -1
  18. package/web/assets/{ManageProjectsDialog-BlXjm1PQ.js → ManageProjectsDialog-B_0l-_Th.js} +1 -1
  19. package/web/assets/{MarkdownMessage-B-IixrQ3.js → MarkdownMessage-zaqhqJ44.js} +1 -1
  20. package/web/assets/{McpPage-D0Zmfgbq.js → McpPage-CuOr94Lo.js} +1 -1
  21. package/web/assets/{MemoryPage-DgZ7cL70.js → MemoryPage-CI_OOJh3.js} +1 -1
  22. package/web/assets/{MobileNavigation-BIt1CBum.js → MobileNavigation-CpOrDVyY.js} +1 -1
  23. package/web/assets/{MorePage-BZ4iZ1n_.js → MorePage-CP0ptgQR.js} +1 -1
  24. package/web/assets/{NewFolderDialog-W9wLUVXP.js → NewFolderDialog-wwAp2HUt.js} +1 -1
  25. package/web/assets/{PageHeader-DcCyaFp0.js → PageHeader-CbiN6zVm.js} +1 -1
  26. package/web/assets/{PhoneDrawer-B_eKy4tt.js → PhoneDrawer-DN3UBXYe.js} +1 -1
  27. package/web/assets/{PhoneMenuButton-CBT0H1Cn.js → PhoneMenuButton-BMgvbvez.js} +1 -1
  28. package/web/assets/{PhoneTopBar-Czpvw2ML.js → PhoneTopBar-DFtEfuO6.js} +1 -1
  29. package/web/assets/{PluginsPage-wk5WpJ7Z.js → PluginsPage-CPkH6yN9.js} +1 -1
  30. package/web/assets/{SafeModePrompt-Dtq5wVfV.js → SafeModePrompt-vZ-kg03s.js} +1 -1
  31. package/web/assets/{SchedulesPage-BtRe2Qht.js → SchedulesPage-BQBk-HJm.js} +1 -1
  32. package/web/assets/{SessionBrowserPane-D2Z-J6tl.js → SessionBrowserPane-CC0qsCP9.js} +2 -2
  33. package/web/assets/{SessionContextPanel-Cg8AW4l1.js → SessionContextPanel-CyPu1SIQ.js} +2 -2
  34. package/web/assets/{SessionHome-DIpyJQVn.js → SessionHome-C2xp5_yM.js} +1 -1
  35. package/web/assets/{SessionInspector-DdpBBhNr.js → SessionInspector-D362Va6Y.js} +1 -1
  36. package/web/assets/{SessionShell-ocBFDevg.js → SessionShell-BmsJM64n.js} +1 -1
  37. package/web/assets/{SettingsSidebar-CP5t-q0e.js → SettingsSidebar-B7qnN1dq.js} +1 -1
  38. package/web/assets/{ShortcutHelpDialog-BOcP90RU.js → ShortcutHelpDialog-BzWvhRT2.js} +1 -1
  39. package/web/assets/{ShortcutKeys-CBl2x5Yl.js → ShortcutKeys-Cg-wl3yb.js} +1 -1
  40. package/web/assets/{SidebarUpdateStatus-CqZx7khD.js → SidebarUpdateStatus-B-MIuH8f.js} +1 -1
  41. package/web/assets/{SkillsPage-BGyMMq-9.js → SkillsPage-BowfELnZ.js} +1 -1
  42. package/web/assets/{TaskProcessesPane-B43p2Dvr.js → TaskProcessesPane-DGikk1nH.js} +1 -1
  43. package/web/assets/{TaskTerminalView-BMjmp-4_.js → TaskTerminalView-BjR4vuZI.js} +1 -1
  44. package/web/assets/{TerminalPanel-CH2-Yc1F.js → TerminalPanel-ZXcyyLBu.js} +1 -1
  45. package/web/assets/{WebDesktopPet-Fy9xj1bh.js → WebDesktopPet-CrUcp9Ym.js} +1 -1
  46. package/web/assets/{WorkflowsPage-DvZsyJSV.js → WorkflowsPage-CTKpPFrC.js} +1 -1
  47. package/web/assets/{WorkspacePicker-LbBXFH77.js → WorkspacePicker-CROSQVzJ.js} +1 -1
  48. package/web/assets/{api-m-Yq8n0q.js → api-CIB7ZPX3.js} +1 -1
  49. package/web/assets/{app-update-DVn3toIR.js → app-update-B6njQMB7.js} +1 -1
  50. package/web/assets/{approval-confirm-Ch86qdyC.js → approval-confirm-D2B0tMFE.js} +1 -1
  51. package/web/assets/{board-projects-KHcPQYWz.js → board-projects-Ca61ZKPH.js} +1 -1
  52. package/web/assets/{bots-store-BMcWJ2Gm.js → bots-store-BG81qEJz.js} +1 -1
  53. package/web/assets/{chat-api-DgJdhfOP.js → chat-api-aEirz9it.js} +1 -1
  54. package/web/assets/{client-store-BkVlLM-4.js → client-store-BSqTT-c2.js} +1 -1
  55. package/web/assets/{config-search-BqYT_Xre.js → config-search-DdXAm7PX.js} +1 -1
  56. package/web/assets/{dialog-5MLAAE-f.js → dialog-D1TVm0d6.js} +1 -1
  57. package/web/assets/{events-B0F69Vd3.js → events-CrT7ie40.js} +1 -1
  58. package/web/assets/{folder-paths-CdOS1VLF.js → folder-paths-BuiyvlAk.js} +1 -1
  59. package/web/assets/{hosts-CoGHAtF9.js → hosts-CpFGDuNR.js} +1 -1
  60. package/web/assets/i18n-CXRjs9ow.js +1 -0
  61. package/web/assets/{index-DmohsuQg.js → index-DcTDwezs.js} +2 -2
  62. package/web/assets/{mount-app-Cr5Uq-cP.js → mount-app-DhHe93-u.js} +3 -3
  63. package/web/assets/{permission-rules-api-CAxfABVR.js → permission-rules-api-Ch3fRXTD.js} +1 -1
  64. package/web/assets/{pick-system-directory-ByTVOp-v.js → pick-system-directory-B8aZR2BS.js} +1 -1
  65. package/web/assets/{placements-CuVM9Xxs.js → placements-5hgUqGzE.js} +2 -2
  66. package/web/assets/{popover-DUWwlhPy.js → popover-BMTgTASl.js} +1 -1
  67. package/web/assets/{public-CWbnixwI.js → public-BTvrDX6E.js} +1 -1
  68. package/web/assets/{public-CGbDaxd0.js → public-BZlIDP6h.js} +1 -1
  69. package/web/assets/{public-B00uoqCB.js → public-DTq_JyXj.js} +2 -2
  70. package/web/assets/{public-components-DGfACSCk.js → public-components-DUa3En6P.js} +1 -1
  71. package/web/assets/public-diff-DEL93aov.js +1 -0
  72. package/web/assets/public-events-BiaqrDkZ.js +1 -0
  73. package/web/assets/{public-flags-BRenaSzJ.js → public-flags-DEs9Uj_y.js} +1 -1
  74. package/web/assets/{public-session-BeSwdD6a.js → public-session-CXzhUUNr.js} +1 -1
  75. package/web/assets/{public-sidebar-CAWnINZG.js → public-sidebar-CJVnP7HU.js} +1 -1
  76. package/web/assets/{runtime-capabilities-store-DWW9jolt.js → runtime-capabilities-store-DpEKnn1b.js} +1 -1
  77. package/web/assets/{safe-mode-instance-65Kg_IPn.js → safe-mode-instance-CVh0Lclx.js} +1 -1
  78. package/web/assets/safe-mode-sentinel-Bm4e075H.js +1 -0
  79. package/web/assets/{session-change-summary-api-CbVgbX2o.js → session-change-summary-api-sn-ejt4H.js} +1 -1
  80. package/web/assets/{session-home-LwsMdqJu.js → session-home-DBefA-JE.js} +1 -1
  81. package/web/assets/{session-organization-api-BmX-aNPa.js → session-organization-api-BFW_7Myv.js} +1 -1
  82. package/web/assets/{session-scope-Bz6CeMq0.js → session-scope-P-D-Ssd4.js} +1 -1
  83. package/web/assets/{session-tree-actions-BLL1s_Ws.js → session-tree-actions-DZ5-Z8_F.js} +1 -1
  84. package/web/assets/{session-tree-summary-BfRtAGwx.js → session-tree-summary-Dljblf8P.js} +1 -1
  85. package/web/assets/{shortcuts-Cgx6V2jI.js → shortcuts-DXHroTTi.js} +1 -1
  86. package/web/assets/{side-chat-context-Cm84nqzk.js → side-chat-context-6tf1Gx5C.js} +4 -4
  87. package/web/assets/{sidebar-C0AjfIUc.js → sidebar-PuiNlAmD.js} +1 -1
  88. package/web/assets/{sidebar-store-BhEocW8t.js → sidebar-store-CbyxBthc.js} +1 -1
  89. package/web/assets/{speech-session-BI_qH5Lw.js → speech-session-B3-i8f64.js} +1 -1
  90. package/web/assets/{startup-queries-Cevfi-_Z.js → startup-queries-CceboYee.js} +1 -1
  91. package/web/assets/{use-i18n-Cyg5th6Z.js → use-i18n-B2p84ZNR.js} +1 -1
  92. package/web/assets/{use-open-bot-HoswiH7t.js → use-open-bot-CgFlDm0x.js} +1 -1
  93. package/web/assets/{use-studio-actions-CGzcb2Fx.js → use-studio-actions-DM2CAaXR.js} +1 -1
  94. package/web/assets/{useCatalogProjects-hKlUioWa.js → useCatalogProjects-laY-U3Br.js} +1 -1
  95. package/web/assets/{useNewProjectPicker-C9X_vJdU.js → useNewProjectPicker-rhLvXi27.js} +2 -2
  96. package/web/assets/{useNow-BBVE-LCR.js → useNow-DYvbFah-.js} +1 -1
  97. package/web/assets/{usePhoneShell-CDP-O4Gc.js → usePhoneShell-BSkh5GND.js} +1 -1
  98. package/web/assets/{useSessionListQuery-BpWfS-tU.js → useSessionListQuery-CHbg2lM2.js} +1 -1
  99. package/web/assets/{useSessionRowActions-Dd5ulVpS.js → useSessionRowActions-CO4u1xCd.js} +1 -1
  100. package/web/assets/{useSidebarModel-uxFT2LRy.js → useSidebarModel-V_SZjKZH.js} +1 -1
  101. package/web/assets/{web-preview-Bo8YMR-t.js → web-preview-CR8GMArR.js} +1 -1
  102. package/web/assets/{web-preview-events-DIPJR6oR.js → web-preview-events-DUqovP-L.js} +1 -1
  103. package/web/assets/{workspace-order-store-DshLVZf8.js → workspace-order-store-CK1RETHt.js} +1 -1
  104. package/web/index.html +1 -1
  105. package/web/assets/ChatPage-Bwn6Qfok.js +0 -553
  106. package/web/assets/i18n-Du-JO3Qx.js +0 -1
  107. package/web/assets/public-diff-DIMQ2JTm.js +0 -1
  108. package/web/assets/public-events-CxK6EdoY.js +0 -1
  109. package/web/assets/safe-mode-sentinel-CIemi_6b.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t}from"./vendor-router-CSN_DGvx.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{f as i}from"./routes-DIeaqWVc.js";import{t as a}from"./use-i18n-Cyg5th6Z.js";import{t as o}from"./chevron-right-C3t2Rckj.js";import{t as s}from"./pin-CU0FG0lI.js";import{t as c}from"./rotate-ccw-clock-CO6Bw-sF.js";import{t as l}from"./utils-C8uzG5AZ.js";import{c as u,g as d}from"./shortcuts-Cgx6V2jI.js";import{t as f}from"./sidebar-store-BhEocW8t.js";import{r as p}from"./useSessionListQuery-BpWfS-tU.js";import{f as m,l as h,n as g,r as _,s as v}from"./useNow-BBVE-LCR.js";import{n as y}from"./card-presentation-1oph2b8P.js";import{t as b}from"./useSidebarModel-uxFT2LRy.js";import{t as x}from"./StatusGlyph-1KgitlUg.js";import{a as S,c as C,d as w,i as T,l as E,n as D,o as O,r as k,s as A,t as j}from"./useSessionRowActions-Dd5ulVpS.js";import{n as M}from"./BotAvatar-CNL-APwP.js";import{t as N}from"./shortcut-aria-jHRmld9z.js";import{t as P}from"./sidebar-commands-ZA1UOA_F.js";var F=e(n(),1);function I(e){let t=v(e);return t.some(e=>e.kind===`failed`)?`failed`:t.some(e=>e.kind===`approval`||e.kind===`question`)?`waiting`:e.lane===`running`?`running`:e.lane===`done`?`done`:`other`}function L(e,t){let n=new Map,r=[];for(let i of t){if(!i||typeof i.id!=`string`||!i.id||n.has(i.id))continue;let t=I(i);if(n.set(i.id,t),!e)continue;let a=e.get(i.id);t!==a&&(t===`waiting`?r.push({kind:`waiting`,id:i.id,title:i.title}):t===`failed`&&(a===`running`||a===`waiting`)?r.push({kind:`failed`,id:i.id,title:i.title}):t===`done`&&(a===`running`||a===`waiting`)&&r.push({kind:`finished`,id:i.id,title:i.title}))}return{snapshot:n,alerts:r}}function R(e){let t=Date.parse(e.modified||``);return Number.isFinite(t)?t:null}function z(e,{items:t,shownIds:n,currentId:r,limit:i=8}){let a=new Map(t.map(e=>[e.id,e])),o=new Set,s=[];for(let t of e){if(!t||typeof t.id!=`string`||!t.id||o.has(t.id)||(o.add(t.id),t.archived===!0||n.has(t.id))||t.botId||typeof t.messageCount==`number`&&t.messageCount<=0&&t.id!==r)continue;let e=a.get(t.id);s.push({group:`recent`,id:t.id,title:p(t),...e?.bot?{bot:e.bot}:{},status:e?.status??`done`,pinned:t.pinned===!0,glyph:e?y(e):`done`,at:R(t),unread:t.unread===!0})}s.sort((e,t)=>Number(t.pinned)-Number(e.pinned)||(t.at??-1/0)-(e.at??-1/0)||(e.id<t.id?-1:+(e.id>t.id)));let c=s.filter((e,t)=>t<i||e.id===r);return{rows:c,hidden:s.length-c.length}}function B(e){return e.groups.filter(e=>e.id===`attention`||e.id===`running`||e.id===`queued`&&e.count>0)}function V(e,t,n,r){let i=(0,F.useMemo)(()=>new Set(B(e).flatMap(e=>e.rows.map(e=>e.id))),[e]);return(0,F.useMemo)(()=>z(n??[],{items:t,shownIds:i,currentId:r}),[r,t,n,i])}var H=r(),U=160,W=600;function ee(e,t){switch(t){case`attention`:return e(`board:sidebar.group.attention`);case`running`:return e(`board:sidebar.group.running`);case`queued`:return e(`board:sidebar.group.queued`);case`pinned`:return e(`board:sidebar.group.pinned`);default:return e(`board:sidebar.group.done`)}}function G(e){return e?[...e.querySelectorAll(`[data-sidebar-row]`)]:[]}function K(e,t={}){q(()=>e(G(document.querySelector(`[data-sidebar-groups]`))),t)}function q(e,{unclaimed:t=!1}={}){let n=0,r=()=>{let i=document.activeElement;if(t&&i&&i!==document.body&&!i.closest(`[data-shell-sidebar]`))return;let a=e();if(a){a.focus(),a.scrollIntoView?.({block:`nearest`});return}(n+=1)<20&&requestAnimationFrame(r)};requestAnimationFrame(r)}function J({resolveCurrentId:e,renderedSessionId:t,onOpenSession:n,onWaiting:r,onAlerts:i}){let{t:o}=a(),{model:s,items:c,sessions:l,isLoading:u}=b(),d=(0,F.useRef)(i);d.current=i;let p=(0,F.useRef)(null);(0,F.useEffect)(()=>{if(u)return;let{snapshot:e,alerts:t}=L(p.current,c);p.current=e,t.length&&d.current?.(t)},[c,u]);let m=V(s,c,l,t??``),h=(0,F.useRef)(s);h.current=s;let g=(0,F.useRef)([]);g.current=[...B(s).flatMap(e=>e.rows.map(e=>e.id)),...m.rows.map(e=>e.id)];let v=(0,F.useRef)({resolveCurrentId:e,onOpenSession:n});v.current={resolveCurrentId:e,onOpenSession:n},(0,F.useEffect)(()=>{let e=e=>{let t=e.detail;if(!t)return;let n=h.current;if(t.kind===`adjacent`){let e=_(g.current,v.current.resolveCurrentId()||null,t.direction);e&&v.current.onOpenSession(e);return}let r=f.getState();if(document.documentElement.hasAttribute(`data-phone-shell`)){let e=t.kind===`focus-attention`?n.longestWaitingId:v.current.resolveCurrentId();if(t.kind===`focus-attention`&&!e)return;r.setDrawerOpen(!0),K(n=>n.find(t=>t.dataset.sidebarRow===e)??(t.kind===`focus-list`?n[0]:void 0));return}let i=document.querySelector(`[data-settings-sidebar]`);if(i){let e=t.kind===`focus-attention`?`[data-sidebar-fleet-line]`:`[data-settings-section][aria-current="page"]`;q(()=>i.querySelector(e)??void 0);return}let a=document.querySelector(`[data-overview]`);if(t.kind===`focus-attention`){let e=n.longestWaitingId;if(!e)return;if(a){w(e);return}r.collapsed&&r.setPeeking(!0),K(t=>t.find(t=>t.dataset.sidebarRow===e));return}r.collapsed&&r.setPeeking(!0);let o=v.current.resolveCurrentId();K(e=>e.find(e=>e.dataset.sidebarRow===o)??e[0])};return window.addEventListener(P,e),()=>window.removeEventListener(P,e)},[]);let y=(0,F.useRef)(t),x=(0,F.useRef)(null);(0,F.useEffect)(()=>{let e=y.current;if(y.current=t,t===null){e&&(x.current=e);return}if(e!==null)return;let n=x.current;x.current=null,!(!n||n!==t||f.getState().collapsed)&&K(e=>e.find(e=>e.dataset.sidebarRow===n),{unclaimed:!0})},[t]);let S=(0,F.useRef)(r);S.current=r;let T=(0,F.useRef)(null),[E,D]=(0,F.useState)(``);return(0,F.useEffect)(()=>{if(u)return;let e=s.groups.find(e=>e.id===`attention`)?.rows??[],t=T.current;if(T.current=new Set(e.map(e=>e.id)),!t)return;let n=e.filter(e=>!t.has(e.id));if(n.length){for(let e of n)e.reasons.some(e=>e.kind===`approval`||e.kind===`question`)&&S.current?.({title:e.title,reason:C(o,e.reasons)});D(n.map(e=>o(`board:sidebar.announce`,{title:e.title,reason:C(o,e.reasons)})).join(o(`board:sidebar.announceSeparator`)))}},[s.groups,u,o]),(0,H.jsx)(`p`,{"data-sidebar-announce":!0,"aria-live":`polite`,role:`status`,className:`sr-only`,children:E})}function Y({onOpenBoard:e}){let{t}=a(),{model:n,isLoading:r}=b(),i=h(e=>e.setLaneFilter),o=t=>{i([t]),e()},s=n.counts.attention,c=n.counts.running,u=`grid size-10 place-items-center rounded-[var(--r-md)] text-xs font-semibold tabular-nums transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus pointer-coarse:size-11`;return(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,"aria-busy":r||void 0,children:[(0,H.jsx)(`button`,{type:`button`,"data-rail-count":`attention`,"aria-label":t(`board:sidebar.railAttention`,{count:s}),title:t(`board:sidebar.railAttention`,{count:s}),className:l(u,s>0?`bg-warning-soft text-warning-strong ring-1 ring-st-attn-border ring-inset hover:brightness-[.98]`:`text-content-muted hover:bg-surface-hover`),onClick:()=>o(`attention`),children:(0,H.jsxs)(`span`,{className:`flex flex-col items-center gap-0.5 leading-none`,children:[(0,H.jsx)(x,{status:`attention`,className:l(`size-3.5`,s===0&&`text-content-faint`)}),(0,H.jsx)(`span`,{children:s})]})}),(0,H.jsx)(`button`,{type:`button`,"data-rail-count":`running`,"aria-label":t(`board:sidebar.railRunning`,{count:c}),title:t(`board:sidebar.railRunning`,{count:c}),className:l(u,`hover:bg-surface-hover`,c>0?`text-content-secondary`:`text-content-muted`),onClick:()=>o(`running`),children:(0,H.jsxs)(`span`,{className:`flex flex-col items-center gap-0.5 leading-none`,children:[(0,H.jsx)(x,{status:`run`,spin:c>0,className:l(`size-3.5`,c===0&&`text-content-faint`)}),(0,H.jsx)(`span`,{children:c})]})})]})}function X({onOpenBoard:e}){let{t}=a(),{model:n,isLoading:r}=b(),i=h(e=>e.setLaneFilter),s=n.counts.attention,c=n.counts.running;return(0,H.jsxs)(`button`,{type:`button`,"data-sidebar-fleet-line":!0,"aria-busy":r||void 0,"aria-label":t(`board:sidebar.fleet.label`,{attention:s,running:c}),className:`flex h-10 w-full min-w-0 items-center gap-1.5 rounded-[var(--r-md)] px-2.5 text-left text-[12.5px] text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11`,onClick:()=>{i([]),e()},children:[(0,H.jsx)(x,{status:`attention`,className:l(`size-3.5 flex-none`,s===0&&`text-content-faint`)}),(0,H.jsx)(`span`,{"data-sidebar-fleet":`attention`,className:l(`truncate`,s>0&&`font-medium text-warning-strong`),children:t(`board:sidebar.fleet.attention`,{count:s})}),(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-content-faint`,children:`·`}),(0,H.jsx)(x,{status:`run`,spin:c>0,className:`size-3.5 flex-none`}),(0,H.jsx)(`span`,{"data-sidebar-fleet":`running`,className:`truncate`,children:t(`board:sidebar.fleet.running`,{count:c})}),(0,H.jsx)(o,{className:`ml-auto size-3.5 flex-none text-content-muted`,"aria-hidden":`true`})]})}function Z({currentId:e,notify:n,requestText:r,onOpenSession:o,onOpenBoard:s,onOpenHistory:l,onArchived:f,drawer:p=!1}){let{t:_}=a(),{model:v,items:y,sessions:x,isLoading:S,error:C,refetch:w}=b(),T=V(v,y,x,e),E=m(),O=(0,F.useRef)(E);O.current=E;let k=h(e=>e.setLaneFilter),A=u(e=>e.boardBindings),M=t(`/`),N=(0,F.useCallback)(e=>M.replace(/\/$/,``)+i(e),[M]),P=v.counts.attention+v.counts.running>0,I=g(P),L=(0,F.useRef)(null),[R,z]=(0,F.useState)(()=>new Set),U=(e,t)=>z(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r}),W=(0,F.useRef)(null),[K,q]=(0,F.useState)(()=>new Set),J=(0,F.useMemo)(()=>v.groups.find(e=>e.id===`attention`)?.rows??[],[v.groups]),Y=(0,F.useRef)(new Set);Y.current=new Set(J.map(e=>e.id)),(0,F.useEffect)(()=>{if(S)return;let e=new Set(J.map(e=>e.id)),t=W.current;if(W.current=e,!t)return;let n=J.filter(e=>!t.has(e.id));n.length&&q(new Set(n.map(e=>e.id)))},[J,S]);let X=j({notify:n,requestText:r,onOpenSession:o,onArchived:f}),Z=X.report,Q=(0,F.useCallback)(async(e,t,n)=>{if(e.quickAction.kind!==`decide`){o(e.id);return}let{approvalId:r,remaining:i}=e.quickAction,a=i===0,s=!!n?.contains(document.activeElement),c=G(L.current),l=c.findIndex(t=>t.dataset.sidebarRow===e.id),u=c[l+1]??c[l-1];s&&a&&u?.focus();let d=!1,f=a?D(n,{duration:160,scale:.6}).then(()=>{d||U(e.id,!0)}):Promise.resolve(),p=t?await O.current.approve(e.id,r,{confirmCritical:!1}):await O.current.deny(e.id,r);if(p.ok){if(!a||(await f,!Y.current.has(e.id)))return;U(e.id,!1),n?.getAnimations?.().forEach(e=>e.cancel());return}d=!0,await f,U(e.id,!1),n?.getAnimations?.().forEach(e=>e.cancel()),p.reason===`confirmation-required`?o(e.id):Z(p)},[o,Z]);(0,F.useEffect)(()=>{z(e=>{if(!e.size)return e;let t=new Set(J.map(e=>e.id)),n=new Set([...e].filter(e=>t.has(e)));return n.size===e.size?e:n})},[J]);let $=(0,F.useMemo)(()=>({...X,decide:(e,t,n)=>void Q(e,t,n)}),[Q,X]),oe=(e,t)=>{if(e.altKey||e.metaKey||e.ctrlKey)return;if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=G(L.current);t[t.indexOf(e.currentTarget)+(e.key===`ArrowDown`?1:-1)]?.focus();return}if(t.group!==`attention`||e.shiftKey)return;let n=d(e.nativeEvent,A.boardApprove),r=!n&&d(e.nativeEvent,A.boardDeny);!n&&!r||(e.preventDefault(),t.quickAction.kind===`decide`&&$.decide(t,n,e.currentTarget.closest(`[data-sidebar-item]`)))},se=()=>{k([`running`]),s()};if(S)return(0,H.jsx)(ne,{label:_(`board:sidebar.loading`)});let ce=B(v),le={now:I,handlers:$,approveBinding:A.boardApprove,denyBinding:A.boardDeny,onKeyDown:oe,drawer:p};return(0,H.jsxs)(`div`,{ref:L,"data-sidebar-groups":!0,className:`flex flex-col gap-3 pb-2`,children:[C&&v.groups.every(e=>e.count===0)?(0,H.jsxs)(`div`,{className:`flex flex-col items-start gap-1.5 px-2.5 py-2 text-xs text-content-muted`,children:[(0,H.jsx)(`p`,{children:_(`board:sidebar.error`)}),(0,H.jsx)(`button`,{type:`button`,className:`rounded-sm text-content-secondary underline underline-offset-2 hover:text-content focus-visible:outline-2 focus-visible:outline-focus`,onClick:w,children:_(`board:sidebar.retry`)})]}):ce.map(t=>(0,H.jsx)(ie,{group:t,title:ee(_,t.id),footer:t.id===`running`&&t.hidden>0?(0,H.jsx)(re,{onClick:se,children:_(`board:sidebar.moreRunning`,{count:t.hidden})}):null,children:t.rows.map(t=>(0,H.jsx)(ae,{row:t,href:N(t.id),current:t.id===e,hidden:R.has(t.id),fresh:K.has(t.id),...le},t.id))},t.id)),(0,H.jsxs)(`section`,{"aria-labelledby":`sidebar-group-recent`,"data-sidebar-group":`recent`,children:[(0,H.jsx)(`h2`,{id:`sidebar-group-recent`,className:`m-0 flex h-7 items-center px-2.5 text-xs font-medium text-content-muted`,children:_(`board:sidebar.group.recent`)}),T.rows.length?(0,H.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-px p-0`,children:T.rows.map(t=>(0,H.jsx)(ae,{row:t,href:N(t.id),current:t.id===e,hidden:!1,fresh:!1,...le},t.id))}):(0,H.jsx)(`p`,{className:`px-2.5 text-xs leading-7 text-content-faint`,children:_(`board:sidebar.emptyRecent`)})]}),(0,H.jsxs)(`a`,{href:M.replace(/\/$/,``)+`/chat/history`,className:`flex h-8 items-center gap-2 rounded-[var(--r-md)] px-2.5 text-[13px] text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content-secondary focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11`,onClick:e=>{te(e)&&(e.preventDefault(),l())},children:[(0,H.jsx)(c,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":`true`}),_(`board:sidebar.allChats`)]})]})}function te(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function ne({label:e}){return(0,H.jsx)(`div`,{role:`status`,"aria-busy":`true`,"aria-label":e,className:`flex flex-col gap-1 px-1 pt-1`,children:[64,48,72,56].map(e=>(0,H.jsxs)(`div`,{className:`flex h-9 items-center gap-2.5 px-1.5`,"aria-hidden":`true`,children:[(0,H.jsx)(`span`,{className:`size-4 flex-none rounded-full bg-surface-hover`}),(0,H.jsx)(`span`,{className:`h-3 rounded-sm bg-surface-hover`,style:{width:`${e}%`}})]},e))})}function re({children:e,onClick:t}){return(0,H.jsx)(`button`,{type:`button`,className:`flex h-7 w-full items-center gap-1 rounded-[var(--r-md)] px-2.5 pl-[34px] text-left text-xs text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content-secondary focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11`,onClick:t,children:e})}function ie({group:e,title:t,footer:n,children:r}){let i=`sidebar-group-${e.id}`,a=e.id===`attention`;return(0,H.jsxs)(`section`,{"aria-labelledby":i,"data-sidebar-group":e.id,children:[(0,H.jsx)(`h2`,{id:i,className:`m-0`,children:(0,H.jsxs)(`span`,{className:l(`flex h-7 items-center gap-1.5 px-2.5 text-xs font-medium`,a&&e.count>0?`text-warning-strong`:`text-content-muted`),children:[t,(0,H.jsx)(`span`,{"data-sidebar-count":!0,className:l(`tabular-nums`,a&&e.count>0&&`inline-grid h-[18px] min-w-[18px] place-items-center rounded-full bg-warning-soft px-1.5 text-[11.5px] font-semibold ring-1 ring-st-attn-border ring-inset`),children:e.count})]})}),e.rows.length>0&&(0,H.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-px p-0`,children:r}),n]})}function ae({row:e,href:t,current:n,now:r,hidden:i,fresh:o,handlers:c,approveBinding:u,denyBinding:d,onKeyDown:f,drawer:p=!1}){let{t:m}=a(),h=(0,F.useRef)(null),g=(0,F.useRef)(null),_=(0,F.useRef)(null),[v,y]=(0,F.useState)(!1),b=e.group===`attention`;(0,F.useLayoutEffect)(()=>{if(!o||!k())return;let e=h.current,t=g.current;e&&typeof e.animate==`function`&&(e.style.transformOrigin=`top center`,e.animate([{transform:`scaleY(.6)`,opacity:0},{transform:`scaleY(1)`,opacity:1}],{duration:U,easing:`ease-out`})),t&&typeof t.animate==`function`&&t.animate([{transform:`scale(1)`,opacity:.55},{transform:`scale(2.6)`,opacity:0}],{duration:W,easing:`ease-out`})},[o]),(0,F.useLayoutEffect)(()=>{let e=h.current,t=_.current;if(!e||!t)return;let n=()=>e.style.setProperty(`--quick-w`,`${t.offsetWidth+12}px`);if(n(),typeof ResizeObserver!=`function`)return;let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[]);let w=e.group===`recent`,D=``,j=``;w?D=``:e.group===`attention`?(D=A(e.waitingSince===null?null:r-e.waitingSince),j=C(m,e.reasons)):D=e.group===`running`?T(e.startedAt===null?null:r-e.startedAt):e.group===`queued`?`#${e.position}`:e.group===`pinned`?S(e.at,r):O(e.finishedAt);let P=e.group===`attention`?D?m(`board:sidebar.attentionRow`,{title:e.title,reason:j,wait:D}):m(`board:sidebar.attentionRowNoWait`,{title:e.title,reason:j}):void 0,I=`flex h-[26px] flex-none items-center gap-1 rounded-[var(--r-sm)] px-2 text-[12.5px] leading-none font-medium transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus`;return(0,H.jsxs)(`li`,{ref:h,"data-sidebar-item":e.id,"data-menu-open":v||void 0,hidden:i,className:`group/row relative`,children:[(0,H.jsxs)(`a`,{href:t,"data-sidebar-row":e.id,"data-sidebar-group-row":e.group,"aria-current":n?`page`:void 0,"aria-label":P,className:l(`flex min-w-0 items-center gap-2.5 rounded-[var(--r-md)] px-2.5 text-base text-content [transition:color_var(--d-fast),background-color_var(--d-fast),padding-right_0s_80ms] focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus`,b?p?`h-14`:`h-12 pointer-coarse:h-14`:p?`h-11`:w?`h-8 pointer-coarse:h-11`:`h-9 pointer-coarse:h-11`,`group-hover/row:pr-[max(10px,var(--quick-w,0px))] group-focus-within/row:pr-[max(10px,var(--quick-w,0px))] group-data-[menu-open]/row:pr-[max(10px,var(--quick-w,0px))]`,n?`bg-surface-active`:`group-hover/row:bg-surface-hover`),onClick:t=>{te(t)&&(t.preventDefault(),c.open(e))},onKeyDown:t=>f(t,e),children:[(0,H.jsxs)(`span`,{hidden:w,className:l(`relative grid size-4 flex-none place-items-center`,b&&`self-start mt-[7px]`),children:[e.group===`pinned`?(0,H.jsx)(s,{className:`size-3.5 text-content-muted`,strokeWidth:1.75,role:`img`,"aria-label":m(`board:sidebar.group.pinned`)}):(0,H.jsx)(x,{status:e.glyph,phase:e.group===`running`?e.phase:void 0,label:b?void 0:$(m,e)}),b&&(0,H.jsx)(`span`,{ref:g,"aria-hidden":`true`,className:`pointer-events-none absolute inset-1 rounded-full bg-st-attn-fill opacity-0`})]}),(0,H.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,H.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1.5`,children:[e.bot&&(0,H.jsx)(M,{character:e.bot.character,color:e.bot.color,size:16,className:`self-center`}),(0,H.jsx)(`span`,{className:l(`min-w-0 truncate leading-5`,e.group===`done`&&`text-content-secondary`),children:e.title}),w&&e.pinned&&(0,H.jsx)(s,{className:`size-3 flex-none self-center text-content-faint`,strokeWidth:1.75,role:`img`,"aria-label":m(`board:sidebar.group.pinned`)}),(e.group===`done`||w)&&e.unread&&(0,H.jsx)(`span`,{role:`img`,"aria-label":m(`board:sidebar.unread`),className:`size-1.5 flex-none translate-y-[-1px] self-center rounded-full bg-content-secondary`})]}),b&&(0,H.jsx)(`span`,{className:`truncate text-xs leading-[17px] text-warning-strong`,children:j})]}),D&&(0,H.jsx)(`span`,{"aria-hidden":b||void 0,className:l(`flex-none text-xs tabular-nums`,e.group===`running`?`font-mono text-content-secondary`:n?`text-content-secondary`:`text-content-muted`,b&&`self-start mt-[7px]`,`max-w-24 overflow-hidden whitespace-nowrap [transition:opacity_120ms_80ms,max-width_0s_80ms] group-hover/row:max-w-0 group-hover/row:opacity-0 group-focus-within/row:max-w-0 group-focus-within/row:opacity-0 group-data-[menu-open]/row:max-w-0 group-data-[menu-open]/row:opacity-0 pointer-coarse:group-hover/row:max-w-24 pointer-coarse:group-hover/row:opacity-100`),children:D})]}),p&&e.group===`attention`&&e.quickAction.kind===`decide`&&(0,H.jsxs)(`div`,{"data-sidebar-drawer-actions":!0,className:`flex gap-2 pr-2.5 pb-1.5 pl-[36px]`,children:[(0,H.jsx)(`button`,{type:`button`,className:`flex h-11 min-w-0 flex-1 items-center justify-center rounded-[var(--r-md)] bg-solid text-sm font-medium text-content ring-1 ring-stroke-strong ring-inset focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus active:bg-surface-hover`,"aria-label":m(`board:sidebar.denyNamed`,{title:e.title}),onClick:t=>c.decide(e,!1,t.currentTarget.closest(`[data-sidebar-item]`)),children:m(`board:sidebar.deny`)}),(0,H.jsx)(`button`,{type:`button`,className:`flex h-11 min-w-0 flex-1 items-center justify-center rounded-[var(--r-md)] bg-star text-sm font-medium text-on-accent focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus active:bg-star-hover`,"aria-label":m(`board:sidebar.approveNamed`,{title:e.title}),onClick:t=>c.decide(e,!0,t.currentTarget.closest(`[data-sidebar-item]`)),children:m(`board:sidebar.approve`)})]}),(0,H.jsxs)(`div`,{ref:_,"data-sidebar-quick":!0,className:l(`absolute top-1/2 right-1.5 flex -translate-y-1/2 items-center gap-1`,`invisible opacity-0 transition-[opacity,visibility] delay-[80ms] duration-[120ms] group-hover/row:visible group-hover/row:opacity-100 group-focus-within/row:visible group-focus-within/row:opacity-100 group-data-[menu-open]/row:visible group-data-[menu-open]/row:opacity-100 pointer-coarse:hidden`,p&&`hidden`),children:[e.group===`attention`&&(e.quickAction.kind===`decide`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`button`,{type:`button`,className:l(I,`bg-solid text-content ring-1 ring-stroke-strong ring-inset hover:bg-surface-hover`),"aria-label":m(`board:sidebar.denyNamed`,{title:e.title}),"aria-keyshortcuts":N(d),onClick:t=>c.decide(e,!1,t.currentTarget.closest(`[data-sidebar-item]`)),children:[m(`board:sidebar.deny`),(0,H.jsx)(Q,{binding:d})]}),(0,H.jsxs)(`button`,{type:`button`,className:l(I,`bg-star text-on-accent hover:bg-star-hover`),"aria-label":m(`board:sidebar.approveNamed`,{title:e.title}),"aria-keyshortcuts":N(u),onClick:t=>c.decide(e,!0,t.currentTarget.closest(`[data-sidebar-item]`)),children:[m(`board:sidebar.approve`),(0,H.jsx)(Q,{binding:u})]})]}):(0,H.jsxs)(`button`,{type:`button`,className:l(I,`bg-solid text-content ring-1 ring-stroke-strong ring-inset hover:bg-surface-hover`),"aria-label":m(`board:sidebar.openNamed`,{title:e.title}),onClick:()=>c.open(e),children:[m(`board:sidebar.open`),(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-content-faint`,children:`↵`})]})),(0,H.jsx)(E,{row:e,actions:c,canMarkHandled:e.group===`attention`&&e.status===`failed`,open:v,onOpenChange:y,side:`right`})]})]})}function Q({binding:e}){let t=e&&/^Key[A-Z]$/.test(e)?e.slice(3):``;return t?(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`font-normal opacity-60`,children:t}):null}function $(e,t){switch(t.glyph){case`run`:return e(`common:statusGlyph.run`);case`queued`:return e(`common:statusGlyph.queued`);case`failed`:return e(`common:statusGlyph.failed`);case`stopped`:return e(`common:statusGlyph.stopped`);case`attention`:return e(`common:statusGlyph.attention`);default:return e(`common:statusGlyph.done`)}}export{J as SidebarCommands,X as SidebarFleetLine,Y as SidebarRailCounts,Z as SidebarSessions};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t}from"./vendor-router-CSN_DGvx.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{f as i}from"./routes-DIeaqWVc.js";import{t as a}from"./use-i18n-B2p84ZNR.js";import{t as o}from"./chevron-right-C3t2Rckj.js";import{t as s}from"./pin-CU0FG0lI.js";import{t as c}from"./rotate-ccw-clock-CO6Bw-sF.js";import{t as l}from"./utils-C8uzG5AZ.js";import{c as u,g as d}from"./shortcuts-DXHroTTi.js";import{t as f}from"./sidebar-store-CbyxBthc.js";import{r as p}from"./useSessionListQuery-CHbg2lM2.js";import{f as m,l as h,n as g,r as _,s as v}from"./useNow-DYvbFah-.js";import{n as y}from"./card-presentation-1oph2b8P.js";import{t as b}from"./useSidebarModel-V_SZjKZH.js";import{t as x}from"./StatusGlyph-1KgitlUg.js";import{a as S,c as C,d as w,i as T,l as E,n as D,o as O,r as k,s as A,t as j}from"./useSessionRowActions-CO4u1xCd.js";import{n as M}from"./BotAvatar-CNL-APwP.js";import{t as N}from"./shortcut-aria-jHRmld9z.js";import{t as P}from"./sidebar-commands-ZA1UOA_F.js";var F=e(n(),1);function I(e){let t=v(e);return t.some(e=>e.kind===`failed`)?`failed`:t.some(e=>e.kind===`approval`||e.kind===`question`)?`waiting`:e.lane===`running`?`running`:e.lane===`done`?`done`:`other`}function L(e,t){let n=new Map,r=[];for(let i of t){if(!i||typeof i.id!=`string`||!i.id||n.has(i.id))continue;let t=I(i);if(n.set(i.id,t),!e)continue;let a=e.get(i.id);t!==a&&(t===`waiting`?r.push({kind:`waiting`,id:i.id,title:i.title}):t===`failed`&&(a===`running`||a===`waiting`)?r.push({kind:`failed`,id:i.id,title:i.title}):t===`done`&&(a===`running`||a===`waiting`)&&r.push({kind:`finished`,id:i.id,title:i.title}))}return{snapshot:n,alerts:r}}function R(e){let t=Date.parse(e.modified||``);return Number.isFinite(t)?t:null}function z(e,{items:t,shownIds:n,currentId:r,limit:i=8}){let a=new Map(t.map(e=>[e.id,e])),o=new Set,s=[];for(let t of e){if(!t||typeof t.id!=`string`||!t.id||o.has(t.id)||(o.add(t.id),t.archived===!0||n.has(t.id))||t.botId||typeof t.messageCount==`number`&&t.messageCount<=0&&t.id!==r)continue;let e=a.get(t.id);s.push({group:`recent`,id:t.id,title:p(t),...e?.bot?{bot:e.bot}:{},status:e?.status??`done`,pinned:t.pinned===!0,glyph:e?y(e):`done`,at:R(t),unread:t.unread===!0})}s.sort((e,t)=>Number(t.pinned)-Number(e.pinned)||(t.at??-1/0)-(e.at??-1/0)||(e.id<t.id?-1:+(e.id>t.id)));let c=s.filter((e,t)=>t<i||e.id===r);return{rows:c,hidden:s.length-c.length}}function B(e){return e.groups.filter(e=>e.id===`attention`||e.id===`running`||e.id===`queued`&&e.count>0)}function V(e,t,n,r){let i=(0,F.useMemo)(()=>new Set(B(e).flatMap(e=>e.rows.map(e=>e.id))),[e]);return(0,F.useMemo)(()=>z(n??[],{items:t,shownIds:i,currentId:r}),[r,t,n,i])}var H=r(),U=160,W=600;function ee(e,t){switch(t){case`attention`:return e(`board:sidebar.group.attention`);case`running`:return e(`board:sidebar.group.running`);case`queued`:return e(`board:sidebar.group.queued`);case`pinned`:return e(`board:sidebar.group.pinned`);default:return e(`board:sidebar.group.done`)}}function G(e){return e?[...e.querySelectorAll(`[data-sidebar-row]`)]:[]}function K(e,t={}){q(()=>e(G(document.querySelector(`[data-sidebar-groups]`))),t)}function q(e,{unclaimed:t=!1}={}){let n=0,r=()=>{let i=document.activeElement;if(t&&i&&i!==document.body&&!i.closest(`[data-shell-sidebar]`))return;let a=e();if(a){a.focus(),a.scrollIntoView?.({block:`nearest`});return}(n+=1)<20&&requestAnimationFrame(r)};requestAnimationFrame(r)}function J({resolveCurrentId:e,renderedSessionId:t,onOpenSession:n,onWaiting:r,onAlerts:i}){let{t:o}=a(),{model:s,items:c,sessions:l,isLoading:u}=b(),d=(0,F.useRef)(i);d.current=i;let p=(0,F.useRef)(null);(0,F.useEffect)(()=>{if(u)return;let{snapshot:e,alerts:t}=L(p.current,c);p.current=e,t.length&&d.current?.(t)},[c,u]);let m=V(s,c,l,t??``),h=(0,F.useRef)(s);h.current=s;let g=(0,F.useRef)([]);g.current=[...B(s).flatMap(e=>e.rows.map(e=>e.id)),...m.rows.map(e=>e.id)];let v=(0,F.useRef)({resolveCurrentId:e,onOpenSession:n});v.current={resolveCurrentId:e,onOpenSession:n},(0,F.useEffect)(()=>{let e=e=>{let t=e.detail;if(!t)return;let n=h.current;if(t.kind===`adjacent`){let e=_(g.current,v.current.resolveCurrentId()||null,t.direction);e&&v.current.onOpenSession(e);return}let r=f.getState();if(document.documentElement.hasAttribute(`data-phone-shell`)){let e=t.kind===`focus-attention`?n.longestWaitingId:v.current.resolveCurrentId();if(t.kind===`focus-attention`&&!e)return;r.setDrawerOpen(!0),K(n=>n.find(t=>t.dataset.sidebarRow===e)??(t.kind===`focus-list`?n[0]:void 0));return}let i=document.querySelector(`[data-settings-sidebar]`);if(i){let e=t.kind===`focus-attention`?`[data-sidebar-fleet-line]`:`[data-settings-section][aria-current="page"]`;q(()=>i.querySelector(e)??void 0);return}let a=document.querySelector(`[data-overview]`);if(t.kind===`focus-attention`){let e=n.longestWaitingId;if(!e)return;if(a){w(e);return}r.collapsed&&r.setPeeking(!0),K(t=>t.find(t=>t.dataset.sidebarRow===e));return}r.collapsed&&r.setPeeking(!0);let o=v.current.resolveCurrentId();K(e=>e.find(e=>e.dataset.sidebarRow===o)??e[0])};return window.addEventListener(P,e),()=>window.removeEventListener(P,e)},[]);let y=(0,F.useRef)(t),x=(0,F.useRef)(null);(0,F.useEffect)(()=>{let e=y.current;if(y.current=t,t===null){e&&(x.current=e);return}if(e!==null)return;let n=x.current;x.current=null,!(!n||n!==t||f.getState().collapsed)&&K(e=>e.find(e=>e.dataset.sidebarRow===n),{unclaimed:!0})},[t]);let S=(0,F.useRef)(r);S.current=r;let T=(0,F.useRef)(null),[E,D]=(0,F.useState)(``);return(0,F.useEffect)(()=>{if(u)return;let e=s.groups.find(e=>e.id===`attention`)?.rows??[],t=T.current;if(T.current=new Set(e.map(e=>e.id)),!t)return;let n=e.filter(e=>!t.has(e.id));if(n.length){for(let e of n)e.reasons.some(e=>e.kind===`approval`||e.kind===`question`)&&S.current?.({title:e.title,reason:C(o,e.reasons)});D(n.map(e=>o(`board:sidebar.announce`,{title:e.title,reason:C(o,e.reasons)})).join(o(`board:sidebar.announceSeparator`)))}},[s.groups,u,o]),(0,H.jsx)(`p`,{"data-sidebar-announce":!0,"aria-live":`polite`,role:`status`,className:`sr-only`,children:E})}function Y({onOpenBoard:e}){let{t}=a(),{model:n,isLoading:r}=b(),i=h(e=>e.setLaneFilter),o=t=>{i([t]),e()},s=n.counts.attention,c=n.counts.running,u=`grid size-10 place-items-center rounded-[var(--r-md)] text-xs font-semibold tabular-nums transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus pointer-coarse:size-11`;return(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,"aria-busy":r||void 0,children:[(0,H.jsx)(`button`,{type:`button`,"data-rail-count":`attention`,"aria-label":t(`board:sidebar.railAttention`,{count:s}),title:t(`board:sidebar.railAttention`,{count:s}),className:l(u,s>0?`bg-warning-soft text-warning-strong ring-1 ring-st-attn-border ring-inset hover:brightness-[.98]`:`text-content-muted hover:bg-surface-hover`),onClick:()=>o(`attention`),children:(0,H.jsxs)(`span`,{className:`flex flex-col items-center gap-0.5 leading-none`,children:[(0,H.jsx)(x,{status:`attention`,className:l(`size-3.5`,s===0&&`text-content-faint`)}),(0,H.jsx)(`span`,{children:s})]})}),(0,H.jsx)(`button`,{type:`button`,"data-rail-count":`running`,"aria-label":t(`board:sidebar.railRunning`,{count:c}),title:t(`board:sidebar.railRunning`,{count:c}),className:l(u,`hover:bg-surface-hover`,c>0?`text-content-secondary`:`text-content-muted`),onClick:()=>o(`running`),children:(0,H.jsxs)(`span`,{className:`flex flex-col items-center gap-0.5 leading-none`,children:[(0,H.jsx)(x,{status:`run`,spin:c>0,className:l(`size-3.5`,c===0&&`text-content-faint`)}),(0,H.jsx)(`span`,{children:c})]})})]})}function X({onOpenBoard:e}){let{t}=a(),{model:n,isLoading:r}=b(),i=h(e=>e.setLaneFilter),s=n.counts.attention,c=n.counts.running;return(0,H.jsxs)(`button`,{type:`button`,"data-sidebar-fleet-line":!0,"aria-busy":r||void 0,"aria-label":t(`board:sidebar.fleet.label`,{attention:s,running:c}),className:`flex h-10 w-full min-w-0 items-center gap-1.5 rounded-[var(--r-md)] px-2.5 text-left text-[12.5px] text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11`,onClick:()=>{i([]),e()},children:[(0,H.jsx)(x,{status:`attention`,className:l(`size-3.5 flex-none`,s===0&&`text-content-faint`)}),(0,H.jsx)(`span`,{"data-sidebar-fleet":`attention`,className:l(`truncate`,s>0&&`font-medium text-warning-strong`),children:t(`board:sidebar.fleet.attention`,{count:s})}),(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-content-faint`,children:`·`}),(0,H.jsx)(x,{status:`run`,spin:c>0,className:`size-3.5 flex-none`}),(0,H.jsx)(`span`,{"data-sidebar-fleet":`running`,className:`truncate`,children:t(`board:sidebar.fleet.running`,{count:c})}),(0,H.jsx)(o,{className:`ml-auto size-3.5 flex-none text-content-muted`,"aria-hidden":`true`})]})}function Z({currentId:e,notify:n,requestText:r,onOpenSession:o,onOpenBoard:s,onOpenHistory:l,onArchived:f,drawer:p=!1}){let{t:_}=a(),{model:v,items:y,sessions:x,isLoading:S,error:C,refetch:w}=b(),T=V(v,y,x,e),E=m(),O=(0,F.useRef)(E);O.current=E;let k=h(e=>e.setLaneFilter),A=u(e=>e.boardBindings),M=t(`/`),N=(0,F.useCallback)(e=>M.replace(/\/$/,``)+i(e),[M]),P=v.counts.attention+v.counts.running>0,I=g(P),L=(0,F.useRef)(null),[R,z]=(0,F.useState)(()=>new Set),U=(e,t)=>z(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r}),W=(0,F.useRef)(null),[K,q]=(0,F.useState)(()=>new Set),J=(0,F.useMemo)(()=>v.groups.find(e=>e.id===`attention`)?.rows??[],[v.groups]),Y=(0,F.useRef)(new Set);Y.current=new Set(J.map(e=>e.id)),(0,F.useEffect)(()=>{if(S)return;let e=new Set(J.map(e=>e.id)),t=W.current;if(W.current=e,!t)return;let n=J.filter(e=>!t.has(e.id));n.length&&q(new Set(n.map(e=>e.id)))},[J,S]);let X=j({notify:n,requestText:r,onOpenSession:o,onArchived:f}),Z=X.report,Q=(0,F.useCallback)(async(e,t,n)=>{if(e.quickAction.kind!==`decide`){o(e.id);return}let{approvalId:r,remaining:i}=e.quickAction,a=i===0,s=!!n?.contains(document.activeElement),c=G(L.current),l=c.findIndex(t=>t.dataset.sidebarRow===e.id),u=c[l+1]??c[l-1];s&&a&&u?.focus();let d=!1,f=a?D(n,{duration:160,scale:.6}).then(()=>{d||U(e.id,!0)}):Promise.resolve(),p=t?await O.current.approve(e.id,r,{confirmCritical:!1}):await O.current.deny(e.id,r);if(p.ok){if(!a||(await f,!Y.current.has(e.id)))return;U(e.id,!1),n?.getAnimations?.().forEach(e=>e.cancel());return}d=!0,await f,U(e.id,!1),n?.getAnimations?.().forEach(e=>e.cancel()),p.reason===`confirmation-required`?o(e.id):Z(p)},[o,Z]);(0,F.useEffect)(()=>{z(e=>{if(!e.size)return e;let t=new Set(J.map(e=>e.id)),n=new Set([...e].filter(e=>t.has(e)));return n.size===e.size?e:n})},[J]);let $=(0,F.useMemo)(()=>({...X,decide:(e,t,n)=>void Q(e,t,n)}),[Q,X]),oe=(e,t)=>{if(e.altKey||e.metaKey||e.ctrlKey)return;if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=G(L.current);t[t.indexOf(e.currentTarget)+(e.key===`ArrowDown`?1:-1)]?.focus();return}if(t.group!==`attention`||e.shiftKey)return;let n=d(e.nativeEvent,A.boardApprove),r=!n&&d(e.nativeEvent,A.boardDeny);!n&&!r||(e.preventDefault(),t.quickAction.kind===`decide`&&$.decide(t,n,e.currentTarget.closest(`[data-sidebar-item]`)))},se=()=>{k([`running`]),s()};if(S)return(0,H.jsx)(ne,{label:_(`board:sidebar.loading`)});let ce=B(v),le={now:I,handlers:$,approveBinding:A.boardApprove,denyBinding:A.boardDeny,onKeyDown:oe,drawer:p};return(0,H.jsxs)(`div`,{ref:L,"data-sidebar-groups":!0,className:`flex flex-col gap-3 pb-2`,children:[C&&v.groups.every(e=>e.count===0)?(0,H.jsxs)(`div`,{className:`flex flex-col items-start gap-1.5 px-2.5 py-2 text-xs text-content-muted`,children:[(0,H.jsx)(`p`,{children:_(`board:sidebar.error`)}),(0,H.jsx)(`button`,{type:`button`,className:`rounded-sm text-content-secondary underline underline-offset-2 hover:text-content focus-visible:outline-2 focus-visible:outline-focus`,onClick:w,children:_(`board:sidebar.retry`)})]}):ce.map(t=>(0,H.jsx)(ie,{group:t,title:ee(_,t.id),footer:t.id===`running`&&t.hidden>0?(0,H.jsx)(re,{onClick:se,children:_(`board:sidebar.moreRunning`,{count:t.hidden})}):null,children:t.rows.map(t=>(0,H.jsx)(ae,{row:t,href:N(t.id),current:t.id===e,hidden:R.has(t.id),fresh:K.has(t.id),...le},t.id))},t.id)),(0,H.jsxs)(`section`,{"aria-labelledby":`sidebar-group-recent`,"data-sidebar-group":`recent`,children:[(0,H.jsx)(`h2`,{id:`sidebar-group-recent`,className:`m-0 flex h-7 items-center px-2.5 text-xs font-medium text-content-muted`,children:_(`board:sidebar.group.recent`)}),T.rows.length?(0,H.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-px p-0`,children:T.rows.map(t=>(0,H.jsx)(ae,{row:t,href:N(t.id),current:t.id===e,hidden:!1,fresh:!1,...le},t.id))}):(0,H.jsx)(`p`,{className:`px-2.5 text-xs leading-7 text-content-faint`,children:_(`board:sidebar.emptyRecent`)})]}),(0,H.jsxs)(`a`,{href:M.replace(/\/$/,``)+`/chat/history`,className:`flex h-8 items-center gap-2 rounded-[var(--r-md)] px-2.5 text-[13px] text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content-secondary focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11`,onClick:e=>{te(e)&&(e.preventDefault(),l())},children:[(0,H.jsx)(c,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":`true`}),_(`board:sidebar.allChats`)]})]})}function te(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function ne({label:e}){return(0,H.jsx)(`div`,{role:`status`,"aria-busy":`true`,"aria-label":e,className:`flex flex-col gap-1 px-1 pt-1`,children:[64,48,72,56].map(e=>(0,H.jsxs)(`div`,{className:`flex h-9 items-center gap-2.5 px-1.5`,"aria-hidden":`true`,children:[(0,H.jsx)(`span`,{className:`size-4 flex-none rounded-full bg-surface-hover`}),(0,H.jsx)(`span`,{className:`h-3 rounded-sm bg-surface-hover`,style:{width:`${e}%`}})]},e))})}function re({children:e,onClick:t}){return(0,H.jsx)(`button`,{type:`button`,className:`flex h-7 w-full items-center gap-1 rounded-[var(--r-md)] px-2.5 pl-[34px] text-left text-xs text-content-muted transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content-secondary focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11`,onClick:t,children:e})}function ie({group:e,title:t,footer:n,children:r}){let i=`sidebar-group-${e.id}`,a=e.id===`attention`;return(0,H.jsxs)(`section`,{"aria-labelledby":i,"data-sidebar-group":e.id,children:[(0,H.jsx)(`h2`,{id:i,className:`m-0`,children:(0,H.jsxs)(`span`,{className:l(`flex h-7 items-center gap-1.5 px-2.5 text-xs font-medium`,a&&e.count>0?`text-warning-strong`:`text-content-muted`),children:[t,(0,H.jsx)(`span`,{"data-sidebar-count":!0,className:l(`tabular-nums`,a&&e.count>0&&`inline-grid h-[18px] min-w-[18px] place-items-center rounded-full bg-warning-soft px-1.5 text-[11.5px] font-semibold ring-1 ring-st-attn-border ring-inset`),children:e.count})]})}),e.rows.length>0&&(0,H.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-px p-0`,children:r}),n]})}function ae({row:e,href:t,current:n,now:r,hidden:i,fresh:o,handlers:c,approveBinding:u,denyBinding:d,onKeyDown:f,drawer:p=!1}){let{t:m}=a(),h=(0,F.useRef)(null),g=(0,F.useRef)(null),_=(0,F.useRef)(null),[v,y]=(0,F.useState)(!1),b=e.group===`attention`;(0,F.useLayoutEffect)(()=>{if(!o||!k())return;let e=h.current,t=g.current;e&&typeof e.animate==`function`&&(e.style.transformOrigin=`top center`,e.animate([{transform:`scaleY(.6)`,opacity:0},{transform:`scaleY(1)`,opacity:1}],{duration:U,easing:`ease-out`})),t&&typeof t.animate==`function`&&t.animate([{transform:`scale(1)`,opacity:.55},{transform:`scale(2.6)`,opacity:0}],{duration:W,easing:`ease-out`})},[o]),(0,F.useLayoutEffect)(()=>{let e=h.current,t=_.current;if(!e||!t)return;let n=()=>e.style.setProperty(`--quick-w`,`${t.offsetWidth+12}px`);if(n(),typeof ResizeObserver!=`function`)return;let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[]);let w=e.group===`recent`,D=``,j=``;w?D=``:e.group===`attention`?(D=A(e.waitingSince===null?null:r-e.waitingSince),j=C(m,e.reasons)):D=e.group===`running`?T(e.startedAt===null?null:r-e.startedAt):e.group===`queued`?`#${e.position}`:e.group===`pinned`?S(e.at,r):O(e.finishedAt);let P=e.group===`attention`?D?m(`board:sidebar.attentionRow`,{title:e.title,reason:j,wait:D}):m(`board:sidebar.attentionRowNoWait`,{title:e.title,reason:j}):void 0,I=`flex h-[26px] flex-none items-center gap-1 rounded-[var(--r-sm)] px-2 text-[12.5px] leading-none font-medium transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus`;return(0,H.jsxs)(`li`,{ref:h,"data-sidebar-item":e.id,"data-menu-open":v||void 0,hidden:i,className:`group/row relative`,children:[(0,H.jsxs)(`a`,{href:t,"data-sidebar-row":e.id,"data-sidebar-group-row":e.group,"aria-current":n?`page`:void 0,"aria-label":P,className:l(`flex min-w-0 items-center gap-2.5 rounded-[var(--r-md)] px-2.5 text-base text-content [transition:color_var(--d-fast),background-color_var(--d-fast),padding-right_0s_80ms] focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus`,b?p?`h-14`:`h-12 pointer-coarse:h-14`:p?`h-11`:w?`h-8 pointer-coarse:h-11`:`h-9 pointer-coarse:h-11`,`group-hover/row:pr-[max(10px,var(--quick-w,0px))] group-focus-within/row:pr-[max(10px,var(--quick-w,0px))] group-data-[menu-open]/row:pr-[max(10px,var(--quick-w,0px))]`,n?`bg-surface-active`:`group-hover/row:bg-surface-hover`),onClick:t=>{te(t)&&(t.preventDefault(),c.open(e))},onKeyDown:t=>f(t,e),children:[(0,H.jsxs)(`span`,{hidden:w,className:l(`relative grid size-4 flex-none place-items-center`,b&&`self-start mt-[7px]`),children:[e.group===`pinned`?(0,H.jsx)(s,{className:`size-3.5 text-content-muted`,strokeWidth:1.75,role:`img`,"aria-label":m(`board:sidebar.group.pinned`)}):(0,H.jsx)(x,{status:e.glyph,phase:e.group===`running`?e.phase:void 0,label:b?void 0:$(m,e)}),b&&(0,H.jsx)(`span`,{ref:g,"aria-hidden":`true`,className:`pointer-events-none absolute inset-1 rounded-full bg-st-attn-fill opacity-0`})]}),(0,H.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,H.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1.5`,children:[e.bot&&(0,H.jsx)(M,{character:e.bot.character,color:e.bot.color,size:16,className:`self-center`}),(0,H.jsx)(`span`,{className:l(`min-w-0 truncate leading-5`,e.group===`done`&&`text-content-secondary`),children:e.title}),w&&e.pinned&&(0,H.jsx)(s,{className:`size-3 flex-none self-center text-content-faint`,strokeWidth:1.75,role:`img`,"aria-label":m(`board:sidebar.group.pinned`)}),(e.group===`done`||w)&&e.unread&&(0,H.jsx)(`span`,{role:`img`,"aria-label":m(`board:sidebar.unread`),className:`size-1.5 flex-none translate-y-[-1px] self-center rounded-full bg-content-secondary`})]}),b&&(0,H.jsx)(`span`,{className:`truncate text-xs leading-[17px] text-warning-strong`,children:j})]}),D&&(0,H.jsx)(`span`,{"aria-hidden":b||void 0,className:l(`flex-none text-xs tabular-nums`,e.group===`running`?`font-mono text-content-secondary`:n?`text-content-secondary`:`text-content-muted`,b&&`self-start mt-[7px]`,`max-w-24 overflow-hidden whitespace-nowrap [transition:opacity_120ms_80ms,max-width_0s_80ms] group-hover/row:max-w-0 group-hover/row:opacity-0 group-focus-within/row:max-w-0 group-focus-within/row:opacity-0 group-data-[menu-open]/row:max-w-0 group-data-[menu-open]/row:opacity-0 pointer-coarse:group-hover/row:max-w-24 pointer-coarse:group-hover/row:opacity-100`),children:D})]}),p&&e.group===`attention`&&e.quickAction.kind===`decide`&&(0,H.jsxs)(`div`,{"data-sidebar-drawer-actions":!0,className:`flex gap-2 pr-2.5 pb-1.5 pl-[36px]`,children:[(0,H.jsx)(`button`,{type:`button`,className:`flex h-11 min-w-0 flex-1 items-center justify-center rounded-[var(--r-md)] bg-solid text-sm font-medium text-content ring-1 ring-stroke-strong ring-inset focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus active:bg-surface-hover`,"aria-label":m(`board:sidebar.denyNamed`,{title:e.title}),onClick:t=>c.decide(e,!1,t.currentTarget.closest(`[data-sidebar-item]`)),children:m(`board:sidebar.deny`)}),(0,H.jsx)(`button`,{type:`button`,className:`flex h-11 min-w-0 flex-1 items-center justify-center rounded-[var(--r-md)] bg-star text-sm font-medium text-on-accent focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-focus active:bg-star-hover`,"aria-label":m(`board:sidebar.approveNamed`,{title:e.title}),onClick:t=>c.decide(e,!0,t.currentTarget.closest(`[data-sidebar-item]`)),children:m(`board:sidebar.approve`)})]}),(0,H.jsxs)(`div`,{ref:_,"data-sidebar-quick":!0,className:l(`absolute top-1/2 right-1.5 flex -translate-y-1/2 items-center gap-1`,`invisible opacity-0 transition-[opacity,visibility] delay-[80ms] duration-[120ms] group-hover/row:visible group-hover/row:opacity-100 group-focus-within/row:visible group-focus-within/row:opacity-100 group-data-[menu-open]/row:visible group-data-[menu-open]/row:opacity-100 pointer-coarse:hidden`,p&&`hidden`),children:[e.group===`attention`&&(e.quickAction.kind===`decide`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`button`,{type:`button`,className:l(I,`bg-solid text-content ring-1 ring-stroke-strong ring-inset hover:bg-surface-hover`),"aria-label":m(`board:sidebar.denyNamed`,{title:e.title}),"aria-keyshortcuts":N(d),onClick:t=>c.decide(e,!1,t.currentTarget.closest(`[data-sidebar-item]`)),children:[m(`board:sidebar.deny`),(0,H.jsx)(Q,{binding:d})]}),(0,H.jsxs)(`button`,{type:`button`,className:l(I,`bg-star text-on-accent hover:bg-star-hover`),"aria-label":m(`board:sidebar.approveNamed`,{title:e.title}),"aria-keyshortcuts":N(u),onClick:t=>c.decide(e,!0,t.currentTarget.closest(`[data-sidebar-item]`)),children:[m(`board:sidebar.approve`),(0,H.jsx)(Q,{binding:u})]})]}):(0,H.jsxs)(`button`,{type:`button`,className:l(I,`bg-solid text-content ring-1 ring-stroke-strong ring-inset hover:bg-surface-hover`),"aria-label":m(`board:sidebar.openNamed`,{title:e.title}),onClick:()=>c.open(e),children:[m(`board:sidebar.open`),(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-content-faint`,children:`↵`})]})),(0,H.jsx)(E,{row:e,actions:c,canMarkHandled:e.group===`attention`&&e.status===`failed`,open:v,onOpenChange:y,side:`right`})]})]})}function Q({binding:e}){let t=e&&/^Key[A-Z]$/.test(e)?e.slice(3):``;return t?(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`font-normal opacity-60`,children:t}):null}function $(e,t){switch(t.glyph){case`run`:return e(`common:statusGlyph.run`);case`queued`:return e(`common:statusGlyph.queued`);case`failed`:return e(`common:statusGlyph.failed`);case`stopped`:return e(`common:statusGlyph.stopped`);case`attention`:return e(`common:statusGlyph.attention`);default:return e(`common:statusGlyph.done`)}}export{J as SidebarCommands,X as SidebarFleetLine,Y as SidebarRailCounts,Z as SidebarSessions};
@@ -1 +1 @@
1
- import{t as e}from"./index-DmohsuQg.js";import{o as t}from"./vendor-state-GkUciC5H.js";import{t as n}from"./storage-8QW6lXuT.js";var r=Object.freeze({collapsed:!1,doneCollapsed:!1});function i(e){let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return{...r}}if(!t||typeof t!=`object`||Array.isArray(t))return{...r};let n=t;return{collapsed:n.collapsed===!0,doneCollapsed:n.doneCollapsed===!0}}function a(e){return JSON.stringify({collapsed:e.collapsed===!0,doneCollapsed:e.doneCollapsed===!0})}function o(){try{return i(e.getItem(n.sidebar))}catch{return{...r}}}var s=t((t,r)=>{let i=i=>{let o=r(),s={...o,collapsed:o.preferenceCollapsed,...i};try{e.setItem(n.sidebar,a(s))}catch{}t(i.collapsed===void 0?i:{...i,preferenceCollapsed:i.collapsed})},s=e=>{t({peeking:!1}),r().routeRail||r().narrowRail?t({collapsed:e}):i({collapsed:e})},c=o();return{...c,preferenceCollapsed:c.collapsed,routeRail:!1,narrowRail:!1,peeking:!1,drawerOpen:!1,setCollapsed:e=>s(e),toggleCollapsed:()=>s(!r().collapsed),enterRouteRail:()=>t({routeRail:!0,collapsed:!0,peeking:!1}),leaveRouteRail:()=>{r().routeRail&&t({routeRail:!1,collapsed:r().narrowRail||r().preferenceCollapsed,peeking:!1})},enterNarrowRail:()=>{r().narrowRail||t({narrowRail:!0,collapsed:!0,peeking:!1})},leaveNarrowRail:()=>{r().narrowRail&&t({narrowRail:!1,collapsed:r().routeRail||r().preferenceCollapsed,peeking:!1})},setDoneCollapsed:e=>i({doneCollapsed:e}),setPeeking:e=>t({peeking:e}),setDrawerOpen:e=>t({drawerOpen:e})}});typeof window<`u`&&window.addEventListener(`storage`,e=>{if(e.key!==n.sidebar&&e.key!==null)return;let t=o();s.setState(e=>e.routeRail||e.narrowRail?{doneCollapsed:t.doneCollapsed,preferenceCollapsed:t.collapsed}:{...t,preferenceCollapsed:t.collapsed})});export{s as t};
1
+ import{t as e}from"./index-DcTDwezs.js";import{o as t}from"./vendor-state-GkUciC5H.js";import{t as n}from"./storage-8QW6lXuT.js";var r=Object.freeze({collapsed:!1,doneCollapsed:!1});function i(e){let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return{...r}}if(!t||typeof t!=`object`||Array.isArray(t))return{...r};let n=t;return{collapsed:n.collapsed===!0,doneCollapsed:n.doneCollapsed===!0}}function a(e){return JSON.stringify({collapsed:e.collapsed===!0,doneCollapsed:e.doneCollapsed===!0})}function o(){try{return i(e.getItem(n.sidebar))}catch{return{...r}}}var s=t((t,r)=>{let i=i=>{let o=r(),s={...o,collapsed:o.preferenceCollapsed,...i};try{e.setItem(n.sidebar,a(s))}catch{}t(i.collapsed===void 0?i:{...i,preferenceCollapsed:i.collapsed})},s=e=>{t({peeking:!1}),r().routeRail||r().narrowRail?t({collapsed:e}):i({collapsed:e})},c=o();return{...c,preferenceCollapsed:c.collapsed,routeRail:!1,narrowRail:!1,peeking:!1,drawerOpen:!1,setCollapsed:e=>s(e),toggleCollapsed:()=>s(!r().collapsed),enterRouteRail:()=>t({routeRail:!0,collapsed:!0,peeking:!1}),leaveRouteRail:()=>{r().routeRail&&t({routeRail:!1,collapsed:r().narrowRail||r().preferenceCollapsed,peeking:!1})},enterNarrowRail:()=>{r().narrowRail||t({narrowRail:!0,collapsed:!0,peeking:!1})},leaveNarrowRail:()=>{r().narrowRail&&t({narrowRail:!1,collapsed:r().routeRail||r().preferenceCollapsed,peeking:!1})},setDoneCollapsed:e=>i({doneCollapsed:e}),setPeeking:e=>t({peeking:e}),setDrawerOpen:e=>t({drawerOpen:e})}});typeof window<`u`&&window.addEventListener(`storage`,e=>{if(e.key!==n.sidebar&&e.key!==null)return;let t=o();s.setState(e=>e.routeRail||e.narrowRail?{doneCollapsed:t.doneCollapsed,preferenceCollapsed:t.collapsed}:{...t,preferenceCollapsed:t.collapsed})});export{s as t};
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/speech-text-BTwYi9Sb.js","assets/vendor-markdown-CT6Z4fh8.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-router-CSN_DGvx.js","assets/vendor-react-DwNgTV1j.js","assets/vendor-markdown-plugins-CT5L3KA9.js","assets/vendor-shiki-runtime-DM7fm4Bl.js","assets/vendor-markdown-plugins-DEcVZfaU.css","assets/vendor-ui-DvrYggeS.js","assets/speech-stream-text-DF6aAUVb.js","assets/abort-signal-f4JsiYKX.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-B0Z9INg1.js";import{h as t}from"./vendor-router-CSN_DGvx.js";import{n,r,t as i}from"./abort-signal-f4JsiYKX.js";import{c as a,t as o}from"./api-m-Yq8n0q.js";function s(e,t){let n=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return n?n(e,t):Promise.reject(Error(`Local speech bridge is unavailable.`))}function c(e,t=256){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\uD800-\uDFFF]/u.test(e)}function l(e){if(e===void 0)return!0;if(!e||!c(e.name)||!c(e.url,2048))return!1;try{let t=new URL(e.url);return t.protocol===`https:`&&!t.username&&!t.password}catch{return!1}}function u(e){let t=new Set([`not-installed`,`downloading`,`verifying`,`installed`,`cancelled`,`error`]);if(!e||!e.defaults||!Array.isArray(e.models)||e.models.length>16||e.models.some(e=>!e||!c(e.id,128)||!c(e.name)||![`asr`,`tts`].includes(e.kind)||!t.has(e.status)||!Array.isArray(e.languages)||e.languages.length>16||e.languages.some(e=>!c(e,40))||!l(e.license)||!Number.isSafeInteger(e.totalBytes)||e.totalBytes<0||!Number.isSafeInteger(e.filesBytes)||e.filesBytes<0||!Number.isSafeInteger(e.downloadedBytes)||e.downloadedBytes<0||e.downloadedBytes>e.totalBytes||e.voices!==void 0&&(!Array.isArray(e.voices)||e.voices.length>256||e.voices.some(e=>!e||!c(e.id,128)||!c(e.name)||!c(e.language,40))))||new Set(e.models.map(e=>e.id)).size!==e.models.length||![`asr`,`tts`].every(t=>e.models.some(n=>n.id===e.defaults[t]&&n.kind===t)))throw Error(`Invalid local speech model catalog.`);let n=e.models.flatMap(e=>e.voices||[]);if(new Set(n.map(e=>e.id)).size!==n.length||!e.models.find(t=>t.id===e.defaults.tts)?.voices?.some(t=>t.id===e.defaults.voice))throw Error(`Invalid local speech model catalog.`);return e}async function d(e){e?.throwIfAborted();let t=window.__PISPER_MOBILE_APP__?await s(`mobile_speech_models`):await o(`/api/speech/models`,{signal:e});return e?.throwIfAborted(),u(t)}async function f(e){return window.__PISPER_MOBILE_APP__?s(`mobile_download_speech_model`,{modelId:e}):o(`/api/speech/models/download`,{method:`POST`,body:{modelId:e}})}async function p(e){return window.__PISPER_MOBILE_APP__?s(`mobile_cancel_speech_model_download`,{modelId:e}):o(`/api/speech/models/cancel`,{method:`POST`,body:{modelId:e}})}function m(e,t){return e.models.filter(n=>t.some(t=>n.id===e.defaults[t]))}function h(e){return String(e).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/([A-Z])([A-Z][a-z])/g,`$1 $2`).replace(/[_-]+/g,` `).replace(/\s+/g,` `).trim().toLowerCase()}function g(e){return[...new Set(e.map(h).filter(Boolean))].join(`
2
+ import{r as e}from"./rolldown-runtime-B0Z9INg1.js";import{h as t}from"./vendor-router-CSN_DGvx.js";import{n,r,t as i}from"./abort-signal-f4JsiYKX.js";import{c as a,t as o}from"./api-CIB7ZPX3.js";function s(e,t){let n=window.__TAURI__?.core?.invoke??window.__TAURI_INTERNALS__?.invoke;return n?n(e,t):Promise.reject(Error(`Local speech bridge is unavailable.`))}function c(e,t=256){return typeof e==`string`&&e.length>0&&e.length<=t&&!/[\uD800-\uDFFF]/u.test(e)}function l(e){if(e===void 0)return!0;if(!e||!c(e.name)||!c(e.url,2048))return!1;try{let t=new URL(e.url);return t.protocol===`https:`&&!t.username&&!t.password}catch{return!1}}function u(e){let t=new Set([`not-installed`,`downloading`,`verifying`,`installed`,`cancelled`,`error`]);if(!e||!e.defaults||!Array.isArray(e.models)||e.models.length>16||e.models.some(e=>!e||!c(e.id,128)||!c(e.name)||![`asr`,`tts`].includes(e.kind)||!t.has(e.status)||!Array.isArray(e.languages)||e.languages.length>16||e.languages.some(e=>!c(e,40))||!l(e.license)||!Number.isSafeInteger(e.totalBytes)||e.totalBytes<0||!Number.isSafeInteger(e.filesBytes)||e.filesBytes<0||!Number.isSafeInteger(e.downloadedBytes)||e.downloadedBytes<0||e.downloadedBytes>e.totalBytes||e.voices!==void 0&&(!Array.isArray(e.voices)||e.voices.length>256||e.voices.some(e=>!e||!c(e.id,128)||!c(e.name)||!c(e.language,40))))||new Set(e.models.map(e=>e.id)).size!==e.models.length||![`asr`,`tts`].every(t=>e.models.some(n=>n.id===e.defaults[t]&&n.kind===t)))throw Error(`Invalid local speech model catalog.`);let n=e.models.flatMap(e=>e.voices||[]);if(new Set(n.map(e=>e.id)).size!==n.length||!e.models.find(t=>t.id===e.defaults.tts)?.voices?.some(t=>t.id===e.defaults.voice))throw Error(`Invalid local speech model catalog.`);return e}async function d(e){e?.throwIfAborted();let t=window.__PISPER_MOBILE_APP__?await s(`mobile_speech_models`):await o(`/api/speech/models`,{signal:e});return e?.throwIfAborted(),u(t)}async function f(e){return window.__PISPER_MOBILE_APP__?s(`mobile_download_speech_model`,{modelId:e}):o(`/api/speech/models/download`,{method:`POST`,body:{modelId:e}})}async function p(e){return window.__PISPER_MOBILE_APP__?s(`mobile_cancel_speech_model_download`,{modelId:e}):o(`/api/speech/models/cancel`,{method:`POST`,body:{modelId:e}})}function m(e,t){return e.models.filter(n=>t.some(t=>n.id===e.defaults[t]))}function h(e){return String(e).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/([A-Z])([A-Z][a-z])/g,`$1 $2`).replace(/[_-]+/g,` `).replace(/\s+/g,` `).trim().toLowerCase()}function g(e){return[...new Set(e.map(h).filter(Boolean))].join(`
3
3
  `)}var _;function v(){if(_===void 0)try{RegExp(`(?<=a)`),_=!0}catch{_=!1}return _}var y=/[A-Za-z0-9_./\\-]/;function b(e,t){let n=new Map;for(let e of t){let t=h(e);if(!(!/[A-Z]/.test(e)&&!e.includes(` `)||!/^[A-Za-z][A-Za-z0-9 ]*$/.test(e)))for(let r of[t,e.toLowerCase()])r.length>=3&&!n.has(r)&&n.set(r,e)}if(!n.size)return e;let r=`(?:${[...n.keys()].sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`).replace(/ /g,`[ \\t]+`)).join(`|`)})`,i=`(?![A-Za-z0-9_/\\\\-]|\\.[A-Za-z0-9_])`,a=v(),o=RegExp(a?`(?<![A-Za-z0-9_./\\\\-])${r}${i}`:`${r}${i}`,`gi`);return e.replace(o,(e,...t)=>{if(!a){let n=t[t.length-2],r=t[t.length-1];if(n>0&&y.test(r[n-1]))return e}return n.get(e.toLowerCase().replace(/[ \t]+/g,` `))||e})}var x=e({loadSpeechHotwords:()=>S,prepareSpeechSession:()=>C});async function S(e,t){let i=n(t,3e4);try{let t=await o(`/api/speech/terms?sessionId=${encodeURIComponent(e)}`,{signal:i.signal});if(r(i.signal),!Array.isArray(t.terms)||t.terms.some(e=>typeof e!=`string`))throw Error(`语音术语响应无效。`);return{terms:t.terms,hotwords:g(t.terms)}}finally{i.dispose()}}async function C(e,o){r(o);let c=crypto.randomUUID(),l={requestId:c,...e,kinds:[...e.kinds]},u=!!window.__PISPER_MOBILE_APP__,d=!e.kinds.includes(`tts`),f=n(o),p=n(f.signal,6e4),m=!1,h=!1,g,_,v=new Promise((e,t)=>{g=e,_=t}),y=()=>{s(`mobile_release_speech_session`,{requestId:c}).catch(()=>{})},b=()=>{p.signal.removeEventListener(`abort`,S),f.signal.removeEventListener(`abort`,x),p.dispose(),f.dispose()},x=()=>{_(i(f.signal)),b(),u&&y()},S=()=>f.abort(i(p.signal));p.signal.addEventListener(`abort`,S,{once:!0}),f.signal.addEventListener(`abort`,x,{once:!0});let C=()=>{r(f.signal),!(!h||!d||m)&&(m=!0,p.signal.removeEventListener(`abort`,S),p.dispose(),g())},w=e=>{f.signal.aborted||(_(e),f.abort(e),m&&window.dispatchEvent(new Event(`pisper:speech-interrupted`)))},T=e=>{if(!e||typeof e!=`object`||!(`ready`in e)||e.ready!==!0)throw Error(`Invalid speech session readiness.`);h=!0,C()};d||Promise.all([t(()=>import(`./speech-text-BTwYi9Sb.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8])),t(()=>import(`./speech-stream-text-DF6aAUVb.js`),__vite__mapDeps([9,1,2,3,4,5,6,7,8,10,0]))]).then(()=>{d=!0,C()}).catch(w),(async()=>{if(u){try{T(await s(`mobile_prepare_speech_session`,l))}finally{f.signal.aborted&&y()}return}let e=await fetch(`/api/speech/session`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`text/event-stream`},body:JSON.stringify(l),signal:f.signal});throw await a(e,(e,t)=>{if(r(f.signal),e===`ready`)T(t);else if(e===`error`)throw Error(t.error||`Speech session failed.`)}),Error(`Speech session connection was interrupted.`)})().catch(w);try{return await v,r(f.signal),{requestId:c,signal:f.signal}}catch(e){throw f.abort(e),b(),e}}export{g as a,d as c,b as i,s as l,C as n,p as o,x as r,f as s,S as t,m as u};
@@ -1 +1 @@
1
- import{C as e,D as t,E as n,a as r,b as i,d as a,g as o,h as s,l as c,m as l,o as u,p as d,t as f,u as p}from"./query-Bj-DUNYq.js";import{t as m}from"./mutation-CEbxdVYy.js";import{t as h}from"./api-m-Yq8n0q.js";var g=class extends t{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new m({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=_(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=_(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=_(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=_(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){u.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>d(t,e))}findAll(e={}){return this.getAll().filter(t=>d(e,t))}notify(e){u.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return u.batch(()=>Promise.all(e.map(e=>e.continue().catch(s))))}};function _(e){return e.options.scope?.id}var v=class extends t{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??a(r,t),o=this.get(i);return o||(o=new f({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(o)),o}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){u.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>l(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>l(e,t)):t}notify(e){u.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){u.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){u.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},y=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new v,this.#t=e.mutationCache||new g,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=n.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=r.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(i(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=c(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return u.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;u.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return u.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=u.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(s).catch(s)}invalidateQueries(e,t={}){return u.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=u.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(s)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(s)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(i(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(s).catch(s)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(s).catch(s)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return r.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(p(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{o(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(p(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{o(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(t){if(t._defaulted)return t;let n={...this.#n.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return n.queryHash||=a(n.queryKey,n),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!==`always`),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode=`offlineFirst`),n.queryFn===e&&(n.enabled=!1),n}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},b=new Set;function x(e){if(!(typeof window>`u`)){try{if(window.localStorage.getItem(`pisper:startup-diagnostics`)!==`1`)return}catch{return}b.has(e)||(b.add(e),performance.mark(`pisper-${e}`),console.debug(`[startup]`,e,Math.round(performance.now())))}}var S=new y({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1,staleTime:15e3},mutations:{retry:0}}}),C={config:`/api/config`,sessions:`/api/sessions`,"notification-settings":`/api/settings/notifications`,plugins:`/api/plugins`},w=new Map,T=[`sessions`,`board`];function E(e){return e===`sessions`?T:[e]}function D(e){return{queryKey:E(e),queryFn:async()=>{for(;;){let t=w.get(e);try{let n=await h(C[e]);if(t!==w.get(e))continue;return e===`sessions`&&x(`sessions-loaded`),n}catch(n){if(t!==w.get(e))continue;throw n}}},staleTime:15e3}}function O(e,t=!1){return S.fetchQuery({...D(e),...t?{staleTime:0}:{}})}function k(e){return w.set(e,(w.get(e)??0)+1),S.invalidateQueries({queryKey:E(e),exact:!0},{cancelRefetch:!1})}function A(e){let t=()=>{k(`sessions`)};return e.addEventListener(`pisper:sessions-updated`,t),()=>e.removeEventListener(`pisper:sessions-updated`,t)}export{S as a,k as i,O as n,D as o,A as r,x as s,T as t};
1
+ import{C as e,D as t,E as n,a as r,b as i,d as a,g as o,h as s,l as c,m as l,o as u,p as d,t as f,u as p}from"./query-Bj-DUNYq.js";import{t as m}from"./mutation-CEbxdVYy.js";import{t as h}from"./api-CIB7ZPX3.js";var g=class extends t{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new m({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=_(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=_(e);if(typeof t==`string`){let n=this.#t.get(t);if(n){if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=_(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=_(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){u.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>d(t,e))}findAll(e={}){return this.getAll().filter(t=>d(e,t))}notify(e){u.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return u.batch(()=>Promise.all(e.map(e=>e.continue().catch(s))))}};function _(e){return e.options.scope?.id}var v=class extends t{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??a(r,t),o=this.get(i);return o||(o=new f({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(o)),o}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){u.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>l(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>l(e,t)):t}notify(e){u.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){u.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){u.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},y=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new v,this.#t=e.mutationCache||new g,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=n.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=r.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(i(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=c(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return u.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;u.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return u.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=u.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(s).catch(s)}invalidateQueries(e,t={}){return u.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=u.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(s)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(s)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(i(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(s).catch(s)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(s).catch(s)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return r.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(p(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{o(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(p(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{o(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(t){if(t._defaulted)return t;let n={...this.#n.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return n.queryHash||=a(n.queryKey,n),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!==`always`),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode=`offlineFirst`),n.queryFn===e&&(n.enabled=!1),n}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},b=new Set;function x(e){if(!(typeof window>`u`)){try{if(window.localStorage.getItem(`pisper:startup-diagnostics`)!==`1`)return}catch{return}b.has(e)||(b.add(e),performance.mark(`pisper-${e}`),console.debug(`[startup]`,e,Math.round(performance.now())))}}var S=new y({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1,staleTime:15e3},mutations:{retry:0}}}),C={config:`/api/config`,sessions:`/api/sessions`,"notification-settings":`/api/settings/notifications`,plugins:`/api/plugins`},w=new Map,T=[`sessions`,`board`];function E(e){return e===`sessions`?T:[e]}function D(e){return{queryKey:E(e),queryFn:async()=>{for(;;){let t=w.get(e);try{let n=await h(C[e]);if(t!==w.get(e))continue;return e===`sessions`&&x(`sessions-loaded`),n}catch(n){if(t!==w.get(e))continue;throw n}}},staleTime:15e3}}function O(e,t=!1){return S.fetchQuery({...D(e),...t?{staleTime:0}:{}})}function k(e){return w.set(e,(w.get(e)??0)+1),S.invalidateQueries({queryKey:E(e),exact:!0},{cancelRefetch:!1})}function A(e){let t=()=>{k(`sessions`)};return e.addEventListener(`pisper:sessions-updated`,t),()=>e.removeEventListener(`pisper:sessions-updated`,t)}export{S as a,k as i,O as n,D as o,A as r,x as s,T as t};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{d as n,f as r,l as i,p as a,t as o}from"./i18n-Du-JO3Qx.js";import{s}from"./vendor-state-GkUciC5H.js";var c=e(t()),l=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);g(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},u={},d=(e,t,n,r)=>{g(n)&&u[n]||(g(n)&&(u[n]=new Date),l(e,t,n,r))},f=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},p=(e,t,n)=>{e.loadNamespaces(t,f(e,n))},m=(e,t,n,r)=>{if(g(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return p(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,f(e,r))},h=(e,t,n={})=>!t.languages||!t.languages.length?(d(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),g=e=>typeof e==`string`,_=e=>typeof e==`object`&&!!e,v=(0,c.createContext)(),y=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}},b=s(),x={t:(e,t)=>{if(g(t))return t;if(_(t)&&g(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},S=()=>()=>{},C=(e,t={})=>{let{i18n:n}=t,{i18n:i,defaultNS:o}=(0,c.useContext)(v)||{},s=n||i||r();s&&!s.reportNamespaces&&(s.reportNamespaces=new y),s||d(s,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next or by passing it via props or context. In monorepo setups, make sure there is only one instance of react-i18next.`);let l=(0,c.useMemo)(()=>({...a(),...s?.options?.react,...t}),[s,t]),{useSuspense:u,keyPrefix:f}=l,_=e||o||s?.options?.defaultNS,C=g(_)?[_]:_||[`translation`],w=(0,c.useMemo)(()=>C,C);s?.reportNamespaces?.addUsedNamespaces?.(w);let T=(0,c.useRef)(0),E=(0,c.useCallback)(e=>{if(!s)return S;let{bindI18n:t,bindI18nStore:n}=l,r=()=>{T.current+=1,e()};return t&&s.on(t,r),n&&s.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>s.off(e,r)),n&&n.split(` `).forEach(e=>s.store.off(e,r))}},[s,l]),D=(0,c.useRef)(),O=(0,c.useCallback)(()=>{if(!s)return x;let e=!!(s.isInitialized||s.initializedStoreOnce)&&w.every(e=>h(e,s,l)),n=t.lng||s.language,r=T.current,i=D.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===f&&i.revision===r)return i;let a={t:s.getFixedT(n,l.nsMode===`fallback`?w:w[0],f,{scopeNs:w}),ready:e,lng:n,keyPrefix:f,revision:r};return D.current=a,a},[s,w,f,l,t.lng]),[k,A]=(0,c.useState)(0),{t:j,ready:M}=(0,b.useSyncExternalStore)(E,O,O);(0,c.useEffect)(()=>{if(s&&!M&&!u){let e=()=>A(e=>e+1);t.lng?m(s,t.lng,w,e):p(s,w,e)}},[s,t.lng,w,M,u,k]);let N=s||{},P=(0,c.useRef)(null),F=(0,c.useRef)(),I=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,"__original",{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},L=(0,c.useMemo)(()=>{let e=N,t=e?.language,n=e;e&&(P.current&&P.current.__original===e&&F.current===t?n=P.current:(n=I(e),P.current=n,F.current=t));let r=!M&&!u?(...e)=>(d(s,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),j(...e)):j,i=[r,n,M];return i.t=r,i.i18n=n,i.ready=M,i},[j,N,M,N.resolvedLanguage,N.language,N.languages]);if(s&&u&&!M){let e=!1;try{e=!1}catch{}throw e&&d(s,`SUSPENDED_WHILE_LOADING`,`useTranslation: suspended while translations are loading (useSuspense is true by default). Add a <Suspense> boundary above this component, or set react.useSuspense: false in the i18next init options. https://react.i18next.com/latest/usetranslation-hook`),new Promise(e=>{let n=()=>e();t.lng?m(s,t.lng,w,n):p(s,w,n)})}return L};function w(){let{i18n:e}=C(),t=i(e.resolvedLanguage)?e.resolvedLanguage:o;return{language:t,locale:t,setLanguage:(0,c.useCallback)(t=>{i(t)&&e.changeLanguage(t)},[e]),t:(0,c.useCallback)((e,r)=>n(e,t,r),[t])}}export{C as n,v as r,w as t};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{d as n,f as r,l as i,p as a,t as o}from"./i18n-CXRjs9ow.js";import{s}from"./vendor-state-GkUciC5H.js";var c=e(t()),l=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);g(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},u={},d=(e,t,n,r)=>{g(n)&&u[n]||(g(n)&&(u[n]=new Date),l(e,t,n,r))},f=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},p=(e,t,n)=>{e.loadNamespaces(t,f(e,n))},m=(e,t,n,r)=>{if(g(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return p(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,f(e,r))},h=(e,t,n={})=>!t.languages||!t.languages.length?(d(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),g=e=>typeof e==`string`,_=e=>typeof e==`object`&&!!e,v=(0,c.createContext)(),y=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}},b=s(),x={t:(e,t)=>{if(g(t))return t;if(_(t)&&g(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},S=()=>()=>{},C=(e,t={})=>{let{i18n:n}=t,{i18n:i,defaultNS:o}=(0,c.useContext)(v)||{},s=n||i||r();s&&!s.reportNamespaces&&(s.reportNamespaces=new y),s||d(s,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next or by passing it via props or context. In monorepo setups, make sure there is only one instance of react-i18next.`);let l=(0,c.useMemo)(()=>({...a(),...s?.options?.react,...t}),[s,t]),{useSuspense:u,keyPrefix:f}=l,_=e||o||s?.options?.defaultNS,C=g(_)?[_]:_||[`translation`],w=(0,c.useMemo)(()=>C,C);s?.reportNamespaces?.addUsedNamespaces?.(w);let T=(0,c.useRef)(0),E=(0,c.useCallback)(e=>{if(!s)return S;let{bindI18n:t,bindI18nStore:n}=l,r=()=>{T.current+=1,e()};return t&&s.on(t,r),n&&s.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>s.off(e,r)),n&&n.split(` `).forEach(e=>s.store.off(e,r))}},[s,l]),D=(0,c.useRef)(),O=(0,c.useCallback)(()=>{if(!s)return x;let e=!!(s.isInitialized||s.initializedStoreOnce)&&w.every(e=>h(e,s,l)),n=t.lng||s.language,r=T.current,i=D.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===f&&i.revision===r)return i;let a={t:s.getFixedT(n,l.nsMode===`fallback`?w:w[0],f,{scopeNs:w}),ready:e,lng:n,keyPrefix:f,revision:r};return D.current=a,a},[s,w,f,l,t.lng]),[k,A]=(0,c.useState)(0),{t:j,ready:M}=(0,b.useSyncExternalStore)(E,O,O);(0,c.useEffect)(()=>{if(s&&!M&&!u){let e=()=>A(e=>e+1);t.lng?m(s,t.lng,w,e):p(s,w,e)}},[s,t.lng,w,M,u,k]);let N=s||{},P=(0,c.useRef)(null),F=(0,c.useRef)(),I=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,"__original",{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},L=(0,c.useMemo)(()=>{let e=N,t=e?.language,n=e;e&&(P.current&&P.current.__original===e&&F.current===t?n=P.current:(n=I(e),P.current=n,F.current=t));let r=!M&&!u?(...e)=>(d(s,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),j(...e)):j,i=[r,n,M];return i.t=r,i.i18n=n,i.ready=M,i},[j,N,M,N.resolvedLanguage,N.language,N.languages]);if(s&&u&&!M){let e=!1;try{e=!1}catch{}throw e&&d(s,`SUSPENDED_WHILE_LOADING`,`useTranslation: suspended while translations are loading (useSuspense is true by default). Add a <Suspense> boundary above this component, or set react.useSuspense: false in the i18next init options. https://react.i18next.com/latest/usetranslation-hook`),new Promise(e=>{let n=()=>e();t.lng?m(s,t.lng,w,n):p(s,w,n)})}return L};function w(){let{i18n:e}=C(),t=i(e.resolvedLanguage)?e.resolvedLanguage:o;return{language:t,locale:t,setLanguage:(0,c.useCallback)(t=>{i(t)&&e.changeLanguage(t)},[e]),t:(0,c.useCallback)((e,r)=>n(e,t,r),[t])}}export{C as n,v as r,w as t};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{u as t}from"./vendor-router-CSN_DGvx.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{f as i}from"./routes-DIeaqWVc.js";import{t as a}from"./use-i18n-Cyg5th6Z.js";import{t as o}from"./createLucideIcon-Cd-3GVxJ.js";import{t as s}from"./WorkspacePicker-LbBXFH77.js";import{t as c}from"./folder-open-FIShC5Qk.js";import{t as l}from"./utils-C8uzG5AZ.js";import{t as u}from"./button-CCcCN8tE.js";import{a as d,i as f,l as p,o as m,s as h,t as g}from"./dialog-5MLAAE-f.js";import{t as _}from"./input-CPw-zkYh.js";import{t as v}from"./textarea-DmATpOqT.js";import{n as y}from"./field-DoLEb0np.js";import{i as b,r as x,s as S,t as C}from"./BotAvatar-CNL-APwP.js";import{c as w,n as T,x as E}from"./bots-store-BMcWJ2Gm.js";var D=o(`shuffle`,[[`path`,{d:`m18 14 4 4-4 4`,key:`10pe0f`}],[`path`,{d:`m18 2 4 4-4 4`,key:`pucp1d`}],[`path`,{d:`M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22`,key:`1ailkh`}],[`path`,{d:`M2 6h1.972a4 4 0 0 1 3.6 2.2`,key:`km57vx`}],[`path`,{d:`M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45`,key:`os18l9`}]]),O=e(n(),1);function k(e,t){switch(t){case`bean`:return e(`bots:character.bean`);case`robot`:return e(`bots:character.robot`);case`cat`:return e(`bots:character.cat`);case`owl`:return e(`bots:character.owl`);case`ghost`:return e(`bots:character.ghost`);case`cloud`:return e(`bots:character.cloud`);case`octo`:return e(`bots:character.octo`);case`bunny`:return e(`bots:character.bunny`);case`bear`:return e(`bots:character.bear`);case`fox`:return e(`bots:character.fox`);case`star`:return e(`bots:character.star`);default:return e(`bots:character.blob`)}}function A(e,t){return e(t===`full-access`?`bots:details.modeFull`:t===`workspace-write`?`bots:details.modeWorkspace`:`bots:details.modeApproval`)}function j(e,t){return`ref`in t?t.ref.split(`/`).at(-1)||t.ref:t.tier===`fast`?e(`bots:model.tierFast`):t.tier===`strong`?e(`bots:model.tierStrong`):e(`bots:model.tierStandard`)}function M(e,t){switch(t){case`off`:return e(`bots:model.thinkingOff`);case`minimal`:return e(`bots:model.thinkingMinimal`);case`low`:return e(`bots:model.thinkingLow`);case`medium`:return e(`bots:model.thinkingMedium`);case`high`:return e(`bots:model.thinkingHigh`);case`xhigh`:return e(`bots:model.thinkingXhigh`);default:return e(`bots:model.thinkingDefault`)}}function N(e,t){return e(t===`weixin`?`bots:triggers.weixin`:t===`qq`?`bots:triggers.qq`:t===`telegram`?`bots:triggers.telegram`:`bots:triggers.feishu`)}function P(e,t){switch(t){case 0:return e(`bots:triggers.sunday`);case 2:return e(`bots:triggers.tuesday`);case 3:return e(`bots:triggers.wednesday`);case 4:return e(`bots:triggers.thursday`);case 5:return e(`bots:triggers.friday`);case 6:return e(`bots:triggers.saturday`);default:return e(`bots:triggers.monday`)}}function F(e,t){return t.frequency===`once`?e(`bots:triggers.onceAt`,{date:t.date,time:t.time}):t.frequency===`weekly`?e(`bots:triggers.weeklyAt`,{day:P(e,t.dayOfWeek),time:t.time}):t.frequency===`daily`?e(`bots:triggers.dailyAt`,{time:t.time}):e(`bots:triggers.otherSchedule`)}function I(e){return[...new Set(e.split(/[\s,,、]+/).map(e=>e.trim()).filter(Boolean))]}var L=r();function R({value:e,onChange:t,disabled:n=!1}){let{t:r}=a();return(0,L.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":r(`bots:new.character`),className:`grid grid-cols-6 gap-2`,children:x.map(i=>(0,L.jsx)(`button`,{type:`button`,role:`radio`,disabled:n,"aria-checked":e.character===i,"aria-label":k(r,i),title:k(r,i),className:l(`grid place-items-center rounded-[12px] p-0.5 ring-offset-2 ring-offset-surface-raised`,e.character===i&&`ring-2 ring-content`),onClick:()=>t({...e,character:i}),children:(0,L.jsx)(C,{avatar:{...e,character:i},size:40,animate:!1})},i))}),(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":r(`bots:new.color`),className:`flex gap-2`,children:b.map(i=>(0,L.jsx)(`button`,{type:`button`,role:`radio`,disabled:n,"aria-checked":e.color===i,"aria-label":r(`bots:new.colorOption`,{index:b.indexOf(i)+1}),className:l(`rounded-full p-0.5 ring-offset-2 ring-offset-surface-raised`,e.color===i&&`ring-2 ring-content`),onClick:()=>t({...e,color:i}),children:(0,L.jsx)(C,{avatar:{...e,color:i},size:24,animate:!1,className:`rounded-full`})},i))})]})}function z({open:e,onOpenChange:t,onCreated:n}){let{t:r}=a(),i=T(e=>e.upsert),[o,l]=(0,O.useState)(``),[b,x]=(0,O.useState)(``),[E,k]=(0,O.useState)(S),[A,j]=(0,O.useState)(!1),[M,N]=(0,O.useState)(``),[P,F]=(0,O.useState)(!1),[I,z]=(0,O.useState)(!1),[B,V]=(0,O.useState)(!1),[H,U]=(0,O.useState)(``);return(0,O.useEffect)(()=>{e&&(k(S()),j(!1),F(!1),U(``))},[e]),(0,L.jsx)(g,{open:e,onOpenChange:t,children:(0,L.jsxs)(f,{className:`sm:max-w-[440px]`,children:[(0,L.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault(),V(!0),U(``);try{let e=await w({name:o.trim(),avatar:E,instructions:b.trim(),workspace:{cwd:M.trim()}});i(e),t(!1),l(``),x(``),N(``),n(e)}catch(e){U(e instanceof Error?e.message:String(e))}finally{V(!1)}},className:`flex flex-col gap-4`,children:[(0,L.jsxs)(h,{children:[(0,L.jsx)(p,{children:r(`bots:new.title`)}),(0,L.jsx)(d,{children:r(`bots:new.description`)})]}),(0,L.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`group relative flex-none rounded-[28%]`,"aria-label":r(`bots:new.shuffle`),title:r(`bots:new.shuffle`),onClick:()=>k(S()),children:[(0,L.jsx)(C,{avatar:E,size:56}),(0,L.jsx)(`span`,{className:`absolute -right-1 -bottom-1 grid size-5 place-items-center rounded-full border border-stroke bg-surface-raised text-content-muted group-hover:text-content`,children:(0,L.jsx)(D,{className:`size-3`,"aria-hidden":`true`})})]}),(0,L.jsxs)(y,{variant:`control`,className:`flex-1`,children:[r(`bots:new.name`),(0,L.jsx)(_,{value:o,autoFocus:!0,maxLength:24,placeholder:r(`bots:new.namePlaceholder`),onChange:e=>l(e.target.value)})]})]}),A?(0,L.jsx)(R,{value:E,onChange:k}):(0,L.jsx)(`button`,{type:`button`,className:`-mt-2 self-start text-xs text-content-muted underline-offset-2 hover:text-content hover:underline`,onClick:()=>j(!0),children:r(`bots:new.chooseLook`)}),(0,L.jsxs)(y,{variant:`control`,children:[r(`bots:new.duty`),(0,L.jsx)(v,{value:b,rows:3,maxLength:12e3,placeholder:r(`bots:new.dutyPlaceholder`),onChange:e=>x(e.target.value)})]}),P?(0,L.jsxs)(y,{variant:`control`,children:[r(`bots:new.folder`),(0,L.jsxs)(`span`,{className:`flex gap-2`,children:[(0,L.jsx)(_,{value:M,className:`font-mono`,placeholder:r(`bots:new.folderDefault`),onChange:e=>N(e.target.value)}),(0,L.jsxs)(u,{type:`button`,variant:`outline`,onClick:()=>z(!0),children:[(0,L.jsx)(c,{"aria-hidden":`true`}),r(`bots:new.pick`)]})]})]}):(0,L.jsxs)(`p`,{className:`text-xs text-content-muted`,children:[r(`bots:new.folderSummary`),` `,(0,L.jsx)(`button`,{type:`button`,className:`text-content-secondary underline underline-offset-2 hover:text-content`,onClick:()=>F(!0),children:r(`bots:new.changeFolder`)})]}),H&&(0,L.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:H}),(0,L.jsxs)(m,{children:[(0,L.jsx)(u,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:r(`bots:new.cancel`)}),(0,L.jsx)(u,{type:`submit`,disabled:B||!o.trim(),children:r(B?`bots:new.creating`:`bots:new.create`)})]})]}),(0,L.jsx)(s,{open:I,initialPath:M,onOpenChange:z,onSelect:e=>{N(e),z(!1)}})]})})}function B(e){let n=t(),r=T(e=>e.load);return(0,O.useCallback)(async t=>{try{let e=await E(t.id);e!==t.threadSessionId&&r(),n(i(e))}catch(n){e(n instanceof Error?n.message:String(n),t.id)}},[r,n,e])}export{M as a,F as c,j as i,I as l,z as n,A as o,R as r,N as s,B as t,P as u};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{u as t}from"./vendor-router-CSN_DGvx.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{f as i}from"./routes-DIeaqWVc.js";import{t as a}from"./use-i18n-B2p84ZNR.js";import{t as o}from"./createLucideIcon-Cd-3GVxJ.js";import{t as s}from"./WorkspacePicker-CROSQVzJ.js";import{t as c}from"./folder-open-FIShC5Qk.js";import{t as l}from"./utils-C8uzG5AZ.js";import{t as u}from"./button-CCcCN8tE.js";import{a as d,i as f,l as p,o as m,s as h,t as g}from"./dialog-D1TVm0d6.js";import{t as _}from"./input-CPw-zkYh.js";import{t as v}from"./textarea-DmATpOqT.js";import{n as y}from"./field-DoLEb0np.js";import{i as b,r as x,s as S,t as C}from"./BotAvatar-CNL-APwP.js";import{c as w,n as T,x as E}from"./bots-store-BG81qEJz.js";var D=o(`shuffle`,[[`path`,{d:`m18 14 4 4-4 4`,key:`10pe0f`}],[`path`,{d:`m18 2 4 4-4 4`,key:`pucp1d`}],[`path`,{d:`M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22`,key:`1ailkh`}],[`path`,{d:`M2 6h1.972a4 4 0 0 1 3.6 2.2`,key:`km57vx`}],[`path`,{d:`M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45`,key:`os18l9`}]]),O=e(n(),1);function k(e,t){switch(t){case`bean`:return e(`bots:character.bean`);case`robot`:return e(`bots:character.robot`);case`cat`:return e(`bots:character.cat`);case`owl`:return e(`bots:character.owl`);case`ghost`:return e(`bots:character.ghost`);case`cloud`:return e(`bots:character.cloud`);case`octo`:return e(`bots:character.octo`);case`bunny`:return e(`bots:character.bunny`);case`bear`:return e(`bots:character.bear`);case`fox`:return e(`bots:character.fox`);case`star`:return e(`bots:character.star`);default:return e(`bots:character.blob`)}}function A(e,t){return e(t===`full-access`?`bots:details.modeFull`:t===`workspace-write`?`bots:details.modeWorkspace`:`bots:details.modeApproval`)}function j(e,t){return`ref`in t?t.ref.split(`/`).at(-1)||t.ref:t.tier===`fast`?e(`bots:model.tierFast`):t.tier===`strong`?e(`bots:model.tierStrong`):e(`bots:model.tierStandard`)}function M(e,t){switch(t){case`off`:return e(`bots:model.thinkingOff`);case`minimal`:return e(`bots:model.thinkingMinimal`);case`low`:return e(`bots:model.thinkingLow`);case`medium`:return e(`bots:model.thinkingMedium`);case`high`:return e(`bots:model.thinkingHigh`);case`xhigh`:return e(`bots:model.thinkingXhigh`);default:return e(`bots:model.thinkingDefault`)}}function N(e,t){return e(t===`weixin`?`bots:triggers.weixin`:t===`qq`?`bots:triggers.qq`:t===`telegram`?`bots:triggers.telegram`:`bots:triggers.feishu`)}function P(e,t){switch(t){case 0:return e(`bots:triggers.sunday`);case 2:return e(`bots:triggers.tuesday`);case 3:return e(`bots:triggers.wednesday`);case 4:return e(`bots:triggers.thursday`);case 5:return e(`bots:triggers.friday`);case 6:return e(`bots:triggers.saturday`);default:return e(`bots:triggers.monday`)}}function F(e,t){return t.frequency===`once`?e(`bots:triggers.onceAt`,{date:t.date,time:t.time}):t.frequency===`weekly`?e(`bots:triggers.weeklyAt`,{day:P(e,t.dayOfWeek),time:t.time}):t.frequency===`daily`?e(`bots:triggers.dailyAt`,{time:t.time}):e(`bots:triggers.otherSchedule`)}function I(e){return[...new Set(e.split(/[\s,,、]+/).map(e=>e.trim()).filter(Boolean))]}var L=r();function R({value:e,onChange:t,disabled:n=!1}){let{t:r}=a();return(0,L.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":r(`bots:new.character`),className:`grid grid-cols-6 gap-2`,children:x.map(i=>(0,L.jsx)(`button`,{type:`button`,role:`radio`,disabled:n,"aria-checked":e.character===i,"aria-label":k(r,i),title:k(r,i),className:l(`grid place-items-center rounded-[12px] p-0.5 ring-offset-2 ring-offset-surface-raised`,e.character===i&&`ring-2 ring-content`),onClick:()=>t({...e,character:i}),children:(0,L.jsx)(C,{avatar:{...e,character:i},size:40,animate:!1})},i))}),(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":r(`bots:new.color`),className:`flex gap-2`,children:b.map(i=>(0,L.jsx)(`button`,{type:`button`,role:`radio`,disabled:n,"aria-checked":e.color===i,"aria-label":r(`bots:new.colorOption`,{index:b.indexOf(i)+1}),className:l(`rounded-full p-0.5 ring-offset-2 ring-offset-surface-raised`,e.color===i&&`ring-2 ring-content`),onClick:()=>t({...e,color:i}),children:(0,L.jsx)(C,{avatar:{...e,color:i},size:24,animate:!1,className:`rounded-full`})},i))})]})}function z({open:e,onOpenChange:t,onCreated:n}){let{t:r}=a(),i=T(e=>e.upsert),[o,l]=(0,O.useState)(``),[b,x]=(0,O.useState)(``),[E,k]=(0,O.useState)(S),[A,j]=(0,O.useState)(!1),[M,N]=(0,O.useState)(``),[P,F]=(0,O.useState)(!1),[I,z]=(0,O.useState)(!1),[B,V]=(0,O.useState)(!1),[H,U]=(0,O.useState)(``);return(0,O.useEffect)(()=>{e&&(k(S()),j(!1),F(!1),U(``))},[e]),(0,L.jsx)(g,{open:e,onOpenChange:t,children:(0,L.jsxs)(f,{className:`sm:max-w-[440px]`,children:[(0,L.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault(),V(!0),U(``);try{let e=await w({name:o.trim(),avatar:E,instructions:b.trim(),workspace:{cwd:M.trim()}});i(e),t(!1),l(``),x(``),N(``),n(e)}catch(e){U(e instanceof Error?e.message:String(e))}finally{V(!1)}},className:`flex flex-col gap-4`,children:[(0,L.jsxs)(h,{children:[(0,L.jsx)(p,{children:r(`bots:new.title`)}),(0,L.jsx)(d,{children:r(`bots:new.description`)})]}),(0,L.jsxs)(`div`,{className:`flex items-end gap-3`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`group relative flex-none rounded-[28%]`,"aria-label":r(`bots:new.shuffle`),title:r(`bots:new.shuffle`),onClick:()=>k(S()),children:[(0,L.jsx)(C,{avatar:E,size:56}),(0,L.jsx)(`span`,{className:`absolute -right-1 -bottom-1 grid size-5 place-items-center rounded-full border border-stroke bg-surface-raised text-content-muted group-hover:text-content`,children:(0,L.jsx)(D,{className:`size-3`,"aria-hidden":`true`})})]}),(0,L.jsxs)(y,{variant:`control`,className:`flex-1`,children:[r(`bots:new.name`),(0,L.jsx)(_,{value:o,autoFocus:!0,maxLength:24,placeholder:r(`bots:new.namePlaceholder`),onChange:e=>l(e.target.value)})]})]}),A?(0,L.jsx)(R,{value:E,onChange:k}):(0,L.jsx)(`button`,{type:`button`,className:`-mt-2 self-start text-xs text-content-muted underline-offset-2 hover:text-content hover:underline`,onClick:()=>j(!0),children:r(`bots:new.chooseLook`)}),(0,L.jsxs)(y,{variant:`control`,children:[r(`bots:new.duty`),(0,L.jsx)(v,{value:b,rows:3,maxLength:12e3,placeholder:r(`bots:new.dutyPlaceholder`),onChange:e=>x(e.target.value)})]}),P?(0,L.jsxs)(y,{variant:`control`,children:[r(`bots:new.folder`),(0,L.jsxs)(`span`,{className:`flex gap-2`,children:[(0,L.jsx)(_,{value:M,className:`font-mono`,placeholder:r(`bots:new.folderDefault`),onChange:e=>N(e.target.value)}),(0,L.jsxs)(u,{type:`button`,variant:`outline`,onClick:()=>z(!0),children:[(0,L.jsx)(c,{"aria-hidden":`true`}),r(`bots:new.pick`)]})]})]}):(0,L.jsxs)(`p`,{className:`text-xs text-content-muted`,children:[r(`bots:new.folderSummary`),` `,(0,L.jsx)(`button`,{type:`button`,className:`text-content-secondary underline underline-offset-2 hover:text-content`,onClick:()=>F(!0),children:r(`bots:new.changeFolder`)})]}),H&&(0,L.jsx)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:H}),(0,L.jsxs)(m,{children:[(0,L.jsx)(u,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:r(`bots:new.cancel`)}),(0,L.jsx)(u,{type:`submit`,disabled:B||!o.trim(),children:r(B?`bots:new.creating`:`bots:new.create`)})]})]}),(0,L.jsx)(s,{open:I,initialPath:M,onOpenChange:z,onSelect:e=>{N(e),z(!1)}})]})})}function B(e){let n=t(),r=T(e=>e.load);return(0,O.useCallback)(async t=>{try{let e=await E(t.id);e!==t.threadSessionId&&r(),n(i(e))}catch(n){e(n instanceof Error?n.message:String(n),t.id)}},[r,n,e])}export{M as a,F as c,j as i,I as l,z as n,A as o,R as r,N as s,B as t,P as u};
@@ -1,3 +1,3 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{h as t}from"./vendor-router-CSN_DGvx.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./vendor-ui-DvrYggeS.js";import{t as a}from"./use-i18n-Cyg5th6Z.js";import{r as o,t as s}from"./useQuery-DdcpUQhO.js";import{a as c,i as l,u}from"./api-m-Yq8n0q.js";import{A as d,C as f,D as p,E as m,O as h,S as g,a as _,b as v,c as y,d as b,f as x,h as S,i as C,j as w,k as T,l as E,m as D,n as ee,p as O,s as te,u as ne,w as re,x as ie,y as ae}from"./session-scope-Bz6CeMq0.js";import{o as oe}from"./session-board-status-D2lpFPiI.js";import{o as se}from"./useNewProjectPicker-C9X_vJdU.js";import{n as ce}from"./public-CGbDaxd0.js";import{t as le}from"./dist-41X0pdUs.js";import{t as ue}from"./checkbox-BrEHgFV0.js";import{t as de}from"./progress-5odAz3B9.js";import{t as fe}from"./separator-BPh_qxvc.js";import{t as pe}from"./switch-D_G8wFhs.js";import{t as me}from"./segmented-control-BlM_GKV6.js";import{i as he,n as ge,r as _e,t as ve}from"./tooltip-D4MFbqcG.js";import{t as k}from"./utils-C8uzG5AZ.js";import{n as ye,t as A}from"./button-CCcCN8tE.js";import{t as be}from"./kbd-CAufZTkl.js";import{r as xe,t as Se}from"./useSessionListQuery-BpWfS-tU.js";import{t as Ce}from"./StatusGlyph-1KgitlUg.js";import{t as we}from"./input-CPw-zkYh.js";import{t as Te}from"./textarea-DmATpOqT.js";import{t as Ee}from"./badge-CWB3lj2H.js";import{t as De}from"./safe-mode-instance-65Kg_IPn.js";var j=e(n(),1),M=r();function Oe({className:e,...t}){return(0,M.jsx)(`div`,{"data-slot":`skeleton`,className:k(`animate-pulse rounded-sm bg-surface-hover`,e),...t})}function N(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function P(e,t=4e3){return typeof e==`string`?e.slice(0,t):``}function F(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:0}var I=e=>`/api/custom-ui/components/${encodeURIComponent(e)}`,ke=[`network`,`notify`,`sessions.read`,`sessions.open`,`storage`,`provider.request`];function L(e){let t=N(e)?v(e.component):null;if(!t)throw Error(`Invalid custom UI component response`);return t}function Ae(e){return!N(e)||!Number.isSafeInteger(e.n)||Number(e.n)<1?null:{n:Number(e.n),at:typeof e.at==`string`?e.at:null,summary:P(e.summary,200),source:[`agent`,`import`,`restore`,`local`].includes(e.source)?e.source:null,files:(Array.isArray(e.files)?e.files.slice(0,64):[]).flatMap(e=>N(e)&&typeof e.path==`string`?[{path:P(e.path,512),added:F(e.added),removed:F(e.removed)}]:[]),deleted:(Array.isArray(e.deleted)?e.deleted.slice(0,64):[]).filter(e=>typeof e==`string`)}}function je(e){let t=N(e)?Ae(e.current):null;if(!t||!N(e)||!Array.isArray(e.versions))throw Error(`Invalid custom UI versions response`);return{current:t,versions:e.versions.flatMap(e=>Ae(e)??[]),max:F(e.max)||20}}function Me(e,t){return c(`${I(e)}/versions`,{signal:t,parse:je})}function Ne(e){return!N(e)||typeof e.diff!=`string`?null:{diff:e.diff,truncated:e.truncated===!0,files:(Array.isArray(e.files)?e.files.slice(0,256):[]).flatMap(e=>N(e)&&typeof e.path==`string`&&(e.status===`added`||e.status===`deleted`||e.status===`modified`)?[{path:e.path,status:e.status}]:[])}}function Pe(e,t,n){return c(`${I(e)}/versions/${t}/diff`,{signal:n,parse:e=>{let t=Ne(e);if(!t)throw Error(`Invalid custom UI diff response`);return t}})}function Fe(e,t){return c(`${I(e)}/versions/${t}/restore`,{method:`POST`,body:{},parse:e=>({...je(e),component:L(e)})})}function Ie(e,t){return l(`${I(e)}/export`,{signal:t,timeout:6e4})}function Le(e){if(!N(e)||!Array.isArray(e.entries))throw Error(`Invalid custom UI trash response`);return{retentionDays:F(e.retentionDays)||7,entries:e.entries.slice(0,200).flatMap(e=>N(e)&&typeof e.entry==`string`&&/^[a-z0-9][a-z0-9._-]{0,63}-\d{8}T\d{6}Z(?:-\d{1,4})?$/.test(e.entry)&&typeof e.id==`string`?[{entry:e.entry,id:P(e.id,64),name:P(e.name,120)||P(e.id,64),version:P(e.version,64),kind:e.kind===`native`||e.kind===`legacy`?e.kind:`broken`,reason:e.reason===`legacy-retired`?`legacy-retired`:`deleted`,deletedAt:P(e.deletedAt,64),expiresAt:typeof e.expiresAt==`string`?e.expiresAt:null,instances:F(e.instances)}]:[])}}function Re(e){return c(`/api/custom-ui/trash`,{signal:e,parse:Le})}function ze(e){return c(`/api/custom-ui/trash/${encodeURIComponent(e)}/restore`,{method:`POST`,body:{},parse:e=>({component:L(e),restoredInstances:N(e)?F(e.restoredInstances):0})})}function Be(e){return c(`/api/custom-ui/trash/${encodeURIComponent(e)}`,{method:`DELETE`,parse:()=>void 0})}function Ve(e){if(e.size>16777216)throw new u(`Component archive exceeds 16 MiB`,{kind:`protocol`,data:{code:`component_archive_too_large`}});let t=encodeURIComponent(e.name.slice(0,200));return c(`/api/custom-ui/import?stage=1&name=${t}`,{method:`POST`,data:e,timeout:12e4,parse:e=>{let t=N(e)?re(e.staged):null;if(!t)throw Error(`Invalid custom UI staged response`);return t}})}function He(e){let t=N(e)?re(e.staged):null;if(!t||!N(e))throw Error(`Invalid custom UI staged response`);return{staged:t,manifest:f(t.id,e.manifest),errors:g(e.errors),files:ae(e.files),scan:ie(e.scan),installed:e.installed?v(e.installed):null,diff:e.diff?Ne(e.diff):null}}var R=e=>`/api/custom-ui/staged/${encodeURIComponent(e)}`;function Ue(e,t){return c(R(e),{signal:t,parse:He})}function We(e,t,n){return c(`${R(e)}/file?path=${encodeURIComponent(t)}`,{signal:n,parse:e=>{if(!N(e)||typeof e.content!=`string`)throw Error(`Invalid custom UI staged file response`);return{path:P(e.path,512),binary:e.binary===!0,content:e.content,truncated:e.truncated===!0}}})}function Ge(e){return c(`${R(e)}/trust`,{method:`POST`,body:{},parse:e=>({component:L(e),replaced:N(e)&&e.replaced===!0})})}function Ke(e){return c(`${R(e)}/discard`,{method:`POST`,body:{},parse:()=>void 0})}function qe(e){if(!N(e)||!N(e.usage))throw Error(`Invalid custom UI usage response`);let t={};for(let n of ke){let r=e.usage[n];!N(r)||typeof r.lastAt!=`string`||(t[n]={lastAt:r.lastAt,target:P(r.target,120),today:F(r.today),total:F(r.total)})}let n=Array.isArray(e.revoked)?e.revoked:[];return{usage:t,revoked:ke.filter(e=>n.includes(e))}}function Je(e,t){return c(`${I(e)}/usage`,{signal:t,parse:qe})}function Ye(e,t){return c(I(e),{method:`PATCH`,body:{revoked:t},parse:L})}function z(e,t){let n=e?.[t];return typeof n==`string`||typeof n==`number`?n:``}function Xe(e){let t=z(e,`max`);return typeof t==`number`?Math.round(t/1024):t}function B(e,t,n){let r=z(n,`max`);return{manifest_missing:()=>t(`custom-ui:errors.manifest_missing`),manifest_too_large:()=>t(`custom-ui:errors.manifest_too_large`),manifest_json_invalid:()=>t(`custom-ui:errors.manifest_json_invalid`),manifest_not_object:()=>t(`custom-ui:errors.manifest_not_object`),entry_missing:()=>t(`custom-ui:errors.entry_missing`),style_missing:()=>t(`custom-ui:errors.style_missing`),component_too_large:()=>t(`custom-ui:errors.component_too_large`),runtime_not_native:()=>t(`custom-ui:errors.runtime_not_native`),name_invalid:()=>t(`custom-ui:errors.name_invalid`),version_invalid:()=>t(`custom-ui:errors.version_invalid`),description_invalid:()=>t(`custom-ui:errors.description_invalid`),icon_invalid:()=>t(`custom-ui:errors.icon_invalid`),entry_invalid:()=>t(`custom-ui:errors.entry_invalid`),styles_invalid:()=>t(`custom-ui:errors.styles_invalid`),sdk_invalid:()=>t(`custom-ui:errors.sdk_invalid`),sdk_unsupported:()=>t(`custom-ui:errors.sdk_unsupported`),min_host_version_invalid:()=>t(`custom-ui:errors.min_host_version_invalid`),host_too_old:()=>n?.required?t(`custom-ui:errors.host_too_old_version`,{required:z(n,`required`)}):t(`custom-ui:errors.host_too_old`),placements_invalid:()=>t(`custom-ui:errors.placements_invalid`),placement_invalid:()=>t(`custom-ui:errors.placement_invalid`),placement_surface_invalid:()=>t(`custom-ui:errors.placement_surface_invalid`,{surface:z(n,`surface`)}),placement_duplicate:()=>t(`custom-ui:errors.placement_duplicate`,{surface:z(n,`surface`)}),placement_sizes_invalid:()=>t(`custom-ui:errors.placement_sizes_invalid`),placement_size_invalid:()=>t(`custom-ui:errors.placement_size_invalid`,{minW:z(n,`minW`),maxW:z(n,`maxW`),minH:z(n,`minH`),maxH:z(n,`maxH`)}),capability_invalid:()=>t(`custom-ui:errors.capability_invalid`),capability_unknown:()=>t(`custom-ui:errors.capability_unknown`,{capability:z(n,`capability`)}),capability_duplicate:()=>t(`custom-ui:errors.capability_duplicate`,{capability:z(n,`capability`)}),capability_reason_invalid:()=>t(`custom-ui:errors.capability_reason_invalid`),network_hosts_invalid:()=>t(`custom-ui:errors.network_hosts_invalid`,{max:r}),network_host_invalid:()=>t(`custom-ui:errors.network_host_invalid`),network_private_origins_invalid:()=>t(`custom-ui:errors.network_private_origins_invalid`,{max:r}),network_private_origin_invalid:()=>t(`custom-ui:errors.network_private_origin_invalid`),provider_paths_invalid:()=>t(`custom-ui:errors.provider_paths_invalid`),provider_methods_invalid:()=>t(`custom-ui:errors.provider_methods_invalid`),component_provider_request_invalid:()=>t(`custom-ui:errors.component_provider_request_invalid`),component_provider_path_denied:()=>t(`custom-ui:errors.component_provider_path_denied`),component_provider_session_mismatch:()=>t(`custom-ui:errors.component_provider_session_mismatch`),storage_quota_invalid:()=>t(`custom-ui:errors.storage_quota_invalid`,{max:r}),i18n_invalid:()=>t(`custom-ui:errors.i18n_invalid`),i18n_strings_invalid:()=>t(`custom-ui:errors.i18n_strings_invalid`,{max:r}),i18n_string_invalid:()=>t(`custom-ui:errors.i18n_string_invalid`),props_schema_invalid:()=>t(`custom-ui:errors.props_schema_invalid`),props_type_unsupported:()=>t(`custom-ui:errors.props_type_unsupported`),props_field_invalid:()=>t(`custom-ui:errors.props_field_invalid`),props_key_invalid:()=>t(`custom-ui:errors.props_key_invalid`),props_keyword_unsupported:()=>t(`custom-ui:errors.props_keyword_unsupported`,{keyword:z(n,`keyword`)}),props_format_invalid:()=>t(`custom-ui:errors.props_format_invalid`),props_max_length_invalid:()=>t(`custom-ui:errors.props_max_length_invalid`,{max:r}),props_enum_list_invalid:()=>t(`custom-ui:errors.props_enum_list_invalid`,{max:r}),props_number_invalid:()=>t(`custom-ui:errors.props_number_invalid`),props_unit_invalid:()=>t(`custom-ui:errors.props_unit_invalid`),props_items_invalid:()=>t(`custom-ui:errors.props_items_invalid`),props_max_items_invalid:()=>t(`custom-ui:errors.props_max_items_invalid`,{max:r}),props_too_many_fields:()=>t(`custom-ui:errors.props_too_many_fields`,{max:r}),props_required_invalid:()=>t(`custom-ui:errors.props_required_invalid`),props_default_invalid:()=>t(`custom-ui:errors.props_default_invalid`),props_i18n_invalid:()=>t(`custom-ui:errors.props_i18n_invalid`),props_title_invalid:()=>t(`custom-ui:errors.props_title_invalid`),props_description_invalid:()=>t(`custom-ui:errors.props_description_invalid`),props_type_invalid:()=>t(`custom-ui:errors.props_type_invalid`),props_too_long:()=>t(`custom-ui:errors.props_too_long`,{max:r}),props_enum_invalid:()=>t(`custom-ui:errors.props_enum_invalid`),props_url_invalid:()=>t(`custom-ui:errors.props_url_invalid`),props_color_invalid:()=>t(`custom-ui:errors.props_color_invalid`),props_out_of_range:()=>t(`custom-ui:errors.props_out_of_range`),props_too_many:()=>t(`custom-ui:errors.props_too_many`,{max:r}),props_unknown:()=>t(`custom-ui:errors.props_unknown`),props_required:()=>t(`custom-ui:errors.props_required`),props_too_large:()=>t(`custom-ui:errors.props_too_large`),component_files_invalid:()=>t(`custom-ui:errors.component_files_invalid`),component_manifest_invalid:()=>t(`custom-ui:errors.component_manifest_invalid`),component_file_path_invalid:()=>t(`custom-ui:errors.component_file_path_invalid`),component_file_duplicate:()=>t(`custom-ui:errors.component_file_duplicate`),component_file_content_invalid:()=>t(`custom-ui:errors.component_file_content_invalid`),component_file_too_large:()=>t(`custom-ui:errors.component_file_too_large`,{max:Xe(n)}),component_files_too_large:()=>t(`custom-ui:errors.component_files_too_large`,{max:Xe(n)}),component_files_too_many:()=>t(`custom-ui:errors.component_files_too_many`,{max:r}),component_bare_import:()=>t(`custom-ui:errors.component_bare_import`,{specifier:z(n,`specifier`)}),component_html_unsupported:()=>t(`custom-ui:errors.component_html_unsupported`),path_not_writable:()=>t(`custom-ui:errors.path_not_writable`),component_template_invalid:()=>t(`custom-ui:errors.component_template_invalid`),component_id_reserved:()=>t(`custom-ui:errors.component_id_reserved`),component_id_taken_by_legacy:()=>t(`custom-ui:errors.component_id_taken_by_legacy`),component_legacy_unsupported:()=>t(`custom-ui:errors.component_legacy_unsupported`),component_import_unavailable:()=>t(`custom-ui:errors.component_import_unavailable`),component_request_invalid:()=>t(`custom-ui:errors.component_request_invalid`),component_request_too_large:()=>t(`custom-ui:errors.component_request_too_large`),component_asset_missing:()=>t(`custom-ui:errors.component_asset_missing`),component_capability_denied:()=>t(`custom-ui:errors.component_capability_denied`),component_session_required:()=>t(`custom-ui:errors.component_session_required`),component_session_invalid:()=>t(`custom-ui:errors.component_session_invalid`),component_capability_revoked:()=>t(`custom-ui:errors.component_capability_revoked`),component_archive_invalid:()=>t(`custom-ui:errors.component_archive_invalid`),component_archive_too_large:()=>t(`custom-ui:errors.component_archive_too_large`),component_manifest_missing:()=>t(`custom-ui:errors.component_manifest_missing`),component_staging_full:()=>t(`custom-ui:errors.component_staging_full`),component_staged_not_found:()=>t(`custom-ui:errors.component_staged_not_found`),component_file_not_found:()=>t(`custom-ui:errors.component_file_not_found`),component_version_not_found:()=>t(`custom-ui:errors.component_version_not_found`),component_trash_not_found:()=>t(`custom-ui:errors.component_trash_not_found`),component_not_found:()=>t(`custom-ui:errors.component_not_found`),component_name_invalid:()=>t(`custom-ui:errors.component_name_invalid`),component_id_invalid:()=>t(`custom-ui:errors.component_id_invalid`),component_already_installed:()=>t(`custom-ui:errors.component_already_installed`),component_disabled:()=>t(`custom-ui:errors.component_disabled`),component_invalid:()=>t(`custom-ui:errors.component_invalid`),component_surface_invalid:()=>t(`custom-ui:errors.component_surface_invalid`),component_surface_unsupported:()=>t(`custom-ui:errors.component_surface_unsupported`),component_size_invalid:()=>t(`custom-ui:errors.component_size_invalid`),component_scope_invalid:()=>t(`custom-ui:errors.component_scope_invalid`),component_title_invalid:()=>t(`custom-ui:errors.component_title_invalid`),component_props_invalid:()=>t(`custom-ui:errors.component_props_invalid`),component_instance_exists:()=>t(`custom-ui:errors.component_instance_exists`),component_instance_not_found:()=>t(`custom-ui:errors.component_instance_not_found`),component_instances_full:()=>t(`custom-ui:errors.component_instances_full`),component_instances_conflict:()=>t(`custom-ui:errors.component_instances_conflict`),component_instances_order_invalid:()=>t(`custom-ui:errors.component_instances_order_invalid`)}[e]?.()??e}function Ze({thresholdMs:e=200,streak:t=3}={}){let n=null,r=0,i=null,a=!1;return{start(e){n===null&&(n=e)},commit(o){if(n===null)return null;let s=Math.max(0,o-n);n=null,i=s;let c=s>e;return r=c?r+1:0,r>=t&&(a=!0),{duration:s,slow:c,warning:a}},last:()=>i,warning:()=>a,reset(){n=null,r=0,i=null,a=!1}}}var Qe=function(e,t,n,r){var i;t[0]=0;for(var a=1;a<t.length;a++){var o=t[a++],s=t[a]?(t[0]|=o?1:2,n[t[a++]]):t[++a];o===3?r[0]=s:o===4?r[1]=Object.assign(r[1]||{},s):o===5?(r[1]=r[1]||{})[t[++a]]=s:o===6?r[1][t[++a]]+=s+``:o?(i=e.apply(s,Qe(e,s,n,[``,null])),r.push(i),s[0]?t[0]|=2:(t[a-2]=0,t[a]=i)):r.push(s)}return r},$e=new Map;function et(e){var t=$e.get(this);return t||(t=new Map,$e.set(this,t)),(t=Qe(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,r=1,i=``,a=``,o=[0],s=function(e){r===1&&(e||(i=i.replace(/^\s*\n\s*|\s*\n\s*$/g,``)))?o.push(0,e,i):r===3&&(e||i)?(o.push(3,e,i),r=2):r===2&&i===`...`&&e?o.push(4,e,0):r===2&&i&&!e?o.push(5,0,!0,i):r>=5&&((i||!e&&r===5)&&(o.push(r,0,i,n),r=6),e&&(o.push(r,e,0,n),r=6)),i=``},c=0;c<e.length;c++){c&&(r===1&&s(),s(c));for(var l=0;l<e[c].length;l++)t=e[c][l],r===1?t===`<`?(s(),o=[o],r=3):i+=t:r===4?i===`--`&&t===`>`?(r=1,i=``):i=t+i[0]:a?t===a?a=``:i+=t:t===`"`||t===`'`?a=t:t===`>`?(s(),r=1):r&&(t===`=`?(r=5,n=i,i=``):t===`/`&&(r<5||e[c][l+1]===`>`)?(s(),r===3&&(o=o[0]),r=o,(o=o[0]).push(2,0,r),r=0):t===` `||t===` `||t===`
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{h as t}from"./vendor-router-CSN_DGvx.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./vendor-ui-DvrYggeS.js";import{t as a}from"./use-i18n-B2p84ZNR.js";import{r as o,t as s}from"./useQuery-DdcpUQhO.js";import{a as c,i as l,u}from"./api-CIB7ZPX3.js";import{A as d,C as f,D as p,E as m,O as h,S as g,a as _,b as v,c as y,d as b,f as x,h as S,i as C,j as w,k as T,l as E,m as D,n as ee,p as O,s as te,u as ne,w as re,x as ie,y as ae}from"./session-scope-P-D-Ssd4.js";import{o as oe}from"./session-board-status-D2lpFPiI.js";import{o as se}from"./useNewProjectPicker-rhLvXi27.js";import{n as ce}from"./public-BZlIDP6h.js";import{t as le}from"./dist-41X0pdUs.js";import{t as ue}from"./checkbox-BrEHgFV0.js";import{t as de}from"./progress-5odAz3B9.js";import{t as fe}from"./separator-BPh_qxvc.js";import{t as pe}from"./switch-D_G8wFhs.js";import{t as me}from"./segmented-control-BlM_GKV6.js";import{i as he,n as ge,r as _e,t as ve}from"./tooltip-D4MFbqcG.js";import{t as k}from"./utils-C8uzG5AZ.js";import{n as ye,t as A}from"./button-CCcCN8tE.js";import{t as be}from"./kbd-CAufZTkl.js";import{r as xe,t as Se}from"./useSessionListQuery-CHbg2lM2.js";import{t as Ce}from"./StatusGlyph-1KgitlUg.js";import{t as we}from"./input-CPw-zkYh.js";import{t as Te}from"./textarea-DmATpOqT.js";import{t as Ee}from"./badge-CWB3lj2H.js";import{t as De}from"./safe-mode-instance-CVh0Lclx.js";var j=e(n(),1),M=r();function Oe({className:e,...t}){return(0,M.jsx)(`div`,{"data-slot":`skeleton`,className:k(`animate-pulse rounded-sm bg-surface-hover`,e),...t})}function N(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function P(e,t=4e3){return typeof e==`string`?e.slice(0,t):``}function F(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:0}var I=e=>`/api/custom-ui/components/${encodeURIComponent(e)}`,ke=[`network`,`notify`,`sessions.read`,`sessions.open`,`storage`,`provider.request`];function L(e){let t=N(e)?v(e.component):null;if(!t)throw Error(`Invalid custom UI component response`);return t}function Ae(e){return!N(e)||!Number.isSafeInteger(e.n)||Number(e.n)<1?null:{n:Number(e.n),at:typeof e.at==`string`?e.at:null,summary:P(e.summary,200),source:[`agent`,`import`,`restore`,`local`].includes(e.source)?e.source:null,files:(Array.isArray(e.files)?e.files.slice(0,64):[]).flatMap(e=>N(e)&&typeof e.path==`string`?[{path:P(e.path,512),added:F(e.added),removed:F(e.removed)}]:[]),deleted:(Array.isArray(e.deleted)?e.deleted.slice(0,64):[]).filter(e=>typeof e==`string`)}}function je(e){let t=N(e)?Ae(e.current):null;if(!t||!N(e)||!Array.isArray(e.versions))throw Error(`Invalid custom UI versions response`);return{current:t,versions:e.versions.flatMap(e=>Ae(e)??[]),max:F(e.max)||20}}function Me(e,t){return c(`${I(e)}/versions`,{signal:t,parse:je})}function Ne(e){return!N(e)||typeof e.diff!=`string`?null:{diff:e.diff,truncated:e.truncated===!0,files:(Array.isArray(e.files)?e.files.slice(0,256):[]).flatMap(e=>N(e)&&typeof e.path==`string`&&(e.status===`added`||e.status===`deleted`||e.status===`modified`)?[{path:e.path,status:e.status}]:[])}}function Pe(e,t,n){return c(`${I(e)}/versions/${t}/diff`,{signal:n,parse:e=>{let t=Ne(e);if(!t)throw Error(`Invalid custom UI diff response`);return t}})}function Fe(e,t){return c(`${I(e)}/versions/${t}/restore`,{method:`POST`,body:{},parse:e=>({...je(e),component:L(e)})})}function Ie(e,t){return l(`${I(e)}/export`,{signal:t,timeout:6e4})}function Le(e){if(!N(e)||!Array.isArray(e.entries))throw Error(`Invalid custom UI trash response`);return{retentionDays:F(e.retentionDays)||7,entries:e.entries.slice(0,200).flatMap(e=>N(e)&&typeof e.entry==`string`&&/^[a-z0-9][a-z0-9._-]{0,63}-\d{8}T\d{6}Z(?:-\d{1,4})?$/.test(e.entry)&&typeof e.id==`string`?[{entry:e.entry,id:P(e.id,64),name:P(e.name,120)||P(e.id,64),version:P(e.version,64),kind:e.kind===`native`||e.kind===`legacy`?e.kind:`broken`,reason:e.reason===`legacy-retired`?`legacy-retired`:`deleted`,deletedAt:P(e.deletedAt,64),expiresAt:typeof e.expiresAt==`string`?e.expiresAt:null,instances:F(e.instances)}]:[])}}function Re(e){return c(`/api/custom-ui/trash`,{signal:e,parse:Le})}function ze(e){return c(`/api/custom-ui/trash/${encodeURIComponent(e)}/restore`,{method:`POST`,body:{},parse:e=>({component:L(e),restoredInstances:N(e)?F(e.restoredInstances):0})})}function Be(e){return c(`/api/custom-ui/trash/${encodeURIComponent(e)}`,{method:`DELETE`,parse:()=>void 0})}function Ve(e){if(e.size>16777216)throw new u(`Component archive exceeds 16 MiB`,{kind:`protocol`,data:{code:`component_archive_too_large`}});let t=encodeURIComponent(e.name.slice(0,200));return c(`/api/custom-ui/import?stage=1&name=${t}`,{method:`POST`,data:e,timeout:12e4,parse:e=>{let t=N(e)?re(e.staged):null;if(!t)throw Error(`Invalid custom UI staged response`);return t}})}function He(e){let t=N(e)?re(e.staged):null;if(!t||!N(e))throw Error(`Invalid custom UI staged response`);return{staged:t,manifest:f(t.id,e.manifest),errors:g(e.errors),files:ae(e.files),scan:ie(e.scan),installed:e.installed?v(e.installed):null,diff:e.diff?Ne(e.diff):null}}var R=e=>`/api/custom-ui/staged/${encodeURIComponent(e)}`;function Ue(e,t){return c(R(e),{signal:t,parse:He})}function We(e,t,n){return c(`${R(e)}/file?path=${encodeURIComponent(t)}`,{signal:n,parse:e=>{if(!N(e)||typeof e.content!=`string`)throw Error(`Invalid custom UI staged file response`);return{path:P(e.path,512),binary:e.binary===!0,content:e.content,truncated:e.truncated===!0}}})}function Ge(e){return c(`${R(e)}/trust`,{method:`POST`,body:{},parse:e=>({component:L(e),replaced:N(e)&&e.replaced===!0})})}function Ke(e){return c(`${R(e)}/discard`,{method:`POST`,body:{},parse:()=>void 0})}function qe(e){if(!N(e)||!N(e.usage))throw Error(`Invalid custom UI usage response`);let t={};for(let n of ke){let r=e.usage[n];!N(r)||typeof r.lastAt!=`string`||(t[n]={lastAt:r.lastAt,target:P(r.target,120),today:F(r.today),total:F(r.total)})}let n=Array.isArray(e.revoked)?e.revoked:[];return{usage:t,revoked:ke.filter(e=>n.includes(e))}}function Je(e,t){return c(`${I(e)}/usage`,{signal:t,parse:qe})}function Ye(e,t){return c(I(e),{method:`PATCH`,body:{revoked:t},parse:L})}function z(e,t){let n=e?.[t];return typeof n==`string`||typeof n==`number`?n:``}function Xe(e){let t=z(e,`max`);return typeof t==`number`?Math.round(t/1024):t}function B(e,t,n){let r=z(n,`max`);return{manifest_missing:()=>t(`custom-ui:errors.manifest_missing`),manifest_too_large:()=>t(`custom-ui:errors.manifest_too_large`),manifest_json_invalid:()=>t(`custom-ui:errors.manifest_json_invalid`),manifest_not_object:()=>t(`custom-ui:errors.manifest_not_object`),entry_missing:()=>t(`custom-ui:errors.entry_missing`),style_missing:()=>t(`custom-ui:errors.style_missing`),component_too_large:()=>t(`custom-ui:errors.component_too_large`),runtime_not_native:()=>t(`custom-ui:errors.runtime_not_native`),name_invalid:()=>t(`custom-ui:errors.name_invalid`),version_invalid:()=>t(`custom-ui:errors.version_invalid`),description_invalid:()=>t(`custom-ui:errors.description_invalid`),icon_invalid:()=>t(`custom-ui:errors.icon_invalid`),entry_invalid:()=>t(`custom-ui:errors.entry_invalid`),styles_invalid:()=>t(`custom-ui:errors.styles_invalid`),sdk_invalid:()=>t(`custom-ui:errors.sdk_invalid`),sdk_unsupported:()=>t(`custom-ui:errors.sdk_unsupported`),min_host_version_invalid:()=>t(`custom-ui:errors.min_host_version_invalid`),host_too_old:()=>n?.required?t(`custom-ui:errors.host_too_old_version`,{required:z(n,`required`)}):t(`custom-ui:errors.host_too_old`),placements_invalid:()=>t(`custom-ui:errors.placements_invalid`),placement_invalid:()=>t(`custom-ui:errors.placement_invalid`),placement_surface_invalid:()=>t(`custom-ui:errors.placement_surface_invalid`,{surface:z(n,`surface`)}),placement_duplicate:()=>t(`custom-ui:errors.placement_duplicate`,{surface:z(n,`surface`)}),placement_sizes_invalid:()=>t(`custom-ui:errors.placement_sizes_invalid`),placement_size_invalid:()=>t(`custom-ui:errors.placement_size_invalid`,{minW:z(n,`minW`),maxW:z(n,`maxW`),minH:z(n,`minH`),maxH:z(n,`maxH`)}),capability_invalid:()=>t(`custom-ui:errors.capability_invalid`),capability_unknown:()=>t(`custom-ui:errors.capability_unknown`,{capability:z(n,`capability`)}),capability_duplicate:()=>t(`custom-ui:errors.capability_duplicate`,{capability:z(n,`capability`)}),capability_reason_invalid:()=>t(`custom-ui:errors.capability_reason_invalid`),network_hosts_invalid:()=>t(`custom-ui:errors.network_hosts_invalid`,{max:r}),network_host_invalid:()=>t(`custom-ui:errors.network_host_invalid`),network_private_origins_invalid:()=>t(`custom-ui:errors.network_private_origins_invalid`,{max:r}),network_private_origin_invalid:()=>t(`custom-ui:errors.network_private_origin_invalid`),provider_paths_invalid:()=>t(`custom-ui:errors.provider_paths_invalid`),provider_methods_invalid:()=>t(`custom-ui:errors.provider_methods_invalid`),component_provider_request_invalid:()=>t(`custom-ui:errors.component_provider_request_invalid`),component_provider_path_denied:()=>t(`custom-ui:errors.component_provider_path_denied`),component_provider_session_mismatch:()=>t(`custom-ui:errors.component_provider_session_mismatch`),storage_quota_invalid:()=>t(`custom-ui:errors.storage_quota_invalid`,{max:r}),i18n_invalid:()=>t(`custom-ui:errors.i18n_invalid`),i18n_strings_invalid:()=>t(`custom-ui:errors.i18n_strings_invalid`,{max:r}),i18n_string_invalid:()=>t(`custom-ui:errors.i18n_string_invalid`),props_schema_invalid:()=>t(`custom-ui:errors.props_schema_invalid`),props_type_unsupported:()=>t(`custom-ui:errors.props_type_unsupported`),props_field_invalid:()=>t(`custom-ui:errors.props_field_invalid`),props_key_invalid:()=>t(`custom-ui:errors.props_key_invalid`),props_keyword_unsupported:()=>t(`custom-ui:errors.props_keyword_unsupported`,{keyword:z(n,`keyword`)}),props_format_invalid:()=>t(`custom-ui:errors.props_format_invalid`),props_max_length_invalid:()=>t(`custom-ui:errors.props_max_length_invalid`,{max:r}),props_enum_list_invalid:()=>t(`custom-ui:errors.props_enum_list_invalid`,{max:r}),props_number_invalid:()=>t(`custom-ui:errors.props_number_invalid`),props_unit_invalid:()=>t(`custom-ui:errors.props_unit_invalid`),props_items_invalid:()=>t(`custom-ui:errors.props_items_invalid`),props_max_items_invalid:()=>t(`custom-ui:errors.props_max_items_invalid`,{max:r}),props_too_many_fields:()=>t(`custom-ui:errors.props_too_many_fields`,{max:r}),props_required_invalid:()=>t(`custom-ui:errors.props_required_invalid`),props_default_invalid:()=>t(`custom-ui:errors.props_default_invalid`),props_i18n_invalid:()=>t(`custom-ui:errors.props_i18n_invalid`),props_title_invalid:()=>t(`custom-ui:errors.props_title_invalid`),props_description_invalid:()=>t(`custom-ui:errors.props_description_invalid`),props_type_invalid:()=>t(`custom-ui:errors.props_type_invalid`),props_too_long:()=>t(`custom-ui:errors.props_too_long`,{max:r}),props_enum_invalid:()=>t(`custom-ui:errors.props_enum_invalid`),props_url_invalid:()=>t(`custom-ui:errors.props_url_invalid`),props_color_invalid:()=>t(`custom-ui:errors.props_color_invalid`),props_out_of_range:()=>t(`custom-ui:errors.props_out_of_range`),props_too_many:()=>t(`custom-ui:errors.props_too_many`,{max:r}),props_unknown:()=>t(`custom-ui:errors.props_unknown`),props_required:()=>t(`custom-ui:errors.props_required`),props_too_large:()=>t(`custom-ui:errors.props_too_large`),component_files_invalid:()=>t(`custom-ui:errors.component_files_invalid`),component_manifest_invalid:()=>t(`custom-ui:errors.component_manifest_invalid`),component_file_path_invalid:()=>t(`custom-ui:errors.component_file_path_invalid`),component_file_duplicate:()=>t(`custom-ui:errors.component_file_duplicate`),component_file_content_invalid:()=>t(`custom-ui:errors.component_file_content_invalid`),component_file_too_large:()=>t(`custom-ui:errors.component_file_too_large`,{max:Xe(n)}),component_files_too_large:()=>t(`custom-ui:errors.component_files_too_large`,{max:Xe(n)}),component_files_too_many:()=>t(`custom-ui:errors.component_files_too_many`,{max:r}),component_bare_import:()=>t(`custom-ui:errors.component_bare_import`,{specifier:z(n,`specifier`)}),component_html_unsupported:()=>t(`custom-ui:errors.component_html_unsupported`),path_not_writable:()=>t(`custom-ui:errors.path_not_writable`),component_template_invalid:()=>t(`custom-ui:errors.component_template_invalid`),component_id_reserved:()=>t(`custom-ui:errors.component_id_reserved`),component_id_taken_by_legacy:()=>t(`custom-ui:errors.component_id_taken_by_legacy`),component_legacy_unsupported:()=>t(`custom-ui:errors.component_legacy_unsupported`),component_import_unavailable:()=>t(`custom-ui:errors.component_import_unavailable`),component_request_invalid:()=>t(`custom-ui:errors.component_request_invalid`),component_request_too_large:()=>t(`custom-ui:errors.component_request_too_large`),component_asset_missing:()=>t(`custom-ui:errors.component_asset_missing`),component_capability_denied:()=>t(`custom-ui:errors.component_capability_denied`),component_session_required:()=>t(`custom-ui:errors.component_session_required`),component_session_invalid:()=>t(`custom-ui:errors.component_session_invalid`),component_capability_revoked:()=>t(`custom-ui:errors.component_capability_revoked`),component_archive_invalid:()=>t(`custom-ui:errors.component_archive_invalid`),component_archive_too_large:()=>t(`custom-ui:errors.component_archive_too_large`),component_manifest_missing:()=>t(`custom-ui:errors.component_manifest_missing`),component_staging_full:()=>t(`custom-ui:errors.component_staging_full`),component_staged_not_found:()=>t(`custom-ui:errors.component_staged_not_found`),component_file_not_found:()=>t(`custom-ui:errors.component_file_not_found`),component_version_not_found:()=>t(`custom-ui:errors.component_version_not_found`),component_trash_not_found:()=>t(`custom-ui:errors.component_trash_not_found`),component_not_found:()=>t(`custom-ui:errors.component_not_found`),component_name_invalid:()=>t(`custom-ui:errors.component_name_invalid`),component_id_invalid:()=>t(`custom-ui:errors.component_id_invalid`),component_already_installed:()=>t(`custom-ui:errors.component_already_installed`),component_disabled:()=>t(`custom-ui:errors.component_disabled`),component_invalid:()=>t(`custom-ui:errors.component_invalid`),component_surface_invalid:()=>t(`custom-ui:errors.component_surface_invalid`),component_surface_unsupported:()=>t(`custom-ui:errors.component_surface_unsupported`),component_size_invalid:()=>t(`custom-ui:errors.component_size_invalid`),component_scope_invalid:()=>t(`custom-ui:errors.component_scope_invalid`),component_title_invalid:()=>t(`custom-ui:errors.component_title_invalid`),component_props_invalid:()=>t(`custom-ui:errors.component_props_invalid`),component_instance_exists:()=>t(`custom-ui:errors.component_instance_exists`),component_instance_not_found:()=>t(`custom-ui:errors.component_instance_not_found`),component_instances_full:()=>t(`custom-ui:errors.component_instances_full`),component_instances_conflict:()=>t(`custom-ui:errors.component_instances_conflict`),component_instances_order_invalid:()=>t(`custom-ui:errors.component_instances_order_invalid`)}[e]?.()??e}function Ze({thresholdMs:e=200,streak:t=3}={}){let n=null,r=0,i=null,a=!1;return{start(e){n===null&&(n=e)},commit(o){if(n===null)return null;let s=Math.max(0,o-n);n=null,i=s;let c=s>e;return r=c?r+1:0,r>=t&&(a=!0),{duration:s,slow:c,warning:a}},last:()=>i,warning:()=>a,reset(){n=null,r=0,i=null,a=!1}}}var Qe=function(e,t,n,r){var i;t[0]=0;for(var a=1;a<t.length;a++){var o=t[a++],s=t[a]?(t[0]|=o?1:2,n[t[a++]]):t[++a];o===3?r[0]=s:o===4?r[1]=Object.assign(r[1]||{},s):o===5?(r[1]=r[1]||{})[t[++a]]=s:o===6?r[1][t[++a]]+=s+``:o?(i=e.apply(s,Qe(e,s,n,[``,null])),r.push(i),s[0]?t[0]|=2:(t[a-2]=0,t[a]=i)):r.push(s)}return r},$e=new Map;function et(e){var t=$e.get(this);return t||(t=new Map,$e.set(this,t)),(t=Qe(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,r=1,i=``,a=``,o=[0],s=function(e){r===1&&(e||(i=i.replace(/^\s*\n\s*|\s*\n\s*$/g,``)))?o.push(0,e,i):r===3&&(e||i)?(o.push(3,e,i),r=2):r===2&&i===`...`&&e?o.push(4,e,0):r===2&&i&&!e?o.push(5,0,!0,i):r>=5&&((i||!e&&r===5)&&(o.push(r,0,i,n),r=6),e&&(o.push(r,e,0,n),r=6)),i=``},c=0;c<e.length;c++){c&&(r===1&&s(),s(c));for(var l=0;l<e[c].length;l++)t=e[c][l],r===1?t===`<`?(s(),o=[o],r=3):i+=t:r===4?i===`--`&&t===`>`?(r=1,i=``):i=t+i[0]:a?t===a?a=``:i+=t:t===`"`||t===`'`?a=t:t===`>`?(s(),r=1):r&&(t===`=`?(r=5,n=i,i=``):t===`/`&&(r<5||e[c][l+1]===`>`)?(s(),r===3&&(o=o[0]),r=o,(o=o[0]).push(2,0,r),r=0):t===` `||t===` `||t===`
2
2
  `||t===`\r`?(s(),r=2):i+=t),r===3&&i===`!--`&&(r=4,o=o[0])}return s(),o}(e)),t),arguments,[])).length>1?t:t[0]}var tt=et.bind(j.createElement),nt=6e4;function rt(e,t,{windowMs:n=nt,threshold:r=3}={}){let i=[...(e?.crashes??[]).filter(e=>t-e<n),t];return{crashes:i,paused:e?.paused===!0||i.length>=r}}function it({now:e=()=>Date.now(),windowMs:t=nt,threshold:n=3}={}){let r=new Map,i=new Set,a=0,o=()=>{a+=1;for(let e of[...i])e()};return{record(i,a){let s=rt(r.get(i),e(),{windowMs:t,threshold:n});return a&&(s.rev=a),r.set(i,s),o(),s},pause(e){r.set(e,{crashes:r.get(e)?.crashes??[],paused:!0}),o()},resume(e){r.delete(e),o()},isPaused:e=>r.get(e)?.paused===!0,hasTrouble:(e,t)=>{let n=r.get(e);return n?n.paused?!0:t&&n.rev&&n.rev!==t?!1:n.crashes.length>0:!1},subscribe(e){return i.add(e),()=>{i.delete(e)}},version:()=>a}}var V=500,at=4e3,ot=/^[a-zA-Z0-9._:-]{1,64}$/;function H(e){return e.map(e=>{if(typeof e==`string`)return e;if(e instanceof Error)return`${e.name}: ${e.message}`;try{let t=JSON.stringify(e);return t===void 0?String(e):t}catch{return String(e)}}).join(` `).slice(0,V)}function st(e){if(e instanceof Error){let t=`${e.name}: ${e.message}`.slice(0,V);return typeof e.stack==`string`?{message:t,stack:e.stack.slice(0,at)}:{message:t}}return{message:H([e])}}var ct=1024;function lt(e,t){let n=e.trim(),r=(t??``).trim(),i=r.startsWith(n)?r.slice(n.length).trim():r;return i?`${n}\n${i.slice(0,ct)}`:n}function ut(e=200){let t=new Map,n=new Set;return{append(r){let i=t.get(r.componentId)??[];i.push(r),i.length>e&&i.splice(0,i.length-e),t.set(r.componentId,i);for(let e of[...n])e(r.componentId)},read:e=>[...t.get(e)??[]],clear(e){t.delete(e);for(let t of[...n])t(e)},subscribe(e){return n.add(e),()=>{n.delete(e)}}}}function dt({send:e,now:t=()=>Date.now(),perMinute:n=20}){let r=new Map;return{report(i,a){let o=t(),s=r.get(i);if((!s||o-s.at>=6e4)&&(s={at:o,count:0,dropped:s?.dropped??0},r.set(i,s)),s.count>=n)return s.dropped+=1,!1;s.count+=1;let{instanceId:c,...l}=a;return e(i,{...l,...c&&ot.test(c)?{instanceId:c}:{},message:a.message.slice(0,V)||a.kind,...a.stack?{stack:a.stack.slice(0,at)}:{}}).catch(()=>void 0),!0},dropped:e=>r.get(e)?.dropped??0}}function ft({componentId:e,instanceId:t,surface:n,buffer:r,reporter:i,now:a=()=>Date.now()}){let o=(o,s,c,l)=>{r.append({at:a(),componentId:e,...t?{instanceId:t}:{},...n?{surface:n}:{},kind:o,level:s,message:c,...l?{stack:l}:{}}),s!==`info`&&i.report(e,{...t?{instanceId:t}:{},...n?{surface:n}:{},kind:o,level:s,message:c,...l?{stack:l}:{}})};return{info:(...e)=>o(`log`,`info`,H(e)),warn:(...e)=>o(`log`,`warn`,H(e)),error:(...e)=>o(`log`,`error`,H(e)),record(e,t,n){let r=st(n);o(e,t,r.message,r.stack)}}}var U=class extends Error{code;constructor(e,t,n){super(t,n),this.name=`ComponentLoadError`,this.code=e}};function pt(e){return e instanceof Error?e.message:String(e)}function mt({importer:e,limit:t=20}){let n=new Map,r=new Map,i=new Set;return{load(t,a,o){let s=`${t}@${a}`,c=n.get(s);if(c)return c;let l;try{l=te(t,a,o)}catch(e){return Promise.reject(new U(`module_load_failed`,pt(e),{cause:e}))}let u=e(l).then(e=>{let n=e&&typeof e==`object`?e.default:null;if(typeof n!=`function`)throw new U(`default_export_invalid`,`Component module must export a default function`);let o=r.get(t);if(o||r.set(t,o=new Set),!o.has(a)){o.add(a);for(let e of[...i])e()}return n},e=>{throw e instanceof U?e:new U(`module_load_failed`,pt(e),{cause:e})});return n.set(s,u),u.catch(()=>{n.get(s)===u&&n.delete(s)}),u},versions:e=>r.get(e)?.size??0,reloadRecommended:e=>(r.get(e)?.size??0)>=t,subscribe(e){return i.add(e),()=>{i.delete(e)}}}}function ht(e){let t=new Map;return{retain(n,r,i){let a=[];for(let o of i){let i;try{i=te(n,r,o)}catch{continue}a.push(i);let s=t.get(i);if(s){s.count+=1;continue}let c=e.createElement(`link`);c.rel=`stylesheet`,c.href=i,c.dataset.componentStyle=n,e.head.appendChild(c),t.set(i,{element:c,count:1})}let o=!1;return()=>{if(!o){o=!0;for(let e of a){let n=t.get(e);n&&(--n.count,!(n.count>0)&&(n.element.remove(),t.delete(e)))}}}},size:()=>t.size}}var W=class extends Error{code;constructor(e,t=e){super(t),this.name=`ComponentRequestError`,this.code=e}},gt=32768;function _t(e){let t=``;for(let n=0;n<e.length;n+=gt)t+=String.fromCharCode(...e.subarray(n,n+gt));return btoa(t)}function vt(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}function yt(e){if(!e)return;let t={},n=typeof Headers<`u`&&e instanceof Headers?[...e.entries()]:Array.isArray(e)?e:Object.entries(e);for(let[e,r]of n){if(typeof e!=`string`||typeof r!=`string`)throw new W(`component_fetch_invalid`,`headers must be strings`);t[e.toLowerCase()]=r}return t}function bt(e,t={}){if(typeof e!=`string`||!e)throw new W(`component_fetch_invalid`,`url must be a string`);let n={url:e};if(t.method!==void 0){if(typeof t.method!=`string`)throw new W(`component_fetch_invalid`,`method must be a string`);n.method=t.method.toUpperCase()}let r=yt(t.headers);r&&(n.headers=r);let i=t.body;if(i==null)return n;if(typeof i==`string`)n.body=i,n.bodyEncoding=`utf8`;else if(i instanceof ArrayBuffer)n.body=_t(new Uint8Array(i)),n.bodyEncoding=`base64`;else if(ArrayBuffer.isView(i))n.body=_t(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)),n.bodyEncoding=`base64`;else throw new W(`component_fetch_invalid`,`unsupported body type`);return n}function xt(e){let t=()=>e.bodyEncoding===`base64`?vt(e.body):new TextEncoder().encode(e.body),n=()=>e.bodyEncoding===`utf8`?e.body:new TextDecoder().decode(t());return Object.freeze({ok:e.status>=200&&e.status<300,status:e.status,statusText:e.statusText,headers:Object.freeze({...e.headers}),url:e.url,redirected:e.redirected,text:async()=>n(),json:async()=>JSON.parse(n()),arrayBuffer:async()=>{let e=t();return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}})}function St(e){let t=new AbortController,n=[];for(let r of e){if(!r)continue;if(r.aborted){t.abort(r.reason);break}let e=()=>t.abort(r.reason);r.addEventListener(`abort`,e,{once:!0}),n.push(()=>r.removeEventListener(`abort`,e))}return{signal:t.signal,release:()=>{for(let e of n)e()}}}var Ct=new Set([`attention`,`running`,`queued`,`done`,`idle`]);function wt(e,t){let n=new Map(t.map(e=>[e.id,e])),r=[];for(let t of e){if(t.archived)continue;let e=n.get(t.id),i={id:t.id,title:t.title,cwd:t.cwd??``,status:e?.lane??`idle`,updatedAt:t.modified??``};typeof e?.totalTokens==`number`&&Number.isFinite(e.totalTokens)&&(i.usage={totalTokens:e.totalTokens}),r.push(Object.freeze(i))}return r.sort((e,t)=>(Date.parse(t.updatedAt)||0)-(Date.parse(e.updatedAt)||0))}function Tt(e){let t=e&&typeof e==`object`&&!Array.isArray(e)?e:{};return{limit:typeof t.limit==`number`&&Number.isFinite(t.limit)?Math.min(100,Math.max(1,Math.floor(t.limit))):50,...typeof t.cwd==`string`&&t.cwd?{cwd:t.cwd}:{},...typeof t.status==`string`&&Ct.has(t.status)?{status:t.status}:{}}}function Et(e,t){let{cwd:n,status:r,limit:i}=Tt(t),a=n?oe(n):null,o=[];for(let t of e)if(!(r&&t.status!==r)&&(a===null||oe(t.cwd)===a)&&(o.push(t),o.length>=i))break;return o}function Dt(){let e=[],t=new Set;return{get:()=>e,set(n){if(!(n.length===e.length&&n.every((t,n)=>t===e[n]))){e=n;for(let n of[...t])n(e)}},subscribe(e){return t.add(e),()=>{t.delete(e)}}}}var Ot=2147483647;function kt(e,t){return Math.min(Ot,Math.max(t,typeof e==`number`&&Number.isFinite(e)?e:0))}function At({host:e,onError:t}){let n=new Set,r=new Set,i=!1,a=e=>{try{e()}catch(e){t(e)}};return{setTimeout(t,r){if(i||typeof t!=`function`)return 0;let o=e.setTimeout(()=>{n.delete(o),i||a(t)},kt(r,0));return n.add(o),o},setInterval(t,n){if(i||typeof t!=`function`)return 0;let o=e.setInterval(()=>{i||a(t)},kt(n,16));return r.add(o),o},clearTimeout(t){typeof t!=`number`||!n.delete(t)||e.clearTimeout(t)},clearInterval(t){typeof t!=`number`||!r.delete(t)||e.clearInterval(t)},active:()=>n.size+r.size,dispose(){i=!0;for(let t of n)e.clearTimeout(t);for(let t of r)e.clearInterval(t);n.clear(),r.clear()}}}var jt=/^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$/,Mt=class extends Error{capability;reason;constructor(e,t=`undeclared`){super(t===`revoked`?`Capability "${e}" was revoked by the user`:`Capability "${e}" is not declared in manifest.json`),this.name=`CapabilityError`,this.capability=e,this.reason=t}};function Nt(){return{setTimeout:(e,t)=>window.setTimeout(e,t),setInterval:(e,t)=>window.setInterval(e,t),clearTimeout:e=>window.clearTimeout(e),clearInterval:e=>window.clearInterval(e)}}function Pt(e,t,n,r){if(typeof n!=`string`)return``;let i=t===`zh-CN`?`en-US`:`zh-CN`,a=e.i18n[t]?.strings?.[n]??e.i18n[i]?.strings?.[n]??n;if(!r||typeof r!=`object`)return a;let o=r;return a.replace(/\{([a-zA-Z0-9_]{1,64})\}/g,(e,t)=>{let n=Object.hasOwn(o,t)?o[t]:void 0;return typeof n==`string`||typeof n==`number`&&Number.isFinite(n)?String(n):e})}function Ft(e){let{manifest:t,getLanguage:n,kit:r,services:i,logger:a,onCallbackError:o}=e,s=e.now??(()=>Date.now()),c=new AbortController,l=new Set,u=!1,d=t.capabilities,f=e=>{u||(a.record(`callback`,`error`,e),o(e))},p=At({host:e.timers??Nt(),onError:f}),m=new Set(e.revoked??[]),h=e=>{if(d[e]&&!m.has(e))return;let t=new Mt(e,d[e]?`revoked`:`undeclared`);throw a.record(`log`,`warn`,t),t},g=!1,_=()=>{g||u||(g=!0,i.reportUsage?.(`sessions.read`))},v=e=>{try{return h(e),null}catch(e){return Promise.reject(e)}},y=[],b=e=>{if(h("notify"),u)return;let t=s();for(;y.length&&t-y[0]>=6e4;)y.shift();if(y.length>=6){a.warn(`notify rate limited (6 per minute)`);return}let n=(typeof e==`string`?e:String(e)).trim();n&&(y.push(t),i.notify(Array.from(n).slice(0,200).join(``)),i.reportUsage?.(`notify`))},x=Object.freeze({useList(e){return h("sessions.read"),_(),Et(i.useSessions(),e)},subscribe(e){if(h("sessions.read"),typeof e!=`function`||u)return()=>{};_();let t=i.subscribeSessions(t=>{if(!u)try{e(t)}catch(e){f(e)}}),n=!0,r=()=>{n&&(n=!1,l.delete(r),t())};return l.add(r),r},open(e){h("sessions.open"),!(u||typeof e!=`string`||!e)&&(i.openSession(e),i.reportUsage?.(`sessions.open`))}}),S=Object.freeze({fetch(e,t){let n=v(`network`);if(n)return n;let r;try{r=bt(e,t??{})}catch(e){return Promise.reject(e)}let a=St([c.signal,t?.signal]);return i.fetch(r,a.signal).then(xt,e=>{throw e instanceof W?e:G(e)}).finally(a.release)}}),C=e=>{if(typeof e!=`string`||!jt.test(e))throw new W(`component_storage_key_invalid`,`invalid storage key`);return e},w=Object.freeze({get(e){let t=v(`storage`);if(t)return t;try{return i.storageGet(C(e))}catch(e){return Promise.reject(e)}},set(e,t){let n=v(`storage`);if(n)return n;try{return i.storageSet(C(e),t)}catch(e){return Promise.reject(e)}},remove(e){let t=v(`storage`);if(t)return t;try{return i.storageRemove(C(e))}catch(e){return Promise.reject(e)}}}),T=Object.freeze({info:(...e)=>a.info(...e),warn:(...e)=>a.warn(...e),error:(...e)=>a.error(...e)}),E=Object.freeze({useTheme:r.useTheme}),D=(e,r)=>Pt(t,n(),e,r);return{get signal(){return c.signal},get disposed(){return u},context({size:e,placement:t,session:n}){return Object.freeze({sdk:1,React:r.React,html:r.html,ui:r.ui,theme:E,sessions:x,notify:b,net:S,storage:w,provider:Object.freeze({request(e){let t=v(`provider.request`);if(t)return t;if(!n?.id)return Promise.reject(new W(`component_session_required`));let r;try{if(!e||typeof e!=`object`)throw new W(`component_provider_request_invalid`);let{url:t,...n}=bt(e.path,e);r={...n,path:t,...e.auth===void 0?{}:{auth:e.auth}}}catch(e){return Promise.reject(e)}let a=St([c.signal,e.signal]);return i.providerRequest(n.id,r,a.signal).then(xt,e=>{throw G(e)}).finally(a.release)}}),signal:c.signal,setTimeout:p.setTimeout,setInterval:p.setInterval,clearTimeout:p.clearTimeout,clearInterval:p.clearInterval,size:Object.freeze({...e}),placement:Object.freeze({...t}),session:n?Object.freeze({...n}):void 0,t:D,log:T,CapabilityError:Mt})},dispose(){if(!u){u=!0,p.dispose();for(let e of[...l])e();c.abort(new DOMException(`Component unmounted`,`AbortError`))}}}}function G(e){if(e&&typeof e==`object`){let t=e.data,n=t?.code??t?.error;if(typeof n==`string`&&/^[a-z0-9_]{1,64}$/.test(n))return new W(n);let r=e.kind;if(r===`cancelled`||e.name===`AbortError`)return new W(`component_request_aborted`);if(r===`timeout`)return new W(`component_request_timeout`)}return new W(`component_request_failed`)}var It=Dt();function K(){let e=Se(),{all:t}=se({doneWindow:`today`}),n=e.data?.sessions;return(0,j.useMemo)(()=>wt((n??[]).map(e=>({id:e.id,title:xe(e),cwd:typeof e.cwd==`string`?e.cwd:``,modified:typeof e.modified==`string`?e.modified:``,archived:e.archived===!0})),t.map(e=>({id:e.id,lane:e.lane,totalTokens:e.totalTokens}))),[t,n])}function Lt(){let e=K();return(0,j.useEffect)(()=>{It.set(e)},[e]),null}var Rt=5e3;function zt({send:e,now:t=()=>Date.now(),schedule:n=(e,t)=>window.setTimeout(e,t)}){let r=new Map,i=!1,a=()=>{i=!1;let t=r;r=new Map;for(let[n,r]of t)e(n,[...r].map(([e,t])=>({capability:e,count:t.count,at:new Date(t.at).toISOString()}))).catch(()=>void 0)};return{record(e,o){let s=r.get(e)??new Map,c=s.get(o);s.set(o,{count:(c?.count??0)+1,at:t()}),r.set(e,s),!i&&(i=!0,n(a,Rt))},flush:a}}var Bt=null,Vt=null,Ht=null,Ut=null,Wt=null,Gt=null;function Kt(){return Bt??=mt({importer:e=>t(()=>import(e),[])}),Bt}function qt(){return Vt??=ht(document),Vt}function Jt(){return Ht??=it(),Ht}function Yt(){return Ut??=ut(),Ut}function Xt(){return Wt??=dt({send:m}),Wt}function Zt(){return Gt??=zt({send:p}),Gt}function Qt(e,t){return{notify:t.notify,openSession:t.openSession,reportUsage:t=>Zt().record(e,t),useSessions:K,subscribeSessions:e=>It.subscribe(e),fetch:(t,n)=>_(e,t,n),providerRequest:(t,n,r)=>y(e,t,n,r),storageGet:t=>E(e,t).then(e=>e.value,e=>{if(C(e)!==`component_storage_missing`)throw G(e)}),storageSet:(t,n)=>b(e,t,n).catch(e=>{throw G(e)}),storageRemove:t=>ne(e,t).catch(e=>{throw G(e)})}}function $t({surface:e,cardSize:t,width:n,height:r}){let i=Number.isFinite(n)&&n>0?Math.round(n):0;return{units:e===`overview-card`&&t===`M`?2:1,width:i,height:Number.isFinite(r)&&r>0?Math.round(r):0,compact:i<300}}function en(e){let[t,n]=(0,j.useState)({width:0,height:0,measured:!1});return(0,j.useLayoutEffect)(()=>{let t=e.current;if(!t)return;let r=(e,t)=>n(n=>n.measured&&Math.round(n.width)===Math.round(e)&&Math.round(n.height)===Math.round(t)?n:{width:e,height:t,measured:!0}),i=t.getBoundingClientRect();if(r(i.width,i.height),typeof ResizeObserver>`u`)return;let a=new ResizeObserver(e=>{let t=e[e.length-1];t&&r(t.contentRect.width,t.contentRect.height)});return a.observe(t),()=>a.disconnect()},[e]),t}var tn=/^--[a-zA-Z0-9-]{1,64}$/;function nn(){if(typeof document>`u`)return`light|comfortable|default|default`;let e=document.documentElement;return[e.classList.contains(`dark`)?`dark`:`light`,e.dataset.density||`comfortable`,e.dataset.fontScale||`default`,e.dataset.radius||`default`,e.style.getPropertyValue(`--ui-font-size`).trim()].join(`|`)}function rn(e){if(typeof MutationObserver>`u`||typeof document>`u`)return()=>{};let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`,`style`,`data-density`,`data-font-scale`,`data-radius`]}),()=>t.disconnect()}function an(e){return typeof e!=`string`||!tn.test(e)||typeof document>`u`?``:getComputedStyle(document.documentElement).getPropertyValue(e).trim()}var q=new Map;function on(e){let t=q.get(e);if(t)return t;let[n,r,i,a,o]=e.split(`|`),s=Object.freeze({mode:n===`dark`?`dark`:`light`,density:r||`comfortable`,fontSize:o||i||`default`,radius:a||`default`,token:an});return q.size>64&&q.clear(),q.set(e,s),s}function sn(){return on((0,j.useSyncExternalStore)(rn,nn,nn))}var cn={attention:`attn`,run:`run`,queued:`queue`,done:`done`,failed:`fail`,stopped:`queue`},ln={run:`border-st-run-border bg-st-run-soft text-st-run`,attn:`border-st-attn-border bg-st-attn-soft text-st-attn`,fail:`border-st-fail-border bg-st-fail-soft text-st-fail`,done:`border-st-done-border bg-st-done-soft text-st-done`,queue:`border-st-queue-border bg-st-queue-soft text-st-queue`};function un({status:e,tone:t,spin:n,className:r,children:i,...a}){let o=t??cn[e];return(0,M.jsxs)(`span`,{"data-status":e,"data-tone":o,className:k(`inline-flex h-[22px] w-fit max-w-full shrink-0 items-center gap-[5px] rounded-xs border pr-2 pl-1.5 text-xs leading-none font-medium whitespace-nowrap`,ln[o],r),...a,children:[(0,M.jsx)(Ce,{status:e,spin:n,className:`size-3.5`}),(0,M.jsx)(`span`,{className:`min-w-0 truncate`,children:i})]})}var dn=i(`inline-flex w-fit max-w-full shrink-0 items-center justify-center gap-1.5 rounded-sm border border-stroke-strong bg-solid font-medium whitespace-nowrap text-content-secondary shadow-edge transition-colors duration-(--d-fast) select-none hover:bg-surface-hover hover:text-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 aria-expanded:bg-surface-hover aria-expanded:text-foreground aria-pressed:border-control aria-pressed:bg-surface-active aria-pressed:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5 [&_svg:not([class*='text-'])]:text-content-muted`,{variants:{size:{default:`h-7 px-2.5 text-sm pointer-coarse:min-h-11`,sm:`h-6 gap-1 px-2 text-xs`}},defaultVariants:{size:`default`}});function fn({className:e,size:t=`default`,asChild:n=!1,type:r,...i}){let a=n?le:`button`;return(0,M.jsx)(a,{"data-slot":`chip`,"data-size":t,className:k(dn({size:t}),e),...n?{}:{type:r??`button`},...i})}function pn({className:e,...t}){return(0,M.jsx)(`div`,{"data-slot":`empty`,className:k(`flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border border-dashed border-stroke-strong p-6 text-center text-balance`,e),...t})}i(`mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,icon:`flex size-8 shrink-0 items-center justify-center rounded-md border border-stroke bg-key text-content-muted shadow-key [&_svg:not([class*='size-'])]:size-4`}},defaultVariants:{variant:`default`}});var mn=Object.freeze({Button:A,Badge:Ee,Chip:fn,Input:we,Textarea:Te,Switch:pe,Checkbox:ue,SegmentedControl:me,Progress:de,Spinner:ye,Skeleton:Oe,Separator:fe,Kbd:be,Tooltip:ve,TooltipTrigger:he,TooltipContent:ge,TooltipProvider:_e,StatusGlyph:Ce,StatusTag:un,Empty:pn}),hn=Object.freeze({React:j,html:tt,ui:mn,useTheme:sn}),gn=()=>{};function _n(e,t,n){return n?`preview:${e.id}`:t.instanceId}function vn({component:e,instance:t,preview:n=!1,session:r,notify:i,onOpenSession:o,onRequestFix:s,onCommitSample:c,className:l}){let{t:u,language:d}=a(),f=_n(e,t,n),p=De(),m=(0,j.useSyncExternalStore)(p.subscribe,p.mode,p.mode),h=Jt();(0,j.useSyncExternalStore)(h.subscribe,h.version,h.version);let g=h.isPaused(f),_=(0,j.useRef)(null),v=en(_),[y,b]=(0,j.useState)(0),[x,S]=(0,j.useState)(null),C=e.manifest,w=e.rev,T=e.kind===`native`&&e.status===`ready`&&!!(C&&w),E=T&&m===`normal`&&!g,D=(0,j.useMemo)(()=>ft({componentId:e.id,instanceId:f,surface:t.surface,buffer:Yt(),reporter:Xt()}),[e.id,t.surface,f]);(0,j.useLayoutEffect)(()=>{if(E)return p.beginLoad(f),()=>p.endLoad(f)},[E,f,p]);let ee=$t({surface:t.surface,cardSize:t.size,width:v.width,height:v.height}),O=null;return T?m===`normal`?g?O=(0,M.jsx)(J,{title:u(`custom-ui:host.pausedTitle`),description:u(`custom-ui:host.pausedHint`),actions:(0,M.jsx)(A,{size:`xs`,variant:`secondary`,onClick:()=>{S(null),h.resume(f),b(e=>e+1)},children:u(`custom-ui:host.resume`)})}):v.measured&&C&&w&&(O=(0,M.jsx)(xn,{onCrash:e=>{D.record(e instanceof U?`load`:`render`,`error`,e),p.endLoad(f),h.record(f,w)},fallback:t=>(0,M.jsx)(Cn,{error:t,componentId:e.id,notify:i,onReload:()=>b(e=>e+1),onRequestFix:s}),children:(0,M.jsxs)(j.Suspense,{fallback:(0,M.jsx)(Oe,{className:`size-full rounded-none`}),children:[C.capabilities[`sessions.read`]&&(0,M.jsx)(Lt,{}),(0,M.jsx)(yn,{component:e,instance:t,preview:n,session:r,size:ee,language:d,logger:D,notify:i,onOpenSession:o??gn,onCallbackError:()=>h.record(f,w),onCommit:(e,t)=>{if(t&&p.endLoad(f),e&&c?.(e.duration),e?.warning&&x===null){let t=Math.round(e.duration);D.record(`slow`,`warn`,`slow commit ${t}ms`),S(t)}}})]})},`${t.instanceId}@${w}#${y}~${e.revoked.join(`,`)}`)):O=(0,M.jsx)(J,{title:u(`custom-ui:host.safeModeTitle`),description:u(`custom-ui:host.safeModeHint`)}):O=(0,M.jsx)(J,{title:u(`custom-ui:host.unavailableTitle`)}),(0,M.jsxs)(`div`,{ref:_,"data-component-host":e.id,"data-component-instance":t.instanceId,"data-component-state":T?m===`normal`?g?`paused`:`active`:`safe-mode`:`unavailable`,className:k(`relative size-full min-h-0 min-w-0 overflow-hidden`,l),children:[O,E&&x!==null&&(0,M.jsxs)(`div`,{role:`status`,className:`absolute top-1 right-1 flex items-center gap-1 rounded-sm border border-stroke-strong bg-panel px-1.5 py-0.5 text-xs text-content-secondary shadow-key`,children:[(0,M.jsx)(`span`,{children:u(`custom-ui:host.slowWarning`,{ms:x})}),(0,M.jsx)(A,{size:`xs`,variant:`ghost`,onClick:()=>h.pause(f),children:u(`custom-ui:host.pause`)})]})]})}function yn({component:e,instance:t,preview:n,session:r,size:i,language:a,logger:o,notify:s,onOpenSession:c,onCallbackError:l,onCommit:u}){let d=e.manifest,f=e.rev,p=(0,j.use)(Kt().load(e.id,f,d.entry)),m=(0,j.useRef)({notify:s,onOpenSession:c,onCallbackError:l,language:a});m.current={notify:s,onOpenSession:c,onCallbackError:l,language:a};let h=(0,j.useRef)(()=>Ft({manifest:d,getLanguage:()=>m.current.language,kit:hn,services:Qt(e.id,{notify:e=>m.current.notify(e),openSession:e=>m.current.onOpenSession(e)}),revoked:e.revoked,logger:o,onCallbackError:e=>m.current.onCallbackError(e)})),[g,_]=(0,j.useState)(()=>h.current()),v=(0,j.useRef)(null);(0,j.useEffect)(()=>{if(v.current!==null&&(window.clearTimeout(v.current),v.current=null),g.disposed){_(h.current());return}return()=>{v.current=window.setTimeout(()=>{v.current=null,g.dispose()},0)}},[g]),(0,j.useEffect)(()=>{let t=d.styles;if(t.length)return qt().retain(e.id,f,t)},[e.id,d.styles,f]);let y=(0,j.useRef)(Ze()),b=(0,j.useRef)(!1);y.current.start(performance.now());let x={surface:t.surface,instanceId:t.instanceId,title:t.title??``,preview:n},S=g.context({size:i,placement:x,session:r});return(0,M.jsxs)(M.Fragment,{children:[(0,j.createElement)(p,{props:t.props,size:S.size,placement:S.placement,ctx:S}),(0,M.jsx)(bn,{onCommit:()=>{let e=y.current.commit(performance.now()),t=!b.current;b.current=!0,u(e,t)}})]})}function bn({onCommit:e}){return(0,j.useLayoutEffect)(()=>{e()}),null}var xn=class extends j.Component{state={error:null,failed:!1};static getDerivedStateFromError(e){return{error:e,failed:!0}}componentDidCatch(e,t){this.props.onCrash(e)}render(){return this.state.failed?this.props.fallback(this.state.error):this.props.children}};function Sn({componentId:e,notify:t}){let{t:n}=a(),r=o(),i=s(ee()).data?.features.versions===!0,c=s({queryKey:w.versions(e),queryFn:({signal:t})=>Me(e,t),enabled:i,retry:!1,staleTime:1e4}),[l,u]=(0,j.useState)(!1),d=c.data?.versions[0];if(!i||!d)return null;let f=async()=>{u(!0);try{await Fe(e,d.n),t(n(`custom-ui:versions.restored`,{n:d.n})),await r.invalidateQueries({queryKey:w.all})}catch(e){let r=C(e);t(r?`${n(`custom-ui:versions.restoreFailed`)} ${B(r,n)}`:n(`custom-ui:versions.restoreFailed`)),u(!1)}};return(0,M.jsx)(A,{size:`xs`,variant:`ghost`,disabled:l,"data-component-rollback":d.n,onClick:()=>void f(),children:n(`custom-ui:host.rollbackTo`,{n:d.n})})}function Cn({error:e,componentId:t,notify:n,onReload:r,onRequestFix:i}){let{t:o}=a(),[s,c]=(0,j.useState)(!1),l=st(e),u=e instanceof U;return(0,M.jsx)(J,{tone:`error`,title:o(u?`custom-ui:host.loadErrorTitle`:`custom-ui:host.renderErrorTitle`),actions:(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(A,{size:`xs`,variant:`ghost`,"aria-expanded":s,onClick:()=>c(!s),children:o(s?`custom-ui:host.hideError`:`custom-ui:host.viewError`)}),(0,M.jsx)(A,{size:`xs`,variant:`secondary`,onClick:r,children:o(`custom-ui:host.reload`)}),(0,M.jsx)(Sn,{componentId:t,notify:n}),i&&(0,M.jsx)(A,{size:`xs`,variant:`ghost`,onClick:()=>i(lt(l.message,l.stack)),children:o(`custom-ui:host.askAgentFix`)})]}),children:s&&(0,M.jsx)(`pre`,{className:`max-h-32 w-full overflow-auto rounded-sm bg-surface-subtle p-2 text-left font-mono text-xs whitespace-pre-wrap text-content-secondary`,children:l.stack||l.message})})}function J({title:e,description:t,actions:n,children:r,tone:i=`neutral`}){return(0,M.jsxs)(`div`,{role:i===`error`?`alert`:`status`,className:`flex size-full min-h-0 flex-col items-start justify-center gap-1.5 overflow-auto p-3 text-left`,children:[(0,M.jsx)(`p`,{className:k(`text-sm font-medium`,i===`error`?`text-st-fail`:`text-content`),children:e}),t&&(0,M.jsx)(`p`,{className:`text-xs text-content-muted`,children:t}),r,n&&(0,M.jsx)(`div`,{className:`flex flex-wrap items-center gap-1`,children:n})]})}Object.freeze([`GET`,`HEAD`,`POST`,`PUT`,`PATCH`,`DELETE`]),Object.freeze([`overview-card`,`session-panel`,`feature-page`,`floating`]),Object.freeze([`S`,`M`]);var wn=Object.freeze({S:Object.freeze({w:320,h:120}),M:Object.freeze({w:320,h:248})}),Tn=Object.freeze({w:320,h:200});Object.freeze({minW:160,maxW:480,minH:64,maxH:480}),Object.freeze([`network`,`notify`,`sessions.read`,`sessions.open`,`storage`,`provider.request`]);var En=16384;Object.freeze([`pisper-island`]),Object.freeze([`sdk`,`React`,`html`,`ui`,`theme`,`sessions`,`notify`,`net`,`storage`,`provider`,`signal`,`setTimeout`,`setInterval`,`clearTimeout`,`clearInterval`,`size`,`placement`,`session`,`t`,`log`,`CapabilityError`]),Object.freeze([`Button`,`Badge`,`Chip`,`Input`,`Textarea`,`Switch`,`Checkbox`,`SegmentedControl`,`Progress`,`Spinner`,`Skeleton`,`Separator`,`Kbd`,`Tooltip`,`TooltipTrigger`,`TooltipContent`,`TooltipProvider`,`StatusGlyph`,`StatusTag`,`Empty`]),Object.freeze([`zh-CN`,`en-US`]);var Dn=/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;function On(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function kn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function An(e){let t=``,n=!1;for(let r=0;r<e.length;r+=1){let i=e.charCodeAt(r);if(i>=55296&&i<=56319){let i=e.charCodeAt(r+1);if(i>=56320&&i<=57343){t+=e[r]+e[r+1],r+=1;continue}t+=`�`,n=!0;continue}if(i>=56320&&i<=57343){t+=`�`,n=!0;continue}t+=e[r]}return n?t:e}function Y(e,t,n,r){e.push(r?{path:t,code:n,params:r}:{path:t,code:n})}function jn(e,t,n,r){switch(e.type){case`string`:{if(typeof t!=`string`)return Y(r,n,`props_type_invalid`);let i=An(t);return i.length>e.maxLength?Y(r,n,`props_too_long`,{max:e.maxLength}):e.enum&&!e.enum.includes(i)?Y(r,n,`props_enum_invalid`):e.format===`url`&&i&&!/^https?:\/\/[^\s]+$/i.test(i)?Y(r,n,`props_url_invalid`):e.format===`color`&&i&&!Dn.test(i)?Y(r,n,`props_color_invalid`):i}case`number`:case`integer`:return typeof t!=`number`||!Number.isFinite(t)||e.type===`integer`&&!Number.isInteger(t)?Y(r,n,`props_type_invalid`):e.minimum!==void 0&&t<e.minimum||e.maximum!==void 0&&t>e.maximum?Y(r,n,`props_out_of_range`,{...e.minimum===void 0?{}:{min:e.minimum},...e.maximum===void 0?{}:{max:e.maximum}}):t;case`boolean`:return typeof t==`boolean`?t:Y(r,n,`props_type_invalid`);case`array`:{if(!Array.isArray(t))return Y(r,n,`props_type_invalid`);if(t.length>e.maxItems)return Y(r,n,`props_too_many`,{max:e.maxItems});let i=[];for(let a=0;a<t.length;a+=1){let o=t[a];if(typeof o!=`string`)return Y(r,`${n}.${a}`,`props_type_invalid`);let s=An(o);if(s.length>e.itemMaxLength)return Y(r,`${n}.${a}`,`props_too_long`,{max:e.itemMaxLength});i.push(s)}return i}}}function Mn(e){let t=JSON.stringify(e),n=0;for(let e of t){let t=e.codePointAt(0);n+=t<128?1:t<2048?2:t<65536?3:4}return n}function Nn(e,t){let n=[],r={},i=e?.properties||{};t??={};let a=On(t);if(!a)return Y(n,`props`,`props_type_invalid`),{value:r,errors:n};for(let e of Object.keys(a)){let t=kn(i,e)?i[e]:void 0;if(!t){Y(n,`props.${e}`,`props_unknown`);continue}if(a[e]===null||a[e]===void 0)continue;let o=n.length,s=jn(t,a[e],`props.${e}`,n);n.length===o&&(r[e]=s)}for(let t of e?.required||[])!kn(r,t)&&i[t]?.default===void 0&&Y(n,`props.${t}`,`props_required`);return!n.length&&Mn(r)>16384&&Y(n,`props`,`props_too_large`,{max:En}),{value:n.length?{}:r,errors:n}}function Pn(e,t){return e.placements.find(e=>e.surface===t)||null}var Fn={standard:456,min:420},In=1360;function Ln(e){return e.filter(e=>e.kind!==`legacy`)}function X(e,t){return(e.manifest?.i18n)?.[t]?.name||e.name||e.id}function Rn(e,t){return(e.manifest?.i18n)?.[t]?.description||e.description||``}function zn(e,t){return e.kind===`broken`||e.status!==`ready`||t.has(e.id)}function Bn(e){return e.kind===`native`&&e.enabled}function Vn(e,{filter:t,query:n,language:r,troubled:i}){let a=n.trim().toLocaleLowerCase();return e.filter(e=>t===`enabled`&&!Bn(e)||t===`attention`&&!zn(e,i)?!1:!a||[X(e,r),e.id,Rn(e,r)].join(`
3
3
  `).toLocaleLowerCase().includes(a))}function Hn(e,t){return{all:e.length,enabled:e.filter(Bn).length,attention:e.filter(e=>zn(e,t)).length}}var Un=[`overview-card`,`session-panel`,`feature-page`,`floating`];function Wn(e,t){let n=[];for(let r of Un){let i=t.filter(t=>t.componentId===e&&t.surface===r&&t.enabled);if(!i.length)continue;let a=[`S`,`M`].filter(e=>i.some(t=>t.size===e));n.push({surface:r,sizes:r===`overview-card`?a:[],count:i.length})}return n}function Gn(e){if(!e)return[];let t=[];for(let n of Un){let r=e.placements.find(e=>e.surface===n);if(r){if(n===`overview-card`){let e=r.sizes?.length?r.sizes:[`S`,`M`];for(let n of e)t.push(n===`S`?`overview-S`:`overview-M`)}else t.push(n)}}return t}function Kn(e){return e===`overview-S`||e===`overview-M`?`overview-card`:e}function qn(e){return e===`overview-S`?`S`:e===`overview-M`?`M`:null}function Jn(e){return e.surface===`overview-card`?e.size===`M`?`overview-M`:`overview-S`:e.surface}function Yn(e,t,n){if(e===`overview-S`||e===`overview-M`){let t=e===`overview-S`?`S`:`M`,n=wn[t];return{width:n.w,height:n.h,label:`${t} · ${n.w}×${n.h}`}}if(e===`session-panel`){let e=Fn[n];return{width:e,height:`fill`,label:`${e}`}}if(e===`floating`){let e=t?.placements.find(e=>e.surface===`floating`)?.size??Tn;return{width:e.w,height:e.h,label:`${e.w}×${e.h}`}}return n===`min`?{width:812,height:`fill`,label:`812`}:{width:`fill`,height:`fill`,label:``}}function Xn(e,t){return!!e?.placements.some(e=>e.surface===t)}function Zn(e){return e?.placements.find(e=>e.surface===`overview-card`)?.sizes?.[0]??`S`}function Qn(e){return e.kind===`native`&&e.status===`ready`&&e.enabled&&!!e.manifest}function $n(e,t,n){return e.find(e=>e.id===t)||(t?void 0:e.find(e=>e.id===n))||(t?void 0:e[0])||null}var er=4e3,Z={pending:new Set,sessions:new Map},Q=new Set;function $(e){Z={...Z,...e};for(let e of[...Q])e()}function tr(e){return Q.add(e),()=>{Q.delete(e)}}function nr(e){return{pending:(0,j.useSyncExternalStore)(tr,()=>Z.pending.has(e)),sessionId:(0,j.useSyncExternalStore)(tr,()=>Z.sessions.get(e)??``)}}async function rr(e,t){let n=await h(e);return ce({sessionId:n.sessionId,prompt:t.slice(0,er),commandWhenEmpty:n.command,created:n.created?n.session:null})}function ir(e){let{t,language:n}=a();return(0,j.useMemo)(()=>{let r=async(r,i,a)=>{let o=i.trim();if(!o||Z.pending.has(r.id))return null;$({pending:new Set(Z.pending).add(r.id)});let s=X(r,n);try{let n=await rr(r.id,o);return $({sessions:new Map(Z.sessions).set(r.id,n.sessionId)}),e(n.queued?t(`custom-ui:agent.queued`,{name:s}):t(a===`fix`?`custom-ui:agent.fixSent`:`custom-ui:agent.generateSent`,{name:s})),n}catch(n){let r=C(n);return e(r?`${t(`custom-ui:agent.failed`)} ${B(r,t)}`:t(`custom-ui:agent.failed`)),null}finally{let e=new Set(Z.pending);e.delete(r.id),$({pending:e})}};return{generate:(e,t)=>r(e,t,`generate`),fix:(e,n)=>r(e,t(`custom-ui:agent.fixPrompt`,{summary:n}),`fix`)}},[n,e,t])}function ar(e,t){let n=ir(t);return(0,j.useCallback)(t=>void n.fix(e,t),[n,e])}function or(e,t){return t(e===`overview-card`?`custom-ui:studio.surfaceOverview`:e===`session-panel`?`custom-ui:studio.surfaceSession`:e===`feature-page`?`custom-ui:studio.surfaceFeature`:`custom-ui:studio.surfaceFloating`)}function sr(e,t){switch(e){case`overview-S`:return t(`custom-ui:studio.targetOverviewS`);case`overview-M`:return t(`custom-ui:studio.targetOverviewM`);case`session-panel`:return t(`custom-ui:studio.surfaceSession`);case`feature-page`:return t(`custom-ui:studio.surfaceFeature`);default:return t(`custom-ui:studio.surfaceFloating`)}}function cr(e,t){switch(e){case`network`:return t(`custom-ui:studio.capNetwork`);case`notify`:return t(`custom-ui:studio.capNotify`);case`sessions.read`:return t(`custom-ui:studio.capSessionsRead`);case`sessions.open`:return t(`custom-ui:studio.capSessionsOpen`);case`provider.request`:return t(`custom-ui:studio.capProviderRequest`);default:return t(`custom-ui:studio.capStorage`)}}function lr(e){return[...e?.hosts??[],...e?.privateOrigins??[]].join(`, `)}function ur(e,t){switch(e.source){case`agent`:return t(`custom-ui:versions.sourceAgent`);case`import`:return t(`custom-ui:versions.sourceImport`);case`restore`:return t(`custom-ui:versions.sourceRestore`);case`local`:return t(`custom-ui:versions.sourceLocal`);default:return``}}function dr(e){let t=o(),{t:n}=a();return(0,j.useMemo)(()=>{let r=()=>t.invalidateQueries({queryKey:w.all}),i=(t,r)=>{let i=C(t);e(i?`${r} ${B(i,n)}`:r)},a=async(e,t)=>{try{let t=await e();return await r(),t}catch(e){return i(e,t),null}};return{refresh:r,createFromTemplate:(e,t)=>a(()=>x({template:e,...t?{name:t}:{}}),n(`custom-ui:studio.createFailed`)),setEnabled:(e,t)=>a(()=>T(e.id,t),n(`custom-ui:studio.toggleFailed`)),remove:async t=>{let r=await a(()=>D(t.id),n(`custom-ui:studio.deleteFailed`));return r&&e(n(`custom-ui:studio.deleted`,{name:t.name})),r},place:(e,t,r)=>{let i=r.surface===`overview-card`?void 0:t.find(t=>t.componentId===e.id&&t.surface===r.surface);return a(()=>i?d(i.instanceId,{enabled:!0,...r.scope?{scope:r.scope}:{}}):O({componentId:e.id,...r}),n(`custom-ui:studio.placeFailed`))},unplace:e=>a(()=>S(e.instanceId),n(`custom-ui:studio.unplaceFailed`)),patchInstance:(e,t)=>a(()=>d(e.instanceId,t),n(`custom-ui:studio.saveFailed`)),saveProps:async(e,t)=>{let n=await d(e.instanceId,t);return await r(),n}}},[t,e,n])}export{vn as A,Ke as B,qn as C,wn as D,Tn as E,Kt as F,Me as G,Je as H,K as I,Fe as J,Be as K,lt as L,en as M,Jt as N,Pn as O,Yt as P,Ge as Q,B as R,Xn as S,Ln as T,Ue as U,Ie as V,Re as W,Ye as X,ze as Y,Ve as Z,Wn as _,sr as a,$n as b,ir as c,In as d,Qn as f,Jn as g,Vn as h,or as i,fn as j,Nn as k,nr as l,Zn as m,cr as n,ur as o,X as p,We as q,lr as r,er as s,dr as t,ar as u,Yn as v,Kn as w,Hn as x,Gn as y,Pe as z};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{t as n}from"./use-i18n-Cyg5th6Z.js";import{t as r}from"./createLucideIcon-Cd-3GVxJ.js";import{n as i,t as a}from"./workspace-order-store-DshLVZf8.js";import{t as o}from"./useSessionListQuery-BpWfS-tU.js";import{n as s}from"./board-projects-KHcPQYWz.js";var c=r(`folder-minus`,[[`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`}]]),l=e(t(),1);function u(){let{t:e}=n(),t=o(),r=a(e=>e.order),c=a(e=>e.names),u=i(e=>e.projects);return(0,l.useMemo)(()=>s(t.data?.sessions??[],u,c,r,e(`board:filter.noProject`)),[t.data,c,r,u,e])}export{c as n,u as t};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{t as n}from"./use-i18n-B2p84ZNR.js";import{t as r}from"./createLucideIcon-Cd-3GVxJ.js";import{n as i,t as a}from"./workspace-order-store-CK1RETHt.js";import{t as o}from"./useSessionListQuery-CHbg2lM2.js";import{n as s}from"./board-projects-Ca61ZKPH.js";var c=r(`folder-minus`,[[`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`}]]),l=e(t(),1);function u(){let{t:e}=n(),t=o(),r=a(e=>e.order),c=a(e=>e.names),u=i(e=>e.projects);return(0,l.useMemo)(()=>s(t.data?.sessions??[],u,c,r,e(`board:filter.noProject`)),[t.data,c,r,u,e])}export{c as n,u as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WorkspacePicker-LbBXFH77.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-DwNgTV1j.js","assets/use-i18n-Cyg5th6Z.js","assets/i18n-Du-JO3Qx.js","assets/vendor-router-CSN_DGvx.js","assets/index-DmohsuQg.js","assets/index-BY7X-ZtU.css","assets/storage-8QW6lXuT.js","assets/vendor-state-GkUciC5H.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/check-2vYc6QaP.js","assets/triangle-alert-CE1q54ci.js","assets/button-CCcCN8tE.js","assets/vendor-ui-DvrYggeS.js","assets/dist-41X0pdUs.js","assets/utils-C8uzG5AZ.js","assets/dialog-5MLAAE-f.js","assets/x-07u4-129.js","assets/dist-BHkR6BLP.js","assets/dist-BsRXXcSL.js","assets/es2015-DTZdOI9P.js","assets/input-CPw-zkYh.js","assets/alert-firawb0H.js","assets/NewFolderDialog-W9wLUVXP.js","assets/api-m-Yq8n0q.js","assets/abort-signal-f4JsiYKX.js","assets/folder-open-FIShC5Qk.js","assets/workspace-order-store-DshLVZf8.js","assets/session-workspaces-Csgpuzxd.js","assets/input-group-h8z63MzW.js","assets/textarea-DmATpOqT.js","assets/pick-system-directory-ByTVOp-v.js","assets/folder-paths-CdOS1VLF.js","assets/startup-queries-Cevfi-_Z.js","assets/query-Bj-DUNYq.js","assets/mutation-CEbxdVYy.js","assets/events-B0F69Vd3.js","assets/field-DoLEb0np.js","assets/label-CVWjEcfV.js","assets/separator-BPh_qxvc.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{h as t}from"./vendor-router-CSN_DGvx.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-Cyg5th6Z.js";import{a,o}from"./vendor-state-GkUciC5H.js";import{t as s}from"./useQuery-DdcpUQhO.js";import{t as c}from"./api-m-Yq8n0q.js";import{t as l}from"./createLucideIcon-Cd-3GVxJ.js";import"./FocusRuntimeControls-DraooZz_.js";import{n as u}from"./workspace-order-store-DshLVZf8.js";import"./chat-api-DgJdhfOP.js";import{S as d,a as f,n as p,o as m}from"./useSessionListQuery-BpWfS-tU.js";import{c as h,d as g,l as _,u as v}from"./useNow-BBVE-LCR.js";import{i as y}from"./format-DMJQzoZ7.js";import"./session-change-summary-api-CbVgbX2o.js";import{a as b,n as x}from"./folder-paths-CdOS1VLF.js";var S=l(`folder`,[[`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`}]]),C=e(n(),1);function w({doneWindow:e}={}){let t=_(e=>e.groupBy),n=_(e=>e.projects),r=_(e=>e.lanes),i=_(e=>e.collapsedLanes),a=_(e=>e.doneWindow),o=e??a,{query:s,items:c,capabilities:l,isLoading:u}=h(o),g=(0,C.useMemo)(()=>f(c,{lanes:r,projects:n}),[c,r,n]),v=(0,C.useMemo)(()=>m(g),[g]),y=(0,C.useMemo)(()=>p(c),[c]),b=(0,C.useMemo)(()=>c.filter(e=>e.lane===`attention`),[c]),x=s.data?.sessions,S=(0,C.useMemo)(()=>!!x&&!(x??[]).some(e=>e.archived!==!0&&(typeof e.messageCount!=`number`||e.messageCount>0)),[x]),w=(0,C.useMemo)(()=>({groupBy:t,projects:n,lanes:r,collapsedLanes:i,doneWindow:o}),[i,o,t,r,n]),T=(0,C.useCallback)(async()=>{await d()},[]);return{all:c,items:g,lanes:v,projects:y,total:c.length,attentionAll:b,catalogEmpty:S,view:w,capabilities:l,isLoading:u,isRefreshing:s.isFetching&&!s.isPending,error:s.error??null,refresh:T}}function T(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function E(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:null}var D=[`input`,`output`,`cacheRead`,`cacheWrite`,`totalTokens`,`total`];function O(e,t){let n=T(e),r=D.some(e=>E(n[e])!==null)?y(e).totalTokens:null,i=T(T(t).subAgents),a=E(i.running),o=E(i.maxConcurrent);return{todayTokens:E(r),memoryBytes:E(T(T(t).memory).rss),...a!==null&&o!==null&&o>=1?{subAgents:{running:Math.floor(a),max:Math.floor(o)}}:{}}}async function k(e){let[t,n]=await Promise.allSettled([c(`/api/usage/today`,{signal:e}),c(`/api/runtime/diagnostics`,{signal:e})]);return O(t.status===`fulfilled`?t.value:void 0,n.status===`fulfilled`?n.value:void 0)}function A(e){return s({queryKey:[`board`,`fleet-system-info`],queryFn:({signal:e})=>k(e),enabled:e,staleTime:15e3,retry:!1})}var j=r(),M=(0,C.lazy)(()=>t(()=>import(`./WorkspacePicker-LbBXFH77.js`).then(e=>e.n).then(e=>({default:e.WorkspacePicker})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))),N=(0,C.lazy)(()=>t(()=>import(`./NewFolderDialog-W9wLUVXP.js`).then(e=>({default:e.NewFolderDialog})),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,25,26,27,10,28,29,12,13,14,15,16,17,18,19,20,21,22,30,31,32,33,34,35,36,37,23,38,39,40])));function P({picker:e,folderDialog:t}){let{mounted:n,...r}=e,{mounted:i,...a}=t;return!n&&!i?null:(0,j.jsxs)(C.Suspense,{fallback:null,children:[n&&(0,j.jsx)(M,{...r}),i&&(0,j.jsx)(N,{...a})]})}var F=`pisper-launch-defaults`,I=[`approval-required`,`workspace-write`,`full-access`],L=[`plan`,`goal`,`team`],R=I.filter(e=>e!==`full-access`);function z(e){return R.includes(e)?e:``}var B={cwd:``,projectless:!1,model:``,thinkingLevel:``,executionMode:``,runMode:`plan`};function V(e,t,n){if(typeof e!=`string`)return``;let r=e.trim();return r.length<=t&&(!n||n.test(r))?r:``}function H(e){let t=g(e);return{cwd:V(t.cwd,4096),projectless:t.projectless===!0,model:V(t.model,256),thinkingLevel:V(t.thinkingLevel,32,/^[a-z][a-z0-9_-]*$/),executionMode:z(t.executionMode),runMode:L.includes(t.runMode)?t.runMode:`plan`}}function U(e,t){let n=t.projectless??(t.cwd===void 0&&e.projectless),r=H({...e,...t,projectless:n});return t.executionMode===`full-access`?{...r,executionMode:z(e.executionMode)}:r}var W=o()(a((e,t)=>({...B,rememberLaunch:n=>{let{cwd:r,projectless:i,model:a,thinkingLevel:o,executionMode:s,runMode:c}=t();e(U({cwd:r,projectless:i,model:a,thinkingLevel:o,executionMode:s,runMode:c},n))},resetLaunchDefaults:()=>e({...B})}),{name:F,storage:v(),version:1,partialize:({cwd:e,projectless:t,model:n,thinkingLevel:r,executionMode:i,runMode:a})=>({cwd:e,projectless:t,model:n,thinkingLevel:r,executionMode:i,runMode:a}),merge:(e,t)=>({...t,...H(e)})}));function G({onProjectChosen:e,onError:t,onRemembered:n}){let{t:r}=i(),[a,o]=(0,C.useState)(!1),[s,c]=(0,C.useState)(!1),[l,d]=(0,C.useState)(!1),[f,p]=(0,C.useState)(!1),[m,h]=(0,C.useState)(!1),[g,_]=(0,C.useState)(``),v=(0,C.useRef)(!1),y=(0,C.useRef)(0),S=(0,C.useRef)(!1),w=(0,C.useRef)({onProjectChosen:e,onError:t,onRemembered:n});w.current={onProjectChosen:e,onError:t,onRemembered:n},(0,C.useEffect)(()=>()=>{y.current+=1},[]);let T=(0,C.useCallback)(e=>{let t=u.getState().registerProject(e)||e;W.getState().rememberLaunch({cwd:t}),w.current.onRemembered?.(t)},[]),E=(0,C.useCallback)(async()=>{if(v.current)return;v.current=!0,o(!0);let e=++y.current;try{let t=await b(r);if(e!==y.current)return;t.status===`picked`?(T(t.path),w.current.onProjectChosen()):t.status===`unavailable`&&(c(!0),d(!0))}catch(t){e===y.current&&w.current.onError(t instanceof Error?t.message:String(t))}finally{e===y.current&&(v.current=!1,o(!1))}},[T,r]),D=(0,C.useCallback)((e=``)=>{_(x(e)),p(!0),h(!0)},[]),O=e=>{S.current&&(S.current=!1,e.preventDefault(),w.current.onProjectChosen())};return{newProject:E,newFolder:D,picking:a,picker:{mounted:s,open:l,description:r(`board:project.pickerDescription`),onOpenChange:d,onSelect:e=>{T(e),S.current=!0},onCloseAutoFocus:O},folderDialog:{mounted:f,open:m,initialParent:g,onOpenChange:h,onCreated:e=>{T(e),S.current=!0},onCloseAutoFocus:O}}}export{A as a,P as i,R as n,w as o,W as r,S as s,G as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WorkspacePicker-CROSQVzJ.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-DwNgTV1j.js","assets/use-i18n-B2p84ZNR.js","assets/i18n-CXRjs9ow.js","assets/vendor-router-CSN_DGvx.js","assets/index-DcTDwezs.js","assets/index-BY7X-ZtU.css","assets/storage-8QW6lXuT.js","assets/vendor-state-GkUciC5H.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/check-2vYc6QaP.js","assets/triangle-alert-CE1q54ci.js","assets/button-CCcCN8tE.js","assets/vendor-ui-DvrYggeS.js","assets/dist-41X0pdUs.js","assets/utils-C8uzG5AZ.js","assets/dialog-D1TVm0d6.js","assets/x-07u4-129.js","assets/dist-BHkR6BLP.js","assets/dist-BsRXXcSL.js","assets/es2015-DTZdOI9P.js","assets/input-CPw-zkYh.js","assets/alert-firawb0H.js","assets/NewFolderDialog-wwAp2HUt.js","assets/api-CIB7ZPX3.js","assets/abort-signal-f4JsiYKX.js","assets/folder-open-FIShC5Qk.js","assets/workspace-order-store-CK1RETHt.js","assets/session-workspaces-Csgpuzxd.js","assets/input-group-h8z63MzW.js","assets/textarea-DmATpOqT.js","assets/pick-system-directory-B8aZR2BS.js","assets/folder-paths-BuiyvlAk.js","assets/startup-queries-CceboYee.js","assets/query-Bj-DUNYq.js","assets/mutation-CEbxdVYy.js","assets/events-CrT7ie40.js","assets/field-DoLEb0np.js","assets/label-CVWjEcfV.js","assets/separator-BPh_qxvc.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{h as t}from"./vendor-router-CSN_DGvx.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-B2p84ZNR.js";import{a,o}from"./vendor-state-GkUciC5H.js";import{t as s}from"./useQuery-DdcpUQhO.js";import{t as c}from"./api-CIB7ZPX3.js";import{t as l}from"./createLucideIcon-Cd-3GVxJ.js";import"./FocusRuntimeControls-D61-BVTV.js";import{n as u}from"./workspace-order-store-CK1RETHt.js";import"./chat-api-aEirz9it.js";import{S as d,a as f,n as p,o as m}from"./useSessionListQuery-CHbg2lM2.js";import{c as h,d as g,l as _,u as v}from"./useNow-DYvbFah-.js";import{i as y}from"./format-DMJQzoZ7.js";import"./session-change-summary-api-sn-ejt4H.js";import{a as b,n as x}from"./folder-paths-BuiyvlAk.js";var S=l(`folder`,[[`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`}]]),C=e(n(),1);function w({doneWindow:e}={}){let t=_(e=>e.groupBy),n=_(e=>e.projects),r=_(e=>e.lanes),i=_(e=>e.collapsedLanes),a=_(e=>e.doneWindow),o=e??a,{query:s,items:c,capabilities:l,isLoading:u}=h(o),g=(0,C.useMemo)(()=>f(c,{lanes:r,projects:n}),[c,r,n]),v=(0,C.useMemo)(()=>m(g),[g]),y=(0,C.useMemo)(()=>p(c),[c]),b=(0,C.useMemo)(()=>c.filter(e=>e.lane===`attention`),[c]),x=s.data?.sessions,S=(0,C.useMemo)(()=>!!x&&!(x??[]).some(e=>e.archived!==!0&&(typeof e.messageCount!=`number`||e.messageCount>0)),[x]),w=(0,C.useMemo)(()=>({groupBy:t,projects:n,lanes:r,collapsedLanes:i,doneWindow:o}),[i,o,t,r,n]),T=(0,C.useCallback)(async()=>{await d()},[]);return{all:c,items:g,lanes:v,projects:y,total:c.length,attentionAll:b,catalogEmpty:S,view:w,capabilities:l,isLoading:u,isRefreshing:s.isFetching&&!s.isPending,error:s.error??null,refresh:T}}function T(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function E(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:null}var D=[`input`,`output`,`cacheRead`,`cacheWrite`,`totalTokens`,`total`];function O(e,t){let n=T(e),r=D.some(e=>E(n[e])!==null)?y(e).totalTokens:null,i=T(T(t).subAgents),a=E(i.running),o=E(i.maxConcurrent);return{todayTokens:E(r),memoryBytes:E(T(T(t).memory).rss),...a!==null&&o!==null&&o>=1?{subAgents:{running:Math.floor(a),max:Math.floor(o)}}:{}}}async function k(e){let[t,n]=await Promise.allSettled([c(`/api/usage/today`,{signal:e}),c(`/api/runtime/diagnostics`,{signal:e})]);return O(t.status===`fulfilled`?t.value:void 0,n.status===`fulfilled`?n.value:void 0)}function A(e){return s({queryKey:[`board`,`fleet-system-info`],queryFn:({signal:e})=>k(e),enabled:e,staleTime:15e3,retry:!1})}var j=r(),M=(0,C.lazy)(()=>t(()=>import(`./WorkspacePicker-CROSQVzJ.js`).then(e=>e.n).then(e=>({default:e.WorkspacePicker})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))),N=(0,C.lazy)(()=>t(()=>import(`./NewFolderDialog-wwAp2HUt.js`).then(e=>({default:e.NewFolderDialog})),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,25,26,27,10,28,29,12,13,14,15,16,17,18,19,20,21,22,30,31,32,33,34,35,36,37,23,38,39,40])));function P({picker:e,folderDialog:t}){let{mounted:n,...r}=e,{mounted:i,...a}=t;return!n&&!i?null:(0,j.jsxs)(C.Suspense,{fallback:null,children:[n&&(0,j.jsx)(M,{...r}),i&&(0,j.jsx)(N,{...a})]})}var F=`pisper-launch-defaults`,I=[`approval-required`,`workspace-write`,`full-access`],L=[`plan`,`goal`,`team`],R=I.filter(e=>e!==`full-access`);function z(e){return R.includes(e)?e:``}var B={cwd:``,projectless:!1,model:``,thinkingLevel:``,executionMode:``,runMode:`plan`};function V(e,t,n){if(typeof e!=`string`)return``;let r=e.trim();return r.length<=t&&(!n||n.test(r))?r:``}function H(e){let t=g(e);return{cwd:V(t.cwd,4096),projectless:t.projectless===!0,model:V(t.model,256),thinkingLevel:V(t.thinkingLevel,32,/^[a-z][a-z0-9_-]*$/),executionMode:z(t.executionMode),runMode:L.includes(t.runMode)?t.runMode:`plan`}}function U(e,t){let n=t.projectless??(t.cwd===void 0&&e.projectless),r=H({...e,...t,projectless:n});return t.executionMode===`full-access`?{...r,executionMode:z(e.executionMode)}:r}var W=o()(a((e,t)=>({...B,rememberLaunch:n=>{let{cwd:r,projectless:i,model:a,thinkingLevel:o,executionMode:s,runMode:c}=t();e(U({cwd:r,projectless:i,model:a,thinkingLevel:o,executionMode:s,runMode:c},n))},resetLaunchDefaults:()=>e({...B})}),{name:F,storage:v(),version:1,partialize:({cwd:e,projectless:t,model:n,thinkingLevel:r,executionMode:i,runMode:a})=>({cwd:e,projectless:t,model:n,thinkingLevel:r,executionMode:i,runMode:a}),merge:(e,t)=>({...t,...H(e)})}));function G({onProjectChosen:e,onError:t,onRemembered:n}){let{t:r}=i(),[a,o]=(0,C.useState)(!1),[s,c]=(0,C.useState)(!1),[l,d]=(0,C.useState)(!1),[f,p]=(0,C.useState)(!1),[m,h]=(0,C.useState)(!1),[g,_]=(0,C.useState)(``),v=(0,C.useRef)(!1),y=(0,C.useRef)(0),S=(0,C.useRef)(!1),w=(0,C.useRef)({onProjectChosen:e,onError:t,onRemembered:n});w.current={onProjectChosen:e,onError:t,onRemembered:n},(0,C.useEffect)(()=>()=>{y.current+=1},[]);let T=(0,C.useCallback)(e=>{let t=u.getState().registerProject(e)||e;W.getState().rememberLaunch({cwd:t}),w.current.onRemembered?.(t)},[]),E=(0,C.useCallback)(async()=>{if(v.current)return;v.current=!0,o(!0);let e=++y.current;try{let t=await b(r);if(e!==y.current)return;t.status===`picked`?(T(t.path),w.current.onProjectChosen()):t.status===`unavailable`&&(c(!0),d(!0))}catch(t){e===y.current&&w.current.onError(t instanceof Error?t.message:String(t))}finally{e===y.current&&(v.current=!1,o(!1))}},[T,r]),D=(0,C.useCallback)((e=``)=>{_(x(e)),p(!0),h(!0)},[]),O=e=>{S.current&&(S.current=!1,e.preventDefault(),w.current.onProjectChosen())};return{newProject:E,newFolder:D,picking:a,picker:{mounted:s,open:l,description:r(`board:project.pickerDescription`),onOpenChange:d,onSelect:e=>{T(e),S.current=!0},onCloseAutoFocus:O},folderDialog:{mounted:f,open:m,initialParent:g,onOpenChange:h,onCreated:e=>{T(e),S.current=!0},onCloseAutoFocus:O}}}export{A as a,P as i,R as n,w as o,W as r,S as s,G as t};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./index-DmohsuQg.js";import{i as n}from"./vendor-react-DwNgTV1j.js";import{a as r,i,o as a}from"./vendor-state-GkUciC5H.js";import{a as o}from"./startup-queries-Cevfi-_Z.js";import{t as s}from"./runtime-capabilities-store-DWW9jolt.js";import{l as c,n as l,u}from"./session-board-status-D2lpFPiI.js";import{u as d}from"./events-B0F69Vd3.js";import{t as f}from"./chat-api-DgJdhfOP.js";import{C as p,D as m,E as h,S as g,T as _,_ as v,b as y,c as b,d as x,f as S,g as C,h as ee,i as te,l as w,m as T,p as E,t as ne,v as D,w as O,x as k}from"./useSessionListQuery-BpWfS-tU.js";import{n as A}from"./card-presentation-1oph2b8P.js";var j=e(n(),1),re=class extends Error{code=`board_confirmation_required`},M=()=>({ok:!1,reason:`pending`,error:null});function N(){g().catch(()=>void 0)}async function P(e,t,n,{confirmCritical:r=!1}){let i=T(e,t);if(n&&(!i||i.severity===`critical`&&!r))return{ok:!1,reason:`confirmation-required`,error:new re};let a=n?`approve`:`deny`,o=E(a,e,t);if(!S(o,a))return M();let s=C(e).filter(e=>e.id!==t);p(e,t);let c=s.length?null:x(e,{needsAttention:!1,attentionReason:null,streaming:!0});try{await m.resolveApproval(e,t,n)}catch(t){return c!==null&&v(e,c),i&&O(e,i),y(o),N(),{ok:!1,reason:`failed`,error:t}}try{await D(e,e=>!e||!e.card.approvals.some(e=>e.id===t),{fresh:!0})}catch{}finally{c!==null&&v(e,c),y(o)}return{ok:!0}}function ie(e,t,n={}){return P(e,t,!0,n)}function ae(e,t){return P(e,t,!1,{})}async function oe(e,t,n){let r=E(`answer`,e,t);if(!S(r,`answer`))return M();let i=x(e,{needsAttention:!1,attentionReason:null,streaming:!0});try{await f.answerQuestion(e,t,{answers:[{selected:[n]}]})}catch(t){return v(e,i),y(r),N(),{ok:!1,reason:`failed`,error:t}}try{await D(e,void 0,{fresh:!0})}catch{}finally{v(e,i),y(r)}return{ok:!0}}async function se(e){let t=E(`start`,e);if(!S(t,`start`))return M();let n=x(e,{streaming:!0});try{await f.startQueuedSession(e)}catch(r){return v(e,n),y(t),N(),{ok:!1,reason:`failed`,error:r}}try{await D(e,void 0,{fresh:!0})}catch{}finally{v(e,n),y(t)}return{ok:!0}}async function ce(e){let t=E(`retry`,e);if(!S(t,`retry`))return M();let n=x(e,{streaming:!0});try{await k(e,`retry`,(t,n)=>m.retry(e,t,n))}catch(r){return v(e,n),y(t),N(),{ok:!1,reason:`failed`,error:r}}try{await D(e,e=>!e||e.session.streaming===!0)}catch{}finally{v(e,n),y(t)}return{ok:!0}}function F(e){_(e.id,{pinned:e.pinned,archived:e.archived,unread:e.unread,needsAttention:e.needsAttention,attentionReason:e.attentionReason}),o.setQueryData(w,t=>t&&{...t,sessions:t.sessions.map(t=>t.id===e.id?{...t,pinned:e.pinned,archived:e.archived,unread:e.unread,needsAttention:e.needsAttention,attentionReason:e.attentionReason}:t)})}async function I(e,t,n,r){let i=E(t,e);if(!S(i,t))return M();let a=x(e,n);try{return F(await m.updateOrganization(e,r)),{ok:!0}}catch(e){return N(),{ok:!1,reason:`failed`,error:e}}finally{v(e,a),y(i)}}function L(e){return ee()?I(e,`markHandled`,{unread:!1,needsAttention:!1,attentionReason:null},{read:!0,dismissAttention:!0}):I(e,`markHandled`,{unread:!1},{read:!0})}function R(e,t=!0){return I(e,`pin`,{pinned:t},{pinned:t})}function z(e,t=!0){return I(e,`archive`,{archived:t},{archived:t})}async function B(e,t){let n=E(`rename`,e);if(!S(n,`rename`))return M();try{let n=await m.renameSession(e,t);return _(e,{name:n}),o.setQueryData(w,t=>t&&{...t,sessions:t.sessions.map(t=>t.id===e?{...t,name:n}:t)}),d({id:e,name:n}),{ok:!0}}catch(e){return N(),{ok:!1,reason:`failed`,error:e}}finally{y(n)}}function V(){b();let e=h(e=>e.pending);return(0,j.useMemo)(()=>({approve:ie,deny:ae,retry:ce,markHandled:L,pin:R,archive:z,rename:B,answer:oe,startNow:se,pending:e,isPending:(t,n,r=``)=>!!e[E(t,n,r)]}),[e])}function H(){return i(()=>({getItem:e=>{try{return t.getItem(e)}catch{return null}},setItem:(e,n)=>{try{t.setItem(e,n)}catch{}},removeItem:e=>{try{t.removeItem(e)}catch{}}}))}function U(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function W(e,{limit:t=200,maxLength:n=4096}={}){if(!Array.isArray(e))return[];let r=[];for(let i of e)if(!(typeof i!=`string`||i.length>n||r.includes(i))&&(r.push(i),r.length>=t))break;return r}var le=`pisper-board-view`,ue=[`lane`,`project`],G={groupBy:`lane`,projects:[],lanes:[],collapsedLanes:[],doneWindow:`today`};function K(e){return W(e,{limit:4,maxLength:16}).filter(c)}function q(e){let t=U(e);return{groupBy:ue.includes(t.groupBy)?t.groupBy:G.groupBy,projects:W(t.projects),lanes:K(t.lanes),collapsedLanes:K(t.collapsedLanes),doneWindow:l.includes(t.doneWindow)?t.doneWindow:G.doneWindow}}function J(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}var de=a()(r(e=>({...G,deckCollapsed:!1,setDeckCollapsed:t=>e({deckCollapsed:t===!0}),setGroupBy:t=>e({groupBy:q({groupBy:t}).groupBy}),setProjectFilter:t=>e({projects:W([...t])}),toggleProjectFilter:t=>e(e=>({projects:W(J(e.projects,t))})),setLaneFilter:t=>e({lanes:K([...t])}),toggleLaneFilter:t=>e(e=>({lanes:K(J(e.lanes,t))})),setLaneCollapsed:(t,n)=>e(e=>({collapsedLanes:K(n?[...e.collapsedLanes,t]:e.collapsedLanes.filter(e=>e!==t))})),setDoneWindow:t=>e({doneWindow:q({doneWindow:t}).doneWindow}),clearFilters:()=>e({projects:[],lanes:[]})}),{name:le,storage:H(),version:1,partialize:({groupBy:e,projects:t,lanes:n,collapsedLanes:r,doneWindow:i,deckCollapsed:a})=>({groupBy:e,projects:t,lanes:n,collapsedLanes:r,doneWindow:i,deckCollapsed:a}),merge:(e,t)=>({...t,...q(e),deckCollapsed:U(e).deckCollapsed===!0})}));function fe(){let e=s(e=>e.capabilities.features);return(0,j.useMemo)(()=>{let t=e;return{askUser:t.askUser===!0,sessionQueue:t.sessionQueue===!0}},[e])}function pe(e){let t=ne(),n=h(e=>e.live),r=h(e=>e.localRuns),i=h(e=>e.runningSince),a=h(e=>e.patches),o=h(e=>e.pending),s=h(e=>e.feed.entries),c=h(e=>e.feed.ready),l=h(e=>Math.floor(e.feed.updatedAt/6e4)),u=fe(),d=t.data?.sessions,f=Math.max(t.dataUpdatedAt,l*6e4),p=(0,j.useMemo)(()=>({ready:c,entries:s}),[s,c]);return{query:t,items:(0,j.useMemo)(()=>d||p.ready?te(d??[],{live:n,localRuns:r,runningSince:i,patches:a,pending:o,feed:p},{now:f,capabilities:u,doneWindow:e}):[],[u,e,p,n,r,f,a,o,i,d]),capabilities:u,isLoading:t.isPending&&!p.ready}}function Y(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function X(e,t=!1){return(n,r)=>{let i=Y(e(n)),a=Y(e(r));return i===a?n.id<r.id?-1:+(n.id>r.id):i===null?1:a===null?-1:t?a-i:i-a}}function Z(e){let t=[];e.status===`failed`&&t.push({kind:`failed`}),e.status===`approval`&&t.push({kind:`approval`,critical:e.severity===`critical`});let n=Y(e.questionCount);return(e.status===`question`||n!==null&&n>0)&&t.push({kind:`question`,count:n!==null&&n>0?n:null}),t}function Q(e){let t=e.approvals[0],n=Y(e.questionCount);return e.status===`approval`&&e.approvalsState===`ready`&&e.severity===`standard`&&t&&!t.truncated&&!(n!==null&&n>0)?{kind:`decide`,approvalId:t.id,remaining:e.approvals.length-1}:{kind:`open`}}function me(e){return Math.round(e*.381966%1*1e3)/1e3}function he(e,{now:t,capabilities:n,timeZoneOffsetMinutes:r}){let i=[],a=[],o=[],s=[],c=[],l=new Set;for(let d of e)!d||typeof d.id!=`string`||!d.id||l.has(d.id)||d.session?.archived!==!0&&(l.add(d.id),d.lane===`attention`?i.push(d):d.lane===`running`?a.push(d):d.lane===`queued`?n?.sessionQueue===!0&&o.push(d):d.lane===`done`&&(d.pinned?s.push(d):u(d.since,{now:t,timeZoneOffsetMinutes:r,doneWindow:`today`})&&c.push(d)));let d=i.sort(X(e=>e.since)).map(e=>({group:`attention`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:`attention`,waitingSince:Y(e.since),reasons:Z(e),quickAction:Q(e)})),f=e=>Y(e.startedAt)??Y(e.since),p=a.sort(X(f)).map((e,t)=>({group:`running`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:`run`,startedAt:f(e),phase:me(t)})),m=X(e=>e.since),h=o.sort((e,t)=>{let n=Y(e.queuePosition),r=Y(t.queuePosition);return n===r?m(e,t):n===null?1:r===null?-1:n-r}).map((e,t)=>({group:`queued`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:`queued`,position:Y(e.queuePosition)??t+1})),g=s.sort(X(e=>e.since,!0)).map(e=>({group:`pinned`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:A(e),at:Y(e.since)})),_=c.sort(X(e=>e.since,!0)).map(e=>({group:`done`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:A(e),finishedAt:Y(e.since),unread:e.unread===!0})),v={attention:d.length,running:p.length,queued:h.length,pinned:g.length,done:_.length},y=(e,t,n=1/0)=>({id:e,count:t.length,rows:t.slice(0,n),hidden:Math.max(0,t.length-n)}),b=[y(`attention`,d),y(`running`,p,8)];return h.length&&b.push(y(`queued`,h)),g.length&&b.push(y(`pinned`,g)),_.length&&b.push(y(`done`,_,10)),{groups:b,counts:v,order:b.flatMap(e=>e.rows.map(e=>e.id)),longestWaitingId:d[0]?.id??null}}function ge(e,t,n){if(!e.length)return null;let r=t?e.indexOf(t):-1;return r<0?n===1?e[0]:e[e.length-1]:e[r+n]??null}function $(e){let[t,n]=(0,j.useState)(()=>Date.now());return(0,j.useEffect)(()=>{if(!e)return;let t=null,r=()=>{t||document.visibilityState===`hidden`||(n(Date.now()),t=setInterval(()=>n(Date.now()),1e3))},i=()=>{t&&clearInterval(t),t=null},a=()=>document.visibilityState===`hidden`?i():r();return r(),document.addEventListener(`visibilitychange`,a),()=>{i(),document.removeEventListener(`visibilitychange`,a)}},[e]),t}function _e(){let[e,t]=(0,j.useState)(()=>Math.floor(Date.now()/6e4)*6e4);return(0,j.useEffect)(()=>{let e=null,n=()=>{let r=Date.now();t(Math.floor(r/6e4)*6e4),e=setTimeout(n,6e4-r%6e4+50)},r=()=>{e&&clearTimeout(e),e=null},i=()=>{r(),document.visibilityState!==`hidden`&&n()};return i(),document.addEventListener(`visibilitychange`,i),()=>{r(),document.removeEventListener(`visibilitychange`,i)}},[]),e}export{X as a,pe as c,U as d,V as f,he as i,de as l,$ as n,Q as o,ge as r,Z as s,_e as t,H as u};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./index-DcTDwezs.js";import{i as n}from"./vendor-react-DwNgTV1j.js";import{a as r,i,o as a}from"./vendor-state-GkUciC5H.js";import{a as o}from"./startup-queries-CceboYee.js";import{t as s}from"./runtime-capabilities-store-DpEKnn1b.js";import{l as c,n as l,u}from"./session-board-status-D2lpFPiI.js";import{u as d}from"./events-CrT7ie40.js";import{t as f}from"./chat-api-aEirz9it.js";import{C as p,D as m,E as h,S as g,T as _,_ as v,b as y,c as b,d as x,f as S,g as C,h as ee,i as te,l as w,m as T,p as E,t as ne,v as D,w as O,x as k}from"./useSessionListQuery-CHbg2lM2.js";import{n as A}from"./card-presentation-1oph2b8P.js";var j=e(n(),1),re=class extends Error{code=`board_confirmation_required`},M=()=>({ok:!1,reason:`pending`,error:null});function N(){g().catch(()=>void 0)}async function P(e,t,n,{confirmCritical:r=!1}){let i=T(e,t);if(n&&(!i||i.severity===`critical`&&!r))return{ok:!1,reason:`confirmation-required`,error:new re};let a=n?`approve`:`deny`,o=E(a,e,t);if(!S(o,a))return M();let s=C(e).filter(e=>e.id!==t);p(e,t);let c=s.length?null:x(e,{needsAttention:!1,attentionReason:null,streaming:!0});try{await m.resolveApproval(e,t,n)}catch(t){return c!==null&&v(e,c),i&&O(e,i),y(o),N(),{ok:!1,reason:`failed`,error:t}}try{await D(e,e=>!e||!e.card.approvals.some(e=>e.id===t),{fresh:!0})}catch{}finally{c!==null&&v(e,c),y(o)}return{ok:!0}}function ie(e,t,n={}){return P(e,t,!0,n)}function ae(e,t){return P(e,t,!1,{})}async function oe(e,t,n){let r=E(`answer`,e,t);if(!S(r,`answer`))return M();let i=x(e,{needsAttention:!1,attentionReason:null,streaming:!0});try{await f.answerQuestion(e,t,{answers:[{selected:[n]}]})}catch(t){return v(e,i),y(r),N(),{ok:!1,reason:`failed`,error:t}}try{await D(e,void 0,{fresh:!0})}catch{}finally{v(e,i),y(r)}return{ok:!0}}async function se(e){let t=E(`start`,e);if(!S(t,`start`))return M();let n=x(e,{streaming:!0});try{await f.startQueuedSession(e)}catch(r){return v(e,n),y(t),N(),{ok:!1,reason:`failed`,error:r}}try{await D(e,void 0,{fresh:!0})}catch{}finally{v(e,n),y(t)}return{ok:!0}}async function ce(e){let t=E(`retry`,e);if(!S(t,`retry`))return M();let n=x(e,{streaming:!0});try{await k(e,`retry`,(t,n)=>m.retry(e,t,n))}catch(r){return v(e,n),y(t),N(),{ok:!1,reason:`failed`,error:r}}try{await D(e,e=>!e||e.session.streaming===!0)}catch{}finally{v(e,n),y(t)}return{ok:!0}}function F(e){_(e.id,{pinned:e.pinned,archived:e.archived,unread:e.unread,needsAttention:e.needsAttention,attentionReason:e.attentionReason}),o.setQueryData(w,t=>t&&{...t,sessions:t.sessions.map(t=>t.id===e.id?{...t,pinned:e.pinned,archived:e.archived,unread:e.unread,needsAttention:e.needsAttention,attentionReason:e.attentionReason}:t)})}async function I(e,t,n,r){let i=E(t,e);if(!S(i,t))return M();let a=x(e,n);try{return F(await m.updateOrganization(e,r)),{ok:!0}}catch(e){return N(),{ok:!1,reason:`failed`,error:e}}finally{v(e,a),y(i)}}function L(e){return ee()?I(e,`markHandled`,{unread:!1,needsAttention:!1,attentionReason:null},{read:!0,dismissAttention:!0}):I(e,`markHandled`,{unread:!1},{read:!0})}function R(e,t=!0){return I(e,`pin`,{pinned:t},{pinned:t})}function z(e,t=!0){return I(e,`archive`,{archived:t},{archived:t})}async function B(e,t){let n=E(`rename`,e);if(!S(n,`rename`))return M();try{let n=await m.renameSession(e,t);return _(e,{name:n}),o.setQueryData(w,t=>t&&{...t,sessions:t.sessions.map(t=>t.id===e?{...t,name:n}:t)}),d({id:e,name:n}),{ok:!0}}catch(e){return N(),{ok:!1,reason:`failed`,error:e}}finally{y(n)}}function V(){b();let e=h(e=>e.pending);return(0,j.useMemo)(()=>({approve:ie,deny:ae,retry:ce,markHandled:L,pin:R,archive:z,rename:B,answer:oe,startNow:se,pending:e,isPending:(t,n,r=``)=>!!e[E(t,n,r)]}),[e])}function H(){return i(()=>({getItem:e=>{try{return t.getItem(e)}catch{return null}},setItem:(e,n)=>{try{t.setItem(e,n)}catch{}},removeItem:e=>{try{t.removeItem(e)}catch{}}}))}function U(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function W(e,{limit:t=200,maxLength:n=4096}={}){if(!Array.isArray(e))return[];let r=[];for(let i of e)if(!(typeof i!=`string`||i.length>n||r.includes(i))&&(r.push(i),r.length>=t))break;return r}var le=`pisper-board-view`,ue=[`lane`,`project`],G={groupBy:`lane`,projects:[],lanes:[],collapsedLanes:[],doneWindow:`today`};function K(e){return W(e,{limit:4,maxLength:16}).filter(c)}function q(e){let t=U(e);return{groupBy:ue.includes(t.groupBy)?t.groupBy:G.groupBy,projects:W(t.projects),lanes:K(t.lanes),collapsedLanes:K(t.collapsedLanes),doneWindow:l.includes(t.doneWindow)?t.doneWindow:G.doneWindow}}function J(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}var de=a()(r(e=>({...G,deckCollapsed:!1,setDeckCollapsed:t=>e({deckCollapsed:t===!0}),setGroupBy:t=>e({groupBy:q({groupBy:t}).groupBy}),setProjectFilter:t=>e({projects:W([...t])}),toggleProjectFilter:t=>e(e=>({projects:W(J(e.projects,t))})),setLaneFilter:t=>e({lanes:K([...t])}),toggleLaneFilter:t=>e(e=>({lanes:K(J(e.lanes,t))})),setLaneCollapsed:(t,n)=>e(e=>({collapsedLanes:K(n?[...e.collapsedLanes,t]:e.collapsedLanes.filter(e=>e!==t))})),setDoneWindow:t=>e({doneWindow:q({doneWindow:t}).doneWindow}),clearFilters:()=>e({projects:[],lanes:[]})}),{name:le,storage:H(),version:1,partialize:({groupBy:e,projects:t,lanes:n,collapsedLanes:r,doneWindow:i,deckCollapsed:a})=>({groupBy:e,projects:t,lanes:n,collapsedLanes:r,doneWindow:i,deckCollapsed:a}),merge:(e,t)=>({...t,...q(e),deckCollapsed:U(e).deckCollapsed===!0})}));function fe(){let e=s(e=>e.capabilities.features);return(0,j.useMemo)(()=>{let t=e;return{askUser:t.askUser===!0,sessionQueue:t.sessionQueue===!0}},[e])}function pe(e){let t=ne(),n=h(e=>e.live),r=h(e=>e.localRuns),i=h(e=>e.runningSince),a=h(e=>e.patches),o=h(e=>e.pending),s=h(e=>e.feed.entries),c=h(e=>e.feed.ready),l=h(e=>Math.floor(e.feed.updatedAt/6e4)),u=fe(),d=t.data?.sessions,f=Math.max(t.dataUpdatedAt,l*6e4),p=(0,j.useMemo)(()=>({ready:c,entries:s}),[s,c]);return{query:t,items:(0,j.useMemo)(()=>d||p.ready?te(d??[],{live:n,localRuns:r,runningSince:i,patches:a,pending:o,feed:p},{now:f,capabilities:u,doneWindow:e}):[],[u,e,p,n,r,f,a,o,i,d]),capabilities:u,isLoading:t.isPending&&!p.ready}}function Y(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function X(e,t=!1){return(n,r)=>{let i=Y(e(n)),a=Y(e(r));return i===a?n.id<r.id?-1:+(n.id>r.id):i===null?1:a===null?-1:t?a-i:i-a}}function Z(e){let t=[];e.status===`failed`&&t.push({kind:`failed`}),e.status===`approval`&&t.push({kind:`approval`,critical:e.severity===`critical`});let n=Y(e.questionCount);return(e.status===`question`||n!==null&&n>0)&&t.push({kind:`question`,count:n!==null&&n>0?n:null}),t}function Q(e){let t=e.approvals[0],n=Y(e.questionCount);return e.status===`approval`&&e.approvalsState===`ready`&&e.severity===`standard`&&t&&!t.truncated&&!(n!==null&&n>0)?{kind:`decide`,approvalId:t.id,remaining:e.approvals.length-1}:{kind:`open`}}function me(e){return Math.round(e*.381966%1*1e3)/1e3}function he(e,{now:t,capabilities:n,timeZoneOffsetMinutes:r}){let i=[],a=[],o=[],s=[],c=[],l=new Set;for(let d of e)!d||typeof d.id!=`string`||!d.id||l.has(d.id)||d.session?.archived!==!0&&(l.add(d.id),d.lane===`attention`?i.push(d):d.lane===`running`?a.push(d):d.lane===`queued`?n?.sessionQueue===!0&&o.push(d):d.lane===`done`&&(d.pinned?s.push(d):u(d.since,{now:t,timeZoneOffsetMinutes:r,doneWindow:`today`})&&c.push(d)));let d=i.sort(X(e=>e.since)).map(e=>({group:`attention`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:`attention`,waitingSince:Y(e.since),reasons:Z(e),quickAction:Q(e)})),f=e=>Y(e.startedAt)??Y(e.since),p=a.sort(X(f)).map((e,t)=>({group:`running`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:`run`,startedAt:f(e),phase:me(t)})),m=X(e=>e.since),h=o.sort((e,t)=>{let n=Y(e.queuePosition),r=Y(t.queuePosition);return n===r?m(e,t):n===null?1:r===null?-1:n-r}).map((e,t)=>({group:`queued`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:`queued`,position:Y(e.queuePosition)??t+1})),g=s.sort(X(e=>e.since,!0)).map(e=>({group:`pinned`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:A(e),at:Y(e.since)})),_=c.sort(X(e=>e.since,!0)).map(e=>({group:`done`,id:e.id,title:e.title,...e.bot?{bot:e.bot}:{},status:e.status,pinned:e.pinned===!0,glyph:A(e),finishedAt:Y(e.since),unread:e.unread===!0})),v={attention:d.length,running:p.length,queued:h.length,pinned:g.length,done:_.length},y=(e,t,n=1/0)=>({id:e,count:t.length,rows:t.slice(0,n),hidden:Math.max(0,t.length-n)}),b=[y(`attention`,d),y(`running`,p,8)];return h.length&&b.push(y(`queued`,h)),g.length&&b.push(y(`pinned`,g)),_.length&&b.push(y(`done`,_,10)),{groups:b,counts:v,order:b.flatMap(e=>e.rows.map(e=>e.id)),longestWaitingId:d[0]?.id??null}}function ge(e,t,n){if(!e.length)return null;let r=t?e.indexOf(t):-1;return r<0?n===1?e[0]:e[e.length-1]:e[r+n]??null}function $(e){let[t,n]=(0,j.useState)(()=>Date.now());return(0,j.useEffect)(()=>{if(!e)return;let t=null,r=()=>{t||document.visibilityState===`hidden`||(n(Date.now()),t=setInterval(()=>n(Date.now()),1e3))},i=()=>{t&&clearInterval(t),t=null},a=()=>document.visibilityState===`hidden`?i():r();return r(),document.addEventListener(`visibilitychange`,a),()=>{i(),document.removeEventListener(`visibilitychange`,a)}},[e]),t}function _e(){let[e,t]=(0,j.useState)(()=>Math.floor(Date.now()/6e4)*6e4);return(0,j.useEffect)(()=>{let e=null,n=()=>{let r=Date.now();t(Math.floor(r/6e4)*6e4),e=setTimeout(n,6e4-r%6e4+50)},r=()=>{e&&clearTimeout(e),e=null},i=()=>{r(),document.visibilityState!==`hidden`&&n()};return i(),document.addEventListener(`visibilitychange`,i),()=>{r(),document.removeEventListener(`visibilitychange`,i)}},[]),e}export{X as a,pe as c,U as d,V as f,he as i,de as l,$ as n,Q as o,ge as r,Z as s,_e as t,H as u};
@@ -1 +1 @@
1
- import{n as e,r as t}from"./use-mobile-C2tPBAza.js";import{t as n}from"./client-store-BkVlLM-4.js";function r(){let r=n(e=>e.client===`mobile-app`),i=e(),a=t()&&r;return(r||i)&&!a&&typeof window<`u`&&!window.pisperDesktop}function i(){let e=n(e=>e.client===`mobile-app`);return t()&&e}export{i as n,r as t};
1
+ import{n as e,r as t}from"./use-mobile-C2tPBAza.js";import{t as n}from"./client-store-BSqTT-c2.js";function r(){let r=n(e=>e.client===`mobile-app`),i=e(),a=t()&&r;return(r||i)&&!a&&typeof window<`u`&&!window.pisperDesktop}function i(){let e=n(e=>e.client===`mobile-app`);return t()&&e}export{i as n,r as t};