pisper 0.6.25 → 0.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/package.json +6 -6
  2. package/web/.vite/manifest.json +573 -573
  3. package/web/assets/{AppDialog-CuxO26Km.js → AppDialog-B9y7rq_4.js} +1 -1
  4. package/web/assets/{AppOverlays-Bt5SL3PY.js → AppOverlays-CzdCHrpC.js} +1 -1
  5. package/web/assets/{AssetsPage-BE6AzOGC.js → AssetsPage-MzCklx_a.js} +1 -1
  6. package/web/assets/{BoardPage-DX0fJ_ap.js → BoardPage-CjQXbluj.js} +3 -3
  7. package/web/assets/{ChannelsPage-CyT7oDYZ.js → ChannelsPage-C6HqgnP7.js} +1 -1
  8. package/web/assets/{ChatAppearancePage-B6Dzj2Bj.js → ChatAppearancePage-BRlvWkJX.js} +1 -1
  9. package/web/assets/{ChatHistoryPage-Cq20l93c.js → ChatHistoryPage-D3jSE4oY.js} +1 -1
  10. package/web/assets/{ChatPage-DgiS-Qj_.js → ChatPage-BfG3KbJi.js} +3 -3
  11. package/web/assets/{ConfigPage-CgrWdzb5.js → ConfigPage-CshLFv2D.js} +1 -1
  12. package/web/assets/{DesktopWindowControls-D8axeuEx.js → DesktopWindowControls-BZu-eiS1.js} +1 -1
  13. package/web/assets/{FeaturePage-BB1TeMlr.js → FeaturePage-DD_32h19.js} +1 -1
  14. package/web/assets/{FileAttachmentPreview-DPjT_iYk.js → FileAttachmentPreview-DDX_cRzm.js} +1 -1
  15. package/web/assets/{FloatingWidgets-FI1S4hdn.js → FloatingWidgets-Dc4Lhl5d.js} +1 -1
  16. package/web/assets/{FocusRuntimeControls-CvAx-KDV.js → FocusRuntimeControls-CkYJXBrP.js} +1 -1
  17. package/web/assets/{GitDiffViewer-DwFfeFOA.js → GitDiffViewer-DeVUAwce.js} +1 -1
  18. package/web/assets/{ManageProjectsDialog-BSLNf6qD.js → ManageProjectsDialog-DPzESWUB.js} +1 -1
  19. package/web/assets/{MarkdownMessage-NK7Ixb4Y.js → MarkdownMessage-BfSy1Cg4.js} +1 -1
  20. package/web/assets/{McpPage-Cn-yDgC5.js → McpPage-CcJDe2nE.js} +1 -1
  21. package/web/assets/MemoryEvolution-Cwdreg5P.js +1 -0
  22. package/web/assets/{MemoryPage-ZwoG_oj6.js → MemoryPage-BkALQ2WN.js} +2 -2
  23. package/web/assets/{MobileNavigation-DK5a0kZU.js → MobileNavigation-C1mjjmqO.js} +1 -1
  24. package/web/assets/{MorePage-BL8nDnTQ.js → MorePage-C7kCRfpo.js} +1 -1
  25. package/web/assets/{NewFolderDialog-COkq83LW.js → NewFolderDialog-sqiEXqxJ.js} +1 -1
  26. package/web/assets/{PageHeader-BBTCMqXc.js → PageHeader-DDaW4Sdv.js} +1 -1
  27. package/web/assets/{PhoneDrawer-BcPKJWl-.js → PhoneDrawer-Be7C0xLf.js} +1 -1
  28. package/web/assets/{PhoneMenuButton-D6vdTZdF.js → PhoneMenuButton-1dPMDaRV.js} +1 -1
  29. package/web/assets/{PhoneTopBar-MqNeI69v.js → PhoneTopBar-BLXoPO6P.js} +1 -1
  30. package/web/assets/{PluginsPage-Bp71HpKD.js → PluginsPage-Bjp82DPO.js} +1 -1
  31. package/web/assets/{SafeModePrompt-CpvvU5wL.js → SafeModePrompt-D_OCmR6G.js} +1 -1
  32. package/web/assets/{SchedulesPage-Drs10rEV.js → SchedulesPage-DCOhjQ8W.js} +1 -1
  33. package/web/assets/{SessionBrowserPane-DjtB4MCI.js → SessionBrowserPane-Cvmqo12R.js} +2 -2
  34. package/web/assets/{SessionContextPanel-ETfnp4pT.js → SessionContextPanel-B9KtrMwl.js} +2 -2
  35. package/web/assets/{SessionHome-CHBw3ZvP.js → SessionHome-DMAZBF3M.js} +1 -1
  36. package/web/assets/{SessionInspector-DVaRflQy.js → SessionInspector-DfinUUs5.js} +1 -1
  37. package/web/assets/{SessionShell-CwfQAX7i.js → SessionShell-BxYZQh_O.js} +1 -1
  38. package/web/assets/{SettingsSidebar-FgC-tlY2.js → SettingsSidebar-DWXc-Z4_.js} +1 -1
  39. package/web/assets/{ShortcutHelpDialog-DKbIkUnk.js → ShortcutHelpDialog-QBYqmifG.js} +1 -1
  40. package/web/assets/{ShortcutKeys-BuHXNKVW.js → ShortcutKeys-B6hllpKE.js} +1 -1
  41. package/web/assets/{SidebarUpdateStatus-LKwNKESF.js → SidebarUpdateStatus-C-ebi4wI.js} +1 -1
  42. package/web/assets/{SkillsPage-BbnerW44.js → SkillsPage-CcNononn.js} +1 -1
  43. package/web/assets/{TaskProcessesPane-B2fyZEK9.js → TaskProcessesPane-D442bSux.js} +1 -1
  44. package/web/assets/{TaskTerminalView-CKApgF75.js → TaskTerminalView-B4fD3kVF.js} +1 -1
  45. package/web/assets/{TerminalPanel-D03WycYm.js → TerminalPanel-64E97AR4.js} +1 -1
  46. package/web/assets/{WebDesktopPet-K2dbcbnQ.js → WebDesktopPet-DUpnoJ1_.js} +1 -1
  47. package/web/assets/{WorkflowsPage-CmzftCtz.js → WorkflowsPage-Cj0mQmb3.js} +1 -1
  48. package/web/assets/{WorkspacePicker-DbdbTOV2.js → WorkspacePicker-_dbgAw5b.js} +1 -1
  49. package/web/assets/{api-BW_X0FMZ.js → api-_MWfl2VL.js} +1 -1
  50. package/web/assets/{app-update-DYFXTosD.js → app-update-CJSjwHEp.js} +1 -1
  51. package/web/assets/{approval-confirm-DQ5N_lJB.js → approval-confirm-D9j-l9WE.js} +1 -1
  52. package/web/assets/{board-projects-CrejrMrn.js → board-projects-BI5ssHIa.js} +1 -1
  53. package/web/assets/{bots-store-CNXTx3UY.js → bots-store-D8M80DQa.js} +1 -1
  54. package/web/assets/{chat-api-Bo6nhq40.js → chat-api-9V8j4rSS.js} +1 -1
  55. package/web/assets/{client-store-DzgOPMlh.js → client-store-xZC2AfqC.js} +1 -1
  56. package/web/assets/{config-search-BiQmWst4.js → config-search-VE6brXfx.js} +1 -1
  57. package/web/assets/{dialog-DFZX_Dek.js → dialog-BgFAhLng.js} +1 -1
  58. package/web/assets/{events-PfANjkHx.js → events-C96FsPEU.js} +1 -1
  59. package/web/assets/{focus-session-composer-bits-C_LOpJH_.js → focus-session-composer-bits-DJHZmmrf.js} +1 -1
  60. package/web/assets/{folder-paths-aRRH_MYq.js → folder-paths-BguW7FsR.js} +1 -1
  61. package/web/assets/{hosts-lvoPwC3T.js → hosts-D2X7ud3S.js} +1 -1
  62. package/web/assets/i18n-zKD1z9i9.js +1 -0
  63. package/web/assets/{index-D_zLThH_.js → index-CwdjZZLG.js} +2 -2
  64. package/web/assets/{memory-api-DkPje--t.js → memory-api-DilYLnpG.js} +1 -1
  65. package/web/assets/{mount-app-7pFSwVLO.js → mount-app-Dc-WeJ9N.js} +3 -3
  66. package/web/assets/{permission-rules-api-CAJsSBA5.js → permission-rules-api-CW4GK6hJ.js} +1 -1
  67. package/web/assets/{pick-system-directory-yk6L7wR2.js → pick-system-directory-UTgPstWX.js} +1 -1
  68. package/web/assets/{placements-CMrgmg3t.js → placements-Cw2TcTmd.js} +2 -2
  69. package/web/assets/{popover--q2hs_pT.js → popover-Cw7QFeII.js} +1 -1
  70. package/web/assets/{public-DkqrpWXx.js → public-4OSY9BE4.js} +2 -2
  71. package/web/assets/{public-DWbrDr0p.js → public-DaL-1TT_.js} +1 -1
  72. package/web/assets/{public-62LVX7HU.js → public-DdhGlwHC.js} +1 -1
  73. package/web/assets/{public-components-DHMvCgH2.js → public-components-C0KUBrxH.js} +1 -1
  74. package/web/assets/public-diff-ooK8-fn0.js +1 -0
  75. package/web/assets/public-events-ntCr-b1Y.js +1 -0
  76. package/web/assets/{public-flags-D9LdpQwJ.js → public-flags-D6y-DU98.js} +1 -1
  77. package/web/assets/{public-greeting-DEKYruJJ.js → public-greeting-JGqTdWhf.js} +1 -1
  78. package/web/assets/{public-session-B9UHA6rN.js → public-session-fPM64rB7.js} +1 -1
  79. package/web/assets/{public-sidebar-Lne86i_K.js → public-sidebar-CvLw1vam.js} +1 -1
  80. package/web/assets/{runtime-capabilities-store-BNM5Ug-5.js → runtime-capabilities-store-CWJvmV83.js} +1 -1
  81. package/web/assets/{safe-mode-instance-DnTP7EUr.js → safe-mode-instance-Dz4-ObZg.js} +1 -1
  82. package/web/assets/safe-mode-sentinel-Bg8pbnu-.js +1 -0
  83. package/web/assets/{session-change-summary-api-DMTwGz7o.js → session-change-summary-api-C3QE98fZ.js} +1 -1
  84. package/web/assets/{session-home-DUpZt2dn.js → session-home-CLGrhgld.js} +1 -1
  85. package/web/assets/{session-organization-api-BGyp66Uv.js → session-organization-api-B2UGOx0B.js} +1 -1
  86. package/web/assets/{session-scope-DZITSvZr.js → session-scope-okdygSiV.js} +1 -1
  87. package/web/assets/{session-tree-actions-CRWyFqAD.js → session-tree-actions-9m9DHqIx.js} +1 -1
  88. package/web/assets/{session-tree-summary-HTmAo_9V.js → session-tree-summary-u-RSxXXY.js} +1 -1
  89. package/web/assets/{shortcuts-D72gQCwH.js → shortcuts-CVPFuAiJ.js} +1 -1
  90. package/web/assets/{side-chat-context-D1hZOT7g.js → side-chat-context-By5GbAvl.js} +4 -4
  91. package/web/assets/{sidebar-sj8X80Y9.js → sidebar-BWHi3RGN.js} +1 -1
  92. package/web/assets/{sidebar-store-CXZ7QrOr.js → sidebar-store-CLA6EfOm.js} +1 -1
  93. package/web/assets/{speech-session-D2GQEOAL.js → speech-session-CFUz5f6J.js} +1 -1
  94. package/web/assets/{startup-queries-CuEXV1Zu.js → startup-queries-Xa-I9BT7.js} +1 -1
  95. package/web/assets/{use-i18n-_vdxObu5.js → use-i18n-CIheiCov.js} +1 -1
  96. package/web/assets/{use-open-bot-BTxzOAbZ.js → use-open-bot-zjJ_Tnfv.js} +1 -1
  97. package/web/assets/{use-studio-actions-CbMHRZpd.js → use-studio-actions-BiRUtcRX.js} +1 -1
  98. package/web/assets/{useCatalogProjects-BEkCpADy.js → useCatalogProjects-CbyrRuIn.js} +1 -1
  99. package/web/assets/{useNewProjectPicker-CUtLjwYE.js → useNewProjectPicker-6iK1xIT3.js} +2 -2
  100. package/web/assets/{useNow-eQeBCqQk.js → useNow-CE8ZJGxH.js} +1 -1
  101. package/web/assets/{usePhoneShell-DZHZWXnN.js → usePhoneShell-sWQz-gv8.js} +1 -1
  102. package/web/assets/{useSessionListQuery-BoUzmjZC.js → useSessionListQuery-K7Hh_V_2.js} +1 -1
  103. package/web/assets/{useSessionRowActions-DCqDrGZY.js → useSessionRowActions-Geuo0bzR.js} +1 -1
  104. package/web/assets/{useSidebarModel-CZAfH4Fa.js → useSidebarModel-BuyZjTgh.js} +1 -1
  105. package/web/assets/{web-preview-XrRFo42l.js → web-preview-0hEXH_IN.js} +1 -1
  106. package/web/assets/{web-preview-events-Ba6duwGi.js → web-preview-events-B5w8DSl2.js} +1 -1
  107. package/web/assets/{workspace-order-store-Ao4OZ13V.js → workspace-order-store-GwJH1aiS.js} +1 -1
  108. package/web/index.html +1 -1
  109. package/web/assets/MemoryEvolution-B8IeSLcd.js +0 -1
  110. package/web/assets/i18n-EVP8yIdy.js +0 -1
  111. package/web/assets/public-diff-WjbTu91T.js +0 -1
  112. package/web/assets/public-events-CTdTIu5Q.js +0 -1
  113. package/web/assets/safe-mode-sentinel-DOhqH4gj.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-_vdxObu5.js";import{t as i}from"./useQuery-DdcpUQhO.js";import{i as a}from"./runtime-capabilities-CHYOF_hE.js";import{t as o}from"./runtime-capabilities-store-BNM5Ug-5.js";import{t as s}from"./createLucideIcon-Cd-3GVxJ.js";import{a as c,i as l}from"./permission-rules-api-CAJsSBA5.js";import{t as u}from"./bot-B3TaBp_T.js";import{t as d}from"./check-2vYc6QaP.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,t as ee}from"./SessionBrowserPane-DjtB4MCI.js";import{c as y}from"./focus-session-composer-bits-C_LOpJH_.js";import{t as te}from"./earth-Ddy13fHh.js";import{t as b}from"./ellipsis-CfGKfbq6.js";import{o as ne}from"./GitDiffViewer-DwFfeFOA.js";import{R as x,c as re,g as S,s as C,v as w}from"./side-chat-context-D1hZOT7g.js";import{t as ie}from"./git-branch-N7LGjtzt.js";import{n as ae,t as T}from"./undo-2-C-xQ0UVT.js";import{t as oe}from"./message-square-SKjZyY3v.js";import{t as se}from"./plus-fQbSqB1n.js";import{t as E}from"./refresh-cw-TbWxTY4K.js";import{t as ce}from"./square-terminal-BVG6cUT1.js";import{t as le}from"./wrench-6pg6_bqI.js";import{t as ue}from"./x-07u4-129.js";import{c as D,i as O,p as de,r as fe,t as k}from"./dropdown-menu-Ds0gD8S8.js";import{i as pe,n as me,t as he}from"./popover--q2hs_pT.js";import{t as ge}from"./segmented-control-xkrEOP_d.js";import{t as A}from"./utils-C8uzG5AZ.js";import{t as j}from"./button-CCcCN8tE.js";import{t as _e}from"./chat-api-Bo6nhq40.js";import{a as M,r as N}from"./format-DMJQzoZ7.js";import{t as P}from"./StatusGlyph-1KgitlUg.js";import{s as ve}from"./run-activity-CwfO0cui.js";import{t as ye}from"./session-change-summary-api-DMTwGz7o.js";import{n as F,t as I}from"./PageState-Cz6vFMXv.js";import{i as be,n as L,r as xe}from"./MarkdownMessage-NK7Ixb4Y.js";import{t as R}from"./route-context-DvWDul4T.js";import"./web-preview-XrRFo42l.js";import{n as Se,r as z}from"./terminal-context-aIsIJPn8.js";var B=s(`folder-search`,[[`path`,{d:`M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1`,key:`1bw5m7`}],[`path`,{d:`m21 21-1.9-1.9`,key:`1g2n9r`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}]]),Ce=s(`panel-right-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m8 9 3 3-3 3`,key:`12hl5m`}]]),V=e(t(),1),H=n(),U=new Set([`queued`,`starting`,`running`]),we=new Set([`starting`,`running`,`stopping`]);function W(e){return typeof e==`string`?e.trim():``}function G(e,t,n){let r=new Map;for(let i of e){if(i?.type!==t)continue;let e=n(i);e&&r.set(String(e.id||r.size),e)}return[...r.values()]}function Te({startedAt:e}){let[t,n]=(0,V.useState)(()=>Date.now());(0,V.useEffect)(()=>{let e=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(e)},[]);let r=ve(e,null,t);return r?(0,H.jsx)(`span`,{className:`flex-none font-mono text-xs text-content-muted tabular-nums`,children:y(r)}):null}function Ee(e,t){let n=t?G(e,`tool`,e=>e).filter(e=>e.status===`running`):[],r=G(e,`agent`,e=>e.agent&&typeof e.agent==`object`?e.agent:null).filter(e=>U.has(String(e.status)));return n.length+r.length}function De({sessionId:e,streaming:t,activity:n}){let{t:i}=r(),a=z(e),o=[...t?G(n,`tool`,e=>e).filter(e=>e.status===`running`).map(e=>{let t=e.args||{};return{key:`tool:${String(e.id)}`,icon:(0,H.jsx)(le,{size:14,"aria-hidden":`true`}),name:W(e.name)||i(`board:inspector.runningTool`),detail:W(t.command)||W(t.path)||W(t.file_path),startedAt:W(e.startedAt),status:i(`board:inspector.runningStatus`)}}):[],...G(n,`agent`,e=>e.agent&&typeof e.agent==`object`?e.agent:null).filter(e=>U.has(String(e.status))).map(e=>({key:`agent:${String(e.id)}`,icon:(0,H.jsx)(u,{size:14,"aria-hidden":`true`}),name:W(e.title)||W(e.taskName)||i(`board:inspector.runningAgent`),detail:W(e.message),startedAt:W(e.startedAt),status:e.status===`queued`?i(`board:inspector.runningQueued`):i(`board:inspector.runningStatus`)})),...a.filter(e=>we.has(e.status)).map(e=>({key:`terminal:${e.id}`,icon:(0,H.jsx)(ce,{size:14,"aria-hidden":`true`}),name:e.profileId||i(`board:inspector.terminal`),detail:e.cwd||``,status:e.status===`stopping`?i(`terminal:workspace.stopping`):i(`board:inspector.runningStatus`)}))];return(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto p-3`,"data-inspector-running":!0,children:[o.length?(0,H.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-px p-0`,children:o.map(e=>(0,H.jsxs)(`li`,{className:`grid min-w-0 grid-cols-[14px_minmax(0,1fr)_auto] items-start gap-2 py-1.5 text-xs`,"data-running-item":e.key.split(`:`)[0],children:[(0,H.jsx)(`span`,{className:`mt-0.5 text-content-secondary`,children:e.icon}),(0,H.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[(0,H.jsx)(`strong`,{className:`truncate text-[13px] font-medium text-content`,children:e.name}),e.detail&&(0,H.jsx)(`span`,{className:`min-w-0 truncate font-mono text-content-muted`,title:e.detail,children:e.detail})]}),(0,H.jsxs)(`span`,{className:`flex flex-none items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-content-muted`,children:e.status}),(0,H.jsx)(Te,{startedAt:e.startedAt})]})]},e.key))}):(0,H.jsx)(I,{compact:!0,title:i(`board:inspector.runningEmpty`)}),(0,H.jsx)(`p`,{className:`mt-3 text-xs leading-relaxed text-content-faint`,children:i(`board:inspector.runningHint`)})]})}var K={running:{kind:`run`,color:`text-st-run`},starting:{kind:`run`,color:`text-st-run`},queued:{kind:`queued`,color:`text-st-queue`},completed:{kind:`done`,color:`text-st-done`},failed:{kind:`failed`,color:`text-st-fail`},interrupted:{kind:`stopped`,color:`text-st-queue`},blocked:{kind:`queued`,color:`text-st-queue`}};function q(e,t){return t(e===`queued`?`chat:agentRunActivity.teamTaskQueued`:e===`starting`?`chat:agentRunActivity.teamTaskStarting`:e===`running`?`chat:agentRunActivity.teamTaskRunning`:e===`completed`?`chat:agentRunActivity.teamTaskCompleted`:e===`failed`?`chat:agentRunActivity.teamTaskFailed`:e===`interrupted`?`chat:agentRunActivity.teamTaskInterrupted`:e===`blocked`?`chat:agentRunActivity.teamTaskBlocked`:`chat:agentRunActivity.teamTaskStatusUpdated`)}function Oe(e,t){return e.status===`active`?e.mode===`team`?t(`chat:focusSession.runningAsTeam`):t(`chat:focusSession.runningAutonomously`):e.status===`paused`?t(`chat:focusSession.goalPaused`):e.status===`complete`?t(`chat:focusSession.goalComplete`):e.status===`budget_limited`?t(`chat:focusSession.goalReachedItsBudget`):``}function J({title:e,children:t}){return(0,H.jsxs)(`section`,{className:`grid min-w-0 gap-2`,"aria-label":e,children:[(0,H.jsx)(`h3`,{className:`text-xs font-semibold text-content-secondary`,children:e}),t]})}function Y({status:e,name:t,detail:n,t:r}){let i=K[String(e)]??{kind:`queued`,color:`text-st-queue`};return(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2 py-1.5 text-xs`,children:[(0,H.jsx)(P,{status:i.kind,className:`mt-px size-3.5 ${i.color}`}),(0,H.jsxs)(`span`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(`strong`,{className:`min-w-0 truncate font-medium text-content`,children:t}),(0,H.jsx)(`span`,{className:`flex-none text-content-muted`,children:q(e,r)})]}),n&&(0,H.jsx)(`span`,{className:`min-w-0 break-words text-content-muted`,children:n})]})]})}function ke(e){let t=new Map;for(let n of e){if(n?.type!==`agent`||!n.agent||typeof n.agent!=`object`)continue;let e=n.agent,r=String(e.id||e.taskName||t.size);t.set(r,e)}return[...t.values()]}function Ae({plan:e,streaming:t,goal:n,team:i,activity:a}){let{t:o}=r(),s=Array.isArray(i?.tasks)?i.tasks:[],c=ke(a),l=!!(n?.id&&String(n.objective||``).trim()),u=!!e?.items?.length;if(!l&&!u&&!s.length&&!c.length)return(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:(0,H.jsx)(I,{compact:!0,icon:ae,title:o(`chat:sessionContext.planEmpty`)})});let d=Number(n?.mode===`team`?n?.teamTokenBudget:n?.tokenBudget)||0;return(0,H.jsxs)(`div`,{className:`grid min-h-0 flex-1 content-start gap-5 overflow-y-auto p-3`,"data-inspector-plan":!0,children:[l&&n&&(0,H.jsx)(J,{title:o(`board:inspector.goal`),children:(0,H.jsxs)(`div`,{className:`grid gap-1.5 rounded-md border border-stroke-soft bg-surface-subtle p-3 text-xs`,children:[(0,H.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-content`,children:String(n.objective)}),(0,H.jsxs)(`p`,{className:`flex flex-wrap items-center gap-x-2 text-content-muted tabular-nums`,children:[(0,H.jsx)(`span`,{children:Oe(n,o)}),(0,H.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,H.jsx)(`span`,{children:d>0?o(`chat:focusSession.usedBudgetTokensUsed`,{used:N(n.tokensUsed),budget:N(d)}):o(`chat:focusSession.usedUnlimitedGoalTokens`,{used:N(n.tokensUsed)})})]})]})}),u&&(0,H.jsx)(J,{title:o(`board:inspector.plan`),children:(0,H.jsx)(h,{plan:e,running:t})}),s.length>0&&(0,H.jsx)(J,{title:o(`board:inspector.team`),children:(0,H.jsx)(`ul`,{className:`divide-y divide-stroke-soft`,children:s.map((e,t)=>(0,H.jsx)(Y,{status:e.status,name:e.taskName||o(`chat:agentRunActivity.subagent`),detail:e.error||e.output||``,t:o},e.id||`${e.taskName}-${t}`))})}),c.length>0&&(0,H.jsx)(J,{title:o(`board:inspector.subAgents`),children:(0,H.jsx)(`ul`,{className:`divide-y divide-stroke-soft`,children:c.map((e,t)=>(0,H.jsx)(Y,{status:e.status,name:String(e.taskName||``).trim()||o(`chat:agentRunActivity.subagent`),detail:String(e.error||e.message||``).trim(),t:o},String(e.id||t)))})})]})}var X=100;function je(e){let t=e.trim().toUpperCase();return t===`??`||t.includes(`A`)?`created`:t.includes(`D`)?`deleted`:t.includes(`R`)?`renamed`:t.includes(`M`)?`modified`:`other`}var Me={modified:`M`,created:`A`,deleted:`D`,renamed:`R`,other:`·`},Z={modified:`text-content-secondary`,created:`text-st-done`,deleted:`text-st-fail`,renamed:`text-content-secondary`,other:`text-content-muted`};function Ne(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);return n<0?{directory:``,name:t}:{directory:t.slice(0,n+1),name:t.slice(n+1)}}function Pe(e,t){return/^(?:[a-zA-Z]:[\\/]|\/|\\\\)/.test(t)?t:`${e.replace(/[\\/]+$/,``)}/${t}`}function Q(e,t){window.dispatchEvent(new CustomEvent(R,{detail:{message:e,tone:t}}))}function $({added:e,removed:t}){return e===null||t===null?null:(0,H.jsxs)(`span`,{className:`flex-none font-mono text-xs tabular-nums`,children:[(0,H.jsxs)(`span`,{className:`text-success`,children:[`+`,e]}),` `,(0,H.jsxs)(`span`,{className:`text-danger`,children:[`−`,t]})]})}function Fe({status:e,children:t}){let{t:n}=r();return(0,H.jsxs)(`footer`,{className:`mt-auto flex h-10 shrink-0 items-center gap-2 border-t border-stroke-soft pr-1.5 pl-3 text-xs text-content-muted`,"data-changes-footer":!0,children:[(0,H.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5 truncate`,children:e}),(0,H.jsxs)(k,{children:[(0,H.jsx)(de,{asChild:!0,children:(0,H.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`pointer-coarse:size-11`,"aria-label":n(`board:changes.more`),title:n(`board:changes.more`),"data-changes-more":!0,children:(0,H.jsx)(b,{"aria-hidden":`true`})})}),(0,H.jsx)(fe,{align:`end`,side:`top`,className:`min-w-48`,children:t})]})]})}function Ie({status:e}){let{t}=r(),n=t(e===`created`?`board:changes.statusCreated`:e===`deleted`?`board:changes.statusDeleted`:e===`renamed`?`board:changes.statusRenamed`:`board:changes.statusModified`);return(0,H.jsxs)(`span`,{className:A(`w-3.5 flex-none text-center font-mono text-xs font-semibold`,Z[e]),title:n,children:[(0,H.jsx)(`span`,{"aria-hidden":`true`,children:Me[e]}),(0,H.jsx)(`span`,{className:`sr-only`,children:n})]})}function Le({files:e,selected:t,label:n,onSelect:r}){let i=(0,V.useRef)(null);return(0,H.jsxs)(`ul`,{ref:i,"aria-label":n,className:`max-h-[34%] min-h-11 shrink-0 overflow-y-auto border-b border-stroke-soft py-1`,onKeyDown:e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=[...i.current?.querySelectorAll(`[data-change-file]`)??[]],n=t.findIndex(e=>e===document.activeElement),a=t[e.key===`Home`?0:e.key===`End`?t.length-1:Math.min(t.length-1,Math.max(0,n+(e.key===`ArrowDown`?1:-1)))];a&&(e.preventDefault(),a.focus(),r(a.dataset.changeFile||``))},"data-change-list":!0,children:[e.slice(0,X).map(e=>{let n=e.path===t,{directory:i,name:a}=Ne(e.path);return(0,H.jsx)(`li`,{className:`px-1`,children:(0,H.jsxs)(`button`,{type:`button`,title:e.path,"aria-label":[e.path,Me[e.status],e.added!==null&&e.removed!==null?`+${e.added} −${e.removed}`:``,e.note||``].filter(Boolean).join(` `),"aria-current":n?`true`:void 0,"data-change-file":e.path,className:A(`flex h-8 w-full min-w-0 items-center gap-2 rounded-sm px-2 text-left text-xs transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus max-[650px]:h-11 pointer-coarse:h-11`,n?`bg-solid shadow-[inset_0_0_0_1px_var(--stroke-strong)]`:`hover:bg-surface-hover`),onClick:()=>r(e.path),children:[(0,H.jsx)(Ie,{status:e.status}),(0,H.jsxs)(`span`,{className:`flex min-w-0 flex-1 font-mono`,children:[(0,H.jsx)(`span`,{className:`min-w-0 truncate text-content-muted`,children:i}),(0,H.jsx)(`span`,{className:`flex-none text-content`,children:a})]}),e.note&&(0,H.jsx)(`span`,{className:`flex-none text-content-muted`,children:e.note}),(0,H.jsx)($,{added:e.added,removed:e.removed})]})},e.path)}),e.length>X&&(0,H.jsx)(`li`,{className:`px-3 py-1.5 text-xs text-content-muted tabular-nums`,children:(0,H.jsx)(Re,{count:e.length-X})})]})}function Re({count:e}){let{t}=r();return(0,H.jsx)(H.Fragment,{children:t(`chat:focusSession.gitMoreFiles`,{count:e})})}var ze=600;function Be({sessionId:e,file:t,scope:n,revision:i,view:a,onViewChange:o,footer:s}){let{t:c}=r(),u=l(e=>e.diffMode),d=l(e=>e.setDiffMode),f=(0,V.useRef)(null),[m,h]=(0,V.useState)(0);(0,V.useLayoutEffect)(()=>{let e=f.current;if(!e)return;let t=()=>h(e.clientWidth);t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);let g=m===0||m>=ze,_=g?u:`unified`,v=g?void 0:c(`board:changes.splitTooNarrow`);return(0,H.jsxs)(`section`,{ref:f,className:`flex min-h-0 flex-1 flex-col`,"aria-label":t.path,"data-change-detail":t.path,children:[(0,H.jsxs)(`header`,{className:`flex min-h-10 shrink-0 items-center gap-2 border-b border-stroke-soft py-1.5 pr-2 pl-3`,children:[(0,H.jsx)(Ie,{status:t.status}),(0,H.jsx)(`strong`,{className:`min-w-0 flex-1 truncate font-mono text-xs font-semibold text-content`,title:t.path,children:t.path}),(0,H.jsx)($,{added:t.added,removed:t.removed}),(0,H.jsx)(ge,{size:`sm`,"aria-label":c(`board:changes.diffView`),title:v,"aria-description":v,value:_,onValueChange:d,options:[{value:`unified`,label:c(`board:changes.unified`)},{value:`split`,label:c(`board:changes.split`),disabled:!g}]})]}),(0,H.jsx)(p,{sessionId:e,path:t.path,scope:n,revision:i,mode:_,fill:!0,position:a?.reading?.[t.path],onReading:e=>o?.({reading:{...a?.reading,[t.path]:e}})},`${n}:${t.path}`),(0,H.jsx)(`footer`,{className:`flex min-h-10 shrink-0 flex-wrap items-center gap-1 border-t border-stroke-soft py-1 pr-1.5 pl-3 text-xs`,children:s})]})}function Ve({cwd:e,path:t}){let{t:n}=r();if(!window.pisperDesktop||!e)return null;let i=Pe(e,t);return(0,H.jsxs)(j,{type:`button`,variant:`ghost`,size:`sm`,className:`max-[650px]:h-11`,onClick:async()=>{try{await xe(i,be),Q(n(`common:markdownMessage.revealLocalPathOk`,{path:t}),`info`)}catch(e){Q(e instanceof L&&e.reason===`unavailable`?n(`common:markdownMessage.revealLocalPathUnavailable`):e instanceof L&&e.reason===`timeout`?n(`common:markdownMessage.revealLocalPathTimeout`):n(`common:markdownMessage.revealLocalPathFailed`,{path:t}),`error`)}},children:[(0,H.jsx)(B,{"aria-hidden":`true`}),n(`chat:chatMessage.fileActionReveal`)]})}function He(e){return{path:e.path,status:e.status===`created`?`created`:e.status===`deleted`?`deleted`:`modified`,added:e.added,removed:e.removed}}function Ue(e,t){if(!e)return;let n=[];return e.lineEnding&&n.push(t(`chat:focusSession.fileChangesLineEnding`,{from:e.lineEnding[0].toUpperCase(),to:e.lineEnding[1].toUpperCase()})),e.bom?.[1]?n.push(t(`chat:focusSession.fileChangesBomAdded`)):e.bom&&n.push(t(`chat:focusSession.fileChangesBomRemoved`)),t(`chat:focusSession.fileChangesFormatOnly`,{detail:n.join(` · `)})}function We({sessionId:e,cwd:t,streaming:n,view:i,onViewChange:a,requestConfirm:o}){let{t:s,language:c}=r(),{changes:l,loading:u,running:f,snapshotRevision:p,writesDisabled:m,pendingCount:h,reversibleCount:g,displayedError:v,notice:ee,runAction:y,refresh:te}=_({sessionId:e,streaming:n,requestConfirm:o}),b=l?.files??[],ne=i?.expandedFiles?.[0],x=b.find(e=>e.path===ne)??b[0],re=e=>a?.({expandedFiles:[e]}),S=(e,t)=>f?.kind===e&&f.path===t,C=n?s(`chat:focusSession.gitWaitForRunToFinish`):void 0;return(0,H.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col`,"aria-label":s(`chat:focusSession.fileChanges`),"aria-busy":u||!!f,"data-changes-scope":`session`,children:[(0,H.jsx)(`header`,{className:`flex min-h-10 shrink-0 items-center gap-1.5 border-b border-stroke-soft py-1 pr-1.5 pl-3`,children:(0,H.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-content-secondary`,children:[(0,H.jsx)(`span`,{className:`min-w-0 truncate`,children:s(`board:changes.sessionSummary`,{count:l?.summary.files??0})}),l&&l.summary.files>0&&(0,H.jsx)($,{added:l.summary.added,removed:l.summary.removed})]})}),v&&(0,H.jsx)(`p`,{role:`alert`,className:`shrink-0 px-3 pt-2 text-xs text-st-fail`,children:v}),ee&&!v&&(0,H.jsx)(`p`,{role:`status`,className:`shrink-0 px-3 pt-2 text-xs text-content-secondary`,children:ee}),u&&!l?(0,H.jsx)(F,{kind:`loading`,title:s(`chat:focusSession.gitLoading`)}):b.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Le,{files:b.map(e=>({...He(e),note:e.reverted?s(`chat:focusSession.fileChangesReverted`):e.approved?s(`chat:focusSession.fileChangesApproved`):Ue(e.formatChange,s)})),selected:x?.path??``,label:s(`board:changes.files`),onSelect:re}),x&&(0,H.jsx)(Be,{sessionId:e,file:He(x),scope:`task`,revision:p,view:i,onViewChange:a,footer:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`span`,{className:A(`mr-auto flex min-w-0 items-center gap-1.5 truncate`,x.approved?`text-st-done`:`text-content-muted`),"data-change-state":x.reverted?`reverted`:x.approved?`approved`:`pending`,children:[x.approved&&!x.reverted&&(0,H.jsx)(d,{className:`size-3.5 flex-none`,"aria-hidden":`true`}),x.reverted?s(`board:changes.revertedAt`,{time:M(x.changedAt,c)}):x.approved?s(`board:changes.approvedAt`,{time:M(x.changedAt,c)}):s(`board:changes.pendingAt`,{time:M(x.changedAt,c)})]}),x.pending&&!x.approved&&!x.reverted&&(0,H.jsxs)(j,{type:`button`,variant:`ghost`,size:`sm`,disabled:m,title:C,onClick:()=>void y({kind:`approve`,path:x.path}),children:[S(`approve`,x.path)?(0,H.jsx)(E,{className:`animate-spin`}):(0,H.jsx)(d,{}),s(`chat:focusSession.fileChangesApproveFile`)]}),(0,H.jsxs)(j,{type:`button`,variant:`ghost`,size:`sm`,disabled:m||x.reverted||!x.canRevert,title:C,onClick:()=>void y({kind:`revert`,path:x.path}),children:[S(`revert`,x.path)?(0,H.jsx)(E,{className:`animate-spin`}):(0,H.jsx)(T,{}),s(`board:changes.revertFile`)]}),(0,H.jsx)(Ve,{cwd:t,path:x.path})]})})]}):!v&&(0,H.jsx)(I,{compact:!0,title:s(`chat:focusSession.fileChangesEmpty`)}),(0,H.jsxs)(Fe,{status:f?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(E,{className:`size-3.5 flex-none animate-spin`,"aria-hidden":`true`}),f.kind===`approve`?s(`chat:focusSession.fileChangesApproveAll`):s(`board:changes.revertAll`)]}):h>0?s(`board:changes.pending`,{count:h}):null,children:[h>0&&(0,H.jsxs)(O,{disabled:m,title:C,onSelect:()=>void y({kind:`approve`}),children:[(0,H.jsx)(d,{}),s(`chat:focusSession.fileChangesApproveAll`)]}),(l?.summary.files??0)>0&&(0,H.jsxs)(O,{disabled:m||g===0,title:C??s(`chat:focusSession.fileChangesRevertAllDescription`),onSelect:()=>void y({kind:`revert`}),children:[(0,H.jsx)(T,{}),s(`board:changes.revertAll`)]}),(h>0||(l?.summary.files??0)>0)&&(0,H.jsx)(D,{}),(0,H.jsxs)(O,{disabled:u||!!f,onSelect:te,children:[(0,H.jsx)(E,{}),s(`chat:focusSession.gitRefresh`)]})]})]})}function Ge({sessionId:e,cwd:t,streaming:n,view:a,onViewChange:o}){let{t:s}=r(),c=i({queryKey:[`task-project-changes`,e,t,n],queryFn:({signal:t})=>_e.getVcsChanges(e,{signal:t})}),l=(0,V.useMemo)(()=>S(c.data?.diff||``,c.data?.files.map(e=>e.path)||[],c.data?.diffTruncated),[c.data]),u=c.error?.message||c.data?.error,d=(c.data?.files||[]).map(e=>({path:e.path,status:je(e.status),added:Object.hasOwn(l.files,e.path)?l.files[e.path].added:null,removed:Object.hasOwn(l.files,e.path)?l.files[e.path].removed:null})),f=a?.expandedFiles?.[0],p=d.find(e=>e.path===f)??d[0];return(0,H.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col`,"aria-label":s(`chat:workbench.projectChanges`),"aria-busy":c.isFetching,"data-changes-scope":`workspace`,children:[(0,H.jsxs)(`header`,{className:`flex min-h-10 shrink-0 items-center gap-1.5 border-b border-stroke-soft py-1 pr-1.5 pl-3`,children:[(0,H.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-content-secondary`,children:[(0,H.jsx)(`span`,{className:`min-w-0 truncate`,children:s(`board:changes.workspaceSummary`,{count:d.length})}),c.data?.isRepo&&!u&&d.length>0&&(0,H.jsx)($,{added:l.added,removed:l.removed})]}),c.data?.branch&&(0,H.jsxs)(`span`,{className:`inline-flex h-5.5 max-w-[40%] min-w-0 flex-none items-center gap-1 rounded-xs border border-stroke px-1.5 font-mono text-xs text-content-secondary`,title:t,children:[(0,H.jsx)(ie,{size:12,className:`flex-none`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`truncate`,children:c.data.branch})]})]}),c.isPending?(0,H.jsx)(F,{kind:`loading`,title:s(`chat:focusSession.gitLoading`)}):u?(0,H.jsx)(`p`,{role:`alert`,className:`p-3 text-xs text-st-fail`,children:u}):c.data?.isRepo?d.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Le,{files:d,selected:p?.path??``,label:s(`board:changes.files`),onSelect:e=>o?.({expandedFiles:[e]})}),p&&(0,H.jsx)(Be,{sessionId:e,file:p,scope:`project`,revision:c.dataUpdatedAt,view:a,onViewChange:o,footer:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`mr-auto min-w-0 truncate font-mono text-content-muted`,title:t,children:t}),(0,H.jsx)(Ve,{cwd:t,path:p.path})]})})]}):(0,H.jsx)(I,{compact:!0,title:s(`chat:focusSession.fileChangesEmpty`)}):(0,H.jsx)(I,{compact:!0,title:s(`chat:workbench.notRepository`)}),(0,H.jsx)(Fe,{status:c.isFetching?(0,H.jsx)(E,{className:`size-3.5 flex-none animate-spin`,"aria-hidden":`true`}):null,children:(0,H.jsxs)(O,{disabled:c.isFetching,onSelect:()=>void c.refetch(),children:[(0,H.jsx)(E,{}),s(`chat:focusSession.gitRefresh`)]})})]})}function Ke({sessionId:e,cwd:t,streaming:n,scope:i,onScopeChange:a,vcsAvailable:o,view:s,onViewChange:c,requestConfirm:l}){let{t:u}=r();return(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"data-inspector-changes":i,children:[(0,H.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-stroke-soft px-3 py-2`,children:(0,H.jsx)(ge,{size:`sm`,"aria-label":u(`board:inspector.changesScope`),value:i,onValueChange:a,options:[{value:`session`,label:u(`board:inspector.scopeSession`)},{value:`workspace`,label:u(`board:inspector.scopeWorkspace`),disabled:!o}]})}),s?i===`workspace`?(0,H.jsx)(Ge,{sessionId:e,cwd:t,streaming:n,view:s,onViewChange:c}):(0,H.jsx)(We,{sessionId:e,cwd:t,streaming:n,view:s,onViewChange:c,requestConfirm:l}):(0,H.jsx)(`p`,{role:`status`,className:`p-4 text-sm text-content-muted`,children:u(`chat:focusSession.gitLoading`)})]})}var qe=[];function Je(e,t,n){return e===`changes`?n===`workspace`?`changes`:`files`:e===`terminal`?t:e===`files`?`sources`:e===`preview`?`browser`:e===`side-chat`?`side-chat`:null}function Ye({panelId:e,sessionId:t,cwd:n,streaming:s,plan:u,goal:d,team:p,activity:h,planTab:_,sources:y,mode:b,requestConfirm:S,onClose:ie,onOpenComponents:T,componentTabs:E,autoFocus:le=!1}){let{t:D}=r(),O=b===`sheet`,de=Se(),fe=o(e=>e.capabilities),k=!!de&&a(fe,`terminal`),_e=a(fe,`vcs`),M=l(e=>e.tab),N=l(e=>e.setTab),P=l(e=>e.terminalView),ve=l(e=>e.setTerminalView),F=l(e=>e.changesView),be=l(e=>e.setChangesView),L=w(e=>e.sessions[t]?.pages)??qe,xe=L.some(e=>e.kind===`side-chat`),R=M===`side-chat`&&!xe||M===`plan`&&!_?`changes`:M,z=Je(R,P,F),B=z?L.find(e=>e.kind===z):void 0,U=!O&&E?E.tabs(n):[],[we,W]=(0,V.useState)(null),[G,Te]=(0,V.useState)(!1),K=U.some(e=>e.id===we)?we:null;(0,V.useEffect)(()=>W(null),[M]);let q=(0,V.useRef)(null);(0,V.useEffect)(()=>{q.current?.querySelector(`[role="tab"][aria-selected="true"]`)?.scrollIntoView?.({block:`nearest`,inline:`nearest`})},[R,K]);let Oe=(0,V.useRef)(le);(0,V.useEffect)(()=>{if(!Oe.current)return;let e=requestAnimationFrame(()=>q.current?.querySelector(`[role="tab"][aria-selected="true"]`)?.focus({preventScroll:!0}));return()=>cancelAnimationFrame(e)},[]),(0,V.useEffect)(()=>{if(!z||B||(z===`terminal`||z===`processes`)&&!k)return;let e=w.getState(),n=e.sessions[t]?.contentOpen??!1;e.update(t,z,{type:`add`,kind:z}),n||e.update(t,z,{type:`workspace`,contentOpen:!1})},[z,B,t,k]);let J=i({queryKey:[`session-change-summary`,t,s],queryFn:()=>ye(t),staleTime:1e4}),Y=J.data?.status===`known`?J.data.changedFiles??0:0,ke=Ee(h,s),X=[{id:`changes`,icon:ne,label:Y>0?D(`board:inspector.changesCount`,{count:Y}):D(`board:inspector.changes`)},{id:`terminal`,icon:ce,label:D(`board:inspector.terminal`)},{id:`running`,icon:c,label:ke?D(`board:inspector.runningCount`,{count:ke}):D(`board:inspector.running`)},{id:`files`,icon:x,label:D(`board:inspector.files`)},{id:`preview`,icon:te,label:D(`board:inspector.preview`)},..._?[{id:`plan`,icon:ae,label:D(`board:inspector.plan`)}]:[],...xe?[{id:`side-chat`,icon:oe,label:D(`board:inspector.sideChat`)}]:[]],je=e=>{B&&w.getState().update(t,B.kind,{type:`view`,id:B.id,patch:e})},Me=()=>{let n=L.find(e=>e.kind===`side-chat`);if(n&&w.getState().update(t,`side-chat`,{type:`close`,id:n.id}),N(`changes`),O){ie();return}requestAnimationFrame(()=>document.getElementById(`${e}-changes-tab`)?.focus())},Z=t=>`${e}-component-${t}-tab`,Ne=e=>{W(null),N(e)},Pe=t=>{if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(t.key))return;t.preventDefault();let n=[...X.map(t=>({fixed:t.id,id:`${e}-${t.id}-tab`})),...U.map(e=>({component:e.id,id:Z(e.id)}))],r=n.findIndex(e=>K?e.component===K:e.fixed===R),i=n[t.key===`Home`?0:t.key===`End`?n.length-1:(r+(t.key===`ArrowRight`?1:-1)+n.length)%n.length];i.component?W(i.component):i.fixed&&Ne(i.fixed),requestAnimationFrame(()=>document.getElementById(i.id)?.focus())},Q=(0,H.jsx)(`p`,{role:`status`,className:`p-4 text-sm text-content-muted`,children:D(`chat:focusSession.gitLoading`)}),$;if(K&&E)$=E.render(K,{sessionId:t,cwd:n});else if(R===`changes`)$=(0,H.jsx)(Ke,{sessionId:t,cwd:n,streaming:s,scope:F,onScopeChange:be,vcsAvailable:_e,view:B?.view,onViewChange:B?je:void 0,requestConfirm:S});else if(R===`terminal`)$=k?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-stroke-soft px-3 py-2`,children:(0,H.jsx)(ge,{size:`sm`,"aria-label":D(`board:inspector.terminalScope`),value:P,onValueChange:ve,options:[{value:`terminal`,label:D(`board:inspector.terminal`)},{value:`processes`,label:D(`board:inspector.processes`)}]})}),(0,H.jsx)(V.Suspense,{fallback:Q,children:B?P===`processes`?(0,H.jsx)(m,{sessionId:t,view:B.view,onViewChange:je,onOpenTerminal:e=>{let n=w.getState(),r=n.sessions[t]?.pages.find(e=>e.kind===`terminal`);r?n.update(t,`terminal`,{type:`resource`,id:r.id,resourceId:e}):n.update(t,`terminal`,{type:`open`,kind:`terminal`,resourceId:e}),ve(`terminal`)}}):(0,H.jsx)(f,{sessionId:t,cwd:n,terminalId:B.resourceId||void 0,onCreated:e=>w.getState().update(t,`terminal`,{type:`resource`,id:B.id,resourceId:e})},B.id):Q})]}):(0,H.jsx)(I,{compact:!0,icon:ce,title:D(`board:inspector.terminalUnavailable`)});else if(R===`files`)$=B?(0,H.jsx)(v,{sources:y,view:B.view,onViewChange:je}):Q;else if(R===`preview`){let e=s?C([...h]):null;$=B?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"data-inspector-preview":!0,children:[e&&(0,H.jsx)(`div`,{className:`max-h-[50%] shrink-0 overflow-y-auto border-b border-stroke-soft p-2`,children:(0,H.jsx)(re,{target:e,fallbackImage:e.previewImage,streaming:s})}),(0,H.jsx)(ee,{page:B,onChange:e=>w.getState().update(t,`browser`,{type:`browser`,id:B.id,...e})})]}):Q}else $=R===`plan`?(0,H.jsx)(Ae,{plan:u,streaming:s,goal:d,team:p,activity:h}):R===`running`?(0,H.jsx)(De,{sessionId:t,streaming:s,activity:h}):(0,H.jsx)(g,{parentId:t,active:!0});return(0,H.jsxs)(`section`,{id:e,"aria-label":D(`board:inspector.label`),"data-session-inspector":b,"data-inspector-tab":R,"data-inspector-component":K??void 0,className:`flex h-full min-h-0 w-full min-w-0 flex-col bg-panel text-content`,children:[(0,H.jsxs)(`header`,{className:A(`flex shrink-0 items-center gap-1 border-b border-stroke-soft pr-1.5 pl-2`,O?`h-[52px]`:b===`aside`?`h-[52px] [[data-custom-titlebar]_&]:h-11 [[data-custom-titlebar]_&]:pointer-coarse:h-[52px]`:`h-11 pointer-coarse:h-[52px]`),children:[(0,H.jsxs)(`div`,{ref:q,role:`tablist`,"aria-label":D(`board:inspector.tabs`),className:`flex min-w-0 flex-1 items-center gap-0.5 overflow-x-auto [scrollbar-width:none]`,onKeyDown:Pe,children:[X.map(({id:t,icon:n,label:r})=>{let i=!K&&t===R;return(0,H.jsxs)(`button`,{id:`${e}-${t}-tab`,type:`button`,role:`tab`,"aria-selected":i,"aria-controls":`${e}-body`,tabIndex:i?0:-1,"data-inspector-tab-id":t,className:A(`flex flex-none items-center gap-1.5 rounded-sm px-2 text-[13px] whitespace-nowrap transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus`,O?`h-11 min-w-11 justify-center px-2.5`:`h-8 pointer-coarse:h-11 pointer-coarse:min-w-11`,i?`bg-solid font-medium text-content shadow-edge ring-1 ring-stroke-strong ring-inset`:`text-content-secondary hover:bg-surface-hover hover:text-content`),onClick:()=>Ne(t),children:[!O&&(0,H.jsx)(n,{className:`size-3.5`,"aria-hidden":`true`}),r]},t)}),!K&&R===`side-chat`&&(0,H.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:A(O&&`size-11`),"aria-label":D(`board:inspector.closeTab`,{tab:D(`board:inspector.sideChat`)}),onClick:Me,children:(0,H.jsx)(ue,{"aria-hidden":`true`})}),!O&&(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`mx-1 h-4 w-px flex-none bg-stroke`}),U.map(({id:t,label:n})=>{let r=t===K;return(0,H.jsx)(`button`,{id:Z(t),type:`button`,role:`tab`,"aria-selected":r,"aria-controls":`${e}-body`,tabIndex:r?0:-1,"data-inspector-component-tab":t,className:A(`flex h-8 max-w-40 flex-none items-center rounded-sm px-2 text-[13px] whitespace-nowrap transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11 pointer-coarse:min-w-11`,r?`bg-solid font-medium text-content shadow-edge ring-1 ring-stroke-strong ring-inset`:`text-content-secondary hover:bg-surface-hover hover:text-content`),onClick:()=>W(t),children:(0,H.jsx)(`span`,{className:`truncate`,children:n})},t)})]}),!O&&(0,H.jsxs)(he,{open:G,onOpenChange:Te,children:[(0,H.jsx)(pe,{asChild:!0,children:(0,H.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`flex-none`,"aria-label":D(`board:inspector.add`),title:D(`board:inspector.add`),"data-inspector-component-add":!0,children:(0,H.jsx)(se,{"aria-hidden":`true`})})}),(0,H.jsxs)(me,{align:`end`,className:`w-64 text-xs`,children:[E?.addMenu?E.addMenu({cwd:n,onAdded:e=>{W(e),Te(!1)}}):(0,H.jsx)(`p`,{className:`text-content-secondary`,children:D(`board:inspector.addHint`)}),T&&(0,H.jsx)(j,{type:`button`,variant:`secondary`,size:`sm`,className:`self-start`,onClick:T,children:D(`board:inspector.openComponents`)})]})]}),(0,H.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:A(`flex-none`,O&&`size-11`),"aria-label":D(`board:inspector.close`),title:D(`board:inspector.close`),"aria-controls":e,onClick:ie,children:b===`aside`?(0,H.jsx)(Ce,{"aria-hidden":`true`}):(0,H.jsx)(ue,{"aria-hidden":`true`})})]}),(0,H.jsx)(`div`,{id:`${e}-body`,role:`tabpanel`,"aria-labelledby":K?Z(K):`${e}-${R}-tab`,className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:$})]})}export{Ye as SessionInspector};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CIheiCov.js";import{t as i}from"./useQuery-DdcpUQhO.js";import{i as a}from"./runtime-capabilities-CHYOF_hE.js";import{t as o}from"./runtime-capabilities-store-CWJvmV83.js";import{t as s}from"./createLucideIcon-Cd-3GVxJ.js";import{a as c,i as l}from"./permission-rules-api-CW4GK6hJ.js";import{t as u}from"./bot-B3TaBp_T.js";import{t as d}from"./check-2vYc6QaP.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,t as ee}from"./SessionBrowserPane-Cvmqo12R.js";import{c as y}from"./focus-session-composer-bits-DJHZmmrf.js";import{t as te}from"./earth-Ddy13fHh.js";import{t as b}from"./ellipsis-CfGKfbq6.js";import{o as ne}from"./GitDiffViewer-DeVUAwce.js";import{R as x,c as re,g as S,s as C,v as w}from"./side-chat-context-By5GbAvl.js";import{t as ie}from"./git-branch-N7LGjtzt.js";import{n as ae,t as T}from"./undo-2-C-xQ0UVT.js";import{t as oe}from"./message-square-SKjZyY3v.js";import{t as se}from"./plus-fQbSqB1n.js";import{t as E}from"./refresh-cw-TbWxTY4K.js";import{t as ce}from"./square-terminal-BVG6cUT1.js";import{t as le}from"./wrench-6pg6_bqI.js";import{t as ue}from"./x-07u4-129.js";import{c as D,i as O,p as de,r as fe,t as k}from"./dropdown-menu-Ds0gD8S8.js";import{i as pe,n as me,t as he}from"./popover-Cw7QFeII.js";import{t as ge}from"./segmented-control-xkrEOP_d.js";import{t as A}from"./utils-C8uzG5AZ.js";import{t as j}from"./button-CCcCN8tE.js";import{t as _e}from"./chat-api-9V8j4rSS.js";import{a as M,r as N}from"./format-DMJQzoZ7.js";import{t as P}from"./StatusGlyph-1KgitlUg.js";import{s as ve}from"./run-activity-CwfO0cui.js";import{t as ye}from"./session-change-summary-api-C3QE98fZ.js";import{n as F,t as I}from"./PageState-Cz6vFMXv.js";import{i as be,n as L,r as xe}from"./MarkdownMessage-BfSy1Cg4.js";import{t as R}from"./route-context-DvWDul4T.js";import"./web-preview-0hEXH_IN.js";import{n as Se,r as z}from"./terminal-context-aIsIJPn8.js";var B=s(`folder-search`,[[`path`,{d:`M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1`,key:`1bw5m7`}],[`path`,{d:`m21 21-1.9-1.9`,key:`1g2n9r`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}]]),Ce=s(`panel-right-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m8 9 3 3-3 3`,key:`12hl5m`}]]),V=e(t(),1),H=n(),U=new Set([`queued`,`starting`,`running`]),we=new Set([`starting`,`running`,`stopping`]);function W(e){return typeof e==`string`?e.trim():``}function G(e,t,n){let r=new Map;for(let i of e){if(i?.type!==t)continue;let e=n(i);e&&r.set(String(e.id||r.size),e)}return[...r.values()]}function Te({startedAt:e}){let[t,n]=(0,V.useState)(()=>Date.now());(0,V.useEffect)(()=>{let e=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(e)},[]);let r=ve(e,null,t);return r?(0,H.jsx)(`span`,{className:`flex-none font-mono text-xs text-content-muted tabular-nums`,children:y(r)}):null}function Ee(e,t){let n=t?G(e,`tool`,e=>e).filter(e=>e.status===`running`):[],r=G(e,`agent`,e=>e.agent&&typeof e.agent==`object`?e.agent:null).filter(e=>U.has(String(e.status)));return n.length+r.length}function De({sessionId:e,streaming:t,activity:n}){let{t:i}=r(),a=z(e),o=[...t?G(n,`tool`,e=>e).filter(e=>e.status===`running`).map(e=>{let t=e.args||{};return{key:`tool:${String(e.id)}`,icon:(0,H.jsx)(le,{size:14,"aria-hidden":`true`}),name:W(e.name)||i(`board:inspector.runningTool`),detail:W(t.command)||W(t.path)||W(t.file_path),startedAt:W(e.startedAt),status:i(`board:inspector.runningStatus`)}}):[],...G(n,`agent`,e=>e.agent&&typeof e.agent==`object`?e.agent:null).filter(e=>U.has(String(e.status))).map(e=>({key:`agent:${String(e.id)}`,icon:(0,H.jsx)(u,{size:14,"aria-hidden":`true`}),name:W(e.title)||W(e.taskName)||i(`board:inspector.runningAgent`),detail:W(e.message),startedAt:W(e.startedAt),status:e.status===`queued`?i(`board:inspector.runningQueued`):i(`board:inspector.runningStatus`)})),...a.filter(e=>we.has(e.status)).map(e=>({key:`terminal:${e.id}`,icon:(0,H.jsx)(ce,{size:14,"aria-hidden":`true`}),name:e.profileId||i(`board:inspector.terminal`),detail:e.cwd||``,status:e.status===`stopping`?i(`terminal:workspace.stopping`):i(`board:inspector.runningStatus`)}))];return(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto p-3`,"data-inspector-running":!0,children:[o.length?(0,H.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-px p-0`,children:o.map(e=>(0,H.jsxs)(`li`,{className:`grid min-w-0 grid-cols-[14px_minmax(0,1fr)_auto] items-start gap-2 py-1.5 text-xs`,"data-running-item":e.key.split(`:`)[0],children:[(0,H.jsx)(`span`,{className:`mt-0.5 text-content-secondary`,children:e.icon}),(0,H.jsxs)(`span`,{className:`grid min-w-0 gap-0.5`,children:[(0,H.jsx)(`strong`,{className:`truncate text-[13px] font-medium text-content`,children:e.name}),e.detail&&(0,H.jsx)(`span`,{className:`min-w-0 truncate font-mono text-content-muted`,title:e.detail,children:e.detail})]}),(0,H.jsxs)(`span`,{className:`flex flex-none items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-content-muted`,children:e.status}),(0,H.jsx)(Te,{startedAt:e.startedAt})]})]},e.key))}):(0,H.jsx)(I,{compact:!0,title:i(`board:inspector.runningEmpty`)}),(0,H.jsx)(`p`,{className:`mt-3 text-xs leading-relaxed text-content-faint`,children:i(`board:inspector.runningHint`)})]})}var K={running:{kind:`run`,color:`text-st-run`},starting:{kind:`run`,color:`text-st-run`},queued:{kind:`queued`,color:`text-st-queue`},completed:{kind:`done`,color:`text-st-done`},failed:{kind:`failed`,color:`text-st-fail`},interrupted:{kind:`stopped`,color:`text-st-queue`},blocked:{kind:`queued`,color:`text-st-queue`}};function q(e,t){return t(e===`queued`?`chat:agentRunActivity.teamTaskQueued`:e===`starting`?`chat:agentRunActivity.teamTaskStarting`:e===`running`?`chat:agentRunActivity.teamTaskRunning`:e===`completed`?`chat:agentRunActivity.teamTaskCompleted`:e===`failed`?`chat:agentRunActivity.teamTaskFailed`:e===`interrupted`?`chat:agentRunActivity.teamTaskInterrupted`:e===`blocked`?`chat:agentRunActivity.teamTaskBlocked`:`chat:agentRunActivity.teamTaskStatusUpdated`)}function Oe(e,t){return e.status===`active`?e.mode===`team`?t(`chat:focusSession.runningAsTeam`):t(`chat:focusSession.runningAutonomously`):e.status===`paused`?t(`chat:focusSession.goalPaused`):e.status===`complete`?t(`chat:focusSession.goalComplete`):e.status===`budget_limited`?t(`chat:focusSession.goalReachedItsBudget`):``}function J({title:e,children:t}){return(0,H.jsxs)(`section`,{className:`grid min-w-0 gap-2`,"aria-label":e,children:[(0,H.jsx)(`h3`,{className:`text-xs font-semibold text-content-secondary`,children:e}),t]})}function Y({status:e,name:t,detail:n,t:r}){let i=K[String(e)]??{kind:`queued`,color:`text-st-queue`};return(0,H.jsxs)(`li`,{className:`flex min-w-0 items-start gap-2 py-1.5 text-xs`,children:[(0,H.jsx)(P,{status:i.kind,className:`mt-px size-3.5 ${i.color}`}),(0,H.jsxs)(`span`,{className:`grid min-w-0 flex-1 gap-0.5`,children:[(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(`strong`,{className:`min-w-0 truncate font-medium text-content`,children:t}),(0,H.jsx)(`span`,{className:`flex-none text-content-muted`,children:q(e,r)})]}),n&&(0,H.jsx)(`span`,{className:`min-w-0 break-words text-content-muted`,children:n})]})]})}function ke(e){let t=new Map;for(let n of e){if(n?.type!==`agent`||!n.agent||typeof n.agent!=`object`)continue;let e=n.agent,r=String(e.id||e.taskName||t.size);t.set(r,e)}return[...t.values()]}function Ae({plan:e,streaming:t,goal:n,team:i,activity:a}){let{t:o}=r(),s=Array.isArray(i?.tasks)?i.tasks:[],c=ke(a),l=!!(n?.id&&String(n.objective||``).trim()),u=!!e?.items?.length;if(!l&&!u&&!s.length&&!c.length)return(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:(0,H.jsx)(I,{compact:!0,icon:ae,title:o(`chat:sessionContext.planEmpty`)})});let d=Number(n?.mode===`team`?n?.teamTokenBudget:n?.tokenBudget)||0;return(0,H.jsxs)(`div`,{className:`grid min-h-0 flex-1 content-start gap-5 overflow-y-auto p-3`,"data-inspector-plan":!0,children:[l&&n&&(0,H.jsx)(J,{title:o(`board:inspector.goal`),children:(0,H.jsxs)(`div`,{className:`grid gap-1.5 rounded-md border border-stroke-soft bg-surface-subtle p-3 text-xs`,children:[(0,H.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-content`,children:String(n.objective)}),(0,H.jsxs)(`p`,{className:`flex flex-wrap items-center gap-x-2 text-content-muted tabular-nums`,children:[(0,H.jsx)(`span`,{children:Oe(n,o)}),(0,H.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,H.jsx)(`span`,{children:d>0?o(`chat:focusSession.usedBudgetTokensUsed`,{used:N(n.tokensUsed),budget:N(d)}):o(`chat:focusSession.usedUnlimitedGoalTokens`,{used:N(n.tokensUsed)})})]})]})}),u&&(0,H.jsx)(J,{title:o(`board:inspector.plan`),children:(0,H.jsx)(h,{plan:e,running:t})}),s.length>0&&(0,H.jsx)(J,{title:o(`board:inspector.team`),children:(0,H.jsx)(`ul`,{className:`divide-y divide-stroke-soft`,children:s.map((e,t)=>(0,H.jsx)(Y,{status:e.status,name:e.taskName||o(`chat:agentRunActivity.subagent`),detail:e.error||e.output||``,t:o},e.id||`${e.taskName}-${t}`))})}),c.length>0&&(0,H.jsx)(J,{title:o(`board:inspector.subAgents`),children:(0,H.jsx)(`ul`,{className:`divide-y divide-stroke-soft`,children:c.map((e,t)=>(0,H.jsx)(Y,{status:e.status,name:String(e.taskName||``).trim()||o(`chat:agentRunActivity.subagent`),detail:String(e.error||e.message||``).trim(),t:o},String(e.id||t)))})})]})}var X=100;function je(e){let t=e.trim().toUpperCase();return t===`??`||t.includes(`A`)?`created`:t.includes(`D`)?`deleted`:t.includes(`R`)?`renamed`:t.includes(`M`)?`modified`:`other`}var Me={modified:`M`,created:`A`,deleted:`D`,renamed:`R`,other:`·`},Z={modified:`text-content-secondary`,created:`text-st-done`,deleted:`text-st-fail`,renamed:`text-content-secondary`,other:`text-content-muted`};function Ne(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);return n<0?{directory:``,name:t}:{directory:t.slice(0,n+1),name:t.slice(n+1)}}function Pe(e,t){return/^(?:[a-zA-Z]:[\\/]|\/|\\\\)/.test(t)?t:`${e.replace(/[\\/]+$/,``)}/${t}`}function Q(e,t){window.dispatchEvent(new CustomEvent(R,{detail:{message:e,tone:t}}))}function $({added:e,removed:t}){return e===null||t===null?null:(0,H.jsxs)(`span`,{className:`flex-none font-mono text-xs tabular-nums`,children:[(0,H.jsxs)(`span`,{className:`text-success`,children:[`+`,e]}),` `,(0,H.jsxs)(`span`,{className:`text-danger`,children:[`−`,t]})]})}function Fe({status:e,children:t}){let{t:n}=r();return(0,H.jsxs)(`footer`,{className:`mt-auto flex h-10 shrink-0 items-center gap-2 border-t border-stroke-soft pr-1.5 pl-3 text-xs text-content-muted`,"data-changes-footer":!0,children:[(0,H.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5 truncate`,children:e}),(0,H.jsxs)(k,{children:[(0,H.jsx)(de,{asChild:!0,children:(0,H.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`pointer-coarse:size-11`,"aria-label":n(`board:changes.more`),title:n(`board:changes.more`),"data-changes-more":!0,children:(0,H.jsx)(b,{"aria-hidden":`true`})})}),(0,H.jsx)(fe,{align:`end`,side:`top`,className:`min-w-48`,children:t})]})]})}function Ie({status:e}){let{t}=r(),n=t(e===`created`?`board:changes.statusCreated`:e===`deleted`?`board:changes.statusDeleted`:e===`renamed`?`board:changes.statusRenamed`:`board:changes.statusModified`);return(0,H.jsxs)(`span`,{className:A(`w-3.5 flex-none text-center font-mono text-xs font-semibold`,Z[e]),title:n,children:[(0,H.jsx)(`span`,{"aria-hidden":`true`,children:Me[e]}),(0,H.jsx)(`span`,{className:`sr-only`,children:n})]})}function Le({files:e,selected:t,label:n,onSelect:r}){let i=(0,V.useRef)(null);return(0,H.jsxs)(`ul`,{ref:i,"aria-label":n,className:`max-h-[34%] min-h-11 shrink-0 overflow-y-auto border-b border-stroke-soft py-1`,onKeyDown:e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=[...i.current?.querySelectorAll(`[data-change-file]`)??[]],n=t.findIndex(e=>e===document.activeElement),a=t[e.key===`Home`?0:e.key===`End`?t.length-1:Math.min(t.length-1,Math.max(0,n+(e.key===`ArrowDown`?1:-1)))];a&&(e.preventDefault(),a.focus(),r(a.dataset.changeFile||``))},"data-change-list":!0,children:[e.slice(0,X).map(e=>{let n=e.path===t,{directory:i,name:a}=Ne(e.path);return(0,H.jsx)(`li`,{className:`px-1`,children:(0,H.jsxs)(`button`,{type:`button`,title:e.path,"aria-label":[e.path,Me[e.status],e.added!==null&&e.removed!==null?`+${e.added} −${e.removed}`:``,e.note||``].filter(Boolean).join(` `),"aria-current":n?`true`:void 0,"data-change-file":e.path,className:A(`flex h-8 w-full min-w-0 items-center gap-2 rounded-sm px-2 text-left text-xs transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus max-[650px]:h-11 pointer-coarse:h-11`,n?`bg-solid shadow-[inset_0_0_0_1px_var(--stroke-strong)]`:`hover:bg-surface-hover`),onClick:()=>r(e.path),children:[(0,H.jsx)(Ie,{status:e.status}),(0,H.jsxs)(`span`,{className:`flex min-w-0 flex-1 font-mono`,children:[(0,H.jsx)(`span`,{className:`min-w-0 truncate text-content-muted`,children:i}),(0,H.jsx)(`span`,{className:`flex-none text-content`,children:a})]}),e.note&&(0,H.jsx)(`span`,{className:`flex-none text-content-muted`,children:e.note}),(0,H.jsx)($,{added:e.added,removed:e.removed})]})},e.path)}),e.length>X&&(0,H.jsx)(`li`,{className:`px-3 py-1.5 text-xs text-content-muted tabular-nums`,children:(0,H.jsx)(Re,{count:e.length-X})})]})}function Re({count:e}){let{t}=r();return(0,H.jsx)(H.Fragment,{children:t(`chat:focusSession.gitMoreFiles`,{count:e})})}var ze=600;function Be({sessionId:e,file:t,scope:n,revision:i,view:a,onViewChange:o,footer:s}){let{t:c}=r(),u=l(e=>e.diffMode),d=l(e=>e.setDiffMode),f=(0,V.useRef)(null),[m,h]=(0,V.useState)(0);(0,V.useLayoutEffect)(()=>{let e=f.current;if(!e)return;let t=()=>h(e.clientWidth);t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);let g=m===0||m>=ze,_=g?u:`unified`,v=g?void 0:c(`board:changes.splitTooNarrow`);return(0,H.jsxs)(`section`,{ref:f,className:`flex min-h-0 flex-1 flex-col`,"aria-label":t.path,"data-change-detail":t.path,children:[(0,H.jsxs)(`header`,{className:`flex min-h-10 shrink-0 items-center gap-2 border-b border-stroke-soft py-1.5 pr-2 pl-3`,children:[(0,H.jsx)(Ie,{status:t.status}),(0,H.jsx)(`strong`,{className:`min-w-0 flex-1 truncate font-mono text-xs font-semibold text-content`,title:t.path,children:t.path}),(0,H.jsx)($,{added:t.added,removed:t.removed}),(0,H.jsx)(ge,{size:`sm`,"aria-label":c(`board:changes.diffView`),title:v,"aria-description":v,value:_,onValueChange:d,options:[{value:`unified`,label:c(`board:changes.unified`)},{value:`split`,label:c(`board:changes.split`),disabled:!g}]})]}),(0,H.jsx)(p,{sessionId:e,path:t.path,scope:n,revision:i,mode:_,fill:!0,position:a?.reading?.[t.path],onReading:e=>o?.({reading:{...a?.reading,[t.path]:e}})},`${n}:${t.path}`),(0,H.jsx)(`footer`,{className:`flex min-h-10 shrink-0 flex-wrap items-center gap-1 border-t border-stroke-soft py-1 pr-1.5 pl-3 text-xs`,children:s})]})}function Ve({cwd:e,path:t}){let{t:n}=r();if(!window.pisperDesktop||!e)return null;let i=Pe(e,t);return(0,H.jsxs)(j,{type:`button`,variant:`ghost`,size:`sm`,className:`max-[650px]:h-11`,onClick:async()=>{try{await xe(i,be),Q(n(`common:markdownMessage.revealLocalPathOk`,{path:t}),`info`)}catch(e){Q(e instanceof L&&e.reason===`unavailable`?n(`common:markdownMessage.revealLocalPathUnavailable`):e instanceof L&&e.reason===`timeout`?n(`common:markdownMessage.revealLocalPathTimeout`):n(`common:markdownMessage.revealLocalPathFailed`,{path:t}),`error`)}},children:[(0,H.jsx)(B,{"aria-hidden":`true`}),n(`chat:chatMessage.fileActionReveal`)]})}function He(e){return{path:e.path,status:e.status===`created`?`created`:e.status===`deleted`?`deleted`:`modified`,added:e.added,removed:e.removed}}function Ue(e,t){if(!e)return;let n=[];return e.lineEnding&&n.push(t(`chat:focusSession.fileChangesLineEnding`,{from:e.lineEnding[0].toUpperCase(),to:e.lineEnding[1].toUpperCase()})),e.bom?.[1]?n.push(t(`chat:focusSession.fileChangesBomAdded`)):e.bom&&n.push(t(`chat:focusSession.fileChangesBomRemoved`)),t(`chat:focusSession.fileChangesFormatOnly`,{detail:n.join(` · `)})}function We({sessionId:e,cwd:t,streaming:n,view:i,onViewChange:a,requestConfirm:o}){let{t:s,language:c}=r(),{changes:l,loading:u,running:f,snapshotRevision:p,writesDisabled:m,pendingCount:h,reversibleCount:g,displayedError:v,notice:ee,runAction:y,refresh:te}=_({sessionId:e,streaming:n,requestConfirm:o}),b=l?.files??[],ne=i?.expandedFiles?.[0],x=b.find(e=>e.path===ne)??b[0],re=e=>a?.({expandedFiles:[e]}),S=(e,t)=>f?.kind===e&&f.path===t,C=n?s(`chat:focusSession.gitWaitForRunToFinish`):void 0;return(0,H.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col`,"aria-label":s(`chat:focusSession.fileChanges`),"aria-busy":u||!!f,"data-changes-scope":`session`,children:[(0,H.jsx)(`header`,{className:`flex min-h-10 shrink-0 items-center gap-1.5 border-b border-stroke-soft py-1 pr-1.5 pl-3`,children:(0,H.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-content-secondary`,children:[(0,H.jsx)(`span`,{className:`min-w-0 truncate`,children:s(`board:changes.sessionSummary`,{count:l?.summary.files??0})}),l&&l.summary.files>0&&(0,H.jsx)($,{added:l.summary.added,removed:l.summary.removed})]})}),v&&(0,H.jsx)(`p`,{role:`alert`,className:`shrink-0 px-3 pt-2 text-xs text-st-fail`,children:v}),ee&&!v&&(0,H.jsx)(`p`,{role:`status`,className:`shrink-0 px-3 pt-2 text-xs text-content-secondary`,children:ee}),u&&!l?(0,H.jsx)(F,{kind:`loading`,title:s(`chat:focusSession.gitLoading`)}):b.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Le,{files:b.map(e=>({...He(e),note:e.reverted?s(`chat:focusSession.fileChangesReverted`):e.approved?s(`chat:focusSession.fileChangesApproved`):Ue(e.formatChange,s)})),selected:x?.path??``,label:s(`board:changes.files`),onSelect:re}),x&&(0,H.jsx)(Be,{sessionId:e,file:He(x),scope:`task`,revision:p,view:i,onViewChange:a,footer:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`span`,{className:A(`mr-auto flex min-w-0 items-center gap-1.5 truncate`,x.approved?`text-st-done`:`text-content-muted`),"data-change-state":x.reverted?`reverted`:x.approved?`approved`:`pending`,children:[x.approved&&!x.reverted&&(0,H.jsx)(d,{className:`size-3.5 flex-none`,"aria-hidden":`true`}),x.reverted?s(`board:changes.revertedAt`,{time:M(x.changedAt,c)}):x.approved?s(`board:changes.approvedAt`,{time:M(x.changedAt,c)}):s(`board:changes.pendingAt`,{time:M(x.changedAt,c)})]}),x.pending&&!x.approved&&!x.reverted&&(0,H.jsxs)(j,{type:`button`,variant:`ghost`,size:`sm`,disabled:m,title:C,onClick:()=>void y({kind:`approve`,path:x.path}),children:[S(`approve`,x.path)?(0,H.jsx)(E,{className:`animate-spin`}):(0,H.jsx)(d,{}),s(`chat:focusSession.fileChangesApproveFile`)]}),(0,H.jsxs)(j,{type:`button`,variant:`ghost`,size:`sm`,disabled:m||x.reverted||!x.canRevert,title:C,onClick:()=>void y({kind:`revert`,path:x.path}),children:[S(`revert`,x.path)?(0,H.jsx)(E,{className:`animate-spin`}):(0,H.jsx)(T,{}),s(`board:changes.revertFile`)]}),(0,H.jsx)(Ve,{cwd:t,path:x.path})]})})]}):!v&&(0,H.jsx)(I,{compact:!0,title:s(`chat:focusSession.fileChangesEmpty`)}),(0,H.jsxs)(Fe,{status:f?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(E,{className:`size-3.5 flex-none animate-spin`,"aria-hidden":`true`}),f.kind===`approve`?s(`chat:focusSession.fileChangesApproveAll`):s(`board:changes.revertAll`)]}):h>0?s(`board:changes.pending`,{count:h}):null,children:[h>0&&(0,H.jsxs)(O,{disabled:m,title:C,onSelect:()=>void y({kind:`approve`}),children:[(0,H.jsx)(d,{}),s(`chat:focusSession.fileChangesApproveAll`)]}),(l?.summary.files??0)>0&&(0,H.jsxs)(O,{disabled:m||g===0,title:C??s(`chat:focusSession.fileChangesRevertAllDescription`),onSelect:()=>void y({kind:`revert`}),children:[(0,H.jsx)(T,{}),s(`board:changes.revertAll`)]}),(h>0||(l?.summary.files??0)>0)&&(0,H.jsx)(D,{}),(0,H.jsxs)(O,{disabled:u||!!f,onSelect:te,children:[(0,H.jsx)(E,{}),s(`chat:focusSession.gitRefresh`)]})]})]})}function Ge({sessionId:e,cwd:t,streaming:n,view:a,onViewChange:o}){let{t:s}=r(),c=i({queryKey:[`task-project-changes`,e,t,n],queryFn:({signal:t})=>_e.getVcsChanges(e,{signal:t})}),l=(0,V.useMemo)(()=>S(c.data?.diff||``,c.data?.files.map(e=>e.path)||[],c.data?.diffTruncated),[c.data]),u=c.error?.message||c.data?.error,d=(c.data?.files||[]).map(e=>({path:e.path,status:je(e.status),added:Object.hasOwn(l.files,e.path)?l.files[e.path].added:null,removed:Object.hasOwn(l.files,e.path)?l.files[e.path].removed:null})),f=a?.expandedFiles?.[0],p=d.find(e=>e.path===f)??d[0];return(0,H.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col`,"aria-label":s(`chat:workbench.projectChanges`),"aria-busy":c.isFetching,"data-changes-scope":`workspace`,children:[(0,H.jsxs)(`header`,{className:`flex min-h-10 shrink-0 items-center gap-1.5 border-b border-stroke-soft py-1 pr-1.5 pl-3`,children:[(0,H.jsxs)(`p`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-content-secondary`,children:[(0,H.jsx)(`span`,{className:`min-w-0 truncate`,children:s(`board:changes.workspaceSummary`,{count:d.length})}),c.data?.isRepo&&!u&&d.length>0&&(0,H.jsx)($,{added:l.added,removed:l.removed})]}),c.data?.branch&&(0,H.jsxs)(`span`,{className:`inline-flex h-5.5 max-w-[40%] min-w-0 flex-none items-center gap-1 rounded-xs border border-stroke px-1.5 font-mono text-xs text-content-secondary`,title:t,children:[(0,H.jsx)(ie,{size:12,className:`flex-none`,"aria-hidden":`true`}),(0,H.jsx)(`span`,{className:`truncate`,children:c.data.branch})]})]}),c.isPending?(0,H.jsx)(F,{kind:`loading`,title:s(`chat:focusSession.gitLoading`)}):u?(0,H.jsx)(`p`,{role:`alert`,className:`p-3 text-xs text-st-fail`,children:u}):c.data?.isRepo?d.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Le,{files:d,selected:p?.path??``,label:s(`board:changes.files`),onSelect:e=>o?.({expandedFiles:[e]})}),p&&(0,H.jsx)(Be,{sessionId:e,file:p,scope:`project`,revision:c.dataUpdatedAt,view:a,onViewChange:o,footer:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`mr-auto min-w-0 truncate font-mono text-content-muted`,title:t,children:t}),(0,H.jsx)(Ve,{cwd:t,path:p.path})]})})]}):(0,H.jsx)(I,{compact:!0,title:s(`chat:focusSession.fileChangesEmpty`)}):(0,H.jsx)(I,{compact:!0,title:s(`chat:workbench.notRepository`)}),(0,H.jsx)(Fe,{status:c.isFetching?(0,H.jsx)(E,{className:`size-3.5 flex-none animate-spin`,"aria-hidden":`true`}):null,children:(0,H.jsxs)(O,{disabled:c.isFetching,onSelect:()=>void c.refetch(),children:[(0,H.jsx)(E,{}),s(`chat:focusSession.gitRefresh`)]})})]})}function Ke({sessionId:e,cwd:t,streaming:n,scope:i,onScopeChange:a,vcsAvailable:o,view:s,onViewChange:c,requestConfirm:l}){let{t:u}=r();return(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"data-inspector-changes":i,children:[(0,H.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-stroke-soft px-3 py-2`,children:(0,H.jsx)(ge,{size:`sm`,"aria-label":u(`board:inspector.changesScope`),value:i,onValueChange:a,options:[{value:`session`,label:u(`board:inspector.scopeSession`)},{value:`workspace`,label:u(`board:inspector.scopeWorkspace`),disabled:!o}]})}),s?i===`workspace`?(0,H.jsx)(Ge,{sessionId:e,cwd:t,streaming:n,view:s,onViewChange:c}):(0,H.jsx)(We,{sessionId:e,cwd:t,streaming:n,view:s,onViewChange:c,requestConfirm:l}):(0,H.jsx)(`p`,{role:`status`,className:`p-4 text-sm text-content-muted`,children:u(`chat:focusSession.gitLoading`)})]})}var qe=[];function Je(e,t,n){return e===`changes`?n===`workspace`?`changes`:`files`:e===`terminal`?t:e===`files`?`sources`:e===`preview`?`browser`:e===`side-chat`?`side-chat`:null}function Ye({panelId:e,sessionId:t,cwd:n,streaming:s,plan:u,goal:d,team:p,activity:h,planTab:_,sources:y,mode:b,requestConfirm:S,onClose:ie,onOpenComponents:T,componentTabs:E,autoFocus:le=!1}){let{t:D}=r(),O=b===`sheet`,de=Se(),fe=o(e=>e.capabilities),k=!!de&&a(fe,`terminal`),_e=a(fe,`vcs`),M=l(e=>e.tab),N=l(e=>e.setTab),P=l(e=>e.terminalView),ve=l(e=>e.setTerminalView),F=l(e=>e.changesView),be=l(e=>e.setChangesView),L=w(e=>e.sessions[t]?.pages)??qe,xe=L.some(e=>e.kind===`side-chat`),R=M===`side-chat`&&!xe||M===`plan`&&!_?`changes`:M,z=Je(R,P,F),B=z?L.find(e=>e.kind===z):void 0,U=!O&&E?E.tabs(n):[],[we,W]=(0,V.useState)(null),[G,Te]=(0,V.useState)(!1),K=U.some(e=>e.id===we)?we:null;(0,V.useEffect)(()=>W(null),[M]);let q=(0,V.useRef)(null);(0,V.useEffect)(()=>{q.current?.querySelector(`[role="tab"][aria-selected="true"]`)?.scrollIntoView?.({block:`nearest`,inline:`nearest`})},[R,K]);let Oe=(0,V.useRef)(le);(0,V.useEffect)(()=>{if(!Oe.current)return;let e=requestAnimationFrame(()=>q.current?.querySelector(`[role="tab"][aria-selected="true"]`)?.focus({preventScroll:!0}));return()=>cancelAnimationFrame(e)},[]),(0,V.useEffect)(()=>{if(!z||B||(z===`terminal`||z===`processes`)&&!k)return;let e=w.getState(),n=e.sessions[t]?.contentOpen??!1;e.update(t,z,{type:`add`,kind:z}),n||e.update(t,z,{type:`workspace`,contentOpen:!1})},[z,B,t,k]);let J=i({queryKey:[`session-change-summary`,t,s],queryFn:()=>ye(t),staleTime:1e4}),Y=J.data?.status===`known`?J.data.changedFiles??0:0,ke=Ee(h,s),X=[{id:`changes`,icon:ne,label:Y>0?D(`board:inspector.changesCount`,{count:Y}):D(`board:inspector.changes`)},{id:`terminal`,icon:ce,label:D(`board:inspector.terminal`)},{id:`running`,icon:c,label:ke?D(`board:inspector.runningCount`,{count:ke}):D(`board:inspector.running`)},{id:`files`,icon:x,label:D(`board:inspector.files`)},{id:`preview`,icon:te,label:D(`board:inspector.preview`)},..._?[{id:`plan`,icon:ae,label:D(`board:inspector.plan`)}]:[],...xe?[{id:`side-chat`,icon:oe,label:D(`board:inspector.sideChat`)}]:[]],je=e=>{B&&w.getState().update(t,B.kind,{type:`view`,id:B.id,patch:e})},Me=()=>{let n=L.find(e=>e.kind===`side-chat`);if(n&&w.getState().update(t,`side-chat`,{type:`close`,id:n.id}),N(`changes`),O){ie();return}requestAnimationFrame(()=>document.getElementById(`${e}-changes-tab`)?.focus())},Z=t=>`${e}-component-${t}-tab`,Ne=e=>{W(null),N(e)},Pe=t=>{if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(t.key))return;t.preventDefault();let n=[...X.map(t=>({fixed:t.id,id:`${e}-${t.id}-tab`})),...U.map(e=>({component:e.id,id:Z(e.id)}))],r=n.findIndex(e=>K?e.component===K:e.fixed===R),i=n[t.key===`Home`?0:t.key===`End`?n.length-1:(r+(t.key===`ArrowRight`?1:-1)+n.length)%n.length];i.component?W(i.component):i.fixed&&Ne(i.fixed),requestAnimationFrame(()=>document.getElementById(i.id)?.focus())},Q=(0,H.jsx)(`p`,{role:`status`,className:`p-4 text-sm text-content-muted`,children:D(`chat:focusSession.gitLoading`)}),$;if(K&&E)$=E.render(K,{sessionId:t,cwd:n});else if(R===`changes`)$=(0,H.jsx)(Ke,{sessionId:t,cwd:n,streaming:s,scope:F,onScopeChange:be,vcsAvailable:_e,view:B?.view,onViewChange:B?je:void 0,requestConfirm:S});else if(R===`terminal`)$=k?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-stroke-soft px-3 py-2`,children:(0,H.jsx)(ge,{size:`sm`,"aria-label":D(`board:inspector.terminalScope`),value:P,onValueChange:ve,options:[{value:`terminal`,label:D(`board:inspector.terminal`)},{value:`processes`,label:D(`board:inspector.processes`)}]})}),(0,H.jsx)(V.Suspense,{fallback:Q,children:B?P===`processes`?(0,H.jsx)(m,{sessionId:t,view:B.view,onViewChange:je,onOpenTerminal:e=>{let n=w.getState(),r=n.sessions[t]?.pages.find(e=>e.kind===`terminal`);r?n.update(t,`terminal`,{type:`resource`,id:r.id,resourceId:e}):n.update(t,`terminal`,{type:`open`,kind:`terminal`,resourceId:e}),ve(`terminal`)}}):(0,H.jsx)(f,{sessionId:t,cwd:n,terminalId:B.resourceId||void 0,onCreated:e=>w.getState().update(t,`terminal`,{type:`resource`,id:B.id,resourceId:e})},B.id):Q})]}):(0,H.jsx)(I,{compact:!0,icon:ce,title:D(`board:inspector.terminalUnavailable`)});else if(R===`files`)$=B?(0,H.jsx)(v,{sources:y,view:B.view,onViewChange:je}):Q;else if(R===`preview`){let e=s?C([...h]):null;$=B?(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"data-inspector-preview":!0,children:[e&&(0,H.jsx)(`div`,{className:`max-h-[50%] shrink-0 overflow-y-auto border-b border-stroke-soft p-2`,children:(0,H.jsx)(re,{target:e,fallbackImage:e.previewImage,streaming:s})}),(0,H.jsx)(ee,{page:B,onChange:e=>w.getState().update(t,`browser`,{type:`browser`,id:B.id,...e})})]}):Q}else $=R===`plan`?(0,H.jsx)(Ae,{plan:u,streaming:s,goal:d,team:p,activity:h}):R===`running`?(0,H.jsx)(De,{sessionId:t,streaming:s,activity:h}):(0,H.jsx)(g,{parentId:t,active:!0});return(0,H.jsxs)(`section`,{id:e,"aria-label":D(`board:inspector.label`),"data-session-inspector":b,"data-inspector-tab":R,"data-inspector-component":K??void 0,className:`flex h-full min-h-0 w-full min-w-0 flex-col bg-panel text-content`,children:[(0,H.jsxs)(`header`,{className:A(`flex shrink-0 items-center gap-1 border-b border-stroke-soft pr-1.5 pl-2`,O?`h-[52px]`:b===`aside`?`h-[52px] [[data-custom-titlebar]_&]:h-11 [[data-custom-titlebar]_&]:pointer-coarse:h-[52px]`:`h-11 pointer-coarse:h-[52px]`),children:[(0,H.jsxs)(`div`,{ref:q,role:`tablist`,"aria-label":D(`board:inspector.tabs`),className:`flex min-w-0 flex-1 items-center gap-0.5 overflow-x-auto [scrollbar-width:none]`,onKeyDown:Pe,children:[X.map(({id:t,icon:n,label:r})=>{let i=!K&&t===R;return(0,H.jsxs)(`button`,{id:`${e}-${t}-tab`,type:`button`,role:`tab`,"aria-selected":i,"aria-controls":`${e}-body`,tabIndex:i?0:-1,"data-inspector-tab-id":t,className:A(`flex flex-none items-center gap-1.5 rounded-sm px-2 text-[13px] whitespace-nowrap transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus`,O?`h-11 min-w-11 justify-center px-2.5`:`h-8 pointer-coarse:h-11 pointer-coarse:min-w-11`,i?`bg-solid font-medium text-content shadow-edge ring-1 ring-stroke-strong ring-inset`:`text-content-secondary hover:bg-surface-hover hover:text-content`),onClick:()=>Ne(t),children:[!O&&(0,H.jsx)(n,{className:`size-3.5`,"aria-hidden":`true`}),r]},t)}),!K&&R===`side-chat`&&(0,H.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:A(O&&`size-11`),"aria-label":D(`board:inspector.closeTab`,{tab:D(`board:inspector.sideChat`)}),onClick:Me,children:(0,H.jsx)(ue,{"aria-hidden":`true`})}),!O&&(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`mx-1 h-4 w-px flex-none bg-stroke`}),U.map(({id:t,label:n})=>{let r=t===K;return(0,H.jsx)(`button`,{id:Z(t),type:`button`,role:`tab`,"aria-selected":r,"aria-controls":`${e}-body`,tabIndex:r?0:-1,"data-inspector-component-tab":t,className:A(`flex h-8 max-w-40 flex-none items-center rounded-sm px-2 text-[13px] whitespace-nowrap transition-colors duration-(--d-fast) focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11 pointer-coarse:min-w-11`,r?`bg-solid font-medium text-content shadow-edge ring-1 ring-stroke-strong ring-inset`:`text-content-secondary hover:bg-surface-hover hover:text-content`),onClick:()=>W(t),children:(0,H.jsx)(`span`,{className:`truncate`,children:n})},t)})]}),!O&&(0,H.jsxs)(he,{open:G,onOpenChange:Te,children:[(0,H.jsx)(pe,{asChild:!0,children:(0,H.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`flex-none`,"aria-label":D(`board:inspector.add`),title:D(`board:inspector.add`),"data-inspector-component-add":!0,children:(0,H.jsx)(se,{"aria-hidden":`true`})})}),(0,H.jsxs)(me,{align:`end`,className:`w-64 text-xs`,children:[E?.addMenu?E.addMenu({cwd:n,onAdded:e=>{W(e),Te(!1)}}):(0,H.jsx)(`p`,{className:`text-content-secondary`,children:D(`board:inspector.addHint`)}),T&&(0,H.jsx)(j,{type:`button`,variant:`secondary`,size:`sm`,className:`self-start`,onClick:T,children:D(`board:inspector.openComponents`)})]})]}),(0,H.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:A(`flex-none`,O&&`size-11`),"aria-label":D(`board:inspector.close`),title:D(`board:inspector.close`),"aria-controls":e,onClick:ie,children:b===`aside`?(0,H.jsx)(Ce,{"aria-hidden":`true`}):(0,H.jsx)(ue,{"aria-hidden":`true`})})]}),(0,H.jsx)(`div`,{id:`${e}-body`,role:`tabpanel`,"aria-labelledby":K?Z(K):`${e}-${R}-tab`,className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:$})]})}export{Ye as SessionInspector};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,l as n,u as r}from"./vendor-router-CSN_DGvx.js";import{i,r as a}from"./vendor-react-DwNgTV1j.js";import{f as o,r as s}from"./routes-DIeaqWVc.js";import{t as c}from"./use-i18n-_vdxObu5.js";import{a as l,o as u,s as d,u as f}from"./placements-CMrgmg3t.js";import{t as p}from"./client-store-DzgOPMlh.js";import{t as m}from"./usePhoneShell-DZHZWXnN.js";import{t as h}from"./PhoneMenuButton-D6vdTZdF.js";import{t as g}from"./useSessionListQuery-BoUzmjZC.js";import{t as _}from"./public-62LVX7HU.js";import{i as v,t as y}from"./session-home-DUpZt2dn.js";var b=e(i(),1),x=a(),S=`(max-width: 1279px), (max-height: 760px)`,C=`(min-width: 960px) and (min-height: 640px)`;function w(e){let[t,n]=(0,b.useState)(()=>window.matchMedia(e).matches);return(0,b.useEffect)(()=>{let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function T({context:e,ChatPage:i}){let a=r(),c=n(),{sessionId:l=``}=t(),u=m(),d=p(e=>e.client===`mobile-app`),f=w(`(min-width: 960px) and (min-height: 640px)`)&&d,C=w(S),T=!u||f,D=(0,b.useRef)(l);D.current=l;let O=(0,b.useRef)(c.state);O.current=c.state;let k=(0,b.useCallback)(e=>{if(!e||e===D.current)return;let t=D.current===`new`;a(o(e),{replace:t,state:t?O.current:void 0})},[a]),A=g(),j=!!(l&&l!==`new`&&A.data?.sessions.some(e=>e.id===l));(0,b.useEffect)(()=>{j&&v(l)},[j,l]);let M=E(e.notify,k),N=e.startNewTask,P=l===`new`,F=e.notify,I=_({onError:e=>F(e,`error`)}),L=P?I:void 0,R=(0,b.useMemo)(()=>({compact:C,overlayOnly:d,onOpenComponents:()=>a(s.components),componentTabs:M,onArchived:e=>{y(e),a(`/`,{replace:!0})},onHome:()=>a(`/`),onNewTask:N,newTaskDraft:L}),[C,d,a,M,N,L]),z=(0,b.useMemo)(()=>({...R,phone:{onNewTask:N}}),[R,N]);return(0,x.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,"data-session-shell":T?`desktop`:`phone`,children:(0,x.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1`,children:(0,x.jsx)(i,{notify:e.notify,navigate:e.navigate,browserNotify:e.browserNotify,pendingAsset:e.pendingAsset,onAssetConsumed:e.onAssetConsumed,requestText:e.requestText,requestConfirm:e.requestConfirm,routeSessionId:l,onRouteSessionChange:k,routeLeading:T?void 0:(0,x.jsx)(h,{}),pageChrome:T?R:z})})})}function E(e,t){let{language:n}=c(),{available:r,placed:i}=f(`session-panel`);return(0,b.useMemo)(()=>{if(r)return{tabs:e=>d(i,e,n),render:(n,{sessionId:r,cwd:a})=>{let o=i.find(e=>e.instance.instanceId===n);return o?(0,x.jsx)(b.Suspense,{fallback:null,children:(0,x.jsx)(u,{placed:o,sessionId:r,cwd:a,notify:e,onOpenSession:t})}):null},addMenu:({cwd:t,onAdded:n})=>(0,x.jsx)(b.Suspense,{fallback:null,children:(0,x.jsx)(l,{cwd:t,notify:e,onAdded:n})})}},[r,n,e,t,i])}export{S as SESSION_COMPACT_QUERY,C as SESSION_TABLET_QUERY,T as SessionShell};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,l as n,u as r}from"./vendor-router-CSN_DGvx.js";import{i,r as a}from"./vendor-react-DwNgTV1j.js";import{f as o,r as s}from"./routes-DIeaqWVc.js";import{t as c}from"./use-i18n-CIheiCov.js";import{a as l,o as u,s as d,u as f}from"./placements-Cw2TcTmd.js";import{t as p}from"./client-store-xZC2AfqC.js";import{t as m}from"./usePhoneShell-sWQz-gv8.js";import{t as h}from"./PhoneMenuButton-1dPMDaRV.js";import{t as g}from"./useSessionListQuery-K7Hh_V_2.js";import{t as _}from"./public-DdhGlwHC.js";import{i as v,t as y}from"./session-home-CLGrhgld.js";var b=e(i(),1),x=a(),S=`(max-width: 1279px), (max-height: 760px)`,C=`(min-width: 960px) and (min-height: 640px)`;function w(e){let[t,n]=(0,b.useState)(()=>window.matchMedia(e).matches);return(0,b.useEffect)(()=>{let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function T({context:e,ChatPage:i}){let a=r(),c=n(),{sessionId:l=``}=t(),u=m(),d=p(e=>e.client===`mobile-app`),f=w(`(min-width: 960px) and (min-height: 640px)`)&&d,C=w(S),T=!u||f,D=(0,b.useRef)(l);D.current=l;let O=(0,b.useRef)(c.state);O.current=c.state;let k=(0,b.useCallback)(e=>{if(!e||e===D.current)return;let t=D.current===`new`;a(o(e),{replace:t,state:t?O.current:void 0})},[a]),A=g(),j=!!(l&&l!==`new`&&A.data?.sessions.some(e=>e.id===l));(0,b.useEffect)(()=>{j&&v(l)},[j,l]);let M=E(e.notify,k),N=e.startNewTask,P=l===`new`,F=e.notify,I=_({onError:e=>F(e,`error`)}),L=P?I:void 0,R=(0,b.useMemo)(()=>({compact:C,overlayOnly:d,onOpenComponents:()=>a(s.components),componentTabs:M,onArchived:e=>{y(e),a(`/`,{replace:!0})},onHome:()=>a(`/`),onNewTask:N,newTaskDraft:L}),[C,d,a,M,N,L]),z=(0,b.useMemo)(()=>({...R,phone:{onNewTask:N}}),[R,N]);return(0,x.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,"data-session-shell":T?`desktop`:`phone`,children:(0,x.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1`,children:(0,x.jsx)(i,{notify:e.notify,navigate:e.navigate,browserNotify:e.browserNotify,pendingAsset:e.pendingAsset,onAssetConsumed:e.onAssetConsumed,requestText:e.requestText,requestConfirm:e.requestConfirm,routeSessionId:l,onRouteSessionChange:k,routeLeading:T?void 0:(0,x.jsx)(h,{}),pageChrome:T?R:z})})})}function E(e,t){let{language:n}=c(),{available:r,placed:i}=f(`session-panel`);return(0,b.useMemo)(()=>{if(r)return{tabs:e=>d(i,e,n),render:(n,{sessionId:r,cwd:a})=>{let o=i.find(e=>e.instance.instanceId===n);return o?(0,x.jsx)(b.Suspense,{fallback:null,children:(0,x.jsx)(u,{placed:o,sessionId:r,cwd:a,notify:e,onOpenSession:t})}):null},addMenu:({cwd:t,onAdded:n})=>(0,x.jsx)(b.Suspense,{fallback:null,children:(0,x.jsx)(l,{cwd:t,notify:e,onAdded:n})})}},[r,n,e,t,i])}export{S as SESSION_COMPACT_QUERY,C as SESSION_TABLET_QUERY,T as SessionShell};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-_vdxObu5.js";import{t as i}from"./runtime-capabilities-store-BNM5Ug-5.js";import{t as a}from"./arrow-left-B8oVrQ2S.js";import{t as o}from"./arrow-right-DqLOhpA2.js";import{r as s}from"./settings-navigation-DiP_AM1C.js";import{t as c}from"./utils-C8uzG5AZ.js";import{t as l}from"./kbd-CAufZTkl.js";import{n as u}from"./shortcuts-D72gQCwH.js";import{n as d,r as f}from"./back-navigation-CK7X_5Bc.js";var p=e(t(),1);function m(e,t=!0){let n=(0,p.useRef)(e);n.current=e,(0,p.useEffect)(()=>{if(!t)return;let e=new WeakSet,r=t=>{t.key===`Escape`&&d()&&e.add(t)},i=t=>{t.key!==`Escape`||t.defaultPrevented||t.isComposing||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey||e.has(t)||u(t.target)&&!f(t)||(t.preventDefault(),n.current())};return window.addEventListener(`keydown`,r,!0),window.addEventListener(`keydown`,i),()=>{window.removeEventListener(`keydown`,r,!0),window.removeEventListener(`keydown`,i)}},[t])}var h=n(),g=`flex h-8 w-full min-w-0 items-center gap-2.5 rounded-[var(--r-md)] px-2.5 text-left text-[length:var(--app-font-size)] text-content 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`;function _({configSection:e,onSelectSection:t,onBack:n,onOpenFeatures:u,search:d,version:f,footer:p}){let{t:_}=r(),v=i(e=>e.capabilities),y=s(_,{capabilities:v});m(n);let b=_(`config:settingsShell.back`);return(0,h.jsxs)(`nav`,{"aria-label":_(`config:settingsShell.settingsNavigation`),"data-settings-sidebar":!0,className:`flex min-h-0 flex-1 flex-col animate-in fade-in duration-(--d-fast) motion-reduce:animate-none`,children:[(0,h.jsxs)(`div`,{"data-window-drag-region":!0,className:`flex h-[52px] flex-none items-center gap-2 pr-3.5 pl-2`,children:[(0,h.jsxs)(`button`,{type:`button`,"data-settings-back":!0,"aria-keyshortcuts":`Escape`,className:`flex h-8 items-center gap-2 rounded-[var(--r-md)] pr-2.5 pl-1.5 text-sm text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11`,onClick:n,children:[(0,h.jsx)(a,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`}),b]}),(0,h.jsx)(`span`,{className:`flex-1`}),(0,h.jsx)(l,{"aria-hidden":`true`,className:`border-transparent bg-transparent text-content-faint shadow-none pointer-coarse:hidden`,children:`Esc`})]}),(0,h.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-contain px-2 pb-2`,children:[(0,h.jsx)(`h2`,{className:`m-0 px-2.5 pt-2.5 pb-3 text-xl leading-7 font-semibold tracking-[-.01em] text-content`,children:_(`navigation:navigation.settings`)}),d&&(0,h.jsx)(`div`,{className:`relative z-20 mb-2 px-0.5`,children:d}),(0,h.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-px p-0`,children:y.map(n=>{let r=n.section===e;return(0,h.jsx)(`li`,{children:(0,h.jsxs)(`button`,{type:`button`,"data-settings-section":n.section,"aria-current":r?`page`:void 0,className:c(g,r&&`bg-surface-active font-medium hover:bg-surface-active`),onClick:()=>t(n.section),children:[(0,h.jsx)(n.icon,{className:`size-4 flex-none text-content-secondary`,strokeWidth:1.75,"aria-hidden":`true`}),(0,h.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.label}),n.section===`about`&&f&&(0,h.jsxs)(`small`,{className:`font-mono text-xs font-normal text-content-muted tabular-nums`,children:[`v`,f]})]})},n.section)})}),(0,h.jsxs)(`button`,{type:`button`,"data-settings-features-link":!0,className:`mt-4 flex min-h-8 w-full items-center gap-1 rounded-[var(--r-md)] px-2.5 py-1 text-left text-xs leading-5 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:min-h-11`,onClick:u,children:[(0,h.jsx)(`span`,{className:`min-w-0 flex-1`,children:_(`config:settingsShell.featuresHint`)}),(0,h.jsx)(o,{className:`size-3.5 flex-none`,"aria-hidden":`true`})]})]}),p&&(0,h.jsx)(`div`,{className:`flex-none p-2`,children:p})]})}export{_ as SettingsSidebar};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CIheiCov.js";import{t as i}from"./runtime-capabilities-store-CWJvmV83.js";import{t as a}from"./arrow-left-B8oVrQ2S.js";import{t as o}from"./arrow-right-DqLOhpA2.js";import{r as s}from"./settings-navigation-DiP_AM1C.js";import{t as c}from"./utils-C8uzG5AZ.js";import{t as l}from"./kbd-CAufZTkl.js";import{n as u}from"./shortcuts-CVPFuAiJ.js";import{n as d,r as f}from"./back-navigation-CK7X_5Bc.js";var p=e(t(),1);function m(e,t=!0){let n=(0,p.useRef)(e);n.current=e,(0,p.useEffect)(()=>{if(!t)return;let e=new WeakSet,r=t=>{t.key===`Escape`&&d()&&e.add(t)},i=t=>{t.key!==`Escape`||t.defaultPrevented||t.isComposing||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey||e.has(t)||u(t.target)&&!f(t)||(t.preventDefault(),n.current())};return window.addEventListener(`keydown`,r,!0),window.addEventListener(`keydown`,i),()=>{window.removeEventListener(`keydown`,r,!0),window.removeEventListener(`keydown`,i)}},[t])}var h=n(),g=`flex h-8 w-full min-w-0 items-center gap-2.5 rounded-[var(--r-md)] px-2.5 text-left text-[length:var(--app-font-size)] text-content 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`;function _({configSection:e,onSelectSection:t,onBack:n,onOpenFeatures:u,search:d,version:f,footer:p}){let{t:_}=r(),v=i(e=>e.capabilities),y=s(_,{capabilities:v});m(n);let b=_(`config:settingsShell.back`);return(0,h.jsxs)(`nav`,{"aria-label":_(`config:settingsShell.settingsNavigation`),"data-settings-sidebar":!0,className:`flex min-h-0 flex-1 flex-col animate-in fade-in duration-(--d-fast) motion-reduce:animate-none`,children:[(0,h.jsxs)(`div`,{"data-window-drag-region":!0,className:`flex h-[52px] flex-none items-center gap-2 pr-3.5 pl-2`,children:[(0,h.jsxs)(`button`,{type:`button`,"data-settings-back":!0,"aria-keyshortcuts":`Escape`,className:`flex h-8 items-center gap-2 rounded-[var(--r-md)] pr-2.5 pl-1.5 text-sm text-content-secondary transition-colors duration-(--d-fast) hover:bg-surface-hover hover:text-content focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus pointer-coarse:h-11`,onClick:n,children:[(0,h.jsx)(a,{className:`size-[18px]`,strokeWidth:1.75,"aria-hidden":`true`}),b]}),(0,h.jsx)(`span`,{className:`flex-1`}),(0,h.jsx)(l,{"aria-hidden":`true`,className:`border-transparent bg-transparent text-content-faint shadow-none pointer-coarse:hidden`,children:`Esc`})]}),(0,h.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-x-hidden overflow-y-auto overscroll-contain px-2 pb-2`,children:[(0,h.jsx)(`h2`,{className:`m-0 px-2.5 pt-2.5 pb-3 text-xl leading-7 font-semibold tracking-[-.01em] text-content`,children:_(`navigation:navigation.settings`)}),d&&(0,h.jsx)(`div`,{className:`relative z-20 mb-2 px-0.5`,children:d}),(0,h.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-px p-0`,children:y.map(n=>{let r=n.section===e;return(0,h.jsx)(`li`,{children:(0,h.jsxs)(`button`,{type:`button`,"data-settings-section":n.section,"aria-current":r?`page`:void 0,className:c(g,r&&`bg-surface-active font-medium hover:bg-surface-active`),onClick:()=>t(n.section),children:[(0,h.jsx)(n.icon,{className:`size-4 flex-none text-content-secondary`,strokeWidth:1.75,"aria-hidden":`true`}),(0,h.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.label}),n.section===`about`&&f&&(0,h.jsxs)(`small`,{className:`font-mono text-xs font-normal text-content-muted tabular-nums`,children:[`v`,f]})]})},n.section)})}),(0,h.jsxs)(`button`,{type:`button`,"data-settings-features-link":!0,className:`mt-4 flex min-h-8 w-full items-center gap-1 rounded-[var(--r-md)] px-2.5 py-1 text-left text-xs leading-5 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:min-h-11`,onClick:u,children:[(0,h.jsx)(`span`,{className:`min-w-0 flex-1`,children:_(`config:settingsShell.featuresHint`)}),(0,h.jsx)(o,{className:`size-3.5 flex-none`,"aria-hidden":`true`})]})]}),p&&(0,h.jsx)(`div`,{className:`flex-none p-2`,children:p})]})}export{_ as SettingsSidebar};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-_vdxObu5.js";import{t as i}from"./settings-QX0oWnVK.js";import{t as a}from"./button-CCcCN8tE.js";import{c as o}from"./shortcuts-D72gQCwH.js";import{a as s,i as c,l,n as u,o as d,s as f,t as p}from"./dialog-DFZX_Dek.js";import{a as m,i as h,n as g,r as _,t as v}from"./ShortcutKeys-BuHXNKVW.js";var y=e(t(),1),b=n();function x({open:e,onOpenChange:t,onCustomize:n}){let{t:x}=r(),S=m(),C=o(e=>e.bindings),w=o(e=>e.boardBindings),[T]=(0,y.useState)(()=>document.activeElement instanceof HTMLElement?document.activeElement:null),E=(0,y.useRef)(null),[D,O]=(0,y.useState)(!0);return(0,b.jsx)(p,{open:e,onOpenChange:t,children:(0,b.jsxs)(c,{size:`wide`,scrollMode:`body`,className:`max-w-[min(92vw,760px)]`,"data-shortcut-help":!0,onOpenAutoFocus:e=>{E.current&&(e.preventDefault(),E.current.focus({preventScroll:!0}))},onCloseAutoFocus:e=>{T?.isConnected&&(e.preventDefault(),T.focus({preventScroll:!0}))},children:[(0,b.jsxs)(f,{className:`pr-8`,children:[(0,b.jsx)(l,{children:x(`board:shortcuts.shortcutHelp`)}),(0,b.jsx)(s,{children:x(`board:shortcuts.helpDescription`)})]}),(0,b.jsx)(u,{ref:E,tabIndex:0,role:`region`,"aria-label":x(`board:shortcuts.shortcutHelp`),"data-quiet-focus":D||void 0,onKeyDown:e=>{let{key:t,metaKey:n,ctrlKey:r,altKey:i}=e;t===`Escape`||t===`Shift`||n||r||i||O(!1)},onBlur:()=>O(!1),className:`-mx-4 px-4 py-2 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus data-quiet-focus:focus-visible:outline-none`,children:(0,b.jsx)(`div`,{className:`grid gap-x-8 gap-y-5 min-[720px]:grid-cols-2`,children:g.map(e=>(0,b.jsxs)(`section`,{"aria-labelledby":`shortcut-help-${e.id}`,"data-shortcut-help-group":e.id,className:e.id===`board`?`min-[720px]:row-span-2`:void 0,children:[(0,b.jsx)(`h3`,{id:`shortcut-help-${e.id}`,className:`text-[13px] leading-5 font-semibold text-content`,children:S.groups[e.id].title}),(0,b.jsx)(`p`,{className:`mb-1 text-xs text-content-muted`,children:S.groups[e.id].hint}),(0,b.jsx)(`dl`,{className:`divide-y divide-stroke-soft`,children:e.entries.map(e=>(0,b.jsxs)(`div`,{className:`flex min-h-7 min-w-0 items-center justify-between gap-3 py-0.5`,"data-shortcut-help-entry":_(e),children:[(0,b.jsx)(`dt`,{className:`min-w-0 text-[13px] text-content`,children:S.label(e)}),(0,b.jsx)(`dd`,{className:`flex-none`,children:(0,b.jsx)(v,{keys:h(e,C,w),className:`justify-end`})})]},_(e)))})]},e.id))})}),n&&(0,b.jsx)(d,{children:(0,b.jsxs)(a,{variant:`outline`,size:`dialogAction`,onClick:()=>{t(!1),n()},children:[(0,b.jsx)(i,{"aria-hidden":`true`}),x(`board:shortcuts.helpCustomize`)]})})]})})}export{x as ShortcutHelpDialog};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CIheiCov.js";import{t as i}from"./settings-QX0oWnVK.js";import{t as a}from"./button-CCcCN8tE.js";import{c as o}from"./shortcuts-CVPFuAiJ.js";import{a as s,i as c,l,n as u,o as d,s as f,t as p}from"./dialog-BgFAhLng.js";import{a as m,i as h,n as g,r as _,t as v}from"./ShortcutKeys-B6hllpKE.js";var y=e(t(),1),b=n();function x({open:e,onOpenChange:t,onCustomize:n}){let{t:x}=r(),S=m(),C=o(e=>e.bindings),w=o(e=>e.boardBindings),[T]=(0,y.useState)(()=>document.activeElement instanceof HTMLElement?document.activeElement:null),E=(0,y.useRef)(null),[D,O]=(0,y.useState)(!0);return(0,b.jsx)(p,{open:e,onOpenChange:t,children:(0,b.jsxs)(c,{size:`wide`,scrollMode:`body`,className:`max-w-[min(92vw,760px)]`,"data-shortcut-help":!0,onOpenAutoFocus:e=>{E.current&&(e.preventDefault(),E.current.focus({preventScroll:!0}))},onCloseAutoFocus:e=>{T?.isConnected&&(e.preventDefault(),T.focus({preventScroll:!0}))},children:[(0,b.jsxs)(f,{className:`pr-8`,children:[(0,b.jsx)(l,{children:x(`board:shortcuts.shortcutHelp`)}),(0,b.jsx)(s,{children:x(`board:shortcuts.helpDescription`)})]}),(0,b.jsx)(u,{ref:E,tabIndex:0,role:`region`,"aria-label":x(`board:shortcuts.shortcutHelp`),"data-quiet-focus":D||void 0,onKeyDown:e=>{let{key:t,metaKey:n,ctrlKey:r,altKey:i}=e;t===`Escape`||t===`Shift`||n||r||i||O(!1)},onBlur:()=>O(!1),className:`-mx-4 px-4 py-2 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus data-quiet-focus:focus-visible:outline-none`,children:(0,b.jsx)(`div`,{className:`grid gap-x-8 gap-y-5 min-[720px]:grid-cols-2`,children:g.map(e=>(0,b.jsxs)(`section`,{"aria-labelledby":`shortcut-help-${e.id}`,"data-shortcut-help-group":e.id,className:e.id===`board`?`min-[720px]:row-span-2`:void 0,children:[(0,b.jsx)(`h3`,{id:`shortcut-help-${e.id}`,className:`text-[13px] leading-5 font-semibold text-content`,children:S.groups[e.id].title}),(0,b.jsx)(`p`,{className:`mb-1 text-xs text-content-muted`,children:S.groups[e.id].hint}),(0,b.jsx)(`dl`,{className:`divide-y divide-stroke-soft`,children:e.entries.map(e=>(0,b.jsxs)(`div`,{className:`flex min-h-7 min-w-0 items-center justify-between gap-3 py-0.5`,"data-shortcut-help-entry":_(e),children:[(0,b.jsx)(`dt`,{className:`min-w-0 text-[13px] text-content`,children:S.label(e)}),(0,b.jsx)(`dd`,{className:`flex-none`,children:(0,b.jsx)(v,{keys:h(e,C,w),className:`justify-end`})})]},_(e)))})]},e.id))})}),n&&(0,b.jsx)(d,{children:(0,b.jsxs)(a,{variant:`outline`,size:`dialogAction`,onClick:()=>{t(!1),n()},children:[(0,b.jsx)(i,{"aria-hidden":`true`}),x(`board:shortcuts.helpCustomize`)]})})]})})}export{x as ShortcutHelpDialog};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-_vdxObu5.js";import{t as i}from"./utils-C8uzG5AZ.js";import{n as a,t as o}from"./kbd-CAufZTkl.js";import{t as s}from"./shortcuts-D72gQCwH.js";var c=e=>({kind:`app`,action:e}),l=e=>({kind:`board`,action:e}),u=(e,...t)=>({kind:`fixed`,id:e,keys:t}),d=[{id:`global`,entries:[c(`commandPalette`),c(`primaryAction`),c(`toggleSidebar`),c(`agentPanel`),c(`openBoard`),c(`openMore`),c(`openSettings`),c(`jumpToAttention`),c(`previousAgent`),c(`nextAgent`),c(`cycleFocusRegion`),c(`toggleTerminal`),c(`shortcutHelp`),c(`focusComposer`),c(`voiceInput`),c(`openSession`),c(`openComponents`)]},{id:`sidebar`,entries:[u(`sidebarMove`,[`↑`],[`↓`]),u(`sidebarOpen`,[`Enter`])]},{id:`board`,entries:[c(`focusSearch`),l(`boardNext`),l(`boardPrevious`),u(`boardMove`,[`↑`],[`↓`]),u(`boardOpen`,[`Enter`]),l(`boardApprove`),l(`boardDeny`),l(`boardRetry`),l(`boardTriage`),u(`boardExitTriage`,[`Esc`]),l(`boardToggleGrouping`)]},{id:`session`,entries:[c(`toggleInspector`),c(`sessionTree`),c(`sideChat`),c(`sendMessage`),c(`steerMessage`),u(`newline`,[`Shift`,`Enter`]),u(`cycleRunMode`,[`Shift`,`Tab`]),u(`stopRun`,[`Esc`])]}];function f(e){return e.kind===`fixed`?`fixed:${e.id}`:e.action}function p(e,t,n){if(e.kind===`fixed`)return e.keys;let r=s(e.kind===`app`?t[e.action]:n[e.action]);return r?[r.split(` + `)]:null}function m(){let{t:e}=r(),t={commandPalette:e(`config:shortcuts.commandPalette`),primaryAction:e(`config:shortcuts.primaryAction`),focusSearch:e(`board:shortcuts.focusSearch`),toggleSidebar:e(`config:shortcuts.toggleSidebar`),toggleTerminal:e(`config:shortcuts.toggleTerminal`),openSettings:e(`config:shortcuts.openSettings`),focusComposer:e(`config:shortcuts.focusComposer`),sendMessage:e(`board:shortcuts.sendMessage`),voiceInput:e(`config:shortcuts.voiceInput`),openBoard:e(`config:shortcuts.openBoard`),openComponents:e(`config:shortcuts.openComponents`),openMore:e(`config:shortcuts.openMore`),jumpToAttention:e(`config:shortcuts.jumpToAttention`),agentPanel:e(`board:shortcuts.agentPanel`),toggleInspector:e(`board:shortcuts.toggleInspector`),previousAgent:e(`board:shortcuts.previousAgent`),nextAgent:e(`board:shortcuts.nextAgent`),steerMessage:e(`board:shortcuts.steerMessage`),shortcutHelp:e(`board:shortcuts.shortcutHelp`),openSession:e(`board:shortcuts.openSession`),sessionTree:e(`board:shortcuts.sessionTree`),sideChat:e(`board:shortcuts.sideChat`),cycleFocusRegion:e(`board:shortcuts.cycleFocusRegion`)},n={boardNext:e(`config:shortcuts.boardNext`),boardPrevious:e(`config:shortcuts.boardPrevious`),boardApprove:e(`config:shortcuts.boardApprove`),boardDeny:e(`config:shortcuts.boardDeny`),boardRetry:e(`config:shortcuts.boardRetry`),boardTriage:e(`config:shortcuts.boardTriage`),boardToggleGrouping:e(`config:shortcuts.boardToggleGrouping`)},i={sidebarMove:e(`board:shortcuts.sidebarMove`),sidebarOpen:e(`board:shortcuts.sidebarOpen`),boardMove:e(`board:shortcuts.boardMove`),boardOpen:e(`board:shortcuts.boardOpen`),boardExitTriage:e(`board:shortcuts.boardExitTriage`),newline:e(`board:shortcuts.newline`),cycleRunMode:e(`board:shortcuts.cycleRunMode`),stopRun:e(`board:shortcuts.stopRun`)};return{actions:t,boardActions:n,groups:{global:{title:e(`board:shortcuts.groupGlobal`),hint:e(`board:shortcuts.globalHint`)},sidebar:{title:e(`board:shortcuts.groupSidebar`),hint:e(`board:shortcuts.sidebarHint`)},board:{title:e(`board:shortcuts.groupBoard`),hint:e(`board:shortcuts.boardHint`)},session:{title:e(`board:shortcuts.groupSession`),hint:e(`board:shortcuts.sessionHint`)}},label:e=>e.kind===`app`?t[e.action]:e.kind===`board`?n[e.action]:i[e.id]}}var h=e(t(),1),g=n();function _({keys:e,className:t}){let{t:n}=r();return e?.length?(0,g.jsx)(`span`,{className:i(`inline-flex min-w-0 flex-wrap items-center gap-1`,t),children:e.map((e,t)=>(0,g.jsxs)(h.Fragment,{children:[t>0&&(0,g.jsx)(`span`,{"aria-hidden":`true`,className:`text-xs text-content-muted`,children:`/`}),(0,g.jsx)(a,{children:e.map(e=>(0,g.jsx)(o,{className:`text-content-secondary`,children:e},e))})]},e.join(`+`)))}):(0,g.jsx)(`span`,{className:i(`text-xs text-content-muted`,t),children:n(`config:shortcuts.disabled`)})}export{m as a,p as i,d as n,f as r,_ as t};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CIheiCov.js";import{t as i}from"./utils-C8uzG5AZ.js";import{n as a,t as o}from"./kbd-CAufZTkl.js";import{t as s}from"./shortcuts-CVPFuAiJ.js";var c=e=>({kind:`app`,action:e}),l=e=>({kind:`board`,action:e}),u=(e,...t)=>({kind:`fixed`,id:e,keys:t}),d=[{id:`global`,entries:[c(`commandPalette`),c(`primaryAction`),c(`toggleSidebar`),c(`agentPanel`),c(`openBoard`),c(`openMore`),c(`openSettings`),c(`jumpToAttention`),c(`previousAgent`),c(`nextAgent`),c(`cycleFocusRegion`),c(`toggleTerminal`),c(`shortcutHelp`),c(`focusComposer`),c(`voiceInput`),c(`openSession`),c(`openComponents`)]},{id:`sidebar`,entries:[u(`sidebarMove`,[`↑`],[`↓`]),u(`sidebarOpen`,[`Enter`])]},{id:`board`,entries:[c(`focusSearch`),l(`boardNext`),l(`boardPrevious`),u(`boardMove`,[`↑`],[`↓`]),u(`boardOpen`,[`Enter`]),l(`boardApprove`),l(`boardDeny`),l(`boardRetry`),l(`boardTriage`),u(`boardExitTriage`,[`Esc`]),l(`boardToggleGrouping`)]},{id:`session`,entries:[c(`toggleInspector`),c(`sessionTree`),c(`sideChat`),c(`sendMessage`),c(`steerMessage`),u(`newline`,[`Shift`,`Enter`]),u(`cycleRunMode`,[`Shift`,`Tab`]),u(`stopRun`,[`Esc`])]}];function f(e){return e.kind===`fixed`?`fixed:${e.id}`:e.action}function p(e,t,n){if(e.kind===`fixed`)return e.keys;let r=s(e.kind===`app`?t[e.action]:n[e.action]);return r?[r.split(` + `)]:null}function m(){let{t:e}=r(),t={commandPalette:e(`config:shortcuts.commandPalette`),primaryAction:e(`config:shortcuts.primaryAction`),focusSearch:e(`board:shortcuts.focusSearch`),toggleSidebar:e(`config:shortcuts.toggleSidebar`),toggleTerminal:e(`config:shortcuts.toggleTerminal`),openSettings:e(`config:shortcuts.openSettings`),focusComposer:e(`config:shortcuts.focusComposer`),sendMessage:e(`board:shortcuts.sendMessage`),voiceInput:e(`config:shortcuts.voiceInput`),openBoard:e(`config:shortcuts.openBoard`),openComponents:e(`config:shortcuts.openComponents`),openMore:e(`config:shortcuts.openMore`),jumpToAttention:e(`config:shortcuts.jumpToAttention`),agentPanel:e(`board:shortcuts.agentPanel`),toggleInspector:e(`board:shortcuts.toggleInspector`),previousAgent:e(`board:shortcuts.previousAgent`),nextAgent:e(`board:shortcuts.nextAgent`),steerMessage:e(`board:shortcuts.steerMessage`),shortcutHelp:e(`board:shortcuts.shortcutHelp`),openSession:e(`board:shortcuts.openSession`),sessionTree:e(`board:shortcuts.sessionTree`),sideChat:e(`board:shortcuts.sideChat`),cycleFocusRegion:e(`board:shortcuts.cycleFocusRegion`)},n={boardNext:e(`config:shortcuts.boardNext`),boardPrevious:e(`config:shortcuts.boardPrevious`),boardApprove:e(`config:shortcuts.boardApprove`),boardDeny:e(`config:shortcuts.boardDeny`),boardRetry:e(`config:shortcuts.boardRetry`),boardTriage:e(`config:shortcuts.boardTriage`),boardToggleGrouping:e(`config:shortcuts.boardToggleGrouping`)},i={sidebarMove:e(`board:shortcuts.sidebarMove`),sidebarOpen:e(`board:shortcuts.sidebarOpen`),boardMove:e(`board:shortcuts.boardMove`),boardOpen:e(`board:shortcuts.boardOpen`),boardExitTriage:e(`board:shortcuts.boardExitTriage`),newline:e(`board:shortcuts.newline`),cycleRunMode:e(`board:shortcuts.cycleRunMode`),stopRun:e(`board:shortcuts.stopRun`)};return{actions:t,boardActions:n,groups:{global:{title:e(`board:shortcuts.groupGlobal`),hint:e(`board:shortcuts.globalHint`)},sidebar:{title:e(`board:shortcuts.groupSidebar`),hint:e(`board:shortcuts.sidebarHint`)},board:{title:e(`board:shortcuts.groupBoard`),hint:e(`board:shortcuts.boardHint`)},session:{title:e(`board:shortcuts.groupSession`),hint:e(`board:shortcuts.sessionHint`)}},label:e=>e.kind===`app`?t[e.action]:e.kind===`board`?n[e.action]:i[e.id]}}var h=e(t(),1),g=n();function _({keys:e,className:t}){let{t:n}=r();return e?.length?(0,g.jsx)(`span`,{className:i(`inline-flex min-w-0 flex-wrap items-center gap-1`,t),children:e.map((e,t)=>(0,g.jsxs)(h.Fragment,{children:[t>0&&(0,g.jsx)(`span`,{"aria-hidden":`true`,className:`text-xs text-content-muted`,children:`/`}),(0,g.jsx)(a,{children:e.map(e=>(0,g.jsx)(o,{className:`text-content-secondary`,children:e},e))})]},e.join(`+`)))}):(0,g.jsx)(`span`,{className:i(`text-xs text-content-muted`,t),children:n(`config:shortcuts.disabled`)})}export{m as a,p as i,d as n,f as r,_ as t};
@@ -1 +1 @@
1
- import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-_vdxObu5.js";import{t as n}from"./download-BCfIiuaL.js";import{t as r}from"./external-link-CEQqPcqc.js";import{t as i}from"./refresh-cw-TbWxTY4K.js";import{t as a}from"./rocket-BgLSjoHY.js";var o=e();function s({update:e,collapsed:s,onOpen:c}){let{t:l}=t(),u=e?.status||{state:`idle`},d=!!(e?.info?.desktop||e?.info?.mobile);if(![`available`,`downloading`,`downloaded`].includes(u.state))return null;let f=u.state===`downloading`,p=u.state===`downloaded`,m=l(p?`navigation:appSidebar.readyToRestart`:f?`navigation:appSidebar.downloading`:d?`navigation:appSidebar.updateAvailable`:`navigation:appSidebar.sourceUpdatesAvailable`),h=f?`${Math.round(u.percent||0)}%`:d&&u.availableVersion?`v${u.availableVersion}`:u.behindBy?l(`navigation:appSidebar.countCommitsBehindBranch`,{branch:u.branch||`main`,count:u.behindBy}):u.availableCommit?u.availableCommit.slice(0,7):l(`navigation:appSidebar.viewUpdateDetails`),g=p?a:f?i:d?n:r;return(0,o.jsxs)(`button`,{type:`button`,className:`flex min-h-11 w-full items-center rounded-sm border border-star-border bg-star-soft text-content transition-colors duration-[var(--d-fast)] hover:bg-surface-hover ${s?`justify-center px-0`:`gap-2.5 px-3 text-left`}`,title:`${m} · ${h}`,"aria-label":`${m} · ${h}`,onClick:c,children:[(0,o.jsx)(g,{className:`shrink-0 text-accent-fg ${f?`animate-spin`:``}`,size:16}),!s&&(0,o.jsxs)(`span`,{className:`min-w-0`,children:[(0,o.jsx)(`strong`,{className:`block truncate text-xs font-medium`,children:m}),(0,o.jsx)(`small`,{className:`mt-0.5 block truncate text-xs text-content-muted tabular-nums`,children:h})]})]})}export{s as default};
1
+ import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-CIheiCov.js";import{t as n}from"./download-BCfIiuaL.js";import{t as r}from"./external-link-CEQqPcqc.js";import{t as i}from"./refresh-cw-TbWxTY4K.js";import{t as a}from"./rocket-BgLSjoHY.js";var o=e();function s({update:e,collapsed:s,onOpen:c}){let{t:l}=t(),u=e?.status||{state:`idle`},d=!!(e?.info?.desktop||e?.info?.mobile);if(![`available`,`downloading`,`downloaded`].includes(u.state))return null;let f=u.state===`downloading`,p=u.state===`downloaded`,m=l(p?`navigation:appSidebar.readyToRestart`:f?`navigation:appSidebar.downloading`:d?`navigation:appSidebar.updateAvailable`:`navigation:appSidebar.sourceUpdatesAvailable`),h=f?`${Math.round(u.percent||0)}%`:d&&u.availableVersion?`v${u.availableVersion}`:u.behindBy?l(`navigation:appSidebar.countCommitsBehindBranch`,{branch:u.branch||`main`,count:u.behindBy}):u.availableCommit?u.availableCommit.slice(0,7):l(`navigation:appSidebar.viewUpdateDetails`),g=p?a:f?i:d?n:r;return(0,o.jsxs)(`button`,{type:`button`,className:`flex min-h-11 w-full items-center rounded-sm border border-star-border bg-star-soft text-content transition-colors duration-[var(--d-fast)] hover:bg-surface-hover ${s?`justify-center px-0`:`gap-2.5 px-3 text-left`}`,title:`${m} · ${h}`,"aria-label":`${m} · ${h}`,onClick:c,children:[(0,o.jsx)(g,{className:`shrink-0 text-accent-fg ${f?`animate-spin`:``}`,size:16}),!s&&(0,o.jsxs)(`span`,{className:`min-w-0`,children:[(0,o.jsx)(`strong`,{className:`block truncate text-xs font-medium`,children:m}),(0,o.jsx)(`small`,{className:`mt-0.5 block truncate text-xs text-content-muted tabular-nums`,children:h})]})]})}export{s as default};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-_vdxObu5.js";import{t as i}from"./api-BW_X0FMZ.js";import{t as a}from"./file-code-corner-BnE1ljT0.js";import{t as o}from"./image-BY_c3FYU.js";import{t as s}from"./package-BOmkLaKS.js";import{t as c}from"./plus-fQbSqB1n.js";import{t as l}from"./save-CHBB52P8.js";import{t as u}from"./sparkles-S_eeuqn9.js";import{t as d}from"./trash-2-CNrPOoPR.js";import{t as f}from"./wrench-6pg6_bqI.js";import{t as p}from"./more-pages-D_PnxLN0.js";import{t as ee}from"./checkbox-BrEHgFV0.js";import{t as m}from"./button-CCcCN8tE.js";import{s as h}from"./shortcuts-D72gQCwH.js";import{n as g,t as _}from"./PageState-Cz6vFMXv.js";import{a as v,i as y,n as b,o as x,r as S,s as te,t as ne}from"./FeaturePage-BB1TeMlr.js";import{c as C,s as w}from"./app-primitives-Drz_SjnR.js";var T=e(t(),1),E=n(),D=[`all`,`global`,`project`,`design`,`code`,`docs`,`privileged`],O=`grid grid-cols-[88px_minmax(0,1fr)] gap-x-3 gap-y-1.5 text-xs [&_dd]:min-w-0 [&_dd]:[overflow-wrap:anywhere] [&_dd]:text-content-soft [&_dt]:text-content-muted [&>div]:contents`;function k(e,t=``){return t?`${e}${e.includes(`?`)?`&`:`?`}sessionId=${encodeURIComponent(t)}`:e}function A(e,t){return t(e===`global`?`skills:skillsPage.global`:e===`project`?`skills:skillsPage.project`:e===`design`?`skills:skillsPage.design`:e===`code`?`skills:skillsPage.code`:e===`docs`?`skills:skillsPage.documents`:e===`privileged`?`skills:skillsPage.highPrivilege`:`skills:skillsPage.all`)}function j(e){let t=`${e?.name||``} ${e?.description||``}`.toLowerCase();return/image|visual|design|figma|svg|图片|视觉|设计/.test(t)?o:/doc|pdf|文档|说明/.test(t)?a:/install|package|market|安装|包/.test(t)?s:/code|test|plugin|skill|代码|测试|插件|技能/.test(t)?f:u}function re(e,t){if(t===`all`)return!0;if(t===`global`)return e.sourceInfo?.scope!==`project`;if(t===`project`)return e.sourceInfo?.scope===`project`;let n=`${e.name} ${e.description} ${(e.allowedTools||[]).join(` `)}`.toLowerCase();return t===`design`?/image|visual|design|figma|svg|图片|视觉|设计/.test(n):t===`code`?/code|test|plugin|代码|测试|插件/.test(n):t===`docs`?/doc|pdf|文档|说明/.test(n):t!==`privileged`||(e.allowedTools||[]).some(e=>[`bash`,`write`,`edit`].includes(e))}function M({notify:e,activeSessionId:t=``,onBack:n,requestText:a,requestConfirm:o}){let{t:u}=r(),f=h(`focusSearch`),[M,ie]=(0,T.useState)(``),[N,P]=(0,T.useState)(null),[F,I]=(0,T.useState)(``),[L,R]=(0,T.useState)(`all`),[z,B]=(0,T.useState)(!1),[V,H]=(0,T.useState)(!0),[U,W]=(0,T.useState)(``),G=(0,T.useCallback)(async()=>{W(``);try{let e=await i(k(`/api/skills`,t));return P(e),I(t=>e.skills.some(e=>e.id===t)?t:``),e}catch(e){return W(e instanceof Error?e.message:String(e)),null}finally{H(!1)}},[t]);(0,T.useEffect)(()=>{G()},[G]);let K=(0,T.useCallback)(async()=>{let n=await a?.({title:u(`skills:skillsPage.importGlobalSkill`),message:u(`skills:skillsPage.globalSkillSourceHelp`),inputLabel:u(`skills:skillsPage.skillSource`),placeholder:`E:\\path\\to\\skill, npm:@scope/package, or https://github.com/...`,maxLength:2e3,confirmLabel:u(`skills:skillsPage.continue`)});if(n?.trim()&&await o?.({title:u(`skills:skillsPage.importGlobalSkill`),message:u(`skills:skillsPage.skillsProvideInstructionsToTheAgentAndMayIncludeExecutableScriptsConfirmThatYouTrustTheSource`),confirmLabel:u(`skills:skillsPage.import`),tone:`danger`})!==!1){B(!0),W(``);try{let r=await i(k(`/api/skills/install`,t),{method:`POST`,body:JSON.stringify({source:n})});P(r),I(r.installed?.[0]?.id||``),e(u(`skills:skillsPage.skillInstalledAndLoadedIntoTheAgentRuntime`),`success`)}catch(t){let n=t instanceof Error?t.message:String(t);W(n),e(n,`error`)}finally{B(!1)}}},[t,e,o,a,u]),q=N?.skills||[],J=M.trim().toLowerCase(),Y=q.filter(e=>re(e,L)&&`${e.name} ${e.description}`.toLowerCase().includes(J)),ae=q.filter(e=>e.sourceInfo?.scope!==`project`),oe=q.filter(e=>e.sourceInfo?.scope===`project`),se=Y.filter(e=>e.sourceInfo?.scope!==`project`),ce=Y.filter(e=>e.sourceInfo?.scope===`project`),X=(N?.packages||[]).map(e=>({source:e.source,description:e.scope===`project`?u(`skills:skillsPage.projectScopedConfiguration`):u(`skills:skillsPage.userScopedConfiguration`),status:e.installed?u(`skills:skillsPage.locallyReady`):u(`skills:skillsPage.notMaterialized`)})).filter(e=>`${e.source} ${e.description}`.toLowerCase().includes(J)),Z=async(e,n)=>{if(e){B(!0),W(``);try{let r=await i(k(`/api/skills/${encodeURIComponent(e.id)}`,t),{method:`PATCH`,body:JSON.stringify(n)});P(e=>{if(!e)return e;let t=e.skills.map(e=>e.id===r.id?r:e);return{...e,skills:t,counts:{...e.counts,enabled:t.filter(e=>e.enabled).length,modelInvocable:t.filter(e=>e.enabled&&e.modelInvocationEnabled).length}}})}catch(e){W(e instanceof Error?e.message:String(e))}finally{B(!1)}}},le=async()=>{B(!0),W(``);try{P(await i(k(`/api/skills/reload`,t),{method:`POST`,body:`{}`})),e(u(`skills:skillsPage.skillSettingsSavedAndReloaded`),`success`)}catch(e){W(e instanceof Error?e.message:String(e))}finally{B(!1)}},ue=async n=>{if(n.removable&&await o?.({title:u(`skills:skillsPage.uninstallSkill`),message:u(`skills:skillsPage.thisRemovesTheSkillDirectoryInstalledByPisperItDoesNotUninstallTheOriginalNpmOrGitPackage`),confirmLabel:u(`skills:skillsPage.uninstall`),tone:`danger`})!==!1){B(!0),W(``);try{await i(k(`/api/skills/${encodeURIComponent(n.id)}`,t),{method:`DELETE`}),await G(),I(``),e(u(`skills:skillsPage.skillUninstalled`),`success`)}catch(t){let n=t instanceof Error?t.message:String(t);W(n),e(n,`error`)}finally{B(!1)}}},de=e=>(0,E.jsxs)(`div`,{className:`skill-detail grid gap-3`,children:[(0,E.jsx)(`p`,{className:`text-sm leading-relaxed whitespace-pre-line text-content-soft`,children:e.description||u(`skills:skillsPage.addGlobalOrProjectSkill`)}),(0,E.jsx)(`dl`,{className:O,children:[[u(`skills:skillsPage.triggerMode`),e.modelInvocationEnabled?u(`skills:skillsPage.automaticManual`):u(`skills:skillsPage.manualOnly`),!1],[u(`skills:skillsPage.permissions`),e.allowedTools?.length?e.allowedTools.join(`, `):u(`skills:skillsPage.usesChatToolPermissions`),!!e.allowedTools?.length],[u(`skills:skillsPage.scope`),e.sourceInfo?.scope===`project`?u(`skills:skillsPage.project`):u(`skills:skillsPage.global`),!1],[u(`skills:skillsPage.version`),e.version||`latest`,!0],[u(`skills:skillsPage.source`),e.source||`—`,!0]].map(([e,t,n])=>(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`dt`,{children:e}),(0,E.jsx)(`dd`,{className:n?`font-mono`:void 0,children:t})]},e))}),(0,E.jsxs)(`fieldset`,{className:`grid min-w-0 gap-0.5`,children:[(0,E.jsx)(`legend`,{className:`mb-1 text-xs font-medium text-content-muted`,children:u(`skills:skillsPage.triggerConditions`)}),[[u(`skills:skillsPage.allowAutomaticModelInvocation`),!!e.modelInvocationEnabled,!1,t=>void Z(e,{modelInvocationEnabled:t})],[u(`skills:skillsPage.supportManualSkillCommand`),!!e.command,!0],[u(`skills:skillsPage.projectScopedSkill`),e.sourceInfo?.scope===`project`,!0],[u(`skills:skillsPage.declaresRequiredTools`),!!e.allowedTools?.length,!0]].map(([e,t,n,r])=>(0,E.jsxs)(`label`,{className:`check-row flex min-h-8 items-center gap-2.5 text-sm text-content has-disabled:text-content-muted max-[650px]:min-h-11`,children:[(0,E.jsx)(ee,{checked:t,disabled:z||n,onCheckedChange:e=>r?.(e===!0)}),(0,E.jsx)(`span`,{children:e})]},e))]}),(0,E.jsx)(`div`,{className:`flex justify-end`,children:e.removable?(0,E.jsxs)(m,{variant:`ghost`,className:`text-danger hover:bg-danger-soft hover:text-danger max-[650px]:h-11`,disabled:z,onClick:()=>void ue(e),children:[(0,E.jsx)(d,{}),u(`skills:skillsPage.uninstallSkill`)]}):(0,E.jsxs)(m,{variant:`secondary`,className:`max-[650px]:h-11`,loading:z,disabled:z,onClick:le,children:[(0,E.jsx)(l,{}),u(`skills:skillsPage.saveSettings`)]})})]}),Q=(e,t,n,r,i=``)=>(0,E.jsx)(x,{className:`skill-scope`,title:e,count:t.length,description:i&&(0,E.jsx)(`span`,{className:`font-mono`,children:i}),children:t.length?(0,E.jsx)(b,{children:t.map(e=>{let t=j(e);return(0,E.jsx)(y,{className:`skill-row`,"data-skill-row":e.id,icon:(0,E.jsx)(t,{}),name:(0,E.jsx)(`span`,{className:`font-mono`,children:e.name}),description:e.description,actions:(0,E.jsx)(w,{value:e.enabled,disabled:z,ariaLabel:u(`skills:skillsPage.toggleSkillName`,{name:e.name}),onChange:t=>void Z(e,{enabled:t})}),expanded:F===e.id,onExpandedChange:t=>I(t?e.id:``),toggleLabel:u(`skills:skillsPage.toggleSkillDetails`,{name:e.name}),detail:de(e)},e.id)})}):(0,E.jsx)(`p`,{className:`skills-empty-copy border-t border-stroke py-3 text-xs leading-normal text-content-muted`,children:n.length?u(`skills:skillsPage.noSkillsMatchTheCurrentFilter`):r})}),$=u(`navigation:navigation.skills`);return(0,E.jsx)(S,{title:$,description:u(`skills:skillsPage.lede`),back:n&&{label:u(`navigation:sidebar.features`),ariaLabel:u(`navigation:shell.backToFeaturesLabel`),onBack:n},toolbar:(0,E.jsx)(te,{search:(0,E.jsx)(v,{id:p,value:M,onValueChange:ie,placeholder:u(`navigation:pageHeader.searchPage`,{page:$}),shortcut:f,clearLabel:u(`navigation:more.clearSearch`)}),actions:(0,E.jsxs)(m,{type:`button`,className:`h-9`,"data-skills-install":!0,disabled:z||!N,onClick:()=>void K(),children:[(0,E.jsx)(c,{}),u(`navigation:pageHeader.installSkill`)]}),filters:(0,E.jsx)(C,{options:D.map(e=>A(e,u)),value:A(L,u),onChange:e=>R(D.find(t=>A(t,u)===e)||`all`)})}),children:V&&!N?(0,E.jsx)(g,{kind:`loading`,title:u(`skills:skillsPage.loadingSkills`),description:u(`skills:skillsPage.scanningSkillDirectoriesAndConfiguredPackages`)}):N?(0,E.jsxs)(E.Fragment,{children:[U&&(0,E.jsx)(ne,{children:U}),L!==`project`&&Q(u(`skills:skillsPage.globalSkills`),se,ae,u(`skills:skillsPage.noGlobalSkills`),N.locations?.global||`~/.pisper/agent/skills`),L!==`global`&&Q(u(`skills:skillsPage.projectSkills`),ce,oe,u(`skills:skillsPage.noProjectSkills`),N.locations?.project||(N.cwd?`${N.cwd.replace(/[\\/]$/,``)}/.pisper/skills`:``)),(0,E.jsx)(x,{className:`skill-packages`,title:u(`skills:skillsPage.configuredSkillPackages`),count:X.length,children:X.length?(0,E.jsx)(b,{children:X.map(e=>(0,E.jsx)(y,{className:`market-row`,icon:(0,E.jsx)(s,{}),name:(0,E.jsx)(`span`,{className:`font-mono`,title:e.source,children:e.source}),description:e.description,status:e.status},e.source))}):(0,E.jsx)(_,{compact:!0,icon:s,title:u(`skills:skillsPage.noSkillPackagesAreConfiguredYetAfterYouInstallASkillItsSourceWillAppearHere`)})})]}):(0,E.jsx)(g,{kind:`error`,title:u(`skills:skillsPage.loadFailed`),description:U,action:(0,E.jsx)(m,{variant:`secondary`,className:`max-[650px]:h-11`,loading:V,disabled:V,onClick:()=>{H(!0),G()},children:u(`common:pageTemplate.retry`)})})})}export{M as SkillsPage};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CIheiCov.js";import{t as i}from"./api-_MWfl2VL.js";import{t as a}from"./file-code-corner-BnE1ljT0.js";import{t as o}from"./image-BY_c3FYU.js";import{t as s}from"./package-BOmkLaKS.js";import{t as c}from"./plus-fQbSqB1n.js";import{t as l}from"./save-CHBB52P8.js";import{t as u}from"./sparkles-S_eeuqn9.js";import{t as d}from"./trash-2-CNrPOoPR.js";import{t as f}from"./wrench-6pg6_bqI.js";import{t as p}from"./more-pages-D_PnxLN0.js";import{t as ee}from"./checkbox-BrEHgFV0.js";import{t as m}from"./button-CCcCN8tE.js";import{s as h}from"./shortcuts-CVPFuAiJ.js";import{n as g,t as _}from"./PageState-Cz6vFMXv.js";import{a as v,i as y,n as b,o as x,r as S,s as te,t as ne}from"./FeaturePage-DD_32h19.js";import{c as C,s as w}from"./app-primitives-Drz_SjnR.js";var T=e(t(),1),E=n(),D=[`all`,`global`,`project`,`design`,`code`,`docs`,`privileged`],O=`grid grid-cols-[88px_minmax(0,1fr)] gap-x-3 gap-y-1.5 text-xs [&_dd]:min-w-0 [&_dd]:[overflow-wrap:anywhere] [&_dd]:text-content-soft [&_dt]:text-content-muted [&>div]:contents`;function k(e,t=``){return t?`${e}${e.includes(`?`)?`&`:`?`}sessionId=${encodeURIComponent(t)}`:e}function A(e,t){return t(e===`global`?`skills:skillsPage.global`:e===`project`?`skills:skillsPage.project`:e===`design`?`skills:skillsPage.design`:e===`code`?`skills:skillsPage.code`:e===`docs`?`skills:skillsPage.documents`:e===`privileged`?`skills:skillsPage.highPrivilege`:`skills:skillsPage.all`)}function j(e){let t=`${e?.name||``} ${e?.description||``}`.toLowerCase();return/image|visual|design|figma|svg|图片|视觉|设计/.test(t)?o:/doc|pdf|文档|说明/.test(t)?a:/install|package|market|安装|包/.test(t)?s:/code|test|plugin|skill|代码|测试|插件|技能/.test(t)?f:u}function re(e,t){if(t===`all`)return!0;if(t===`global`)return e.sourceInfo?.scope!==`project`;if(t===`project`)return e.sourceInfo?.scope===`project`;let n=`${e.name} ${e.description} ${(e.allowedTools||[]).join(` `)}`.toLowerCase();return t===`design`?/image|visual|design|figma|svg|图片|视觉|设计/.test(n):t===`code`?/code|test|plugin|代码|测试|插件/.test(n):t===`docs`?/doc|pdf|文档|说明/.test(n):t!==`privileged`||(e.allowedTools||[]).some(e=>[`bash`,`write`,`edit`].includes(e))}function M({notify:e,activeSessionId:t=``,onBack:n,requestText:a,requestConfirm:o}){let{t:u}=r(),f=h(`focusSearch`),[M,ie]=(0,T.useState)(``),[N,P]=(0,T.useState)(null),[F,I]=(0,T.useState)(``),[L,R]=(0,T.useState)(`all`),[z,B]=(0,T.useState)(!1),[V,H]=(0,T.useState)(!0),[U,W]=(0,T.useState)(``),G=(0,T.useCallback)(async()=>{W(``);try{let e=await i(k(`/api/skills`,t));return P(e),I(t=>e.skills.some(e=>e.id===t)?t:``),e}catch(e){return W(e instanceof Error?e.message:String(e)),null}finally{H(!1)}},[t]);(0,T.useEffect)(()=>{G()},[G]);let K=(0,T.useCallback)(async()=>{let n=await a?.({title:u(`skills:skillsPage.importGlobalSkill`),message:u(`skills:skillsPage.globalSkillSourceHelp`),inputLabel:u(`skills:skillsPage.skillSource`),placeholder:`E:\\path\\to\\skill, npm:@scope/package, or https://github.com/...`,maxLength:2e3,confirmLabel:u(`skills:skillsPage.continue`)});if(n?.trim()&&await o?.({title:u(`skills:skillsPage.importGlobalSkill`),message:u(`skills:skillsPage.skillsProvideInstructionsToTheAgentAndMayIncludeExecutableScriptsConfirmThatYouTrustTheSource`),confirmLabel:u(`skills:skillsPage.import`),tone:`danger`})!==!1){B(!0),W(``);try{let r=await i(k(`/api/skills/install`,t),{method:`POST`,body:JSON.stringify({source:n})});P(r),I(r.installed?.[0]?.id||``),e(u(`skills:skillsPage.skillInstalledAndLoadedIntoTheAgentRuntime`),`success`)}catch(t){let n=t instanceof Error?t.message:String(t);W(n),e(n,`error`)}finally{B(!1)}}},[t,e,o,a,u]),q=N?.skills||[],J=M.trim().toLowerCase(),Y=q.filter(e=>re(e,L)&&`${e.name} ${e.description}`.toLowerCase().includes(J)),ae=q.filter(e=>e.sourceInfo?.scope!==`project`),oe=q.filter(e=>e.sourceInfo?.scope===`project`),se=Y.filter(e=>e.sourceInfo?.scope!==`project`),ce=Y.filter(e=>e.sourceInfo?.scope===`project`),X=(N?.packages||[]).map(e=>({source:e.source,description:e.scope===`project`?u(`skills:skillsPage.projectScopedConfiguration`):u(`skills:skillsPage.userScopedConfiguration`),status:e.installed?u(`skills:skillsPage.locallyReady`):u(`skills:skillsPage.notMaterialized`)})).filter(e=>`${e.source} ${e.description}`.toLowerCase().includes(J)),Z=async(e,n)=>{if(e){B(!0),W(``);try{let r=await i(k(`/api/skills/${encodeURIComponent(e.id)}`,t),{method:`PATCH`,body:JSON.stringify(n)});P(e=>{if(!e)return e;let t=e.skills.map(e=>e.id===r.id?r:e);return{...e,skills:t,counts:{...e.counts,enabled:t.filter(e=>e.enabled).length,modelInvocable:t.filter(e=>e.enabled&&e.modelInvocationEnabled).length}}})}catch(e){W(e instanceof Error?e.message:String(e))}finally{B(!1)}}},le=async()=>{B(!0),W(``);try{P(await i(k(`/api/skills/reload`,t),{method:`POST`,body:`{}`})),e(u(`skills:skillsPage.skillSettingsSavedAndReloaded`),`success`)}catch(e){W(e instanceof Error?e.message:String(e))}finally{B(!1)}},ue=async n=>{if(n.removable&&await o?.({title:u(`skills:skillsPage.uninstallSkill`),message:u(`skills:skillsPage.thisRemovesTheSkillDirectoryInstalledByPisperItDoesNotUninstallTheOriginalNpmOrGitPackage`),confirmLabel:u(`skills:skillsPage.uninstall`),tone:`danger`})!==!1){B(!0),W(``);try{await i(k(`/api/skills/${encodeURIComponent(n.id)}`,t),{method:`DELETE`}),await G(),I(``),e(u(`skills:skillsPage.skillUninstalled`),`success`)}catch(t){let n=t instanceof Error?t.message:String(t);W(n),e(n,`error`)}finally{B(!1)}}},de=e=>(0,E.jsxs)(`div`,{className:`skill-detail grid gap-3`,children:[(0,E.jsx)(`p`,{className:`text-sm leading-relaxed whitespace-pre-line text-content-soft`,children:e.description||u(`skills:skillsPage.addGlobalOrProjectSkill`)}),(0,E.jsx)(`dl`,{className:O,children:[[u(`skills:skillsPage.triggerMode`),e.modelInvocationEnabled?u(`skills:skillsPage.automaticManual`):u(`skills:skillsPage.manualOnly`),!1],[u(`skills:skillsPage.permissions`),e.allowedTools?.length?e.allowedTools.join(`, `):u(`skills:skillsPage.usesChatToolPermissions`),!!e.allowedTools?.length],[u(`skills:skillsPage.scope`),e.sourceInfo?.scope===`project`?u(`skills:skillsPage.project`):u(`skills:skillsPage.global`),!1],[u(`skills:skillsPage.version`),e.version||`latest`,!0],[u(`skills:skillsPage.source`),e.source||`—`,!0]].map(([e,t,n])=>(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`dt`,{children:e}),(0,E.jsx)(`dd`,{className:n?`font-mono`:void 0,children:t})]},e))}),(0,E.jsxs)(`fieldset`,{className:`grid min-w-0 gap-0.5`,children:[(0,E.jsx)(`legend`,{className:`mb-1 text-xs font-medium text-content-muted`,children:u(`skills:skillsPage.triggerConditions`)}),[[u(`skills:skillsPage.allowAutomaticModelInvocation`),!!e.modelInvocationEnabled,!1,t=>void Z(e,{modelInvocationEnabled:t})],[u(`skills:skillsPage.supportManualSkillCommand`),!!e.command,!0],[u(`skills:skillsPage.projectScopedSkill`),e.sourceInfo?.scope===`project`,!0],[u(`skills:skillsPage.declaresRequiredTools`),!!e.allowedTools?.length,!0]].map(([e,t,n,r])=>(0,E.jsxs)(`label`,{className:`check-row flex min-h-8 items-center gap-2.5 text-sm text-content has-disabled:text-content-muted max-[650px]:min-h-11`,children:[(0,E.jsx)(ee,{checked:t,disabled:z||n,onCheckedChange:e=>r?.(e===!0)}),(0,E.jsx)(`span`,{children:e})]},e))]}),(0,E.jsx)(`div`,{className:`flex justify-end`,children:e.removable?(0,E.jsxs)(m,{variant:`ghost`,className:`text-danger hover:bg-danger-soft hover:text-danger max-[650px]:h-11`,disabled:z,onClick:()=>void ue(e),children:[(0,E.jsx)(d,{}),u(`skills:skillsPage.uninstallSkill`)]}):(0,E.jsxs)(m,{variant:`secondary`,className:`max-[650px]:h-11`,loading:z,disabled:z,onClick:le,children:[(0,E.jsx)(l,{}),u(`skills:skillsPage.saveSettings`)]})})]}),Q=(e,t,n,r,i=``)=>(0,E.jsx)(x,{className:`skill-scope`,title:e,count:t.length,description:i&&(0,E.jsx)(`span`,{className:`font-mono`,children:i}),children:t.length?(0,E.jsx)(b,{children:t.map(e=>{let t=j(e);return(0,E.jsx)(y,{className:`skill-row`,"data-skill-row":e.id,icon:(0,E.jsx)(t,{}),name:(0,E.jsx)(`span`,{className:`font-mono`,children:e.name}),description:e.description,actions:(0,E.jsx)(w,{value:e.enabled,disabled:z,ariaLabel:u(`skills:skillsPage.toggleSkillName`,{name:e.name}),onChange:t=>void Z(e,{enabled:t})}),expanded:F===e.id,onExpandedChange:t=>I(t?e.id:``),toggleLabel:u(`skills:skillsPage.toggleSkillDetails`,{name:e.name}),detail:de(e)},e.id)})}):(0,E.jsx)(`p`,{className:`skills-empty-copy border-t border-stroke py-3 text-xs leading-normal text-content-muted`,children:n.length?u(`skills:skillsPage.noSkillsMatchTheCurrentFilter`):r})}),$=u(`navigation:navigation.skills`);return(0,E.jsx)(S,{title:$,description:u(`skills:skillsPage.lede`),back:n&&{label:u(`navigation:sidebar.features`),ariaLabel:u(`navigation:shell.backToFeaturesLabel`),onBack:n},toolbar:(0,E.jsx)(te,{search:(0,E.jsx)(v,{id:p,value:M,onValueChange:ie,placeholder:u(`navigation:pageHeader.searchPage`,{page:$}),shortcut:f,clearLabel:u(`navigation:more.clearSearch`)}),actions:(0,E.jsxs)(m,{type:`button`,className:`h-9`,"data-skills-install":!0,disabled:z||!N,onClick:()=>void K(),children:[(0,E.jsx)(c,{}),u(`navigation:pageHeader.installSkill`)]}),filters:(0,E.jsx)(C,{options:D.map(e=>A(e,u)),value:A(L,u),onChange:e=>R(D.find(t=>A(t,u)===e)||`all`)})}),children:V&&!N?(0,E.jsx)(g,{kind:`loading`,title:u(`skills:skillsPage.loadingSkills`),description:u(`skills:skillsPage.scanningSkillDirectoriesAndConfiguredPackages`)}):N?(0,E.jsxs)(E.Fragment,{children:[U&&(0,E.jsx)(ne,{children:U}),L!==`project`&&Q(u(`skills:skillsPage.globalSkills`),se,ae,u(`skills:skillsPage.noGlobalSkills`),N.locations?.global||`~/.pisper/agent/skills`),L!==`global`&&Q(u(`skills:skillsPage.projectSkills`),ce,oe,u(`skills:skillsPage.noProjectSkills`),N.locations?.project||(N.cwd?`${N.cwd.replace(/[\\/]$/,``)}/.pisper/skills`:``)),(0,E.jsx)(x,{className:`skill-packages`,title:u(`skills:skillsPage.configuredSkillPackages`),count:X.length,children:X.length?(0,E.jsx)(b,{children:X.map(e=>(0,E.jsx)(y,{className:`market-row`,icon:(0,E.jsx)(s,{}),name:(0,E.jsx)(`span`,{className:`font-mono`,title:e.source,children:e.source}),description:e.description,status:e.status},e.source))}):(0,E.jsx)(_,{compact:!0,icon:s,title:u(`skills:skillsPage.noSkillPackagesAreConfiguredYetAfterYouInstallASkillItsSourceWillAppearHere`)})})]}):(0,E.jsx)(g,{kind:`error`,title:u(`skills:skillsPage.loadFailed`),description:U,action:(0,E.jsx)(m,{variant:`secondary`,className:`max-[650px]:h-11`,loading:V,disabled:V,onClick:()=>{H(!0),G()},children:u(`common:pageTemplate.retry`)})})})}export{M as SkillsPage};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-_vdxObu5.js";import{t as i}from"./chevron-right-C3t2Rckj.js";import{t as a}from"./square-terminal-BVG6cUT1.js";import{t as o}from"./square-bHHVTT3G.js";import{t as s}from"./checkbox-BrEHgFV0.js";import{n as c,t as l}from"./button-CCcCN8tE.js";import{n as u}from"./PageState-Cz6vFMXv.js";import{t as d}from"./AppSelect-DQYKUW5E.js";import{n as f,r as p}from"./terminal-context-aIsIJPn8.js";var m=e(t(),1),h=n();function g({record:e,follow:t,initialTop:n,onFollow:i,onScroll:a}){let{t:o}=r(),c=(0,m.useRef)(null),l=(0,m.useRef)(n);return(0,m.useLayoutEffect)(()=>{c.current&&(c.current.scrollTop=l.current)},[]),(0,m.useLayoutEffect)(()=>{t&&c.current&&(c.current.scrollTop=c.current.scrollHeight)},[e.output,t]),(0,h.jsxs)(`div`,{className:`border-t border-stroke-soft bg-code px-3 py-2.5`,children:[(0,h.jsxs)(`label`,{className:`mb-2 flex min-h-6 cursor-pointer items-center gap-2 text-xs text-content-muted pointer-coarse:min-h-11`,children:[(0,h.jsx)(s,{checked:t,onCheckedChange:e=>i(e===!0)}),o(`terminal:workspace.follow`)]}),e.truncated&&(0,h.jsx)(`p`,{className:`mb-2 text-xs text-content-muted`,children:o(`terminal:workspace.truncated`)}),(0,h.jsx)(`pre`,{ref:c,tabIndex:0,onWheel:e=>{e.deltaY<0&&i(!1)},onScroll:e=>{let t=e.currentTarget;t.scrollTop+t.clientHeight<t.scrollHeight-4&&i(!1),a(t.scrollTop)},className:`max-h-80 overflow-auto whitespace-pre-wrap break-all font-mono text-xs leading-relaxed text-content-soft focus-visible:-outline-offset-2`,children:e.output||o(`terminal:workspace.noOutput`)})]})}function _({sessionId:e,onOpenTerminal:t,view:n,onViewChange:s}){let{t:_}=r(),v=f(),y=p(e),b=n.filter||`all`,x=new Set(n.expandedProcesses),[S,C]=(0,m.useState)(``);if(!v)return(0,h.jsx)(u,{kind:`empty`,title:_(`terminal:workspace.unavailable`),description:_(`terminal:workspace.nativeOnly`)});let w={starting:_(`terminal:workspace.starting`),running:_(`terminal:workspace.running`),stopping:_(`terminal:workspace.stopping`),exited:_(`terminal:workspace.exited`),error:_(`terminal:workspace.error`)},T=y.filter(e=>b===`all`||e.status===b),E=`max-[650px]:size-11`;return(0,h.jsxs)(`section`,{className:`flex h-full min-h-0 flex-col`,children:[(0,h.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-stroke-soft px-3 py-2`,children:[(0,h.jsx)(`span`,{className:`min-w-0 flex-1 text-xs text-content-muted`,children:_(`terminal:workspace.ownedProcesses`)}),(0,h.jsxs)(d,{"aria-label":_(`terminal:workspace.filter`),value:b,onChange:e=>s({filter:e.target.value}),className:`w-auto`,children:[(0,h.jsx)(`option`,{value:`all`,children:_(`terminal:workspace.all`)}),Object.entries(w).map(([e,t])=>(0,h.jsx)(`option`,{value:e,children:t},e))]})]}),S&&(0,h.jsx)(`p`,{role:`alert`,className:`p-3 text-sm text-danger`,children:S}),(0,h.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:T.length?T.map(e=>(0,h.jsxs)(`article`,{className:`border-b border-stroke-soft`,children:[(0,h.jsxs)(`div`,{className:`flex min-h-11 min-w-0 items-center gap-2 py-1 pr-1.5 pl-1.5 ${x.has(e.id)?`bg-surface-subtle`:``}`,children:[(0,h.jsx)(l,{variant:`ghost`,size:`icon`,className:E,"aria-expanded":x.has(e.id),"aria-label":_(`terminal:workspace.logs`),onClick:()=>s({expandedProcesses:x.has(e.id)?n.expandedProcesses.filter(t=>t!==e.id):[...n.expandedProcesses,e.id]}),children:(0,h.jsx)(i,{className:`text-content-muted transition-transform duration-(--d-fast) ${x.has(e.id)?`rotate-90`:``}`})}),e.status===`running`||e.status===`starting`?(0,h.jsx)(c,{className:`size-3.5`}):(0,h.jsx)(`span`,{"aria-hidden":`true`,className:`size-2 shrink-0 rounded-[2px] ${e.status===`error`?`bg-danger`:`bg-content-faint`}`}),(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,h.jsx)(`strong`,{className:`block truncate font-mono text-sm font-medium`,children:e.profileId}),(0,h.jsx)(`span`,{className:`block truncate font-mono text-xs text-content-muted`,title:e.cwd,children:e.cwd})]}),(0,h.jsx)(`span`,{className:`shrink-0 text-xs ${e.status===`error`?`text-danger`:`text-content-muted`}`,children:w[e.status]||_(`terminal:workspace.unknown`)}),(0,h.jsx)(l,{variant:`ghost`,size:`icon`,className:E,"aria-label":_(`terminal:workspace.open`),onClick:()=>t(e.id),children:(0,h.jsx)(a,{})}),e.status!==`exited`&&(0,h.jsx)(l,{variant:`ghost`,size:`icon`,className:`${E} hover:text-danger`,disabled:e.status===`stopping`,"aria-label":_(`terminal:workspace.stop`),onClick:()=>{C(``),v.registry.stop(e.id).catch(e=>C(String(e)))},children:(0,h.jsx)(o,{className:`size-3.5`})})]}),e.error&&(0,h.jsx)(`p`,{className:`px-3 pb-2 text-xs text-danger`,children:e.error}),x.has(e.id)&&(0,h.jsx)(g,{record:e,follow:n.processFollow[e.id]!==!1,initialTop:n.processScroll[e.id]||0,onFollow:t=>s({processFollow:{...n.processFollow,[e.id]:t}}),onScroll:t=>s({processScroll:{...n.processScroll,[e.id]:t}})})]},e.id)):(0,h.jsx)(u,{kind:`empty`,title:y.length?_(`terminal:workspace.noMatch`):_(`terminal:workspace.noProcesses`)})})]})}export{_ as TaskProcessesPane};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CIheiCov.js";import{t as i}from"./chevron-right-C3t2Rckj.js";import{t as a}from"./square-terminal-BVG6cUT1.js";import{t as o}from"./square-bHHVTT3G.js";import{t as s}from"./checkbox-BrEHgFV0.js";import{n as c,t as l}from"./button-CCcCN8tE.js";import{n as u}from"./PageState-Cz6vFMXv.js";import{t as d}from"./AppSelect-DQYKUW5E.js";import{n as f,r as p}from"./terminal-context-aIsIJPn8.js";var m=e(t(),1),h=n();function g({record:e,follow:t,initialTop:n,onFollow:i,onScroll:a}){let{t:o}=r(),c=(0,m.useRef)(null),l=(0,m.useRef)(n);return(0,m.useLayoutEffect)(()=>{c.current&&(c.current.scrollTop=l.current)},[]),(0,m.useLayoutEffect)(()=>{t&&c.current&&(c.current.scrollTop=c.current.scrollHeight)},[e.output,t]),(0,h.jsxs)(`div`,{className:`border-t border-stroke-soft bg-code px-3 py-2.5`,children:[(0,h.jsxs)(`label`,{className:`mb-2 flex min-h-6 cursor-pointer items-center gap-2 text-xs text-content-muted pointer-coarse:min-h-11`,children:[(0,h.jsx)(s,{checked:t,onCheckedChange:e=>i(e===!0)}),o(`terminal:workspace.follow`)]}),e.truncated&&(0,h.jsx)(`p`,{className:`mb-2 text-xs text-content-muted`,children:o(`terminal:workspace.truncated`)}),(0,h.jsx)(`pre`,{ref:c,tabIndex:0,onWheel:e=>{e.deltaY<0&&i(!1)},onScroll:e=>{let t=e.currentTarget;t.scrollTop+t.clientHeight<t.scrollHeight-4&&i(!1),a(t.scrollTop)},className:`max-h-80 overflow-auto whitespace-pre-wrap break-all font-mono text-xs leading-relaxed text-content-soft focus-visible:-outline-offset-2`,children:e.output||o(`terminal:workspace.noOutput`)})]})}function _({sessionId:e,onOpenTerminal:t,view:n,onViewChange:s}){let{t:_}=r(),v=f(),y=p(e),b=n.filter||`all`,x=new Set(n.expandedProcesses),[S,C]=(0,m.useState)(``);if(!v)return(0,h.jsx)(u,{kind:`empty`,title:_(`terminal:workspace.unavailable`),description:_(`terminal:workspace.nativeOnly`)});let w={starting:_(`terminal:workspace.starting`),running:_(`terminal:workspace.running`),stopping:_(`terminal:workspace.stopping`),exited:_(`terminal:workspace.exited`),error:_(`terminal:workspace.error`)},T=y.filter(e=>b===`all`||e.status===b),E=`max-[650px]:size-11`;return(0,h.jsxs)(`section`,{className:`flex h-full min-h-0 flex-col`,children:[(0,h.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-stroke-soft px-3 py-2`,children:[(0,h.jsx)(`span`,{className:`min-w-0 flex-1 text-xs text-content-muted`,children:_(`terminal:workspace.ownedProcesses`)}),(0,h.jsxs)(d,{"aria-label":_(`terminal:workspace.filter`),value:b,onChange:e=>s({filter:e.target.value}),className:`w-auto`,children:[(0,h.jsx)(`option`,{value:`all`,children:_(`terminal:workspace.all`)}),Object.entries(w).map(([e,t])=>(0,h.jsx)(`option`,{value:e,children:t},e))]})]}),S&&(0,h.jsx)(`p`,{role:`alert`,className:`p-3 text-sm text-danger`,children:S}),(0,h.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:T.length?T.map(e=>(0,h.jsxs)(`article`,{className:`border-b border-stroke-soft`,children:[(0,h.jsxs)(`div`,{className:`flex min-h-11 min-w-0 items-center gap-2 py-1 pr-1.5 pl-1.5 ${x.has(e.id)?`bg-surface-subtle`:``}`,children:[(0,h.jsx)(l,{variant:`ghost`,size:`icon`,className:E,"aria-expanded":x.has(e.id),"aria-label":_(`terminal:workspace.logs`),onClick:()=>s({expandedProcesses:x.has(e.id)?n.expandedProcesses.filter(t=>t!==e.id):[...n.expandedProcesses,e.id]}),children:(0,h.jsx)(i,{className:`text-content-muted transition-transform duration-(--d-fast) ${x.has(e.id)?`rotate-90`:``}`})}),e.status===`running`||e.status===`starting`?(0,h.jsx)(c,{className:`size-3.5`}):(0,h.jsx)(`span`,{"aria-hidden":`true`,className:`size-2 shrink-0 rounded-[2px] ${e.status===`error`?`bg-danger`:`bg-content-faint`}`}),(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,h.jsx)(`strong`,{className:`block truncate font-mono text-sm font-medium`,children:e.profileId}),(0,h.jsx)(`span`,{className:`block truncate font-mono text-xs text-content-muted`,title:e.cwd,children:e.cwd})]}),(0,h.jsx)(`span`,{className:`shrink-0 text-xs ${e.status===`error`?`text-danger`:`text-content-muted`}`,children:w[e.status]||_(`terminal:workspace.unknown`)}),(0,h.jsx)(l,{variant:`ghost`,size:`icon`,className:E,"aria-label":_(`terminal:workspace.open`),onClick:()=>t(e.id),children:(0,h.jsx)(a,{})}),e.status!==`exited`&&(0,h.jsx)(l,{variant:`ghost`,size:`icon`,className:`${E} hover:text-danger`,disabled:e.status===`stopping`,"aria-label":_(`terminal:workspace.stop`),onClick:()=>{C(``),v.registry.stop(e.id).catch(e=>C(String(e)))},children:(0,h.jsx)(o,{className:`size-3.5`})})]}),e.error&&(0,h.jsx)(`p`,{className:`px-3 pb-2 text-xs text-danger`,children:e.error}),x.has(e.id)&&(0,h.jsx)(g,{record:e,follow:n.processFollow[e.id]!==!1,initialTop:n.processScroll[e.id]||0,onFollow:t=>s({processFollow:{...n.processFollow,[e.id]:t}}),onScroll:t=>s({processScroll:{...n.processScroll,[e.id]:t}})})]},e.id)):(0,h.jsx)(u,{kind:`empty`,title:y.length?_(`terminal:workspace.noMatch`):_(`terminal:workspace.noProcesses`)})})]})}export{_ as TaskProcessesPane};
@@ -1,4 +1,4 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-_vdxObu5.js";import{t as i}from"./square-terminal-BVG6cUT1.js";import{t as a}from"./square-bHHVTT3G.js";import{n as o,t as s}from"./button-CCcCN8tE.js";import{n as c}from"./PageState-Cz6vFMXv.js";import{t as l}from"./AppSelect-DQYKUW5E.js";import{n as u,r as d}from"./terminal-context-aIsIJPn8.js";var f=e(t(),1),p=Object.defineProperty,m=Object.getOwnPropertyDescriptor,h=(e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})},g=(e,t,n,r)=>{for(var i=r>1?void 0:r?m(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&p(t,n,i),i},_=(e,t)=>(n,r)=>t(n,r,e),ee=`Terminal input`,te={get:()=>ee,set:e=>ee=e},ne=`Too much output to announce, navigate to rows manually to read`,re={get:()=>ne,set:e=>ne=e};function ie(e){return e.replace(/\r?\n/g,`\r`)}function ae(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function oe(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function se(e,t,n,r){e.stopPropagation(),e.clipboardData&&ce(e.clipboardData.getData(`text/plain`),t,n,r)}function ce(e,t,n,r){e=ie(e),e=ae(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function v(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function le(e,t,n,r,i){v(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function y(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ue(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var de=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},fe=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},b=``,pe=` `,me=class e{constructor(){this.fg=0,this.bg=0,this.extended=new he}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},he=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},x=class e extends me{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new he,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?y(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},ge=`di$target`,_e=`di$dependencies`,ve=new Map;function S(e){return e[_e]||[]}function C(e){if(ve.has(e))return ve.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);ye(t,e,r)};return t._id=e,ve.set(e,t),t}function ye(e,t,n){t[ge]===t?t[_e].push({id:e,index:n}):(t[_e]=[{id:e,index:n}],t[ge]=t)}var w=C(`BufferService`),be=C(`CoreMouseService`),T=C(`CoreService`),xe=C(`CharsetService`),Se=C(`InstantiationService`),Ce=C(`LogService`),E=C(`OptionsService`),we=C(`OscLinkService`),Te=C(`UnicodeService`),Ee=C(`DecorationService`),De=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new x,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Oe(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};De=g([_(0,w),_(1,E),_(2,we)],De);function Oe(e,t){if(confirm(`Do you want to navigate to ${t}?
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CIheiCov.js";import{t as i}from"./square-terminal-BVG6cUT1.js";import{t as a}from"./square-bHHVTT3G.js";import{n as o,t as s}from"./button-CCcCN8tE.js";import{n as c}from"./PageState-Cz6vFMXv.js";import{t as l}from"./AppSelect-DQYKUW5E.js";import{n as u,r as d}from"./terminal-context-aIsIJPn8.js";var f=e(t(),1),p=Object.defineProperty,m=Object.getOwnPropertyDescriptor,h=(e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})},g=(e,t,n,r)=>{for(var i=r>1?void 0:r?m(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&p(t,n,i),i},_=(e,t)=>(n,r)=>t(n,r,e),ee=`Terminal input`,te={get:()=>ee,set:e=>ee=e},ne=`Too much output to announce, navigate to rows manually to read`,re={get:()=>ne,set:e=>ne=e};function ie(e){return e.replace(/\r?\n/g,`\r`)}function ae(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function oe(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function se(e,t,n,r){e.stopPropagation(),e.clipboardData&&ce(e.clipboardData.getData(`text/plain`),t,n,r)}function ce(e,t,n,r){e=ie(e),e=ae(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function v(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function le(e,t,n,r,i){v(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function y(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function ue(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var de=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},fe=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},b=``,pe=` `,me=class e{constructor(){this.fg=0,this.bg=0,this.extended=new he}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},he=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},x=class e extends me{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new he,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?y(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},ge=`di$target`,_e=`di$dependencies`,ve=new Map;function S(e){return e[_e]||[]}function C(e){if(ve.has(e))return ve.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);ye(t,e,r)};return t._id=e,ve.set(e,t),t}function ye(e,t,n){t[ge]===t?t[_e].push({id:e,index:n}):(t[_e]=[{id:e,index:n}],t[ge]=t)}var w=C(`BufferService`),be=C(`CoreMouseService`),T=C(`CoreService`),xe=C(`CharsetService`),Se=C(`InstantiationService`),Ce=C(`LogService`),E=C(`OptionsService`),we=C(`OscLinkService`),Te=C(`UnicodeService`),Ee=C(`DecorationService`),De=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new x,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Oe(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};De=g([_(0,w),_(1,E),_(2,we)],De);function Oe(e,t){if(confirm(`Do you want to navigate to ${t}?
2
2
 
3
3
  WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var ke=C(`CharSizeService`),Ae=C(`CoreBrowserService`),je=C(`MouseService`),Me=C(`RenderService`),Ne=C(`SelectionService`),Pe=C(`CharacterJoinerService`),Fe=C(`ThemeService`),Ie=C(`LinkProviderService`),Le=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Ue.isErrorNoTelemetry(e)?new Ue(e.message+`
4
4
 
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-_vdxObu5.js";import{t as i}from"./createLucideIcon-Cd-3GVxJ.js";import{t as a}from"./minus-BuutOHSj.js";import{t as o}from"./plus-fQbSqB1n.js";import{t as s}from"./square-terminal-BVG6cUT1.js";import{t as c}from"./x-07u4-129.js";import{t as l}from"./button-CCcCN8tE.js";import{n as u,r as d}from"./terminal-context-aIsIJPn8.js";import{TaskTerminalView as f}from"./TaskTerminalView-CKApgF75.js";var p=i(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),m=e(t(),1),h=n(),g=180,_=420;function v(e){return Math.max(g,Math.min(640,Math.floor(e*.62),e-_))}function y({open:e,height:t,labels:n,activeSessionId:i,resolveSessionCwd:_,onOpenChange:y,onHeightChange:b,layout:x=`dock`}){let{t:S}=r(),C=u(),w=d(),[T,E]=(0,m.useState)({}),[D,O]=(0,m.useState)(()=>new Set),[k,A]=(0,m.useState)({}),[j,M]=(0,m.useState)(``),N=(0,m.useRef)(()=>{}),P=w.filter(e=>(e.sessionId===i||e.orphaned)&&e.status!==`exited`&&!D.has(e.id)),F=P.find(e=>e.id===T[i])||P[0],I=k[i],L=async()=>{let e=i;y(!0),M(``);try{let t=await _(e);A(n=>({...n,[e]:{cwd:t,token:crypto.randomUUID()}}))}catch(e){M(String(e))}},R=e=>{O(t=>new Set([...t,e])),E(t=>({...t,[i]:P.find(t=>t.id!==e)?.id||``}))};(0,m.useEffect)(()=>{if(!e||x===`fill`)return;let n=()=>{let e=v(window.innerHeight);t>e&&b(e)};return n(),window.addEventListener(`resize`,n),()=>window.removeEventListener(`resize`,n)},[t,x,e,b]),(0,m.useEffect)(()=>()=>N.current(),[]);let z=e=>{N.current(),e.currentTarget.setPointerCapture(e.pointerId);let n=e.clientY,r=t,i=e=>b(Math.max(g,Math.min(v(window.innerHeight),r+n-e.clientY))),a=()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a),window.removeEventListener(`pointercancel`,a)};N.current=a,window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a,{once:!0}),window.addEventListener(`pointercancel`,a,{once:!0})};if(!C||!e)return null;let B=x===`fill`;return(0,h.jsxs)(`section`,{"aria-label":n.terminal,className:`terminal-panel relative z-3 flex flex-col bg-panel ${B?`h-full min-h-0 flex-1`:`shrink-0 border-t border-stroke`}`,style:B?void 0:{height:t},"data-swipe-ignore":B?!0:void 0,children:[!B&&(0,h.jsx)(`div`,{role:`separator`,tabIndex:0,"aria-orientation":`horizontal`,"aria-label":n.resizeTerminal,"aria-valuemin":g,"aria-valuemax":v(window.innerHeight),"aria-valuenow":t,onPointerDown:z,onKeyDown:e=>{[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)&&(e.preventDefault(),b(e.key===`Home`?g:e.key===`End`?v(window.innerHeight):Math.max(g,Math.min(v(window.innerHeight),t+(e.key===`ArrowUp`?20:-20)))))},className:`absolute inset-x-0 -top-1 z-10 h-2 cursor-ns-resize outline-none after:absolute after:top-1/2 after:left-1/2 after:h-[3px] after:w-9 after:-translate-1/2 after:rounded-full after:transition-colors after:duration-[var(--d-fast)] hover:after:bg-focus focus-visible:after:bg-focus focus-visible:after:ring-3 focus-visible:after:ring-focus-ring`}),(0,h.jsxs)(`header`,{className:`flex h-10 shrink-0 items-center gap-1 border-b border-stroke-soft px-2`,children:[(0,h.jsx)(s,{className:`size-4 shrink-0 text-content-muted`}),(0,h.jsx)(`div`,{role:`tablist`,"aria-label":n.terminal,className:`flex min-w-0 flex-1 gap-0.5 overflow-x-auto px-px py-1 [scrollbar-width:none]`,children:P.map(e=>(0,h.jsxs)(`div`,{className:`flex min-w-0 max-w-52 shrink-0 items-center`,children:[(0,h.jsxs)(`button`,{role:`tab`,"aria-selected":!I&&F?.id===e.id,className:`relative h-7 min-w-0 truncate rounded-sm px-2 font-mono text-xs text-content-muted hover:bg-surface-hover hover:text-content focus-visible:-outline-offset-2 aria-selected:bg-key aria-selected:font-medium aria-selected:text-content aria-selected:shadow-key aria-selected:ring-1 aria-selected:ring-key-border aria-selected:after:absolute aria-selected:after:inset-x-2 aria-selected:after:bottom-0 aria-selected:after:h-0.5 aria-selected:after:rounded-full aria-selected:after:bg-star`,title:`${e.cwd} · ${e.sessionId}`,onClick:()=>{E(t=>({...t,[i]:e.id})),A(e=>{let t={...e};return delete t[i],t})},children:[e.orphaned?`${n.orphanedTerminal} · `:``,e.profileId]}),(0,h.jsx)(l,{variant:`ghost`,size:`icon-xs`,"aria-label":S(`terminal:workspace.closeView`),title:S(`terminal:workspace.closeView`),onClick:()=>R(e.id),children:(0,h.jsx)(c,{className:`size-3`})})]},e.id))}),D.size>0&&(0,h.jsx)(l,{variant:`ghost`,size:`sm`,onClick:()=>O(new Set),children:S(`terminal:workspace.restoreViews`)}),(0,h.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":n.newTerminal,title:n.newTerminal,onClick:()=>void L(),children:(0,h.jsx)(o,{className:`size-4`})}),!B&&(0,h.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":n.maximizeTerminal,title:n.maximizeTerminal,onClick:()=>b(v(window.innerHeight)),children:(0,h.jsx)(p,{className:`size-4`})}),(0,h.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":n.hideTerminal,title:n.hideTerminal,onClick:()=>y(!1),children:(0,h.jsx)(a,{className:`size-4`})})]}),j&&(0,h.jsx)(`p`,{role:`alert`,className:`p-2 text-xs text-danger`,children:j}),(0,h.jsx)(`div`,{className:`min-h-0 flex-1`,children:I?(0,h.jsx)(f,{viewKey:`bottom`,sessionId:i,cwd:I.cwd,onCreated:e=>{E(t=>({...t,[i]:e})),A(e=>{if(e[i]?.token!==I.token)return e;let t={...e};return delete t[i],t})}},I.token):F?(0,h.jsx)(f,{viewKey:`bottom`,sessionId:F.sessionId,cwd:F.cwd,terminalId:F.id}):(0,h.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2`,children:[(0,h.jsx)(`p`,{className:`text-sm text-content-muted`,children:n.usesActiveSessionWorkspace}),(0,h.jsx)(l,{onClick:()=>void L(),children:n.openTerminal})]})})]})}export{y as TerminalPanel};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-CIheiCov.js";import{t as i}from"./createLucideIcon-Cd-3GVxJ.js";import{t as a}from"./minus-BuutOHSj.js";import{t as o}from"./plus-fQbSqB1n.js";import{t as s}from"./square-terminal-BVG6cUT1.js";import{t as c}from"./x-07u4-129.js";import{t as l}from"./button-CCcCN8tE.js";import{n as u,r as d}from"./terminal-context-aIsIJPn8.js";import{TaskTerminalView as f}from"./TaskTerminalView-B4fD3kVF.js";var p=i(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),m=e(t(),1),h=n(),g=180,_=420;function v(e){return Math.max(g,Math.min(640,Math.floor(e*.62),e-_))}function y({open:e,height:t,labels:n,activeSessionId:i,resolveSessionCwd:_,onOpenChange:y,onHeightChange:b,layout:x=`dock`}){let{t:S}=r(),C=u(),w=d(),[T,E]=(0,m.useState)({}),[D,O]=(0,m.useState)(()=>new Set),[k,A]=(0,m.useState)({}),[j,M]=(0,m.useState)(``),N=(0,m.useRef)(()=>{}),P=w.filter(e=>(e.sessionId===i||e.orphaned)&&e.status!==`exited`&&!D.has(e.id)),F=P.find(e=>e.id===T[i])||P[0],I=k[i],L=async()=>{let e=i;y(!0),M(``);try{let t=await _(e);A(n=>({...n,[e]:{cwd:t,token:crypto.randomUUID()}}))}catch(e){M(String(e))}},R=e=>{O(t=>new Set([...t,e])),E(t=>({...t,[i]:P.find(t=>t.id!==e)?.id||``}))};(0,m.useEffect)(()=>{if(!e||x===`fill`)return;let n=()=>{let e=v(window.innerHeight);t>e&&b(e)};return n(),window.addEventListener(`resize`,n),()=>window.removeEventListener(`resize`,n)},[t,x,e,b]),(0,m.useEffect)(()=>()=>N.current(),[]);let z=e=>{N.current(),e.currentTarget.setPointerCapture(e.pointerId);let n=e.clientY,r=t,i=e=>b(Math.max(g,Math.min(v(window.innerHeight),r+n-e.clientY))),a=()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a),window.removeEventListener(`pointercancel`,a)};N.current=a,window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a,{once:!0}),window.addEventListener(`pointercancel`,a,{once:!0})};if(!C||!e)return null;let B=x===`fill`;return(0,h.jsxs)(`section`,{"aria-label":n.terminal,className:`terminal-panel relative z-3 flex flex-col bg-panel ${B?`h-full min-h-0 flex-1`:`shrink-0 border-t border-stroke`}`,style:B?void 0:{height:t},"data-swipe-ignore":B?!0:void 0,children:[!B&&(0,h.jsx)(`div`,{role:`separator`,tabIndex:0,"aria-orientation":`horizontal`,"aria-label":n.resizeTerminal,"aria-valuemin":g,"aria-valuemax":v(window.innerHeight),"aria-valuenow":t,onPointerDown:z,onKeyDown:e=>{[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)&&(e.preventDefault(),b(e.key===`Home`?g:e.key===`End`?v(window.innerHeight):Math.max(g,Math.min(v(window.innerHeight),t+(e.key===`ArrowUp`?20:-20)))))},className:`absolute inset-x-0 -top-1 z-10 h-2 cursor-ns-resize outline-none after:absolute after:top-1/2 after:left-1/2 after:h-[3px] after:w-9 after:-translate-1/2 after:rounded-full after:transition-colors after:duration-[var(--d-fast)] hover:after:bg-focus focus-visible:after:bg-focus focus-visible:after:ring-3 focus-visible:after:ring-focus-ring`}),(0,h.jsxs)(`header`,{className:`flex h-10 shrink-0 items-center gap-1 border-b border-stroke-soft px-2`,children:[(0,h.jsx)(s,{className:`size-4 shrink-0 text-content-muted`}),(0,h.jsx)(`div`,{role:`tablist`,"aria-label":n.terminal,className:`flex min-w-0 flex-1 gap-0.5 overflow-x-auto px-px py-1 [scrollbar-width:none]`,children:P.map(e=>(0,h.jsxs)(`div`,{className:`flex min-w-0 max-w-52 shrink-0 items-center`,children:[(0,h.jsxs)(`button`,{role:`tab`,"aria-selected":!I&&F?.id===e.id,className:`relative h-7 min-w-0 truncate rounded-sm px-2 font-mono text-xs text-content-muted hover:bg-surface-hover hover:text-content focus-visible:-outline-offset-2 aria-selected:bg-key aria-selected:font-medium aria-selected:text-content aria-selected:shadow-key aria-selected:ring-1 aria-selected:ring-key-border aria-selected:after:absolute aria-selected:after:inset-x-2 aria-selected:after:bottom-0 aria-selected:after:h-0.5 aria-selected:after:rounded-full aria-selected:after:bg-star`,title:`${e.cwd} · ${e.sessionId}`,onClick:()=>{E(t=>({...t,[i]:e.id})),A(e=>{let t={...e};return delete t[i],t})},children:[e.orphaned?`${n.orphanedTerminal} · `:``,e.profileId]}),(0,h.jsx)(l,{variant:`ghost`,size:`icon-xs`,"aria-label":S(`terminal:workspace.closeView`),title:S(`terminal:workspace.closeView`),onClick:()=>R(e.id),children:(0,h.jsx)(c,{className:`size-3`})})]},e.id))}),D.size>0&&(0,h.jsx)(l,{variant:`ghost`,size:`sm`,onClick:()=>O(new Set),children:S(`terminal:workspace.restoreViews`)}),(0,h.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":n.newTerminal,title:n.newTerminal,onClick:()=>void L(),children:(0,h.jsx)(o,{className:`size-4`})}),!B&&(0,h.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":n.maximizeTerminal,title:n.maximizeTerminal,onClick:()=>b(v(window.innerHeight)),children:(0,h.jsx)(p,{className:`size-4`})}),(0,h.jsx)(l,{variant:`ghost`,size:`icon`,"aria-label":n.hideTerminal,title:n.hideTerminal,onClick:()=>y(!1),children:(0,h.jsx)(a,{className:`size-4`})})]}),j&&(0,h.jsx)(`p`,{role:`alert`,className:`p-2 text-xs text-danger`,children:j}),(0,h.jsx)(`div`,{className:`min-h-0 flex-1`,children:I?(0,h.jsx)(f,{viewKey:`bottom`,sessionId:i,cwd:I.cwd,onCreated:e=>{E(t=>({...t,[i]:e})),A(e=>{if(e[i]?.token!==I.token)return e;let t={...e};return delete t[i],t})}},I.token):F?(0,h.jsx)(f,{viewKey:`bottom`,sessionId:F.sessionId,cwd:F.cwd,terminalId:F.id}):(0,h.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2`,children:[(0,h.jsx)(`p`,{className:`text-sm text-content-muted`,children:n.usesActiveSessionWorkspace}),(0,h.jsx)(l,{onClick:()=>void L(),children:n.openTerminal})]})})]})}export{y as TerminalPanel};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./index-D_zLThH_.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-_vdxObu5.js";import{t as a}from"./api-BW_X0FMZ.js";var o=e(n(),1),s=r(),c=192,l=288,u=`pisper-web-desktop-pet-position`,d={idle:{row:0,frames:6,durationMs:1100},waving:{row:3,frames:4,durationMs:700},jumping:{row:4,frames:5,durationMs:840},failed:{row:5,frames:8,durationMs:1220},waiting:{row:6,frames:6,durationMs:1010},running:{row:7,frames:6,durationMs:820},review:{row:8,frames:6,durationMs:1030}};function f(e){return{x:Math.max(0,Math.min(window.innerWidth-c,e.x)),y:Math.max(0,Math.min(window.innerHeight-l,e.y))}}function p(){try{let e=JSON.parse(t.getItem(u)||`{}`);if(Number.isFinite(e?.x)&&Number.isFinite(e?.y))return f(e)}catch{}return f({x:window.innerWidth-c-20,y:window.innerHeight-l-20})}function m(e){return e&&e in d?e:`idle`}function h(){let{t:e}=i(),[n,r]=(0,o.useState)(null),[c,l]=(0,o.useState)(p),[h,g]=(0,o.useState)(null),_=(0,o.useRef)(null),v=(0,o.useRef)(void 0),y=(0,o.useCallback)(async()=>{try{r(await a(`/api/desktop-pet`))}catch{}},[]);if((0,o.useEffect)(()=>{if(window.pisperDesktop?.getPetStatus)return;let e,t=()=>{document.visibilityState===`visible`&&e===void 0&&(y(),e=window.setInterval(y,1200))},n=()=>{e!==void 0&&(window.clearInterval(e),e=void 0)},i=()=>{document.visibilityState===`visible`?t():n()},a=e=>{let t=e.detail;t?r(t):y()},o=()=>l(e=>f(e));return t(),document.addEventListener(`visibilitychange`,i),window.addEventListener(`pisper:desktop-pet-changed`,a),window.addEventListener(`resize`,o),()=>{n(),window.clearTimeout(v.current),document.removeEventListener(`visibilitychange`,i),window.removeEventListener(`pisper:desktop-pet-changed`,a),window.removeEventListener(`resize`,o)}},[y]),window.pisperDesktop?.getPetStatus||!n?.running||!n.spriteUrl)return null;let b=h||m(n.state),x=d[b],S={review:e(`config:desktopPetSettings.bubbleThinking`),running:e(`config:desktopPetSettings.bubbleWorking`),waiting:e(`config:desktopPetSettings.bubbleResponding`),waving:e(`config:desktopPetSettings.bubbleDone`),failed:e(`config:desktopPetSettings.bubbleFailed`),jumping:e(`config:desktopPetSettings.bubbleHello`)}[b]||``,C=e=>{let n=_.current;if(!(!n||n.id!==e.pointerId)){if(_.current=null,e.currentTarget.releasePointerCapture(e.pointerId),n.moved){t.setItem(u,JSON.stringify(c));return}g(`jumping`),window.clearTimeout(v.current),v.current=window.setTimeout(()=>g(null),900)}};return(0,s.jsxs)(`div`,{className:`web-desktop-pet max-[640px]:[transform:scale(0.75)] max-[640px]:origin-[bottom_right] fixed z-[70] w-[192px] h-[288px] cursor-grab [touch-action:none] select-none [filter:drop-shadow(0_12px_14px_var(--shadow))] ${_.current?`dragging [.web-desktop-pet&]:cursor-grabbing`:``}`,style:{left:c.x,top:c.y,opacity:n.opacity??1},onPointerDown:e=>{if(e.button!==0)return;let t=e.currentTarget.getBoundingClientRect();_.current={id:e.pointerId,offsetX:e.clientX-t.left,offsetY:e.clientY-t.top,startX:e.clientX,startY:e.clientY,moved:!1},e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{let t=_.current;!t||t.id!==e.pointerId||(Math.hypot(e.clientX-t.startX,e.clientY-t.startY)>4&&(t.moved=!0),l(f({x:e.clientX-t.offsetX,y:e.clientY-t.offsetY})))},onPointerUp:C,onPointerCancel:C,"aria-label":e(`config:desktopPetSettings.webPetLabel`,{name:n.selectedName||n.selectedSlug}),children:[(0,s.jsx)(`div`,{className:`web-desktop-pet-bubble pointer-events-none absolute bottom-[210px] left-1/2 z-[2] max-w-[180px] -translate-x-1/2 rounded-md bg-popover px-2.5 py-1 text-center text-xs leading-[1.45] whitespace-nowrap text-content shadow-float transition-[opacity,translate] duration-(--d-base) ease-(--ease) motion-reduce:transition-none ${S?`visible translate-y-0 opacity-100`:`translate-y-1 opacity-0`}`,role:`status`,children:S}),(0,s.jsx)(`div`,{className:`absolute left-0 bottom-0 w-[192px] h-[208px] [contain:layout_paint] overflow-hidden`,role:`img`,children:(0,s.jsx)(`div`,{className:`web-desktop-pet-sprite [--pet-sprite-y:calc(var(--pet-row)_*_-208px)] [--pet-sprite-end-x:calc(var(--pet-frames)_*_-192px)] w-[192px] h-[208px] [background-image:var(--pet-sprite-url)] [background-repeat:no-repeat] [background-size:var(--pet-sheet-width,_1536px)_var(--pet-sheet-height,_1872px)] [image-rendering:pixelated] [transform:translateZ(0)] origin-[top_left] [will-change:background-position] [animation:web-pet-state_var(--pet-duration)_steps(var(--pet-frames))_infinite] motion-reduce:[animation:none]`,style:{"--pet-sprite-url":`url("${n.spriteUrl}")`,"--pet-sheet-width":`${n.sheetWidth||1536}px`,"--pet-sheet-height":`${n.sheetHeight||1872}px`,"--pet-row":x.row,"--pet-frames":x.frames,"--pet-duration":`${x.durationMs}ms`}})})]})}export{h as WebDesktopPet};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./index-CwdjZZLG.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-CIheiCov.js";import{t as a}from"./api-_MWfl2VL.js";var o=e(n(),1),s=r(),c=192,l=288,u=`pisper-web-desktop-pet-position`,d={idle:{row:0,frames:6,durationMs:1100},waving:{row:3,frames:4,durationMs:700},jumping:{row:4,frames:5,durationMs:840},failed:{row:5,frames:8,durationMs:1220},waiting:{row:6,frames:6,durationMs:1010},running:{row:7,frames:6,durationMs:820},review:{row:8,frames:6,durationMs:1030}};function f(e){return{x:Math.max(0,Math.min(window.innerWidth-c,e.x)),y:Math.max(0,Math.min(window.innerHeight-l,e.y))}}function p(){try{let e=JSON.parse(t.getItem(u)||`{}`);if(Number.isFinite(e?.x)&&Number.isFinite(e?.y))return f(e)}catch{}return f({x:window.innerWidth-c-20,y:window.innerHeight-l-20})}function m(e){return e&&e in d?e:`idle`}function h(){let{t:e}=i(),[n,r]=(0,o.useState)(null),[c,l]=(0,o.useState)(p),[h,g]=(0,o.useState)(null),_=(0,o.useRef)(null),v=(0,o.useRef)(void 0),y=(0,o.useCallback)(async()=>{try{r(await a(`/api/desktop-pet`))}catch{}},[]);if((0,o.useEffect)(()=>{if(window.pisperDesktop?.getPetStatus)return;let e,t=()=>{document.visibilityState===`visible`&&e===void 0&&(y(),e=window.setInterval(y,1200))},n=()=>{e!==void 0&&(window.clearInterval(e),e=void 0)},i=()=>{document.visibilityState===`visible`?t():n()},a=e=>{let t=e.detail;t?r(t):y()},o=()=>l(e=>f(e));return t(),document.addEventListener(`visibilitychange`,i),window.addEventListener(`pisper:desktop-pet-changed`,a),window.addEventListener(`resize`,o),()=>{n(),window.clearTimeout(v.current),document.removeEventListener(`visibilitychange`,i),window.removeEventListener(`pisper:desktop-pet-changed`,a),window.removeEventListener(`resize`,o)}},[y]),window.pisperDesktop?.getPetStatus||!n?.running||!n.spriteUrl)return null;let b=h||m(n.state),x=d[b],S={review:e(`config:desktopPetSettings.bubbleThinking`),running:e(`config:desktopPetSettings.bubbleWorking`),waiting:e(`config:desktopPetSettings.bubbleResponding`),waving:e(`config:desktopPetSettings.bubbleDone`),failed:e(`config:desktopPetSettings.bubbleFailed`),jumping:e(`config:desktopPetSettings.bubbleHello`)}[b]||``,C=e=>{let n=_.current;if(!(!n||n.id!==e.pointerId)){if(_.current=null,e.currentTarget.releasePointerCapture(e.pointerId),n.moved){t.setItem(u,JSON.stringify(c));return}g(`jumping`),window.clearTimeout(v.current),v.current=window.setTimeout(()=>g(null),900)}};return(0,s.jsxs)(`div`,{className:`web-desktop-pet max-[640px]:[transform:scale(0.75)] max-[640px]:origin-[bottom_right] fixed z-[70] w-[192px] h-[288px] cursor-grab [touch-action:none] select-none [filter:drop-shadow(0_12px_14px_var(--shadow))] ${_.current?`dragging [.web-desktop-pet&]:cursor-grabbing`:``}`,style:{left:c.x,top:c.y,opacity:n.opacity??1},onPointerDown:e=>{if(e.button!==0)return;let t=e.currentTarget.getBoundingClientRect();_.current={id:e.pointerId,offsetX:e.clientX-t.left,offsetY:e.clientY-t.top,startX:e.clientX,startY:e.clientY,moved:!1},e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{let t=_.current;!t||t.id!==e.pointerId||(Math.hypot(e.clientX-t.startX,e.clientY-t.startY)>4&&(t.moved=!0),l(f({x:e.clientX-t.offsetX,y:e.clientY-t.offsetY})))},onPointerUp:C,onPointerCancel:C,"aria-label":e(`config:desktopPetSettings.webPetLabel`,{name:n.selectedName||n.selectedSlug}),children:[(0,s.jsx)(`div`,{className:`web-desktop-pet-bubble pointer-events-none absolute bottom-[210px] left-1/2 z-[2] max-w-[180px] -translate-x-1/2 rounded-md bg-popover px-2.5 py-1 text-center text-xs leading-[1.45] whitespace-nowrap text-content shadow-float transition-[opacity,translate] duration-(--d-base) ease-(--ease) motion-reduce:transition-none ${S?`visible translate-y-0 opacity-100`:`translate-y-1 opacity-0`}`,role:`status`,children:S}),(0,s.jsx)(`div`,{className:`absolute left-0 bottom-0 w-[192px] h-[208px] [contain:layout_paint] overflow-hidden`,role:`img`,children:(0,s.jsx)(`div`,{className:`web-desktop-pet-sprite [--pet-sprite-y:calc(var(--pet-row)_*_-208px)] [--pet-sprite-end-x:calc(var(--pet-frames)_*_-192px)] w-[192px] h-[208px] [background-image:var(--pet-sprite-url)] [background-repeat:no-repeat] [background-size:var(--pet-sheet-width,_1536px)_var(--pet-sheet-height,_1872px)] [image-rendering:pixelated] [transform:translateZ(0)] origin-[top_left] [will-change:background-position] [animation:web-pet-state_var(--pet-duration)_steps(var(--pet-frames))_infinite] motion-reduce:[animation:none]`,style:{"--pet-sprite-url":`url("${n.spriteUrl}")`,"--pet-sheet-width":`${n.sheetWidth||1536}px`,"--pet-sheet-height":`${n.sheetHeight||1872}px`,"--pet-row":x.row,"--pet-frames":x.frames,"--pet-duration":`${x.durationMs}ms`}})})]})}export{h as WebDesktopPet};