@jingyi0605/codingns 0.6.1 → 0.7.0

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 (291) hide show
  1. package/bin/codingns.mjs +225 -0
  2. package/dist/public/assets/AdaptiveButlerPage-B8mg25ze.js +3 -0
  3. package/dist/public/assets/{App-Dsf3ooXU.js → App-C2lNmeKL.js} +6 -6
  4. package/dist/public/assets/{BootstrapPage-CE0m1qSR.js → BootstrapPage-CAVA-a8h.js} +1 -1
  5. package/dist/public/assets/ConversationPage-B6BGOX4C.js +6 -0
  6. package/dist/public/assets/{DesktopDetachPreviewPage-Dxarr_Wf.js → DesktopDetachPreviewPage-B37DUL15.js} +1 -1
  7. package/dist/public/assets/{DesktopWindowPage-VytPwJ4c.js → DesktopWindowPage-CDA6l7lm.js} +1 -1
  8. package/dist/public/assets/{FileContextPanel-DwFzLsOp.js → FileContextPanel-CMGTtAB6.js} +1 -1
  9. package/dist/public/assets/{GitSidebar-CH6WqTrM.js → GitSidebar--DCqBiGL.js} +1 -1
  10. package/dist/public/assets/{MobileCreateSessionSheet-DcxKM00P.js → MobileCreateSessionSheet-THIrIzJ3.js} +1 -1
  11. package/dist/public/assets/{MobileTopHeaderFrame-C5rIKQT6.js → MobileTopHeaderFrame-D-X7pVnV.js} +1 -1
  12. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-CfUnHgv_.js → MobileWorkspaceSwitcherHeader-Cczi7RYu.js} +1 -1
  13. package/dist/public/assets/{RelayConnectEntryPage-CgMvVZwa.js → RelayConnectEntryPage-D417tgWj.js} +1 -1
  14. package/dist/public/assets/{ServerSettingsModal-CFul__z1.js → ServerSettingsModal-BdTxbRbU.js} +1 -1
  15. package/dist/public/assets/SessionIndexPage-D5iefVcc.js +1 -0
  16. package/dist/public/assets/SettingsPage-iCFe_DHP.js +2 -0
  17. package/dist/public/assets/{TerminalManagerPanel-BbORd-ee.js → TerminalManagerPanel-CtldwWz8.js} +1 -1
  18. package/dist/public/assets/{TerminalPage-DWHv6mlu.js → TerminalPage-DAzQTmQC.js} +19 -19
  19. package/dist/public/assets/{TerminalRuntimeFallbackModal-B29YxbQe.js → TerminalRuntimeFallbackModal-DLOhAvaq.js} +1 -1
  20. package/dist/public/assets/{ToolFilesPage-Dx9cv9hu.js → ToolFilesPage-D7thcDEv.js} +1 -1
  21. package/dist/public/assets/{ToolGitPage-D7H3vAia.js → ToolGitPage-uPRsxdcn.js} +1 -1
  22. package/dist/public/assets/{ToolProcessesPage-PqQWxsy-.js → ToolProcessesPage-B1uOk0Ef.js} +1 -1
  23. package/dist/public/assets/{ToolsHomePage-CX05Pe_4.js → ToolsHomePage-rU3V8mmh.js} +1 -1
  24. package/dist/public/assets/{WorkbenchLandingPage-CchkAC75.js → WorkbenchLandingPage-BudM2C69.js} +1 -1
  25. package/dist/public/assets/WorkbenchLayout-Dybarc1V.js +244 -0
  26. package/dist/public/assets/WorkbenchModal-DMQutm1x.js +1 -0
  27. package/dist/public/assets/WorkbenchShellRoute-Cy4WBbzq.js +1 -0
  28. package/dist/public/assets/{WorkbenchShellRoute-RGZpA0_J.css → WorkbenchShellRoute-DhQo_0vu.css} +1 -1
  29. package/dist/public/assets/{WorkspaceDebugDetailPage-Deqy2_pO.js → WorkspaceDebugDetailPage-CHqo-uDf.js} +1 -1
  30. package/dist/public/assets/{WorkspaceDetailPage-Cvf-ZdlB.js → WorkspaceDetailPage-CGkAH1W-.js} +1 -1
  31. package/dist/public/assets/{WorkspaceHomePage-Dsyvqyk1.js → WorkspaceHomePage-CfuPVITd.js} +1 -1
  32. package/dist/public/assets/{client-runtime-manager-DROQJ9v3.js → client-runtime-manager-CKbtaemV.js} +1 -1
  33. package/dist/public/assets/file-tree-icon-Bc0KADEl.js +3 -0
  34. package/dist/public/assets/index-DNRyROOG.css +1 -0
  35. package/dist/public/assets/index-oGylLBIX.js +42 -0
  36. package/dist/public/assets/{login-direct-candidate-resolver-DotM530R.js → login-direct-candidate-resolver-DjJMbqB7.js} +1 -1
  37. package/dist/public/assets/model-switch-api-T55eW6D4.js +1 -0
  38. package/dist/public/assets/{preferences-service-BG6GKG29.js → preferences-service-BTKBl5xM.js} +1 -1
  39. package/dist/public/assets/realtime-client-ww7MnbTD.js +1 -0
  40. package/dist/public/assets/{relay-entry-pmr-c42O.js → relay-entry-sdeFnTbY.js} +1 -1
  41. package/dist/public/assets/styles-BjPytabP.css +1 -0
  42. package/dist/public/assets/{terminal-runtime-meta-8_uRZf7h.js → terminal-runtime-meta-Cvt1ID92.js} +1 -1
  43. package/dist/public/assets/{useRegisteredDebugTemplates-DWX7LXQu.js → useRegisteredDebugTemplates-O-ymgLd9.js} +1 -1
  44. package/dist/public/index.html +2 -2
  45. package/dist/server/config/env.js +21 -1
  46. package/dist/server/config/env.js.map +1 -1
  47. package/dist/server/config/opencode-base-url-resolver.d.ts +16 -0
  48. package/dist/server/config/opencode-base-url-resolver.js +154 -0
  49. package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
  50. package/dist/server/helpers/wechat-claw-runtime/main.d.ts +1 -0
  51. package/dist/server/helpers/wechat-claw-runtime/main.js +38 -0
  52. package/dist/server/helpers/wechat-claw-runtime/main.js.map +1 -0
  53. package/dist/server/helpers/wechat-claw-runtime/modules/errors.d.ts +5 -0
  54. package/dist/server/helpers/wechat-claw-runtime/modules/errors.js +32 -0
  55. package/dist/server/helpers/wechat-claw-runtime/modules/errors.js.map +1 -0
  56. package/dist/server/helpers/wechat-claw-runtime/modules/login-service.d.ts +16 -0
  57. package/dist/server/helpers/wechat-claw-runtime/modules/login-service.js +209 -0
  58. package/dist/server/helpers/wechat-claw-runtime/modules/login-service.js.map +1 -0
  59. package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.d.ts +18 -0
  60. package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.js +135 -0
  61. package/dist/server/helpers/wechat-claw-runtime/modules/poll-service.js.map +1 -0
  62. package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.d.ts +34 -0
  63. package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js +394 -0
  64. package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js.map +1 -0
  65. package/dist/server/helpers/wechat-claw-runtime/modules/send-service.d.ts +9 -0
  66. package/dist/server/helpers/wechat-claw-runtime/modules/send-service.js +64 -0
  67. package/dist/server/helpers/wechat-claw-runtime/modules/send-service.js.map +1 -0
  68. package/dist/server/helpers/wechat-claw-runtime/modules/types.d.ts +167 -0
  69. package/dist/server/helpers/wechat-claw-runtime/modules/types.js +3 -0
  70. package/dist/server/helpers/wechat-claw-runtime/modules/types.js.map +1 -0
  71. package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.d.ts +34 -0
  72. package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.js +160 -0
  73. package/dist/server/helpers/wechat-claw-runtime/modules/wechat-api-client.js.map +1 -0
  74. package/dist/server/helpers/wechat-claw-runtime/routes/accounts.d.ts +9 -0
  75. package/dist/server/helpers/wechat-claw-runtime/routes/accounts.js +24 -0
  76. package/dist/server/helpers/wechat-claw-runtime/routes/accounts.js.map +1 -0
  77. package/dist/server/helpers/wechat-claw-runtime/server.d.ts +5 -0
  78. package/dist/server/helpers/wechat-claw-runtime/server.js +36 -0
  79. package/dist/server/helpers/wechat-claw-runtime/server.js.map +1 -0
  80. package/dist/server/middlewares/auth-guard.js +4 -1
  81. package/dist/server/middlewares/auth-guard.js.map +1 -1
  82. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +4 -1
  83. package/dist/server/modules/assistant-capability/assistant-capability-service.js +12 -1
  84. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  85. package/dist/server/modules/butler/butler-control-session-service.d.ts +20 -2
  86. package/dist/server/modules/butler/butler-control-session-service.js +121 -74
  87. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  88. package/dist/server/modules/butler/butler-profile-service.d.ts +3 -1
  89. package/dist/server/modules/butler/butler-profile-service.js +16 -4
  90. package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
  91. package/dist/server/modules/butler/butler-session-service.js +44 -15
  92. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  93. package/dist/server/modules/channels/channel-bridge-service.d.ts +55 -0
  94. package/dist/server/modules/channels/channel-bridge-service.js +340 -0
  95. package/dist/server/modules/channels/channel-bridge-service.js.map +1 -0
  96. package/dist/server/modules/channels/channel-controller.d.ts +52 -0
  97. package/dist/server/modules/channels/channel-controller.js +54 -0
  98. package/dist/server/modules/channels/channel-controller.js.map +1 -0
  99. package/dist/server/modules/channels/channel-delivery-service.d.ts +63 -0
  100. package/dist/server/modules/channels/channel-delivery-service.js +429 -0
  101. package/dist/server/modules/channels/channel-delivery-service.js.map +1 -0
  102. package/dist/server/modules/channels/channel-gateway-controller.d.ts +15 -0
  103. package/dist/server/modules/channels/channel-gateway-controller.js +16 -0
  104. package/dist/server/modules/channels/channel-gateway-controller.js.map +1 -0
  105. package/dist/server/modules/channels/channel-gateway-service.d.ts +24 -0
  106. package/dist/server/modules/channels/channel-gateway-service.js +56 -0
  107. package/dist/server/modules/channels/channel-gateway-service.js.map +1 -0
  108. package/dist/server/modules/channels/channel-platform-adapters.d.ts +46 -0
  109. package/dist/server/modules/channels/channel-platform-adapters.js +315 -0
  110. package/dist/server/modules/channels/channel-platform-adapters.js.map +1 -0
  111. package/dist/server/modules/channels/channel-platform-catalog.d.ts +3 -0
  112. package/dist/server/modules/channels/channel-platform-catalog.js +42 -0
  113. package/dist/server/modules/channels/channel-platform-catalog.js.map +1 -0
  114. package/dist/server/modules/channels/channel-polling-scheduler.d.ts +31 -0
  115. package/dist/server/modules/channels/channel-polling-scheduler.js +93 -0
  116. package/dist/server/modules/channels/channel-polling-scheduler.js.map +1 -0
  117. package/dist/server/modules/channels/channel-polling-service.d.ts +46 -0
  118. package/dist/server/modules/channels/channel-polling-service.js +176 -0
  119. package/dist/server/modules/channels/channel-polling-service.js.map +1 -0
  120. package/dist/server/modules/channels/channel-service.d.ts +108 -0
  121. package/dist/server/modules/channels/channel-service.js +397 -0
  122. package/dist/server/modules/channels/channel-service.js.map +1 -0
  123. package/dist/server/modules/channels/wechat-claw-client.d.ts +51 -0
  124. package/dist/server/modules/channels/wechat-claw-client.js +245 -0
  125. package/dist/server/modules/channels/wechat-claw-client.js.map +1 -0
  126. package/dist/server/modules/channels/wechat-claw-runtime-boundary.d.ts +4 -0
  127. package/dist/server/modules/channels/wechat-claw-runtime-boundary.js +13 -0
  128. package/dist/server/modules/channels/wechat-claw-runtime-boundary.js.map +1 -0
  129. package/dist/server/modules/channels/wechat-claw-runtime-client.d.ts +14 -0
  130. package/dist/server/modules/channels/wechat-claw-runtime-client.js +95 -0
  131. package/dist/server/modules/channels/wechat-claw-runtime-client.js.map +1 -0
  132. package/dist/server/modules/channels/wechat-claw-runtime-manager.d.ts +16 -0
  133. package/dist/server/modules/channels/wechat-claw-runtime-manager.js +133 -0
  134. package/dist/server/modules/channels/wechat-claw-runtime-manager.js.map +1 -0
  135. package/dist/server/modules/channels/wechat-claw-runtime-types.d.ts +1 -0
  136. package/dist/server/modules/channels/wechat-claw-runtime-types.js +2 -0
  137. package/dist/server/modules/channels/wechat-claw-runtime-types.js.map +1 -0
  138. package/dist/server/modules/opencli/opencli-bridge-skill-service.d.ts +12 -0
  139. package/dist/server/modules/opencli/opencli-bridge-skill-service.js +125 -0
  140. package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -0
  141. package/dist/server/modules/opencli/opencli-catalog-service.d.ts +50 -0
  142. package/dist/server/modules/opencli/opencli-catalog-service.js +345 -0
  143. package/dist/server/modules/opencli/opencli-catalog-service.js.map +1 -0
  144. package/dist/server/modules/opencli/opencli-controller.d.ts +13 -0
  145. package/dist/server/modules/opencli/opencli-controller.js +30 -0
  146. package/dist/server/modules/opencli/opencli-controller.js.map +1 -0
  147. package/dist/server/modules/opencli/opencli-health-service.d.ts +28 -0
  148. package/dist/server/modules/opencli/opencli-health-service.js +106 -0
  149. package/dist/server/modules/opencli/opencli-health-service.js.map +1 -0
  150. package/dist/server/modules/opencli/opencli-install-discovery.d.ts +23 -0
  151. package/dist/server/modules/opencli/opencli-install-discovery.js +130 -0
  152. package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -0
  153. package/dist/server/modules/opencli/opencli-management-service.d.ts +59 -0
  154. package/dist/server/modules/opencli/opencli-management-service.js +152 -0
  155. package/dist/server/modules/opencli/opencli-management-service.js.map +1 -0
  156. package/dist/server/modules/opencli/opencli-runtime-builder.d.ts +11 -0
  157. package/dist/server/modules/opencli/opencli-runtime-builder.js +214 -0
  158. package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -0
  159. package/dist/server/modules/opencli/opencli-runtime-layout.d.ts +3 -0
  160. package/dist/server/modules/opencli/opencli-runtime-layout.js +11 -0
  161. package/dist/server/modules/opencli/opencli-runtime-layout.js.map +1 -0
  162. package/dist/server/modules/opencli/opencli-runtime-profile-service.d.ts +29 -0
  163. package/dist/server/modules/opencli/opencli-runtime-profile-service.js +104 -0
  164. package/dist/server/modules/opencli/opencli-runtime-profile-service.js.map +1 -0
  165. package/dist/server/modules/opencli/opencli-runtime-resolver.d.ts +29 -0
  166. package/dist/server/modules/opencli/opencli-runtime-resolver.js +110 -0
  167. package/dist/server/modules/opencli/opencli-runtime-resolver.js.map +1 -0
  168. package/dist/server/modules/opencli/opencli-session-prompt-service.d.ts +11 -0
  169. package/dist/server/modules/opencli/opencli-session-prompt-service.js +66 -0
  170. package/dist/server/modules/opencli/opencli-session-prompt-service.js.map +1 -0
  171. package/dist/server/modules/provider/provider-catalog-service.d.ts +45 -0
  172. package/dist/server/modules/provider/provider-catalog-service.js +204 -0
  173. package/dist/server/modules/provider/provider-catalog-service.js.map +1 -0
  174. package/dist/server/modules/provider/provider-controller.d.ts +16 -2
  175. package/dist/server/modules/provider/provider-controller.js +49 -6
  176. package/dist/server/modules/provider/provider-controller.js.map +1 -1
  177. package/dist/server/modules/provider/provider-disabled.d.ts +8 -0
  178. package/dist/server/modules/provider/provider-disabled.js +45 -0
  179. package/dist/server/modules/provider/provider-disabled.js.map +1 -0
  180. package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +1 -0
  181. package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
  182. package/dist/server/modules/provider/provider-discovery-helper-process.js +3 -3
  183. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
  184. package/dist/server/modules/provider/provider-discovery-runtime.d.ts +1 -1
  185. package/dist/server/modules/provider/provider-discovery-runtime.js +12 -8
  186. package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -1
  187. package/dist/server/modules/provider/provider-runtime-state-service.d.ts +24 -0
  188. package/dist/server/modules/provider/provider-runtime-state-service.js +141 -0
  189. package/dist/server/modules/provider/provider-runtime-state-service.js.map +1 -0
  190. package/dist/server/modules/sessions/claude-compatible-provider-registry.d.ts +16 -0
  191. package/dist/server/modules/sessions/claude-compatible-provider-registry.js +91 -0
  192. package/dist/server/modules/sessions/claude-compatible-provider-registry.js.map +1 -0
  193. package/dist/server/modules/sessions/session-history-service.d.ts +9 -3
  194. package/dist/server/modules/sessions/session-history-service.js +198 -62
  195. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  196. package/dist/server/modules/sessions/session-live-runtime-router-service.js +9 -4
  197. package/dist/server/modules/sessions/session-live-runtime-router-service.js.map +1 -1
  198. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +8 -4
  199. package/dist/server/modules/sessions/session-live-runtime-service.js +99 -88
  200. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  201. package/dist/server/modules/sessions/session-permission-request-service.d.ts +5 -2
  202. package/dist/server/modules/sessions/session-permission-request-service.js +26 -27
  203. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  204. package/dist/server/modules/sessions/session-provider-config-service.d.ts +18 -1
  205. package/dist/server/modules/sessions/session-provider-config-service.js +142 -17
  206. package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
  207. package/dist/server/modules/sessions/session-provider-error-mapper.js +7 -0
  208. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  209. package/dist/server/modules/skills/skill-manager-service.d.ts +5 -0
  210. package/dist/server/modules/skills/skill-manager-service.js +26 -0
  211. package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
  212. package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +1 -0
  213. package/dist/server/modules/tasks/task-helper-process-handlers.js +1 -1
  214. package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
  215. package/dist/server/modules/tasks/task-types.d.ts +2 -0
  216. package/dist/server/modules/tasks/task-types.js +2 -0
  217. package/dist/server/modules/tasks/task-types.js.map +1 -1
  218. package/dist/server/routes/channels.d.ts +3 -0
  219. package/dist/server/routes/channels.js +16 -0
  220. package/dist/server/routes/channels.js.map +1 -0
  221. package/dist/server/routes/opencli.d.ts +3 -0
  222. package/dist/server/routes/opencli.js +7 -0
  223. package/dist/server/routes/opencli.js.map +1 -0
  224. package/dist/server/routes/providers.js +5 -2
  225. package/dist/server/routes/providers.js.map +1 -1
  226. package/dist/server/routes/public.d.ts +2 -1
  227. package/dist/server/routes/public.js +3 -1
  228. package/dist/server/routes/public.js.map +1 -1
  229. package/dist/server/server/create-server.d.ts +30 -0
  230. package/dist/server/server/create-server.js +104 -12
  231. package/dist/server/server/create-server.js.map +1 -1
  232. package/dist/server/shared/http/error-handler.js +59 -3
  233. package/dist/server/shared/http/error-handler.js.map +1 -1
  234. package/dist/server/storage/repositories/channel-account-repository.d.ts +12 -0
  235. package/dist/server/storage/repositories/channel-account-repository.js +153 -0
  236. package/dist/server/storage/repositories/channel-account-repository.js.map +1 -0
  237. package/dist/server/storage/repositories/channel-delivery-repository.d.ts +13 -0
  238. package/dist/server/storage/repositories/channel-delivery-repository.js +156 -0
  239. package/dist/server/storage/repositories/channel-delivery-repository.js.map +1 -0
  240. package/dist/server/storage/repositories/channel-inbound-event-repository.d.ts +12 -0
  241. package/dist/server/storage/repositories/channel-inbound-event-repository.js +144 -0
  242. package/dist/server/storage/repositories/channel-inbound-event-repository.js.map +1 -0
  243. package/dist/server/storage/repositories/channel-thread-repository.d.ts +12 -0
  244. package/dist/server/storage/repositories/channel-thread-repository.js +152 -0
  245. package/dist/server/storage/repositories/channel-thread-repository.js.map +1 -0
  246. package/dist/server/storage/repositories/opencli-catalog-entry-repository.d.ts +9 -0
  247. package/dist/server/storage/repositories/opencli-catalog-entry-repository.js +85 -0
  248. package/dist/server/storage/repositories/opencli-catalog-entry-repository.js.map +1 -0
  249. package/dist/server/storage/repositories/opencli-provider-repository.d.ts +8 -0
  250. package/dist/server/storage/repositories/opencli-provider-repository.js +88 -0
  251. package/dist/server/storage/repositories/opencli-provider-repository.js.map +1 -0
  252. package/dist/server/storage/repositories/opencli-runtime-profile-repository.d.ts +11 -0
  253. package/dist/server/storage/repositories/opencli-runtime-profile-repository.js +127 -0
  254. package/dist/server/storage/repositories/opencli-runtime-profile-repository.js.map +1 -0
  255. package/dist/server/storage/repositories/provider-control-repository.d.ts +9 -0
  256. package/dist/server/storage/repositories/provider-control-repository.js +51 -0
  257. package/dist/server/storage/repositories/provider-control-repository.js.map +1 -0
  258. package/dist/server/storage/repositories/provider-runtime-state-repository.d.ts +9 -0
  259. package/dist/server/storage/repositories/provider-runtime-state-repository.js +50 -0
  260. package/dist/server/storage/repositories/provider-runtime-state-repository.js.map +1 -0
  261. package/dist/server/storage/sqlite/client.js +53 -0
  262. package/dist/server/storage/sqlite/client.js.map +1 -1
  263. package/dist/server/storage/sqlite/schema.sql +180 -0
  264. package/dist/server/types/domain.d.ts +132 -0
  265. package/dist/server/ws/workbench-ws-hub.js +8 -2
  266. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  267. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +28 -11
  268. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  269. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +61 -8
  270. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
  271. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +5 -0
  272. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +1 -1
  273. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +1 -1
  274. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +3 -0
  275. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +94 -21
  276. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
  277. package/package.json +1 -1
  278. package/dist/public/assets/AdaptiveButlerPage-Dw72U3hG.js +0 -3
  279. package/dist/public/assets/ConversationPage-8wOY7SX-.js +0 -4
  280. package/dist/public/assets/SessionIndexPage-B-tRhBXC.js +0 -1
  281. package/dist/public/assets/SettingsPage-C9LGxSQZ.js +0 -1
  282. package/dist/public/assets/WorkbenchLayout-pOZvEqp7.js +0 -3
  283. package/dist/public/assets/WorkbenchModal-ColqvV6a.js +0 -1
  284. package/dist/public/assets/WorkbenchShellRoute-C0_h4lP6.js +0 -1
  285. package/dist/public/assets/file-tree-icon-Bp3Ntt7u.js +0 -31
  286. package/dist/public/assets/index-B84Po2NA.css +0 -1
  287. package/dist/public/assets/index-C-0oeG_5.js +0 -42
  288. package/dist/public/assets/model-switch-api-Bh9nYslz.js +0 -1
  289. package/dist/public/assets/session-runtime-machine-YN84QBlr.js +0 -21
  290. package/dist/public/assets/styles-CsEMfdaS.css +0 -1
  291. /package/dist/public/assets/{styles-DRVvx_kv.js → styles-lhQGDlPF.js} +0 -0
@@ -1 +1 @@
1
- import{b as s,j as e,t as n,D as Ke}from"./index-C-0oeG_5.js";import{D as Pe}from"./WorkbenchModal-ColqvV6a.js";import{M as Se,t as Xe}from"./model-switch-api-Bh9nYslz.js";import{u as Je,a5 as J,b as Ne,w as Oe,bn as Qe}from"./WorkbenchLayout-pOZvEqp7.js";import{u as Ye,e as Ze,f as ea}from"./App-Dsf3ooXU.js";import{b as aa,g as Te,r as ke,s as na,u as ra,k as la,m as ta}from"./terminal-runtime-meta-8_uRZf7h.js";import{T as ia,i as sa}from"./TerminalRuntimeFallbackModal-B29YxbQe.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./relay-entry-pmr-c42O.js";const O={mode:"command",name:"",cwd:"",target:"",args:"",port:"",proxyEnabled:!1},Ce=60*1e3;function oa(l){return l?new Date(l).toLocaleString():n("common.unknown")}function ca(l){return l.split(" ").map(t=>t.trim()).filter(Boolean)}function ma(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 da(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 ua(l){const t=l.args.join(" ");return t?`${l.command} ${t}`:l.command}function ga(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 pa(l){return Ke(`/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 ha(l){const t=l.trim();if(!t)return null;const c=Number(t);return Number.isInteger(c)?c:Number.NaN}function we(l,t){return l.get(t)??null}function xa(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 ba(l){return l!=null&&l.terminationScope?l.terminationScope==="process_group"?n("terminalManager.terminationScopeProcessGroup"):n("terminalManager.terminationScopeProcess"):null}function fa({open:l,mobile:t=!1,title:c,description:u,onClose:p,children:y,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:y}):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:y})}function ja({open:l,mobile:t=!1,busy:c,title:u,description:p,confirmLabel:y,onClose:m,onConfirm:h,className:N}){const F=e.jsxs(Xe,{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:()=>{h()},children:c?n("terminalManager.templateRemoving"):y})]});return t?e.jsx(Se,{open:l,title:u,description:p,kind:"action",height:"auto",dismissible:!c,showHandle:!0,showCancelButton:!1,className:N,bodyClassName:"terminal-manager-confirm-body",footer:F,onClose:m,children:null}):e.jsx(Pe,{open:l,title:u,description:p,size:"compact",layout:"confirm",dismissible:!c,className:["terminal-manager-confirm-modal",N].filter(Boolean).join(" "),bodyClassName:"terminal-manager-confirm-body",footer:F,onClose:m,children:null})}function Le({label:l,value:t,options:c,open:u,onToggle:p,onChange:y}){const m=c.find(h=>h.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(va,{expanded:u})]}),u?e.jsx("div",{className:"terminal-manager-mobile-picker-list",role:"listbox","aria-label":l,children:c.map(h=>{const N=h.value===t;return e.jsxs("button",{type:"button",role:"option",className:"terminal-manager-mobile-picker-option","aria-selected":N,disabled:h.disabled,onClick:()=>{y(h.value)},children:[e.jsxs("span",{className:"terminal-manager-mobile-picker-option-copy",children:[e.jsx("strong",{children:h.label}),h.description?e.jsx("span",{children:h.description}):null]}),e.jsx("span",{className:"terminal-manager-mobile-picker-option-indicator","aria-hidden":"true",children:N?e.jsx(ya,{}):e.jsx(Ma,{})})]},h.value||"__empty__")})}):null]})}function va({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 Ma(){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 ya(){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 Ra({className:l,currentWorkspaceId:t,navigationGroups:c,externalWindowMode:u=!1,workbenchShellOverrides:p}){var je,ve,Me,ye;const y=Ye(),m=Ze(),h=Je(),{subscribeTerminalManagerSnapshot:N,requestTerminalManagerRefresh:F,addTerminalManagerSnapshotListener:te}={...h,...p},i=(t==null?void 0:t.trim())||null,[Q,G]=s.useState([]),[Y,W]=s.useState(null),[f,P]=s.useState([]),[S,D]=s.useState([]),[x,Z]=s.useState([]),[q,ee]=s.useState(""),[A,E]=s.useState(""),[d,j]=s.useState(O),[_,H]=s.useState(null),[I,V]=s.useState(null),[Ie,ie]=s.useState([]),[se,z]=s.useState(!1),[ae,oe]=s.useState(!1),[ce,me]=s.useState(null),[de,ue]=s.useState(null),[k,ge]=s.useState(null),[v,U]=s.useState(null),[K,ne]=s.useState(null),[pe,he]=s.useState(!1),[xe,C]=s.useState(null),{showToast:b}=ea(),B=(l==null?void 0:l.includes("mobile-tool-process-panel"))??!1,$=_!==null,be=_==="edit"?f.find(a=>a.id===I)??null:null,w=_==="edit";s.useEffect(()=>{J("terminal_manager.props",{currentWorkspaceId:t,workspaceCount:c.length,externalWindowMode:u})},[t,u,c.length]);const g=s.useMemo(()=>x.find(a=>a.id===q)??null,[q,x]),R=s.useMemo(()=>aa(m.ui.osFamily),[m.ui.osFamily]),fe=s.useMemo(()=>new Map(S.map(a=>[a.templateId,a])),[S]),Re=s.useMemo(()=>S.filter(a=>a.occupied).length,[S]),Fe=s.useMemo(()=>f.filter(a=>a.port!==null).length,[f]),De=(g==null?void 0:g.available)===!1&&x.length>0;s.useEffect(()=>{ee(a=>x.length?a&&x.some(r=>r.id===a)?a:ma(x):"")},[x]),s.useEffect(()=>{!$||!i||x.length>0||T(i)},[i,x.length,$]),s.useEffect(()=>{$||C(null)},[$]),s.useEffect(()=>{_==="edit"&&I&&!be&&(H(null),V(null),j(O),E(""),C(null))},[be,I,_]),s.useEffect(()=>{!v||k===v.templateId||f.some(a=>a.id===v.templateId)||U(null)},[v,k,f]),s.useEffect(()=>{if(!i){G([]),W(null),P([]),D([]),z(!1);return}const a=Ne(le(i),Ce);J("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?(G(a.terminals),W(typeof a.revision=="string"?a.revision:null),P(a.templates),D(a.templateStatuses),Z(a.shellOptions??[]),z(!1)):(G([]),W(null),P([]),D([]),Z([]),z(!0))},[i]),s.useEffect(()=>{if(i)return te(a=>{a.workspaceId===i&&(J("terminal_manager.snapshot_received",{workspaceId:a.workspaceId,terminalCount:a.terminals.length,templateCount:a.templates.length,statusCount:a.templateStatuses.length}),Ae(a),z(!1))})},[i,te]),s.useEffect(()=>{if(!i)return;const a=Ne(le(i),Ce);N(i,{knownRevision:(a==null?void 0:a.revision)??null}),a||T(i)},[i,F,N]),s.useEffect(()=>{i&&Oe(le(i),{revision:Y,terminals:Q,templates:f,templateStatuses:S,shellOptions:x})},[i,Y,x,S,f,Q]);function Ae(a){W(typeof a.revision=="string"?a.revision:null),G(a.terminals),P(a.templates),D(a.templateStatuses),Z(a.shellOptions??[])}function T(a){J("terminal_manager.refresh_requested",{workspaceId:a}),F(a,{knownRevision:Y})}function X(){H(null),V(null),j(O),E(""),C(null)}function _e(){V(null),j(O),E(""),H("create")}function Ue(a){V(a.id),j(ga(a)),E(a.runtimeType??""),H("edit")}async function Be(a){if(i){ue(a);try{await na(a),T(i),b({title:n("terminalManager.stopProcessSuccess"),tone:"success"})}catch(r){b({title:r instanceof Error?r.message:n("terminalManager.stopProcessFailed"),tone:"error"})}finally{ue(null)}}}async function $e(){if(!i||!d.target.trim())return;const a=ha(d.port);if(Number.isNaN(a)){b({title:n("terminalManager.invalidPort"),tone:"error"});return}if(d.proxyEnabled&&a===null){b({title:n("terminalManager.proxyPortRequired"),tone:"error"});return}oe(!0);try{const r={workspaceId:i,name:da(d),cwd:d.cwd.trim()||void 0,command:d.target.trim(),args:ca(d.args),port:a,proxyEnabled:d.proxyEnabled,runtimeType:A||null};if(w&&I){const o=await ra(I,r);P(M=>M.map(L=>L.id===o.id?o:L))}else await la(r);X(),T(i),b({title:w?n("terminalManager.templateUpdateSuccess"):n("terminalManager.templateSaveSuccess"),tone:"success"})}catch(r){b({title:r instanceof Error?r.message:w?n("terminalManager.templateUpdateFailed"):n("terminalManager.templateSaveFailed"),tone:"error"})}finally{oe(!1)}}async function Ge(a){const r=await m.bridge.openExternal(a);r.ok||b({title:r.detail||n("terminalManager.openProxyUrlFailed"),tone:"error"})}async function We(a,r){if(i){ge(a.id);try{await ta(a.id),P(o=>o.filter(M=>M.id!==a.id)),D(o=>o.filter(M=>M.templateId!==a.id)),ie(o=>o.filter(M=>M!==a.id)),U(o=>(o==null?void 0:o.templateId)===a.id?null:o),I===a.id&&X(),T(i),b({title:n("terminalManager.templateDeleteSuccess"),tone:"success"})}catch(o){b({title:o instanceof Error?o.message:n("terminalManager.templateDeleteFailed"),tone:"error"})}finally{ge(null)}}}async function qe(a){if(!i)return;const r=g!=null&&g.available?g.shell:void 0;me(a);try{await ke(a,{shell:r}),T(i),b({title:n("terminalManager.templateRunSuccess"),tone:"success"})}catch(o){if(sa(o)){ne({templateId:a,shell:r});return}b({title:o instanceof Error?o.message:n("terminalManager.templateRunFailed"),tone:"error"})}finally{me(null)}}async function He(){if(!(!i||!K)){he(!0);try{await ke(K.templateId,{shell:K.shell,runtimeType:"embedded-pty"}),ne(null),T(i),b({title:n("terminalManager.templateRunSuccess"),tone:"success"})}catch(a){b({title:a instanceof Error?a.message:n("terminalManager.templateRunFailed"),tone:"error"})}finally{he(!1)}}}function Ve(a){ie(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(ia,{open:K!==null,busy:pe,onClose:()=>{pe||ne(null)},onConfirmFallback:()=>{He()}}),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:Re})]}),e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.portWatchCountLabel")}),e.jsx("strong",{children:Fe})]}),e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.terminalCountLabel")}),e.jsx("strong",{children:Q.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&&y(Qe(i))},children:n("terminalManager.openWorkspaceDebugAction")}),e.jsx("button",{className:"ghost-button",type:"button",disabled:!i||se,onClick:()=>{i&&T(i)},children:n("terminalManager.refresh")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!i,onClick:()=>{_e()},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:f.length})]}),se&&!f.length?e.jsx("p",{className:"status-text",children:n("common.loading")}):null,f.length?e.jsx("div",{className:"terminal-manager-list",children:f.map(a=>{const r=we(fe,a.id),o=xa(a,r),M=ba(r),L=Ie.includes(a.id),ze=L?n("terminalManager.hideDetailsAction"):n("terminalManager.showDetailsAction"),re=a.proxyEnabled&&a.proxySlug?pa(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:Te(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":ze,"aria-expanded":L,onClick:()=>{Ve(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:de===a.id,onClick:()=>{Be(a.id)},children:de===a.id?n("terminalManager.stoppingProcess"):n("terminalManager.stopProcessAction")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:ce===a.id||De,onClick:()=>{qe(a.id)},children:ce===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:ua(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:Te(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:oa(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:re??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,M?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.terminationScopeLabel")}),e.jsx("strong",{children:M})]}):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:[re?e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>{Ge(re)},children:n("terminalManager.openProxyUrlAction")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:ae||k===a.id,onClick:()=>{Ue(a)},children:n("terminalManager.editAction")}),e.jsx("button",{className:"secondary-button workbench-danger-button",type:"button",disabled:k===a.id,onClick:()=>{U({templateId:a.id,name:a.name,occupied:!!(r!=null&&r.occupied)})},children:k===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(fa,{open:$,mobile:B,title:w?n("terminalManager.editModalTitle"):n("terminalManager.createModalTitle"),description:w?n("terminalManager.editModalDescription"):n("terminalManager.createModalDescription"),className:B?"terminal-manager-mobile-modal":void 0,onClose:X,children:e.jsxs("section",{className:"terminal-manager-modal-form",children:[B?e.jsxs(e.Fragment,{children:[e.jsx(Le,{label:n("terminalManager.shellField"),value:q,open:xe==="shell",options:x.map(a=>({value:a.id,label:a.label,description:a.available?null:a.unavailableReason??n("terminalManager.shellUnavailable"),disabled:!a.available})),onToggle:()=>{C(a=>a==="shell"?null:"shell")},onChange:a=>{ee(a),C(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:A,open:xe==="runtime",options:R.map(a=>({value:a.value,label:a.label,description:a.description})),onToggle:()=>{C(a=>a==="runtime"?null:"runtime")},onChange:a=>{E(a),C(null)}}),e.jsx("p",{className:"status-text",children:((je=R.find(a=>a.value===A))==null?void 0:je.description)??((ve=R[0])==null?void 0:ve.description)})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.shellField")}),e.jsx("select",{value:q,onChange:a=>{ee(a.target.value)},children:x.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:A,onChange:a=>{E(a.target.value)},children:R.map(a=>e.jsx("option",{value:a.value,children:a.label},a.value||"auto"))}),e.jsx("p",{className:"status-text",children:((Me=R.find(a=>a.value===A))==null?void 0:Me.description)??((ye=R[0])==null?void 0:ye.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:()=>{j(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:()=>{j(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=>{j(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=>{j(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=>{j(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=>{j(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=>{j(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=>{j(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:X,children:n("common.close")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!i||ae||!d.target.trim(),onClick:()=>{$e()},children:ae?w?n("terminalManager.templateUpdating"):n("terminalManager.templateSaving"):w?n("terminalManager.saveTemplateChangesAction"):n("terminalManager.saveLaunchAction")})]})]})}),e.jsx(ja,{open:v!==null,mobile:B,busy:v!==null&&k===v.templateId,title:n("terminalManager.removeConfirmTitle"),description:v?n(v.occupied?"terminalManager.removeRunningConfirmTarget":"terminalManager.removeConfirmTarget",{name:v.name}):"",confirmLabel:n("terminalManager.removeConfirmAction"),className:B?"terminal-manager-mobile-modal":"terminal-manager-confirm-modal",onClose:()=>{k||U(null)},onConfirm:()=>{if(!v)return;const a=f.find(r=>r.id===v.templateId);if(!a){U(null);return}we(fe,a.id),We(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 le(l){return`terminal-manager.snapshot.${l}`}export{Ra as TerminalManagerPanel};
1
+ import{b as s,j as e,t as n,D as Ke}from"./index-oGylLBIX.js";import{D as Pe}from"./WorkbenchModal-DMQutm1x.js";import{M as Se,v as Xe}from"./model-switch-api-T55eW6D4.js";import{u as Je,ac as J,b as Ne,w as Oe,bG as Qe}from"./WorkbenchLayout-Dybarc1V.js";import{u as Ye,e as Ze,f as ea}from"./App-C2lNmeKL.js";import{b as aa,g as Te,r as ke,s as na,u as ra,k as la,m as ta}from"./terminal-runtime-meta-Cvt1ID92.js";import{T as ia,i as sa}from"./TerminalRuntimeFallbackModal-DLOhAvaq.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./relay-entry-sdeFnTbY.js";const O={mode:"command",name:"",cwd:"",target:"",args:"",port:"",proxyEnabled:!1},Ce=60*1e3;function oa(l){return l?new Date(l).toLocaleString():n("common.unknown")}function ca(l){return l.split(" ").map(t=>t.trim()).filter(Boolean)}function ma(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 da(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 ua(l){const t=l.args.join(" ");return t?`${l.command} ${t}`:l.command}function ga(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 pa(l){return Ke(`/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 ha(l){const t=l.trim();if(!t)return null;const c=Number(t);return Number.isInteger(c)?c:Number.NaN}function we(l,t){return l.get(t)??null}function xa(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 ba(l){return l!=null&&l.terminationScope?l.terminationScope==="process_group"?n("terminalManager.terminationScopeProcessGroup"):n("terminalManager.terminationScopeProcess"):null}function fa({open:l,mobile:t=!1,title:c,description:u,onClose:p,children:y,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:y}):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:y})}function ja({open:l,mobile:t=!1,busy:c,title:u,description:p,confirmLabel:y,onClose:m,onConfirm:h,className:N}){const F=e.jsxs(Xe,{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:()=>{h()},children:c?n("terminalManager.templateRemoving"):y})]});return t?e.jsx(Se,{open:l,title:u,description:p,kind:"action",height:"auto",dismissible:!c,showHandle:!0,showCancelButton:!1,className:N,bodyClassName:"terminal-manager-confirm-body",footer:F,onClose:m,children:null}):e.jsx(Pe,{open:l,title:u,description:p,size:"compact",layout:"confirm",dismissible:!c,className:["terminal-manager-confirm-modal",N].filter(Boolean).join(" "),bodyClassName:"terminal-manager-confirm-body",footer:F,onClose:m,children:null})}function Le({label:l,value:t,options:c,open:u,onToggle:p,onChange:y}){const m=c.find(h=>h.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(va,{expanded:u})]}),u?e.jsx("div",{className:"terminal-manager-mobile-picker-list",role:"listbox","aria-label":l,children:c.map(h=>{const N=h.value===t;return e.jsxs("button",{type:"button",role:"option",className:"terminal-manager-mobile-picker-option","aria-selected":N,disabled:h.disabled,onClick:()=>{y(h.value)},children:[e.jsxs("span",{className:"terminal-manager-mobile-picker-option-copy",children:[e.jsx("strong",{children:h.label}),h.description?e.jsx("span",{children:h.description}):null]}),e.jsx("span",{className:"terminal-manager-mobile-picker-option-indicator","aria-hidden":"true",children:N?e.jsx(ya,{}):e.jsx(Ma,{})})]},h.value||"__empty__")})}):null]})}function va({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 Ma(){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 ya(){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 Ra({className:l,currentWorkspaceId:t,navigationGroups:c,externalWindowMode:u=!1,workbenchShellOverrides:p}){var je,ve,Me,ye;const y=Ye(),m=Ze(),h=Je(),{subscribeTerminalManagerSnapshot:N,requestTerminalManagerRefresh:F,addTerminalManagerSnapshotListener:te}={...h,...p},i=(t==null?void 0:t.trim())||null,[Q,G]=s.useState([]),[Y,W]=s.useState(null),[f,P]=s.useState([]),[S,D]=s.useState([]),[x,Z]=s.useState([]),[q,ee]=s.useState(""),[A,E]=s.useState(""),[d,j]=s.useState(O),[_,H]=s.useState(null),[I,V]=s.useState(null),[Ie,ie]=s.useState([]),[se,z]=s.useState(!1),[ae,oe]=s.useState(!1),[ce,me]=s.useState(null),[de,ue]=s.useState(null),[k,ge]=s.useState(null),[v,U]=s.useState(null),[K,ne]=s.useState(null),[pe,he]=s.useState(!1),[xe,C]=s.useState(null),{showToast:b}=ea(),B=(l==null?void 0:l.includes("mobile-tool-process-panel"))??!1,$=_!==null,be=_==="edit"?f.find(a=>a.id===I)??null:null,w=_==="edit";s.useEffect(()=>{J("terminal_manager.props",{currentWorkspaceId:t,workspaceCount:c.length,externalWindowMode:u})},[t,u,c.length]);const g=s.useMemo(()=>x.find(a=>a.id===q)??null,[q,x]),R=s.useMemo(()=>aa(m.ui.osFamily),[m.ui.osFamily]),fe=s.useMemo(()=>new Map(S.map(a=>[a.templateId,a])),[S]),Re=s.useMemo(()=>S.filter(a=>a.occupied).length,[S]),Fe=s.useMemo(()=>f.filter(a=>a.port!==null).length,[f]),De=(g==null?void 0:g.available)===!1&&x.length>0;s.useEffect(()=>{ee(a=>x.length?a&&x.some(r=>r.id===a)?a:ma(x):"")},[x]),s.useEffect(()=>{!$||!i||x.length>0||T(i)},[i,x.length,$]),s.useEffect(()=>{$||C(null)},[$]),s.useEffect(()=>{_==="edit"&&I&&!be&&(H(null),V(null),j(O),E(""),C(null))},[be,I,_]),s.useEffect(()=>{!v||k===v.templateId||f.some(a=>a.id===v.templateId)||U(null)},[v,k,f]),s.useEffect(()=>{if(!i){G([]),W(null),P([]),D([]),z(!1);return}const a=Ne(le(i),Ce);J("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?(G(a.terminals),W(typeof a.revision=="string"?a.revision:null),P(a.templates),D(a.templateStatuses),Z(a.shellOptions??[]),z(!1)):(G([]),W(null),P([]),D([]),Z([]),z(!0))},[i]),s.useEffect(()=>{if(i)return te(a=>{a.workspaceId===i&&(J("terminal_manager.snapshot_received",{workspaceId:a.workspaceId,terminalCount:a.terminals.length,templateCount:a.templates.length,statusCount:a.templateStatuses.length}),Ae(a),z(!1))})},[i,te]),s.useEffect(()=>{if(!i)return;const a=Ne(le(i),Ce);N(i,{knownRevision:(a==null?void 0:a.revision)??null}),a||T(i)},[i,F,N]),s.useEffect(()=>{i&&Oe(le(i),{revision:Y,terminals:Q,templates:f,templateStatuses:S,shellOptions:x})},[i,Y,x,S,f,Q]);function Ae(a){W(typeof a.revision=="string"?a.revision:null),G(a.terminals),P(a.templates),D(a.templateStatuses),Z(a.shellOptions??[])}function T(a){J("terminal_manager.refresh_requested",{workspaceId:a}),F(a,{knownRevision:Y})}function X(){H(null),V(null),j(O),E(""),C(null)}function _e(){V(null),j(O),E(""),H("create")}function Ue(a){V(a.id),j(ga(a)),E(a.runtimeType??""),H("edit")}async function Be(a){if(i){ue(a);try{await na(a),T(i),b({title:n("terminalManager.stopProcessSuccess"),tone:"success"})}catch(r){b({title:r instanceof Error?r.message:n("terminalManager.stopProcessFailed"),tone:"error"})}finally{ue(null)}}}async function $e(){if(!i||!d.target.trim())return;const a=ha(d.port);if(Number.isNaN(a)){b({title:n("terminalManager.invalidPort"),tone:"error"});return}if(d.proxyEnabled&&a===null){b({title:n("terminalManager.proxyPortRequired"),tone:"error"});return}oe(!0);try{const r={workspaceId:i,name:da(d),cwd:d.cwd.trim()||void 0,command:d.target.trim(),args:ca(d.args),port:a,proxyEnabled:d.proxyEnabled,runtimeType:A||null};if(w&&I){const o=await ra(I,r);P(M=>M.map(L=>L.id===o.id?o:L))}else await la(r);X(),T(i),b({title:w?n("terminalManager.templateUpdateSuccess"):n("terminalManager.templateSaveSuccess"),tone:"success"})}catch(r){b({title:r instanceof Error?r.message:w?n("terminalManager.templateUpdateFailed"):n("terminalManager.templateSaveFailed"),tone:"error"})}finally{oe(!1)}}async function Ge(a){const r=await m.bridge.openExternal(a);r.ok||b({title:r.detail||n("terminalManager.openProxyUrlFailed"),tone:"error"})}async function We(a,r){if(i){ge(a.id);try{await ta(a.id),P(o=>o.filter(M=>M.id!==a.id)),D(o=>o.filter(M=>M.templateId!==a.id)),ie(o=>o.filter(M=>M!==a.id)),U(o=>(o==null?void 0:o.templateId)===a.id?null:o),I===a.id&&X(),T(i),b({title:n("terminalManager.templateDeleteSuccess"),tone:"success"})}catch(o){b({title:o instanceof Error?o.message:n("terminalManager.templateDeleteFailed"),tone:"error"})}finally{ge(null)}}}async function qe(a){if(!i)return;const r=g!=null&&g.available?g.shell:void 0;me(a);try{await ke(a,{shell:r}),T(i),b({title:n("terminalManager.templateRunSuccess"),tone:"success"})}catch(o){if(sa(o)){ne({templateId:a,shell:r});return}b({title:o instanceof Error?o.message:n("terminalManager.templateRunFailed"),tone:"error"})}finally{me(null)}}async function He(){if(!(!i||!K)){he(!0);try{await ke(K.templateId,{shell:K.shell,runtimeType:"embedded-pty"}),ne(null),T(i),b({title:n("terminalManager.templateRunSuccess"),tone:"success"})}catch(a){b({title:a instanceof Error?a.message:n("terminalManager.templateRunFailed"),tone:"error"})}finally{he(!1)}}}function Ve(a){ie(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(ia,{open:K!==null,busy:pe,onClose:()=>{pe||ne(null)},onConfirmFallback:()=>{He()}}),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:Re})]}),e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.portWatchCountLabel")}),e.jsx("strong",{children:Fe})]}),e.jsxs("article",{className:"terminal-manager-overview-card",children:[e.jsx("span",{children:n("terminalManager.terminalCountLabel")}),e.jsx("strong",{children:Q.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&&y(Qe(i))},children:n("terminalManager.openWorkspaceDebugAction")}),e.jsx("button",{className:"ghost-button",type:"button",disabled:!i||se,onClick:()=>{i&&T(i)},children:n("terminalManager.refresh")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!i,onClick:()=>{_e()},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:f.length})]}),se&&!f.length?e.jsx("p",{className:"status-text",children:n("common.loading")}):null,f.length?e.jsx("div",{className:"terminal-manager-list",children:f.map(a=>{const r=we(fe,a.id),o=xa(a,r),M=ba(r),L=Ie.includes(a.id),ze=L?n("terminalManager.hideDetailsAction"):n("terminalManager.showDetailsAction"),re=a.proxyEnabled&&a.proxySlug?pa(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:Te(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":ze,"aria-expanded":L,onClick:()=>{Ve(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:de===a.id,onClick:()=>{Be(a.id)},children:de===a.id?n("terminalManager.stoppingProcess"):n("terminalManager.stopProcessAction")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:ce===a.id||De,onClick:()=>{qe(a.id)},children:ce===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:ua(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:Te(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:oa(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:re??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,M?e.jsxs("div",{className:"terminal-manager-detail-item",children:[e.jsx("span",{children:n("terminalManager.terminationScopeLabel")}),e.jsx("strong",{children:M})]}):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:[re?e.jsx("button",{className:"secondary-button",type:"button",onClick:()=>{Ge(re)},children:n("terminalManager.openProxyUrlAction")}):null,e.jsx("button",{className:"secondary-button",type:"button",disabled:ae||k===a.id,onClick:()=>{Ue(a)},children:n("terminalManager.editAction")}),e.jsx("button",{className:"secondary-button workbench-danger-button",type:"button",disabled:k===a.id,onClick:()=>{U({templateId:a.id,name:a.name,occupied:!!(r!=null&&r.occupied)})},children:k===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(fa,{open:$,mobile:B,title:w?n("terminalManager.editModalTitle"):n("terminalManager.createModalTitle"),description:w?n("terminalManager.editModalDescription"):n("terminalManager.createModalDescription"),className:B?"terminal-manager-mobile-modal":void 0,onClose:X,children:e.jsxs("section",{className:"terminal-manager-modal-form",children:[B?e.jsxs(e.Fragment,{children:[e.jsx(Le,{label:n("terminalManager.shellField"),value:q,open:xe==="shell",options:x.map(a=>({value:a.id,label:a.label,description:a.available?null:a.unavailableReason??n("terminalManager.shellUnavailable"),disabled:!a.available})),onToggle:()=>{C(a=>a==="shell"?null:"shell")},onChange:a=>{ee(a),C(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:A,open:xe==="runtime",options:R.map(a=>({value:a.value,label:a.label,description:a.description})),onToggle:()=>{C(a=>a==="runtime"?null:"runtime")},onChange:a=>{E(a),C(null)}}),e.jsx("p",{className:"status-text",children:((je=R.find(a=>a.value===A))==null?void 0:je.description)??((ve=R[0])==null?void 0:ve.description)})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field-group",children:[e.jsx("span",{children:n("terminalManager.shellField")}),e.jsx("select",{value:q,onChange:a=>{ee(a.target.value)},children:x.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:A,onChange:a=>{E(a.target.value)},children:R.map(a=>e.jsx("option",{value:a.value,children:a.label},a.value||"auto"))}),e.jsx("p",{className:"status-text",children:((Me=R.find(a=>a.value===A))==null?void 0:Me.description)??((ye=R[0])==null?void 0:ye.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:()=>{j(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:()=>{j(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=>{j(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=>{j(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=>{j(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=>{j(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=>{j(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=>{j(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:X,children:n("common.close")}),e.jsx("button",{className:"primary-button",type:"button",disabled:!i||ae||!d.target.trim(),onClick:()=>{$e()},children:ae?w?n("terminalManager.templateUpdating"):n("terminalManager.templateSaving"):w?n("terminalManager.saveTemplateChangesAction"):n("terminalManager.saveLaunchAction")})]})]})}),e.jsx(ja,{open:v!==null,mobile:B,busy:v!==null&&k===v.templateId,title:n("terminalManager.removeConfirmTitle"),description:v?n(v.occupied?"terminalManager.removeRunningConfirmTarget":"terminalManager.removeConfirmTarget",{name:v.name}):"",confirmLabel:n("terminalManager.removeConfirmAction"),className:B?"terminal-manager-mobile-modal":"terminal-manager-confirm-modal",onClose:()=>{k||U(null)},onConfirm:()=>{if(!v)return;const a=f.find(r=>r.id===v.templateId);if(!a){U(null);return}we(fe,a.id),We(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 le(l){return`terminal-manager.snapshot.${l}`}export{Ra as TerminalManagerPanel};