@jingyi0605/codingns 0.9.9 → 1.0.0-beta.2

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 (139) hide show
  1. package/bin/codingns.mjs +14 -0
  2. package/dist/public/assets/AdaptiveButlerPage-BHUAx_24.js +2 -0
  3. package/dist/public/assets/{App-Pe30N_Dy.js → App-D5hc6KuU.js} +6 -6
  4. package/dist/public/assets/App-Z0Zd7gXR.css +1 -0
  5. package/dist/public/assets/{BootstrapPage-D9ai1XhC.js → BootstrapPage-C2sMZMJa.js} +1 -1
  6. package/dist/public/assets/ConversationPage-CDpyEOUA.js +9 -0
  7. package/dist/public/assets/{DesktopDetachPreviewPage-BJVPVFf2.js → DesktopDetachPreviewPage-D9Abm5NU.js} +1 -1
  8. package/dist/public/assets/{DesktopModal-DyC_e0eF.js → DesktopModal-BCVZq_PQ.js} +1 -1
  9. package/dist/public/assets/{DesktopWindowPage-BZleww0T.js → DesktopWindowPage-Cotl5fte.js} +1 -1
  10. package/dist/public/assets/{FileContextPanel-BklQRQXj.js → FileContextPanel-DbPOq5w-.js} +1 -1
  11. package/dist/public/assets/{GitSidebar-D0tb3W87.js → GitSidebar-Cuxi2R93.js} +2 -2
  12. package/dist/public/assets/{MobileCreateSessionSheet-BS881Agk.js → MobileCreateSessionSheet-DYqarJqO.js} +1 -1
  13. package/dist/public/assets/{MobileSheet-C32hwIFd.js → MobileSheet-DPYtp5Ze.js} +1 -1
  14. package/dist/public/assets/{PluginAccessOverview-BDiz6fV8.js → PluginAccessOverview-CiVzb_NI.js} +1 -1
  15. package/dist/public/assets/{PluginContainerPage-BMT6J0YS.js → PluginContainerPage-BfZ3E41c.js} +1 -1
  16. package/dist/public/assets/{PluginDetailPage-ztNhvCWP.js → PluginDetailPage-DQQAg_ba.js} +1 -1
  17. package/dist/public/assets/{PluginsListPage-Cuk2-U6E.js → PluginsListPage-bF1NmA_r.js} +1 -1
  18. package/dist/public/assets/{PureConversationPage-ShluI2En.js → PureConversationPage-CWji-ARJ.js} +1 -1
  19. package/dist/public/assets/{RelayConnectEntryPage-CMbjlD0k.js → RelayConnectEntryPage-D4-3Fher.js} +1 -1
  20. package/dist/public/assets/{ServerSettingsModal-CLSWyHu6.js → ServerSettingsModal-BUY1Y3g6.js} +1 -1
  21. package/dist/public/assets/{SessionIndexPage-dqfauVAj.js → SessionIndexPage-zVB9jnzP.js} +1 -1
  22. package/dist/public/assets/SettingsPage-DeqR2p7d.js +2 -0
  23. package/dist/public/assets/{TerminalManagerPanel-75khWhRz.js → TerminalManagerPanel-BjnC70ga.js} +1 -1
  24. package/dist/public/assets/{ToolFilesPage-S3eWxO_D.js → ToolFilesPage-BZseQqvZ.js} +1 -1
  25. package/dist/public/assets/{ToolGitPage-8RAMpope.js → ToolGitPage-SrOO8Ftz.js} +1 -1
  26. package/dist/public/assets/{ToolProcessesPage-TZACKEoH.js → ToolProcessesPage-Dbzlqjdy.js} +1 -1
  27. package/dist/public/assets/{ToolsHomePage-Whgu6Tyf.js → ToolsHomePage-BBilUc0P.js} +1 -1
  28. package/dist/public/assets/{WorkbenchLandingPage-CC24vHza.js → WorkbenchLandingPage-FdsBC8WN.js} +1 -1
  29. package/dist/public/assets/WorkbenchLayout-yGxGKcG1.js +1081 -0
  30. package/dist/public/assets/{WorkbenchModal-2PaCY_Gj.js → WorkbenchModal-Cm-ciXO9.js} +1 -1
  31. package/dist/public/assets/WorkbenchShellRoute-CijuAd9-.js +1 -0
  32. package/dist/public/assets/WorkbenchShellRoute-DpycFsbp.css +1 -0
  33. package/dist/public/assets/{WorkspaceDebugDetailPage-Ce_oMmJ8.js → WorkspaceDebugDetailPage-CZtpOiY0.js} +1 -1
  34. package/dist/public/assets/{WorkspaceDetailPage-aX6w4Q7S.js → WorkspaceDetailPage-CbbgUz1H.js} +1 -1
  35. package/dist/public/assets/{WorkspaceHomePage-DQttgj2w.js → WorkspaceHomePage-DMNJKAYe.js} +1 -1
  36. package/dist/public/assets/{client-runtime-manager-CGVLChqs.js → client-runtime-manager-tsFkLtO_.js} +1 -1
  37. package/dist/public/assets/host-alias-df5bYDlE.js +1 -0
  38. package/dist/public/assets/index-CILPuSCp.js +50 -0
  39. package/dist/public/assets/index-CSlwKnM4.css +1 -0
  40. package/dist/public/assets/{login-direct-candidate-resolver-Bvs5uPix.js → login-direct-candidate-resolver-pkfXrMJy.js} +1 -1
  41. package/dist/public/assets/peer-host-config-sync-nS_66OLg.js +1 -0
  42. package/dist/public/assets/{plugin-permission-copy-Do028HzJ.js → plugin-permission-copy-LDy-lW7h.js} +1 -1
  43. package/dist/public/assets/{plugins-api-BOugklJ-.js → plugins-api-BGF9OybZ.js} +1 -1
  44. package/dist/public/assets/{preferences-service-Dys1mbBy.js → preferences-service-BC25oxA_.js} +1 -1
  45. package/dist/public/assets/{relay-entry-B6UDc5cD.js → relay-entry-ErQKnI7B.js} +1 -1
  46. package/dist/public/assets/{useRegisteredDebugTemplates-BafVuBvE.js → useRegisteredDebugTemplates-BTr3ATCZ.js} +1 -1
  47. package/dist/public/assets/workbench-navigation-hwM28xIb.js +1 -0
  48. package/dist/public/index.html +2 -2
  49. package/dist/server/config/env.js +5 -3
  50. package/dist/server/config/env.js.map +1 -1
  51. package/dist/server/modules/butler/butler-session-service.d.ts +1 -0
  52. package/dist/server/modules/butler/butler-session-service.js +2 -1
  53. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  54. package/dist/server/modules/client/client-controller.d.ts +1 -0
  55. package/dist/server/modules/client/client-controller.js +4 -0
  56. package/dist/server/modules/client/client-controller.js.map +1 -1
  57. package/dist/server/modules/client/client-service.d.ts +3 -0
  58. package/dist/server/modules/client/client-service.js +3 -0
  59. package/dist/server/modules/client/client-service.js.map +1 -1
  60. package/dist/server/modules/client/npm-global-package-service.js +35 -7
  61. package/dist/server/modules/client/npm-global-package-service.js.map +1 -1
  62. package/dist/server/modules/client/service-update-types.d.ts +3 -0
  63. package/dist/server/modules/peer-host/host-ws-proxy-service.js +73 -12
  64. package/dist/server/modules/peer-host/host-ws-proxy-service.js.map +1 -1
  65. package/dist/server/modules/peer-host/peer-host-controller.d.ts +5 -0
  66. package/dist/server/modules/peer-host/peer-host-controller.js +3 -0
  67. package/dist/server/modules/peer-host/peer-host-controller.js.map +1 -1
  68. package/dist/server/modules/peer-host/peer-host-service.d.ts +1 -0
  69. package/dist/server/modules/peer-host/peer-host-service.js +44 -0
  70. package/dist/server/modules/peer-host/peer-host-service.js.map +1 -1
  71. package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +2 -0
  72. package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
  73. package/dist/server/modules/provider/provider-discovery-helper-process.js +6 -3
  74. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
  75. package/dist/server/modules/provider/provider-discovery-runtime.js +4 -1
  76. package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -1
  77. package/dist/server/modules/sessions/session-history-service.d.ts +9 -0
  78. package/dist/server/modules/sessions/session-history-service.js +129 -7
  79. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  80. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +13 -0
  81. package/dist/server/modules/sessions/session-live-runtime-service.js +354 -5
  82. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  83. package/dist/server/modules/sessions/session-permission-request-service.d.ts +16 -1
  84. package/dist/server/modules/sessions/session-permission-request-service.js +375 -9
  85. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  86. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +10 -0
  87. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -1
  88. package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +1 -0
  89. package/dist/server/modules/tasks/task-helper-process-handlers.js +4 -1
  90. package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
  91. package/dist/server/modules/terminal/runtime/terminal-log-spooler.d.ts +5 -0
  92. package/dist/server/modules/terminal/runtime/terminal-log-spooler.js +54 -7
  93. package/dist/server/modules/terminal/runtime/terminal-log-spooler.js.map +1 -1
  94. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js +2 -1
  95. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js.map +1 -1
  96. package/dist/server/modules/workbench/workbench-service.js +18 -5
  97. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  98. package/dist/server/modules/workspace/affairs-lightweight-session-controller.d.ts +4 -0
  99. package/dist/server/modules/workspace/affairs-lightweight-session-controller.js +26 -0
  100. package/dist/server/modules/workspace/affairs-lightweight-session-controller.js.map +1 -1
  101. package/dist/server/modules/workspace/affairs-lightweight-session-service.d.ts +15 -1
  102. package/dist/server/modules/workspace/affairs-lightweight-session-service.js +201 -22
  103. package/dist/server/modules/workspace/affairs-lightweight-session-service.js.map +1 -1
  104. package/dist/server/routes/client.js +1 -0
  105. package/dist/server/routes/client.js.map +1 -1
  106. package/dist/server/routes/peer-hosts.js +1 -0
  107. package/dist/server/routes/peer-hosts.js.map +1 -1
  108. package/dist/server/server/create-server.js +1 -1
  109. package/dist/server/server/create-server.js.map +1 -1
  110. package/dist/server/shared/utils/peer-host-proxy-log.d.ts +3 -0
  111. package/dist/server/shared/utils/peer-host-proxy-log.js +48 -0
  112. package/dist/server/shared/utils/peer-host-proxy-log.js.map +1 -0
  113. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +2 -0
  114. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +93 -12
  115. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
  116. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +3 -0
  117. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +116 -2
  118. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  119. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +1 -0
  120. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +19 -8
  121. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
  122. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.d.ts +1 -0
  123. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +30 -2
  124. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +1 -1
  125. package/package.json +3 -2
  126. package/scripts/node22-runtime.mjs +176 -0
  127. package/scripts/postinstall.mjs +6 -0
  128. package/dist/public/assets/AdaptiveButlerPage-CqBM1XiC.js +0 -2
  129. package/dist/public/assets/App-7zrCMhE-.css +0 -1
  130. package/dist/public/assets/ConversationPage-C8aU99KN.js +0 -9
  131. package/dist/public/assets/SettingsPage-PUga-wwJ.js +0 -2
  132. package/dist/public/assets/WorkbenchLayout-CoYxMzzR.js +0 -1081
  133. package/dist/public/assets/WorkbenchShellRoute-DLVRpGzb.css +0 -1
  134. package/dist/public/assets/WorkbenchShellRoute-QXztW_Ny.js +0 -1
  135. package/dist/public/assets/host-alias-CeDJeL0T.js +0 -1
  136. package/dist/public/assets/index-BehUkul4.css +0 -1
  137. package/dist/public/assets/index-Bp1FnRo_.js +0 -50
  138. package/dist/public/assets/peer-host-config-sync-oelf2T0_.js +0 -1
  139. package/dist/public/assets/workbench-navigation-Bs4OQYD3.js +0 -1
@@ -1 +1 @@
1
- import{b as s,E as Te,F as Xe,j as e,t as n,D as Je}from"./index-Bp1FnRo_.js";import{D as Pe}from"./DesktopModal-DyC_e0eF.js";import{V as Oe,w as Qe}from"./workbench-navigation-Bs4OQYD3.js";import{M as Se}from"./MobileSheet-C32hwIFd.js";import{b as Ye,ar as O,cn as Ze,co as ea,q as ke,C as Ce,cp as aa,cq as na,cr as ra,cs as la,ct as ta}from"./WorkbenchLayout-CoYxMzzR.js";import{u as ia,e as sa,f as oa}from"./App-Pe30N_Dy.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-CeDJeL0T.js";import"./relay-entry-B6UDc5cD.js";import"./WorkbenchModal-2PaCY_Gj.js";const Q={mode:"command",name:"",cwd:"",target:"",args:"",port:"",proxyEnabled:!1},we=60*1e3;function ca(l){return l?new Date(l).toLocaleString():n("common.unknown")}function ma(l){return l.split(" ").map(t=>t.trim()).filter(Boolean)}function da(l){var t,c,u;return((t=l.find(p=>p.id==="cmd"&&p.available))==null?void 0:t.id)??((c=l.find(p=>p.available))==null?void 0:c.id)??((u=l[0])==null?void 0:u.id)??""}function ua(l){const t=l.name.trim();if(t)return t;const c=l.target.trim(),u=l.args.trim();return c?u?`${c} ${u}`:c:l.mode==="script"?n("terminalManager.defaultScriptName"):n("terminalManager.defaultCommandName")}function ga(l){const t=l.args.join(" ");return t?`${l.command} ${t}`:l.command}function pa(l){return{mode:Ee(l),name:l.name,cwd:l.cwd,target:l.command,args:l.args.join(" "),port:l.port===null?"":String(l.port),proxyEnabled:l.proxyEnabled}}function ha(l){return Je(`/proxy/${encodeURIComponent(l)}`)}function Ee(l){const t=l.command.toLowerCase();return t.endsWith(".ps1")||t.endsWith(".bat")||t.endsWith(".cmd")||t.endsWith(".sh")?"script":"command"}function xa(l){const t=l.trim();if(!t)return null;const c=Number(t);return Number.isInteger(c)?c:Number.NaN}function Ie(l,t){return l.get(t)??null}function ba(l,t){return l.port===null?{tone:"untracked",title:n("terminalManager.portUnset"),summary:n("terminalManager.portUnsetDescription"),badgeLabel:n("terminalManager.portUnset")}:t!=null&&t.occupied?{tone:"running",title:n("terminalManager.portOccupied"),summary:t.processName||n("terminalManager.processCommandFallback"),badgeLabel:t.processId?`PID ${t.processId}`:n("terminalManager.statusRunning"),badgeTone:"success"}:{tone:"idle",title:n("terminalManager.portAvailable"),summary:n("terminalManager.portAvailableDescription"),badgeLabel:n("terminalManager.statusStopped")}}function fa(l){return l!=null&&l.terminationScope?l.terminationScope==="process_group"?n("terminalManager.terminationScopeProcessGroup"):n("terminalManager.terminationScopeProcess"):null}function ja({open:l,mobile:t=!1,title:c,description:u,onClose:p,children:N,className:m}){return t?e.jsx(Se,{open:l,title:c,description:u,kind:"form",height:"three-quarter",className:m,bodyClassName:"terminal-manager-modal-body",showHandle:!0,onClose:p,children:N}):e.jsx(Pe,{open:l,title:c,description:u,size:"regular",layout:"form",className:["terminal-manager-modal-card",m].filter(Boolean).join(" "),bodyClassName:"terminal-manager-modal-body",onClose:p,children:N})}function va({open:l,mobile:t=!1,busy:c,title:u,description:p,confirmLabel:N,onClose:m,onConfirm:x,className:T}){const D=e.jsxs(Qe,{className:"terminal-manager-confirm-actions",children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:c,onClick:m,children:n("common.cancel")}),e.jsx("button",{type:"button",className:"secondary-button workbench-danger-button",disabled:c,onClick:()=>{x()},children:c?n("terminalManager.templateRemoving"):N})]});return t?e.jsx(Se,{open:l,title:u,description:p,kind:"action",height:"auto",dismissible:!c,showHandle:!0,showCancelButton:!1,className:T,bodyClassName:"terminal-manager-confirm-body",footer:D,onClose:m,children:null}):e.jsx(Pe,{open:l,title:u,description:p,size:"compact",layout:"confirm",dismissible:!c,className:["terminal-manager-confirm-modal",T].filter(Boolean).join(" "),bodyClassName:"terminal-manager-confirm-body",footer:D,onClose:m,children:null})}function Le({label:l,value:t,options:c,open:u,onToggle:p,onChange:N}){const m=c.find(x=>x.value===t)??c[0]??null;return e.jsxs("div",{className:"field-group terminal-manager-mobile-picker",children:[e.jsx("span",{children:l}),e.jsxs("button",{type:"button",className:"terminal-manager-mobile-picker-trigger","aria-label":`${l} ${(m==null?void 0:m.label)??""}`.trim(),"aria-expanded":u?"true":"false",onClick:p,children:[e.jsxs("span",{className:"terminal-manager-mobile-picker-copy",children:[e.jsx("strong",{children:(m==null?void 0:m.label)??n("common.unknown")}),m!=null&&m.description?e.jsx("span",{children:m.description}):null]}),e.jsx(Ma,{expanded:u})]}),u?e.jsx("div",{className:"terminal-manager-mobile-picker-list",role:"listbox","aria-label":l,children:c.map(x=>{const T=x.value===t;return e.jsxs("button",{type:"button",role:"option",className:"terminal-manager-mobile-picker-option","aria-selected":T,disabled:x.disabled,onClick:()=>{N(x.value)},children:[e.jsxs("span",{className:"terminal-manager-mobile-picker-option-copy",children:[e.jsx("strong",{children:x.label}),x.description?e.jsx("span",{children:x.description}):null]}),e.jsx("span",{className:"terminal-manager-mobile-picker-option-indicator","aria-hidden":"true",children:T?e.jsx(Na,{}):e.jsx(ya,{})})]},x.value||"__empty__")})}):null]})}function Ma({expanded:l}){return e.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",className:"terminal-manager-mobile-picker-chevron","data-expanded":l?"true":"false",children:e.jsx("path",{d:"M4 6.5L8 10l4-3.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.7"})})}function ya(){return e.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:e.jsx("path",{d:"M6 3.5L10.5 8 6 12.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.6"})})}function Na(){return e.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:e.jsx("path",{d:"M3.5 8.5L6.5 11.5L12.5 5.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.8"})})}function _a({className:l,currentWorkspaceId:t,navigationGroups:c,externalWindowMode:u=!1,workbenchShellOverrides:p}){var ve,Me,ye,Ne;const N=ia(),m=sa(),x=Ye(),{subscribeTerminalManagerSnapshot:T,requestTerminalManagerRefresh:D,addTerminalManagerSnapshotListener:ie,currentTargetHostId:h}={...x,...p},i=(t==null?void 0:t.trim())||null,[Y,q]=s.useState([]),[Z,G]=s.useState(null),[j,P]=s.useState([]),[S,A]=s.useState([]),[b,ee]=s.useState([]),[W,ae]=s.useState(""),[_,E]=s.useState(""),[d,v]=s.useState(Q),[U,V]=s.useState(null),[R,z]=s.useState(null),[Re,se]=s.useState([]),[oe,K]=s.useState(!1),[ne,ce]=s.useState(!1),[me,de]=s.useState(null),[ue,ge]=s.useState(null),[C,pe]=s.useState(null),[M,$]=s.useState(null),[X,re]=s.useState(null),[he,xe]=s.useState(!1),[be,w]=s.useState(null),{showToast:f}=oa(),B=(l==null?void 0:l.includes("mobile-tool-process-panel"))??!1,H=U!==null,fe=U==="edit"?j.find(a=>a.id===R)??null:null,I=U==="edit";s.useEffect(()=>{O("terminal_manager.props",{currentWorkspaceId:t,workspaceCount:c.length,externalWindowMode:u})},[t,u,c.length]);const g=s.useMemo(()=>b.find(a=>a.id===W)??null,[W,b]),F=s.useMemo(()=>Ze(m.ui.osFamily),[m.ui.osFamily]),je=s.useMemo(()=>new Map(S.map(a=>[a.templateId,a])),[S]),Fe=s.useMemo(()=>S.filter(a=>a.occupied).length,[S]),De=s.useMemo(()=>j.filter(a=>a.port!==null).length,[j]),Ae=(g==null?void 0:g.available)===!1&&b.length>0;s.useEffect(()=>{ae(a=>b.length?a&&b.some(r=>r.id===a)?a:da(b):"")},[b]),s.useEffect(()=>{!H||!i||b.length>0||k(i)},[i,b.length,H]),s.useEffect(()=>{H||w(null)},[H]),s.useEffect(()=>{U==="edit"&&R&&!fe&&(V(null),z(null),v(Q),E(""),w(null))},[fe,R,U]),s.useEffect(()=>{!M||C===M.templateId||j.some(a=>a.id===M.templateId)||$(null)},[M,C,j]),s.useEffect(()=>{if(!i){q([]),G(null),P([]),A([]),K(!1);return}const a=Te(te(i,h),we);O("terminal_manager.snapshot",{workspaceId:i,cached:!!a,cachedTemplateCount:(a==null?void 0:a.templates.length)??0,cachedStatusCount:(a==null?void 0:a.templateStatuses.length)??0}),a?(q(a.terminals),G(typeof a.revision=="string"?a.revision:null),P(a.templates),A(a.templateStatuses),ee(a.shellOptions??[]),K(!1)):(q([]),G(null),P([]),A([]),ee([]),K(!0))},[i]),s.useEffect(()=>{if(i)return ie(a=>{a.workspaceId!==i||!ka(Ta(a),h)||(O("terminal_manager.snapshot_received",{workspaceId:a.workspaceId,terminalCount:a.terminals.length,templateCount:a.templates.length,statusCount:a.templateStatuses.length}),_e(a),K(!1))})},[i,ie,h]),s.useEffect(()=>{if(!i)return;const a=Te(te(i,h),we);T(i,{knownRevision:(a==null?void 0:a.revision)??null,targetHostId:h}),a||k(i)},[i,h,D,T]),s.useEffect(()=>{i&&Xe(te(i,h),{revision:Z,terminals:Y,templates:j,templateStatuses:S,shellOptions:b})},[i,Z,b,S,j,Y]);function _e(a){G(typeof a.revision=="string"?a.revision:null),q(a.terminals),P(a.templates),A(a.templateStatuses),ee(a.shellOptions??[])}function k(a){O("terminal_manager.refresh_requested",{workspaceId:a}),D(a,{knownRevision:Z,targetHostId:h})}function J(){V(null),z(null),v(Q),E(""),w(null)}function Ue(){z(null),v(Q),E(""),V("create")}function $e(a){z(a.id),v(pa(a)),E(a.runtimeType??""),V("edit")}async function Be(a){if(i){ge(a);try{await aa(a,{targetHostId:h}),k(i),f({title:n("terminalManager.stopProcessSuccess"),tone:"success"})}catch(r){f({title:r instanceof Error?r.message:n("terminalManager.stopProcessFailed"),tone:"error"})}finally{ge(null)}}}async function He(){if(!i||!d.target.trim())return;const a=xa(d.port);if(Number.isNaN(a)){f({title:n("terminalManager.invalidPort"),tone:"error"});return}if(d.proxyEnabled&&a===null){f({title:n("terminalManager.proxyPortRequired"),tone:"error"});return}ce(!0);try{const r={workspaceId:i,name:ua(d),cwd:d.cwd.trim()||void 0,command:d.target.trim(),args:ma(d.args),port:a,proxyEnabled:d.proxyEnabled,runtimeType:_||null};if(I&&R){const o=await ra(R,r,{targetHostId:h});P(y=>y.map(L=>L.id===o.id?o:L))}else await la(r,{targetHostId:h});J(),k(i),f({title:I?n("terminalManager.templateUpdateSuccess"):n("terminalManager.templateSaveSuccess"),tone:"success"})}catch(r){f({title:r instanceof Error?r.message:I?n("terminalManager.templateUpdateFailed"):n("terminalManager.templateSaveFailed"),tone:"error"})}finally{ce(!1)}}async function qe(a){const r=await m.bridge.openExternal(a);r.ok||f({title:r.detail||n("terminalManager.openProxyUrlFailed"),tone:"error"})}async function Ge(a,r){if(i){pe(a.id);try{await ta(a.id,{targetHostId:h}),P(o=>o.filter(y=>y.id!==a.id)),A(o=>o.filter(y=>y.templateId!==a.id)),se(o=>o.filter(y=>y!==a.id)),$(o=>(o==null?void 0:o.templateId)===a.id?null:o),R===a.id&&J(),k(i),f({title:n("terminalManager.templateDeleteSuccess"),tone:"success"})}catch(o){f({title:o instanceof Error?o.message:n("terminalManager.templateDeleteFailed"),tone:"error"})}finally{pe(null)}}}async function We(a){if(!i)return;const r=g!=null&&g.available?g.shell:void 0;de(a);try{await Ce(a,{shell:r},{targetHostId:h}),k(i),f({title:n("terminalManager.templateRunSuccess"),tone:"success"})}catch(o){if(na(o)){re({templateId:a,shell:r});return}f({title:o instanceof Error?o.message:n("terminalManager.templateRunFailed"),tone:"error"})}finally{de(null)}}async function Ve(){if(!(!i||!X)){xe(!0);try{await Ce(X.templateId,{shell:X.shell,runtimeType:"embedded-pty"},{targetHostId:h}),re(null),k(i),f({title:n("terminalManager.templateRunSuccess"),tone:"success"})}catch(a){f({title:a instanceof Error?a.message:n("terminalManager.templateRunFailed"),tone:"error"})}finally{xe(!1)}}}function ze(a){se(r=>r.includes(a)?r.filter(o=>o!==a):[...r,a])}return c.length?i?e.jsxs("section",{className:["conversation-panel","surface-card","terminal-manager-panel",l].filter(Boolean).join(" "),children:[e.jsx(ea,{open:X!==null,busy:he,onClose:()=>{he||re(null)},onConfirmFallback:()=>{Ve()}}),e.jsxs("div",{className:"terminal-manager-header terminal-manager-desktop-header",children:[e.jsx("div",{className:"terminal-manager-panel-heading",children:e.jsxs("div",{children:[e.jsx("h2",{children:n("terminalManager.templateSectionTitle")}),e.jsx("p",{className:"status-text",children:n("terminalManager.desktopPanelDescription")})]})}),e.jsxs("div",{className:"terminal-manager-overview",children:[e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.runningCountLabel")}),e.jsx("strong",{children:Fe})]}),e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.portWatchCountLabel")}),e.jsx("strong",{children:De})]}),e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.terminalCountLabel")}),e.jsx("strong",{children:Y.length})]})]}),e.jsxs("div",{className:"terminal-manager-toolbar terminal-manager-toolbar-header",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:!i,onClick:()=>{i&&N(Oe(i))},children:n("terminalManager.openWorkspaceDebugAction")}),e.jsx("button",{className:"ghost-button",type:"button",disabled:!i||oe,onClick:()=>{i&&k(i)},children:n("terminalManager.refresh")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!i,onClick:()=>{Ue()},children:n("terminalManager.openCreateModalAction")})]})]}),e.jsxs("section",{className:"terminal-manager-section",children:[e.jsxs("div",{className:"terminal-manager-section-header",children:[e.jsxs("div",{children:[e.jsx("h3",{children:n("terminalManager.templateSectionTitle")}),e.jsx("p",{className:"status-text",children:n("terminalManager.templateSectionDescription")})]}),e.jsx("span",{className:"workbench-section-counter",children:j.length})]}),oe&&!j.length?e.jsx("p",{className:"status-text",children:n("common.loading")}):null,j.length?e.jsx("div",{className:"terminal-manager-list",children:j.map(a=>{const r=Ie(je,a.id),o=ba(a,r),y=fa(r),L=Re.includes(a.id),Ke=L?n("terminalManager.hideDetailsAction"):n("terminalManager.showDetailsAction"),le=a.proxyEnabled&&a.proxySlug?ha(a.proxySlug):null;return e.jsxs("article",{className:"terminal-manager-card terminal-manager-desktop-card","data-tone":o.tone,"data-expanded":L?"true":"false",children:[e.jsxs("div",{className:"terminal-manager-card-header",children:[e.jsxs("div",{className:"terminal-manager-card-title",children:[e.jsx("span",{className:"terminal-manager-card-indicator","aria-hidden":"true"}),e.jsx("strong",{children:a.name})]}),e.jsxs("div",{className:"terminal-manager-card-tools",children:[e.jsx("span",{className:"badge terminal-runtime-badge",children:ke(a.runtimeType,m.ui.osFamily)}),e.jsx("span",{className:"badge",children:Ee(a)==="script"?n("terminalManager.scriptMode"):n("terminalManager.commandMode")}),e.jsx("button",{className:"terminal-manager-detail-toggle",type:"button","aria-label":Ke,"aria-expanded":L,onClick:()=>{ze(a.id)},children:"i"})]})]}),e.jsxs("div",{className:"terminal-manager-status-panel",children:[e.jsxs("div",{className:"terminal-manager-status-copy",children:[e.jsx("p",{className:"terminal-manager-status-title",children:o.title}),e.jsx("p",{className:"status-text",children:o.summary})]}),e.jsxs("div",{className:"terminal-manager-status-badges",children:[e.jsx("span",{className:"terminal-manager-stat-pill",children:a.port===null?n("terminalManager.portUnset"):`${n("terminalManager.portLabel")} ${a.port}`}),e.jsx("span",{className:"badge","data-tone":o.badgeTone,children:o.badgeLabel}),r!=null&&r.occupied&&r.processGroupId?e.jsx("span",{className:"badge",children:`PGID ${r.processGroupId}`}):null,a.proxyEnabled?e.jsx("span",{className:"badge",children:n("terminalManager.proxyEnabled")}):null]})]}),e.jsxs("div",{className:"terminal-manager-actions",children:[r!=null&&r.occupied?e.jsx("button",{className:"secondary-button",type:"button",disabled:ue===a.id,onClick:()=>{Be(a.id)},children:ue===a.id?n("terminalManager.stoppingProcess"):n("terminalManager.stopProcessAction")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:me===a.id||Ae,onClick:()=>{We(a.id)},children:me===a.id?n("terminalManager.runningTemplate"):n("terminalManager.runTemplateAction")})]}),L?e.jsxs("section",{className:"terminal-manager-details","aria-label":n("terminalManager.detailsSectionTitle"),children:[e.jsxs("div",{className:"terminal-manager-detail-grid",children:[e.jsxs("div",{className:"terminal-manager-detail-item terminal-manager-detail-item-wide",children:[e.jsx("span",{children:n("terminalManager.commandPreviewLabel")}),e.jsx("strong",{children:ga(a)})]}),e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.cwdLabel")}),e.jsx("strong",{children:a.cwd})]}),e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminal.runtimeField")}),e.jsx("strong",{children:ke(a.runtimeType,m.ui.osFamily)})]}),e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.updatedAt")}),e.jsx("strong",{children:ca(a.updatedAt)})]}),e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.portLabel")}),e.jsx("strong",{children:a.port===null?n("terminalManager.portUnset"):a.port})]}),e.jsxs("div",{className:"terminal-manager-detail-item terminal-manager-detail-item-wide",children:[e.jsx("span",{children:n("terminalManager.proxyField")}),e.jsx("strong",{children:le??n("terminalManager.proxyDisabledDescription")})]}),r!=null&&r.processId?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.processIdLabel")}),e.jsx("strong",{children:r.processId})]}):null,r!=null&&r.processGroupId?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.processGroupIdLabel")}),e.jsx("strong",{children:r.processGroupId})]}):null,y?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.terminationScopeLabel")}),e.jsx("strong",{children:y})]}):null,r!=null&&r.parentProcessId?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.parentProcessIdLabel")}),e.jsx("strong",{children:r.parentProcessId})]}):null,r!=null&&r.processCommandLine?e.jsxs("div",{className:"terminal-manager-detail-item terminal-manager-detail-item-wide",children:[e.jsx("span",{children:n("terminalManager.processCommandLabel")}),e.jsx("strong",{children:r.processCommandLine})]}):null,r!=null&&r.parentProcessCommandLine?e.jsxs("div",{className:"terminal-manager-detail-item terminal-manager-detail-item-wide",children:[e.jsx("span",{children:n("terminalManager.parentProcessCommandLabel")}),e.jsx("strong",{children:r.parentProcessCommandLine})]}):null]}),e.jsxs("div",{className:"terminal-manager-actions terminal-manager-detail-actions",children:[le?e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>{qe(le)},children:n("terminalManager.openProxyUrlAction")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:ne||C===a.id,onClick:()=>{$e(a)},children:n("terminalManager.editAction")}),e.jsx("button",{className:"secondary-button workbench-danger-button",type:"button",disabled:C===a.id,onClick:()=>{$({templateId:a.id,name:a.name,occupied:!!(r!=null&&r.occupied)})},children:C===a.id?n("terminalManager.templateRemoving"):n("terminalManager.removeAction")})]})]}):null]},a.id)})}):e.jsx("section",{className:"workbench-empty-state minimal",children:e.jsx("p",{children:n("terminalManager.emptyTemplateBody")})})]}),e.jsx(ja,{open:H,mobile:B,title:I?n("terminalManager.editModalTitle"):n("terminalManager.createModalTitle"),description:I?n("terminalManager.editModalDescription"):n("terminalManager.createModalDescription"),className:B?"terminal-manager-mobile-modal":void 0,onClose:J,children:e.jsxs("section",{className:"terminal-manager-modal-form",children:[B?e.jsxs(e.Fragment,{children:[e.jsx(Le,{label:n("terminalManager.shellField"),value:W,open:be==="shell",options:b.map(a=>({value:a.id,label:a.label,description:a.available?null:a.unavailableReason??n("terminalManager.shellUnavailable"),disabled:!a.available})),onToggle:()=>{w(a=>a==="shell"?null:"shell")},onChange:a=>{ae(a),w(null)}}),(g==null?void 0:g.available)===!1&&g.unavailableReason?e.jsx("p",{className:"status-text",children:g.unavailableReason}):null,e.jsx(Le,{label:n("terminal.runtimeField"),value:_,open:be==="runtime",options:F.map(a=>({value:a.value,label:a.label,description:a.description})),onToggle:()=>{w(a=>a==="runtime"?null:"runtime")},onChange:a=>{E(a),w(null)}}),e.jsx("p",{className:"status-text",children:((ve=F.find(a=>a.value===_))==null?void 0:ve.description)??((Me=F[0])==null?void 0:Me.description)})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.shellField")}),e.jsx("select",{value:W,onChange:a=>{ae(a.target.value)},children:b.map(a=>e.jsx("option",{value:a.id,disabled:!a.available,children:a.available?a.label:`${a.label} - ${n("terminalManager.shellUnavailable")}`},a.id))}),(g==null?void 0:g.available)===!1&&g.unavailableReason?e.jsx("p",{className:"status-text",children:g.unavailableReason}):null]}),e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminal.runtimeField")}),e.jsx("select",{value:_,onChange:a=>{E(a.target.value)},children:F.map(a=>e.jsx("option",{value:a.value,children:a.label},a.value||"auto"))}),e.jsx("p",{className:"status-text",children:((ye=F.find(a=>a.value===_))==null?void 0:ye.description)??((Ne=F[0])==null?void 0:Ne.description)})]})]}),e.jsxs("div",{className:"terminal-manager-mode-row",role:"tablist","aria-label":n("terminalManager.modeField"),children:[e.jsx("button",{type:"button",className:d.mode==="command"?"workbench-info-tab active":"workbench-info-tab",onClick:()=>{v(a=>({...a,mode:"command"}))},children:n("terminalManager.commandMode")}),e.jsx("button",{type:"button",className:d.mode==="script"?"workbench-info-tab active":"workbench-info-tab",onClick:()=>{v(a=>({...a,mode:"script"}))},children:n("terminalManager.scriptMode")})]}),e.jsxs("div",{className:"terminal-manager-grid",children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.templateNameField")}),e.jsx("input",{value:d.name,placeholder:n("terminalManager.templateNamePlaceholder"),onChange:a=>{v(r=>({...r,name:a.target.value}))}})]}),e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.cwdField")}),e.jsx("input",{value:d.cwd,placeholder:n("terminalManager.cwdPlaceholder"),onChange:a=>{v(r=>({...r,cwd:a.target.value}))}})]})]}),e.jsxs("div",{className:"terminal-manager-grid",children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:d.mode==="script"?n("terminalManager.scriptPathField"):n("terminalManager.commandField")}),e.jsx("input",{value:d.target,placeholder:d.mode==="script"?n("terminalManager.scriptPathPlaceholder"):n("terminalManager.commandPlaceholder"),onChange:a=>{v(r=>({...r,target:a.target.value}))}})]}),e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.argsField")}),e.jsx("input",{value:d.args,placeholder:n("terminalManager.argsPlaceholder"),onChange:a=>{v(r=>({...r,args:a.target.value}))}})]})]}),e.jsxs("div",{className:"terminal-manager-grid",children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.portField")}),e.jsx("input",{value:d.port,placeholder:n("terminalManager.portPlaceholder"),onChange:a=>{v(r=>({...r,port:a.target.value}))}})]}),e.jsxs("div",{className:"field-group terminal-manager-proxy-field",children:[e.jsx("span",{children:n("terminalManager.proxyField")}),e.jsxs("div",{className:"terminal-manager-proxy-control",children:[e.jsx("span",{children:n("terminalManager.proxyToggleLabel")}),e.jsxs("label",{className:"terminal-manager-proxy-switch",children:[e.jsx("input",{type:"checkbox",role:"switch","aria-label":n("terminalManager.proxyField"),checked:d.proxyEnabled,onChange:a=>{v(r=>({...r,proxyEnabled:a.target.checked}))}}),e.jsx("span",{className:"terminal-manager-proxy-track","aria-hidden":"true",children:e.jsx("span",{className:"terminal-manager-proxy-thumb"})})]})]})]})]}),e.jsxs("div",{className:"terminal-manager-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:J,children:n("common.close")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!i||ne||!d.target.trim(),onClick:()=>{He()},children:ne?I?n("terminalManager.templateUpdating"):n("terminalManager.templateSaving"):I?n("terminalManager.saveTemplateChangesAction"):n("terminalManager.saveLaunchAction")})]})]})}),e.jsx(va,{open:M!==null,mobile:B,busy:M!==null&&C===M.templateId,title:n("terminalManager.removeConfirmTitle"),description:M?n(M.occupied?"terminalManager.removeRunningConfirmTarget":"terminalManager.removeConfirmTarget",{name:M.name}):"",confirmLabel:n("terminalManager.removeConfirmAction"),className:B?"terminal-manager-mobile-modal":"terminal-manager-confirm-modal",onClose:()=>{C||$(null)},onConfirm:()=>{if(!M)return;const a=j.find(r=>r.id===M.templateId);if(!a){$(null);return}Ie(je,a.id),Ge(a)}})]}):e.jsx("section",{className:"workbench-empty-state minimal",children:e.jsx("p",{children:n("terminalManager.noCurrentWorkspaceBody")})}):e.jsx("section",{className:"workbench-empty-state minimal",children:e.jsx("p",{children:n("terminalManager.emptyWorkspaceBody")})})}function Ta(l){const t=l==null?void 0:l.targetHostId;return typeof t=="string"&&t.trim()?t.trim():null}function ka(l,t){return((l==null?void 0:l.trim())||null)===((t==null?void 0:t.trim())||null)}function te(l,t){return`terminal-manager.snapshot.${t!=null&&t.trim()?`host.${encodeURIComponent(t.trim())}.`:""}${l}`}export{_a as TerminalManagerPanel};
1
+ import{b as s,E as Te,F as Xe,j as e,t as n,D as Je}from"./index-CILPuSCp.js";import{D as Pe}from"./DesktopModal-BCVZq_PQ.js";import{V as Oe,w as Qe}from"./workbench-navigation-hwM28xIb.js";import{M as Se}from"./MobileSheet-DPYtp5Ze.js";import{b as Ye,ar as O,cm as Ze,cn as ea,q as ke,C as Ce,co as aa,cp as na,cq as ra,cr as la,cs as ta}from"./WorkbenchLayout-yGxGKcG1.js";import{u as ia,e as sa,f as oa}from"./App-D5hc6KuU.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-df5bYDlE.js";import"./relay-entry-ErQKnI7B.js";import"./WorkbenchModal-Cm-ciXO9.js";const Q={mode:"command",name:"",cwd:"",target:"",args:"",port:"",proxyEnabled:!1},we=60*1e3;function ca(l){return l?new Date(l).toLocaleString():n("common.unknown")}function ma(l){return l.split(" ").map(t=>t.trim()).filter(Boolean)}function da(l){var t,c,u;return((t=l.find(p=>p.id==="cmd"&&p.available))==null?void 0:t.id)??((c=l.find(p=>p.available))==null?void 0:c.id)??((u=l[0])==null?void 0:u.id)??""}function ua(l){const t=l.name.trim();if(t)return t;const c=l.target.trim(),u=l.args.trim();return c?u?`${c} ${u}`:c:l.mode==="script"?n("terminalManager.defaultScriptName"):n("terminalManager.defaultCommandName")}function ga(l){const t=l.args.join(" ");return t?`${l.command} ${t}`:l.command}function pa(l){return{mode:Ee(l),name:l.name,cwd:l.cwd,target:l.command,args:l.args.join(" "),port:l.port===null?"":String(l.port),proxyEnabled:l.proxyEnabled}}function ha(l){return Je(`/proxy/${encodeURIComponent(l)}`)}function Ee(l){const t=l.command.toLowerCase();return t.endsWith(".ps1")||t.endsWith(".bat")||t.endsWith(".cmd")||t.endsWith(".sh")?"script":"command"}function xa(l){const t=l.trim();if(!t)return null;const c=Number(t);return Number.isInteger(c)?c:Number.NaN}function Ie(l,t){return l.get(t)??null}function ba(l,t){return l.port===null?{tone:"untracked",title:n("terminalManager.portUnset"),summary:n("terminalManager.portUnsetDescription"),badgeLabel:n("terminalManager.portUnset")}:t!=null&&t.occupied?{tone:"running",title:n("terminalManager.portOccupied"),summary:t.processName||n("terminalManager.processCommandFallback"),badgeLabel:t.processId?`PID ${t.processId}`:n("terminalManager.statusRunning"),badgeTone:"success"}:{tone:"idle",title:n("terminalManager.portAvailable"),summary:n("terminalManager.portAvailableDescription"),badgeLabel:n("terminalManager.statusStopped")}}function fa(l){return l!=null&&l.terminationScope?l.terminationScope==="process_group"?n("terminalManager.terminationScopeProcessGroup"):n("terminalManager.terminationScopeProcess"):null}function ja({open:l,mobile:t=!1,title:c,description:u,onClose:p,children:N,className:m}){return t?e.jsx(Se,{open:l,title:c,description:u,kind:"form",height:"three-quarter",className:m,bodyClassName:"terminal-manager-modal-body",showHandle:!0,onClose:p,children:N}):e.jsx(Pe,{open:l,title:c,description:u,size:"regular",layout:"form",className:["terminal-manager-modal-card",m].filter(Boolean).join(" "),bodyClassName:"terminal-manager-modal-body",onClose:p,children:N})}function va({open:l,mobile:t=!1,busy:c,title:u,description:p,confirmLabel:N,onClose:m,onConfirm:x,className:T}){const D=e.jsxs(Qe,{className:"terminal-manager-confirm-actions",children:[e.jsx("button",{type:"button",className:"secondary-button",disabled:c,onClick:m,children:n("common.cancel")}),e.jsx("button",{type:"button",className:"secondary-button workbench-danger-button",disabled:c,onClick:()=>{x()},children:c?n("terminalManager.templateRemoving"):N})]});return t?e.jsx(Se,{open:l,title:u,description:p,kind:"action",height:"auto",dismissible:!c,showHandle:!0,showCancelButton:!1,className:T,bodyClassName:"terminal-manager-confirm-body",footer:D,onClose:m,children:null}):e.jsx(Pe,{open:l,title:u,description:p,size:"compact",layout:"confirm",dismissible:!c,className:["terminal-manager-confirm-modal",T].filter(Boolean).join(" "),bodyClassName:"terminal-manager-confirm-body",footer:D,onClose:m,children:null})}function Le({label:l,value:t,options:c,open:u,onToggle:p,onChange:N}){const m=c.find(x=>x.value===t)??c[0]??null;return e.jsxs("div",{className:"field-group terminal-manager-mobile-picker",children:[e.jsx("span",{children:l}),e.jsxs("button",{type:"button",className:"terminal-manager-mobile-picker-trigger","aria-label":`${l} ${(m==null?void 0:m.label)??""}`.trim(),"aria-expanded":u?"true":"false",onClick:p,children:[e.jsxs("span",{className:"terminal-manager-mobile-picker-copy",children:[e.jsx("strong",{children:(m==null?void 0:m.label)??n("common.unknown")}),m!=null&&m.description?e.jsx("span",{children:m.description}):null]}),e.jsx(Ma,{expanded:u})]}),u?e.jsx("div",{className:"terminal-manager-mobile-picker-list",role:"listbox","aria-label":l,children:c.map(x=>{const T=x.value===t;return e.jsxs("button",{type:"button",role:"option",className:"terminal-manager-mobile-picker-option","aria-selected":T,disabled:x.disabled,onClick:()=>{N(x.value)},children:[e.jsxs("span",{className:"terminal-manager-mobile-picker-option-copy",children:[e.jsx("strong",{children:x.label}),x.description?e.jsx("span",{children:x.description}):null]}),e.jsx("span",{className:"terminal-manager-mobile-picker-option-indicator","aria-hidden":"true",children:T?e.jsx(Na,{}):e.jsx(ya,{})})]},x.value||"__empty__")})}):null]})}function Ma({expanded:l}){return e.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",className:"terminal-manager-mobile-picker-chevron","data-expanded":l?"true":"false",children:e.jsx("path",{d:"M4 6.5L8 10l4-3.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.7"})})}function ya(){return e.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:e.jsx("path",{d:"M6 3.5L10.5 8 6 12.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.6"})})}function Na(){return e.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:e.jsx("path",{d:"M3.5 8.5L6.5 11.5L12.5 5.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.8"})})}function _a({className:l,currentWorkspaceId:t,navigationGroups:c,externalWindowMode:u=!1,workbenchShellOverrides:p}){var ve,Me,ye,Ne;const N=ia(),m=sa(),x=Ye(),{subscribeTerminalManagerSnapshot:T,requestTerminalManagerRefresh:D,addTerminalManagerSnapshotListener:ie,currentTargetHostId:h}={...x,...p},i=(t==null?void 0:t.trim())||null,[Y,q]=s.useState([]),[Z,G]=s.useState(null),[j,P]=s.useState([]),[S,A]=s.useState([]),[b,ee]=s.useState([]),[W,ae]=s.useState(""),[_,E]=s.useState(""),[d,v]=s.useState(Q),[U,V]=s.useState(null),[R,z]=s.useState(null),[Re,se]=s.useState([]),[oe,K]=s.useState(!1),[ne,ce]=s.useState(!1),[me,de]=s.useState(null),[ue,ge]=s.useState(null),[C,pe]=s.useState(null),[M,$]=s.useState(null),[X,re]=s.useState(null),[he,xe]=s.useState(!1),[be,w]=s.useState(null),{showToast:f}=oa(),B=(l==null?void 0:l.includes("mobile-tool-process-panel"))??!1,H=U!==null,fe=U==="edit"?j.find(a=>a.id===R)??null:null,I=U==="edit";s.useEffect(()=>{O("terminal_manager.props",{currentWorkspaceId:t,workspaceCount:c.length,externalWindowMode:u})},[t,u,c.length]);const g=s.useMemo(()=>b.find(a=>a.id===W)??null,[W,b]),F=s.useMemo(()=>Ze(m.ui.osFamily),[m.ui.osFamily]),je=s.useMemo(()=>new Map(S.map(a=>[a.templateId,a])),[S]),Fe=s.useMemo(()=>S.filter(a=>a.occupied).length,[S]),De=s.useMemo(()=>j.filter(a=>a.port!==null).length,[j]),Ae=(g==null?void 0:g.available)===!1&&b.length>0;s.useEffect(()=>{ae(a=>b.length?a&&b.some(r=>r.id===a)?a:da(b):"")},[b]),s.useEffect(()=>{!H||!i||b.length>0||k(i)},[i,b.length,H]),s.useEffect(()=>{H||w(null)},[H]),s.useEffect(()=>{U==="edit"&&R&&!fe&&(V(null),z(null),v(Q),E(""),w(null))},[fe,R,U]),s.useEffect(()=>{!M||C===M.templateId||j.some(a=>a.id===M.templateId)||$(null)},[M,C,j]),s.useEffect(()=>{if(!i){q([]),G(null),P([]),A([]),K(!1);return}const a=Te(te(i,h),we);O("terminal_manager.snapshot",{workspaceId:i,cached:!!a,cachedTemplateCount:(a==null?void 0:a.templates.length)??0,cachedStatusCount:(a==null?void 0:a.templateStatuses.length)??0}),a?(q(a.terminals),G(typeof a.revision=="string"?a.revision:null),P(a.templates),A(a.templateStatuses),ee(a.shellOptions??[]),K(!1)):(q([]),G(null),P([]),A([]),ee([]),K(!0))},[i]),s.useEffect(()=>{if(i)return ie(a=>{a.workspaceId!==i||!ka(Ta(a),h)||(O("terminal_manager.snapshot_received",{workspaceId:a.workspaceId,terminalCount:a.terminals.length,templateCount:a.templates.length,statusCount:a.templateStatuses.length}),_e(a),K(!1))})},[i,ie,h]),s.useEffect(()=>{if(!i)return;const a=Te(te(i,h),we);T(i,{knownRevision:(a==null?void 0:a.revision)??null,targetHostId:h}),a||k(i)},[i,h,D,T]),s.useEffect(()=>{i&&Xe(te(i,h),{revision:Z,terminals:Y,templates:j,templateStatuses:S,shellOptions:b})},[i,Z,b,S,j,Y]);function _e(a){G(typeof a.revision=="string"?a.revision:null),q(a.terminals),P(a.templates),A(a.templateStatuses),ee(a.shellOptions??[])}function k(a){O("terminal_manager.refresh_requested",{workspaceId:a}),D(a,{knownRevision:Z,targetHostId:h})}function J(){V(null),z(null),v(Q),E(""),w(null)}function Ue(){z(null),v(Q),E(""),V("create")}function $e(a){z(a.id),v(pa(a)),E(a.runtimeType??""),V("edit")}async function Be(a){if(i){ge(a);try{await aa(a,{targetHostId:h}),k(i),f({title:n("terminalManager.stopProcessSuccess"),tone:"success"})}catch(r){f({title:r instanceof Error?r.message:n("terminalManager.stopProcessFailed"),tone:"error"})}finally{ge(null)}}}async function He(){if(!i||!d.target.trim())return;const a=xa(d.port);if(Number.isNaN(a)){f({title:n("terminalManager.invalidPort"),tone:"error"});return}if(d.proxyEnabled&&a===null){f({title:n("terminalManager.proxyPortRequired"),tone:"error"});return}ce(!0);try{const r={workspaceId:i,name:ua(d),cwd:d.cwd.trim()||void 0,command:d.target.trim(),args:ma(d.args),port:a,proxyEnabled:d.proxyEnabled,runtimeType:_||null};if(I&&R){const o=await ra(R,r,{targetHostId:h});P(y=>y.map(L=>L.id===o.id?o:L))}else await la(r,{targetHostId:h});J(),k(i),f({title:I?n("terminalManager.templateUpdateSuccess"):n("terminalManager.templateSaveSuccess"),tone:"success"})}catch(r){f({title:r instanceof Error?r.message:I?n("terminalManager.templateUpdateFailed"):n("terminalManager.templateSaveFailed"),tone:"error"})}finally{ce(!1)}}async function qe(a){const r=await m.bridge.openExternal(a);r.ok||f({title:r.detail||n("terminalManager.openProxyUrlFailed"),tone:"error"})}async function Ge(a,r){if(i){pe(a.id);try{await ta(a.id,{targetHostId:h}),P(o=>o.filter(y=>y.id!==a.id)),A(o=>o.filter(y=>y.templateId!==a.id)),se(o=>o.filter(y=>y!==a.id)),$(o=>(o==null?void 0:o.templateId)===a.id?null:o),R===a.id&&J(),k(i),f({title:n("terminalManager.templateDeleteSuccess"),tone:"success"})}catch(o){f({title:o instanceof Error?o.message:n("terminalManager.templateDeleteFailed"),tone:"error"})}finally{pe(null)}}}async function We(a){if(!i)return;const r=g!=null&&g.available?g.shell:void 0;de(a);try{await Ce(a,{shell:r},{targetHostId:h}),k(i),f({title:n("terminalManager.templateRunSuccess"),tone:"success"})}catch(o){if(na(o)){re({templateId:a,shell:r});return}f({title:o instanceof Error?o.message:n("terminalManager.templateRunFailed"),tone:"error"})}finally{de(null)}}async function Ve(){if(!(!i||!X)){xe(!0);try{await Ce(X.templateId,{shell:X.shell,runtimeType:"embedded-pty"},{targetHostId:h}),re(null),k(i),f({title:n("terminalManager.templateRunSuccess"),tone:"success"})}catch(a){f({title:a instanceof Error?a.message:n("terminalManager.templateRunFailed"),tone:"error"})}finally{xe(!1)}}}function ze(a){se(r=>r.includes(a)?r.filter(o=>o!==a):[...r,a])}return c.length?i?e.jsxs("section",{className:["conversation-panel","surface-card","terminal-manager-panel",l].filter(Boolean).join(" "),children:[e.jsx(ea,{open:X!==null,busy:he,onClose:()=>{he||re(null)},onConfirmFallback:()=>{Ve()}}),e.jsxs("div",{className:"terminal-manager-header terminal-manager-desktop-header",children:[e.jsx("div",{className:"terminal-manager-panel-heading",children:e.jsxs("div",{children:[e.jsx("h2",{children:n("terminalManager.templateSectionTitle")}),e.jsx("p",{className:"status-text",children:n("terminalManager.desktopPanelDescription")})]})}),e.jsxs("div",{className:"terminal-manager-overview",children:[e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.runningCountLabel")}),e.jsx("strong",{children:Fe})]}),e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.portWatchCountLabel")}),e.jsx("strong",{children:De})]}),e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.terminalCountLabel")}),e.jsx("strong",{children:Y.length})]})]}),e.jsxs("div",{className:"terminal-manager-toolbar terminal-manager-toolbar-header",children:[e.jsx("button",{className:"secondary-button",type:"button",disabled:!i,onClick:()=>{i&&N(Oe(i))},children:n("terminalManager.openWorkspaceDebugAction")}),e.jsx("button",{className:"ghost-button",type:"button",disabled:!i||oe,onClick:()=>{i&&k(i)},children:n("terminalManager.refresh")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!i,onClick:()=>{Ue()},children:n("terminalManager.openCreateModalAction")})]})]}),e.jsxs("section",{className:"terminal-manager-section",children:[e.jsxs("div",{className:"terminal-manager-section-header",children:[e.jsxs("div",{children:[e.jsx("h3",{children:n("terminalManager.templateSectionTitle")}),e.jsx("p",{className:"status-text",children:n("terminalManager.templateSectionDescription")})]}),e.jsx("span",{className:"workbench-section-counter",children:j.length})]}),oe&&!j.length?e.jsx("p",{className:"status-text",children:n("common.loading")}):null,j.length?e.jsx("div",{className:"terminal-manager-list",children:j.map(a=>{const r=Ie(je,a.id),o=ba(a,r),y=fa(r),L=Re.includes(a.id),Ke=L?n("terminalManager.hideDetailsAction"):n("terminalManager.showDetailsAction"),le=a.proxyEnabled&&a.proxySlug?ha(a.proxySlug):null;return e.jsxs("article",{className:"terminal-manager-card terminal-manager-desktop-card","data-tone":o.tone,"data-expanded":L?"true":"false",children:[e.jsxs("div",{className:"terminal-manager-card-header",children:[e.jsxs("div",{className:"terminal-manager-card-title",children:[e.jsx("span",{className:"terminal-manager-card-indicator","aria-hidden":"true"}),e.jsx("strong",{children:a.name})]}),e.jsxs("div",{className:"terminal-manager-card-tools",children:[e.jsx("span",{className:"badge terminal-runtime-badge",children:ke(a.runtimeType,m.ui.osFamily)}),e.jsx("span",{className:"badge",children:Ee(a)==="script"?n("terminalManager.scriptMode"):n("terminalManager.commandMode")}),e.jsx("button",{className:"terminal-manager-detail-toggle",type:"button","aria-label":Ke,"aria-expanded":L,onClick:()=>{ze(a.id)},children:"i"})]})]}),e.jsxs("div",{className:"terminal-manager-status-panel",children:[e.jsxs("div",{className:"terminal-manager-status-copy",children:[e.jsx("p",{className:"terminal-manager-status-title",children:o.title}),e.jsx("p",{className:"status-text",children:o.summary})]}),e.jsxs("div",{className:"terminal-manager-status-badges",children:[e.jsx("span",{className:"terminal-manager-stat-pill",children:a.port===null?n("terminalManager.portUnset"):`${n("terminalManager.portLabel")} ${a.port}`}),e.jsx("span",{className:"badge","data-tone":o.badgeTone,children:o.badgeLabel}),r!=null&&r.occupied&&r.processGroupId?e.jsx("span",{className:"badge",children:`PGID ${r.processGroupId}`}):null,a.proxyEnabled?e.jsx("span",{className:"badge",children:n("terminalManager.proxyEnabled")}):null]})]}),e.jsxs("div",{className:"terminal-manager-actions",children:[r!=null&&r.occupied?e.jsx("button",{className:"secondary-button",type:"button",disabled:ue===a.id,onClick:()=>{Be(a.id)},children:ue===a.id?n("terminalManager.stoppingProcess"):n("terminalManager.stopProcessAction")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:me===a.id||Ae,onClick:()=>{We(a.id)},children:me===a.id?n("terminalManager.runningTemplate"):n("terminalManager.runTemplateAction")})]}),L?e.jsxs("section",{className:"terminal-manager-details","aria-label":n("terminalManager.detailsSectionTitle"),children:[e.jsxs("div",{className:"terminal-manager-detail-grid",children:[e.jsxs("div",{className:"terminal-manager-detail-item terminal-manager-detail-item-wide",children:[e.jsx("span",{children:n("terminalManager.commandPreviewLabel")}),e.jsx("strong",{children:ga(a)})]}),e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.cwdLabel")}),e.jsx("strong",{children:a.cwd})]}),e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminal.runtimeField")}),e.jsx("strong",{children:ke(a.runtimeType,m.ui.osFamily)})]}),e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.updatedAt")}),e.jsx("strong",{children:ca(a.updatedAt)})]}),e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.portLabel")}),e.jsx("strong",{children:a.port===null?n("terminalManager.portUnset"):a.port})]}),e.jsxs("div",{className:"terminal-manager-detail-item terminal-manager-detail-item-wide",children:[e.jsx("span",{children:n("terminalManager.proxyField")}),e.jsx("strong",{children:le??n("terminalManager.proxyDisabledDescription")})]}),r!=null&&r.processId?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.processIdLabel")}),e.jsx("strong",{children:r.processId})]}):null,r!=null&&r.processGroupId?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.processGroupIdLabel")}),e.jsx("strong",{children:r.processGroupId})]}):null,y?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.terminationScopeLabel")}),e.jsx("strong",{children:y})]}):null,r!=null&&r.parentProcessId?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.parentProcessIdLabel")}),e.jsx("strong",{children:r.parentProcessId})]}):null,r!=null&&r.processCommandLine?e.jsxs("div",{className:"terminal-manager-detail-item terminal-manager-detail-item-wide",children:[e.jsx("span",{children:n("terminalManager.processCommandLabel")}),e.jsx("strong",{children:r.processCommandLine})]}):null,r!=null&&r.parentProcessCommandLine?e.jsxs("div",{className:"terminal-manager-detail-item terminal-manager-detail-item-wide",children:[e.jsx("span",{children:n("terminalManager.parentProcessCommandLabel")}),e.jsx("strong",{children:r.parentProcessCommandLine})]}):null]}),e.jsxs("div",{className:"terminal-manager-actions terminal-manager-detail-actions",children:[le?e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>{qe(le)},children:n("terminalManager.openProxyUrlAction")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:ne||C===a.id,onClick:()=>{$e(a)},children:n("terminalManager.editAction")}),e.jsx("button",{className:"secondary-button workbench-danger-button",type:"button",disabled:C===a.id,onClick:()=>{$({templateId:a.id,name:a.name,occupied:!!(r!=null&&r.occupied)})},children:C===a.id?n("terminalManager.templateRemoving"):n("terminalManager.removeAction")})]})]}):null]},a.id)})}):e.jsx("section",{className:"workbench-empty-state minimal",children:e.jsx("p",{children:n("terminalManager.emptyTemplateBody")})})]}),e.jsx(ja,{open:H,mobile:B,title:I?n("terminalManager.editModalTitle"):n("terminalManager.createModalTitle"),description:I?n("terminalManager.editModalDescription"):n("terminalManager.createModalDescription"),className:B?"terminal-manager-mobile-modal":void 0,onClose:J,children:e.jsxs("section",{className:"terminal-manager-modal-form",children:[B?e.jsxs(e.Fragment,{children:[e.jsx(Le,{label:n("terminalManager.shellField"),value:W,open:be==="shell",options:b.map(a=>({value:a.id,label:a.label,description:a.available?null:a.unavailableReason??n("terminalManager.shellUnavailable"),disabled:!a.available})),onToggle:()=>{w(a=>a==="shell"?null:"shell")},onChange:a=>{ae(a),w(null)}}),(g==null?void 0:g.available)===!1&&g.unavailableReason?e.jsx("p",{className:"status-text",children:g.unavailableReason}):null,e.jsx(Le,{label:n("terminal.runtimeField"),value:_,open:be==="runtime",options:F.map(a=>({value:a.value,label:a.label,description:a.description})),onToggle:()=>{w(a=>a==="runtime"?null:"runtime")},onChange:a=>{E(a),w(null)}}),e.jsx("p",{className:"status-text",children:((ve=F.find(a=>a.value===_))==null?void 0:ve.description)??((Me=F[0])==null?void 0:Me.description)})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.shellField")}),e.jsx("select",{value:W,onChange:a=>{ae(a.target.value)},children:b.map(a=>e.jsx("option",{value:a.id,disabled:!a.available,children:a.available?a.label:`${a.label} - ${n("terminalManager.shellUnavailable")}`},a.id))}),(g==null?void 0:g.available)===!1&&g.unavailableReason?e.jsx("p",{className:"status-text",children:g.unavailableReason}):null]}),e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminal.runtimeField")}),e.jsx("select",{value:_,onChange:a=>{E(a.target.value)},children:F.map(a=>e.jsx("option",{value:a.value,children:a.label},a.value||"auto"))}),e.jsx("p",{className:"status-text",children:((ye=F.find(a=>a.value===_))==null?void 0:ye.description)??((Ne=F[0])==null?void 0:Ne.description)})]})]}),e.jsxs("div",{className:"terminal-manager-mode-row",role:"tablist","aria-label":n("terminalManager.modeField"),children:[e.jsx("button",{type:"button",className:d.mode==="command"?"workbench-info-tab active":"workbench-info-tab",onClick:()=>{v(a=>({...a,mode:"command"}))},children:n("terminalManager.commandMode")}),e.jsx("button",{type:"button",className:d.mode==="script"?"workbench-info-tab active":"workbench-info-tab",onClick:()=>{v(a=>({...a,mode:"script"}))},children:n("terminalManager.scriptMode")})]}),e.jsxs("div",{className:"terminal-manager-grid",children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.templateNameField")}),e.jsx("input",{value:d.name,placeholder:n("terminalManager.templateNamePlaceholder"),onChange:a=>{v(r=>({...r,name:a.target.value}))}})]}),e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.cwdField")}),e.jsx("input",{value:d.cwd,placeholder:n("terminalManager.cwdPlaceholder"),onChange:a=>{v(r=>({...r,cwd:a.target.value}))}})]})]}),e.jsxs("div",{className:"terminal-manager-grid",children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:d.mode==="script"?n("terminalManager.scriptPathField"):n("terminalManager.commandField")}),e.jsx("input",{value:d.target,placeholder:d.mode==="script"?n("terminalManager.scriptPathPlaceholder"):n("terminalManager.commandPlaceholder"),onChange:a=>{v(r=>({...r,target:a.target.value}))}})]}),e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.argsField")}),e.jsx("input",{value:d.args,placeholder:n("terminalManager.argsPlaceholder"),onChange:a=>{v(r=>({...r,args:a.target.value}))}})]})]}),e.jsxs("div",{className:"terminal-manager-grid",children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.portField")}),e.jsx("input",{value:d.port,placeholder:n("terminalManager.portPlaceholder"),onChange:a=>{v(r=>({...r,port:a.target.value}))}})]}),e.jsxs("div",{className:"field-group terminal-manager-proxy-field",children:[e.jsx("span",{children:n("terminalManager.proxyField")}),e.jsxs("div",{className:"terminal-manager-proxy-control",children:[e.jsx("span",{children:n("terminalManager.proxyToggleLabel")}),e.jsxs("label",{className:"terminal-manager-proxy-switch",children:[e.jsx("input",{type:"checkbox",role:"switch","aria-label":n("terminalManager.proxyField"),checked:d.proxyEnabled,onChange:a=>{v(r=>({...r,proxyEnabled:a.target.checked}))}}),e.jsx("span",{className:"terminal-manager-proxy-track","aria-hidden":"true",children:e.jsx("span",{className:"terminal-manager-proxy-thumb"})})]})]})]})]}),e.jsxs("div",{className:"terminal-manager-actions",children:[e.jsx("button",{className:"secondary-button",type:"button",onClick:J,children:n("common.close")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!i||ne||!d.target.trim(),onClick:()=>{He()},children:ne?I?n("terminalManager.templateUpdating"):n("terminalManager.templateSaving"):I?n("terminalManager.saveTemplateChangesAction"):n("terminalManager.saveLaunchAction")})]})]})}),e.jsx(va,{open:M!==null,mobile:B,busy:M!==null&&C===M.templateId,title:n("terminalManager.removeConfirmTitle"),description:M?n(M.occupied?"terminalManager.removeRunningConfirmTarget":"terminalManager.removeConfirmTarget",{name:M.name}):"",confirmLabel:n("terminalManager.removeConfirmAction"),className:B?"terminal-manager-mobile-modal":"terminal-manager-confirm-modal",onClose:()=>{C||$(null)},onConfirm:()=>{if(!M)return;const a=j.find(r=>r.id===M.templateId);if(!a){$(null);return}Ie(je,a.id),Ge(a)}})]}):e.jsx("section",{className:"workbench-empty-state minimal",children:e.jsx("p",{children:n("terminalManager.noCurrentWorkspaceBody")})}):e.jsx("section",{className:"workbench-empty-state minimal",children:e.jsx("p",{children:n("terminalManager.emptyWorkspaceBody")})})}function Ta(l){const t=l==null?void 0:l.targetHostId;return typeof t=="string"&&t.trim()?t.trim():null}function ka(l,t){return((l==null?void 0:l.trim())||null)===((t==null?void 0:t.trim())||null)}function te(l,t){return`terminal-manager.snapshot.${t!=null&&t.trim()?`host.${encodeURIComponent(t.trim())}.`:""}${l}`}export{_a as TerminalManagerPanel};
@@ -1 +1 @@
1
- import{j as e,t}from"./index-Bp1FnRo_.js";import{b as n}from"./WorkbenchLayout-CoYxMzzR.js";import{c,b as p}from"./workbench-navigation-Bs4OQYD3.js";import{N as m}from"./App-Pe30N_Dy.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-CeDJeL0T.js";import"./DesktopModal-DyC_e0eF.js";import"./relay-entry-B6UDc5cD.js";import"./WorkbenchModal-2PaCY_Gj.js";import"./MobileSheet-C32hwIFd.js";function W(){const{currentWorkspaceId:o,currentSessionId:i,navigationGroups:a}=n();if(!o)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:t("shell.filesEntry")}),e.jsx("p",{children:t("shell.toolsWorkspaceRequiredBody")})]})});const s=a.flatMap(r=>r.sessions).find(r=>r.sessionId===i&&r.workspaceId===o),l=s?c(o,s.sessionId):p(o);return e.jsx(m,{to:`${l}?toolPanel=files`,replace:!0,state:{mobileToolPanelRouteRedirect:!0}})}export{W as ToolFilesPage};
1
+ import{j as e,t}from"./index-CILPuSCp.js";import{b as n}from"./WorkbenchLayout-yGxGKcG1.js";import{c,b as p}from"./workbench-navigation-hwM28xIb.js";import{N as m}from"./App-D5hc6KuU.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-df5bYDlE.js";import"./DesktopModal-BCVZq_PQ.js";import"./relay-entry-ErQKnI7B.js";import"./WorkbenchModal-Cm-ciXO9.js";import"./MobileSheet-DPYtp5Ze.js";function W(){const{currentWorkspaceId:o,currentSessionId:i,navigationGroups:a}=n();if(!o)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:t("shell.filesEntry")}),e.jsx("p",{children:t("shell.toolsWorkspaceRequiredBody")})]})});const s=a.flatMap(r=>r.sessions).find(r=>r.sessionId===i&&r.workspaceId===o),l=s?c(o,s.sessionId):p(o);return e.jsx(m,{to:`${l}?toolPanel=files`,replace:!0,state:{mobileToolPanelRouteRedirect:!0}})}export{W as ToolFilesPage};
@@ -1 +1 @@
1
- import{j as e,t as s}from"./index-Bp1FnRo_.js";import{b as l}from"./WorkbenchLayout-CoYxMzzR.js";import{c,b as p}from"./workbench-navigation-Bs4OQYD3.js";import{N as m}from"./App-Pe30N_Dy.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-CeDJeL0T.js";import"./DesktopModal-DyC_e0eF.js";import"./relay-entry-B6UDc5cD.js";import"./WorkbenchModal-2PaCY_Gj.js";import"./MobileSheet-C32hwIFd.js";function W(){const{currentWorkspaceId:o,currentSessionId:i,navigationGroups:a}=l();if(!o)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:s("shell.gitEntry")}),e.jsx("p",{children:s("shell.toolsWorkspaceRequiredBody")})]})});const t=a.flatMap(r=>r.sessions).find(r=>r.sessionId===i&&r.workspaceId===o),n=t?c(o,t.sessionId):p(o);return e.jsx(m,{to:`${n}?toolPanel=git`,replace:!0,state:{mobileToolPanelRouteRedirect:!0}})}export{W as ToolGitPage};
1
+ import{j as e,t as s}from"./index-CILPuSCp.js";import{b as l}from"./WorkbenchLayout-yGxGKcG1.js";import{c,b as p}from"./workbench-navigation-hwM28xIb.js";import{N as m}from"./App-D5hc6KuU.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-df5bYDlE.js";import"./DesktopModal-BCVZq_PQ.js";import"./relay-entry-ErQKnI7B.js";import"./WorkbenchModal-Cm-ciXO9.js";import"./MobileSheet-DPYtp5Ze.js";function W(){const{currentWorkspaceId:o,currentSessionId:i,navigationGroups:a}=l();if(!o)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:s("shell.gitEntry")}),e.jsx("p",{children:s("shell.toolsWorkspaceRequiredBody")})]})});const t=a.flatMap(r=>r.sessions).find(r=>r.sessionId===i&&r.workspaceId===o),n=t?c(o,t.sessionId):p(o);return e.jsx(m,{to:`${n}?toolPanel=git`,replace:!0,state:{mobileToolPanelRouteRedirect:!0}})}export{W as ToolGitPage};
@@ -1 +1 @@
1
- import{j as e,t}from"./index-Bp1FnRo_.js";import{b as l}from"./WorkbenchLayout-CoYxMzzR.js";import{c,b as p}from"./workbench-navigation-Bs4OQYD3.js";import{N as m}from"./App-Pe30N_Dy.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-CeDJeL0T.js";import"./DesktopModal-DyC_e0eF.js";import"./relay-entry-B6UDc5cD.js";import"./WorkbenchModal-2PaCY_Gj.js";import"./MobileSheet-C32hwIFd.js";function W(){const{currentWorkspaceId:r,currentSessionId:a,navigationGroups:i}=l();if(!r)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:t("shell.terminalManagerEntry")}),e.jsx("p",{children:t("shell.toolsWorkspaceRequiredBody")})]})});const s=i.flatMap(o=>o.sessions).find(o=>o.sessionId===a&&o.workspaceId===r),n=s?c(r,s.sessionId):p(r);return e.jsx(m,{to:`${n}?toolPanel=processes`,replace:!0,state:{mobileToolPanelRouteRedirect:!0}})}export{W as ToolProcessesPage};
1
+ import{j as e,t}from"./index-CILPuSCp.js";import{b as l}from"./WorkbenchLayout-yGxGKcG1.js";import{c,b as p}from"./workbench-navigation-hwM28xIb.js";import{N as m}from"./App-D5hc6KuU.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-df5bYDlE.js";import"./DesktopModal-BCVZq_PQ.js";import"./relay-entry-ErQKnI7B.js";import"./WorkbenchModal-Cm-ciXO9.js";import"./MobileSheet-DPYtp5Ze.js";function W(){const{currentWorkspaceId:r,currentSessionId:a,navigationGroups:i}=l();if(!r)return e.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:e.jsxs("article",{className:"mobile-feature-empty surface-card",children:[e.jsx("h1",{children:t("shell.terminalManagerEntry")}),e.jsx("p",{children:t("shell.toolsWorkspaceRequiredBody")})]})});const s=i.flatMap(o=>o.sessions).find(o=>o.sessionId===a&&o.workspaceId===r),n=s?c(r,s.sessionId):p(r);return e.jsx(m,{to:`${n}?toolPanel=processes`,replace:!0,state:{mobileToolPanelRouteRedirect:!0}})}export{W as ToolProcessesPage};
@@ -1 +1 @@
1
- import{j as r,t as n}from"./index-Bp1FnRo_.js";import{b as m}from"./WorkbenchLayout-CoYxMzzR.js";import{c as d,b as u}from"./workbench-navigation-Bs4OQYD3.js";import{N as f}from"./App-Pe30N_Dy.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-CeDJeL0T.js";import"./DesktopModal-DyC_e0eF.js";import"./relay-entry-B6UDc5cD.js";import"./WorkbenchModal-2PaCY_Gj.js";import"./MobileSheet-C32hwIFd.js";function y(){var t,a;const{navigationGroups:o,currentWorkspaceId:c,currentSessionId:p}=m(),s=((t=o.find(e=>e.workspace.id===c))==null?void 0:t.workspace)??((a=o[0])==null?void 0:a.workspace)??null;if(!s)return r.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:r.jsxs("article",{className:"mobile-feature-empty surface-card",children:[r.jsx("h1",{children:n("shell.mobileSessionsEntry")}),r.jsx("p",{children:n("shell.emptyNavigationBody")})]})});const i=o.flatMap(e=>e.sessions).find(e=>e.sessionId===p&&e.workspaceId===s.id),l=i?d(s.id,i.sessionId):u(s.id);return r.jsx(f,{to:l,replace:!0})}export{y as ToolsHomePage};
1
+ import{j as r,t as n}from"./index-CILPuSCp.js";import{b as m}from"./WorkbenchLayout-yGxGKcG1.js";import{c as d,b as u}from"./workbench-navigation-hwM28xIb.js";import{N as f}from"./App-D5hc6KuU.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-df5bYDlE.js";import"./DesktopModal-BCVZq_PQ.js";import"./relay-entry-ErQKnI7B.js";import"./WorkbenchModal-Cm-ciXO9.js";import"./MobileSheet-DPYtp5Ze.js";function y(){var t,a;const{navigationGroups:o,currentWorkspaceId:c,currentSessionId:p}=m(),s=((t=o.find(e=>e.workspace.id===c))==null?void 0:t.workspace)??((a=o[0])==null?void 0:a.workspace)??null;if(!s)return r.jsx("main",{className:"mobile-feature-page mobile-page-scroll-root",children:r.jsxs("article",{className:"mobile-feature-empty surface-card",children:[r.jsx("h1",{children:n("shell.mobileSessionsEntry")}),r.jsx("p",{children:n("shell.emptyNavigationBody")})]})});const i=o.flatMap(e=>e.sessions).find(e=>e.sessionId===p&&e.workspaceId===s.id),l=i?d(s.id,i.sessionId):u(s.id);return r.jsx(f,{to:l,replace:!0})}export{y as ToolsHomePage};
@@ -1 +1 @@
1
- import{j as e,t as r}from"./index-Bp1FnRo_.js";import{b as c}from"./WorkbenchLayout-CoYxMzzR.js";import{N as t}from"./App-Pe30N_Dy.js";import"./workbench-navigation-Bs4OQYD3.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-CeDJeL0T.js";import"./DesktopModal-DyC_e0eF.js";import"./relay-entry-B6UDc5cD.js";import"./WorkbenchModal-2PaCY_Gj.js";import"./MobileSheet-C32hwIFd.js";const n=[{titleKey:"workbench.emptyResumeTitle",bodyKey:"workbench.emptyResumeBody"},{titleKey:"workbench.emptyNewTitle",bodyKey:"workbench.emptyNewBody"},{titleKey:"workbench.emptyCompanionTitle",bodyKey:"workbench.emptyCompanionBody"}];function i(){return e.jsx("main",{className:"workbench-page conversation-page-shell",children:e.jsx("section",{className:"workbench-center-placeholder",children:e.jsxs("div",{className:"workbench-empty-guide surface-card",children:[e.jsx("p",{className:"workbench-empty-eyebrow",children:r("workbench.emptyEyebrow")}),e.jsx("div",{className:"workbench-empty-main",children:e.jsxs("div",{className:"workbench-empty-copy",children:[e.jsx("h1",{children:r("workbench.emptyTitle")}),e.jsx("p",{className:"workbench-empty-body",children:r("workbench.emptyBody")})]})}),e.jsx("ol",{className:"workbench-empty-steps",children:n.map((o,s)=>e.jsxs("li",{className:"workbench-empty-step",children:[e.jsx("span",{className:"workbench-empty-step-index",children:s+1}),e.jsxs("div",{className:"workbench-empty-step-copy",children:[e.jsx("h2",{children:r(o.titleKey)}),e.jsx("p",{children:r(o.bodyKey)})]})]},o.titleKey))}),e.jsx("p",{className:"workbench-empty-tip",children:r("workbench.emptyTip")})]})})})}function j(){const{shellMode:o}=c();return o==="mobile"?e.jsx(t,{to:"/workspaces",replace:!0}):e.jsx(i,{})}export{j as WorkbenchLandingPage};
1
+ import{j as e,t as r}from"./index-CILPuSCp.js";import{b as c}from"./WorkbenchLayout-yGxGKcG1.js";import{N as t}from"./App-D5hc6KuU.js";import"./workbench-navigation-hwM28xIb.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./host-alias-df5bYDlE.js";import"./DesktopModal-BCVZq_PQ.js";import"./relay-entry-ErQKnI7B.js";import"./WorkbenchModal-Cm-ciXO9.js";import"./MobileSheet-DPYtp5Ze.js";const n=[{titleKey:"workbench.emptyResumeTitle",bodyKey:"workbench.emptyResumeBody"},{titleKey:"workbench.emptyNewTitle",bodyKey:"workbench.emptyNewBody"},{titleKey:"workbench.emptyCompanionTitle",bodyKey:"workbench.emptyCompanionBody"}];function i(){return e.jsx("main",{className:"workbench-page conversation-page-shell",children:e.jsx("section",{className:"workbench-center-placeholder",children:e.jsxs("div",{className:"workbench-empty-guide surface-card",children:[e.jsx("p",{className:"workbench-empty-eyebrow",children:r("workbench.emptyEyebrow")}),e.jsx("div",{className:"workbench-empty-main",children:e.jsxs("div",{className:"workbench-empty-copy",children:[e.jsx("h1",{children:r("workbench.emptyTitle")}),e.jsx("p",{className:"workbench-empty-body",children:r("workbench.emptyBody")})]})}),e.jsx("ol",{className:"workbench-empty-steps",children:n.map((o,s)=>e.jsxs("li",{className:"workbench-empty-step",children:[e.jsx("span",{className:"workbench-empty-step-index",children:s+1}),e.jsxs("div",{className:"workbench-empty-step-copy",children:[e.jsx("h2",{children:r(o.titleKey)}),e.jsx("p",{children:r(o.bodyKey)})]})]},o.titleKey))}),e.jsx("p",{className:"workbench-empty-tip",children:r("workbench.emptyTip")})]})})})}function j(){const{shellMode:o}=c();return o==="mobile"?e.jsx(t,{to:"/workspaces",replace:!0}):e.jsx(i,{})}export{j as WorkbenchLandingPage};