agent-tower 0.7.1-beta.2 → 0.7.1-beta.4

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 (379) hide show
  1. package/dist/executors/__tests__/base.executor.test.js +2 -2
  2. package/dist/executors/__tests__/base.executor.test.js.map +1 -1
  3. package/dist/executors/__tests__/codex.executor.test.js +137 -25
  4. package/dist/executors/__tests__/codex.executor.test.js.map +1 -1
  5. package/dist/executors/__tests__/providers.test.js +69 -2
  6. package/dist/executors/__tests__/providers.test.js.map +1 -1
  7. package/dist/executors/__tests__/stdin-prompt.executors.test.js +61 -3
  8. package/dist/executors/__tests__/stdin-prompt.executors.test.js.map +1 -1
  9. package/dist/executors/base.executor.d.ts +8 -1
  10. package/dist/executors/base.executor.d.ts.map +1 -1
  11. package/dist/executors/base.executor.js +22 -8
  12. package/dist/executors/base.executor.js.map +1 -1
  13. package/dist/executors/claude-code.executor.d.ts +2 -0
  14. package/dist/executors/claude-code.executor.d.ts.map +1 -1
  15. package/dist/executors/claude-code.executor.js +51 -41
  16. package/dist/executors/claude-code.executor.js.map +1 -1
  17. package/dist/executors/codex.executor.d.ts +3 -0
  18. package/dist/executors/codex.executor.d.ts.map +1 -1
  19. package/dist/executors/codex.executor.js +35 -1
  20. package/dist/executors/codex.executor.js.map +1 -1
  21. package/dist/executors/cursor-agent.executor.d.ts +1 -0
  22. package/dist/executors/cursor-agent.executor.d.ts.map +1 -1
  23. package/dist/executors/cursor-agent.executor.js +2 -0
  24. package/dist/executors/cursor-agent.executor.js.map +1 -1
  25. package/dist/executors/default-providers.json +45 -39
  26. package/dist/executors/gemini-cli.executor.d.ts +3 -1
  27. package/dist/executors/gemini-cli.executor.d.ts.map +1 -1
  28. package/dist/executors/gemini-cli.executor.js +18 -12
  29. package/dist/executors/gemini-cli.executor.js.map +1 -1
  30. package/dist/executors/index.d.ts +4 -0
  31. package/dist/executors/index.d.ts.map +1 -1
  32. package/dist/executors/index.js +14 -4
  33. package/dist/executors/index.js.map +1 -1
  34. package/dist/executors/providers.d.ts +4 -1
  35. package/dist/executors/providers.d.ts.map +1 -1
  36. package/dist/executors/providers.js +20 -5
  37. package/dist/executors/providers.js.map +1 -1
  38. package/dist/output/__tests__/claude-code-parser-lifecycle.test.d.ts +2 -0
  39. package/dist/output/__tests__/claude-code-parser-lifecycle.test.d.ts.map +1 -0
  40. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js +84 -0
  41. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js.map +1 -0
  42. package/dist/output/claude-code-parser.d.ts +14 -2
  43. package/dist/output/claude-code-parser.d.ts.map +1 -1
  44. package/dist/output/claude-code-parser.js +55 -8
  45. package/dist/output/claude-code-parser.js.map +1 -1
  46. package/dist/pipeline/__tests__/agent-pipeline.test.js +48 -1
  47. package/dist/pipeline/__tests__/agent-pipeline.test.js.map +1 -1
  48. package/dist/pipeline/agent-pipeline.d.ts +6 -1
  49. package/dist/pipeline/agent-pipeline.d.ts.map +1 -1
  50. package/dist/pipeline/agent-pipeline.js +42 -4
  51. package/dist/pipeline/agent-pipeline.js.map +1 -1
  52. package/dist/routes/__tests__/providers.test.js +287 -12
  53. package/dist/routes/__tests__/providers.test.js.map +1 -1
  54. package/dist/routes/__tests__/sessions-runtime.test.js +9 -0
  55. package/dist/routes/__tests__/sessions-runtime.test.js.map +1 -1
  56. package/dist/routes/__tests__/workspaces.test.js +48 -6
  57. package/dist/routes/__tests__/workspaces.test.js.map +1 -1
  58. package/dist/routes/providers.d.ts +2 -0
  59. package/dist/routes/providers.d.ts.map +1 -1
  60. package/dist/routes/providers.js +79 -34
  61. package/dist/routes/providers.js.map +1 -1
  62. package/dist/routes/sessions.js +2 -2
  63. package/dist/routes/sessions.js.map +1 -1
  64. package/dist/runtime/__tests__/acp-agent-definitions.test.js +54 -6
  65. package/dist/runtime/__tests__/acp-agent-definitions.test.js.map +1 -1
  66. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js +85 -12
  67. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js.map +1 -1
  68. package/dist/runtime/__tests__/acp-driver.test.js +38 -1
  69. package/dist/runtime/__tests__/acp-driver.test.js.map +1 -1
  70. package/dist/runtime/__tests__/claude-cli-control.test.d.ts +2 -0
  71. package/dist/runtime/__tests__/claude-cli-control.test.d.ts.map +1 -0
  72. package/dist/runtime/__tests__/claude-cli-control.test.js +147 -0
  73. package/dist/runtime/__tests__/claude-cli-control.test.js.map +1 -0
  74. package/dist/runtime/__tests__/claude-cli-driver.test.d.ts +2 -0
  75. package/dist/runtime/__tests__/claude-cli-driver.test.d.ts.map +1 -0
  76. package/dist/runtime/__tests__/claude-cli-driver.test.js +327 -0
  77. package/dist/runtime/__tests__/claude-cli-driver.test.js.map +1 -0
  78. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js +107 -2
  79. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js.map +1 -1
  80. package/dist/runtime/__tests__/codex-cli-control.test.d.ts +2 -0
  81. package/dist/runtime/__tests__/codex-cli-control.test.d.ts.map +1 -0
  82. package/dist/runtime/__tests__/codex-cli-control.test.js +287 -0
  83. package/dist/runtime/__tests__/codex-cli-control.test.js.map +1 -0
  84. package/dist/runtime/__tests__/codex-cli-identity.test.d.ts +2 -0
  85. package/dist/runtime/__tests__/codex-cli-identity.test.d.ts.map +1 -0
  86. package/dist/runtime/__tests__/codex-cli-identity.test.js +166 -0
  87. package/dist/runtime/__tests__/codex-cli-identity.test.js.map +1 -0
  88. package/dist/runtime/__tests__/codex-runtime-resolution.test.js +34 -0
  89. package/dist/runtime/__tests__/codex-runtime-resolution.test.js.map +1 -1
  90. package/dist/runtime/__tests__/runtime-coordinator.test.js +74 -0
  91. package/dist/runtime/__tests__/runtime-coordinator.test.js.map +1 -1
  92. package/dist/runtime/acp/acp-driver.d.ts.map +1 -1
  93. package/dist/runtime/acp/acp-driver.js +27 -9
  94. package/dist/runtime/acp/acp-driver.js.map +1 -1
  95. package/dist/runtime/acp/agents/claude-code.d.ts.map +1 -1
  96. package/dist/runtime/acp/agents/claude-code.js +6 -11
  97. package/dist/runtime/acp/agents/claude-code.js.map +1 -1
  98. package/dist/runtime/acp/agents/codex.d.ts.map +1 -1
  99. package/dist/runtime/acp/agents/codex.js +15 -6
  100. package/dist/runtime/acp/agents/codex.js.map +1 -1
  101. package/dist/runtime/acp/agents/cursor-agent.d.ts.map +1 -1
  102. package/dist/runtime/acp/agents/cursor-agent.js +2 -1
  103. package/dist/runtime/acp/agents/cursor-agent.js.map +1 -1
  104. package/dist/runtime/acp/agents/deepseek-hermes.js +3 -3
  105. package/dist/runtime/acp/agents/deepseek-hermes.js.map +1 -1
  106. package/dist/runtime/acp/agents/gemini-cli.d.ts.map +1 -1
  107. package/dist/runtime/acp/agents/gemini-cli.js +1 -0
  108. package/dist/runtime/acp/agents/gemini-cli.js.map +1 -1
  109. package/dist/runtime/acp/agents/grok-build.d.ts.map +1 -1
  110. package/dist/runtime/acp/agents/grok-build.js +4 -1
  111. package/dist/runtime/acp/agents/grok-build.js.map +1 -1
  112. package/dist/runtime/acp/agents/kiro-cli.d.ts.map +1 -1
  113. package/dist/runtime/acp/agents/kiro-cli.js +2 -1
  114. package/dist/runtime/acp/agents/kiro-cli.js.map +1 -1
  115. package/dist/runtime/acp/agents/minion-code.js +1 -1
  116. package/dist/runtime/acp/agents/minion-code.js.map +1 -1
  117. package/dist/runtime/acp/agents/native-agent.d.ts +2 -0
  118. package/dist/runtime/acp/agents/native-agent.d.ts.map +1 -1
  119. package/dist/runtime/acp/agents/native-agent.js +12 -16
  120. package/dist/runtime/acp/agents/native-agent.js.map +1 -1
  121. package/dist/runtime/acp/agents/opencode.d.ts.map +1 -1
  122. package/dist/runtime/acp/agents/opencode.js +50 -2
  123. package/dist/runtime/acp/agents/opencode.js.map +1 -1
  124. package/dist/runtime/acp/agents/pi-coding-agent.d.ts.map +1 -1
  125. package/dist/runtime/acp/agents/pi-coding-agent.js +2 -5
  126. package/dist/runtime/acp/agents/pi-coding-agent.js.map +1 -1
  127. package/dist/runtime/acp/agents/qwen-code.d.ts.map +1 -1
  128. package/dist/runtime/acp/agents/qwen-code.js +9 -11
  129. package/dist/runtime/acp/agents/qwen-code.js.map +1 -1
  130. package/dist/runtime/acp/agents/types.d.ts +4 -2
  131. package/dist/runtime/acp/agents/types.d.ts.map +1 -1
  132. package/dist/runtime/acp/codex-cli-identity.d.ts +52 -0
  133. package/dist/runtime/acp/codex-cli-identity.d.ts.map +1 -0
  134. package/dist/runtime/acp/codex-cli-identity.js +179 -0
  135. package/dist/runtime/acp/codex-cli-identity.js.map +1 -0
  136. package/dist/runtime/acp/codex-provider-config.d.ts +15 -2
  137. package/dist/runtime/acp/codex-provider-config.d.ts.map +1 -1
  138. package/dist/runtime/acp/codex-provider-config.js +42 -5
  139. package/dist/runtime/acp/codex-provider-config.js.map +1 -1
  140. package/dist/runtime/claude-cli-control.d.ts +32 -0
  141. package/dist/runtime/claude-cli-control.d.ts.map +1 -0
  142. package/dist/runtime/claude-cli-control.js +156 -0
  143. package/dist/runtime/claude-cli-control.js.map +1 -0
  144. package/dist/runtime/cli-action-summary.d.ts +3 -0
  145. package/dist/runtime/cli-action-summary.d.ts.map +1 -0
  146. package/dist/runtime/cli-action-summary.js +13 -0
  147. package/dist/runtime/cli-action-summary.js.map +1 -0
  148. package/dist/runtime/cli-driver.d.ts.map +1 -1
  149. package/dist/runtime/cli-driver.js +119 -26
  150. package/dist/runtime/cli-driver.js.map +1 -1
  151. package/dist/runtime/cli-parser.d.ts +4 -1
  152. package/dist/runtime/cli-parser.d.ts.map +1 -1
  153. package/dist/runtime/cli-parser.js +2 -2
  154. package/dist/runtime/cli-parser.js.map +1 -1
  155. package/dist/runtime/codex-cli-control.d.ts +63 -0
  156. package/dist/runtime/codex-cli-control.d.ts.map +1 -0
  157. package/dist/runtime/codex-cli-control.js +311 -0
  158. package/dist/runtime/codex-cli-control.js.map +1 -0
  159. package/dist/runtime/codex-cli-projector.d.ts +17 -0
  160. package/dist/runtime/codex-cli-projector.d.ts.map +1 -0
  161. package/dist/runtime/codex-cli-projector.js +80 -0
  162. package/dist/runtime/codex-cli-projector.js.map +1 -0
  163. package/dist/runtime/contracts.d.ts +12 -2
  164. package/dist/runtime/contracts.d.ts.map +1 -1
  165. package/dist/runtime/runtime-coordinator.d.ts +1 -1
  166. package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
  167. package/dist/runtime/runtime-coordinator.js +40 -6
  168. package/dist/runtime/runtime-coordinator.js.map +1 -1
  169. package/dist/services/__tests__/claude-cli-capabilities.service.test.d.ts +2 -0
  170. package/dist/services/__tests__/claude-cli-capabilities.service.test.d.ts.map +1 -0
  171. package/dist/services/__tests__/claude-cli-capabilities.service.test.js +37 -0
  172. package/dist/services/__tests__/claude-cli-capabilities.service.test.js.map +1 -0
  173. package/dist/services/__tests__/codex-cli-capabilities.service.test.d.ts +2 -0
  174. package/dist/services/__tests__/codex-cli-capabilities.service.test.d.ts.map +1 -0
  175. package/dist/services/__tests__/codex-cli-capabilities.service.test.js +35 -0
  176. package/dist/services/__tests__/codex-cli-capabilities.service.test.js.map +1 -0
  177. package/dist/services/__tests__/codex-model-capabilities.service.test.js +23 -2
  178. package/dist/services/__tests__/codex-model-capabilities.service.test.js.map +1 -1
  179. package/dist/services/__tests__/execution-permission.service.test.d.ts +2 -0
  180. package/dist/services/__tests__/execution-permission.service.test.d.ts.map +1 -0
  181. package/dist/services/__tests__/execution-permission.service.test.js +111 -0
  182. package/dist/services/__tests__/execution-permission.service.test.js.map +1 -0
  183. package/dist/services/__tests__/provider-config.service.test.js +1 -0
  184. package/dist/services/__tests__/provider-config.service.test.js.map +1 -1
  185. package/dist/services/__tests__/session-manager.lifecycle.test.js +151 -3
  186. package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
  187. package/dist/services/__tests__/workspace.service.test.js +38 -0
  188. package/dist/services/__tests__/workspace.service.test.js.map +1 -1
  189. package/dist/services/claude-cli-capabilities.service.d.ts +11 -0
  190. package/dist/services/claude-cli-capabilities.service.d.ts.map +1 -0
  191. package/dist/services/claude-cli-capabilities.service.js +54 -0
  192. package/dist/services/claude-cli-capabilities.service.js.map +1 -0
  193. package/dist/services/codex-cli-capabilities.service.d.ts +12 -0
  194. package/dist/services/codex-cli-capabilities.service.d.ts.map +1 -0
  195. package/dist/services/codex-cli-capabilities.service.js +65 -0
  196. package/dist/services/codex-cli-capabilities.service.js.map +1 -0
  197. package/dist/services/codex-model-capabilities.service.d.ts.map +1 -1
  198. package/dist/services/codex-model-capabilities.service.js +12 -1
  199. package/dist/services/codex-model-capabilities.service.js.map +1 -1
  200. package/dist/services/execution-permission.service.d.ts +30 -0
  201. package/dist/services/execution-permission.service.d.ts.map +1 -0
  202. package/dist/services/execution-permission.service.js +149 -0
  203. package/dist/services/execution-permission.service.js.map +1 -0
  204. package/dist/services/provider-config.service.d.ts.map +1 -1
  205. package/dist/services/provider-config.service.js +19 -29
  206. package/dist/services/provider-config.service.js.map +1 -1
  207. package/dist/services/session-manager.d.ts +9 -7
  208. package/dist/services/session-manager.d.ts.map +1 -1
  209. package/dist/services/session-manager.js +46 -7
  210. package/dist/services/session-manager.js.map +1 -1
  211. package/dist/services/task.service.d.ts +4 -4
  212. package/dist/services/workspace.service.d.ts +13 -7
  213. package/dist/services/workspace.service.d.ts.map +1 -1
  214. package/dist/services/workspace.service.js +1 -0
  215. package/dist/services/workspace.service.js.map +1 -1
  216. package/dist/utils/cli-duplex-channel.d.ts +21 -0
  217. package/dist/utils/cli-duplex-channel.d.ts.map +1 -0
  218. package/dist/utils/cli-duplex-channel.js +200 -0
  219. package/dist/utils/cli-duplex-channel.js.map +1 -0
  220. package/dist/utils/cli-duplex-channel.test.d.ts +2 -0
  221. package/dist/utils/cli-duplex-channel.test.d.ts.map +1 -0
  222. package/dist/utils/cli-duplex-channel.test.js +191 -0
  223. package/dist/utils/cli-duplex-channel.test.js.map +1 -0
  224. package/dist/utils/index.d.ts +1 -0
  225. package/dist/utils/index.d.ts.map +1 -1
  226. package/dist/utils/index.js +1 -0
  227. package/dist/utils/index.js.map +1 -1
  228. package/dist/utils/process-launch.d.ts +3 -0
  229. package/dist/utils/process-launch.d.ts.map +1 -1
  230. package/dist/utils/process-launch.js +129 -10
  231. package/dist/utils/process-launch.js.map +1 -1
  232. package/dist/utils/process-launch.test.js +103 -0
  233. package/dist/utils/process-launch.test.js.map +1 -1
  234. package/dist/web/assets/{AgentDemoPage-B6pABvRL.js → AgentDemoPage-B__0_CPX.js} +1 -1
  235. package/dist/web/assets/{AgentEnvironmentSettingsPage-CqMfdwkM.js → AgentEnvironmentSettingsPage-uSnG5iV3.js} +1 -1
  236. package/dist/web/assets/{AgentLogo-Ntqe3_Mx.js → AgentLogo-CoAT8dNB.js} +1 -1
  237. package/dist/web/assets/ConversationPage-BOfzGTyj.js +3 -0
  238. package/dist/web/assets/CreateTaskInput-DwQsAlWX.js +1 -0
  239. package/dist/web/assets/{DemoPage-D1Ki6sJ0.js → DemoPage-CuDLCuUQ.js} +1 -1
  240. package/dist/web/assets/ExecutionPermissionSelector-Cu7Z72Yk.js +29 -0
  241. package/dist/web/assets/{GeneralSettingsPage-DoAXPabw.js → GeneralSettingsPage-CmG_TW4-.js} +1 -1
  242. package/dist/web/assets/{Icons-KJJd6C8K.js → Icons-B6q-ul89.js} +1 -1
  243. package/dist/web/assets/{LoadingPreviewPage-BqCKBvgv.js → LoadingPreviewPage-Db5WcYw_.js} +1 -1
  244. package/dist/web/assets/{McpSettingsPage-QXVD4XCW.js → McpSettingsPage-CQV1RaHW.js} +1 -1
  245. package/dist/web/assets/{MemberAvatar-kbJEoyh0.js → MemberAvatar-BQA5sE4L.js} +1 -1
  246. package/dist/web/assets/{NotificationSettingsPage-BrqSeU--.js → NotificationSettingsPage-BGKJ6wO0.js} +1 -1
  247. package/dist/web/assets/{ProfileSettingsPage-BmWgVdnG.js → ProfileSettingsPage-dTvp-LFa.js} +1 -1
  248. package/dist/web/assets/{ProjectKanbanPage-D7RJm4yg.js → ProjectKanbanPage-CHZc9WB7.js} +35 -35
  249. package/dist/web/assets/{ProjectSettingsPage-BVINN99w.js → ProjectSettingsPage-CwLXTwwe.js} +1 -1
  250. package/dist/web/assets/ProviderSettingsPage-Ced1VN2f.js +67 -0
  251. package/dist/web/assets/{SettingsMasterDetail-OF28cvPV.js → SettingsMasterDetail-CEZsOwjq.js} +1 -1
  252. package/dist/web/assets/{TeamSettingsPage-BWGm0m7s.js → TeamSettingsPage-lErIz31n.js} +1 -1
  253. package/dist/web/assets/{arc-CqFgRaZU.js → arc-CgQPLQJF.js} +1 -1
  254. package/dist/web/assets/{architectureDiagram-3BPJPVTR-C0PMdIZJ.js → architectureDiagram-3BPJPVTR-BRns2_cB.js} +1 -1
  255. package/dist/web/assets/{blockDiagram-GPEHLZMM-SqqtxqkX.js → blockDiagram-GPEHLZMM-DUIPlzPN.js} +1 -1
  256. package/dist/web/assets/{c4Diagram-AAUBKEIU-DYJXB3xL.js → c4Diagram-AAUBKEIU-BfWsGU4R.js} +1 -1
  257. package/dist/web/assets/channel-CYUMBIeW.js +1 -0
  258. package/dist/web/assets/check-C_RQ5zOf.js +1 -0
  259. package/dist/web/assets/{chevron-down-BZfpVhYr.js → chevron-down-Dz61D9cJ.js} +1 -1
  260. package/dist/web/assets/{chevron-right-D52zUyOF.js → chevron-right-q_hHAFb1.js} +1 -1
  261. package/dist/web/assets/{chevron-up-CFOy5dmW.js → chevron-up-ChWM4fJS.js} +1 -1
  262. package/dist/web/assets/{chunk-2J33WTMH-DQCbv8W_.js → chunk-2J33WTMH-DOverrRX.js} +1 -1
  263. package/dist/web/assets/{chunk-4BX2VUAB-B_68_oNW.js → chunk-4BX2VUAB-BakE7rwb.js} +1 -1
  264. package/dist/web/assets/{chunk-55IACEB6-Bb-pPIxs.js → chunk-55IACEB6-BJY_hqWJ.js} +1 -1
  265. package/dist/web/assets/{chunk-727SXJPM-CAiaySk6.js → chunk-727SXJPM-Bz_y_ixN.js} +1 -1
  266. package/dist/web/assets/{chunk-AQP2D5EJ-ChCLJ4Wv.js → chunk-AQP2D5EJ-DPrP1E5u.js} +1 -1
  267. package/dist/web/assets/{chunk-FMBD7UC4-Kz0Cc0mv.js → chunk-FMBD7UC4--yjwIi92.js} +1 -1
  268. package/dist/web/assets/{chunk-ND2GUHAM-BttoT7UR.js → chunk-ND2GUHAM-BlN7Zpnx.js} +1 -1
  269. package/dist/web/assets/{chunk-QZHKN3VN-BcVhzXXK.js → chunk-QZHKN3VN-b97Y7iON.js} +1 -1
  270. package/dist/web/assets/{circle-alert-D67xfWMs.js → circle-alert-B3BU6yxp.js} +1 -1
  271. package/dist/web/assets/classDiagram-4FO5ZUOK-KLi01tMF.js +1 -0
  272. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-KLi01tMF.js +1 -0
  273. package/dist/web/assets/{code-block-OCS4YCEC-CMA1utSp.js → code-block-OCS4YCEC-pXxp6Ipb.js} +1 -1
  274. package/dist/web/assets/{confirm-dialog-BWvZEHpu.js → confirm-dialog-CeNfH2ZR.js} +1 -1
  275. package/dist/web/assets/{cose-bilkent-S5V4N54A-B391zTey.js → cose-bilkent-S5V4N54A-BE-ASlGZ.js} +1 -1
  276. package/dist/web/assets/cssMode-B8d06lCF.js +1 -0
  277. package/dist/web/assets/{dagre-BM42HDAG-CymH_FEZ.js → dagre-BM42HDAG-lAvNJn8H.js} +1 -1
  278. package/dist/web/assets/{diagram-2AECGRRQ-DXOIiLDr.js → diagram-2AECGRRQ-DBgI60j-.js} +1 -1
  279. package/dist/web/assets/{diagram-5GNKFQAL-B9ocgjdh.js → diagram-5GNKFQAL-BqFMhpcI.js} +1 -1
  280. package/dist/web/assets/{diagram-KO2AKTUF-DLMpk9Wg.js → diagram-KO2AKTUF-8dtMJ7XC.js} +1 -1
  281. package/dist/web/assets/{diagram-LMA3HP47-BBnF83je.js → diagram-LMA3HP47-CEbAGy_U.js} +1 -1
  282. package/dist/web/assets/{diagram-OG6HWLK6-AK4FunVI.js → diagram-OG6HWLK6-BTy4Wqho.js} +1 -1
  283. package/dist/web/assets/{erDiagram-TEJ5UH35-B1mryURg.js → erDiagram-TEJ5UH35-Fe0pjB7H.js} +1 -1
  284. package/dist/web/assets/{flowDiagram-I6XJVG4X-BjIG_1l5.js → flowDiagram-I6XJVG4X-Cn5xoMyS.js} +1 -1
  285. package/dist/web/assets/{folder-picker-CaM_drIJ.js → folder-picker-DlJ9hExj.js} +1 -1
  286. package/dist/web/assets/{freemarker2-Dj1C_6Ng.js → freemarker2-WBCTYbCf.js} +2 -2
  287. package/dist/web/assets/{ganttDiagram-6RSMTGT7-DjR6lyIQ.js → ganttDiagram-6RSMTGT7-Bwf7sOJW.js} +1 -1
  288. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-BpW2L4ry.js → gitGraphDiagram-PVQCEYII-DEqHf_N3.js} +1 -1
  289. package/dist/web/assets/handlebars-aoMw8XNP.js +1 -0
  290. package/dist/web/assets/html-mP4L-gn5.js +1 -0
  291. package/dist/web/assets/htmlMode-BRkGssBX.js +1 -0
  292. package/dist/web/assets/index-BoQh7Rhc.css +1 -0
  293. package/dist/web/assets/{index-DaRxJqVy.js → index-DxE1UagD.js} +4 -4
  294. package/dist/web/assets/index-_mroLJ3-.js +122 -0
  295. package/dist/web/assets/{infoDiagram-5YYISTIA-Cu-PA_-6.js → infoDiagram-5YYISTIA-BzITBBR6.js} +1 -1
  296. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-S6Esbkdw.js → ishikawaDiagram-YF4QCWOH-Bd9MT4ne.js} +1 -1
  297. package/dist/web/assets/javascript-CzeLwCQy.js +1 -0
  298. package/dist/web/assets/{journeyDiagram-JHISSGLW-wPF9FT9V.js → journeyDiagram-JHISSGLW-CR2x5gV0.js} +1 -1
  299. package/dist/web/assets/{jsonMode-D6IoFlQF.js → jsonMode-BixD4b0P.js} +4 -4
  300. package/dist/web/assets/{kanban-definition-UN3LZRKU-C4jl9zOj.js → kanban-definition-UN3LZRKU-DZx-6dHw.js} +1 -1
  301. package/dist/web/assets/{layers-hQUUT3Gb.js → layers-DOM1D0GC.js} +1 -1
  302. package/dist/web/assets/{linear-D83xDp0H.js → linear-BBLqccsD.js} +1 -1
  303. package/dist/web/assets/liquid-DGETTZ3q.js +1 -0
  304. package/dist/web/assets/{lspLanguageFeatures-CUyibjAN.js → lspLanguageFeatures-DLBGi3go.js} +1 -1
  305. package/dist/web/assets/mdx-Co95_1jL.js +1 -0
  306. package/dist/web/assets/{mermaid-NOHMQCX5-CGCWmHha.js → mermaid-NOHMQCX5-K1Nm51AP.js} +45 -45
  307. package/dist/web/assets/{message-square-B-uYQiTq.js → message-square-eTP8tZLX.js} +1 -1
  308. package/dist/web/assets/{mindmap-definition-RKZ34NQL-D5v2uvjn.js → mindmap-definition-RKZ34NQL-BuB-92St.js} +1 -1
  309. package/dist/web/assets/{modal-D87uszzb.js → modal-CSnK65Cb.js} +1 -1
  310. package/dist/web/assets/{monaco-B25-2nEB.js → monaco-C17UmdbS.js} +3 -3
  311. package/dist/web/assets/{pencil-CY2RnQrx.js → pencil-l1-UifOH.js} +1 -1
  312. package/dist/web/assets/{pieDiagram-4H26LBE5-6wdFz_7x.js → pieDiagram-4H26LBE5--40xP_i_.js} +1 -1
  313. package/dist/web/assets/python-CQw9WtC1.js +1 -0
  314. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-C1CrGMEK.js → quadrantDiagram-W4KKPZXB-BxiOfFTG.js} +1 -1
  315. package/dist/web/assets/razor-Du_XbZEg.js +1 -0
  316. package/dist/web/assets/{requirementDiagram-4Y6WPE33-mDtZrxpp.js → requirementDiagram-4Y6WPE33-GR0Dtr4T.js} +1 -1
  317. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-hBlj0XoH.js → sankeyDiagram-5OEKKPKP-tWpKambG.js} +1 -1
  318. package/dist/web/assets/select-DB6L9-KB.js +1 -0
  319. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DsWmMm20.js → sequenceDiagram-3UESZ5HK-ByVTWC_r.js} +1 -1
  320. package/dist/web/assets/{server-qlZupTvg.js → server-CrODl9NC.js} +1 -1
  321. package/dist/web/assets/{stateDiagram-AJRCARHV-VNyX1L66.js → stateDiagram-AJRCARHV-Bd8b6zV5.js} +1 -1
  322. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-A6YN_ZNd.js +1 -0
  323. package/dist/web/assets/{switch-1pvXCcP-.js → switch-DvXJc47w.js} +1 -1
  324. package/dist/web/assets/{textarea-D9oaz-Ba.js → textarea-CSKljQWP.js} +1 -1
  325. package/dist/web/assets/{timeline-definition-PNZ67QCA-DuBxxd9E.js → timeline-definition-PNZ67QCA-BZhaE4Q8.js} +1 -1
  326. package/dist/web/assets/{trash-2-C0P8jNpJ.js → trash-2-DdOhDOCv.js} +1 -1
  327. package/dist/web/assets/{tsMode-ogL-3MSe.js → tsMode-D9Lc5Ctp.js} +2 -2
  328. package/dist/web/assets/typescript-jsG0idOk.js +1 -0
  329. package/dist/web/assets/{upload-BYgsDplu.js → upload-9nN5Lg83.js} +1 -1
  330. package/dist/web/assets/{use-profiles-BkGnmson.js → use-profiles-8YJrKR2I.js} +1 -1
  331. package/dist/web/assets/{use-projects-B4w00h5I.js → use-projects-BdSJ4zPv.js} +1 -1
  332. package/dist/web/assets/use-providers-BlqWIGOP.js +1 -0
  333. package/dist/web/assets/{useNormalizedLogs-MsDkcnRQ.js → useNormalizedLogs-B_LoDoiT.js} +1 -1
  334. package/dist/web/assets/{vennDiagram-CIIHVFJN-RbPPOLBo.js → vennDiagram-CIIHVFJN-COnwMBZG.js} +1 -1
  335. package/dist/web/assets/{wardley-L42UT6IY-DXzUbdMF.js → wardley-L42UT6IY-DnIbpfhs.js} +1 -1
  336. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-B0QXobQM.js → wardleyDiagram-YWT4CUSO-QNFL1GWo.js} +1 -1
  337. package/dist/web/assets/xml-C_Zqe3tk.js +1 -0
  338. package/dist/web/assets/{xychartDiagram-2RQKCTM6-C7bFJItM.js → xychartDiagram-2RQKCTM6-CW7FVlM3.js} +1 -1
  339. package/dist/web/assets/yaml-CETOqGaS.js +1 -0
  340. package/dist/web/index.html +2 -2
  341. package/node_modules/@agent-tower/shared/dist/execution-permission.d.ts +19 -0
  342. package/node_modules/@agent-tower/shared/dist/execution-permission.d.ts.map +1 -0
  343. package/node_modules/@agent-tower/shared/dist/execution-permission.js +53 -0
  344. package/node_modules/@agent-tower/shared/dist/execution-permission.js.map +1 -0
  345. package/node_modules/@agent-tower/shared/dist/index.d.ts +1 -0
  346. package/node_modules/@agent-tower/shared/dist/index.d.ts.map +1 -1
  347. package/node_modules/@agent-tower/shared/dist/index.js +1 -0
  348. package/node_modules/@agent-tower/shared/dist/index.js.map +1 -1
  349. package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts +6 -5
  350. package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts.map +1 -1
  351. package/node_modules/@agent-tower/shared/dist/provider-capabilities.js.map +1 -1
  352. package/node_modules/@agent-tower/shared/dist/types.d.ts +49 -2
  353. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  354. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  355. package/package.json +1 -1
  356. package/dist/web/assets/ConversationPage-BINGA8XL.js +0 -3
  357. package/dist/web/assets/CreateTaskInput-8bLhHYOc.js +0 -1
  358. package/dist/web/assets/ProviderSettingsPage-BlgfQMwe.js +0 -95
  359. package/dist/web/assets/channel-B8s9dqlX.js +0 -1
  360. package/dist/web/assets/check-C1zWgxFO.js +0 -1
  361. package/dist/web/assets/classDiagram-4FO5ZUOK-61bPx188.js +0 -1
  362. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-61bPx188.js +0 -1
  363. package/dist/web/assets/cssMode-CNU1q_Gl.js +0 -1
  364. package/dist/web/assets/handlebars-DNXOgRZc.js +0 -1
  365. package/dist/web/assets/html-C20FgNS-.js +0 -1
  366. package/dist/web/assets/htmlMode-CtcV1Ktd.js +0 -1
  367. package/dist/web/assets/index-dElqH2UR.css +0 -1
  368. package/dist/web/assets/index-oC5eh7mZ.js +0 -122
  369. package/dist/web/assets/javascript-CFAVZ6Tb.js +0 -1
  370. package/dist/web/assets/liquid-CuzuRJIN.js +0 -1
  371. package/dist/web/assets/mdx-C3rxTvel.js +0 -1
  372. package/dist/web/assets/python-BYGLbOzO.js +0 -1
  373. package/dist/web/assets/razor-m0U9iUAj.js +0 -1
  374. package/dist/web/assets/select-D7WkUiad.js +0 -1
  375. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DHz3oGyD.js +0 -1
  376. package/dist/web/assets/typescript-rHoDxTY8.js +0 -1
  377. package/dist/web/assets/use-providers-B70-BYNu.js +0 -1
  378. package/dist/web/assets/xml-BqnpQrAq.js +0 -1
  379. package/dist/web/assets/yaml-mz2Zn_K2.js +0 -1
@@ -47,7 +47,110 @@ function spawnWrapperWithGrandchild(childScript) {
47
47
  });
48
48
  return { wrapper, grandPid, ownershipToken };
49
49
  }
50
+ function simulateLinuxWrapper(initialRows) {
51
+ const child = Object.assign(new EventEmitter(), {
52
+ pid: 100, exitCode: null, signalCode: null, kill: () => false,
53
+ });
54
+ const system = { rows: initialRows, probeFailure: false };
55
+ const signals = [];
56
+ const exits = [];
57
+ const diagnostics = [];
58
+ const timers = [];
59
+ const wrapperProcess = Object.assign(new EventEmitter(), {
60
+ argv: ['node', 'spawn', 'fake-agent'], platform: 'linux', pid: 50,
61
+ env: { AGENT_TOWER_PTY_IDENTITY_SEED: 'test-owner' },
62
+ kill: (pid, signal) => signals.push({ pid, signal }),
63
+ exit: (code) => exits.push(code),
64
+ });
65
+ runInNewContext(buildPtyCommand('fake-agent', []).args[1], {
66
+ process: wrapperProcess,
67
+ console: { error: (message) => diagnostics.push(message) },
68
+ require: (name) => name === 'node:child_process' ? {
69
+ spawn: () => child,
70
+ spawnSync: (_command, args) => {
71
+ // Model procps-ng's default personality rather than accepting the
72
+ // macOS-only mixed BSD/POSIX selection flags.
73
+ if (args.includes('-axo') || system.probeFailure) {
74
+ return { status: 1, stdout: '', stderr: 'error: must set personality to get -x option' };
75
+ }
76
+ const columns = args.at(-1).split(',').map((column) => column.replace(/=$/, ''));
77
+ const stdout = system.rows.map((row) => {
78
+ const fields = {
79
+ pid: row.pid, ppid: row.ppid, pgid: row.pgid, stat: row.state,
80
+ lstart: 'Sat Oct 10 03:14:29 2026', command: row.command,
81
+ };
82
+ return columns.map((column) => fields[column]).join(' ');
83
+ }).join('\n');
84
+ return { status: 0, stdout, stderr: '' };
85
+ },
86
+ } : { unlinkSync: () => undefined },
87
+ setTimeout: (callback, delay) => {
88
+ const timer = { callback, delay, cleared: false, unref: () => undefined };
89
+ timers.push(timer);
90
+ return timer;
91
+ },
92
+ clearTimeout: (timer) => { timer.cleared = true; },
93
+ });
94
+ return {
95
+ system, signals, exits, diagnostics,
96
+ exitChild: () => {
97
+ child.exitCode = 0;
98
+ system.rows = system.rows.filter((row) => row.pid !== child.pid);
99
+ child.emit('exit', 0, null);
100
+ },
101
+ poll: () => {
102
+ const timer = timers.find((timer) => !timer.cleared && timer.delay === 50);
103
+ expect(timer).toBeDefined();
104
+ timer.cleared = true;
105
+ timer.callback();
106
+ },
107
+ };
108
+ }
109
+ const linuxWrapperRow = { pid: 50, ppid: 1, pgid: 50, state: 'Sl', command: 'wrapper' };
110
+ const linuxRootRow = {
111
+ pid: 100, ppid: 50, pgid: 100, state: 'Sl', command: 'agent AGENT_TOWER_PROCESS_IDENTITY=test-owner',
112
+ };
50
113
  describe('process-launch', () => {
114
+ it('confirms a normal Linux root exit using default procps-ng selection flags', () => {
115
+ const wrapper = simulateLinuxWrapper([linuxWrapperRow, linuxRootRow]);
116
+ wrapper.exitChild();
117
+ expect(wrapper.exits).toEqual([0]);
118
+ expect(wrapper.diagnostics).toEqual([]);
119
+ });
120
+ it.each(['Z', 'Z+', 'X'])('treats %s descendants as exited without signaling their groups', (state) => {
121
+ const wrapper = simulateLinuxWrapper([
122
+ linuxWrapperRow, linuxRootRow,
123
+ { pid: 101, ppid: 100, pgid: 101, state, command: '[worker] <defunct>' },
124
+ ]);
125
+ wrapper.exitChild();
126
+ expect(wrapper.exits).toEqual([0]);
127
+ expect(wrapper.signals).toEqual([]);
128
+ });
129
+ it('retains zombie ancestry to discover living descendants without ownership markers', () => {
130
+ const wrapper = simulateLinuxWrapper([
131
+ linuxWrapperRow, linuxRootRow,
132
+ { pid: 101, ppid: 100, pgid: 101, state: 'Z', command: '[worker] <defunct>' },
133
+ { pid: 102, ppid: 101, pgid: 102, state: 'S', command: 'worker without marker' },
134
+ ]);
135
+ wrapper.exitChild();
136
+ expect(wrapper.exits).toEqual([]);
137
+ expect(wrapper.signals).toEqual([{ pid: -102, signal: 'SIGHUP' }]);
138
+ wrapper.system.rows = wrapper.system.rows.filter((row) => row.pid !== 102);
139
+ wrapper.poll();
140
+ expect(wrapper.exits).toEqual([0]);
141
+ });
142
+ it('reports a repeated failed probe once and keeps cleanup pending until recovery', () => {
143
+ const wrapper = simulateLinuxWrapper([linuxWrapperRow, linuxRootRow]);
144
+ wrapper.system.probeFailure = true;
145
+ wrapper.exitChild();
146
+ expect(wrapper.exits).toEqual([]);
147
+ expect(wrapper.diagnostics).toHaveLength(1);
148
+ expect(wrapper.diagnostics[0]).toContain('PROBE_UNAVAILABLE');
149
+ expect(wrapper.diagnostics[0]).toContain('must set personality');
150
+ wrapper.system.probeFailure = false;
151
+ wrapper.poll();
152
+ expect(wrapper.exits).toEqual([0]);
153
+ });
51
154
  it('should add bundled node runtime env only to the PTY wrapper env', () => {
52
155
  const wrapperEnv = buildPtyWrapperEnv({
53
156
  PATH: '/usr/bin',
@@ -1 +1 @@
1
- {"version":3,"file":"process-launch.test.js","sourceRoot":"","sources":["../../src/utils/process-launch.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-launch.test.js","sourceRoot":"","sources":["../../src/utils/process-launch.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{k as U,u as te,Z as se,r as n,p as b,j as e,B as y,_ as ne,$ as re,a0 as ae}from"./index-oC5eh7mZ.js";import{u as le,a as ie,L as oe,T as ce,P as de}from"./useNormalizedLogs-MsDkcnRQ.js";import{b as xe}from"./mermaid-NOHMQCX5-CGCWmHha.js";import{I as H,a as ue,b as me,A as pe,G as he}from"./Icons-KJJd6C8K.js";import{d as ge}from"./use-profiles-BkGnmson.js";import{C as fe}from"./chevron-up-CFOy5dmW.js";import{C as be}from"./chevron-down-BZfpVhYr.js";import"./check-C1zWgxFO.js";import"./chevron-right-D52zUyOF.js";const je=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],ve=U("hash",je);const Ne=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],ye=U("send",Ne),we=!0;function Pe(){const{t:s}=te(),{preserveDesktopSearch:V}=se(),[w,_]=n.useState([]),[i,S]=n.useState(""),[x,A]=n.useState("DEFAULT"),[o,k]=n.useState(""),[a,D]=n.useState(null),[B,E]=n.useState(null),[l,c]=n.useState("idle"),[g,C]=n.useState(!1),[u,j]=n.useState(""),$=n.useRef(null),I=n.useRef(null),m=n.useRef(null),{data:p}=ge(i),F=p?Object.keys(p):["DEFAULT"],G=t=>{S(t),A("DEFAULT")},M=n.useCallback(t=>{c(t===0?"stopped":"error")},[]),O=n.useCallback(t=>{console.error("Agent error:",t),c("error")},[]),{isConnected:h,isAttached:f,isOutputActive:K,lastExitAt:q,logs:v,entries:J,agentSessionId:z,attach:P,clearLogs:R}=le({sessionId:a||"",sessionStartedAt:B,onExit:M,onError:O}),{todos:T}=ie(J);n.useEffect(()=>{b.get("/demo/agents").then(t=>{_(t.agents);const r=t.agents.find(N=>N.available);r&&S(r.type)})},[]),n.useEffect(()=>{$.current?.scrollToBottom("smooth")},[v]),n.useEffect(()=>{console.log(`[AgentDemoPage:useEffect] t=${Date.now()} sessionId=${a} isConnected=${h} isAttached=${f}`),a&&h&&!f&&(console.log(`[AgentDemoPage:useEffect] t=${Date.now()} calling attach()`),P())},[a,h,f,P]);const W=t=>{if(j(t.target.value),m.current){m.current.style.height="auto";const N=Math.min(m.current.scrollHeight,210);m.current.style.height=`${N}px`}},Z=async()=>{if(!i||!o.trim())return;const t=Date.now();console.log(`[AgentDemoPage:handleStart] t=${t} starting...`),c("starting"),R();try{const r=await b.post("/demo/start",{agentType:i,prompt:o.trim(),variant:x});we&&console.log(`[AgentDemoPage:handleStart] t=${Date.now()} apiTime=${Date.now()-t}ms sessionId=${r.sessionId}`),D(r.sessionId),E(t),c("running")}catch(r){console.error("Start failed:",r),c("error")}},L=async()=>{if(!a||!u.trim())return;const t=u.trim();j("");try{await b.post(`/demo/${a}/message`,{message:t})}catch(r){console.error("Send failed:",r)}},Q=async()=>{if(a)try{await b.post(`/demo/${a}/stop`),c("stopped")}catch(t){console.error("Stop failed:",t)}},X=()=>{D(null),E(null),c("idle"),k(""),j(""),R()},Y=l==="running",d=a!==null,ee=w.find(t=>t.type===i);return e.jsxs("div",{className:"flex flex-col h-full bg-white",children:[e.jsxs("div",{className:"px-8 py-5 border-b border-neutral-100 bg-white transition-all duration-300",children:[e.jsxs("div",{className:"flex items-center flex-wrap gap-3",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"text-base font-medium text-blue-600",children:"Agent Demo"}),e.jsx("span",{className:"text-neutral-300 text-sm",children:"/"}),e.jsx("span",{className:"text-xl font-bold text-neutral-900 tracking-tight",children:d?o.slice(0,50)+(o.length>50?"...":""):s("新会话")})]}),e.jsxs("div",{className:"flex items-center",children:[l==="running"&&e.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-blue-50 text-blue-700 rounded-full text-xs font-medium border border-blue-100",children:[e.jsx(H,{className:"w-3.5 h-3.5 animate-pulse"}),e.jsx("span",{children:"Running"})]}),l==="stopped"&&e.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-emerald-50 text-emerald-700 rounded-full text-xs font-medium border border-emerald-100",children:[e.jsx(ue,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:"Done"})]}),l==="idle"&&e.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-neutral-100 text-neutral-600 rounded-full text-xs font-medium border border-neutral-200",children:[e.jsx(me,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:"Idle"})]}),l==="starting"&&e.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-amber-50 text-amber-700 rounded-full text-xs font-medium border border-amber-100",children:[e.jsx(H,{className:"w-3.5 h-3.5 animate-spin"}),e.jsx("span",{children:"Starting..."})]}),l==="error"&&e.jsx("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-red-50 text-red-700 rounded-full text-xs font-medium border border-red-100",children:e.jsx("span",{children:"Error"})})]})]}),d&&e.jsxs("div",{className:"mt-1.5 flex items-start gap-2 group max-w-4xl",children:[e.jsx("div",{className:`text-sm text-neutral-600 leading-relaxed cursor-pointer transition-all ${g?"":"truncate"}`,onClick:()=>C(!g),children:o}),e.jsx("button",{onClick:()=>C(!g),className:"mt-0.5 text-neutral-400 opacity-0 group-hover:opacity-100 hover:text-neutral-600 transition-opacity",children:g?e.jsx(fe,{size:14}):e.jsx(be,{size:14})})]}),e.jsxs("div",{className:"flex items-center gap-6 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-neutral-400 font-medium",children:"Agent"}),e.jsx("div",{className:"flex items-center gap-1.5 text-neutral-900 font-medium bg-neutral-50 px-2 py-1 rounded border border-neutral-100",children:ee?.name||i||s("未选择")})]}),x!=="DEFAULT"&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-neutral-400 font-medium",children:"Variant"}),e.jsx("div",{className:"flex items-center gap-1.5 text-neutral-700 font-medium bg-blue-50 px-2 py-1 rounded border border-blue-100",children:x})]}),z&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-neutral-400 font-medium",children:"Session"}),e.jsxs("div",{className:"flex items-center gap-1.5 text-neutral-700 font-mono bg-neutral-50 px-2 py-1 rounded border border-neutral-100",children:[z.slice(0,8),"..."]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-neutral-400 font-medium",children:s("连接")}),e.jsx("div",{className:`flex items-center gap-1.5 font-medium px-2 py-1 rounded border ${h?"text-emerald-700 bg-emerald-50 border-emerald-100":"text-neutral-500 bg-neutral-50 border-neutral-100"}`,children:s(h?f?"已连接":"连接中...":"未连接")})]}),d&&e.jsx(y,{variant:"outline",size:"sm",onClick:X,className:"ml-auto",children:s("新会话")}),e.jsxs(ne,{to:V("/settings/profiles"),className:`flex items-center gap-1.5 text-xs text-neutral-500 hover:text-neutral-900 transition-colors ${d?"":"ml-auto"}`,children:[e.jsx(re,{size:14}),e.jsx("span",{children:s("Profiles 设置")})]})]})]}),e.jsx("div",{ref:I,className:"flex-1 overflow-y-auto px-8 py-6",children:d?e.jsx("div",{className:"min-h-[200px]",children:v.length===0?e.jsx("div",{className:"text-neutral-400 text-center py-8",children:s("等待 Agent 响应...")}):e.jsx(oe,{children:e.jsx(xe,{ref:$,logs:v,isOutputActive:K,lastExitAt:q,scrollElementRef:I})})}):e.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold mb-3 text-neutral-900",children:s("选择 Agent")}),e.jsx("div",{className:"flex gap-2 flex-wrap",children:w.map(t=>e.jsxs(y,{variant:i===t.type?"default":"outline",disabled:!t.available,onClick:()=>G(t.type),children:[t.name,t.available&&t.version&&` (${t.version})`,!t.available&&s(" (不可用)")]},t.type))})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold mb-3 text-neutral-900",children:s("配置变体 (Profile Variant)")}),e.jsx("div",{className:"flex gap-2 flex-wrap",children:F.map(t=>e.jsx("button",{onClick:()=>A(t),className:`px-3 py-1.5 rounded-full text-sm font-medium border transition-colors ${x===t?"bg-neutral-900 text-white border-neutral-900":"bg-white text-neutral-600 border-neutral-200 hover:border-neutral-400"}`,children:t},t))}),p&&p[x]&&e.jsx("p",{className:"mt-2 text-xs text-neutral-500 font-mono",children:Object.entries(p[x]).map(([t,r])=>`${t}: ${JSON.stringify(r)}`).join(", ")})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold mb-3 text-neutral-900",children:s("输入任务")}),e.jsxs("div",{className:"relative border border-neutral-200 rounded-xl shadow-sm bg-white focus-within:ring-1 focus-within:ring-neutral-300 focus-within:border-neutral-300 transition-all duration-200",children:[e.jsx("textarea",{value:o,onChange:t=>k(t.target.value),rows:4,placeholder:s("描述你想让 Agent 完成的任务..."),className:"w-full px-4 py-3 bg-transparent border-none focus:outline-none focus:ring-0 resize-none text-neutral-900 placeholder-neutral-400 leading-relaxed text-sm"}),e.jsx("div",{className:"flex items-center justify-end px-3 pb-3 pt-1",children:e.jsx(y,{onClick:Z,disabled:l==="starting"||!i||!o.trim(),children:s(l==="starting"?"启动中...":"开始")})})]})]})]})}),d&&T.length>0&&e.jsx("div",{className:"px-8 py-2 bg-white border-t border-neutral-100",children:e.jsx(ce,{todos:T})}),d&&e.jsx("div",{className:"px-8 py-6 border-t border-neutral-100 bg-white",children:e.jsxs("div",{className:"relative border border-neutral-200 rounded-xl shadow-sm bg-white focus-within:ring-1 focus-within:ring-neutral-300 focus-within:border-neutral-300 transition-all duration-200",children:[e.jsx("textarea",{ref:m,value:u,onChange:W,rows:3,placeholder:s("发送消息给 Agent..."),className:"w-full px-4 py-3 bg-transparent border-none focus:outline-none focus:ring-0 resize-none text-neutral-900 placeholder-neutral-400 leading-relaxed text-sm scrollbar-thin scrollbar-thumb-neutral-200 scrollbar-track-transparent",style:{minHeight:"80px",maxHeight:"210px"},onKeyDown:t=>{t.key==="Enter"&&!t.shiftKey&&!t.repeat&&!t.nativeEvent.isComposing&&t.nativeEvent.keyCode!==229&&(t.preventDefault(),L())}}),e.jsxs("div",{className:"flex items-center justify-between px-3 pb-3 pt-1 border-t border-transparent",children:[e.jsxs("div",{className:"flex items-center gap-1 text-neutral-400",children:[e.jsx("button",{className:"p-2 hover:bg-neutral-100 hover:text-neutral-600 rounded-lg transition-colors",title:"Attach File",children:e.jsx(de,{size:18})}),e.jsx("button",{className:"p-2 hover:bg-neutral-100 hover:text-neutral-600 rounded-lg transition-colors",title:"Mention",children:e.jsx(pe,{size:18})}),e.jsx("button",{className:"p-2 hover:bg-neutral-100 hover:text-neutral-600 rounded-lg transition-colors",title:"Reference Issue",children:e.jsx(ve,{size:18})}),e.jsx("div",{className:"w-px h-4 bg-neutral-200 mx-1"}),e.jsx("button",{className:"p-2 hover:bg-neutral-100 hover:text-neutral-600 rounded-lg transition-colors",title:"Search Web",children:e.jsx(he,{size:18})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[Y&&e.jsxs("button",{onClick:Q,className:"flex items-center gap-2 px-3 py-2 text-xs font-semibold text-red-600 bg-red-50 hover:bg-red-100 rounded-lg transition-colors",children:[e.jsx(ae,{size:12,fill:"currentColor"}),e.jsx("span",{children:s("停止")})]}),e.jsxs("button",{onClick:L,disabled:!u.trim(),className:`flex items-center gap-2 px-3 py-2 text-xs font-semibold rounded-lg transition-all ${u.trim()?"bg-neutral-900 text-white hover:bg-black shadow-sm":"bg-neutral-100 text-neutral-400 cursor-not-allowed"}`,children:[e.jsx("span",{children:s("发送")}),e.jsx(ye,{size:14})]})]})]})]})})]})}export{Pe as AgentDemoPage};
1
+ import{k as U,u as te,Z as se,r as n,p as b,j as e,B as y,_ as ne,$ as re,a0 as ae}from"./index-_mroLJ3-.js";import{u as le,a as ie,L as oe,T as ce,P as de}from"./useNormalizedLogs-B_LoDoiT.js";import{b as xe}from"./mermaid-NOHMQCX5-K1Nm51AP.js";import{I as H,a as ue,b as me,A as pe,G as he}from"./Icons-B6q-ul89.js";import{d as ge}from"./use-profiles-8YJrKR2I.js";import{C as fe}from"./chevron-up-ChWM4fJS.js";import{C as be}from"./chevron-down-Dz61D9cJ.js";import"./check-C_RQ5zOf.js";import"./chevron-right-q_hHAFb1.js";const je=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],ve=U("hash",je);const Ne=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],ye=U("send",Ne),we=!0;function Pe(){const{t:s}=te(),{preserveDesktopSearch:V}=se(),[w,_]=n.useState([]),[i,S]=n.useState(""),[x,A]=n.useState("DEFAULT"),[o,k]=n.useState(""),[a,D]=n.useState(null),[B,E]=n.useState(null),[l,c]=n.useState("idle"),[g,C]=n.useState(!1),[u,j]=n.useState(""),$=n.useRef(null),I=n.useRef(null),m=n.useRef(null),{data:p}=ge(i),F=p?Object.keys(p):["DEFAULT"],G=t=>{S(t),A("DEFAULT")},M=n.useCallback(t=>{c(t===0?"stopped":"error")},[]),O=n.useCallback(t=>{console.error("Agent error:",t),c("error")},[]),{isConnected:h,isAttached:f,isOutputActive:K,lastExitAt:q,logs:v,entries:J,agentSessionId:z,attach:P,clearLogs:R}=le({sessionId:a||"",sessionStartedAt:B,onExit:M,onError:O}),{todos:T}=ie(J);n.useEffect(()=>{b.get("/demo/agents").then(t=>{_(t.agents);const r=t.agents.find(N=>N.available);r&&S(r.type)})},[]),n.useEffect(()=>{$.current?.scrollToBottom("smooth")},[v]),n.useEffect(()=>{console.log(`[AgentDemoPage:useEffect] t=${Date.now()} sessionId=${a} isConnected=${h} isAttached=${f}`),a&&h&&!f&&(console.log(`[AgentDemoPage:useEffect] t=${Date.now()} calling attach()`),P())},[a,h,f,P]);const W=t=>{if(j(t.target.value),m.current){m.current.style.height="auto";const N=Math.min(m.current.scrollHeight,210);m.current.style.height=`${N}px`}},Z=async()=>{if(!i||!o.trim())return;const t=Date.now();console.log(`[AgentDemoPage:handleStart] t=${t} starting...`),c("starting"),R();try{const r=await b.post("/demo/start",{agentType:i,prompt:o.trim(),variant:x});we&&console.log(`[AgentDemoPage:handleStart] t=${Date.now()} apiTime=${Date.now()-t}ms sessionId=${r.sessionId}`),D(r.sessionId),E(t),c("running")}catch(r){console.error("Start failed:",r),c("error")}},L=async()=>{if(!a||!u.trim())return;const t=u.trim();j("");try{await b.post(`/demo/${a}/message`,{message:t})}catch(r){console.error("Send failed:",r)}},Q=async()=>{if(a)try{await b.post(`/demo/${a}/stop`),c("stopped")}catch(t){console.error("Stop failed:",t)}},X=()=>{D(null),E(null),c("idle"),k(""),j(""),R()},Y=l==="running",d=a!==null,ee=w.find(t=>t.type===i);return e.jsxs("div",{className:"flex flex-col h-full bg-white",children:[e.jsxs("div",{className:"px-8 py-5 border-b border-neutral-100 bg-white transition-all duration-300",children:[e.jsxs("div",{className:"flex items-center flex-wrap gap-3",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"text-base font-medium text-blue-600",children:"Agent Demo"}),e.jsx("span",{className:"text-neutral-300 text-sm",children:"/"}),e.jsx("span",{className:"text-xl font-bold text-neutral-900 tracking-tight",children:d?o.slice(0,50)+(o.length>50?"...":""):s("新会话")})]}),e.jsxs("div",{className:"flex items-center",children:[l==="running"&&e.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-blue-50 text-blue-700 rounded-full text-xs font-medium border border-blue-100",children:[e.jsx(H,{className:"w-3.5 h-3.5 animate-pulse"}),e.jsx("span",{children:"Running"})]}),l==="stopped"&&e.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-emerald-50 text-emerald-700 rounded-full text-xs font-medium border border-emerald-100",children:[e.jsx(ue,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:"Done"})]}),l==="idle"&&e.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-neutral-100 text-neutral-600 rounded-full text-xs font-medium border border-neutral-200",children:[e.jsx(me,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:"Idle"})]}),l==="starting"&&e.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-amber-50 text-amber-700 rounded-full text-xs font-medium border border-amber-100",children:[e.jsx(H,{className:"w-3.5 h-3.5 animate-spin"}),e.jsx("span",{children:"Starting..."})]}),l==="error"&&e.jsx("div",{className:"flex items-center gap-1.5 px-2.5 py-0.5 bg-red-50 text-red-700 rounded-full text-xs font-medium border border-red-100",children:e.jsx("span",{children:"Error"})})]})]}),d&&e.jsxs("div",{className:"mt-1.5 flex items-start gap-2 group max-w-4xl",children:[e.jsx("div",{className:`text-sm text-neutral-600 leading-relaxed cursor-pointer transition-all ${g?"":"truncate"}`,onClick:()=>C(!g),children:o}),e.jsx("button",{onClick:()=>C(!g),className:"mt-0.5 text-neutral-400 opacity-0 group-hover:opacity-100 hover:text-neutral-600 transition-opacity",children:g?e.jsx(fe,{size:14}):e.jsx(be,{size:14})})]}),e.jsxs("div",{className:"flex items-center gap-6 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-neutral-400 font-medium",children:"Agent"}),e.jsx("div",{className:"flex items-center gap-1.5 text-neutral-900 font-medium bg-neutral-50 px-2 py-1 rounded border border-neutral-100",children:ee?.name||i||s("未选择")})]}),x!=="DEFAULT"&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-neutral-400 font-medium",children:"Variant"}),e.jsx("div",{className:"flex items-center gap-1.5 text-neutral-700 font-medium bg-blue-50 px-2 py-1 rounded border border-blue-100",children:x})]}),z&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-neutral-400 font-medium",children:"Session"}),e.jsxs("div",{className:"flex items-center gap-1.5 text-neutral-700 font-mono bg-neutral-50 px-2 py-1 rounded border border-neutral-100",children:[z.slice(0,8),"..."]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-neutral-400 font-medium",children:s("连接")}),e.jsx("div",{className:`flex items-center gap-1.5 font-medium px-2 py-1 rounded border ${h?"text-emerald-700 bg-emerald-50 border-emerald-100":"text-neutral-500 bg-neutral-50 border-neutral-100"}`,children:s(h?f?"已连接":"连接中...":"未连接")})]}),d&&e.jsx(y,{variant:"outline",size:"sm",onClick:X,className:"ml-auto",children:s("新会话")}),e.jsxs(ne,{to:V("/settings/profiles"),className:`flex items-center gap-1.5 text-xs text-neutral-500 hover:text-neutral-900 transition-colors ${d?"":"ml-auto"}`,children:[e.jsx(re,{size:14}),e.jsx("span",{children:s("Profiles 设置")})]})]})]}),e.jsx("div",{ref:I,className:"flex-1 overflow-y-auto px-8 py-6",children:d?e.jsx("div",{className:"min-h-[200px]",children:v.length===0?e.jsx("div",{className:"text-neutral-400 text-center py-8",children:s("等待 Agent 响应...")}):e.jsx(oe,{children:e.jsx(xe,{ref:$,logs:v,isOutputActive:K,lastExitAt:q,scrollElementRef:I})})}):e.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold mb-3 text-neutral-900",children:s("选择 Agent")}),e.jsx("div",{className:"flex gap-2 flex-wrap",children:w.map(t=>e.jsxs(y,{variant:i===t.type?"default":"outline",disabled:!t.available,onClick:()=>G(t.type),children:[t.name,t.available&&t.version&&` (${t.version})`,!t.available&&s(" (不可用)")]},t.type))})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold mb-3 text-neutral-900",children:s("配置变体 (Profile Variant)")}),e.jsx("div",{className:"flex gap-2 flex-wrap",children:F.map(t=>e.jsx("button",{onClick:()=>A(t),className:`px-3 py-1.5 rounded-full text-sm font-medium border transition-colors ${x===t?"bg-neutral-900 text-white border-neutral-900":"bg-white text-neutral-600 border-neutral-200 hover:border-neutral-400"}`,children:t},t))}),p&&p[x]&&e.jsx("p",{className:"mt-2 text-xs text-neutral-500 font-mono",children:Object.entries(p[x]).map(([t,r])=>`${t}: ${JSON.stringify(r)}`).join(", ")})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold mb-3 text-neutral-900",children:s("输入任务")}),e.jsxs("div",{className:"relative border border-neutral-200 rounded-xl shadow-sm bg-white focus-within:ring-1 focus-within:ring-neutral-300 focus-within:border-neutral-300 transition-all duration-200",children:[e.jsx("textarea",{value:o,onChange:t=>k(t.target.value),rows:4,placeholder:s("描述你想让 Agent 完成的任务..."),className:"w-full px-4 py-3 bg-transparent border-none focus:outline-none focus:ring-0 resize-none text-neutral-900 placeholder-neutral-400 leading-relaxed text-sm"}),e.jsx("div",{className:"flex items-center justify-end px-3 pb-3 pt-1",children:e.jsx(y,{onClick:Z,disabled:l==="starting"||!i||!o.trim(),children:s(l==="starting"?"启动中...":"开始")})})]})]})]})}),d&&T.length>0&&e.jsx("div",{className:"px-8 py-2 bg-white border-t border-neutral-100",children:e.jsx(ce,{todos:T})}),d&&e.jsx("div",{className:"px-8 py-6 border-t border-neutral-100 bg-white",children:e.jsxs("div",{className:"relative border border-neutral-200 rounded-xl shadow-sm bg-white focus-within:ring-1 focus-within:ring-neutral-300 focus-within:border-neutral-300 transition-all duration-200",children:[e.jsx("textarea",{ref:m,value:u,onChange:W,rows:3,placeholder:s("发送消息给 Agent..."),className:"w-full px-4 py-3 bg-transparent border-none focus:outline-none focus:ring-0 resize-none text-neutral-900 placeholder-neutral-400 leading-relaxed text-sm scrollbar-thin scrollbar-thumb-neutral-200 scrollbar-track-transparent",style:{minHeight:"80px",maxHeight:"210px"},onKeyDown:t=>{t.key==="Enter"&&!t.shiftKey&&!t.repeat&&!t.nativeEvent.isComposing&&t.nativeEvent.keyCode!==229&&(t.preventDefault(),L())}}),e.jsxs("div",{className:"flex items-center justify-between px-3 pb-3 pt-1 border-t border-transparent",children:[e.jsxs("div",{className:"flex items-center gap-1 text-neutral-400",children:[e.jsx("button",{className:"p-2 hover:bg-neutral-100 hover:text-neutral-600 rounded-lg transition-colors",title:"Attach File",children:e.jsx(de,{size:18})}),e.jsx("button",{className:"p-2 hover:bg-neutral-100 hover:text-neutral-600 rounded-lg transition-colors",title:"Mention",children:e.jsx(pe,{size:18})}),e.jsx("button",{className:"p-2 hover:bg-neutral-100 hover:text-neutral-600 rounded-lg transition-colors",title:"Reference Issue",children:e.jsx(ve,{size:18})}),e.jsx("div",{className:"w-px h-4 bg-neutral-200 mx-1"}),e.jsx("button",{className:"p-2 hover:bg-neutral-100 hover:text-neutral-600 rounded-lg transition-colors",title:"Search Web",children:e.jsx(he,{size:18})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[Y&&e.jsxs("button",{onClick:Q,className:"flex items-center gap-2 px-3 py-2 text-xs font-semibold text-red-600 bg-red-50 hover:bg-red-100 rounded-lg transition-colors",children:[e.jsx(ae,{size:12,fill:"currentColor"}),e.jsx("span",{children:s("停止")})]}),e.jsxs("button",{onClick:L,disabled:!u.trim(),className:`flex items-center gap-2 px-3 py-2 text-xs font-semibold rounded-lg transition-all ${u.trim()?"bg-neutral-900 text-white hover:bg-black shadow-sm":"bg-neutral-100 text-neutral-400 cursor-not-allowed"}`,children:[e.jsx("span",{children:s("发送")}),e.jsx(ye,{size:14})]})]})]})]})})]})}export{Pe as AgentDemoPage};
@@ -1 +1 @@
1
- import{u as e,j as n,S as s,g as i,A as r}from"./index-oC5eh7mZ.js";function g(){const{t}=e();return n.jsxs(s,{children:[n.jsx(i,{title:t("Agent 环境"),description:t("检测并安装本机 Agent CLI。安装前会展示官方来源、风险和校验摘要。")}),n.jsx(r,{})]})}export{g as AgentEnvironmentSettingsPage};
1
+ import{u as e,j as n,S as s,g as i,A as r}from"./index-_mroLJ3-.js";function g(){const{t}=e();return n.jsxs(s,{children:[n.jsx(i,{title:t("Agent 环境"),description:t("检测并安装本机 Agent CLI。安装前会展示官方来源、风险和校验摘要。")}),n.jsx(r,{})]})}export{g as AgentEnvironmentSettingsPage};
@@ -1 +1 @@
1
- import{r as a,j as o,C as g,l as s}from"./index-oC5eh7mZ.js";import{g as l}from"./mermaid-NOHMQCX5-CGCWmHha.js";function d({agentType:n,className:r,fallbackClassName:i}){const e=l(n),[c,t]=a.useState(!1);return a.useEffect(()=>{t(!1)},[e?.logoSrc]),!e?.logoSrc||c?o.jsx(g,{"aria-hidden":"true",className:s("shrink-0 text-muted-foreground",r,i)}):o.jsx("img",{src:e.logoSrc,alt:"","aria-hidden":"true",className:s("shrink-0 object-contain",r),draggable:!1,onError:()=>t(!0)})}export{d as A};
1
+ import{r as a,j as o,C as g,l as s}from"./index-_mroLJ3-.js";import{g as l}from"./mermaid-NOHMQCX5-K1Nm51AP.js";function d({agentType:n,className:r,fallbackClassName:i}){const e=l(n),[c,t]=a.useState(!1);return a.useEffect(()=>{t(!1)},[e?.logoSrc]),!e?.logoSrc||c?o.jsx(g,{"aria-hidden":"true",className:s("shrink-0 text-muted-foreground",r,i)}):o.jsx("img",{src:e.logoSrc,alt:"","aria-hidden":"true",className:s("shrink-0 object-contain",r),draggable:!1,onError:()=>t(!0)})}export{d as A};
@@ -0,0 +1,3 @@
1
+ import{k as ze,u as de,r,j as e,a0 as Oe,l as j,m as ke,o as Z,n as ce,q as f,p as _,a7 as Ke,Z as Qe,a8 as Fe,V as Ue,W as je,$ as Be,a9 as _e,s as $e,aa as le}from"./index-_mroLJ3-.js";import{g as Ve,a as We}from"./ExecutionPermissionSelector-Cu7Z72Yk.js";import{u as Ge,b as He,A as Je,S as A}from"./mermaid-NOHMQCX5-K1Nm51AP.js";import{u as Ye,a as Ze,L as Xe,T as et,P as tt}from"./useNormalizedLogs-B_LoDoiT.js";import{u as st,a as nt,b as rt,A as at,R as ot,P as it,T as lt,c as dt,B as ct,S as ut,d as Se,C as mt}from"./CreateTaskInput-DwQsAlWX.js";import{u as ft}from"./use-providers-BlqWIGOP.js";import{M as pe}from"./message-square-eTP8tZLX.js";import{T as xt}from"./trash-2-DdOhDOCv.js";import"./chevron-down-Dz61D9cJ.js";import"./check-C_RQ5zOf.js";import"./chevron-right-q_hHAFb1.js";import"./AgentLogo-CoAT8dNB.js";import"./use-projects-BdSJ4zPv.js";import"./MemberAvatar-BQA5sE4L.js";const ht=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["path",{d:"M14 4h7",key:"3xa0d5"}],["path",{d:"M14 9h7",key:"1icrd9"}],["path",{d:"M14 15h7",key:"1mj8o2"}],["path",{d:"M14 20h7",key:"11slyb"}]],pt=ze("layout-list",ht);function gt({sessionId:t,sessionStatus:n,sessionStartedAt:i,sessionEndedAt:x,agentType:w,runtimeType:p,providerId:u,providers:b,initialTokenUsage:v,onProviderChange:C,onSend:k,onStop:D,onExit:O,isSending:S=!1,isStopping:o=!1,canStop:m,className:ue}){const{t:g}=de(),[I,K]=r.useState(""),[L,Q]=r.useState(u??""),N=Ve(b,L||u),[X,$]=r.useState(!1),[ee,F]=r.useState(null),V=r.useRef(null),te=r.useRef(null),W=r.useRef(null),P=r.useRef(!1),{scrollRef:G,contentRef:l,isAtBottom:H,scrollToBottom:M,stopScroll:se}=st({initial:"instant",resize:"smooth"}),{isConnected:R,isLoadingSnapshot:me,isOutputActive:E,lastExitAt:ne,logs:J,entries:re,attach:U}=Ye({sessionId:t,sessionStatus:n,sessionStartedAt:i,sessionEndedAt:x,onExit:O}),{todos:Y}=Ze(re),fe=nt(J,v),{files:ae,addFiles:T,removeFile:xe,clear:oe,buildMarkdownLinks:ie,getDoneAttachments:s,hasFiles:a,isUploading:d}=Ge(),{isActive:h,isCancelling:q}=rt(t,n),he=m??h;r.useEffect(()=>{Q(u??"")},[u]),r.useEffect(()=>{t&&R&&U()},[t,R,U]);const De=r.useCallback(c=>{Q(c),C?.(c)},[C]),ve=r.useCallback(()=>{V.current&&(V.current.style.height="60px")},[]),Ee=r.useCallback(c=>{K(c.target.value);const y=c.target;y.style.height="auto",y.style.height=`${Math.max(60,Math.min(y.scrollHeight,300))}px`},[]),be=r.useCallback(async()=>{if(!I.trim()&&!a||P.current||S||o||q||d||N)return;P.current=!0;const c=ie(),y=s().map(z=>z.id),B=[I.trim(),c].filter(Boolean).join(`
2
+
3
+ `);K(""),oe(),ve(),F(null);try{await k({message:B,providerId:L||void 0,attachmentIds:y}),await U(),requestAnimationFrame(()=>M("smooth"))}catch(z){F(z instanceof Error?z.message:g("Send failed. Please try again.")),K(B)}finally{P.current=!1}},[I,a,S,o,q,d,ie,s,oe,ve,k,L,N,U,M,g]),Te=r.useCallback(async()=>{!he||o||q||await D()},[he,o,q,D]),Le=r.useCallback(c=>{const y=c.target.files;y&&y.length>0&&T(Array.from(y)),c.target.value=""},[T]),Pe=r.useCallback(c=>{const y=c.clipboardData.items,B=[];for(const z of y)if(z.kind==="file"){const ye=z.getAsFile();ye&&B.push(ye)}B.length>0&&(c.preventDefault(),T(B))},[T]),Me=r.useCallback(c=>{c.preventDefault(),$(!0)},[]),Re=r.useCallback(c=>{c.preventDefault(),$(!1)},[]),qe=r.useCallback(c=>{c.preventDefault(),$(!1);const y=c.dataTransfer.files;y.length>0&&T(Array.from(y))},[T]);return e.jsxs("div",{className:j("relative flex min-h-0 flex-1 flex-col bg-background",ue),children:[e.jsxs("div",{className:"relative min-h-0 flex-1",children:[e.jsx("div",{ref:G,className:"h-full overflow-y-auto scrollbar-app-thin px-6 pb-4 pt-6",children:e.jsx("div",{ref:l,className:"mx-auto w-full min-w-0 max-w-4xl",children:me?e.jsxs("div",{className:"flex items-center justify-center gap-3 py-12 text-muted-foreground/70",children:[e.jsxs("svg",{className:"h-5 w-5 animate-spin",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[e.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),e.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),e.jsx("span",{className:"text-sm",children:g("Loading logs...")})]}):J.length===0?e.jsx("div",{className:"py-8 text-center text-muted-foreground/70",children:g(h?"Waiting for agent output...":"No logs recorded for this session.")}):e.jsx(Xe,{children:e.jsx(He,{logs:J,downloadSessionId:t,isOutputActive:E,lastExitAt:ne,onUserToggleDetails:se,scrollElementRef:G})})})}),!H&&e.jsxs("button",{type:"button",onClick:()=>M(),className:"absolute bottom-3 left-1/2 z-10 flex -translate-x-1/2 items-center gap-1.5 rounded-full border border-border bg-background/90 px-3 py-1.5 text-xs text-muted-foreground shadow-md backdrop-blur-sm transition-all hover:bg-background hover:text-foreground","aria-label":g("Scroll to bottom"),children:[e.jsx(at,{size:14}),e.jsx("span",{children:g("Back to bottom")})]})]}),Y.length>0&&e.jsx("div",{className:"shrink-0 border-t border-border/60 bg-background px-6 pb-1 pt-2",children:e.jsx("div",{className:"mx-auto max-w-4xl",children:e.jsx(et,{todos:Y})})}),e.jsx("div",{className:"z-10 w-full shrink-0 border-t border-transparent bg-background p-6 pb-6 pt-2",onDragOver:Me,onDragLeave:Re,onDrop:qe,children:e.jsxs("div",{className:"mx-auto max-w-4xl",children:[e.jsx(ot,{sessionId:t}),ee?e.jsx("div",{className:"mb-2 text-sm text-destructive",children:ee}):null,e.jsxs("div",{ref:W,className:j("relative rounded-xl border bg-background transition-colors duration-200 hover:border-ring/40 focus-within:border-ring/60",X?"border-info bg-info/5":"border-border"),children:[e.jsx(Je,{files:ae,onRemove:xe}),e.jsx("textarea",{ref:V,value:I,onChange:Ee,onPaste:Pe,onKeyDown:c=>{c.key==="Enter"&&!c.shiftKey&&!c.repeat&&!c.nativeEvent.isComposing&&c.nativeEvent.keyCode!==229&&(c.preventDefault(),be())},rows:1,placeholder:g(X?"Drop files here...":t&&!h?"Continue conversation...":"Message Agent..."),className:"w-full resize-none border-none bg-transparent px-4 pb-2 pt-4 text-sm leading-relaxed text-foreground placeholder-muted-foreground/70 focus:outline-none",style:{minHeight:"60px",maxHeight:"300px"}}),e.jsx("input",{ref:te,type:"file",multiple:!0,className:"hidden",onChange:Le}),e.jsxs("div",{className:"flex items-center justify-between px-2 pb-2 pt-1",children:[e.jsx("div",{className:"flex items-center gap-1",children:e.jsx("button",{type:"button",onClick:()=>te.current?.click(),disabled:d,className:"rounded-lg p-2 text-muted-foreground/70 transition-colors hover:bg-muted hover:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",title:g("Upload file"),children:e.jsx(tt,{size:18})})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(it,{providers:b,currentProviderId:L,agentType:w,runtimeType:p,onSelect:De}),e.jsx(lt,{usage:fe}),he&&h&&!I.trim()&&!a?e.jsx("button",{type:"button",onClick:Te,disabled:o||q,className:"rounded-lg bg-destructive p-2 text-white transition-all duration-200 hover:bg-destructive/90 disabled:opacity-50",title:g("Stop"),children:e.jsx(Oe,{size:14})}):e.jsx("button",{type:"button",onClick:be,disabled:!I.trim()&&!a||d||S||o||q||!!N,className:j("rounded-lg p-2 transition-all duration-200",(I.trim()||a)&&!d&&!S&&!o&&!q&&!N?"bg-primary text-primary-foreground hover:bg-primary/90":"cursor-not-allowed bg-transparent text-muted-foreground/50"),title:g("Send"),children:e.jsx(dt,{size:18})})]})]})]})]})})]})}function vt(t=50){return ke({queryKey:f.conversations.list({limit:t}),queryFn:()=>_.get("/conversations",{params:{limit:String(t)}})})}function bt(t){return ke({queryKey:f.conversations.detail(t??""),queryFn:()=>_.get(`/conversations/${t}`),enabled:!!t})}function yt(){const t=Z();return ce({mutationFn:n=>_.post("/conversations",n),onSuccess:n=>{t.setQueryData(f.conversations.detail(n.id),n),t.invalidateQueries({queryKey:f.conversations.all}),t.invalidateQueries({queryKey:f.sessions.detail(n.sessionId)})}})}function jt(){const t=Z();return ce({mutationFn:({id:n,...i})=>_.post(`/conversations/${n}/message`,i),onSuccess:n=>{t.setQueryData(f.conversations.detail(n.id),n),t.invalidateQueries({queryKey:f.conversations.all}),t.invalidateQueries({queryKey:f.sessions.detail(n.sessionId)})}})}function Nt(){const t=Z();return ce({mutationFn:n=>_.post(`/conversations/${n}/stop`),onSuccess:n=>{t.setQueryData(f.conversations.detail(n.id),n),t.invalidateQueries({queryKey:f.conversations.all}),t.invalidateQueries({queryKey:f.sessions.detail(n.sessionId)})},onSettled:(n,i,x)=>{const w=t.getQueryData(f.conversations.detail(x)),p=n?.sessionId??w?.sessionId;t.invalidateQueries({queryKey:f.conversations.detail(x)}),p&&(t.invalidateQueries({queryKey:f.sessions.detail(p)}),t.invalidateQueries({queryKey:f.sessions.runtime(p)}))}})}function wt(){const t=Z();return ce({mutationFn:n=>_.delete(`/conversations/${n}`),onSuccess:(n,i)=>{t.removeQueries({queryKey:f.conversations.detail(i)}),t.invalidateQueries({queryKey:f.conversations.all})}})}const Ct=3e4,Ie="agent-tower:conversation-read-times";function kt(){try{const t=window.localStorage.getItem(Ie);if(!t)return{};const n=JSON.parse(t);return!n||typeof n!="object"||Array.isArray(n)?{}:Object.fromEntries(Object.entries(n).map(([i,x])=>[i,typeof x=="number"?x:Number(x)]).filter(i=>Number.isFinite(i[1])))}catch{return{}}}function Ne(t){try{window.localStorage.setItem(Ie,JSON.stringify(t))}catch{}}function we(t){const n=t.lastActiveAt??t.updatedAt??t.createdAt;if(!n)return 0;const i=new Date(n).getTime();return Number.isFinite(i)?i:0}function St(t=Ct){const[,n]=r.useState(0);r.useEffect(()=>{const i=setInterval(()=>n(x=>x+1),t);return()=>clearInterval(i)},[t])}function ge(t){return t===A.RUNNING||t===A.PENDING}function Ae(t){if(!t)return"";const n=new Date(t);if(Number.isNaN(n.getTime()))return"";const i=Math.max(0,Math.floor((Date.now()-n.getTime())/1e3));return i<60?le("{count}s ago",{count:i}):i<3600?le("{count}m ago",{count:Math.floor(i/60)}):i<86400?le("{count}h ago",{count:Math.floor(i/3600)}):le("{count}d ago",{count:Math.floor(i/86400)})}function It(t,n){switch(t){case A.RUNNING:return n("Running");case A.PENDING:return n("Starting");case A.COMPLETED:return n("Completed");case A.FAILED:return n("Failed");case A.CANCELLED:return n("Stopped");default:return t}}function Ce({className:t,pulseClassName:n}){return e.jsxs("span",{className:"relative inline-flex h-2 w-2",children:[e.jsx("span",{className:j("absolute inline-flex h-full w-full animate-ping rounded-full",n)}),e.jsx("span",{className:j("relative inline-flex h-2 w-2 rounded-full",t)})]})}function At({status:t,unread:n}){return ge(t)?e.jsx(Ce,{className:"bg-success",pulseClassName:"bg-success/70"}):n?e.jsx(Ce,{className:"bg-warning",pulseClassName:"bg-warning/70"}):null}function Dt({conversation:t,selected:n,onSelect:i,onDelete:x,disabled:w,unread:p}){const{t:u}=de(),b=Ae(t.lastActiveAt??t.createdAt),v=ge(t.status)||p;return e.jsxs("div",{className:j("group ml-4 mr-2 flex items-center rounded-md transition-colors",n?"bg-accent":"hover:bg-accent/50"),children:[e.jsxs("button",{type:"button",onClick:i,title:t.title,className:"flex min-w-0 flex-1 animate-task-enter items-center gap-2.5 rounded-md px-2 py-2 text-left text-sm",children:[e.jsx("span",{className:"flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:e.jsx(pe,{size:14,className:"text-muted-foreground"})}),e.jsx("span",{className:j("min-w-0 flex-1 truncate",n?"font-medium text-foreground":"text-foreground/90"),children:t.title}),v?e.jsx("span",{className:"flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:e.jsx(At,{status:t.status,unread:p})}):e.jsx("span",{className:"flex w-14 shrink-0 items-center justify-end text-[11px] tabular-nums text-muted-foreground/50",children:e.jsx("span",{className:"truncate group-hover:hidden",children:b})})]}),e.jsx("button",{type:"button",onClick:C=>{C.stopPropagation(),x()},disabled:w,className:"mr-1 hidden shrink-0 rounded-md p-1.5 text-muted-foreground hover:bg-background hover:text-destructive disabled:opacity-50 group-hover:flex",title:u("Delete"),children:e.jsx(xt,{size:14})})]})}function Et({isOpen:t,conversations:n,onClose:i,onSelectConversation:x}){const{t:w}=de(),[p,u]=r.useState(""),[b,v]=r.useState(0),C=r.useRef(null);r.useEffect(()=>{t&&(u(""),v(0))},[t]);const k=r.useMemo(()=>{const o=p.trim().toLowerCase();return o?n.filter(m=>m.title.toLowerCase().includes(o)).slice(0,50):n.slice(0,12)},[n,p]);r.useEffect(()=>{v(0)},[p]),r.useEffect(()=>{C.current?.children[b]?.scrollIntoView({block:"nearest"})},[b]);const D=r.useCallback(o=>{x(o),i()},[i,x]),O=r.useCallback(o=>{if(o.key==="Escape"){o.preventDefault(),i();return}if(o.key==="ArrowDown"){o.preventDefault(),v(m=>Math.min(m+1,k.length-1));return}if(o.key==="ArrowUp"){o.preventDefault(),v(m=>Math.max(m-1,0));return}if(o.key==="Enter"&&!o.nativeEvent.isComposing){o.preventDefault();const m=k[b];m&&D(m)}},[b,D,i,k]);if(!t)return null;const S=p.trim().length>0;return e.jsxs("div",{className:"fixed inset-0 z-90",role:"dialog","aria-modal":"true",children:[e.jsx("div",{className:"absolute inset-0 bg-black/20",onClick:i}),e.jsxs("div",{className:"absolute left-1/2 top-[18vh] w-[min(560px,calc(100vw-2rem))] -translate-x-1/2 overflow-hidden rounded-xl border border-border bg-popover shadow-lg animate-in fade-in zoom-in-95 duration-100",children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/60 px-4",children:[e.jsx(Se,{size:15,className:"shrink-0 text-muted-foreground/70"}),e.jsx("input",{value:p,onChange:o=>u(o.target.value),onKeyDown:O,placeholder:w("Search conversations..."),"aria-label":w("Search conversations..."),autoFocus:!0,className:"flex-1 border-none bg-transparent py-3 text-sm text-foreground placeholder-muted-foreground/60 focus:outline-none"})]}),k.length>0?e.jsxs(e.Fragment,{children:[S?null:e.jsx("div",{className:"px-4 pb-1 pt-2.5 text-[11px] font-medium text-muted-foreground/70",children:w("Recent conversations")}),e.jsx("div",{ref:C,className:"max-h-[46vh] overflow-y-auto pb-1.5 pt-0.5 scrollbar-app-thin",children:k.map((o,m)=>e.jsxs("button",{type:"button",onClick:()=>D(o),onMouseEnter:()=>v(m),className:j("flex w-full items-center gap-2.5 px-4 py-2 text-left transition-colors",m===b&&"bg-accent"),children:[e.jsx(pe,{size:14,className:"shrink-0 text-muted-foreground"}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground/90",title:o.title,children:o.title}),e.jsx("span",{className:"shrink-0 text-xs tabular-nums text-muted-foreground/60",children:Ae(o.lastActiveAt??o.createdAt)})]},o.id))})]}):e.jsx("div",{className:"px-4 py-8 text-center text-sm text-muted-foreground/70",children:w("No matching conversations")})]})]})}function $t(){const{t}=de();St();const n=Ke(),{usesIntegratedTitlebar:i,desktopPlatform:x,hasMacTrafficLights:w}=Qe(),p=i&&x==="win32",{conversationId:u}=Fe(),b=Z(),[v,C]=r.useState(""),[k,D]=r.useState("idle"),[O,S]=r.useState(null),[o,m]=r.useState(!1),[ue,g]=r.useState(!1),[I,K]=r.useState(kt),[L,Q]=r.useState(()=>new Set),{data:N=[],isLoading:X}=vt(),{data:$,isLoading:ee}=bt(u),{data:F=[],isLoading:V}=ft(),te=yt(),W=jt(),P=Nt(),G=wt(),l=$??N.find(s=>s.id===u)??null,H=r.useMemo(()=>F.map(s=>{const a=We(s);return{id:s.provider.id,name:s.provider.name,agentType:s.provider.agentType,available:!a,permissionMode:s.provider.executionPermission,reason:a}}),[F]),M=!!u,se=M||o,R=r.useCallback(s=>{b.invalidateQueries({queryKey:f.conversations.all}),s&&b.invalidateQueries({queryKey:f.conversations.detail(s)})},[b]),me=r.useCallback(()=>{R(u)},[u,R]),E=r.useCallback(s=>{if(Q(d=>{if(!d.has(s.id))return d;const h=new Set(d);return h.delete(s.id),h}),s.status!==A.COMPLETED)return;const a=Math.max(Date.now(),we(s));K(d=>{if(d[s.id]&&d[s.id]>=a)return d;const h={...d,[s.id]:a};return Ne(h),h})},[]),ne=r.useCallback(s=>{Q(a=>{if(a.has(s))return a;const d=new Set(a);return d.add(s),d})},[]),J=r.useCallback(s=>{Q(a=>{if(!a.has(s))return a;const d=new Set(a);return d.delete(s),d}),K(a=>{if(!(s in a))return a;const d={...a};return delete d[s],Ne(d),d})},[]),re=r.useMemo(()=>{const s=new Map;for(const a of N)s.set(a.sessionId,a);return l&&s.set(l.sessionId,l),s},[l,N]),U=r.useCallback(s=>s.status!==A.COMPLETED?!1:L.has(s.id)?!0:we(s)>(I[s.id]??0),[I,L]);r.useEffect(()=>{l||v||C(H.find(s=>s.available)?.id??"")},[l,v,H]),r.useEffect(()=>{l?.providerId&&C(l.providerId)},[l?.providerId]),r.useEffect(()=>{u&&m(!1)},[u]),r.useEffect(()=>{l&&E(l)},[l,E]),r.useEffect(()=>{const s=Ue.connect(),a=d=>{const h=re.get(d.sessionId);if(h){if(R(h.id),d.status!==A.COMPLETED){E(h);return}if(h.id===u){E(h);return}ne(h.id)}};return s.on(je.SESSION_COMPLETED,a),()=>{s.off(je.SESSION_COMPLETED,a)}},[u,re,R,E,ne]);const Y=()=>{S(null),m(!0),n("/conversations")},fe=()=>{m(!1),n("/conversations")},ae=r.useCallback(s=>{E(s),m(!1),n(`/conversations/${s.id}`)},[E,n]),T=async s=>{if(!(!s.providerId||!s.title.trim()||k!=="idle")){D("starting-session"),S(null);try{const a=await te.mutateAsync({prompt:s.title.trim(),providerId:s.providerId,attachmentIds:s.attachmentIds});C(s.providerId),m(!1),n(`/conversations/${a.id}`)}catch(a){S(a instanceof Error?a.message:t("Failed to start. Please try again."))}finally{D("idle")}}},xe=async s=>{!l||!s.message.trim()||W.isPending||await W.mutateAsync({id:l.id,message:s.message,providerId:s.providerId||v||void 0,attachmentIds:s.attachmentIds})},oe=async()=>{!l||P.isPending||await P.mutateAsync(l.id)},ie=async s=>{window.confirm(t("Delete this conversation?"))&&(await G.mutateAsync(s),J(s),u===s&&(m(!1),n("/conversations")))};return e.jsxs("div",{className:"flex h-dvh flex-col overflow-hidden bg-sidebar text-sm text-foreground",children:[e.jsxs("header",{className:j("flex h-12 shrink-0 items-center justify-between bg-sidebar px-4",i&&"app-region-drag",p&&"pr-[150px]"),children:[e.jsxs("div",{className:j("flex min-w-0 items-center gap-2",w&&"pl-[72px]"),children:[e.jsx(ct,{}),e.jsx("span",{className:"mx-1.5 select-none text-muted-foreground/40",children:"/"}),e.jsx("span",{className:"truncate text-sm font-medium text-foreground/90",children:t("Conversation")})]}),e.jsx("button",{type:"button",onClick:()=>_e.getState().openSettings(),className:j("rounded-md p-1.5 text-muted-foreground/70 transition-colors hover:bg-accent hover:text-foreground",i&&"app-region-no-drag"),title:t("Settings"),children:e.jsx(Be,{size:16})})]}),e.jsxs("div",{className:"flex min-h-0 flex-1 overflow-hidden",children:[e.jsxs("aside",{className:j("h-full w-full shrink-0 flex-col bg-sidebar md:flex md:w-[320px]",se?"hidden md:flex":"flex"),children:[e.jsxs("div",{className:"shrink-0 px-2 pb-1 pt-2",children:[e.jsxs("button",{type:"button",onClick:Y,className:j("flex w-full items-center gap-2.5 rounded-md px-2 py-2 text-sm transition-colors",o?"bg-accent text-foreground":"text-foreground/80 hover:bg-accent/50"),title:t("New Conversation"),children:[e.jsx(ut,{size:16,className:"text-muted-foreground"}),e.jsx("span",{children:t("New Conversation")})]}),e.jsxs("button",{type:"button",onClick:()=>n("/"),className:"flex w-full items-center gap-2.5 rounded-md px-2 py-2 text-sm text-foreground/80 transition-colors hover:bg-accent/50",title:t("Tasks"),children:[e.jsx(pt,{size:16,className:"text-muted-foreground"}),e.jsx("span",{children:t("Tasks")})]}),e.jsxs("button",{type:"button",onClick:()=>g(!0),className:"flex w-full items-center gap-2.5 rounded-md px-2 py-2 text-sm text-foreground/80 transition-colors hover:bg-accent/50",title:t("Search"),children:[e.jsx(Se,{size:16,className:"text-muted-foreground"}),e.jsx("span",{children:t("Search")})]})]}),e.jsx("div",{className:"relative min-h-0 flex-1 overflow-y-auto scrollbar-app-thin pb-4 pt-3",children:X?e.jsx("div",{className:"px-4 py-4 text-sm text-muted-foreground",children:t("Loading...")}):N.length===0?e.jsxs("div",{className:"flex h-full select-none flex-col items-center justify-center px-6 text-center",children:[e.jsx(pe,{size:36,className:"mb-3 text-muted-foreground/40",strokeWidth:1.5}),e.jsx("p",{className:"mb-4 text-sm text-muted-foreground",children:t("No conversations")}),e.jsx("button",{type:"button",onClick:Y,className:"rounded-md bg-brand px-3.5 py-1.5 text-xs font-medium text-brand-foreground transition-colors hover:bg-brand/90",children:t("New Conversation")})]}):e.jsxs("div",{className:"mb-2",children:[e.jsxs("div",{className:"flex w-full items-center gap-1.5 px-4 py-1.5 text-xs font-medium text-muted-foreground",children:[e.jsx("span",{className:"flex-1 text-left",children:t("History")}),e.jsx("span",{className:"text-[11px] font-normal tabular-nums text-muted-foreground/50",children:N.length})]}),e.jsx("div",{className:"mt-0.5 flex min-h-[40px] flex-col rounded-md",children:N.map(s=>e.jsx(Dt,{conversation:s,selected:s.id===u,disabled:G.isPending,unread:s.id!==u&&U(s),onSelect:()=>ae(s),onDelete:()=>ie(s.id)},s.id))})]})}),e.jsx("div",{className:"flex items-center justify-between border-t border-border/60 px-4 py-3 text-xs text-muted-foreground/70",children:e.jsxs("span",{children:[t("Conversations")," · ",N.length]})})]}),e.jsxs("main",{className:j("min-w-0 flex-1 flex-col bg-background md:mb-2 md:mr-2 md:overflow-hidden md:rounded-xl md:border md:border-border/50",se?"flex":"hidden md:flex"),children:[e.jsx("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-border/60 px-4 md:px-5",children:e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[M||o?e.jsx("button",{type:"button",className:"rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground md:hidden",onClick:fe,title:t("Back"),children:e.jsx($e,{size:17})}):null,e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm font-semibold",children:l?.title??t("New Conversation")}),l?e.jsxs("div",{className:"mt-0.5 truncate text-xs text-muted-foreground",children:[It(l.status,t),l.directoryName?` · ${l.directoryName}`:""]}):null]})]})}),!l&&M?e.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center px-4 text-sm text-muted-foreground",children:t(ee?"Loading...":"Conversation not found")}):l?e.jsx(gt,{sessionId:l.sessionId,sessionStatus:l.status,sessionStartedAt:l.createdAt,sessionEndedAt:ge(l.status)?null:l.lastActiveAt??l.updatedAt,agentType:l.agentType,runtimeType:l.runtimeType,providerId:v||l.providerId,providers:F,initialTokenUsage:l.tokenUsage,onProviderChange:C,onSend:xe,onStop:oe,onExit:me,isSending:W.isPending,isStopping:P.isPending}):e.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-y-auto px-4 pb-[10vh] md:px-8",children:e.jsxs("div",{className:"w-full max-w-2xl animate-[fadeInUp_0.5s_cubic-bezier(0.16,1,0.3,1)]",children:[e.jsx("h1",{className:"mb-8 max-w-full break-words text-center text-3xl leading-tight tracking-tight text-foreground",children:t("需要我帮你做点什么?")}),e.jsx(mt,{variant:"conversation",projects:[],providers:H,isProvidersLoading:V,defaultProviderId:v,createStep:k,placeholder:"Ask a question...",submitLabel:"Start",pendingLabel:"Starting...",submitTitle:"Start",onSubmit:async({title:s,providerId:a,attachmentIds:d})=>{await T({title:s,providerId:a,attachmentIds:d})}}),O?e.jsx("div",{className:"mt-3 rounded-lg border border-destructive/15 bg-destructive/5 px-3 py-2 text-sm text-destructive",children:O}):null]})})]})]}),e.jsx(Et,{isOpen:ue,conversations:N,onClose:()=>g(!1),onSelectConversation:ae})]})}export{$t as ConversationPage};
@@ -0,0 +1 @@
1
+ import{k as F,o as ye,n as Ce,q as D,p as ue,t as Ct,aa as St,m as at,r as a,V as Tt,W as ce,u as pe,j as e,Q as ve,l as w,ag as Je,Z as Et,E as Mt,F as It,_ as et,X as Rt,D as At,ah as _t,ai as Lt}from"./index-_mroLJ3-.js";import{S as tt,T as Pe,R as le,m as de,c as we,W as L,u as Ot,A as Pt}from"./mermaid-NOHMQCX5-K1Nm51AP.js";import{g as Dt,a as zt,l as De}from"./ExecutionPermissionSelector-Cu7Z72Yk.js";import{A as be}from"./AgentLogo-CoAT8dNB.js";import{C as me}from"./chevron-down-Dz61D9cJ.js";import{C as te}from"./check-C_RQ5zOf.js";import{d as $t,F as qt}from"./use-projects-BdSJ4zPv.js";import{M as st}from"./MemberAvatar-BQA5sE4L.js";import{u as Ft}from"./use-providers-BlqWIGOP.js";import{P as Gt}from"./trash-2-DdOhDOCv.js";import{P as Ut}from"./useNormalizedLogs-B_LoDoiT.js";const Wt=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],sn=F("arrow-down",Wt);const Bt=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Kt=F("arrow-up",Bt);const Ht=[["path",{d:"m7 6 5 5 5-5",key:"1lc07p"}],["path",{d:"m7 13 5 5 5-5",key:"1d48rs"}]],Qt=F("chevrons-down",Ht);const Vt=[["path",{d:"m17 11-5-5-5 5",key:"e8nh98"}],["path",{d:"m17 18-5-5-5 5",key:"2avn1x"}]],Yt=F("chevrons-up",Vt);const Xt=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],Zt=F("gauge",Xt);const Jt=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],es=F("git-branch",Jt);const ts=[["path",{d:"M5 12h14",key:"1ays0h"}]],ss=F("minus",ts);const ns=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],nn=F("search",ns);const rs=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],os=F("shield-alert",rs);const as=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],is=F("shield",as);const cs=[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}]],ls=F("signal-high",cs);const ds=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],rn=F("square-pen",ds);const ms=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],us=F("zap",ms);function it(t){const s=ye(),r=at({queryKey:D.sessions.runtime(t),queryFn:()=>ue.get(`/sessions/${t}/runtime`),enabled:!!t});return a.useEffect(()=>{if(!t)return;const o=Tt.connect(),c=g=>{g.sessionId===t&&s.invalidateQueries({queryKey:D.sessions.runtime(t)})},l=g=>{g.sessionId===t&&s.setQueryData(D.sessions.runtime(t),g.state)},f=()=>{s.invalidateQueries({queryKey:D.sessions.runtime(t)})};return o.on(ce.SESSION_PERMISSION_REQUESTED,c),o.on(ce.SESSION_PERMISSION_INVALIDATED,c),o.on(ce.SESSION_RUNTIME_STATE_CHANGED,l),o.on("connect",f),()=>{o.off(ce.SESSION_PERMISSION_REQUESTED,c),o.off(ce.SESSION_PERMISSION_INVALIDATED,c),o.off(ce.SESSION_RUNTIME_STATE_CHANGED,l),o.off("connect",f)}},[t,s]),r}function ps(t){return t==="RUNNING"||t==="AWAITING_PERMISSION"||t==="CANCELLING"}function fs(t){return t===tt.RUNNING||t===tt.PENDING}function on(t,s){const{data:r}=it(t);return{runtimeState:r,isActive:fs(s)||ps(r?.turnState),isCancelling:r?.turnState==="CANCELLING"}}function xs(){const t=ye();return Ce({mutationFn:({sessionId:s,requestId:r,optionId:o})=>ue.post(`/sessions/${s}/permissions/${r}/resolve`,{optionId:o}),onSettled:(s,r,o)=>{t.invalidateQueries({queryKey:D.sessions.runtime(o.sessionId)})}})}function an(){const t=ye();return Ce({mutationFn:s=>ue.post(`/sessions/${s}/start`),onSuccess:(s,r)=>{t.invalidateQueries({queryKey:D.sessions.detail(r)}),t.invalidateQueries({queryKey:D.tasks.all})}})}const hs=45e3;function cn(){const t=ye();return Ce({mutationFn:async s=>{try{return await ue.post(`/sessions/${s}/stop`,void 0,{signal:AbortSignal.timeout(hs)})}catch(r){throw r instanceof DOMException&&r.name==="TimeoutError"?new Error("Stop request timed out before the server answered. The session may still be stopping; refresh the status and retry."):r}},onError:s=>{Ct.error(St("Failed to stop session. Refreshing status; check it and try again."),{description:s instanceof Error?s.message:void 0})},onSettled:(s,r,o)=>{t.setQueryData(D.sessions.runtime(o),c=>c?.turnState==="CANCELLING"?{...c,turnState:"IDLE"}:c),Promise.allSettled([t.invalidateQueries({queryKey:D.sessions.detail(o)}),t.invalidateQueries({queryKey:D.sessions.runtime(o)}),t.invalidateQueries({queryKey:D.workspaces.all}),t.invalidateQueries({queryKey:D.tasks.all})])}})}function ln(){const t=ye();return Ce({mutationFn:({id:s,message:r,providerId:o})=>ue.post(`/sessions/${s}/message`,{message:r,providerId:o}),onSuccess:()=>{t.invalidateQueries({queryKey:D.workspaces.all}),t.invalidateQueries({queryKey:D.tasks.all})}})}function dn({sessionId:t,compact:s=!1}){const{t:r}=pe(),{data:o}=it(t),c=xs(),l=o?.pendingPermissions[0],f=l?.requestId,g=c.reset;return a.useEffect(()=>{g()},[f,g]),l?e.jsx("div",{className:w("mb-2 border-l-2 border-warning bg-warning/5 px-3 py-2.5",s&&"px-2.5 py-2"),children:e.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[e.jsx(os,{className:"mt-0.5 h-4 w-4 shrink-0 text-warning","aria-hidden":"true"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:r("Permission required")}),e.jsx("div",{className:"mt-0.5 break-words text-xs text-muted-foreground",children:l.toolSummary||l.toolName||r("The agent needs approval to continue.")}),l.actionDetails?e.jsx("pre",{className:"mt-2 max-h-48 overflow-auto whitespace-pre-wrap break-all text-xs",children:l.actionDetails}):null,e.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:l.options.map(p=>e.jsxs("button",{type:"button",disabled:c.isPending,onClick:()=>c.mutate({sessionId:t,requestId:l.requestId,optionId:p.optionId}),className:w("inline-flex min-h-8 items-center gap-1.5 border px-3 text-xs font-medium transition-colors disabled:opacity-50",p.kind.startsWith("reject")?"border-destructive/30 text-destructive hover:bg-destructive/10":"border-border bg-background text-foreground hover:bg-muted"),children:[c.isPending&&c.variables?.requestId===l.requestId&&c.variables.optionId===p.optionId?e.jsx(ve,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":"true"}):null,r(p.name)]},p.optionId))}),c.error?e.jsx("div",{className:"mt-1.5 text-xs text-destructive",role:"alert",children:c.error.message}):null]})]})}):null}function ke(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:t.toString()}function gs(t){return t>=.9?"text-red-500":t>=.7?"text-amber-500":"text-neutral-400"}function mn({usage:t,tooltipSide:s="top"}){const{t:r}=pe();if(!t)return null;const o=t.modelContextWindow,c=o?t.totalTokens/o:0,l=o?Math.min(Math.round(c*100),100):null,f=o?gs(c):"text-neutral-400",g=o?e.jsx("span",{children:r("上下文: {used} / {max} tokens",{used:ke(t.totalTokens),max:ke(o)})}):e.jsx("span",{children:r("已使用: {used} tokens",{used:ke(t.totalTokens)})});return e.jsx(Pe,{content:g,side:s,children:e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1.5 text-xs rounded-lg hover:bg-neutral-100 transition-colors cursor-default select-none",children:[e.jsx(Zt,{size:14,className:f}),e.jsxs("span",{className:`tabular-nums ${f}`,children:[ke(t.totalTokens),l!==null&&e.jsxs("span",{className:"text-neutral-300 ml-0.5",children:["/ ",l,"%"]})]})]})})}const bs={damping:.7,stiffness:.05,mass:1.25},vs=70,ys=1e3/60,Ns=350;let Se=!1;globalThis.document?.addEventListener("mousedown",()=>{Se=!0});globalThis.document?.addEventListener("mouseup",()=>{Se=!1});globalThis.document?.addEventListener("click",()=>{Se=!1});const un=(t={})=>{const[s,r]=a.useState(!1),[o,c]=a.useState(t.initial!==!1),[l,f]=a.useState(!1),g=a.useRef(null);g.current=t;const p=a.useCallback(()=>{if(!Se)return!1;const h=window.getSelection();if(!h||!h.rangeCount)return!1;const v=h.getRangeAt(0);return v.commonAncestorContainer.contains(x.current)||x.current?.contains(v.commonAncestorContainer)},[]),b=a.useCallback(h=>{n.isAtBottom=h,c(h)},[]),N=a.useCallback(h=>{n.escapedFromLock=h,r(h)},[]),n=a.useMemo(()=>{let h;return{escapedFromLock:s,isAtBottom:o,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return x.current?.scrollTop??0},set scrollTop(v){x.current&&(x.current.scrollTop=v,n.ignoreScrollToTop=x.current.scrollTop)},get targetScrollTop(){return!x.current||!R.current?0:x.current.scrollHeight-1-x.current.clientHeight},get calculatedTargetScrollTop(){if(!x.current||!R.current)return 0;const{targetScrollTop:v}=this;if(!t.targetScrollTop)return v;if(h?.targetScrollTop===v)return h.calculatedScrollTop;const y=Math.max(Math.min(t.targetScrollTop(v,{scrollElement:x.current,contentElement:R.current}),v),0);return h={targetScrollTop:v,calculatedScrollTop:y},requestAnimationFrame(()=>{h=void 0}),y},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=vs}}},[]),j=a.useCallback((h={})=>{typeof h=="string"&&(h={animation:h}),h.preserveScrollPosition||b(!0);const v=Date.now()+(Number(h.wait)||0),y=Oe(g.current,h.animation),{ignoreEscapes:I=!1}=h;let S,z=n.calculatedTargetScrollTop;h.duration instanceof Promise?h.duration.finally(()=>{S=Date.now()}):S=v+(h.duration??0);const T=async()=>{const G=new Promise(requestAnimationFrame).then(()=>{if(!n.isAtBottom)return n.animation=void 0,!1;const{scrollTop:$}=n,B=performance.now(),se=(B-(n.lastTick??B))/ys;if(n.animation||(n.animation={behavior:y,promise:G,ignoreEscapes:I}),n.animation.behavior===y&&(n.lastTick=B),p()||v>Date.now())return T();if($<Math.min(z,n.calculatedTargetScrollTop)){if(n.animation?.behavior===y){if(y==="instant")return n.scrollTop=n.calculatedTargetScrollTop,T();n.velocity=(y.damping*n.velocity+y.stiffness*n.scrollDifference)/y.mass,n.accumulated+=n.velocity*se,n.scrollTop+=n.accumulated,n.scrollTop!==$&&(n.accumulated=0)}return T()}return S>Date.now()?(z=n.calculatedTargetScrollTop,T()):(n.animation=void 0,n.scrollTop<n.calculatedTargetScrollTop?j({animation:Oe(g.current,g.current.resize),ignoreEscapes:I,duration:Math.max(0,S-Date.now())||void 0}):n.isAtBottom)});return G.then($=>(requestAnimationFrame(()=>{n.animation||(n.lastTick=void 0,n.velocity=0)}),$))};return h.wait!==!0&&(n.animation=void 0),n.animation?.behavior===y?n.animation.promise:T()},[b,p,n]),d=a.useCallback(()=>{N(!0),b(!1)},[N,b]),u=a.useCallback(({target:h})=>{if(h!==x.current)return;const{scrollTop:v,ignoreScrollToTop:y}=n;let{lastScrollTop:I=v}=n;n.lastScrollTop=v,n.ignoreScrollToTop=void 0,y&&y>v&&(I=y),f(n.isNearBottom),setTimeout(()=>{if(n.resizeDifference||v===y)return;if(p()){N(!0),b(!1);return}const S=v>I,z=v<I;if(n.animation?.ignoreEscapes){n.scrollTop=I;return}z&&(N(!0),b(!1)),S&&N(!1),!n.escapedFromLock&&n.isNearBottom&&b(!0)},1)},[N,b,p,n]),C=a.useCallback(({target:h,deltaY:v})=>{let y=h;for(;!["scroll","auto"].includes(getComputedStyle(y).overflow);){if(!y.parentElement)return;y=y.parentElement}y===x.current&&v<0&&x.current.scrollHeight>x.current.clientHeight&&!n.animation?.ignoreEscapes&&(N(!0),b(!1))},[N,b,n]),x=nt(h=>{x.current?.removeEventListener("scroll",u),x.current?.removeEventListener("wheel",C),h?.addEventListener("scroll",u,{passive:!0}),h?.addEventListener("wheel",C,{passive:!0})},[]),R=nt(h=>{if(n.resizeObserver?.disconnect(),!h)return;let v;n.resizeObserver=new ResizeObserver(([y])=>{const{height:I}=y.contentRect,S=I-(v??I);if(n.resizeDifference=S,n.scrollTop>n.targetScrollTop&&(n.scrollTop=n.targetScrollTop),f(n.isNearBottom),S>=0){const z=Oe(g.current,v?g.current.resize:g.current.initial);j({animation:z,wait:!0,preserveScrollPosition:!0,duration:z==="instant"?void 0:Ns})}else n.isNearBottom&&(N(!1),b(!0));v=I,requestAnimationFrame(()=>{setTimeout(()=>{n.resizeDifference===S&&(n.resizeDifference=0)},1)})}),n.resizeObserver?.observe(h)},[]);return{contentRef:R,scrollRef:x,scrollToBottom:j,stopScroll:d,isAtBottom:o||l,isNearBottom:l,escapedFromLock:s,state:n}};function nt(t,s){const r=a.useCallback(o=>(r.current=o,t(o)),s);return r}const Le=new Map;function Oe(...t){const s={...bs};let r=!1;for(const c of t){if(c==="instant"){r=!0;continue}typeof c=="object"&&(r=!1,s.damping=c.damping??s.damping,s.stiffness=c.stiffness??s.stiffness,s.mass=c.mass??s.mass)}const o=JSON.stringify(s);return Le.has(o)||Le.set(o,Object.freeze(s)),r?"instant":Le.get(o)}function pn({providers:t,currentProviderId:s,agentType:r,runtimeType:o,onSelect:c}){const{t:l}=pe(),[f,g]=a.useState(!1),p=a.useRef(null),b=o===le.ACP?le.ACP:le.CLI,N=t.filter(u=>String(u.provider.agentType)===r&&(u.provider.runtimeType===le.ACP?le.ACP:le.CLI)===b),n=t.find(u=>u.provider.id===s),j=Dt(t,s),d=j?e.jsx("span",{role:"alert",className:"block break-words text-[11px] leading-snug text-destructive",children:l(j)}):null;return a.useEffect(()=>{function u(C){p.current&&!p.current.contains(C.target)&&g(!1)}if(f)return document.addEventListener("mousedown",u),()=>document.removeEventListener("mousedown",u)},[f]),N.length===0||N.length===1&&N[0].provider.id===s?e.jsxs("div",{className:"min-w-[112px] max-w-[min(46vw,240px)] px-2 py-1.5 text-xs text-neutral-400 select-none cursor-default",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(be,{agentType:n?.provider.agentType??r,className:"size-3.5 shrink-0"}),e.jsx("span",{className:"min-w-0 truncate",children:n?.provider.name?Je(n.provider.name,12):r})]}),d]}):e.jsxs("div",{className:"relative min-w-[112px] max-w-[min(46vw,240px)]",ref:p,children:[e.jsxs("button",{type:"button",onClick:()=>g(!f),className:"flex max-w-full items-center gap-1 text-xs px-2 py-1.5 rounded-lg transition-colors cursor-pointer hover:bg-neutral-100 text-neutral-400 hover:text-neutral-600",title:`Provider: ${n?.provider.name??r} (click to change)`,children:[e.jsx(be,{agentType:n?.provider.agentType??r,className:"size-3.5"}),e.jsx("span",{className:"min-w-0 truncate",children:n?.provider.name?Je(n.provider.name,12):r}),e.jsx(me,{size:12,className:`shrink-0 transition-transform ${f?"rotate-180":""}`})]}),d?e.jsx("div",{className:"px-2",children:d}):null,f&&e.jsxs("div",{className:"absolute bottom-full right-0 z-50 mb-1 max-h-[min(60vh,320px)] min-w-[160px] max-w-[min(80vw,320px)] overflow-y-auto rounded-lg border border-neutral-200 bg-white py-1 shadow-lg",children:[e.jsx("div",{className:"px-2 py-1 text-xs text-neutral-400 border-b border-neutral-100",children:l("切换渠道")}),N.map(u=>{const C=zt(u),x=u.provider.executionPermission?l("Required permission: {mode}",{mode:l(De[u.provider.executionPermission])}):void 0;return e.jsx("div",{tabIndex:C?0:void 0,role:C?"group":void 0,"aria-label":C?[u.provider.name,x,l(C)].filter(Boolean).join(": "):void 0,className:"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:e.jsxs("button",{type:"button",disabled:!!C,onClick:()=>{c(u.provider.id),g(!1)},className:`disabled:cursor-not-allowed w-full flex items-center justify-between px-3 py-2 text-sm text-left hover:bg-neutral-50 transition-colors ${u.provider.id===s?"bg-blue-50 text-blue-600":"text-neutral-700"}`,children:[e.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[e.jsx(be,{agentType:u.provider.agentType,className:"size-4"}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"block truncate max-w-[200px]",children:u.provider.name}),u.provider.executionPermission?e.jsx("span",{className:"block text-xs",children:l(De[u.provider.executionPermission])}):null,C?e.jsx("span",{className:"block max-w-[240px] break-words text-xs",children:l(C)}):null]}),u.provider.isDefault&&e.jsx("span",{className:"text-xs text-neutral-400",children:l("(默认)")})]}),u.provider.id===s&&e.jsx(te,{size:14,className:"shrink-0"})]})},u.provider.id)})]})]})}function fn(t,s){return a.useMemo(()=>{for(let r=t.length-1;r>=0;r--){const o=t[r];if(o.tokenUsage&&typeof o.tokenUsage.totalTokens=="number"&&o.tokenUsage.totalTokens>0)return{totalTokens:o.tokenUsage.totalTokens,modelContextWindow:o.tokenUsage.modelContextWindow}}return s??null},[t,s])}const ze=[{value:de.URGENT,code:"P0",label:"紧急",className:"bg-destructive/10 text-destructive",iconName:"chevrons-up"},{value:de.HIGH,code:"P1",label:"高",className:"bg-warning/15 text-warning",iconName:"signal-high"},{value:de.NORMAL,code:"P2",label:"普通",className:"bg-muted text-muted-foreground",iconName:"minus"},{value:de.LOW,code:"P3",label:"低",className:"bg-info/10 text-info",iconName:"chevrons-down"}];function ct(t){return ze.find(s=>s.value===t)??ze[2]}function rt({iconName:t,className:s}){switch(t){case"chevrons-up":return e.jsx(Yt,{className:s,"aria-hidden":"true"});case"signal-high":return e.jsx(ls,{className:s,"aria-hidden":"true"});case"chevrons-down":return e.jsx(Qt,{className:s,"aria-hidden":"true"});default:return e.jsx(ss,{className:s,"aria-hidden":"true"})}}function xn({priority:t,className:s}){const r=ct(t);return e.jsx("span",{className:w("inline-flex shrink-0 items-center rounded px-1.5 py-0.5 text-[10px] font-semibold leading-none",r.className,s),title:`${r.code} · ${r.label}`,children:r.code})}function ws({value:t,onChange:s,disabled:r=!1,compact:o=!1}){const{t:c}=pe(),[l,f]=a.useState(!1),g=a.useRef(null),p=ct(t);return a.useEffect(()=>{if(!l)return;const b=N=>{g.current&&!g.current.contains(N.target)&&f(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[l]),e.jsxs("div",{className:"relative",ref:g,children:[e.jsxs("button",{type:"button",disabled:r||!s,onClick:()=>f(b=>!b),"aria-haspopup":"listbox","aria-expanded":l,"aria-label":c("Task priority"),className:w("inline-flex items-center gap-1.5 rounded-md text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 disabled:cursor-not-allowed disabled:opacity-50",o?"px-1.5 py-1":"px-2 py-1.5",p.className),children:[e.jsx(rt,{iconName:p.iconName,className:"size-3.5"}),e.jsx("span",{children:c(p.label)}),s?e.jsx(me,{className:w("size-3 transition-transform",l&&"rotate-180"),"aria-hidden":"true"}):null]}),l&&e.jsx("div",{className:"absolute right-0 top-full z-50 mt-1.5 w-36 rounded-lg border border-border bg-popover p-1 shadow-lg",role:"listbox","aria-label":c("Task priority"),children:ze.map(b=>{const N=b.value===p.value;return e.jsxs("button",{type:"button",role:"option","aria-selected":N,onClick:()=>{s?.(b.value),f(!1)},className:"flex w-full items-center gap-2 rounded-md px-2 py-2 text-left text-xs text-foreground/80 transition-colors hover:bg-accent",children:[e.jsx("span",{className:w("inline-flex size-5 items-center justify-center rounded",b.className),children:e.jsx(rt,{iconName:b.iconName,className:"size-3.5"})}),e.jsxs("span",{className:"flex-1",children:[b.code," · ",c(b.label)]}),N?e.jsx(te,{className:"size-3.5 text-foreground","aria-hidden":"true"}):null]},b.value)})})]})}function ot(t,s,r,o){if(r.filter(f=>f===o).length<=1)return t;const l=r.slice(0,s+1).filter(f=>f===o).length;return`${t} #${l}`}function ks(t){return Object.values(t).filter(Boolean).length}function js({mode:t,setMode:s,selectedTemplateId:r,setSelectedTemplateId:o,selectedMemberPresetIds:c,setSelectedMemberPresetIds:l,disabled:f=!1,compact:g=!1}){const{t:p}=pe(),{preserveDesktopSearch:b}=Et(),[N,n]=a.useState(!1),{data:j}=Ft(),{data:d,isError:u,isFetching:C,isLoading:x,refetch:R}=Mt(),{data:h,isError:v,isFetching:y,isLoading:I,refetch:S}=It(),z=a.useMemo(()=>new Map((j??[]).map(({provider:m,availability:k})=>[m.id,m.name+(k.type==="NOT_FOUND"?p(" (不可用)"):"")])),[j,p]),T=a.useMemo(()=>new Map((d??[]).map(m=>[m.id,m])),[d]),G=a.useMemo(()=>new Map((h??[]).map(m=>[m.id,m])),[h]),$=a.useMemo(()=>c.map(m=>T.get(m)).filter(m=>!!m),[T,c]);a.useEffect(()=>{d!==void 0&&l(m=>{const k=m.filter(O=>T.has(O));return k.length===m.length&&k.every((O,W)=>O===m[W])?m:k})},[d,T,l]),a.useEffect(()=>{h!==void 0&&o(m=>!m||G.has(m)?m:null)},[o,G,h]);const B=m=>{f||o(k=>k===m?null:m)},se=m=>{f||l(k=>[...k,m])},V=m=>{f||l(k=>k.filter((O,W)=>W!==m))},ne=e.jsxs("section",{className:"min-w-0",children:[e.jsx("div",{className:"text-[11px] font-medium text-muted-foreground mb-1.5",children:p("团队模板")}),v?e.jsxs("div",{className:"rounded-lg bg-destructive/10 px-3 py-2.5 text-xs text-destructive",children:[e.jsx("span",{children:p("团队模板加载失败")}),e.jsx("button",{type:"button",onClick:()=>{S()},disabled:f||y,className:"ml-2 underline hover:no-underline",children:p("重试")})]}):I?e.jsxs("div",{className:"flex items-center gap-2 py-3 text-xs text-muted-foreground",children:[e.jsx(ve,{size:12,className:"animate-spin"}),p("加载中...")]}):(h??[]).length===0?e.jsxs("div",{className:"rounded-lg border border-dashed border-border bg-background px-3 py-3 text-xs text-muted-foreground",children:[p("当前没有团队模板"),e.jsx(et,{to:b("/settings/team"),className:"ml-1.5 text-info hover:underline",children:p("去创建")})]}):e.jsx("div",{className:w("space-y-1.5",g&&"sm:grid sm:grid-cols-2 sm:gap-1.5 sm:space-y-0"),children:(h??[]).map(m=>{const k=m.id===r,O=m.members?.length??0,W=m.members?.map(X=>X.memberPresetId)??[],Y=m.members?.slice(0,3).map((X,ae)=>ot(X.memberPreset?.name??X.memberPresetId,ae,W,X.memberPresetId)).join(", ");return e.jsx("button",{type:"button",onClick:()=>B(m.id),disabled:f,className:w("w-full rounded-lg px-3 py-2 text-left border transition-all disabled:cursor-not-allowed disabled:opacity-60",k?"bg-background border-foreground/20 shadow-sm":"bg-background border-border/60 hover:border-border hover:bg-accent"),children:e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:w("text-xs truncate",k?"font-medium text-foreground":"text-foreground"),children:m.name}),e.jsxs("span",{className:"text-[10px] text-muted-foreground shrink-0",children:[O,p("人")]})]}),Y&&e.jsx("div",{className:"mt-0.5 text-[10px] text-muted-foreground truncate",children:Y})]}),k&&e.jsx(te,{size:13,className:"shrink-0 text-foreground"})]})},m.id)})})]}),K=$.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mb-2",children:$.map((m,k)=>{const O=ot(m.name,k,c,m.id);return e.jsxs("div",{className:"inline-flex items-center gap-1 pl-1 pr-0.5 py-0.5 rounded-md border border-border/60 bg-background text-[10px] text-foreground",children:[e.jsx(st,{name:m.name,avatar:m.avatar,className:"h-3.5 w-3.5 text-[7px]"}),e.jsx("span",{className:"max-w-[80px] truncate",children:O}),e.jsx("button",{type:"button",onClick:()=>V(k),disabled:f,className:"p-0.5 text-muted-foreground hover:text-destructive disabled:opacity-30 rounded transition-colors",children:e.jsx(Rt,{size:9})})]},`${m.id}-${k}`)})}),oe=u?e.jsxs("div",{className:"rounded-lg bg-destructive/10 px-3 py-2.5 text-xs text-destructive",children:[e.jsx("span",{children:p("成员预设加载失败")}),e.jsx("button",{type:"button",onClick:()=>{R()},disabled:f||C,className:"ml-2 underline hover:no-underline",children:p("重试")})]}):x?e.jsxs("div",{className:"flex items-center gap-2 py-3 text-xs text-muted-foreground",children:[e.jsx(ve,{size:12,className:"animate-spin"}),p("加载中...")]}):(d??[]).length===0?e.jsxs("div",{className:"rounded-lg border border-dashed border-border bg-background px-3 py-3 text-xs text-muted-foreground",children:[p("当前没有成员预设"),e.jsx(et,{to:b("/settings/team"),className:"ml-1.5 text-info hover:underline",children:p("去创建")})]}):e.jsx("div",{className:"space-y-1 max-h-[180px] overflow-y-auto pr-1",children:(d??[]).map(m=>{const k=c.filter(Y=>Y===m.id).length,O=z.get(m.providerId)??m.providerId,W=ks(m.capabilities);return e.jsxs("button",{type:"button",onClick:()=>se(m.id),disabled:f,className:w("flex items-center gap-2 w-full px-2 py-1.5 rounded-lg text-left border border-transparent transition-all",f&&"cursor-not-allowed opacity-60","bg-background hover:bg-accent hover:border-border/60"),children:[e.jsx(st,{name:m.name,avatar:m.avatar,className:"h-6 w-6 text-[9px] shrink-0"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-xs text-foreground truncate",children:m.name}),e.jsxs("div",{className:"text-[10px] text-muted-foreground truncate",children:[O," · ",W,"/10"]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[k>0&&e.jsxs("span",{className:"text-[10px] text-foreground font-semibold",children:["×",k]}),e.jsx(Gt,{size:12,className:"text-muted-foreground"})]})]},m.id)})}),H=$.length>0&&e.jsx("span",{className:"inline-flex items-center justify-center min-w-[16px] h-4 rounded-full bg-primary text-[10px] font-semibold text-primary-foreground px-1.5",children:$.length}),fe=e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-[11px] font-medium text-muted-foreground shrink-0",children:p("执行模式")}),e.jsxs("div",{className:"inline-flex items-center h-7 rounded-md border border-border/70 bg-background p-0.5",children:[e.jsxs("button",{type:"button",onClick:()=>!f&&s("AUTO"),disabled:f,className:w("flex items-center gap-1.5 rounded h-full px-2.5 text-xs transition-all disabled:cursor-not-allowed disabled:opacity-50",t==="AUTO"?"bg-primary text-primary-foreground font-medium shadow-sm":"text-muted-foreground hover:text-foreground"),children:[e.jsx(us,{size:11}),p("自动模式")]}),e.jsxs("button",{type:"button",onClick:()=>!f&&s("CONFIRM"),disabled:f,className:w("flex items-center gap-1.5 rounded h-full px-2.5 text-xs transition-all disabled:cursor-not-allowed disabled:opacity-50",t==="CONFIRM"?"bg-primary text-primary-foreground font-medium shadow-sm":"text-muted-foreground hover:text-foreground"),children:[e.jsx(is,{size:11}),p("确认模式")]})]})]});return g?e.jsxs("div",{className:"space-y-3",children:[fe,ne,e.jsxs("div",{className:"border-t border-border/50 pt-2.5",children:[e.jsxs("button",{type:"button",onClick:()=>!f&&n(m=>!m),disabled:f,"aria-expanded":N,className:"flex items-center gap-1.5 text-[11px] font-medium text-muted-foreground hover:text-foreground transition-colors disabled:cursor-not-allowed disabled:opacity-50",children:[e.jsx(me,{size:12,className:w("transition-transform",N?"":"-rotate-90")}),p("追加独立成员"),H]}),N&&e.jsxs("div",{className:"mt-2",children:[K,oe]})]})]}):e.jsxs("div",{className:"space-y-3.5",children:[fe,e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[ne,e.jsxs("section",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[e.jsx("span",{className:"text-[11px] font-medium text-muted-foreground",children:p("追加成员")}),H]}),K,oe]})]})]})}function Cs({commands:t,selectedIndex:s,query:r,hasCatalog:o,title:c="Slash Commands",queryPrefix:l="/",emptyCatalogMessage:f="No slash commands catalog for this agent yet.",emptyQueryMessage:g,insertionHint:p="Enter / Tab to insert",compact:b=!1,onSelect:N}){const n=b?"px-1.5 pb-1.5":"px-2 pb-2",j=b?"px-2 py-1.5":"px-2.5 py-2",d=b?"max-h-36":"max-h-48";return e.jsxs("div",{className:b?"pt-1.5":"pt-2",children:[e.jsxs("div",{className:`mb-1 flex items-center justify-between ${b?"px-2 pt-0.5":"px-3 pt-1"}`,children:[e.jsx("span",{className:"text-[10px] font-medium uppercase tracking-[0.14em] text-neutral-400",children:c}),e.jsx("span",{className:"text-[10px] text-neutral-400",children:p})]}),t.length===0?e.jsx("div",{className:`${b?"px-2 pb-2 pt-1.5 text-[11px]":"px-3 pb-3 pt-2 text-xs"} text-neutral-400`,children:o?g??`No matches for ${l}${r}`:f}):e.jsx("div",{className:`${n} ${d} overflow-y-auto`,children:t.map((u,C)=>e.jsxs("button",{type:"button",onMouseDown:x=>x.preventDefault(),onClick:()=>N(u),className:`w-full rounded-lg border text-left transition-colors ${C===s?"border-neutral-300 bg-neutral-50":"border-transparent hover:border-neutral-200 hover:bg-neutral-50/80"} ${j}`,children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"font-mono text-[13px] text-neutral-900",children:u.command}),u.kind&&u.kind!=="builtin"?e.jsx("span",{className:"rounded-full border border-neutral-200 px-1.5 py-0.5 text-[9px] uppercase tracking-[0.12em] text-neutral-500",children:u.scope?`${u.scope} ${u.kind}`:u.kind}):null]}),e.jsx("div",{className:`${b?"mt-0.5 text-[11px]":"mt-1 text-xs"} text-neutral-500`,children:u.description})]},u.command))})]})}const ee=12,je=8;function Ss({open:t,anchorRef:s,commands:r,selectedIndex:o,query:c,hasCatalog:l,title:f,queryPrefix:g,emptyCatalogMessage:p,emptyQueryMessage:b,insertionHint:N,compact:n=!1,onSelect:j}){const d=a.useRef(null),[u,C]=a.useState(null);return a.useLayoutEffect(()=>{if(!t){C(null);return}const x=s.current;if(!x)return;let R=0;const h=()=>{const I=s.current;if(!I)return;const S=I.getBoundingClientRect(),z=window.innerWidth,T=window.innerHeight,G=n?260:320,$=n?z-ee*2:560,B=Math.min(Math.max(S.width,G),Math.max(G,$)),se=Math.min(Math.max(ee,S.left),Math.max(ee,z-ee-B)),V=T-S.bottom-je-ee,ne=S.top-je-ee,K=d.current?.offsetHeight??(n?220:280),oe=n?240:320,H=V<180&&ne>V,m=Math.max(120,Math.min(oe,H?ne:V)),k=H?Math.max(ee,S.top-je-Math.min(K,m)):Math.min(T-ee-Math.min(K,m),S.bottom+je);C({top:k,left:se,width:B,maxHeight:m})},v=()=>{cancelAnimationFrame(R),R=requestAnimationFrame(h)};v();const y=new ResizeObserver(v);return y.observe(x),d.current&&y.observe(d.current),window.addEventListener("resize",v),window.addEventListener("scroll",v,!0),window.visualViewport?.addEventListener("resize",v),window.visualViewport?.addEventListener("scroll",v),()=>{cancelAnimationFrame(R),y.disconnect(),window.removeEventListener("resize",v),window.removeEventListener("scroll",v,!0),window.visualViewport?.removeEventListener("resize",v),window.visualViewport?.removeEventListener("scroll",v)}},[s,r.length,n,t,c,o]),!t||!u||typeof document>"u"?null:At.createPortal(e.jsx("div",{className:"pointer-events-none fixed inset-0 z-[120]",children:e.jsx("div",{ref:d,className:"pointer-events-auto fixed overflow-hidden rounded-xl border border-neutral-200 bg-white shadow-lg shadow-neutral-200/70",style:{top:u.top,left:u.left,width:u.width,maxHeight:u.maxHeight},children:e.jsx(Cs,{commands:r,selectedIndex:o,query:c,hasCatalog:l,title:f,queryPrefix:g,emptyCatalogMessage:p,emptyQueryMessage:b,insertionHint:N,compact:n,onSelect:j})})}),document.body)}function Ts({agentType:t,workingDir:s}){return at({queryKey:D.system.slashCommandCatalog(t,s),queryFn:async()=>(await ue.get("/system/slash-command-catalog",{params:{agentType:String(t),...s?{workingDir:s}:{}}})).commands,enabled:!!t,staleTime:3e4})}function Es(t,s){const r=new Set,o=[];for(const c of[...t,...s]){const l=c.command.trim().toLowerCase();!l||r.has(l)||(r.add(l),o.push(c.kind?c:{...c,kind:"builtin"}))}return o}function Te(t){return t.trim().toLowerCase().replace(/^[/$]/,"")}function Ms(t){return Te(t.command)}function Is(t,s){if(!s)return 1e3;const r=Ms(t),o=t.aliases?.map(Te)??[],c=[r,...o];let l=0;for(const g of c)g===s?l=Math.max(l,500):g.startsWith(s)?l=Math.max(l,400-(g.length-s.length)):g.includes(s)&&(l=Math.max(l,250-g.indexOf(s)));return l>0?l:`${r} ${o.join(" ")} ${t.description}`.toLowerCase().includes(s)?100:0}function hn(t){const s=/(^|[\s])\$([^\s]*)$/.exec(t);if(!s||s.index===void 0)return null;const r=s.index+s[1].length;return{query:Te(s[2]),replaceStart:r}}function Rs(t,s){const r=Te(s);return r?t.map((o,c)=>({command:o,index:c,score:Is(o,r)})).filter(o=>o.score>0).sort((o,c)=>c.score-o.score||o.index-c.index||o.command.command.localeCompare(c.command.command)).map(o=>o.command):t.slice()}const As=[{command:"/permissions",description:"Manage what Codex can do without approval"},{command:"/sandbox-add-read-dir",description:"Grant read access to another directory"},{command:"/agent",description:"Switch between built-in agent personas"},{command:"/apps",description:"Manage connected apps"},{command:"/clear",description:"Start a fresh conversation"},{command:"/compact",description:"Replace chat context with a summary"},{command:"/copy",description:"Copy the last assistant message to your clipboard"},{command:"/diff",description:"Show the current git diff"},{command:"/experimental",description:"Toggle experimental features"},{command:"/feedback",description:"Share feedback on Codex CLI"},{command:"/init",description:"Create or update AGENTS.md for the repo"},{command:"/logout",description:"Sign out of Codex"},{command:"/mcp",description:"Manage MCP servers"},{command:"/mention",description:"Add files or directories to the conversation context"},{command:"/model",description:"Change the active model"},{command:"/fast",description:"Toggle low reasoning mode"},{command:"/plan",description:"Toggle plan mode for code changes"},{command:"/personality",description:"Select how Codex communicates"},{command:"/ps",description:"List running background tasks"},{command:"/fork",description:"Fork the current conversation state"},{command:"/resume",description:"Resume a previous conversation"},{command:"/new",description:"Open a conversation picker to start or resume"},{command:"/quit",description:"Exit Codex CLI",aliases:["exit"]},{command:"/review",description:"Run a code review"},{command:"/status",description:"Show session and configuration status"},{command:"/debug-config",description:"Inspect the effective configuration"},{command:"/statusline",description:"Configure the custom status line"},{command:"/skills",description:"Browse available skills and insert a $skill mention"}],_s=[{command:"/clear",description:"Clear the conversation history"},{command:"/compact",description:"Compact the conversation context",aliases:["compact focus"]},{command:"/config",description:"Open the configuration panel"},{command:"/cost",description:"Show token usage and cost"},{command:"/doctor",description:"Check Claude Code installation health"},{command:"/help",description:"Show help and available commands"},{command:"/init",description:"Initialize project instructions"},{command:"/login",description:"Sign in to Claude Code"},{command:"/logout",description:"Sign out of Claude Code"},{command:"/mcp",description:"Manage MCP servers"},{command:"/memory",description:"Edit project memory files"},{command:"/model",description:"Change the active model"},{command:"/permissions",description:"Review or update tool permissions"},{command:"/pr_comments",description:"Read pull request review comments"},{command:"/review",description:"Run a code review"},{command:"/status",description:"Show account and system status"},{command:"/terminal-setup",description:"Configure terminal newline shortcuts"},{command:"/vim",description:"Toggle vim mode"}],Ls=[{command:"/bug",description:"File an issue about Gemini CLI"},{command:"/chat",description:"Manage chat checkpoints and exports"},{command:"/clear",description:"Clear the terminal display"},{command:"/compress",description:"Replace chat context with a summary"},{command:"/copy",description:"Copy the last Gemini CLI output"},{command:"/directory",description:"Manage additional workspace directories",aliases:["dir"]},{command:"/editor",description:"Choose the preferred editor"},{command:"/extensions",description:"List active Gemini CLI extensions"},{command:"/help",description:"Show help and command usage",aliases:["?"]},{command:"/mcp",description:"Show MCP servers and tools"},{command:"/memory",description:"Manage loaded GEMINI.md memory"},{command:"/restore",description:"Restore files from a tool checkpoint"},{command:"/settings",description:"Open the Gemini CLI settings editor"},{command:"/stats",description:"Show session statistics and token usage"},{command:"/theme",description:"Change the Gemini CLI theme"},{command:"/auth",description:"Change the authentication method"},{command:"/about",description:"Show version information"},{command:"/tools",description:"List currently available tools"},{command:"/privacy",description:"Review privacy and data collection settings"},{command:"/quit",description:"Exit Gemini CLI",aliases:["exit"]},{command:"/vim",description:"Toggle vim mode"},{command:"/init",description:"Generate a tailored GEMINI.md file"}],Os=[{command:"/model",description:"Change the active model"},{command:"/plan",description:"Create or reopen a plan"},{command:"/ask",description:"Toggle ask mode (read-only Q&A)"},{command:"/debug",description:"Toggle debug mode"},{command:"/clear",description:"Start a new chat session",aliases:["new","new-chat","newchat"]},{command:"/compress",description:"Summarize the conversation to reduce context"},{command:"/vim",description:"Toggle vim mode"},{command:"/shell",description:"Enter shell mode"},{command:"/about",description:"Show CLI, system, and account information"},{command:"/setup-terminal",description:"Configure terminal newline shortcuts"},{command:"/feedback",description:"Share feedback with the Cursor team"},{command:"/open",description:"Open the repository git root in Cursor"},{command:"/cursor",description:"Alias for /open",aliases:["open"]},{command:"/resume-chat",description:"Resume a previous chat by folder name",aliases:["resume"]},{command:"/copy-request-id",description:"Copy the last request ID"},{command:"/copy-conversation-id",description:"Copy the current conversation ID"},{command:"/logout",description:"Sign out from Cursor"},{command:"/quit",description:"Exit Cursor Agent",aliases:["exit"]},{command:"/mcp",description:"Manage MCP servers"}],Ps={[we.CODEX]:As,[we.CLAUDE_CODE]:_s,[we.GEMINI_CLI]:Ls,[we.CURSOR_AGENT]:Os};function lt(t){return t.trim().toLowerCase().replace(/^\//,"")}function Ds(t){return t?(Ps[t]??[]).map(s=>({...s,kind:s.kind??"builtin"})):[]}function zs(t){const s=t.match(/^\s*\/([^\s]*)$/);return s?lt(s[1]):null}function $s(t,s){return Rs(t,lt(s))}function qs(t){const s=t.key==="Enter"&&!t.shiftKey&&!t.repeat&&!t.nativeEvent.isComposing&&t.nativeEvent.keyCode!==229,r=t.key==="Tab"&&!t.shiftKey;return s||r}function Fs({agentType:t,workingDir:s,input:r,setInput:o,textareaRef:c,minHeight:l,maxHeight:f}){const[g,p]=a.useState(0),{data:b=[]}=Ts({agentType:t,workingDir:s}),N=a.useMemo(()=>Es(Ds(t),b),[t,b]),n=a.useMemo(()=>zs(r),[r]),j=a.useMemo(()=>n===null?[]:$s(N,n),[N,n]),d=a.useCallback(()=>{const x=c.current;x&&(x.style.height="auto",x.style.height=`${Math.max(l,Math.min(x.scrollHeight,f))}px`)},[f,l,c]);a.useEffect(()=>{p(0)},[t,n]),a.useEffect(()=>{g<j.length||p(0)},[j.length,g]);const u=a.useCallback(x=>{const h=`${r.match(/^(\s*)\/[^\s]*$/)?.[1]??""}${x.command} `;o(h),requestAnimationFrame(()=>{const v=c.current;v&&(d(),v.focus(),v.setSelectionRange(h.length,h.length))})},[r,d,o,c]),C=a.useCallback(x=>n===null||j.length===0?!1:x.key==="ArrowDown"?(x.preventDefault(),p(R=>(R+1)%j.length),!0):x.key==="ArrowUp"?(x.preventDefault(),p(R=>(R-1+j.length)%j.length),!0):qs(x)?(x.preventDefault(),u(j[g]??j[0]),!0):!1,[u,j,n,g]);return{allCommands:N,query:n,filteredCommands:j,selectedIndex:g,setSelectedIndex:p,applyCommand:u,handleKeyDown:C}}const Gs="/assets/agent-tower-lockup-DPAcheCt.png";function gn({className:t="h-6 w-auto max-[359px]:h-[22px]"}){return e.jsx("img",{src:Gs,alt:"Agent Tower",className:`block shrink-0 select-none object-contain ${t}`})}const Us={idle:"","creating-task":"Creating Task...","creating-teamrun":"Creating TeamRun...","creating-workspace":"Creating Workspace...","creating-session":"Creating Session...","starting-session":"Starting Agent..."};function bn({variant:t="task",projects:s,providers:r,isProvidersLoading:o,onSubmit:c,defaultProjectId:l="",defaultProviderId:f="",onProjectChange:g,createStep:p,placeholder:b,submitLabel:N,pendingLabel:n,submitTitle:j}){const{t:d}=pe(),[u,C]=a.useState(""),[x,R]=a.useState(l),[h,v]=a.useState(f),y=h||f,[I,S]=a.useState("SOLO"),[z,T]=a.useState(L.WORKTREE),[G,$]=a.useState(de.NORMAL),[B,se]=a.useState({}),[V,ne]=a.useState("AUTO"),[K,oe]=a.useState(null),[H,fe]=a.useState([]),[m,k]=a.useState(!1),[O,W]=a.useState(!1),[Y,X]=a.useState(!1),[ae,re]=a.useState(!1),Ee=a.useRef(null),Me=a.useRef(null),Ie=a.useRef(null),$e=a.useRef(null),qe=a.useRef(null),Fe=a.useRef(null),{files:Ge,addFiles:ie,removeFile:dt,clear:Ue,buildMarkdownLinks:We,getDoneAttachments:Be,isUploading:Ne}=Ot(),xe=$t(),E=t==="conversation",M=t==="task"||t==="conversation",mt=N??d(E?"开始":"创建");a.useEffect(()=>{R(l),g?.(l)},[l,g]),a.useEffect(()=>{if(!O)return;const i=A=>{Ee.current&&!Ee.current.contains(A.target)&&W(!1)};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[O]),a.useEffect(()=>{if(!Y)return;const i=A=>{Me.current&&!Me.current.contains(A.target)&&X(!1)};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[Y]),a.useEffect(()=>{if(!ae)return;const i=A=>{Ie.current&&!Ie.current.contains(A.target)&&re(!1)};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[ae]);const U=a.useMemo(()=>s.find(i=>i.id===x),[s,x]),Q=a.useMemo(()=>r.find(i=>i.id===y),[r,y]),Re=x?B[x]:void 0,ut=(Re?.isGitRepo??U?.isGitRepo)!==!1,pt=(Re?.worktreeReady??U?.worktreeReady)!==!1,q=!E&&!(ut&&pt),P=q?"SOLO":I,Z=q?L.MAIN_DIRECTORY:z,ft=Z===L.MAIN_DIRECTORY?d("本地模式"):d("工作树模式"),Ke=d("工作树隔离改动,支持 TeamRun、Merge、Rebase 和冲突解决。"),xt=d("本地模式会直接修改项目主目录,不会自动提交,也不能使用 Merge、Rebase 或冲突解决。"),ht=Re?.reason??U?.reason,He=d(ht==="NO_HEAD"?"已检测到 Git,但需要先提交一次才能使用工作树模式。":"初始化 Git 后可使用工作树模式。"),Qe=E||P==="SOLO"?Q?.agentType:null,J=Fs({agentType:Qe,workingDir:E?void 0:U?.repoPath,input:u,setInput:C,textareaRef:qe,minHeight:76,maxHeight:220}),_=p!=="idle",Ve=!!K||H.length>0,he=!_&&!Ne&&u.trim().length>0&&(E?Q?.available===!0:!!x&&(P==="SOLO"?Q?.available===!0:Ve));a.useEffect(()=>{q&&(S("SOLO"),T(L.MAIN_DIRECTORY),k(!1),re(!1))},[q]),a.useEffect(()=>{q||E||T(L.WORKTREE)},[E,q,U?.id]);const gt=a.useCallback(async()=>{if(!U||xe.isPending)return;const i=await xe.mutateAsync({id:U.id});se(A=>({...A,[U.id]:i})),i.worktreeReady&&(S("SOLO"),T(L.WORKTREE),re(!1))},[xe,U]),Ae=a.useCallback(async()=>{if(!he)return;const i=M?We():"",A=M?Be().map(ge=>ge.id):[];try{await c({title:u.trim(),description:"",projectId:E?"":x,providerId:y,mode:E?"SOLO":P,workspaceMode:!E&&P==="SOLO"?Z:L.WORKTREE,teamRunMode:E?"AUTO":V,teamTemplateId:E||q?null:K,memberPresetIds:E||q?[]:H,attachmentLinks:i,attachmentIds:A,priority:G}),C(""),$(de.NORMAL),M&&Ue()}catch{}},[he,M,We,Be,c,u,E,x,y,P,Z,V,q,K,H,Ue,G]),bt=a.useCallback(i=>{J.handleKeyDown(i)||i.key==="Enter"&&!i.shiftKey&&!i.nativeEvent.isComposing&&i.nativeEvent.keyCode!==229&&(i.preventDefault(),Ae())},[Ae,J]),vt=a.useCallback(i=>{const A=i.target.files;A&&A.length>0&&ie(Array.from(A)),i.target.value=""},[ie]),yt=a.useCallback(i=>{R(i),g?.(i),W(!1)},[g]),Nt=a.useCallback(i=>{if(!M)return;const A=i.clipboardData.items,ge=[];for(const Xe of A)if(Xe.kind==="file"){const Ze=Xe.getAsFile();Ze&&ge.push(Ze)}ge.length>0&&(i.preventDefault(),ie(ge))},[ie,M]),[Ye,_e]=a.useState(!1),wt=a.useCallback(i=>{M&&(i.preventDefault(),_e(!0))},[M]),kt=a.useCallback(i=>{M&&(i.preventDefault(),_e(!1))},[M]),jt=a.useCallback(i=>{if(!M)return;i.preventDefault(),_e(!1);const A=i.dataTransfer.files;A.length>0&&ie(Array.from(A))},[ie,M]);return e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{ref:$e,className:w("relative bg-background rounded-xl border transition-colors duration-200","shadow-[0_1px_2px_rgba(0,0,0,0.05)]","hover:border-ring/40 focus-within:border-ring/60",Ye?"border-info bg-info/5":"border-border",_&&"opacity-80"),onDragOver:M?wt:void 0,onDragLeave:M?kt:void 0,onDrop:M?jt:void 0,children:[M&&Ge.length>0&&e.jsx("div",{className:"px-4 pt-3",children:e.jsx(Pt,{files:Ge,onRemove:dt})}),e.jsx("textarea",{ref:qe,value:u,onChange:i=>C(i.target.value),onKeyDown:bt,onPaste:M?Nt:void 0,placeholder:d(b||"Describe your task..."),disabled:_,autoFocus:!0,rows:1,className:"w-full px-4 pt-4 pb-2 bg-transparent border-none focus:outline-none resize-none text-[15px] text-foreground placeholder:text-muted-foreground/80 leading-relaxed",style:{minHeight:"76px",maxHeight:"220px",fieldSizing:"content"}}),M&&Ye&&e.jsx("div",{className:"px-4 pb-2",children:e.jsx("div",{className:"flex items-center justify-center py-3 border border-dashed border-info/40 rounded-lg text-xs font-medium text-info",children:d("Drop files here")})}),e.jsxs("div",{className:"flex items-center justify-between px-2 pb-2 pt-1",children:[e.jsx("div",{className:"flex items-center gap-1",children:M?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",onClick:()=>Fe.current?.click(),disabled:_||Ne,className:"p-2 text-muted-foreground hover:text-foreground hover:bg-accent rounded-lg transition-colors disabled:opacity-40 disabled:cursor-not-allowed",title:d("Attach files"),children:e.jsx(Ut,{size:18})}),e.jsx("input",{ref:Fe,type:"file",multiple:!0,onChange:vt,className:"hidden"})]}):null}),e.jsxs("div",{className:"flex items-center gap-2",children:[M&&Ne&&e.jsxs("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx(ve,{size:14,className:"animate-spin"}),d("Uploading...")]}),_&&e.jsxs("span",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx(ve,{size:14,className:"animate-spin"}),d(n??Us[p])]}),!E&&!_&&!Ne&&P==="TEAM"&&!Ve&&u.trim().length>0&&e.jsx("span",{className:"text-[11px] text-warning",children:d("请选择团队模板或追加成员")}),he&&e.jsxs("span",{className:"hidden sm:inline-flex items-center gap-1 text-[11px] text-muted-foreground/80 select-none",children:[e.jsx("kbd",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded border border-border bg-muted/60 text-[10px] font-medium text-muted-foreground leading-none",children:"⏎"}),mt]}),e.jsx("button",{type:"button",onClick:Ae,disabled:!he,className:w("flex items-center justify-center size-8 rounded-lg transition-all duration-200",he?"bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm":"bg-muted text-muted-foreground/40 cursor-not-allowed"),title:d(j||"Create & Start"),children:e.jsx(Kt,{size:16,strokeWidth:2.5})})]})]})]}),e.jsx(Ss,{open:!!Qe&&J.query!==null,anchorRef:$e,commands:J.filteredCommands,selectedIndex:J.selectedIndex,query:J.query??"",hasCatalog:J.allCommands.length>0,compact:!0,onSelect:J.applyCommand}),e.jsxs("div",{className:"flex items-center flex-wrap gap-1.5 mt-2.5 px-0.5",children:[!E&&e.jsxs("div",{className:"relative",ref:Ee,children:[e.jsxs("button",{type:"button",onClick:()=>{_||W(i=>!i)},disabled:_,className:w("flex items-center gap-1.5 px-2 h-7 rounded-md text-xs font-medium transition-colors","hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed",U?"text-foreground/80":"text-muted-foreground"),children:[e.jsx(qt,{size:14,className:"shrink-0",style:{color:U?.color??"var(--muted-foreground)"}}),e.jsx("span",{className:"max-w-[120px] truncate",children:U?.name??d("Project")}),e.jsx(me,{size:12,className:w("text-muted-foreground transition-transform",O&&"rotate-180")})]}),O&&e.jsx("div",{className:"absolute top-full left-0 mt-1.5 w-56 bg-popover border border-border rounded-lg shadow-[0_4px_12px_rgba(0,0,0,0.06)] py-1 max-h-[240px] overflow-y-auto z-50",children:s.map(i=>e.jsxs("button",{type:"button",onClick:()=>yt(i.id),className:"flex items-center w-full px-3 py-2 text-xs text-left hover:bg-accent transition-colors",children:[e.jsx("span",{className:"size-2 rounded-full shrink-0 mr-2",style:{backgroundColor:i.color??"var(--muted-foreground)"}}),e.jsx("span",{className:w("truncate flex-1",i.id===x?"text-foreground font-medium":"text-muted-foreground"),children:i.name}),e.jsx(te,{size:14,className:w("ml-2 shrink-0 text-foreground",i.id===x?"opacity-100":"opacity-0")})]},i.id))})]}),(E||P==="SOLO")&&e.jsxs("div",{className:"relative",ref:Me,children:[e.jsxs("button",{type:"button",onClick:()=>{_||X(i=>!i)},disabled:_,className:w("flex items-center gap-1.5 px-2 h-7 rounded-md text-xs font-medium transition-colors","hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed",Q?"text-foreground/80":"text-muted-foreground"),children:[e.jsx(be,{agentType:Q?.agentType,className:"size-3.5"}),e.jsx("span",{className:"max-w-[120px] truncate",children:Q?.name??d(o?"Loading...":"Agent")}),e.jsx(me,{size:12,className:w("text-muted-foreground transition-transform",Y&&"rotate-180")})]}),Y&&e.jsx("div",{className:"absolute top-full left-0 z-50 mt-1.5 max-h-[min(60vh,320px)] w-72 max-w-[calc(100vw-2rem)] overflow-y-auto rounded-lg border border-border bg-popover py-1 shadow-[0_4px_12px_rgba(0,0,0,0.06)] sm:w-80",children:r.map(i=>e.jsx("div",{tabIndex:i.available?void 0:0,role:i.available?void 0:"group","aria-label":i.available?void 0:`${i.name}: ${d(i.reason||"Agent executable is unavailable.")}`,className:"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:e.jsxs("button",{type:"button",disabled:!i.available,onClick:()=>{v(i.id),X(!1)},className:w("flex w-full items-start px-3 py-2 text-left text-xs transition-colors hover:bg-accent",!i.available&&"cursor-not-allowed"),children:[e.jsx(te,{size:14,className:w("mr-2 mt-0.5 shrink-0 text-foreground",i.id===y?"opacity-100":"opacity-0")}),e.jsx(be,{agentType:i.agentType,className:"mr-2 mt-0.5 size-3.5 shrink-0"}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsxs("span",{className:w("block break-words",i.id===y?"font-medium text-foreground":"text-muted-foreground"),children:[i.name,i.available?"":d(" (unavailable)")]}),i.permissionMode?e.jsx("span",{className:"mt-0.5 block text-[11px] text-muted-foreground",children:d("Required permission: {mode}",{mode:d(De[i.permissionMode])})}):null,i.reason?e.jsx("span",{className:"mt-0.5 block break-words text-[11px] leading-snug text-destructive",children:d(i.reason)}):null]})]})},i.id))})]}),!E&&P==="SOLO"&&e.jsxs("div",{className:"relative",ref:Ie,children:[e.jsxs("button",{type:"button",onClick:()=>{_||re(i=>!i)},disabled:_,className:w("flex items-center gap-1.5 px-2 h-7 rounded-md text-xs font-medium transition-colors","hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed text-foreground/80"),children:[e.jsx(es,{size:14,className:"text-muted-foreground"}),e.jsx("span",{className:"max-w-[96px] truncate",children:ft}),e.jsx(me,{size:12,className:w("text-muted-foreground transition-transform",ae&&"rotate-180")})]}),ae&&e.jsxs("div",{className:"absolute top-full left-0 mt-1.5 w-72 max-w-[calc(100vw-2rem)] bg-popover border border-border rounded-lg shadow-[0_4px_12px_rgba(0,0,0,0.06)] py-1 z-50",children:[q?e.jsx(Pe,{side:"bottom",className:"block w-full",content:He,children:e.jsxs("div",{tabIndex:0,"aria-label":He,className:"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60",children:[e.jsxs("button",{type:"button",disabled:!0,className:"flex w-full cursor-not-allowed items-center px-3 py-2 text-left text-xs opacity-40 transition-colors",children:[e.jsx(te,{size:14,className:"mr-2 mt-0.5 shrink-0 text-foreground opacity-0"}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block truncate text-muted-foreground",children:d("工作树模式")}),e.jsx("span",{className:"mt-0.5 block whitespace-normal text-[11px] leading-snug text-muted-foreground/80",children:Ke})]})]}),e.jsx("button",{type:"button",onClick:gt,disabled:xe.isPending,className:"flex w-full items-center px-3 py-2 text-left text-xs text-muted-foreground transition-colors hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50",children:xe.isPending?d("检测中..."):d("重新检测 Git 状态")})]})}):e.jsxs("button",{type:"button",onClick:()=>{T(L.WORKTREE),re(!1)},className:"flex w-full items-center px-3 py-2 text-left text-xs transition-colors hover:bg-accent",children:[e.jsx(te,{size:14,className:w("mr-2 mt-0.5 shrink-0 text-foreground",Z===L.WORKTREE?"opacity-100":"opacity-0")}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:w("block truncate",Z===L.WORKTREE?"text-foreground font-medium":"text-muted-foreground"),children:d("工作树模式")}),e.jsx("span",{className:"mt-0.5 block whitespace-normal text-[11px] leading-snug text-muted-foreground/80",children:Ke})]})]}),e.jsxs("button",{type:"button",onClick:()=>{T(L.MAIN_DIRECTORY),re(!1)},className:"flex items-start w-full px-3 py-2 text-xs text-left hover:bg-accent transition-colors",children:[e.jsx(te,{size:14,className:w("mr-2 mt-0.5 shrink-0 text-foreground",Z===L.MAIN_DIRECTORY?"opacity-100":"opacity-0")}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:w("block truncate",Z===L.MAIN_DIRECTORY?"text-foreground font-medium":"text-muted-foreground"),children:d("本地模式")}),e.jsx("span",{className:"mt-0.5 block whitespace-normal text-[11px] leading-snug text-muted-foreground/80",children:xt})]})]})]})]}),!E&&e.jsx(ws,{value:G,compact:!0,disabled:_,onChange:$}),!E&&e.jsx(Pe,{side:"bottom",className:"ml-auto",content:q?d("Local projects only support local Solo tasks. Initialize Git to use worktrees and TeamRun."):Z===L.MAIN_DIRECTORY?d("TeamRun 需要工作树模式。开启团队模式时会自动切换为工作树模式。"):d("启用 TeamRun 后可选择团队模板或成员。"),children:e.jsxs("button",{type:"button",role:"switch","aria-checked":P==="TEAM",onClick:()=>{_||q||(I==="TEAM"?(S("SOLO"),k(!1)):(S("TEAM"),re(!1),T(L.WORKTREE),k(!0)))},disabled:_||q,className:w("flex items-center gap-2 h-7 pl-2 pr-2 rounded-md text-xs font-medium transition-colors","hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",P==="TEAM"?"text-foreground/80":"text-muted-foreground"),"aria-label":d("启用团队模式"),children:[e.jsx(_t,{size:14,className:P==="TEAM"?"text-foreground/80":"text-muted-foreground"}),e.jsx("span",{children:d("团队模式")}),(q||Z===L.MAIN_DIRECTORY)&&P!=="TEAM"?e.jsx(Lt,{size:12,className:"text-muted-foreground/70","aria-hidden":"true"}):null,e.jsx("span",{className:w("relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors",P==="TEAM"?"bg-primary":"bg-border"),children:e.jsx("span",{className:w("inline-block size-3 rounded-full bg-background shadow-sm transition-transform",P==="TEAM"?"translate-x-3.5":"translate-x-0.5")})})]})})]}),Q&&!Q.available?e.jsx("p",{role:"alert",className:"mt-2 break-words px-2 text-xs leading-snug text-destructive",children:Q.reason?d(Q.reason):d("Agent executable is unavailable.")}):null,!E&&P==="TEAM"&&m&&e.jsx("div",{className:"mt-2.5 rounded-xl border border-border/60 bg-muted/40 p-3 animate-[fadeInUp_0.25s_cubic-bezier(0.16,1,0.3,1)]",children:e.jsx(js,{mode:V,setMode:ne,selectedTemplateId:K,setSelectedTemplateId:oe,selectedMemberPresetIds:H,setSelectedMemberPresetIds:fe,disabled:_,compact:!0})})]})}export{sn as A,gn as B,bn as C,es as G,pn as P,dn as R,rn as S,mn as T,us as Z,fn as a,on as b,Kt as c,nn as d,xn as e,ze as f,an as g,js as h,ln as i,hn as j,Rs as k,Fs as l,cn as m,ws as n,Ss as o,is as p,un as u};
@@ -1,4 +1,4 @@
1
- import{r as a,V as j,W as E,Y as T,j as s,l as M,u as P,p as I,B as O}from"./index-oC5eh7mZ.js";function U(t){const{sessionId:c,onOutput:k,onExit:x,onError:b}=t,[p,g]=a.useState(()=>j.isConnected()),[r,d]=a.useState(!1),m=a.useRef({onOutput:k,onExit:x,onError:b});m.current={onOutput:k,onExit:x,onError:b},a.useEffect(()=>{const n=j.getSocket();g(n.connected);const u=()=>g(!0),v=()=>{g(!1),d(!1)},w=l=>{l.sessionId===c&&m.current.onOutput?.(l.data)},C=l=>{l.sessionId===c&&(d(!1),m.current.onExit?.(l.exitCode))},S=l=>{l.sessionId===c&&m.current.onError?.(l.message)};return n.on("connect",u),n.on("disconnect",v),n.on(E.SESSION_STDOUT,w),n.on(E.SESSION_EXIT,C),n.on(E.SESSION_ERROR,S),g(n.connected),()=>{n.off("connect",u),n.off("disconnect",v),n.off(E.SESSION_STDOUT,w),n.off(E.SESSION_EXIT,C),n.off(E.SESSION_ERROR,S),d(!1)}},[c]);const i=a.useCallback(()=>new Promise(n=>{if(!j.getSocket().connected){n(!1);return}d(!0),n(!0)}),[]),y=a.useCallback(()=>{d(!1)},[]),N=a.useCallback(n=>{j.getSocket().emit(T.INPUT,{sessionId:c,data:n})},[c]),h=a.useCallback((n,u)=>{j.getSocket().emit(T.RESIZE,{sessionId:c,cols:n,rows:u})},[c]);return{isConnected:p,isAttached:r,attach:i,detach:y,sendInput:N,resize:h}}function $({className:t,...c}){return s.jsx("div",{"data-slot":"card",className:M("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...c})}function B(){const{t}=P(),[c,k]=a.useState([]),[x,b]=a.useState(""),[p,g]=a.useState(""),[r,d]=a.useState(null),[m,i]=a.useState([]),[y,N]=a.useState(!1),[h,n]=a.useState(""),u=a.useRef(null),v=a.useCallback(e=>{i(o=>{const f=o[o.length-1];return f&&f.role==="agent"?[...o.slice(0,-1),{...f,content:f.content+e}]:[...o,{role:"agent",content:e,timestamp:new Date}]})},[]),w=a.useCallback(e=>{i(o=>[...o,{role:"agent",content:`
1
+ import{r as a,V as j,W as E,Y as T,j as s,l as M,u as P,p as I,B as O}from"./index-_mroLJ3-.js";function U(t){const{sessionId:c,onOutput:k,onExit:x,onError:b}=t,[p,g]=a.useState(()=>j.isConnected()),[r,d]=a.useState(!1),m=a.useRef({onOutput:k,onExit:x,onError:b});m.current={onOutput:k,onExit:x,onError:b},a.useEffect(()=>{const n=j.getSocket();g(n.connected);const u=()=>g(!0),v=()=>{g(!1),d(!1)},w=l=>{l.sessionId===c&&m.current.onOutput?.(l.data)},C=l=>{l.sessionId===c&&(d(!1),m.current.onExit?.(l.exitCode))},S=l=>{l.sessionId===c&&m.current.onError?.(l.message)};return n.on("connect",u),n.on("disconnect",v),n.on(E.SESSION_STDOUT,w),n.on(E.SESSION_EXIT,C),n.on(E.SESSION_ERROR,S),g(n.connected),()=>{n.off("connect",u),n.off("disconnect",v),n.off(E.SESSION_STDOUT,w),n.off(E.SESSION_EXIT,C),n.off(E.SESSION_ERROR,S),d(!1)}},[c]);const i=a.useCallback(()=>new Promise(n=>{if(!j.getSocket().connected){n(!1);return}d(!0),n(!0)}),[]),y=a.useCallback(()=>{d(!1)},[]),N=a.useCallback(n=>{j.getSocket().emit(T.INPUT,{sessionId:c,data:n})},[c]),h=a.useCallback((n,u)=>{j.getSocket().emit(T.RESIZE,{sessionId:c,cols:n,rows:u})},[c]);return{isConnected:p,isAttached:r,attach:i,detach:y,sendInput:N,resize:h}}function $({className:t,...c}){return s.jsx("div",{"data-slot":"card",className:M("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...c})}function B(){const{t}=P(),[c,k]=a.useState([]),[x,b]=a.useState(""),[p,g]=a.useState(""),[r,d]=a.useState(null),[m,i]=a.useState([]),[y,N]=a.useState(!1),[h,n]=a.useState(""),u=a.useRef(null),v=a.useCallback(e=>{i(o=>{const f=o[o.length-1];return f&&f.role==="agent"?[...o.slice(0,-1),{...f,content:f.content+e}]:[...o,{role:"agent",content:e,timestamp:new Date}]})},[]),w=a.useCallback(e=>{i(o=>[...o,{role:"agent",content:`
2
2
  [${t("Process exited with code {code}",{code:e})}]`,timestamp:new Date}]),d(null)},[t]),C=a.useCallback(e=>{i(o=>[...o,{role:"agent",content:`
3
3
  [${t("Error: {message}",{message:e})}]`,timestamp:new Date}])},[t]),{isConnected:S,isAttached:l,attach:D}=U({sessionId:r||"",onOutput:v,onExit:w,onError:C});a.useEffect(()=>{I.get("/demo/agents").then(e=>{k(e.agents);const o=e.agents.find(f=>f.available);o&&b(o.type)})},[]),a.useEffect(()=>{u.current?.scrollIntoView({behavior:"smooth"})},[m]),a.useEffect(()=>{r&&S&&!l&&D()},[r,S,l,D]);const R=async()=>{if(!(!x||!p.trim())){N(!0),i([{role:"user",content:p,timestamp:new Date}]);try{const e=await I.post("/demo/start",{agentType:x,prompt:p.trim()});d(e.sessionId),g("")}catch(e){i(o=>[...o,{role:"agent",content:t("启动失败: {message}",{message:e instanceof Error?e.message:t("未知错误")}),timestamp:new Date}])}finally{N(!1)}}},A=async()=>{if(!r||!h.trim())return;const e=h.trim();i(o=>[...o,{role:"user",content:e,timestamp:new Date}]),n("");try{await I.post(`/demo/${r}/message`,{message:e})}catch(o){i(f=>[...f,{role:"agent",content:t("发送失败: {message}",{message:o instanceof Error?o.message:t("未知错误")}),timestamp:new Date}])}},_=async()=>{if(r)try{await I.post(`/demo/${r}/stop`),i(e=>[...e,{role:"agent",content:`
4
4
  [${t("会话已停止")}]`,timestamp:new Date}]),d(null)}catch(e){console.error("Stop failed:",e)}};return s.jsxs("div",{className:"flex flex-col h-full max-w-4xl mx-auto p-4 gap-4",children:[s.jsx("h1",{className:"text-2xl font-bold",children:t("Agent 交互演示")}),!r&&s.jsxs($,{className:"p-4",children:[s.jsx("h2",{className:"text-lg font-semibold mb-3",children:t("选择 Agent")}),s.jsx("div",{className:"flex gap-2 flex-wrap mb-4",children:c.map(e=>s.jsxs(O,{variant:x===e.type?"default":"outline",disabled:!e.available,onClick:()=>b(e.type),children:[e.name,e.available&&e.version&&` (${e.version})`,!e.available&&t(" (不可用)")]},e.type))}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx("input",{type:"text",value:p,onChange:e=>g(e.target.value),onKeyDown:e=>e.key==="Enter"&&!e.nativeEvent.isComposing&&e.nativeEvent.keyCode!==229&&R(),placeholder:t("输入你的问题或任务..."),className:"flex-1 px-3 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"}),s.jsx(O,{onClick:R,disabled:y||!x||!p.trim(),children:t(y?"启动中...":"开始")})]})]}),s.jsxs($,{className:"flex-1 p-4 overflow-hidden flex flex-col",children:[s.jsxs("div",{className:"flex justify-between items-center mb-3",children:[s.jsx("h2",{className:"text-lg font-semibold",children:t("对话")}),r&&s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-sm text-gray-500",children:t(S?l?"已连接":"连接中...":"未连接")}),s.jsx(O,{variant:"outline",size:"sm",onClick:_,children:t("停止")})]})]}),s.jsxs("div",{className:"flex-1 overflow-y-auto space-y-3",children:[m.length===0?s.jsx("div",{className:"text-gray-400 text-center py-8",children:t("选择 Agent 并输入问题开始对话")}):m.map((e,o)=>s.jsxs("div",{className:`p-3 rounded-lg ${e.role==="user"?"bg-blue-100 ml-8":"bg-gray-100 mr-8"}`,children:[s.jsx("div",{className:"text-xs text-gray-500 mb-1",children:e.role==="user"?t("你"):"Agent"}),s.jsx("pre",{className:"whitespace-pre-wrap font-mono text-sm",children:e.content})]},o)),s.jsx("div",{ref:u})]}),r&&s.jsxs("div",{className:"flex gap-2 mt-3 pt-3 border-t",children:[s.jsx("input",{type:"text",value:h,onChange:e=>n(e.target.value),onKeyDown:e=>e.key==="Enter"&&!e.repeat&&!e.nativeEvent.isComposing&&e.nativeEvent.keyCode!==229&&A(),placeholder:t("发送后续消息..."),className:"flex-1 px-3 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"}),s.jsx(O,{onClick:A,disabled:!h.trim(),children:t("发送")})]})]})]})}export{B as DemoPage};