pisper 0.6.34 → 0.6.35

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 (140) hide show
  1. package/package.json +5 -5
  2. package/web/.vite/manifest.json +662 -669
  3. package/web/assets/{AppDialog-xnUDICdc.js → AppDialog-BIc2uEZh.js} +1 -1
  4. package/web/assets/{AppOverlays-rUZC1kCv.js → AppOverlays-BlJ0uL_P.js} +1 -1
  5. package/web/assets/{AssetsPage-XEKK_C-R.js → AssetsPage-B9lqKmXy.js} +1 -1
  6. package/web/assets/BoardPage-BB_xAnQV.js +3 -0
  7. package/web/assets/{ChannelsPage-qmX4oWnZ.js → ChannelsPage-DgzuzmFL.js} +1 -1
  8. package/web/assets/{ChatAppearancePage-BfSCRq3M.js → ChatAppearancePage-98Sa8ZQW.js} +1 -1
  9. package/web/assets/{ChatHistoryPage-Dn2KO-xs.js → ChatHistoryPage-BHsZFF4a.js} +1 -1
  10. package/web/assets/ChatPage-C3NC9LNG.js +553 -0
  11. package/web/assets/{ConfigPage-bwrsIfQ2.js → ConfigPage-D3SyAsIs.js} +2 -2
  12. package/web/assets/{DesktopWindowControls-BYSFRwAw.js → DesktopWindowControls-BQ0OvDZ8.js} +1 -1
  13. package/web/assets/{FeaturePage-DTDpEz7O.js → FeaturePage-C0bAQ4el.js} +1 -1
  14. package/web/assets/{FileAttachmentPreview-DSXCj6RP.js → FileAttachmentPreview-BdMgsecO.js} +1 -1
  15. package/web/assets/{FloatingWidgets-BbeW1y-O.js → FloatingWidgets-DjMCcqln.js} +1 -1
  16. package/web/assets/FocusRuntimeControls-DeSe12wJ.js +2 -0
  17. package/web/assets/{GitDiffViewer-DQVUfRzI.js → GitDiffViewer-hHSTzUJk.js} +1 -1
  18. package/web/assets/{ManageProjectsDialog-69xTwGhN.js → ManageProjectsDialog-DVLX4ZBu.js} +1 -1
  19. package/web/assets/{MarkdownMessage-CMM5-pzJ.js → MarkdownMessage-CktdHgKM.js} +1 -1
  20. package/web/assets/{McpPage-DuR_f74H.js → McpPage-7wR_N0eS.js} +1 -1
  21. package/web/assets/{MemoryEvolution-Ulreb-P1.js → MemoryEvolution-DBjU-Nr7.js} +1 -1
  22. package/web/assets/MemoryPage-DiO4GHc7.js +2 -0
  23. package/web/assets/{MobileNavigation-B6e3f9M1.js → MobileNavigation-B2NKM8rj.js} +1 -1
  24. package/web/assets/{MorePage-BAEFRO9r.js → MorePage-xB2zBRtU.js} +1 -1
  25. package/web/assets/{NewFolderDialog-CrIBoIPP.js → NewFolderDialog-CjWMsY2Q.js} +1 -1
  26. package/web/assets/{PageHeader-CkkhGH11.js → PageHeader-BN-qcxte.js} +1 -1
  27. package/web/assets/{PhoneDrawer-BQglMtV6.js → PhoneDrawer-utEXi-yp.js} +1 -1
  28. package/web/assets/{PhoneMenuButton-CudQuQyy.js → PhoneMenuButton-uG_T93KL.js} +1 -1
  29. package/web/assets/{PhoneTopBar-DyaB9qif.js → PhoneTopBar-DuLewk2J.js} +1 -1
  30. package/web/assets/{PluginsPage-DMLkkpQg.js → PluginsPage-D0hAMgQ_.js} +1 -1
  31. package/web/assets/{SafeModePrompt-BWzQ6wxr.js → SafeModePrompt-jV-PRvrW.js} +1 -1
  32. package/web/assets/{SchedulesPage-CvsxgvB6.js → SchedulesPage-Diethe4H.js} +1 -1
  33. package/web/assets/{SessionBrowserPane-NHFA_B4m.js → SessionBrowserPane-y7gPArTV.js} +2 -2
  34. package/web/assets/{SessionContextPanel-DTHjt2nZ.js → SessionContextPanel-Ckca3NrN.js} +2 -2
  35. package/web/assets/{SessionHome-B1OsYR84.js → SessionHome-CcjiU1fU.js} +1 -1
  36. package/web/assets/SessionInspector-CNSyVYK6.js +1 -0
  37. package/web/assets/{SessionShell-BfdEBF6l.js → SessionShell-wOw-rTQD.js} +1 -1
  38. package/web/assets/{SettingsSidebar-z1Fxmoyd.js → SettingsSidebar-CpAD5iSt.js} +1 -1
  39. package/web/assets/{ShortcutHelpDialog-DL3H1yOW.js → ShortcutHelpDialog-C2QbSvui.js} +1 -1
  40. package/web/assets/{ShortcutKeys-DPl0NOHr.js → ShortcutKeys-Dl4Suwhz.js} +1 -1
  41. package/web/assets/{SidebarUpdateStatus-Cpew_R7W.js → SidebarUpdateStatus-DrS7u_v_.js} +1 -1
  42. package/web/assets/{SkillsPage-Dl57veVj.js → SkillsPage-CDoMtK-E.js} +1 -1
  43. package/web/assets/{TaskProcessesPane-B6hiVd6p.js → TaskProcessesPane-Z_9HeVX5.js} +1 -1
  44. package/web/assets/{TaskTerminalView-jBOqCyhw.js → TaskTerminalView-BTCVpAHF.js} +1 -1
  45. package/web/assets/{TerminalPanel-CAl3KAS_.js → TerminalPanel-DuUtaPyf.js} +1 -1
  46. package/web/assets/{WebDesktopPet-kcayOmfs.js → WebDesktopPet-CWviMnct.js} +1 -1
  47. package/web/assets/{WorkflowsPage-DrX0d5UQ.js → WorkflowsPage-CHvyXwCg.js} +1 -1
  48. package/web/assets/{WorkspacePicker-Bt_doGjv.js → WorkspacePicker-D6FLo7O1.js} +1 -1
  49. package/web/assets/{api-C35aq3ml.js → api-Cm58F7OP.js} +1 -1
  50. package/web/assets/{app-update-5vmM-tQ5.js → app-update-KLjtuCDT.js} +1 -1
  51. package/web/assets/{approval-confirm-DhWuPa_J.js → approval-confirm-BrorOUHg.js} +1 -1
  52. package/web/assets/board-messages-3qT8nGsd.js +1 -0
  53. package/web/assets/{board-projects-Nk7cPRh8.js → board-projects-CeL6PPiY.js} +1 -1
  54. package/web/assets/{bots-store-CWuQZKi-.js → bots-store-CRGayU4z.js} +1 -1
  55. package/web/assets/chat-api-DQyHZl-V.js +1 -0
  56. package/web/assets/{client-store-D1Oy98mB.js → client-store-4G-xfNKc.js} +1 -1
  57. package/web/assets/{config-search-C5x1n8SB.js → config-search-1BIdouae.js} +1 -1
  58. package/web/assets/{desktop-hosts-9JgAXtsJ.js → desktop-hosts-uMG7lFRY.js} +1 -1
  59. package/web/assets/{dialog-27CgEIc2.js → dialog-D23yIdOZ.js} +1 -1
  60. package/web/assets/{event-stream-DTCmB4AA.js → event-stream-BrDcABQx.js} +1 -1
  61. package/web/assets/{events-DMbz7S1A.js → events-BgEZwyTb.js} +1 -1
  62. package/web/assets/{folder-paths-BB2PvkZ4.js → folder-paths-D0-7xV2n.js} +1 -1
  63. package/web/assets/{hosts-D81SQ3Fm.js → hosts-DljHKUSO.js} +1 -1
  64. package/web/assets/{http-YNvizzuJ.js → http-DtkTCrZ4.js} +1 -1
  65. package/web/assets/{http-response-Bb_1H1lE.js → http-response-B2n7HFQ4.js} +1 -1
  66. package/web/assets/i18n-B7QmqfvO.js +1 -0
  67. package/web/assets/{index-_WvEqLNn.js → index-79gEOxmD.js} +2 -2
  68. package/web/assets/index-XwGsScbB.css +2 -0
  69. package/web/assets/{machine-messages-Cnbja0tj.js → machine-messages-Bd6JwiOe.js} +1 -1
  70. package/web/assets/{machines-api-p5yRMnI5.js → machines-api-Kg457H3y.js} +1 -1
  71. package/web/assets/{memory-api-CSEqYBZN.js → memory-api-DHLgFXzZ.js} +1 -1
  72. package/web/assets/message-square-text-C5MJw0FL.js +1 -0
  73. package/web/assets/mount-app-BlaI2VZs.js +9 -0
  74. package/web/assets/{permission-rules-api-BM5qRwQ-.js → permission-rules-api-BZn4yp-J.js} +1 -1
  75. package/web/assets/{pick-system-directory-CjwfGZuj.js → pick-system-directory-DS_-qn8W.js} +1 -1
  76. package/web/assets/placements-BMxzzGTX.js +2 -0
  77. package/web/assets/{popover-CaaxkJV6.js → popover-C5U02alK.js} +1 -1
  78. package/web/assets/{public-Cs-VgI_R.js → public-B8mbf50i.js} +1 -1
  79. package/web/assets/public-Be05c5M9.js +2 -0
  80. package/web/assets/{public-bgEdGMBy.js → public-Bq1VrNr8.js} +2 -2
  81. package/web/assets/{public-CTCOj1Tc.js → public-DsjuTTt0.js} +1 -1
  82. package/web/assets/{public-components-Cxirb-D4.js → public-components-CMbKXCZU.js} +1 -1
  83. package/web/assets/public-diff-4sBkfeo8.js +1 -0
  84. package/web/assets/public-events-D2kHUhG2.js +1 -0
  85. package/web/assets/{public-flags-BHDCY_aY.js → public-flags-D8CxujmF.js} +1 -1
  86. package/web/assets/{public-folder-dialog-MAINAiLs.js → public-folder-dialog-Dnmn6DIU.js} +1 -1
  87. package/web/assets/{public-greeting-nLVPlZrv.js → public-greeting-Cs-sacVq.js} +1 -1
  88. package/web/assets/{public-session-qCqrUJ6y.js → public-session-DSLmbBcw.js} +1 -1
  89. package/web/assets/{public-sidebar-D6Ujh_8I.js → public-sidebar-UNJ9_fD1.js} +1 -1
  90. package/web/assets/{runtime-capabilities-store-D_0w_fuG.js → runtime-capabilities-store-Y9MaywP8.js} +1 -1
  91. package/web/assets/{safe-mode-instance-B1xRd2Id.js → safe-mode-instance-CYIRMY5i.js} +1 -1
  92. package/web/assets/safe-mode-sentinel-Bq9lNJoA.js +1 -0
  93. package/web/assets/{session-change-summary-api-Bz6qW3dZ.js → session-change-summary-api-Dp9vVPv_.js} +1 -1
  94. package/web/assets/{session-home-CdOoCouS.js → session-home-DqEkX19H.js} +1 -1
  95. package/web/assets/{session-inspector-store-BUq8tTV4.js → session-inspector-store-D_mwa4K7.js} +1 -1
  96. package/web/assets/{session-organization-api-oAt9Tied.js → session-organization-api-ibzfB8fg.js} +1 -1
  97. package/web/assets/session-questions-94KACguh.js +1 -0
  98. package/web/assets/{session-scope-PFTSXL_B.js → session-scope-BJIZo6ty.js} +1 -1
  99. package/web/assets/{session-tree-actions-D-hQZc07.js → session-tree-actions-B8GDKcGe.js} +1 -1
  100. package/web/assets/{session-tree-summary-gqTig55_.js → session-tree-summary-BTcPaCgY.js} +1 -1
  101. package/web/assets/{shortcuts-B5Q10H38.js → shortcuts-DRfz9B_B.js} +1 -1
  102. package/web/assets/side-chat-context-CRQ33Q0D.js +7 -0
  103. package/web/assets/{sidebar-Dct9J7LY.js → sidebar-DrzZKq2i.js} +1 -1
  104. package/web/assets/{sidebar-store-CHqFyueh.js → sidebar-store-BvZAgxJg.js} +1 -1
  105. package/web/assets/{speech-session-BzWOz7_A.js → speech-session-DGkMojp3.js} +1 -1
  106. package/web/assets/{startup-queries-LEtJRewm.js → startup-queries-BjjeYiQ8.js} +1 -1
  107. package/web/assets/{use-i18n-QY-mTTDS.js → use-i18n-8V6eRMcE.js} +1 -1
  108. package/web/assets/{use-open-bot-BCteAGsU.js → use-open-bot-BEhRmhru.js} +1 -1
  109. package/web/assets/{use-studio-actions-CVQo8gWA.js → use-studio-actions-BsdfCptK.js} +1 -1
  110. package/web/assets/{useCatalogProjects-B0P8PrPz.js → useCatalogProjects-DKjmAJ2x.js} +1 -1
  111. package/web/assets/{useMachines-D-YSauyl.js → useMachines-BBeg2uOZ.js} +1 -1
  112. package/web/assets/useNewProjectPicker-Cmw2SOhW.js +2 -0
  113. package/web/assets/{useNow-CvnDomJ8.js → useNow-D-gM4IXU.js} +1 -1
  114. package/web/assets/{usePhoneShell-Cv5Or-Rz.js → usePhoneShell-DRZTDDgZ.js} +1 -1
  115. package/web/assets/useSessionListQuery-DtpEX8a5.js +2 -0
  116. package/web/assets/{useSessionRowActions-DaVD7CkP.js → useSessionRowActions-DBqnVodk.js} +1 -1
  117. package/web/assets/{useSidebarModel-KU2-5Lqq.js → useSidebarModel-DBH3JLQ1.js} +1 -1
  118. package/web/assets/{workspace-folders-BrwI22Ku.js → workspace-folders-Bu3t-gEw.js} +1 -1
  119. package/web/assets/{workspace-order-store-04YPBRRV.js → workspace-order-store-DmEFuNUL.js} +1 -1
  120. package/web/index.html +2 -2
  121. package/web/assets/BoardPage-DsRRgaSA.js +0 -3
  122. package/web/assets/ChatPage-saAM1R5P.js +0 -553
  123. package/web/assets/FocusRuntimeControls-CUqEkAM6.js +0 -1
  124. package/web/assets/MemoryPage-BSAhhmdG.js +0 -2
  125. package/web/assets/SessionInspector-CIfPX9LJ.js +0 -1
  126. package/web/assets/board-messages-D6AWGHuF.js +0 -1
  127. package/web/assets/chat-api-fzSB1i2N.js +0 -1
  128. package/web/assets/focus-session-composer-bits-B_mOqktE.js +0 -1
  129. package/web/assets/i18n-CWhhZ2QN.js +0 -1
  130. package/web/assets/index-BTqJTVNA.css +0 -2
  131. package/web/assets/mount-app-Dee6SQOq.js +0 -9
  132. package/web/assets/placements-BvtgsaIH.js +0 -2
  133. package/web/assets/public-DW6Tkvj2.js +0 -2
  134. package/web/assets/public-diff-B2iBx26D.js +0 -1
  135. package/web/assets/public-events-QnPYL1F-.js +0 -1
  136. package/web/assets/safe-mode-sentinel-DmNv7ZYs.js +0 -1
  137. package/web/assets/session-questions-Cf-1g85h.js +0 -1
  138. package/web/assets/side-chat-context-CoDP1BZc.js +0 -7
  139. package/web/assets/useNewProjectPicker-V3_nwv5l.js +0 -2
  140. package/web/assets/useSessionListQuery-CuUmG2UC.js +0 -2
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WorkspacePicker-Bt_doGjv.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-DwNgTV1j.js","assets/use-i18n-QY-mTTDS.js","assets/i18n-CWhhZ2QN.js","assets/vendor-router-CSN_DGvx.js","assets/index-_WvEqLNn.js","assets/index-BTqJTVNA.css","assets/storage-DtvZ_lEu.js","assets/vendor-state-GkUciC5H.js","assets/http-response-Bb_1H1lE.js","assets/runtime-capabilities-store-D_0w_fuG.js","assets/api-C35aq3ml.js","assets/abort-signal-f4JsiYKX.js","assets/event-stream-DTCmB4AA.js","assets/http-YNvizzuJ.js","assets/runtime-capabilities-CPDBo3tu.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/arrow-up-DST6-qVQ.js","assets/check-2vYc6QaP.js","assets/chevron-right-C3t2Rckj.js","assets/folder-open-FIShC5Qk.js","assets/folder-DPM8D8cf.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-27CgEIc2.js","assets/x-07u4-129.js","assets/dist-BHkR6BLP.js","assets/dist-BsRXXcSL.js","assets/es2015-DTZdOI9P.js","assets/input-CPw-zkYh.js","assets/PageState-Cz6vFMXv.js","assets/alert-DRIrgNI4.js","assets/workspace-folders-BrwI22Ku.js","assets/NewFolderDialog-CrIBoIPP.js","assets/workspace-order-store-04YPBRRV.js","assets/session-workspaces-Brm-8lHh.js","assets/input-group-h8z63MzW.js","assets/textarea-DmATpOqT.js","assets/pick-system-directory-CjwfGZuj.js","assets/folder-paths-BB2PvkZ4.js","assets/startup-queries-LEtJRewm.js","assets/query-DFQayLF5.js","assets/mutation-b4pPvB7p.js","assets/events-DMbz7S1A.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-QY-mTTDS.js";import{a,o}from"./vendor-state-GkUciC5H.js";import{t as s}from"./useQuery-DfOU-27z.js";import{t as c}from"./api-C35aq3ml.js";import"./focus-session-composer-bits-B_mOqktE.js";import"./FocusRuntimeControls-CUqEkAM6.js";import{n as l}from"./workspace-order-store-04YPBRRV.js";import"./chat-api-fzSB1i2N.js";import{S as u,a as d,n as f,o as p}from"./useSessionListQuery-CuUmG2UC.js";import{c as m,d as h,l as g,u as _}from"./useNow-CvnDomJ8.js";import{i as v}from"./format-DMJQzoZ7.js";import"./session-change-summary-api-Bz6qW3dZ.js";import{a as y,n as b}from"./folder-paths-BB2PvkZ4.js";var x=e(n(),1);function S({doneWindow:e}={}){let t=g(e=>e.groupBy),n=g(e=>e.projects),r=g(e=>e.lanes),i=g(e=>e.collapsedLanes),a=g(e=>e.doneWindow),o=e??a,{query:s,items:c,capabilities:l,isLoading:h}=m(o),_=(0,x.useMemo)(()=>d(c,{lanes:r,projects:n}),[c,r,n]),v=(0,x.useMemo)(()=>p(_),[_]),y=(0,x.useMemo)(()=>f(c),[c]),b=(0,x.useMemo)(()=>c.filter(e=>e.lane===`attention`),[c]),S=s.data?.sessions,C=(0,x.useMemo)(()=>!!S&&!(S??[]).some(e=>e.archived!==!0&&(typeof e.messageCount!=`number`||e.messageCount>0)),[S]),w=(0,x.useMemo)(()=>({groupBy:t,projects:n,lanes:r,collapsedLanes:i,doneWindow:o}),[i,o,t,r,n]),T=(0,x.useCallback)(async()=>{await u()},[]);return{all:c,items:_,lanes:v,projects:y,total:c.length,attentionAll:b,catalogEmpty:C,view:w,capabilities:l,isLoading:h,isRefreshing:s.isFetching&&!s.isPending,error:s.error??null,refresh:T}}function C(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function w(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:null}var T=[`input`,`output`,`cacheRead`,`cacheWrite`,`totalTokens`,`total`];function E(e,t){let n=C(e),r=T.some(e=>w(n[e])!==null)?v(e).totalTokens:null,i=C(C(t).subAgents),a=w(i.running),o=w(i.maxConcurrent);return{todayTokens:w(r),memoryBytes:w(C(C(t).memory).rss),...a!==null&&o!==null&&o>=1?{subAgents:{running:Math.floor(a),max:Math.floor(o)}}:{}}}async function D(e){let[t,n]=await Promise.allSettled([c(`/api/usage/today`,{signal:e}),c(`/api/runtime/diagnostics`,{signal:e})]);return E(t.status===`fulfilled`?t.value:void 0,n.status===`fulfilled`?n.value:void 0)}function O(e){return s({queryKey:[`board`,`fleet-system-info`],queryFn:({signal:e})=>D(e),enabled:e,staleTime:15e3,retry:!1})}var k=r(),A=(0,x.lazy)(()=>t(()=>import(`./WorkspacePicker-Bt_doGjv.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,24,25,26,27,28,29,30,31,32,33,34,35,36]))),j=(0,x.lazy)(()=>t(()=>import(`./NewFolderDialog-CrIBoIPP.js`).then(e=>({default:e.NewFolderDialog})),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10,21,17,38,39,23,24,25,26,27,28,29,30,31,32,33,40,41,42,12,13,14,15,43,44,45,46,47,35,48,49,50])));function M({picker:e,folderDialog:t}){let{mounted:n,...r}=e,{mounted:i,...a}=t;return!n&&!i?null:(0,k.jsxs)(x.Suspense,{fallback:null,children:[n&&(0,k.jsx)(A,{...r}),i&&(0,k.jsx)(j,{...a})]})}var N=`pisper-launch-defaults`,P=[`approval-required`,`workspace-write`,`full-access`],F=[`plan`,`goal`,`team`],I=P.filter(e=>e!==`full-access`);function L(e){return I.includes(e)?e:``}var R={cwd:``,projectless:!1,machineId:``,machineCwd:``,model:``,thinkingLevel:``,executionMode:``,runMode:`plan`};function z(e,t,n){if(typeof e!=`string`)return``;let r=e.trim();return r.length<=t&&(!n||n.test(r))?r:``}function B(e){let t=h(e);return{cwd:z(t.cwd,4096),projectless:t.projectless===!0,machineId:z(t.machineId,64,/^(?:ssh|env)_[A-Za-z0-9_-]{8,32}$/),machineCwd:z(t.machineCwd,4096),model:z(t.model,256),thinkingLevel:z(t.thinkingLevel,32,/^[a-z][a-z0-9_-]*$/),executionMode:L(t.executionMode),runMode:F.includes(t.runMode)?t.runMode:`plan`}}function V(e,t){let n=t.projectless??(t.cwd===void 0&&e.projectless),r=t.machineId===void 0&&(t.cwd!==void 0||t.projectless===!0),i=B({...e,...t,projectless:n,...r?{machineId:``,machineCwd:``}:{}});return t.executionMode===`full-access`?{...i,executionMode:L(e.executionMode)}:i}function H(e){let t=/^machine:\/\/((?:ssh|env)_[A-Za-z0-9_-]{8,32})(\/.*)$/.exec(e);return t?{machineId:t[1],machineCwd:t[2]}:{cwd:e}}var U=o()(a((e,t)=>({...R,rememberLaunch:n=>{let{cwd:r,projectless:i,machineId:a,machineCwd:o,model:s,thinkingLevel:c}=t(),{executionMode:l,runMode:u}=t();e(V({cwd:r,projectless:i,machineId:a,machineCwd:o,model:s,thinkingLevel:c,executionMode:l,runMode:u},n))},resetLaunchDefaults:()=>e({...R})}),{name:N,storage:_(),version:1,partialize:({cwd:e,projectless:t,machineId:n,machineCwd:r,model:i,thinkingLevel:a,executionMode:o,runMode:s})=>({cwd:e,projectless:t,machineId:n,machineCwd:r,model:i,thinkingLevel:a,executionMode:o,runMode:s}),merge:(e,t)=>({...t,...B(e)})}));function W({onProjectChosen:e,onError:t,onRemembered:n}){let{t:r}=i(),[a,o]=(0,x.useState)(!1),[s,c]=(0,x.useState)(!1),[u,d]=(0,x.useState)(!1),[f,p]=(0,x.useState)(!1),[m,h]=(0,x.useState)(!1),[g,_]=(0,x.useState)(``),v=(0,x.useRef)(!1),S=(0,x.useRef)(0),C=(0,x.useRef)(!1),w=(0,x.useRef)({onProjectChosen:e,onError:t,onRemembered:n});w.current={onProjectChosen:e,onError:t,onRemembered:n},(0,x.useEffect)(()=>()=>{S.current+=1},[]);let T=(0,x.useCallback)(e=>{let t=l.getState().registerProject(e)||e;U.getState().rememberLaunch({cwd:t}),w.current.onRemembered?.(t)},[]),E=(0,x.useCallback)(async()=>{if(v.current)return;v.current=!0,o(!0);let e=++S.current;try{let t=await y(r);if(e!==S.current)return;t.status===`picked`?(T(t.path),w.current.onProjectChosen()):t.status===`unavailable`&&(c(!0),d(!0))}catch(t){e===S.current&&w.current.onError(t instanceof Error?t.message:String(t))}finally{e===S.current&&(v.current=!1,o(!1))}},[T,r]),D=(0,x.useCallback)((e=``)=>{_(b(e)),p(!0),h(!0)},[]),O=e=>{C.current&&(C.current=!1,e.preventDefault(),w.current.onProjectChosen())};return{newProject:E,newFolder:D,picking:a,picker:{mounted:s,open:u,description:r(`board:project.pickerDescription`),onOpenChange:d,onSelect:e=>{T(e),C.current=!0},onCloseAutoFocus:O},folderDialog:{mounted:f,open:m,initialParent:g,onOpenChange:h,onCreated:e=>{T(e),C.current=!0},onCloseAutoFocus:O}}}export{M as a,U as i,I as n,O as o,H as r,S as s,W as t};
@@ -1,2 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t}from"./vendor-react-DwNgTV1j.js";import{o as n}from"./vendor-state-GkUciC5H.js";import{u as r}from"./query-DFQayLF5.js";import{t as i}from"./useQuery-DfOU-27z.js";import{a,i as o,n as s,o as c,t as l}from"./startup-queries-LEtJRewm.js";import{t as u}from"./component-changes-Q9Bf64Ob.js";import{i as d}from"./http-response-Bb_1H1lE.js";import{t as f}from"./event-stream-DTCmB4AA.js";import{i as p,n as m}from"./http-YNvizzuJ.js";import{t as h}from"./runtime-capabilities-store-D_0w_fuG.js";import{a as g,c as _,r as v,s as y,t as ee}from"./session-board-status-D2lpFPiI.js";import{t as b}from"./chat-api-fzSB1i2N.js";import{n as x}from"./session-organization-api-oAt9Tied.js";import{c as te,l as ne}from"./session-workspaces-Brm-8lHh.js";import{i as re}from"./session-questions-Cf-1g85h.js";var S=400,ie=2e3,ae=160,oe=512,se=400,ce=240,le=240,ue=8,C=40,de=80,fe=3;function w(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function T(e){return typeof e==`string`?e:``}function E(e){return typeof e==`string`&&Number.isFinite(Date.parse(e))?e:null}function D(e,t){let n=Array.from(e);return n.length>t?`${n.slice(0,t-1).join(``)}…`:e}function pe(e,t){let n=w(t),r=e===`bash`?n.command:n.path??n.file_path??n.url??n.query??n.pattern;return D(((typeof r==`string`?r:Object.values(n).find(e=>typeof e==`string`))||``).replace(/\s+/g,` `).trim(),ae)}function me(e){let t=w(e);if(t.type===`model`)return{type:`model`,stage:T(t.stage)||`thinking`};if(t.type===`tool`&&T(t.name)){let e=T(t.name);return{type:`tool`,name:e,summary:pe(e,t.args),startedAt:E(t.startedAt)}}return null}function he(e){let t=w(e),n=T(t.id);if(!n)return null;let r=w(t.args),i=w(t.fileChange);return{id:n,toolName:T(t.toolName),toolCallId:T(t.toolCallId),args:r,command:T(r.command),path:T(i.path)||T(r.path)||T(r.file_path),reason:D(T(t.reason),S),risk:T(t.risk),severity:g(t),createdAt:E(t.createdAt)}}function ge(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){let e=he(r);!e||t.has(e.id)||(t.add(e.id),n.push(e))}return n}function _e(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function O(e){let t=_e(e);return t===null?null:Math.max(0,Math.floor(t))}var ve=/[\u0000-\u001f\u007f-\u009f]/g;function k(e,t){return D(T(e).replace(ve,` `).trimEnd(),t)}function ye(e){let t=/^(?:path|file_path): (.+)$/m.exec(e);return t?t[1].trim():``}function be(e){let t=w(e),n=T(t.id);if(!n)return null;let r=T(t.toolName),i=T(t.argsPreview),a=D(i,oe),o=t.argsTruncated===!0||a!==i,s=r===`bash`;return{id:n,toolName:r,toolCallId:``,args:{},command:s?a:``,path:s?``:ye(a),reason:D(T(t.reason),S),risk:T(t.risk),severity:g({severity:t.severity,reason:t.reason,toolName:r}),createdAt:E(t.createdAt),argsText:s?``:a,truncated:o}}function xe(e){let t=w(e);return t.type===`model`?{type:`model`,stage:D(T(t.stage),C)}:t.type===`tool`&&T(t.name)?{type:`tool`,name:D(T(t.name),C),summary:D(T(t.argsSummary).replace(/\s+/g,` `).trim(),ae),startedAt:E(t.startedAt)}:null}function Se(e){let t=w(e),n=T(t.id),r=k(t.name,C);if(!n||!r)return null;let i=w(t.avatar);return{id:D(n,C),name:r,character:D(T(i.character),C),color:D(T(i.color),C)}}function Ce(e){return e?{bot:e}:{}}function we(e){let t=w(e),n=T(t.status);return n?{added:O(t.added),removed:O(t.removed),files:O(t.files),status:D(n,C)}:null}function Te(e){let t=w(e),n=w(t.error),r=k(n.message,se),i=w(t.agents),a=O(i.running),o=O(i.total),s=_e(t.contextPct),c=ee.includes(T(t.outcome))?t.outcome:null,l=[],u=new Set;for(let e of Array.isArray(t.approvals)?t.approvals:[]){let t=be(e);if(!(!t||u.has(t.id))&&(u.add(t.id),l.push(t),l.length>=ue))break}return{boardStatus:D(T(t.boardStatus),C),runId:D(T(t.runId),de),activity:xe(t.activity),startedAt:E(t.startedAt),lastActivityAt:E(t.lastActivityAt),finishedAt:E(t.finishedAt),outcome:c,error:r?{message:r,kind:D(T(n.kind),C)||`runtime`}:null,approvals:l,queuedInputCount:O(t.queuedInputCount)??0,contextPct:s===null?null:Math.min(100,Math.max(0,s)),changeStats:we(t.changeStats),preview:k(t.lastAssistantPreview,ce),tail:(Array.isArray(t.tail)?t.tail:[]).map(e=>k(e,le)).filter(e=>e.trim()).slice(-3),agents:a!==null&&o!==null&&o>0?{running:Math.min(a,o),total:o}:null,totalTokens:O(w(t.usage).totalTokens),...Ce(Se(t.bot))}}function Ee(e){let t=w(e),n=T(t.id);if(!n)return null;let r={...t,id:n};return delete r.card,r}function De(e){let t=Ee(e);return t?{session:t,card:Te(w(e).card)}:null}function Oe(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function ke(e){let t=w(e),n=[],r=new Set;for(let e of Array.isArray(t.sessions)?t.sessions:[]){let t=De(e);!t||r.has(t.session.id)||(r.add(t.session.id),n.push(t))}let i=T(t.nextCursor);return{items:n,nextCursor:i&&i.length<=1024?i:null,revision:Oe(t.revision)}}function Ae(){return-new Date().getTimezoneOffset()}function je(e){let t=w(e);return{streaming:t.streaming===!0,approvals:ge(t.approvals),error:D(T(t.error),ie),activity:me(t.currentActivity),startedAt:E(t.startedAt),lastActivityAt:E(t.lastActivityAt),finishedAt:E(t.finishedAt)}}var A={listSessions:()=>b.listSessions(),getLiveDetail:async(e,t)=>je(await b.getLiveSession(e,{signal:t,timeout:15e3})),resolveApproval:async(e,t,n)=>{try{return w(await b.resolveApproval(e,t,n)).alreadyResolved===!0?`already-resolved`:`resolved`}catch(e){if(e instanceof d&&e.status===404)return`missing`;throw e}},retry:(e,t,n)=>b.retryLastTurn(e,t,{signal:n}),updateOrganization:(e,t)=>x(e,t),renameSession:async(e,t)=>{let n=w(await b.renameSession(e,t));return typeof n.name==`string`?n.name:t},listBoardView:async e=>{let t=[],n=new Set,r=``,i=null;for(let a=0;a<fe;a+=1){let o=new URLSearchParams({view:`board`,window:`7d`,limit:`200`,tzOffset:String(Ae())});r&&o.set(`cursor`,r);let s=await m(`/api/sessions?${o}`,{signal:e,timeout:15e3,parse:ke});a===0&&(i=s.revision);for(let e of s.items)n.has(e.session.id)||(n.add(e.session.id),t.push(e));if(r=s.nextCursor??``,!r||t.length>=500)break}return{items:t.slice(0,500),nextCursor:r||null,revision:i}},openBoardEvents:async(e,t,n)=>{await p(n);let r=e===null?``:`?after=${encodeURIComponent(String(e))}`,i;try{i=await fetch(`/api/board/events${r}`,{signal:n,headers:{Accept:`text/event-stream`}})}catch(e){throw n.aborted?e:new d(e instanceof Error?e.message:`network`,{kind:`network`})}await f(i,(e,n)=>t(e,n))}};function j(e=`legacy`){return{mode:e,ready:!1,revision:null,awaitingSnapshot:!1,entries:{},updatedAt:0}}function M(){return{upserts:[],removed:[],resync:!1,reconnect:!1,truncated:!1,catalog:!1,changed:!1}}function Me(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function Ne(e,t,n,r=Date.now()){let i=M(),a={},o=n??e.revision??0;for(let e of t)a[e.session.id]={...e,revision:o,receivedAt:r},i.upserts.push(e.session);for(let t of Object.keys(e.entries))t in a||i.removed.push(t);return i.changed=!0,{feed:{...e,ready:!0,revision:n??e.revision,awaitingSnapshot:!1,entries:a,updatedAt:r},effects:i}}function Pe(e,t,n,r=Date.now()){let i=Me(n),a=Oe(i.revision),o={feed:e,effects:M()};if(t===`snapshot`){if(a===null||!Array.isArray(i.items))return o;let t=[],n=new Set;for(let e of i.items){let r=De(e);!r||n.has(r.session.id)||(n.add(r.session.id),t.push(r))}let s=Ne(e,t,a,r);return s.effects.truncated=i.truncated===!0,s}if(t===`resync_required`){let t=M();return t.resync=!0,t.reconnect=i.reason===`flush_failed`,t.changed=!e.awaitingSnapshot,{feed:{...e,awaitingSnapshot:!0},effects:t}}if(e.awaitingSnapshot||a===null||e.revision!==null&&a<=e.revision)return o;if(t===`heartbeat`||t===`component_changed`||t===`catalog_changed`){let n=M();return n.changed=!0,n.catalog=t===`catalog_changed`,{feed:{...e,revision:a,updatedAt:r},effects:n}}if(t!==`session_card`)return o;let s=typeof i.id==`string`?i.id:``;if(!s)return o;let c=e.entries[s];if(c&&a<=c.revision)return o;let l=M();if(l.changed=!0,i.removed===!0){let t={...e.entries};return delete t[s],c&&l.removed.push(s),{feed:{...e,revision:a,entries:t,updatedAt:r},effects:l}}let u=Ee(i.session);return!u||u.id!==s?{feed:{...e,revision:a,updatedAt:r},effects:l}:(l.upserts.push(u),{feed:{...e,revision:a,entries:{...e.entries,[s]:{session:u,card:Te(i.card),revision:a,receivedAt:r}},updatedAt:r},effects:l})}var N=l,Fe=3e3,Ie=2e3,Le=3e4,Re=1e3,ze=3e4,Be=6e4,Ve=4e3,He=4e4,Ue=300,We=6e3,Ge=6e4,Ke=1e3,qe={feed:j(),live:{},localRuns:{},runningSince:{},patches:{},pending:{}},P=n()(()=>({...qe}));function Je(){return a.getQueryData(N)?.sessions??[]}function F(){return s(`sessions`,!0)}async function Ye(){o(`sessions`),await F()}async function Xe(e,t=()=>!0,{fresh:n=!1}={}){if(V.active&&V.mode===`events`&&V.events.controller){if(!n&&t(P.getState().feed.entries[e]))return;await Ze(e,t,Ve);return}if(V.active&&V.mode!==`legacy`&&I().view){await K();return}await Ye().catch(()=>void 0)}function Ze(e,t,n){return new Promise(r=>{let i=P.getState().feed.entries[e],a=null,o=()=>{},s=()=>{a&&clearTimeout(a),o(),r()};o=P.subscribe(n=>{let r=n.feed.entries[e];r!==i&&t(r)&&s()}),a=setTimeout(s,n)})}function I(){let{capabilities:e,loaded:t}=h.getState(),n=e.features;return{loaded:t,view:t&&n[`board.view`]===!0,events:t&&n[`board.events`]===!0}}function Qe(){return I().view}var $e=0;function et(e,t){let n=++$e;return P.setState(r=>({patches:{...r.patches,[e]:[...r.patches[e]??[],{token:n,patch:t}]}})),n}function tt(e,t){P.setState(n=>{let r=n.patches[e];if(!r?.some(e=>e.token===t))return n;let i=r.filter(e=>e.token!==t),a={...n.patches};return i.length?a[e]=i:delete a[e],{patches:a}})}function L(e,t){let n=t[e.id];return n?.length?n.reduce((e,t)=>({...e,...t.patch}),e):e}function R(e,t,n=``){return e===`approve`||e===`deny`?`approval:${t}:${n}`:`${e}:${t}`}function nt(e,t){return!P.getState().pending[e]&&(P.setState(n=>({pending:{...n.pending,[e]:t}})),!0)}function rt(e){P.setState(t=>{if(!(e in t.pending))return t;let n={...t.pending};return delete n[e],{pending:n}})}function z(e,t){P.setState(n=>{let r=t(n.live[e]);if(r===n.live[e])return n;let i={...n.live};return r?i[e]=r:delete i[e],{live:i}})}function it(e,t){P.setState(n=>{let r=n.feed.entries[e];if(!r)return n;let i=t(r.card.approvals);return i===r.card.approvals?n:{feed:{...n.feed,entries:{...n.feed.entries,[e]:{...r,card:{...r.card,approvals:i}}}}}})}function at(e,t){z(e,e=>e&&e.approvals.some(e=>e.id===t)?{...e,approvals:e.approvals.filter(e=>e.id!==t)}:e??null),it(e,e=>e.some(e=>e.id===t)?e.filter(e=>e.id!==t):e)}function ot(e,t){if(P.getState().feed.entries[e]){it(e,e=>e.some(e=>e.id===t.id)?e:[...e,t]);return}z(e,e=>{let n=e??B(`ready`);return n.approvals.some(e=>e.id===t.id)?n:{...n,approvals:[...n.approvals,t]}})}function st(e,t){let n=P.getState(),r=n.live[e]?.approvals.find(e=>e.id===t);if(r)return r;let i=n.feed.entries[e]?.card.approvals.find(e=>e.id===t);return i&&!i.truncated?i:void 0}function ct(e,t){P.setState(n=>{let r=n.feed.entries[e];return r?{feed:{...n.feed,entries:{...n.feed.entries,[e]:{...r,session:{...r.session,...t},receivedAt:Date.now()}}}}:n})}function lt(e){let t=P.getState(),n=t.feed.entries[e];return n&&V.mode!==`legacy`?n.card.approvals:t.live[e]?.approvals??[]}function B(e){return{status:e,approvals:[],error:``,activity:null,startedAt:null,fetchedAt:null,failures:0}}var V={retainers:0,active:!1,mode:`legacy`,pollTimer:null,releaseTimer:null,catalogTimer:null,liveTimers:new Map,liveControllers:new Map,liveNextAt:new Map,runControllers:new Map,events:{controller:null,retryTimer:null,attempt:0,blockedUntil:0,blockTimer:null,watchdog:null},view:{inFlight:null,controller:null,failures:0},feedSettled:!1,catalogFetchAt:0,cleanups:[]};function H(){return typeof document>`u`||document.visibilityState!==`hidden`}function ut(){let e=I();return e.events&&Date.now()>=V.events.blockedUntil?`events`:e.view?`view`:`legacy`}function U(e=P.getState().feed){return V.mode!==`legacy`&&e.ready}function W(){V.pollTimer&&clearTimeout(V.pollTimer),V.pollTimer=null}function G(e){W(),!(!V.active||V.mode===`events`||!H())&&(V.pollTimer=setTimeout(()=>{V.pollTimer=null,ft()},e))}function dt(){return V.view.failures?Math.min(Ie*2**V.view.failures,Le):Ie}async function ft(){let e=V.mode;if(e===`view`)await pt();else try{await F()}catch{}!V.active||V.mode!==e||(Z(),G(e===`view`?dt():Fe))}function pt(){if(V.view.inFlight)return V.view.inFlight;let e=new AbortController;V.view.controller=e;let t=(async()=>{try{let t=await A.listBoardView(e.signal);if(e.signal.aborted||!V.active)return;V.view.failures=0,V.feedSettled=!0,bt(Ne(P.getState().feed,t.items,V.mode===`events`?null:t.revision))}catch{if(e.signal.aborted)return;V.view.failures+=1,V.feedSettled=!0,Z()}finally{V.view.controller===e&&(V.view.controller=null,V.view.inFlight=null)}})();return V.view.inFlight=t,t}async function K(){let e=V.view.inFlight;e&&await e,await pt()}function mt(){V.view.controller?.abort(),V.view.controller=null,V.view.inFlight=null}function q(){let e=V.events;e.retryTimer&&clearTimeout(e.retryTimer),e.retryTimer=null,J();let t=e.controller;e.controller=null,t?.abort()}function J(){V.events.watchdog&&clearTimeout(V.events.watchdog),V.events.watchdog=null}function ht(e){J(),V.events.watchdog=setTimeout(()=>{V.events.watchdog=null;let t=V.events;t.controller!==e||e.signal.aborted||(t.controller=null,e.abort(),!(!V.active||V.mode!==`events`)&&(gt(0),Z()))},He)}function gt(e){let t=V.events;t.retryTimer&&clearTimeout(t.retryTimer),t.retryTimer=setTimeout(()=>{t.retryTimer=null,Y()},e)}function _t(e){return e instanceof d&&e.kind===`http`&&typeof e.status==`number`&&e.status>=400&&e.status<500}function vt(){let e=V.events;e.blockedUntil=Date.now()+Be,e.blockTimer&&clearTimeout(e.blockTimer),e.blockTimer=setTimeout(()=>{e.blockTimer=null,X()},60010),X()}function Y(){let e=V.events;if(!V.active||V.mode!==`events`||e.controller||e.retryTimer||!H())return;let t=new AbortController;e.controller=t,ht(t);let n=P.getState().feed,r=n.ready&&!n.awaitingSnapshot?n.revision:null,i=!1,a=!1;A.openBoardEvents(r,(n,r)=>{if(t.signal.aborted||e.controller!==t)return!1;if(ht(t),i=!0,e.attempt=0,V.feedSettled=!0,yt(n,r).reconnect)return a=!0,!1},t.signal).then(()=>null,e=>e).then(n=>{if(e.controller===t&&(e.controller=null,J(),!(t.signal.aborted||!V.active))){if(V.feedSettled=!0,n&&_t(n))vt();else{let t=a?0:i?Re:Math.min(Re*2**e.attempt,ze);!i&&!a&&(e.attempt+=1),gt(t)}Z()}})}function yt(e,t){let n=Pe(P.getState().feed,e,t);return bt(n,e===`heartbeat`||e===`component_changed`||e===`catalog_changed`),u(e,t,n.effects.changed),n.effects}function bt({feed:e,effects:t},n=!1){t.changed&&P.setState({feed:{...e,mode:V.mode}}),t.upserts.length&&xt(t.upserts),(t.removed.length||t.resync||t.catalog)&&St(),t.changed&&!n&&Z()}function xt(e){let t=a.getQueryData(N);if(!t||!e.length)return;let n=new Map(t.sessions.map((e,t)=>[e.id,t])),r=null,i=[];for(let a of e){let e=n.get(a.id);if(e===void 0){i.some(e=>e.id===a.id)||i.push(a);continue}let o=(r??t.sessions)[e];JSON.stringify(o)!==JSON.stringify(a)&&(r??=[...t.sessions],r[e]=a)}!r&&!i.length||a.setQueryData(N,{...t,sessions:[...i,...r??t.sessions]})}function St(){V.catalogTimer||!V.active||(V.catalogTimer=setTimeout(()=>{V.catalogTimer=null,V.active&&F().catch(()=>void 0)},Ue))}function X(){if(!V.active)return;let e=ut();e!==V.mode&&(V.mode=e,V.feedSettled=!1,V.view.failures=0,q(),mt(),W(),P.setState(t=>({feed:e===`legacy`?j(`legacy`):{...t.feed,mode:e}})),e===`events`?(V.events.attempt=0,Y()):G(0),Z())}function Ct(){V.retainers+=1,V.releaseTimer&&=(clearTimeout(V.releaseTimer),null),V.active||wt();let e=!1;return()=>{e||(e=!0,V.retainers=Math.max(0,V.retainers-1),!(V.retainers>0)&&(V.releaseTimer=setTimeout(()=>{V.releaseTimer=null,V.retainers===0&&Tt()},Ke)))}}function wt(){V.active=!0,V.mode=ut(),V.feedSettled=!1,V.view.failures=0,V.events.attempt=0,P.setState(e=>({feed:V.mode===`legacy`?j(`legacy`):{...e.feed,mode:V.mode}}));let e=r(N);if(V.catalogFetchAt=Math.max(V.catalogFetchAt,a.getQueryState(N)?.dataUpdatedAt??0),V.cleanups.push(a.getQueryCache().subscribe(t=>{if(t.type===`updated`&&t.query.queryHash===e){if(t.action.type===`fetch`){V.catalogFetchAt=Date.now();return}t.action.type===`success`&&Dt()}})),V.cleanups.push(h.subscribe(()=>X())),typeof document<`u`){let e=()=>{if(H()){V.mode===`events`?Y():G(0),Z();return}W(),q()};document.addEventListener(`visibilitychange`,e),V.cleanups.push(()=>document.removeEventListener(`visibilitychange`,e))}if(Dt(),V.mode===`events`)Y();else if(V.mode===`view`)G(0);else{let e=a.getQueryState(N)?.dataUpdatedAt??0;G(Math.max(0,e+Fe-Date.now()))}}function Tt(){V.active=!1,W(),V.releaseTimer&&clearTimeout(V.releaseTimer),V.catalogTimer&&clearTimeout(V.catalogTimer),V.events.blockTimer&&clearTimeout(V.events.blockTimer),V.releaseTimer=null,V.catalogTimer=null,V.events.blockTimer=null,q(),mt();for(let e of V.cleanups.splice(0))e();for(let e of V.liveTimers.values())clearTimeout(e);for(let e of V.liveControllers.values())e.abort();for(let e of V.runControllers.values())e.controller.abort();V.liveTimers.clear(),V.liveControllers.clear(),V.liveNextAt.clear(),V.runControllers.clear(),P.setState({live:{},localRuns:{},runningSince:{}})}async function Et(){let e=F();V.active&&V.mode===`view`&&await K(),await e}function Dt(){let e=Je(),t=Date.now(),{runningSince:n,localRuns:r,feed:i}=P.getState(),a=U(i)?[...Object.values(i.entries).map(e=>e.session),...e]:e,o={},s=!1;for(let e of a)e.streaming!==!0||e.id in o||(o[e.id]=n[e.id]??r[e.id]?.startedAt??t,e.id in n||(s=!0));s||=Object.keys(n).some(e=>!(e in o)),s&&P.setState({runningSince:o}),U(i)&&Ot(e),Z()}function Ot(e){let t=V.catalogFetchAt,n=new Map(e.map(e=>[e.id,e])),r=[],i={};for(let e of Object.values(P.getState().feed.entries)){if((e.receivedAt??1/0)>=t){r.push(e.session);continue}let a=n.get(e.session.id);a&&a!==e.session&&JSON.stringify(a)!==JSON.stringify(e.session)&&(i[a.id]=a)}Object.keys(i).length&&P.setState(e=>{let t={...e.feed.entries};for(let[e,n]of Object.entries(i))t[e]&&(t[e]={...t[e],session:n});return{feed:{...e.feed,entries:t}}}),xt(r)}function kt(){let{patches:e,feed:t}=P.getState(),n=new Set,r=Date.now();if(U(t)){for(let i of Object.values(t.entries)){let t=L(i.session,e);if(t.archived===!0)continue;let a=i.card.approvals;_({...t,card:{approvals:a}},{now:r}).status===`approval`&&(!a.length||a.some(e=>e.truncated))&&n.add(i.session.id)}return n}if(V.mode!==`legacy`&&!V.feedSettled)return n;for(let t of Je()){let i=L(t,e);i.archived!==!0&&_(i,{now:r}).status===`approval`&&n.add(t.id)}return n}function At(e){let t=V.liveTimers.get(e);t&&clearTimeout(t),V.liveTimers.delete(e),V.liveControllers.get(e)?.abort(),V.liveControllers.delete(e),V.liveNextAt.delete(e),z(e,()=>null)}function Z(){if(!V.active)return;let e=kt();for(let t of Object.keys(P.getState().live))e.has(t)||At(t);for(let t of[...V.liveControllers.keys()])e.has(t)||At(t);if(!H())return;let t=Date.now(),n=P.getState().live,r=[...e].filter(e=>!V.liveControllers.has(e)&&(V.liveNextAt.get(e)??0)<=t).sort((e,t)=>Number(!!n[e])-Number(!!n[t])||(V.liveNextAt.get(e)??0)-(V.liveNextAt.get(t)??0)),i=Math.max(0,Math.min(3-V.liveControllers.size,4-V.liveControllers.size-V.runControllers.size-!!V.events.controller));r.slice(0,i).forEach((e,t)=>jt(e,t*250))}function jt(e,t){let n=new AbortController;V.liveControllers.set(e,n);let r=async()=>{V.liveTimers.delete(e),z(e,e=>e??B(`loading`));try{let t=await A.getLiveDetail(e,n.signal);if(n.signal.aborted||V.liveControllers.get(e)!==n)return;V.liveNextAt.set(e,Date.now()+We);let{pending:r}=P.getState(),i=t.approvals.filter(t=>!r[R(`approve`,e,t.id)]);z(e,()=>({status:`ready`,approvals:i,error:t.error,activity:t.activity,startedAt:t.startedAt,fetchedAt:Date.now(),failures:0}))}catch{if(n.signal.aborted||V.liveControllers.get(e)!==n)return;let t=(P.getState().live[e]?.failures??0)+1;V.liveNextAt.set(e,Date.now()+Math.min(We*2**t,Ge)),z(e,e=>({...e??B(`error`),status:e?.approvals.length?e.status:`error`,failures:t}))}finally{V.liveControllers.get(e)===n&&V.liveControllers.delete(e)}};t<=0?r():V.liveTimers.set(e,setTimeout(()=>void r(),t))}var Mt=class extends Error{code=`board_run_active`},Nt=0;function Pt(e,t){return e===t?!0:!e||!t||e.type!==t.type?!1:e.type===`model`?e.stage===t.stage:e.name===t.name&&e.summary===t.summary}function Q(e,t,n){P.setState(r=>{let i=r.localRuns[e];return!i||i.token!==t||(n.activity===void 0||Pt(i.activity,n.activity))&&(n.runId===void 0||n.runId===i.runId)?r:{localRuns:{...r.localRuns,[e]:{...i,...n}}}})}function Ft(e,t,n,r){if(n===`run`)Q(e,t,{runId:typeof r.runId==`string`?r.runId:``});else if(n===`tool_start`){let n=typeof r.name==`string`?r.name:``;n&&Q(e,t,{activity:{type:`tool`,name:n,summary:pe(n,r.args),startedAt:typeof r.startedAt==`string`?r.startedAt:new Date().toISOString()}})}else if(n===`tool_end`||n===`thinking_patch`||n===`thinking_reset`)Q(e,t,{activity:{type:`model`,stage:`thinking`}});else if(n===`text_delta`||n===`text_patch`)Q(e,t,{activity:{type:`model`,stage:`responding`}});else if(n===`permission_request`){let t=he(r);t&&ot(e,t),o(`sessions`)}else n===`permission_resolved`&&(typeof r.id==`string`&&at(e,r.id),o(`sessions`))}function It(){let e=V.runControllers.size-2;for(let[t,n]of V.runControllers){if(e<=0)return;n.accepted&&(V.runControllers.delete(t),n.controller.abort(),--e)}}function Lt(e,t,n){if(V.runControllers.has(e))return Promise.reject(new Mt);let r=new AbortController,i=++Nt,a={controller:r,accepted:!1};V.runControllers.set(e,a),It();let o=Date.now();return P.setState(n=>({localRuns:{...n.localRuns,[e]:{token:i,kind:t,runId:``,startedAt:o,activity:{type:`model`,stage:`starting`}}}})),new Promise((t,o)=>{let s=()=>{a.accepted||(a.accepted=!0,It(),t())};n((t,n)=>{if(r.signal.aborted)return!1;t===`run`&&s(),Ft(e,i,t,n)},r.signal).then(s,e=>{a.accepted||o(e)}).finally(()=>{V.runControllers.get(e)===a&&V.runControllers.delete(e),P.setState(t=>{if(t.localRuns[e]?.token!==i)return t;let n={...t.localRuns};return delete n[e],{localRuns:n}}),V.active&&(V.mode===`legacy`?F().catch(()=>void 0):I().view&&(V.mode===`view`||!V.events.controller)&&K(),Z())})})}var Rt=e(t(),1);function zt(){(0,Rt.useEffect)(()=>Ct(),[])}function Bt(e){let t=e.queue;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;return{startAfter:typeof n.startAfter==`string`?n.startAfter:``,position:typeof n.position==`number`&&Number.isSafeInteger(n.position)&&n.position>0?n.position:null}}var Vt=120;function Ht(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function $(e){let t=typeof e.name==`string`?e.name.trim():``;if(t)return D(t,Vt);let n=typeof e.firstMessage==`string`?e.firstMessage.trim():``,r=n.search(/[。!?!?\n]|\.\s/u);return D((r<0?n:n.slice(0,n[r]===`
2
- `?r:r+1)).trim(),Vt)}function Ut(e){return e.length?e.some(e=>e.severity===`critical`)?`critical`:`standard`:null}function Wt(e,t){if(!t?.approvals.length||!e.approvals.some(e=>e.truncated))return e.approvals;let n=new Map(t.approvals.map(e=>[e.id,e]));return e.approvals.map(e=>e.truncated?n.get(e.id)??e:e)}function Gt(e,t){return!!e[t]?.some(e=>e.patch.streaming===!0)}function Kt(e,t){let n=t.feed;if(!n?.ready)return e.filter(e=>e&&typeof e.id==`string`&&e.id).map(e=>({session:e,card:null}));let r=Object.values(n.entries).map(e=>({session:e.session,card:e.card}));for(let i of e)!i||typeof i.id!=`string`||!i.id||n.entries[i.id]||(t.localRuns[i.id]||Gt(t.patches,i.id))&&r.push({session:i,card:null});return r}function qt(e,t,{now:n,capabilities:r,doneWindow:i=`today`,timeZoneOffsetMinutes:a}){let o=[],s=t.pending??{},c=Kt(e,t),l=new Map;for(let t of e)t?.id&&l.set(t.id,$(t));for(let{session:e}of c)l.set(e.id,$(e));for(let{session:e,card:u}of c){let c=L(e,t.patches),d=t.localRuns[c.id],f=t.live[c.id],p=d?.startedAt??Ht(u?.startedAt)??Ht(f?.startedAt),m=u?Wt(u,f).filter(e=>!s[R(`approve`,c.id,e.id)]):null,h=m?.length?m:f?.approvals,g=_({...c,startedAt:p??t.runningSince[c.id]??null,approvals:h,card:u?{outcome:u.outcome??void 0}:void 0},{now:n,capabilities:r,doneWindow:i,timeZoneOffsetMinutes:a});if(!g.lane)continue;let v=g.status===`approval`?h??[]:[],y=v[0],ee=g.status===`approval`?y&&!y.truncated?`ready`:f?.status===`error`?`error`:`loading`:`none`,b=g.lane===`running`,x=g.status===`failed`,S=g.status===`question`?re(c.question):null;o.push({id:c.id,session:c,title:$(c),cwd:typeof c.cwd==`string`?c.cwd:``,workspaceKey:ne(c),projectCwd:te(c),lane:g.lane,status:g.status,handled:g.handled,since:g.since,startedAt:b?p:null,pinned:c.pinned===!0,unread:c.unread===!0,approvals:v,approvalsState:ee,severity:Ut(v),activity:b?d?.activity??u?.activity??f?.activity??null:null,error:x&&(u?.error?.message||f?.error)||``,localRun:!!d,hasCard:!!u,tail:u&&(b||x)?u.tail:[],preview:u&&g.lane===`done`&&!x?u.preview:``,changeStats:u?.changeStats??null,contextPct:u?.contextPct??null,agents:u?.agents??null,question:S,questionCount:S?S.questions.length:null,totalTokens:u?.totalTokens??null,...u?.bot?{bot:u.bot}:{},...Jt(g.lane,c,l)})}return o.sort(y)}function Jt(e,t,n){let r=e===`queued`?Bt(t):null;return{queuePosition:r?.position??null,queue:r?{startAfter:r.startAfter,startAfterTitle:n.get(r.startAfter)??``}:null}}function Yt(e,{lanes:t,projects:n}){let r=t?.length?new Set(t):null,i=n?.length?new Set(n):null;return!r&&!i?[...e]:e.filter(e=>(!r||r.has(e.lane))&&(!i||i.has(e.workspaceKey)))}function Xt(e){let t=Object.fromEntries(v.map(e=>[e,[]]));for(let n of e)t[n.lane].push(n);return t}function Zt(e){let t=new Map;for(let n of e){let e=t.get(n.workspaceKey);e?e.count+=1:t.set(n.workspaceKey,{key:n.workspaceKey,cwd:n.projectCwd,count:1})}return[...t.values()]}function Qt(e,t){let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>(n.get(e.key)??2**53-1)-(n.get(t.key)??2**53-1)||t.count-e.count)}function $t(){return zt(),i(c(`sessions`))}export{at as C,A as D,P as E,Et as S,ct as T,tt as _,Yt as a,rt as b,zt as c,et as d,nt as f,lt as g,Qe as h,qt as i,N as l,st as m,Zt as n,Xt as o,R as p,$ as r,Qt as s,$t as t,Mt as u,Xe as v,ot as w,Lt as x,Ye as y};