botmux 3.16.0 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/dist/.runtime-build-id +1 -1
  2. package/dist/adapters/backend/riff-backend.d.ts +84 -1
  3. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  4. package/dist/adapters/backend/riff-backend.js +202 -19
  5. package/dist/adapters/backend/riff-backend.js.map +1 -1
  6. package/dist/adapters/backend/sandbox.d.ts +8 -0
  7. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  8. package/dist/adapters/backend/sandbox.js +15 -0
  9. package/dist/adapters/backend/sandbox.js.map +1 -1
  10. package/dist/adapters/backend/tmux-backend.d.ts +61 -7
  11. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/tmux-backend.js +80 -9
  13. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  14. package/dist/adapters/backend/tmux-pipe-backend.d.ts +62 -4
  15. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  16. package/dist/adapters/backend/tmux-pipe-backend.js +240 -27
  17. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  18. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  19. package/dist/adapters/cli/claude-code.js +4 -2
  20. package/dist/adapters/cli/claude-code.js.map +1 -1
  21. package/dist/adapters/cli/coco.d.ts.map +1 -1
  22. package/dist/adapters/cli/coco.js +27 -0
  23. package/dist/adapters/cli/coco.js.map +1 -1
  24. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  25. package/dist/adapters/cli/codex-app.js +28 -0
  26. package/dist/adapters/cli/codex-app.js.map +1 -1
  27. package/dist/adapters/cli/codex.d.ts.map +1 -1
  28. package/dist/adapters/cli/codex.js +51 -23
  29. package/dist/adapters/cli/codex.js.map +1 -1
  30. package/dist/adapters/cli/dsh-tui.d.ts +24 -0
  31. package/dist/adapters/cli/dsh-tui.d.ts.map +1 -0
  32. package/dist/adapters/cli/dsh-tui.js +99 -0
  33. package/dist/adapters/cli/dsh-tui.js.map +1 -0
  34. package/dist/adapters/cli/dsh.d.ts.map +1 -1
  35. package/dist/adapters/cli/dsh.js +15 -9
  36. package/dist/adapters/cli/dsh.js.map +1 -1
  37. package/dist/adapters/cli/fs-policy.d.ts +98 -1
  38. package/dist/adapters/cli/fs-policy.d.ts.map +1 -1
  39. package/dist/adapters/cli/fs-policy.js +182 -7
  40. package/dist/adapters/cli/fs-policy.js.map +1 -1
  41. package/dist/adapters/cli/grok.js +16 -18
  42. package/dist/adapters/cli/grok.js.map +1 -1
  43. package/dist/adapters/cli/model-catalog-json.d.ts +17 -0
  44. package/dist/adapters/cli/model-catalog-json.d.ts.map +1 -0
  45. package/dist/adapters/cli/model-catalog-json.js +43 -0
  46. package/dist/adapters/cli/model-catalog-json.js.map +1 -0
  47. package/dist/adapters/cli/oh-my-pi.d.ts +2 -0
  48. package/dist/adapters/cli/oh-my-pi.d.ts.map +1 -1
  49. package/dist/adapters/cli/oh-my-pi.js +45 -13
  50. package/dist/adapters/cli/oh-my-pi.js.map +1 -1
  51. package/dist/adapters/cli/opencode.js +1 -1
  52. package/dist/adapters/cli/opencode.js.map +1 -1
  53. package/dist/adapters/cli/registry.d.ts +2 -1
  54. package/dist/adapters/cli/registry.d.ts.map +1 -1
  55. package/dist/adapters/cli/registry.js +6 -1
  56. package/dist/adapters/cli/registry.js.map +1 -1
  57. package/dist/adapters/cli/relay.d.ts.map +1 -1
  58. package/dist/adapters/cli/relay.js +7 -0
  59. package/dist/adapters/cli/relay.js.map +1 -1
  60. package/dist/adapters/cli/seed.d.ts.map +1 -1
  61. package/dist/adapters/cli/seed.js +6 -0
  62. package/dist/adapters/cli/seed.js.map +1 -1
  63. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  64. package/dist/adapters/cli/shared-hints.js +20 -14
  65. package/dist/adapters/cli/shared-hints.js.map +1 -1
  66. package/dist/adapters/cli/traex.d.ts +4 -0
  67. package/dist/adapters/cli/traex.d.ts.map +1 -1
  68. package/dist/adapters/cli/traex.js +153 -0
  69. package/dist/adapters/cli/traex.js.map +1 -1
  70. package/dist/adapters/cli/types.d.ts +42 -1
  71. package/dist/adapters/cli/types.d.ts.map +1 -1
  72. package/dist/autostart.d.ts +6 -0
  73. package/dist/autostart.d.ts.map +1 -1
  74. package/dist/autostart.js +21 -1
  75. package/dist/autostart.js.map +1 -1
  76. package/dist/bot-registry.d.ts +27 -0
  77. package/dist/bot-registry.d.ts.map +1 -1
  78. package/dist/bot-registry.js +62 -2
  79. package/dist/bot-registry.js.map +1 -1
  80. package/dist/cli/vc-agent.d.ts.map +1 -1
  81. package/dist/cli/vc-agent.js +21 -3
  82. package/dist/cli/vc-agent.js.map +1 -1
  83. package/dist/cli.d.ts.map +1 -1
  84. package/dist/cli.js +92 -1
  85. package/dist/cli.js.map +1 -1
  86. package/dist/codex-app-runner.js +28 -0
  87. package/dist/codex-app-runner.js.map +1 -1
  88. package/dist/core/bot-steer-directive.d.ts +25 -0
  89. package/dist/core/bot-steer-directive.d.ts.map +1 -0
  90. package/dist/core/bot-steer-directive.js +47 -0
  91. package/dist/core/bot-steer-directive.js.map +1 -0
  92. package/dist/core/command-handler.d.ts.map +1 -1
  93. package/dist/core/command-handler.js +102 -18
  94. package/dist/core/command-handler.js.map +1 -1
  95. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  96. package/dist/core/dashboard-ipc-server.js +53 -13
  97. package/dist/core/dashboard-ipc-server.js.map +1 -1
  98. package/dist/core/dashboard-rows.d.ts +3 -0
  99. package/dist/core/dashboard-rows.d.ts.map +1 -1
  100. package/dist/core/dashboard-rows.js +26 -5
  101. package/dist/core/dashboard-rows.js.map +1 -1
  102. package/dist/core/dashboard-url.d.ts +10 -1
  103. package/dist/core/dashboard-url.d.ts.map +1 -1
  104. package/dist/core/dashboard-url.js +12 -2
  105. package/dist/core/dashboard-url.js.map +1 -1
  106. package/dist/core/dispatch.d.ts.map +1 -1
  107. package/dist/core/dispatch.js +5 -4
  108. package/dist/core/dispatch.js.map +1 -1
  109. package/dist/core/existing-app-server.d.ts +22 -0
  110. package/dist/core/existing-app-server.d.ts.map +1 -0
  111. package/dist/core/existing-app-server.js +85 -0
  112. package/dist/core/existing-app-server.js.map +1 -0
  113. package/dist/core/native-topic-id.d.ts +9 -0
  114. package/dist/core/native-topic-id.d.ts.map +1 -0
  115. package/dist/core/native-topic-id.js +14 -0
  116. package/dist/core/native-topic-id.js.map +1 -0
  117. package/dist/core/per-bot-env.d.ts.map +1 -1
  118. package/dist/core/per-bot-env.js +10 -0
  119. package/dist/core/per-bot-env.js.map +1 -1
  120. package/dist/core/plugins/mcp/gateway.d.ts +27 -3
  121. package/dist/core/plugins/mcp/gateway.d.ts.map +1 -1
  122. package/dist/core/plugins/mcp/gateway.js +272 -26
  123. package/dist/core/plugins/mcp/gateway.js.map +1 -1
  124. package/dist/core/plugins/mcp/host.d.ts +18 -0
  125. package/dist/core/plugins/mcp/host.d.ts.map +1 -1
  126. package/dist/core/plugins/mcp/host.js +80 -16
  127. package/dist/core/plugins/mcp/host.js.map +1 -1
  128. package/dist/core/plugins/mcp/launch-record.d.ts +14 -0
  129. package/dist/core/plugins/mcp/launch-record.d.ts.map +1 -0
  130. package/dist/core/plugins/mcp/launch-record.js +63 -0
  131. package/dist/core/plugins/mcp/launch-record.js.map +1 -0
  132. package/dist/core/session-activity.d.ts +11 -0
  133. package/dist/core/session-activity.d.ts.map +1 -1
  134. package/dist/core/session-activity.js +23 -0
  135. package/dist/core/session-activity.js.map +1 -1
  136. package/dist/core/session-group-birth.d.ts.map +1 -1
  137. package/dist/core/session-group-birth.js +23 -8
  138. package/dist/core/session-group-birth.js.map +1 -1
  139. package/dist/core/session-manager.d.ts +1 -4
  140. package/dist/core/session-manager.d.ts.map +1 -1
  141. package/dist/core/session-manager.js +16 -20
  142. package/dist/core/session-manager.js.map +1 -1
  143. package/dist/core/shared-adopt.d.ts +20 -0
  144. package/dist/core/shared-adopt.d.ts.map +1 -0
  145. package/dist/core/shared-adopt.js +26 -0
  146. package/dist/core/shared-adopt.js.map +1 -0
  147. package/dist/core/skills/customize-command.d.ts +7 -0
  148. package/dist/core/skills/customize-command.d.ts.map +1 -0
  149. package/dist/core/skills/customize-command.js +303 -0
  150. package/dist/core/skills/customize-command.js.map +1 -0
  151. package/dist/core/terminal-write-auth.d.ts +15 -0
  152. package/dist/core/terminal-write-auth.d.ts.map +1 -1
  153. package/dist/core/terminal-write-auth.js +15 -0
  154. package/dist/core/terminal-write-auth.js.map +1 -1
  155. package/dist/core/terminal-write-frame.d.ts +30 -0
  156. package/dist/core/terminal-write-frame.d.ts.map +1 -0
  157. package/dist/core/terminal-write-frame.js +44 -0
  158. package/dist/core/terminal-write-frame.js.map +1 -0
  159. package/dist/core/types.d.ts +14 -4
  160. package/dist/core/types.d.ts.map +1 -1
  161. package/dist/core/types.js +6 -8
  162. package/dist/core/types.js.map +1 -1
  163. package/dist/core/worker-pool.d.ts +31 -6
  164. package/dist/core/worker-pool.d.ts.map +1 -1
  165. package/dist/core/worker-pool.js +444 -102
  166. package/dist/core/worker-pool.js.map +1 -1
  167. package/dist/core/worker-startup-retry.d.ts +52 -0
  168. package/dist/core/worker-startup-retry.d.ts.map +1 -0
  169. package/dist/core/worker-startup-retry.js +68 -0
  170. package/dist/core/worker-startup-retry.js.map +1 -0
  171. package/dist/daemon.d.ts +9 -8
  172. package/dist/daemon.d.ts.map +1 -1
  173. package/dist/daemon.js +467 -171
  174. package/dist/daemon.js.map +1 -1
  175. package/dist/dashboard/autostart-api.d.ts +26 -0
  176. package/dist/dashboard/autostart-api.d.ts.map +1 -0
  177. package/dist/dashboard/autostart-api.js +88 -0
  178. package/dist/dashboard/autostart-api.js.map +1 -0
  179. package/dist/dashboard/bot-payload.d.ts +5 -0
  180. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  181. package/dist/dashboard/bot-payload.js +2 -0
  182. package/dist/dashboard/bot-payload.js.map +1 -1
  183. package/dist/dashboard/control-csrf.d.ts +29 -1
  184. package/dist/dashboard/control-csrf.d.ts.map +1 -1
  185. package/dist/dashboard/control-csrf.js +49 -10
  186. package/dist/dashboard/control-csrf.js.map +1 -1
  187. package/dist/dashboard/customization-api.d.ts +23 -0
  188. package/dist/dashboard/customization-api.d.ts.map +1 -0
  189. package/dist/dashboard/customization-api.js +198 -0
  190. package/dist/dashboard/customization-api.js.map +1 -0
  191. package/dist/dashboard/debug-terminal.d.ts +13 -1
  192. package/dist/dashboard/debug-terminal.d.ts.map +1 -1
  193. package/dist/dashboard/debug-terminal.js +18 -4
  194. package/dist/dashboard/debug-terminal.js.map +1 -1
  195. package/dist/dashboard/settings-write-applier.d.ts +0 -23
  196. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  197. package/dist/dashboard/settings-write-applier.js +7 -28
  198. package/dist/dashboard/settings-write-applier.js.map +1 -1
  199. package/dist/dashboard/terminal-control-route.d.ts +32 -0
  200. package/dist/dashboard/terminal-control-route.d.ts.map +1 -0
  201. package/dist/dashboard/terminal-control-route.js +70 -0
  202. package/dist/dashboard/terminal-control-route.js.map +1 -0
  203. package/dist/dashboard/terminal-control.d.ts +64 -13
  204. package/dist/dashboard/terminal-control.d.ts.map +1 -1
  205. package/dist/dashboard/terminal-control.js +77 -14
  206. package/dist/dashboard/terminal-control.js.map +1 -1
  207. package/dist/dashboard/terminal-front-proxy.d.ts.map +1 -1
  208. package/dist/dashboard/terminal-front-proxy.js +41 -9
  209. package/dist/dashboard/terminal-front-proxy.js.map +1 -1
  210. package/dist/dashboard/vc-consumer-profiles-api.d.ts +69 -18
  211. package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -1
  212. package/dist/dashboard/vc-consumer-profiles-api.js +149 -29
  213. package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -1
  214. package/dist/dashboard/web/agent-workbench-api.d.ts +34 -2
  215. package/dist/dashboard/web/agent-workbench-api.d.ts.map +1 -1
  216. package/dist/dashboard/web/agent-workbench-api.js +39 -4
  217. package/dist/dashboard/web/agent-workbench-api.js.map +1 -1
  218. package/dist/dashboard/web/agent-workbench-appearance.d.ts +6 -3
  219. package/dist/dashboard/web/agent-workbench-appearance.d.ts.map +1 -1
  220. package/dist/dashboard/web/agent-workbench-appearance.js +7 -4
  221. package/dist/dashboard/web/agent-workbench-appearance.js.map +1 -1
  222. package/dist/dashboard/web/agent-workbench-model.d.ts +2 -0
  223. package/dist/dashboard/web/agent-workbench-model.d.ts.map +1 -1
  224. package/dist/dashboard/web/agent-workbench-model.js.map +1 -1
  225. package/dist/dashboard/web/agent-workbench-page.js +2 -2
  226. package/dist/dashboard/web/agent-workbench-page.js.map +1 -1
  227. package/dist/dashboard/web/agent-workbench-panes.d.ts +59 -4
  228. package/dist/dashboard/web/agent-workbench-panes.d.ts.map +1 -1
  229. package/dist/dashboard/web/agent-workbench-panes.js +493 -85
  230. package/dist/dashboard/web/agent-workbench-panes.js.map +1 -1
  231. package/dist/dashboard/web/agent-workbench-session-list.d.ts +11 -7
  232. package/dist/dashboard/web/agent-workbench-session-list.d.ts.map +1 -1
  233. package/dist/dashboard/web/agent-workbench-session-list.js +24 -31
  234. package/dist/dashboard/web/agent-workbench-session-list.js.map +1 -1
  235. package/dist/dashboard/web/agent-workbench-terminal-control.d.ts +198 -0
  236. package/dist/dashboard/web/agent-workbench-terminal-control.d.ts.map +1 -0
  237. package/dist/dashboard/web/agent-workbench-terminal-control.js +292 -0
  238. package/dist/dashboard/web/agent-workbench-terminal-control.js.map +1 -0
  239. package/dist/dashboard/web/agent-workbench-view.d.ts +3 -2
  240. package/dist/dashboard/web/agent-workbench-view.d.ts.map +1 -1
  241. package/dist/dashboard/web/agent-workbench-view.js +69 -50
  242. package/dist/dashboard/web/agent-workbench-view.js.map +1 -1
  243. package/dist/dashboard/web/app.d.ts.map +1 -1
  244. package/dist/dashboard/web/app.js +58 -7
  245. package/dist/dashboard/web/app.js.map +1 -1
  246. package/dist/dashboard/web/bot-defaults-page.d.ts +24 -0
  247. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  248. package/dist/dashboard/web/bot-defaults-page.js +191 -16
  249. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  250. package/dist/dashboard/web/bot-defaults.d.ts +17 -0
  251. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  252. package/dist/dashboard/web/bot-defaults.js +51 -2
  253. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  254. package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
  255. package/dist/dashboard/web/bot-onboarding.js +32 -8
  256. package/dist/dashboard/web/bot-onboarding.js.map +1 -1
  257. package/dist/dashboard/web/confirm-modal.d.ts +35 -0
  258. package/dist/dashboard/web/confirm-modal.d.ts.map +1 -0
  259. package/dist/dashboard/web/confirm-modal.js +111 -0
  260. package/dist/dashboard/web/confirm-modal.js.map +1 -0
  261. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  262. package/dist/dashboard/web/connectors-page.js +2 -1
  263. package/dist/dashboard/web/connectors-page.js.map +1 -1
  264. package/dist/dashboard/web/customization-page.d.ts +3 -0
  265. package/dist/dashboard/web/customization-page.d.ts.map +1 -0
  266. package/dist/dashboard/web/customization-page.js +315 -0
  267. package/dist/dashboard/web/customization-page.js.map +1 -0
  268. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
  269. package/dist/dashboard/web/dashboard-routes.js +1 -0
  270. package/dist/dashboard/web/dashboard-routes.js.map +1 -1
  271. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  272. package/dist/dashboard/web/groups-page.js +11 -9
  273. package/dist/dashboard/web/groups-page.js.map +1 -1
  274. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  275. package/dist/dashboard/web/i18n.js +226 -42
  276. package/dist/dashboard/web/i18n.js.map +1 -1
  277. package/dist/dashboard/web/monitor-room.d.ts.map +1 -1
  278. package/dist/dashboard/web/monitor-room.js +3 -2
  279. package/dist/dashboard/web/monitor-room.js.map +1 -1
  280. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  281. package/dist/dashboard/web/overview-page.js +98 -63
  282. package/dist/dashboard/web/overview-page.js.map +1 -1
  283. package/dist/dashboard/web/roles-page.d.ts.map +1 -1
  284. package/dist/dashboard/web/roles-page.js +4 -3
  285. package/dist/dashboard/web/roles-page.js.map +1 -1
  286. package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
  287. package/dist/dashboard/web/schedules-page.js +165 -18
  288. package/dist/dashboard/web/schedules-page.js.map +1 -1
  289. package/dist/dashboard/web/sessions-kanban.d.ts +2 -0
  290. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
  291. package/dist/dashboard/web/sessions-kanban.js +142 -24
  292. package/dist/dashboard/web/sessions-kanban.js.map +1 -1
  293. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  294. package/dist/dashboard/web/sessions-page.js +177 -94
  295. package/dist/dashboard/web/sessions-page.js.map +1 -1
  296. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  297. package/dist/dashboard/web/sessions.js +5 -4
  298. package/dist/dashboard/web/sessions.js.map +1 -1
  299. package/dist/dashboard/web/settings-page.d.ts +0 -8
  300. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  301. package/dist/dashboard/web/settings-page.js +185 -65
  302. package/dist/dashboard/web/settings-page.js.map +1 -1
  303. package/dist/dashboard/web/skills/skill-library-tab.d.ts +2 -0
  304. package/dist/dashboard/web/skills/skill-library-tab.d.ts.map +1 -1
  305. package/dist/dashboard/web/skills/skill-library-tab.js +15 -1
  306. package/dist/dashboard/web/skills/skill-library-tab.js.map +1 -1
  307. package/dist/dashboard/web/skills-page.d.ts.map +1 -1
  308. package/dist/dashboard/web/skills-page.js +5 -4
  309. package/dist/dashboard/web/skills-page.js.map +1 -1
  310. package/dist/dashboard/web/store.d.ts +5 -0
  311. package/dist/dashboard/web/store.d.ts.map +1 -1
  312. package/dist/dashboard/web/store.js +4 -0
  313. package/dist/dashboard/web/store.js.map +1 -1
  314. package/dist/dashboard/web/team-federation-page.d.ts.map +1 -1
  315. package/dist/dashboard/web/team-federation-page.js +3 -2
  316. package/dist/dashboard/web/team-federation-page.js.map +1 -1
  317. package/dist/dashboard/web/toast.d.ts +15 -0
  318. package/dist/dashboard/web/toast.d.ts.map +1 -0
  319. package/dist/dashboard/web/toast.js +70 -0
  320. package/dist/dashboard/web/toast.js.map +1 -0
  321. package/dist/dashboard/web/v3-components.d.ts.map +1 -1
  322. package/dist/dashboard/web/v3-components.js +2 -1
  323. package/dist/dashboard/web/v3-components.js.map +1 -1
  324. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts +10 -12
  325. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
  326. package/dist/dashboard/web/vc-consumer-profiles-section.js +219 -200
  327. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
  328. package/dist/dashboard/web/whiteboards-page.d.ts.map +1 -1
  329. package/dist/dashboard/web/whiteboards-page.js +2 -1
  330. package/dist/dashboard/web/whiteboards-page.js.map +1 -1
  331. package/dist/dashboard-web/app.js +1 -1
  332. package/dist/dashboard-web/chunks/agent-workbench-dock-page-LZSUOCEQ.js +1 -0
  333. package/dist/dashboard-web/chunks/agent-workbench-page-YONDRJU7.js +1 -0
  334. package/dist/dashboard-web/chunks/bot-defaults-page-X7LV6373.js +1 -0
  335. package/dist/dashboard-web/chunks/chunk-2PVRDXEL.js +1 -0
  336. package/dist/dashboard-web/chunks/chunk-53JUKBU2.js +10 -0
  337. package/dist/dashboard-web/chunks/{chunk-5CJMHTT4.js → chunk-5QX4OYOR.js} +1 -1
  338. package/dist/dashboard-web/chunks/{chunk-NACP7BMR.js → chunk-5VRVJFQR.js} +1 -1
  339. package/dist/dashboard-web/chunks/{chunk-FDZ7WOBW.js → chunk-6ROOZWYV.js} +1 -1
  340. package/dist/dashboard-web/chunks/{chunk-F6KNPF4R.js → chunk-CK22743G.js} +15 -19
  341. package/dist/dashboard-web/chunks/chunk-CVNIMUPY.js +25 -0
  342. package/dist/dashboard-web/chunks/chunk-GJC2TMWS.js +2 -0
  343. package/dist/dashboard-web/chunks/chunk-OT6L6G7R.js +1 -0
  344. package/dist/dashboard-web/chunks/chunk-QITAMHW6.js +1 -0
  345. package/dist/dashboard-web/chunks/chunk-RHVFZC5Z.js +1 -0
  346. package/dist/dashboard-web/chunks/chunk-SOBMN2VY.js +1 -0
  347. package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +1 -0
  348. package/dist/dashboard-web/chunks/chunk-XVIXNQGC.js +44 -0
  349. package/dist/dashboard-web/chunks/chunk-YUJF34ME.js +1 -0
  350. package/dist/dashboard-web/chunks/connectors-page-LB2HEJ7F.js +1 -0
  351. package/dist/dashboard-web/chunks/customization-page-4GXBYLG6.js +105 -0
  352. package/dist/dashboard-web/chunks/feedback-page-IZQ7VLDG.js +1 -0
  353. package/dist/dashboard-web/chunks/groups-page-4WCP5OEV.js +8 -0
  354. package/dist/dashboard-web/chunks/{insights-page-HJFDYR5N.js → insights-page-TXQHIPQL.js} +1 -1
  355. package/dist/dashboard-web/chunks/{monitor-room-V7PCP47V.js → monitor-room-VBRVWXCM.js} +8 -8
  356. package/dist/dashboard-web/chunks/monitoring-page-QDDZWERE.js +2 -0
  357. package/dist/dashboard-web/chunks/office-page-PENFNYPG.js +1 -0
  358. package/dist/dashboard-web/chunks/overview-page-BZQDP6MP.js +1 -0
  359. package/dist/dashboard-web/chunks/plugin-page-JX4GSWZS.js +1 -0
  360. package/dist/dashboard-web/chunks/roles-page-VPNINZNK.js +1 -0
  361. package/dist/dashboard-web/chunks/schedules-page-BITO6HEA.js +1 -0
  362. package/dist/dashboard-web/chunks/sessions-page-ZKCOVTD2.js +8 -0
  363. package/dist/dashboard-web/chunks/settings-page-UT6JDTS6.js +2 -0
  364. package/dist/dashboard-web/chunks/skills-page-GULXVAJY.js +4 -0
  365. package/dist/dashboard-web/chunks/team-federation-page-CUUJWGEG.js +1 -0
  366. package/dist/dashboard-web/chunks/v3-page-5WVJ5AUR.js +94 -0
  367. package/dist/dashboard-web/chunks/whiteboards-page-FZ2CME4H.js +1 -0
  368. package/dist/dashboard-web/design-tokens.css +236 -0
  369. package/dist/dashboard-web/index.html +1 -0
  370. package/dist/dashboard-web/style.css +1930 -114
  371. package/dist/dashboard.js +360 -279
  372. package/dist/dashboard.js.map +1 -1
  373. package/dist/desktop/renderer/app.js +6 -0
  374. package/dist/desktop/renderer/app.js.map +1 -1
  375. package/dist/dsh-runner.js +139 -17
  376. package/dist/dsh-runner.js.map +1 -1
  377. package/dist/global-config.d.ts +33 -2
  378. package/dist/global-config.d.ts.map +1 -1
  379. package/dist/global-config.js +62 -0
  380. package/dist/global-config.js.map +1 -1
  381. package/dist/i18n/en.d.ts.map +1 -1
  382. package/dist/i18n/en.js +13 -4
  383. package/dist/i18n/en.js.map +1 -1
  384. package/dist/i18n/index.d.ts +27 -3
  385. package/dist/i18n/index.d.ts.map +1 -1
  386. package/dist/i18n/index.js +33 -4
  387. package/dist/i18n/index.js.map +1 -1
  388. package/dist/i18n/zh.d.ts.map +1 -1
  389. package/dist/i18n/zh.js +13 -4
  390. package/dist/i18n/zh.js.map +1 -1
  391. package/dist/im/lark/card-builder.d.ts +2 -0
  392. package/dist/im/lark/card-builder.d.ts.map +1 -1
  393. package/dist/im/lark/card-builder.js +7 -4
  394. package/dist/im/lark/card-builder.js.map +1 -1
  395. package/dist/im/lark/card-handler.d.ts.map +1 -1
  396. package/dist/im/lark/card-handler.js +135 -20
  397. package/dist/im/lark/card-handler.js.map +1 -1
  398. package/dist/im/lark/event-dispatcher.d.ts +38 -3
  399. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  400. package/dist/im/lark/event-dispatcher.js +163 -13
  401. package/dist/im/lark/event-dispatcher.js.map +1 -1
  402. package/dist/im/lark/v3-blocked-card-handler.d.ts.map +1 -1
  403. package/dist/im/lark/v3-blocked-card-handler.js +2 -1
  404. package/dist/im/lark/v3-blocked-card-handler.js.map +1 -1
  405. package/dist/im/lark/v3-blocked-card.d.ts +1 -1
  406. package/dist/im/lark/v3-blocked-card.d.ts.map +1 -1
  407. package/dist/im/lark/v3-blocked-card.js +14 -0
  408. package/dist/im/lark/v3-blocked-card.js.map +1 -1
  409. package/dist/index-core-only.js +2 -0
  410. package/dist/index-core-only.js.map +1 -1
  411. package/dist/index-daemon.js +3 -0
  412. package/dist/index-daemon.js.map +1 -1
  413. package/dist/platform/binding.d.ts +37 -0
  414. package/dist/platform/binding.d.ts.map +1 -1
  415. package/dist/platform/binding.js +15 -0
  416. package/dist/platform/binding.js.map +1 -1
  417. package/dist/services/bridge-turn-journal.d.ts +63 -0
  418. package/dist/services/bridge-turn-journal.d.ts.map +1 -0
  419. package/dist/services/bridge-turn-journal.js +149 -0
  420. package/dist/services/bridge-turn-journal.js.map +1 -0
  421. package/dist/services/bridge-turn-queue.d.ts +8 -1
  422. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  423. package/dist/services/bridge-turn-queue.js +2 -1
  424. package/dist/services/bridge-turn-queue.js.map +1 -1
  425. package/dist/services/codex-app-runner-protocol.d.ts +5 -0
  426. package/dist/services/codex-app-runner-protocol.d.ts.map +1 -1
  427. package/dist/services/codex-app-runner-protocol.js +5 -0
  428. package/dist/services/codex-app-runner-protocol.js.map +1 -1
  429. package/dist/services/customization-store.d.ts +93 -0
  430. package/dist/services/customization-store.d.ts.map +1 -0
  431. package/dist/services/customization-store.js +542 -0
  432. package/dist/services/customization-store.js.map +1 -0
  433. package/dist/services/file-bridge-path.d.ts.map +1 -1
  434. package/dist/services/file-bridge-path.js +3 -0
  435. package/dist/services/file-bridge-path.js.map +1 -1
  436. package/dist/services/grok-transcript.d.ts.map +1 -1
  437. package/dist/services/grok-transcript.js +44 -9
  438. package/dist/services/grok-transcript.js.map +1 -1
  439. package/dist/services/local-cli-opener.d.ts.map +1 -1
  440. package/dist/services/local-cli-opener.js +12 -3
  441. package/dist/services/local-cli-opener.js.map +1 -1
  442. package/dist/services/model-catalog.d.ts +54 -0
  443. package/dist/services/model-catalog.d.ts.map +1 -0
  444. package/dist/services/model-catalog.js +147 -0
  445. package/dist/services/model-catalog.js.map +1 -0
  446. package/dist/services/omp-transcript.d.ts +27 -0
  447. package/dist/services/omp-transcript.d.ts.map +1 -0
  448. package/dist/services/omp-transcript.js +214 -0
  449. package/dist/services/omp-transcript.js.map +1 -0
  450. package/dist/services/platform-team-store.d.ts +16 -8
  451. package/dist/services/platform-team-store.d.ts.map +1 -1
  452. package/dist/services/platform-team-store.js +17 -10
  453. package/dist/services/platform-team-store.js.map +1 -1
  454. package/dist/services/project-scanner.d.ts.map +1 -1
  455. package/dist/services/project-scanner.js +13 -8
  456. package/dist/services/project-scanner.js.map +1 -1
  457. package/dist/services/resumable-session-discovery.d.ts.map +1 -1
  458. package/dist/services/resumable-session-discovery.js +117 -35
  459. package/dist/services/resumable-session-discovery.js.map +1 -1
  460. package/dist/services/structured-bridge-clis.d.ts +5 -3
  461. package/dist/services/structured-bridge-clis.d.ts.map +1 -1
  462. package/dist/services/structured-bridge-clis.js +5 -1
  463. package/dist/services/structured-bridge-clis.js.map +1 -1
  464. package/dist/services/vc-meeting-action-gate.d.ts.map +1 -1
  465. package/dist/services/vc-meeting-action-gate.js +15 -4
  466. package/dist/services/vc-meeting-action-gate.js.map +1 -1
  467. package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts +46 -66
  468. package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts.map +1 -1
  469. package/dist/services/vc-meeting-consumer-profile-bootstrap.js +33 -292
  470. package/dist/services/vc-meeting-consumer-profile-bootstrap.js.map +1 -1
  471. package/dist/services/vc-meeting-consumer-profile-templates.js +3 -3
  472. package/dist/services/vc-meeting-consumer-profile-templates.js.map +1 -1
  473. package/dist/services/vc-meeting-delivery-store.d.ts +18 -0
  474. package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -1
  475. package/dist/services/vc-meeting-delivery-store.js +55 -0
  476. package/dist/services/vc-meeting-delivery-store.js.map +1 -1
  477. package/dist/services/vc-meeting-send-policy.d.ts +21 -1
  478. package/dist/services/vc-meeting-send-policy.d.ts.map +1 -1
  479. package/dist/services/vc-meeting-send-policy.js +30 -2
  480. package/dist/services/vc-meeting-send-policy.js.map +1 -1
  481. package/dist/services/vc-meeting-shared-consumer-catalog-store.d.ts +78 -0
  482. package/dist/services/vc-meeting-shared-consumer-catalog-store.d.ts.map +1 -0
  483. package/dist/services/vc-meeting-shared-consumer-catalog-store.js +227 -0
  484. package/dist/services/vc-meeting-shared-consumer-catalog-store.js.map +1 -0
  485. package/dist/services/vc-meeting-shared-consumer-catalog.d.ts +53 -0
  486. package/dist/services/vc-meeting-shared-consumer-catalog.d.ts.map +1 -0
  487. package/dist/services/vc-meeting-shared-consumer-catalog.js +161 -0
  488. package/dist/services/vc-meeting-shared-consumer-catalog.js.map +1 -0
  489. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  490. package/dist/setup/bot-config-editor.js +1 -0
  491. package/dist/setup/bot-config-editor.js.map +1 -1
  492. package/dist/setup/open-platform-automation.d.ts +20 -0
  493. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  494. package/dist/setup/open-platform-automation.js +27 -0
  495. package/dist/setup/open-platform-automation.js.map +1 -1
  496. package/dist/skills/customization-bundle.d.ts +83 -0
  497. package/dist/skills/customization-bundle.d.ts.map +1 -0
  498. package/dist/skills/customization-bundle.js +214 -0
  499. package/dist/skills/customization-bundle.js.map +1 -0
  500. package/dist/skills/definitions.d.ts.map +1 -1
  501. package/dist/skills/definitions.js +10 -3
  502. package/dist/skills/definitions.js.map +1 -1
  503. package/dist/skills/effective-builtins.d.ts +38 -0
  504. package/dist/skills/effective-builtins.d.ts.map +1 -0
  505. package/dist/skills/effective-builtins.js +96 -0
  506. package/dist/skills/effective-builtins.js.map +1 -0
  507. package/dist/skills/injection-mode.d.ts +4 -1
  508. package/dist/skills/injection-mode.d.ts.map +1 -1
  509. package/dist/skills/injection-mode.js +11 -3
  510. package/dist/skills/injection-mode.js.map +1 -1
  511. package/dist/skills/installer.d.ts.map +1 -1
  512. package/dist/skills/installer.js +24 -1
  513. package/dist/skills/installer.js.map +1 -1
  514. package/dist/skills/prompt-fragments.d.ts +58 -0
  515. package/dist/skills/prompt-fragments.d.ts.map +1 -0
  516. package/dist/skills/prompt-fragments.js +88 -0
  517. package/dist/skills/prompt-fragments.js.map +1 -0
  518. package/dist/types.d.ts +51 -0
  519. package/dist/types.d.ts.map +1 -1
  520. package/dist/utils/cli-usage-limit.d.ts +50 -0
  521. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  522. package/dist/utils/cli-usage-limit.js +43 -0
  523. package/dist/utils/cli-usage-limit.js.map +1 -1
  524. package/dist/utils/idle-detector.d.ts +12 -0
  525. package/dist/utils/idle-detector.d.ts.map +1 -1
  526. package/dist/utils/idle-detector.js +88 -2
  527. package/dist/utils/idle-detector.js.map +1 -1
  528. package/dist/utils/stuck-detector.d.ts +5 -0
  529. package/dist/utils/stuck-detector.d.ts.map +1 -1
  530. package/dist/utils/stuck-detector.js +41 -0
  531. package/dist/utils/stuck-detector.js.map +1 -1
  532. package/dist/utils/usage-limit-tracker.d.ts +46 -0
  533. package/dist/utils/usage-limit-tracker.d.ts.map +1 -0
  534. package/dist/utils/usage-limit-tracker.js +91 -0
  535. package/dist/utils/usage-limit-tracker.js.map +1 -0
  536. package/dist/utils/user-token.js +1 -1
  537. package/dist/utils/user-token.js.map +1 -1
  538. package/dist/worker.js +812 -125
  539. package/dist/worker.js.map +1 -1
  540. package/dist/workflows/definition.d.ts +14 -14
  541. package/dist/workflows/events/payloads.d.ts +12 -12
  542. package/dist/workflows/events/schema.d.ts +164 -164
  543. package/dist/workflows/migration/v2-to-v3.js +1 -1
  544. package/dist/workflows/migration/v2-to-v3.js.map +1 -1
  545. package/dist/workflows/v3/architect.d.ts.map +1 -1
  546. package/dist/workflows/v3/architect.js +11 -5
  547. package/dist/workflows/v3/architect.js.map +1 -1
  548. package/dist/workflows/v3/artifact-contract-declarations.d.ts +22 -0
  549. package/dist/workflows/v3/artifact-contract-declarations.d.ts.map +1 -0
  550. package/dist/workflows/v3/artifact-contract-declarations.js +95 -0
  551. package/dist/workflows/v3/artifact-contract-declarations.js.map +1 -0
  552. package/dist/workflows/v3/contract.d.ts +1 -0
  553. package/dist/workflows/v3/contract.d.ts.map +1 -1
  554. package/dist/workflows/v3/contract.js.map +1 -1
  555. package/dist/workflows/v3/daemon-run.d.ts +2 -2
  556. package/dist/workflows/v3/daemon-run.d.ts.map +1 -1
  557. package/dist/workflows/v3/daemon-run.js +4 -0
  558. package/dist/workflows/v3/daemon-run.js.map +1 -1
  559. package/dist/workflows/v3/dag.d.ts +7 -0
  560. package/dist/workflows/v3/dag.d.ts.map +1 -1
  561. package/dist/workflows/v3/dag.js +69 -8
  562. package/dist/workflows/v3/dag.js.map +1 -1
  563. package/dist/workflows/v3/ephemeral-pool.js +1 -1
  564. package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
  565. package/dist/workflows/v3/event-contract.d.ts +3 -1
  566. package/dist/workflows/v3/event-contract.d.ts.map +1 -1
  567. package/dist/workflows/v3/host.d.ts.map +1 -1
  568. package/dist/workflows/v3/host.js +5 -1
  569. package/dist/workflows/v3/host.js.map +1 -1
  570. package/dist/workflows/v3/journal.d.ts +1 -1
  571. package/dist/workflows/v3/journal.d.ts.map +1 -1
  572. package/dist/workflows/v3/journal.js.map +1 -1
  573. package/dist/workflows/v3/library-materialize.d.ts.map +1 -1
  574. package/dist/workflows/v3/library-materialize.js +9 -1
  575. package/dist/workflows/v3/library-materialize.js.map +1 -1
  576. package/dist/workflows/v3/library-schema.d.ts +3 -1
  577. package/dist/workflows/v3/library-schema.d.ts.map +1 -1
  578. package/dist/workflows/v3/library-schema.js +20 -4
  579. package/dist/workflows/v3/library-schema.js.map +1 -1
  580. package/dist/workflows/v3/library-store.d.ts.map +1 -1
  581. package/dist/workflows/v3/library-store.js +15 -3
  582. package/dist/workflows/v3/library-store.js.map +1 -1
  583. package/dist/workflows/v3/run-envelope.d.ts +16 -16
  584. package/dist/workflows/v3/shared-node-runtime.d.ts +2 -1
  585. package/dist/workflows/v3/shared-node-runtime.d.ts.map +1 -1
  586. package/dist/workflows/v3/shared-node-runtime.js +48 -7
  587. package/dist/workflows/v3/shared-node-runtime.js.map +1 -1
  588. package/package.json +2 -1
  589. package/dist/dashboard-web/chunks/agent-workbench-dock-page-IKAC5CFL.js +0 -1
  590. package/dist/dashboard-web/chunks/agent-workbench-page-M53UN5EB.js +0 -1
  591. package/dist/dashboard-web/chunks/bot-defaults-page-YKE5SDZF.js +0 -10
  592. package/dist/dashboard-web/chunks/chunk-22WIADUT.js +0 -2
  593. package/dist/dashboard-web/chunks/chunk-24ONYQMR.js +0 -1
  594. package/dist/dashboard-web/chunks/chunk-2W6SCN3M.js +0 -1
  595. package/dist/dashboard-web/chunks/chunk-4XNJX6B3.js +0 -1
  596. package/dist/dashboard-web/chunks/chunk-5THX4DI2.js +0 -66
  597. package/dist/dashboard-web/chunks/chunk-7SZRL6FY.js +0 -1
  598. package/dist/dashboard-web/chunks/chunk-AGCPF6MT.js +0 -1
  599. package/dist/dashboard-web/chunks/chunk-FXW3V4JR.js +0 -1
  600. package/dist/dashboard-web/chunks/chunk-SYC6D5XU.js +0 -1
  601. package/dist/dashboard-web/chunks/connectors-page-VOISXXII.js +0 -1
  602. package/dist/dashboard-web/chunks/feedback-page-RN6HRZMS.js +0 -1
  603. package/dist/dashboard-web/chunks/groups-page-UQT6DCB7.js +0 -8
  604. package/dist/dashboard-web/chunks/monitoring-page-NKEKVQAP.js +0 -2
  605. package/dist/dashboard-web/chunks/office-page-GVJF73XW.js +0 -1
  606. package/dist/dashboard-web/chunks/overview-page-KHLV6VTI.js +0 -1
  607. package/dist/dashboard-web/chunks/plugin-page-J3OF5IY4.js +0 -1
  608. package/dist/dashboard-web/chunks/roles-page-WQIRSOLZ.js +0 -1
  609. package/dist/dashboard-web/chunks/schedules-page-J2DEY2X6.js +0 -1
  610. package/dist/dashboard-web/chunks/sessions-page-7BQFEA5P.js +0 -8
  611. package/dist/dashboard-web/chunks/settings-page-BJEIOFJH.js +0 -2
  612. package/dist/dashboard-web/chunks/skills-page-HGIFR3IU.js +0 -4
  613. package/dist/dashboard-web/chunks/team-federation-page-MR5ZPL4B.js +0 -1
  614. package/dist/dashboard-web/chunks/v3-page-GBR5JWPE.js +0 -94
  615. package/dist/dashboard-web/chunks/whiteboards-page-QAZM4BN3.js +0 -1
  616. package/dist/services/vc-meeting-consumer-profile-store.d.ts +0 -39
  617. package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +0 -1
  618. package/dist/services/vc-meeting-consumer-profile-store.js +0 -191
  619. package/dist/services/vc-meeting-consumer-profile-store.js.map +0 -1
@@ -0,0 +1 @@
1
+ import{A as on,B as le,C as rn,D as an,E as sn,F as ve,G as ln,H as cn,I as dn,J as un,K as mn,L as bn,M as fn,a as se,b as $e,c as Be,d as Ge,e as Ae,f as Xe,g as Re,h as ye,i as qe,j as Me,k as Ue,l as ze,m as ge,q as Je,r as xe,s as Ve,t as je,u as Ye,v as Qe,w as Ze,x as en,y as nn,z as tn}from"./chunk-GJC2TMWS.js";import"./chunk-ZJVTGU5X.js";import{a as Oe}from"./chunk-RHVFZC5Z.js";import"./chunk-QITAMHW6.js";import{w as pe}from"./chunk-CK22743G.js";import{c as Ke}from"./chunk-XVIXNQGC.js";import{c as H,d as Pe,e as te}from"./chunk-CVNIMUPY.js";var We=H(Pe(),1);var d=H(Pe(),1);var i=H(Pe(),1);function pn(){return{phase:"loading",authoritative:null,observeEpoch:0,observeIssueEpoch:0,observeIssuedDuringWrite:!1,writeEpoch:0,pending:null,mayWrite:!1,error:null,frameGeneration:0,reconcileNonce:0}}function hn(e){return e.mode==="controlled"&&e.owned?"controlled":"readonly"}function ce(e){return e?.mode==="controlled"&&e.owned}function yn(e){return e.phase==="taking-over"||e.phase==="releasing"}function gn(e){return e.phase==="readonly"||e.phase==="controlled"}function wn(e){return e.observeIssueEpoch<e.writeEpoch||e.observeIssuedDuringWrite}function vn(e){return e.phase==="unknown"&&e.mayWrite}function kn(e){switch(e.phase){case"loading":return"loading";case"unknown":return"unknown";case"controlled":return"controlled";case"readonly":return"readonly";default:return ce(e.authoritative)?"controlled":"readonly"}}function Tn(e,n){switch(n.type){case"observe-start":return{...e,observeEpoch:n.epoch,observeIssueEpoch:e.writeEpoch,observeIssuedDuringWrite:e.pending!==null,phase:n.source==="load"&&!e.pending?"loading":e.phase};case"observe-settled":{if(n.epoch!==e.observeEpoch||e.pending||wn(e))return e;let r=ce(e.authoritative)&&!ce(n.control);return{...e,phase:hn(n.control),authoritative:n.control,mayWrite:ce(n.control),error:e.error?.from==="write"?e.error:null,frameGeneration:e.frameGeneration+(r?1:0)}}case"observe-failed":{if(n.epoch!==e.observeEpoch||e.pending||wn(e))return e;let r={text:n.error,from:"observe"};return!e.authoritative&&n.canHoldLease?{...e,phase:"unknown",mayWrite:!0,error:r}:e.authoritative?{...e,error:r}:{...e,phase:"readonly",authoritative:{mode:"readonly",owned:!1},mayWrite:!1,error:r}}case"settle-readonly":return e.phase==="readonly"&&e.authoritative?.mode==="readonly"&&!e.pending&&!e.mayWrite&&!e.error?e:{...e,phase:"readonly",authoritative:{mode:"readonly",owned:!1},pending:null,mayWrite:!1,error:null};case"write-start":return{...e,writeEpoch:n.epoch,pending:{action:n.action,epoch:n.epoch},phase:n.action==="takeover"?"taking-over":"releasing",mayWrite:!0,error:null};case"write-settled":return n.epoch!==e.writeEpoch?e:{...e,phase:hn(n.control),authoritative:n.control,pending:null,mayWrite:ce(n.control),error:null,frameGeneration:e.frameGeneration+1};case"write-failed":return n.epoch!==e.writeEpoch?e:{...e,phase:"unknown",pending:null,mayWrite:!0,error:{text:n.error,from:"write"},reconcileNonce:e.reconcileNonce+1};default:return e}}var Wn="botmux:wb-terminal-write",de=new Map;function Sn(e,n){let r=de.get(e);return r||(r=new Set,de.set(e,r)),r.add(n),()=>{let c=de.get(e);c&&(c.delete(n),c.size===0&&de.delete(e))}}function Cn(e){return(de.get(e)?.size??0)>0}function ue(e,n=0){return{sessionId:e,mode:"loading",fixed:!1,toggleOnly:!1,busy:!1,generation:n}}function In(e,n){return e?e.sessionId===n?e:ue(n):null}function En(e,n){return e&&e.busy&&e.sessionId===n?e:!e||e.sessionId!==n?ue(n):e.toggleOnly||e.mode!=="controlled"?null:ue(n,e.generation+1)}function Ln(e,n){return!e||e.sessionId!==n.sessionId||e.mode===n.mode&&e.fixed===n.fixed&&e.toggleOnly===n.toggleOnly&&e.busy===n.busy?e:{...e,mode:n.mode,fixed:n.fixed,toggleOnly:n.toggleOnly,busy:n.busy}}var o=H(te(),1);function _n(e){try{let n=e?.contentWindow?.document?.getElementById("status")?.textContent?.trim();return n==="connected"?"connected":n==="disconnected"?"disconnected":"unknown"}catch{return"unknown"}}function Fn(e){try{let r=e?.contentWindow?.wsHasWrite;return r===!0?"writable":r===!1?"readonly":"unknown"}catch{return"unknown"}}function Dn(e){if(!e||typeof e!="object")return null;let n=e;return n.type!==Wn?null:n.write===null?"unknown":typeof n.write=="boolean"?n.write?"writable":"readonly":null}var Pn=1e3,Hn=8;function Kn(e){let{enabled:n,frameKey:r,sessionId:c}=e,[f,p]=(0,i.useState)(!1),[y,l]=(0,i.useState)(null),u=(0,i.useRef)(!1),v=(0,i.useRef)(e.read);(0,i.useEffect)(()=>{v.current=e.read}),(0,i.useEffect)(()=>{u.current=!1,p(!1)},[c]),(0,i.useEffect)(()=>{if(!n||u.current||y!==r)return;let S=0,T=setInterval(()=>{let k=v.current();if(k==="connected"){u.current=!0,p(!1),clearInterval(T);return}if(k!=="disconnected"){S=0;return}S+=1,S>=Hn&&p(!0)},Pn);return()=>clearInterval(T)},[n,r,y]);let _=(0,i.useCallback)(()=>l(r),[r]);return{blocked:n&&f,onFrameLoad:n?_:void 0}}var On=5;function $n(e){let{enabled:n,frameKey:r}=e,[c,f]=(0,i.useState)("unknown"),p=(0,i.useRef)(e.read);return(0,i.useEffect)(()=>{p.current=e.read}),(0,i.useEffect)(()=>{if(!n)return;f("unknown");let y=0,l=()=>{let v=p.current();return v==="unknown"?!1:(f(v),!0)};if(l())return;let u=setInterval(()=>{y+=1,(l()||y>=On)&&clearInterval(u)},Pn);return()=>clearInterval(u)},[n,r]),n?c:"unknown"}function Bn(e){let{enabled:n,frameKey:r}=e,[c,f]=(0,i.useState)({write:"unknown",live:!1}),p=(0,i.useRef)(e.frame);return(0,i.useEffect)(()=>{p.current=e.frame}),(0,i.useEffect)(()=>{if(f({write:"unknown",live:!1}),!n||typeof window>"u"||!window.addEventListener)return;let y=l=>{let u=p.current()?.contentWindow;if(!u||l.source!==u)return;let v=Dn(l.data);v!==null&&f({write:v,live:!0})};return window.addEventListener("message",y),()=>window.removeEventListener("message",y)},[n,r]),n?c:{write:"unknown",live:!1}}function Gn(){try{return typeof window>"u"?void 0:window.location?.href}catch{return}}function Te(e){return e instanceof xe?{authentication_required:"\u9700\u8981\u767B\u5F55\u8BA4\u8BC1",session_not_active:"\u4F1A\u8BDD\u5DF2\u4E0D\u518D\u6D3B\u8DC3",daemon_offline:"\u6240\u5C5E daemon \u5DF2\u79BB\u7EBF",terminal_unavailable:"\u7EC8\u7AEF\u4E0D\u53EF\u7528",control_busy:"\u53E6\u4E00\u4E2A\u6D4F\u89C8\u5668\u6B63\u5728\u63A7\u5236\u8BE5\u7EC8\u7AEF",preview_not_registered:"\u672A\u6CE8\u518C\u7F51\u9875\u9884\u89C8",control_request_timeout:"\u63A7\u5236\u6743\u8BF7\u6C42\u8D85\u65F6"}[e.code]??e.code.replaceAll("_"," "):e instanceof Error?e.message:String(e)}var Xn=1e4;async function qn(e,n=Xn){let r=new AbortController,c,f=new Promise((p,y)=>{c=setTimeout(()=>{try{r.abort()}catch{}y(new xe(504,"control_request_timeout"))},n)});f.catch(()=>{});try{return await Promise.race([e(r.signal),f])}finally{c!==void 0&&clearTimeout(c)}}function Un(e){let n=(0,i.useRef)(null);return(0,i.useEffect)(()=>{try{n.current?.focus?.()}catch{}},[]),(0,o.jsxs)("div",{ref:n,tabIndex:-1,className:"wb-pane-empty wb-control-unknown",role:"status",children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"\u25C7"}),(0,o.jsx)("strong",{children:"\u63A7\u5236\u6743\u72B6\u6001\u672A\u77E5"}),(0,o.jsx)("p",{children:"\u6CA1\u6709\u62FF\u5230\u786E\u8BA4\uFF0C\u8FD9\u5757\u7EC8\u7AEF\u53EF\u80FD\u4ECD\u7136\u53EF\u5199\u3002\u5DF2\u65AD\u5F00\u7EC8\u7AEF\u753B\u9762\u6321\u4F4F\u8F93\u5165\uFF0C\u6B63\u5728\u91CD\u65B0\u786E\u8BA4\u3002"}),(0,o.jsx)("button",{type:"button",onClick:e.onRetry,children:"\u7ACB\u5373\u91CD\u8BD5"})]})}function An(e){let[n,r]=(0,i.useReducer)(Tn,void 0,pn),c=(0,i.useRef)(0),f=(0,i.useRef)(0),p=(0,i.useRef)(!0);(0,i.useEffect)(()=>(p.current=!0,()=>{p.current=!1}),[]);let y=Ue(e.session,e.location),l=ze(e.session),u=bn(),{link:v,phase:_,retry:S}=fn({api:e.api,sessionId:e.session.sessionId,enabled:!l&&(u||!e.authenticated)}),T=v?v.url:null,k=!l&&u?T:e.authenticated?y:T,g=e.session.sessionId,I=(0,i.useCallback)(async(w,t)=>{if(!y||l||!e.authenticated){r({type:"settle-readonly"});return}let a=++c.current;r({type:"observe-start",epoch:a,source:w});try{let m=await e.api.getTerminalControl(g,t);r({type:"observe-settled",epoch:a,control:m})}catch(m){if(t?.aborted)return;r({type:"observe-failed",epoch:a,error:Te(m),canHoldLease:e.capabilities.canControl&&!u})}},[l,e.api,e.authenticated,e.capabilities.canControl,g,y,u]);(0,i.useEffect)(()=>{let w=new AbortController;I("load",w.signal);let t=setInterval(()=>{I("poll",w.signal)},15e3);return()=>{c.current+=1,clearInterval(t),w.abort()}},[I]);let K=n.authoritative?.expiresAt;(0,i.useEffect)(()=>{if(n.phase!=="controlled"||!K)return;let w=setTimeout(()=>{I("poll")},Math.max(0,K-Date.now())+25);return()=>clearTimeout(w)},[K,n.phase,I]),(0,i.useEffect)(()=>{if(n.reconcileNonce===0)return;let w=new AbortController;return I("reconcile",w.signal),()=>w.abort()},[n.reconcileNonce,I]);let B=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(e.autoTakeControl===void 0||!e.authenticated||!e.capabilities.canControl||u||!gn(n))return;let w=n.authoritative;!w||w.fixed||B.current!==g&&(B.current=g,w.mode==="controlled"&&w.owned&&L("release"))});let M=(0,i.useRef)(new Map),b=()=>{let w=[...M.current.values()];return M.current.clear(),w},C=(0,i.useCallback)(async w=>{for(let t of w)Cn(t.sessionId)||await e.api.releaseTerminal(t.sessionId,void 0,t.acquisitionId).catch(()=>{})},[e.api]),E=(0,i.useRef)(0),L=async w=>{let t=++f.current,a=w==="takeover"?Je():void 0;a&&M.current.set(a,{sessionId:g,acquisitionId:a}),E.current+=1,r({type:"write-start",epoch:t,action:w});try{let m=await qn(W=>w==="takeover"?e.api.takeoverTerminal(g,W,a):e.api.releaseTerminal(g,W));if((w==="release"||m.fixed===!0)&&M.current.clear(),!p.current){C(b());return}r({type:"write-settled",epoch:t,control:m})}catch(m){if(!p.current){C(b());return}r({type:"write-failed",epoch:t,error:Te(m)})}finally{E.current-=1}};(0,i.useEffect)(()=>{n.authoritative?.fixed===!0&&M.current.clear()},[n.authoritative]);let O=(0,i.useRef)(C);(0,i.useEffect)(()=>{O.current=C}),(0,i.useEffect)(()=>()=>{if(E.current>0)return;let w=[...M.current.values()];w.length!==0&&(M.current.clear(),Promise.resolve().then(()=>O.current(w)))},[g]);let me=(0,i.useRef)({});(0,i.useEffect)(()=>{if(n.mayWrite)return Sn(g,me.current)},[n.mayWrite,g]);let G=(0,i.useRef)(null),be=(0,i.useRef)(0),oe=(0,i.useRef)(void 0);oe.current!==k&&(oe.current!==void 0&&(be.current+=1),oe.current=k);let z=`${g}-${n.frameGeneration}-l${be.current}`,X=e.readFrameStatus??_n,h=Kn({enabled:u,sessionId:g,frameKey:z,read:()=>X(G.current)}),J=e.readFrameWrite??Fn,Se=$n({enabled:u,frameKey:z,read:()=>J(G.current)}),P=Bn({enabled:u,frameKey:z,frame:()=>G.current}),fe=P.live?P.write:Se,{appearance:q,skin:V}=Ze(),A=(0,i.useCallback)(()=>{Qe(G.current,k,q.termStyle,V,Gn())},[q.termStyle,k,V]);(0,i.useEffect)(()=>{A()},[A]);let Fe=(0,i.useCallback)(()=>{h.onFrameLoad?.(),A()},[h,A]),U=n.authoritative,j=yn(n),Y=U?.fixed===!0,re=!l&&!!y&&e.authenticated&&e.capabilities.canControl&&!u&&!Y,he=fe!=="unknown"?fe:Y?"unknown":"readonly",R=u?he==="writable"?"controlled":he==="readonly"?"readonly":"unknown":kn(n),F=R==="controlled",Ce=F?"\u53EF\u8F93\u5165":R==="unknown"?"\u672A\u77E5":R==="loading"?"\u68C0\u67E5\u4E2D":"\u53EA\u8BFB",Ie=F?"is-controlled":R==="unknown"?"is-unknown":R==="loading"?"is-checking":"is-readonly",Ee=F?"\u25C6":R==="unknown"?"\u25C7":R==="loading"?"\u22EF":"\u25CC",ie=!u&&vn(n),Le=!l&&!!y&&!u&&e.authenticated&&e.capabilities.canControl,we=n.phase==="loading"&&Le,ae=ie||we,Q=e.onControlModeChange,Z=!re;(0,i.useEffect)(()=>{Q?.({sessionId:g,mode:R,fixed:Y,toggleOnly:Z,busy:j})},[j,Y,Q,R,g,Z]);let ee=F&&U?.expiresAt?Me(U.expiresAt,e.now,"zh-CN"):null;return(0,o.jsxs)("section",{className:`wb-pane wb-terminal-pane ${je(q.termStyle)}`,style:Ye(q.termStyle,V),"aria-label":"\u7EC8\u7AEF\u9762\u677F",children:[(0,o.jsxs)("header",{className:"wb-pane-titlebar",children:[(0,o.jsxs)("div",{className:"wb-pane-identity",children:[(0,o.jsx)("span",{className:"wb-pane-glyph","aria-hidden":"true",children:"\u203A_"}),(0,o.jsx)("strong",{children:"\u7EC8\u7AEF"}),(0,o.jsxs)("span",{className:`wb-mode-chip ${Ie}`,children:[(0,o.jsx)("span",{"aria-hidden":"true",children:Ee}),Ce]}),ee?(0,o.jsx)("span",{className:"wb-lease-time",children:`${ee}\u5230\u671F`}):null]}),(0,o.jsx)(nn,{termStyle:q.termStyle}),(0,o.jsxs)("div",{className:"wb-pane-actions",children:[k?(0,o.jsx)("a",{href:k,target:"_blank",rel:"noopener noreferrer",children:"\u65B0\u6807\u7B7E\u9875\u6253\u5F00"}):null,re?F?(0,o.jsx)("button",{type:"button",disabled:j,onClick:()=>{L("release")},children:"\u91CA\u653E\u8F93\u5165"}):(0,o.jsx)("button",{type:"button",disabled:j,onClick:()=>{L("takeover")},children:"\u63A5\u7BA1\u8F93\u5165"}):null]})]}),(0,o.jsx)("div",{className:"wb-pane-feedback",role:"status","aria-live":"polite",children:u?F?"\u5F53\u524D\u8EAB\u4EFD\u5728\u624B\u673A\u7AEF\u4E5F\u53EF\u76F4\u63A5\u8F93\u5165\u3002":R==="unknown"?"\u53EA\u8BFB\u94FE\u63A5\u67E5\u770B\u4E2D\uFF0C\u80FD\u5426\u8F93\u5165\u4EE5\u7EC8\u7AEF\u9875\u5185\u7684\u63D0\u793A\u4E3A\u51C6\u3002":"\u53EA\u8BFB\u67E5\u770B\u4E2D\u3002\u624B\u673A\u7AEF\u4E3A\u53EA\u8BFB\u89C6\u56FE\uFF0C\u9700\u8981\u8F93\u5165\u8BF7\u5728\u7535\u8111\u4E0A\u64CD\u4F5C\u3002":n.phase==="loading"?"\u6B63\u5728\u68C0\u67E5\u7EC8\u7AEF\u6743\u9650\u2026":n.phase==="taking-over"?"\u6B63\u5728\u63A5\u7BA1\u8F93\u5165\u2026":n.phase==="releasing"?"\u6B63\u5728\u91CA\u653E\u8F93\u5165\u2026":n.error?`${n.error.text}${n.phase==="unknown"?"\uFF1B\u63A7\u5236\u6743\u72B6\u6001\u672A\u77E5\uFF0C\u6B63\u5728\u91CD\u65B0\u786E\u8BA4\u2026":""}`:n.phase==="unknown"?"\u63A7\u5236\u6743\u72B6\u6001\u672A\u77E5\uFF0C\u6B63\u5728\u91CD\u65B0\u786E\u8BA4\u2026":U?.fixed?"\u5E73\u53F0\u6240\u6709\u8005\u8EAB\u4EFD\u5DF2\u767B\u5F55\uFF0C\u53EF\u76F4\u63A5\u8F93\u5165\u3002":F?"\u5DF2\u63A5\u7BA1\uFF0C\u53EF\u952E\u76D8\u8F93\u5165\u3002":e.authenticated&&e.capabilities.canControl?"\u53EA\u8BFB\u67E5\u770B\u4E2D\uFF0C\u70B9\u300C\u63A5\u7BA1\u8F93\u5165\u300D\u53EF\u64CD\u4F5C\u3002":e.authenticated?"\u53EA\u8BFB\u67E5\u770B\u4E2D\uFF0C\u5F53\u524D\u8EAB\u4EFD\u4E0D\u53EF\u63A5\u7BA1\u8F93\u5165\u3002":"\u53EA\u8BFB\u67E5\u770B\u3002\u767B\u5F55 Dashboard \u540E\u53EF\u63A5\u7BA1\u3002"}),(0,o.jsx)("div",{className:"wb-pane-frame-shell",children:l?(0,o.jsxs)("div",{className:"wb-pane-empty",children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"\u2197"}),(0,o.jsx)("strong",{children:"\u5916\u90E8 Riff \u7EC8\u7AEF"}),(0,o.jsx)("p",{children:"\u8BE5\u540E\u7AEF\u4E0D\u5728\u5DE5\u4F5C\u53F0\u9762\u677F\u5185\u5C55\u793A\u3002"}),(0,o.jsx)("a",{href:l,target:"_blank",rel:"noopener noreferrer",children:"\u6253\u5F00\u5916\u90E8\u7EC8\u7AEF"})]}):k?(0,o.jsxs)(o.Fragment,{children:[ae?null:(0,o.jsx)("iframe",{ref:G,className:"wb-pane-frame",src:k,title:`\u7EC8\u7AEF \u2014 ${ye(e.session)}`,allow:"clipboard-read; clipboard-write",referrerPolicy:"no-referrer",onLoad:Fe},z),h.blocked&&!ae?(0,o.jsxs)("div",{className:"wb-pane-empty wb-ws-blocked",role:"status",children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"\u26A0"}),(0,o.jsx)("strong",{children:"\u7EC8\u7AEF\u5B9E\u65F6\u8FDE\u63A5\u672A\u5EFA\u7ACB"}),(0,o.jsx)("p",{children:"\u5F53\u524D\u6D4F\u89C8\u5668\u73AF\u5883\u9650\u5236\u4E86\u975E\u52A0\u5BC6\u7684\u5B9E\u65F6\u8FDE\u63A5\uFF08iOS \u5185\u5E38\u89C1\uFF09\u3002\u53EF\u5C1D\u8BD5\u7528\u7CFB\u7EDF\u6D4F\u89C8\u5668\u6253\u5F00\uFF0C\u6216\u5728\u7535\u8111\u4E0A\u67E5\u770B\u3002"}),(0,o.jsx)("a",{href:k,target:"_blank",rel:"noopener",children:"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00"}),(0,o.jsx)("p",{children:"\u98DE\u4E66\u5185\u53EF\u901A\u8FC7\u53F3\u4E0A\u89D2 \u22EF \u83DC\u5355\u9009\u62E9\u300C\u5728\u6D4F\u89C8\u5668\u6253\u5F00\u300D\u3002"})]}):null,ie?(0,o.jsx)(Un,{onRetry:()=>{I("reconcile")}}):null,!ie&&we?(0,o.jsxs)("div",{className:"wb-pane-empty wb-control-checking",role:"status",children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"\u22EF"}),(0,o.jsx)("strong",{children:"\u6B63\u5728\u786E\u8BA4\u7EC8\u7AEF\u63A7\u5236\u6743"}),(0,o.jsx)("p",{children:"\u786E\u8BA4\u4E4B\u524D\u5148\u4E0D\u63A5\u5165\u7EC8\u7AEF\u753B\u9762\uFF0C\u907F\u514D\u5728\u4E0D\u77E5\u9053\u80FD\u4E0D\u80FD\u5199\u7684\u60C5\u51B5\u4E0B\u628A\u8F93\u5165\u6253\u8FDB\u53BB\u3002"})]}):null]}):(u||!e.authenticated)&&!l&&y?_==="failed"?(0,o.jsxs)("div",{className:"wb-pane-empty",role:"status",children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"\u26A0"}),(0,o.jsx)("strong",{children:"\u53EA\u8BFB\u94FE\u63A5\u83B7\u53D6\u5931\u8D25"}),(0,o.jsx)("p",{children:"\u767B\u5F55\u6001\u53EF\u80FD\u5DF2\u8FC7\u671F\uFF0C\u6216\u8BE5\u4F1A\u8BDD\u7684\u7EC8\u7AEF\u670D\u52A1\u672A\u6CE8\u518C\u3002\u7A0D\u540E\u4F1A\u81EA\u52A8\u91CD\u8BD5\u3002"}),(0,o.jsx)("button",{type:"button",onClick:S,children:"\u91CD\u8BD5"})]}):(0,o.jsxs)("div",{className:"wb-pane-empty",role:"status",children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"\u203A_"}),(0,o.jsx)("strong",{children:"\u6B63\u5728\u83B7\u53D6\u53EA\u8BFB\u7EC8\u7AEF\u94FE\u63A5\u2026"})]}):(0,o.jsxs)("div",{className:"wb-pane-empty",role:"status",children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"\u25A1"}),(0,o.jsx)("strong",{children:"\u7EC8\u7AEF\u4E0D\u53EF\u7528"}),(0,o.jsx)("p",{children:e.session.status==="closed"?"\u4F1A\u8BDD\u5DF2\u5173\u95ED\u3002":"\u8BE5\u4F1A\u8BDD\u5C1A\u672A\u63D0\u4F9B\u7EC8\u7AEF\u5165\u53E3\u3002"})]})})]})}var ke={mode:"preview",label:"\u9884\u89C8",securityNotice:"\u4EA4\u4E92\u906E\u7F69\u7528\u4E8E\u9632\u8BEF\u89E6\uFF0C\u4E0D\u662F\u5E94\u7528\u7EA7\u5B89\u5168\u8FB9\u754C\u3002"};function Rn(e){let n=ge(e.session),[r,c]=(0,i.useState)(ke),[f,p]=(0,i.useState)("loading"),[y,l]=(0,i.useState)("\u9884\u89C8\u6A21\u5F0F\u5DF2\u9501\u5B9A\u3002"),[u,v]=(0,i.useState)(0),_=(0,i.useRef)("preview"),S=(0,i.useRef)(0),T=(0,i.useRef)(0),k=(0,i.useCallback)((b,C)=>{let E=_.current;_.current=b.mode,c(b),p("ready"),E==="interactive"&&b.mode==="preview"?l(C==="poll"?"\u957F\u65F6\u95F4\u65E0\u64CD\u4F5C\uFF0C\u5DF2\u91CD\u65B0\u9501\u5B9A\u3002":"\u5DF2\u91CD\u65B0\u9501\u5B9A\u3002"):b.mode==="interactive"?l("\u5DF2\u5F00\u542F\u4EA4\u4E92\uFF0C\u6301\u7EED\u64CD\u4F5C\u81EA\u52A8\u7EED\u671F\uFF0815 \u5206\u949F\uFF09\u3002"):l("\u9884\u89C8\u6A21\u5F0F\u5DF2\u9501\u5B9A\u3002")},[]),g=(0,i.useCallback)(async(b,C)=>{let E=++T.current;if(!n){c(ke),p("ready");return}try{let L=await e.api.getPreviewInteraction(e.session.sessionId,C);if(E!==T.current)return;k(L,b)}catch(L){if(C?.aborted||E!==T.current)return;_.current="preview",c(ke),l(`\u5DF2\u5B89\u5168\u9501\u5B9A\uFF1A${Te(L)}`),p("error")}},[k,n,e.api,e.session.sessionId]);(0,i.useEffect)(()=>{let b=new AbortController;p("loading"),g("load",b.signal);let C=setInterval(()=>{(typeof document>"u"||!document.hidden)&&g("poll",b.signal)},15e3);return()=>{T.current+=1,clearInterval(C),b.abort()}},[g]),(0,i.useEffect)(()=>{if(r.mode!=="interactive"||!r.idleExpiresAt)return;let b=setTimeout(()=>{g("poll")},Math.max(0,r.idleExpiresAt-Date.now())+25);return()=>clearTimeout(b)},[r.idleExpiresAt,r.mode,g]);let I=async b=>{let C=++T.current;p("busy");try{let E=b==="unlock"?await e.api.unlockPreview(e.session.sessionId):b==="lock"?await e.api.lockPreview(e.session.sessionId):await e.api.touchPreview(e.session.sessionId);if(C!==T.current)return;k(E,"action"),(b==="unlock"||b==="lock")&&v(L=>L+1)}catch(E){if(C!==T.current)return;_.current="preview",c(ke),l(`\u5DF2\u5B89\u5168\u9501\u5B9A\uFF1A${Te(E)}`),p("error")}},K=b=>{typeof Element<"u"&&b.target instanceof Element&&b.target.closest(".wb-pane-titlebar")||r.mode!=="interactive"||Date.now()-S.current<2e4||(S.current=Date.now(),I("activity"))},B=r.mode==="interactive"&&r.idleExpiresAt?Me(r.idleExpiresAt,e.now,"zh-CN"):null,M=r.mode==="interactive"?"\u53EF\u4EA4\u4E92":"\u9884\u89C8";return(0,o.jsxs)("section",{className:"wb-pane wb-web-pane","aria-label":"\u7F51\u9875\u9884\u89C8\u9762\u677F",onPointerDown:K,onKeyDown:K,children:[(0,o.jsxs)("header",{className:"wb-pane-titlebar",children:[(0,o.jsxs)("div",{className:"wb-pane-identity",children:[(0,o.jsx)("span",{className:"wb-pane-glyph","aria-hidden":"true",children:"\u25CE"}),(0,o.jsx)("strong",{children:"\u7F51\u9875"}),(0,o.jsxs)("span",{className:`wb-mode-chip ${r.mode==="interactive"?"is-interactive":"is-preview"}`,children:[(0,o.jsx)("span",{"aria-hidden":"true",children:r.mode==="interactive"?"\u25C6":"\u25C9"}),M]}),B?(0,o.jsx)("span",{className:"wb-lease-time",children:`${B}\u91CD\u65B0\u9501\u5B9A`}):null]}),(0,o.jsxs)("div",{className:"wb-pane-actions",children:[n?(0,o.jsx)("a",{href:n,target:"_blank",rel:"noopener noreferrer",children:"\u65B0\u6807\u7B7E\u9875\u6253\u5F00"}):null,n&&e.authenticated&&e.capabilities.canInteract?r.mode==="interactive"?(0,o.jsx)("button",{type:"button",disabled:f==="busy",onClick:()=>{I("lock")},children:"\u7ACB\u5373\u9501\u5B9A"}):(0,o.jsx)("button",{type:"button",disabled:f==="busy",onClick:()=>{I("unlock")},children:"\u5F00\u542F\u4EA4\u4E92"}):null]})]}),(0,o.jsxs)("div",{className:"wb-pane-feedback",role:"status","aria-live":"polite",children:[(0,o.jsxs)("strong",{children:[M,":"]})," ",y," ",(0,o.jsx)("span",{title:r.securityNotice,children:r.securityNotice})]}),(0,o.jsx)("div",{className:"wb-pane-frame-shell",children:n?(0,o.jsx)("iframe",{className:"wb-pane-frame",src:n,"data-interaction-generation":u,title:`\u7F51\u9875\u9884\u89C8 \u2014 ${ye(e.session)} \u2014 ${M}`,allow:"clipboard-read; clipboard-write",referrerPolicy:"no-referrer"},`${e.session.sessionId}-${u}`):(0,o.jsxs)("div",{className:"wb-pane-empty",role:"status",children:[(0,o.jsx)("span",{"aria-hidden":"true",children:"\u25CE"}),(0,o.jsx)("strong",{children:"\u672A\u6CE8\u518C\u7F51\u9875\u9884\u89C8"}),(0,o.jsxs)("p",{children:["\u5728\u8BE5\u4F1A\u8BDD\u5185\u8FD0\u884C ",(0,o.jsx)("code",{children:"botmux preview <\u7AEF\u53E3>"})," \u6CE8\u518C\u9884\u89C8\u3002"]})]})})]})}function Ne(e){let n=e.session,r=[["\u4F1A\u8BDD ID",n.sessionId],["\u72B6\u6001",n.status],["\u673A\u5668\u4EBA",n.botName||n.larkAppId||"\u2014"],["CLI",n.cliId||"unknown"],["\u4ED3\u5E93",n.repoName||n.workingDir||"\u2014"],["\u5206\u652F",n.gitBranch||"\u2014"],["\u7FA4\u804A",n.chatDisplayName||n.chatId||"\u2014"],["\u8303\u56F4",n.scope||"thread"]];return(0,o.jsxs)("div",{className:"wb-info-content",children:[(0,o.jsx)("h2",{children:ye(n)}),(0,o.jsx)("dl",{children:r.map(([c,f])=>(0,o.jsxs)("div",{children:[(0,o.jsx)("dt",{children:c}),(0,o.jsx)("dd",{title:String(f),children:String(f)})]},c))})]})}var s=H(te(),1),Mn=250,jn=250,Yn=new Set(["starting","working","analyzing"]);function Qn(){return typeof window>"u"?null:window.location}function Zn(){if(typeof window>"u")return null;try{return window.localStorage}catch{return null}}function et(e){let[n,r]=(0,d.useState)(e??(typeof window>"u"?1440:window.innerWidth));return(0,d.useEffect)(()=>{if(e!==void 0){r(e);return}let c=()=>r(window.innerWidth);return c(),window.addEventListener("resize",c,{passive:!0}),()=>window.removeEventListener("resize",c)},[e]),n}function nt(e){let n=qe(e);return n["needs-you"][0]?.sessionId??n.active[0]?.sessionId??n.recent[0]?.sessionId??null}function tt(e,n){return{...e,...n,version:1,railWidth:Ge(Number(n.railWidth??e.railWidth)),splitRatio:Ae(Number(n.splitRatio??e.splitRatio))}}function xn(e){let n=(0,d.useMemo)(()=>e.api??Ve(),[e.api]),r=e.storage===void 0?Zn():e.storage,c=e.location===void 0?Qn():e.location,f=e.now??Date.now(),p=et(e.viewportWidth),y=e.initialSessionId??nt(e.sessions),[l,u]=(0,d.useState)(y),[v,_]=(0,d.useState)(()=>{let t=y?le(y,r):le("",null),a=an(r);return{sessionId:y,layout:a?{...t,railWidth:a.railWidth,railCollapsed:a.railCollapsed}:t}}),[S,T]=(0,d.useState)("sessions"),k=(0,d.useRef)(null),g=(0,d.useRef)(e.initialSessionId),I=(0,d.useRef)(f);I.current=f;let K=(0,d.useRef)(f),[B,M]=(0,d.useState)(()=>dn(r)??"status"),[b,C]=(0,d.useState)(()=>{let t=ln(r);if(t)return t;let a={};for(let m of e.sessions)se(m.sessionId)&&(a[m.sessionId]=f);return ve({seen:a,unread:{}})}),E=(0,d.useRef)(new Map),[L,O]=(0,d.useState)(null),me=L?.sessionId??null,[G,be]=(0,d.useState)(!1),oe=t=>{O(a=>En(a,t))},z=(0,d.useCallback)(t=>{t.fixed&&be(!0),O(a=>Ln(a,t))},[]),X=(0,d.useMemo)(()=>e.sessions.find(t=>t.sessionId===me)??null,[e.sessions,me]),h=(0,d.useMemo)(()=>e.sessions.find(t=>t.sessionId===l)??null,[e.sessions,l]),J=!!h&&ge(h)!==null,Se=(0,d.useMemo)(()=>J?["workspace","preview","info"]:["workspace","info"],[J]),P=v.layout,fe=en().appearance.termStyle,[q,V]=(0,d.useState)(!1),A=Xe(p,P),Fe=A.chatMode==="native-split"&&P.chatRequested,U=A.railCollapsed,j=U?40:P.railWidth;(0,d.useEffect)(()=>{let t=g.current!==e.initialSessionId;g.current=e.initialSessionId,!(!t||e.initialSessionId===void 0)&&u(e.initialSessionId)},[e.initialSessionId]),(0,d.useEffect)(()=>{v.sessionId!==l&&_(t=>{let a=l?le(l,r):le("",null);return{sessionId:l,layout:{...a,railWidth:t.layout.railWidth,railCollapsed:t.layout.railCollapsed}}})},[v.sessionId,l,r]),(0,d.useEffect)(()=>{S==="preview"&&!J&&T("workspace")},[S,J]),(0,d.useEffect)(()=>{let t=v.sessionId;if(!t)return;let a=v.layout,m=setTimeout(()=>{rn(t,a,r)},Mn);return()=>clearTimeout(m)},[v,r]),(0,d.useEffect)(()=>{let t={railWidth:P.railWidth,railCollapsed:P.railCollapsed},a=setTimeout(()=>{sn(r,t)},Mn);return()=>clearTimeout(a)},[P.railWidth,P.railCollapsed,r]),(0,d.useEffect)(()=>{let t=E.current,a=new Map,m=[];for(let x of e.sessions){let N=x.sessionId;if(!se(N))continue;let $=String(x.status??"");a.set(N,$);let D=t.get(N);D&&Yn.has(D)&&$==="idle"&&N!==l&&m.push(N)}if(E.current=a,m.length===0)return;let W=I.current;C(x=>{let N={...x.unread};for(let $ of m)N[$]=W;return ve({seen:x.seen,unread:N})})},[e.sessions,l]),(0,d.useEffect)(()=>{let t=b,a=setTimeout(()=>{cn(r,t)},jn);return()=>clearTimeout(a)},[b,r]);let Y=(0,d.useMemo)(()=>{let t=new Set;for(let a of e.sessions){let m=a.sessionId;if(!se(m)||m===l||a.status==="closed")continue;let W=b.seen[m],x=b.unread[m];if(x!==void 0&&x>=(W??0)){t.add(m);continue}Re(a)>(W??K.current)&&t.add(m)}return t},[e.sessions,b,l]),re=t=>{if(!se(t))return;let a=e.sessions.find(W=>W.sessionId===t),m=Math.max(I.current,a?Re(a):0);C(W=>{if(W.seen[t]===m&&W.unread[t]===void 0)return W;let x={...W.unread};return delete x[t],ve({seen:{...W.seen,[t]:m},unread:x})})},he=t=>{M(t),un(r,t)},R=t=>{_(a=>({...a,layout:tt(a.layout,t)}))},F=t=>{re(t),u(t);let a=$e("main",t);e.onRouteChange?e.onRouteChange(a):typeof window<"u"&&window.history.replaceState(window.history.state,"",a)},Ce=t=>{F(t),O(a=>In(a,t))},Ie=t=>{F(t),oe(t),T("workspace")},Ee=t=>{t.preventDefault();let a=t.currentTarget;a.setPointerCapture?.(t.pointerId);let m=k.current;m?.classList.add("is-rail-dragging");let W=t.clientX,x=P.railWidth,N=W,$=W,D=0,De=()=>{D=0,$=N,R({railWidth:x+$-W})},He=Nn=>{N=Nn.clientX,D===0&&(D=window.requestAnimationFrame(De))},ne=()=>{D!==0&&(window.cancelAnimationFrame(D),D=0),N!==$&&De(),m?.classList.remove("is-rail-dragging"),window.removeEventListener("pointermove",He),window.removeEventListener("pointerup",ne),window.removeEventListener("pointercancel",ne),a.removeEventListener("lostpointercapture",ne)};window.addEventListener("pointermove",He),window.addEventListener("pointerup",ne),window.addEventListener("pointercancel",ne),a.addEventListener("lostpointercapture",ne)},ie=t=>{t.key!=="ArrowLeft"&&t.key!=="ArrowRight"||(t.preventDefault(),R({railWidth:P.railWidth+(t.key==="ArrowLeft"?-8:8)}))},Le=t=>{t.key==="/"&&!(t.target instanceof HTMLInputElement)&&!(t.target instanceof HTMLTextAreaElement)&&(t.preventDefault(),k.current?.querySelector(".wb-session-search input")?.focus())},we={"--wb-rail-width":`${j}px`},ae=A.mode==="desktop"?()=>R({railCollapsed:!P.railCollapsed}):void 0,Q=!!ae&&U,Z=(0,s.jsx)(mn,{sessions:e.sessions,selectedSessionId:l,collapsed:Q,locale:e.locale,now:f,online:e.online,chatFollowNavigates:A.mode!=="mobile",unreadIds:Y,dimension:B,onDimensionChange:he,onSeen:re,onLocate:e.capabilities.canLocate?t=>n.locateSession(t):void 0,fixedTerminal:G,terminalBusySessionId:L?.busy?L.sessionId:null,onOpenAppearance:A.mode==="mobile"?()=>V(!0):void 0,onSelect:t=>{if(Ce(t),A.mode==="mobile"){O(a=>a&&a.sessionId===t?a:ue(t)),T("workspace");return}},onOpenTerminal:Ie,onToggleCollapsed:ae}),ee=h?(0,s.jsxs)("section",{className:"wb-workspace","aria-label":`\u5DE5\u4F5C\u53F0 \u2014 ${h.title||h.sessionId}`,children:[(0,s.jsxs)("header",{className:"wb-workspace-header",children:[(0,s.jsx)("div",{className:"wb-workspace-title",children:(0,s.jsxs)("span",{children:[(0,s.jsx)("strong",{title:String(h.title||h.sessionId),children:String(h.title||h.sessionId)}),(0,s.jsxs)("small",{children:[h.botName||h.larkAppId||"Bot"," \xB7 ",h.cliId||"\u672A\u77E5"," \xB7 ",h.repoName||"\u65E0\u4ED3\u5E93"]})]})}),(0,s.jsxs)("div",{className:"wb-workspace-controls",children:[X?(0,s.jsx)("button",{type:"button",className:"wb-layout-level wb-terminal-toggle","aria-pressed":"true",title:"\u5173\u95ED\u7EC8\u7AEF\u9762\u677F",onClick:()=>O(null),children:"\u5173\u95ED\u7EC8\u7AEF \u2715"}):null,A.mode!=="mobile"?(0,s.jsx)(on,{standingLink:e.manageAuthed===!0,api:n}):null]})]}),(0,s.jsx)("div",{className:"wb-pane-stack",children:X?(0,s.jsx)(An,{session:X,api:n,authenticated:e.authenticated,capabilities:e.capabilities,now:f,location:c,autoTakeControl:!1,onControlModeChange:z},`${X.sessionId}:${L?.generation??0}`):(0,s.jsxs)("div",{className:"wb-pane-placeholder",role:"status",children:[(0,s.jsx)("span",{"aria-hidden":"true",children:"\u203A_"}),(0,s.jsx)("p",{children:"\u5728\u5DE6\u4FA7\u4F1A\u8BDD\u884C\u70B9\u51FB\u7EC8\u7AEF\u56FE\u6807\u6253\u5F00\u7EC8\u7AEF"})]})})]}):(0,s.jsxs)("section",{className:"wb-workspace wb-no-selection","aria-live":"polite",children:[(0,s.jsx)("span",{"aria-hidden":"true",children:"\u2301"}),(0,s.jsx)("h2",{children:l?"\u4F1A\u8BDD\u4E0D\u5B58\u5728":"\u9009\u62E9\u4E00\u4E2A\u4F1A\u8BDD"}),(0,s.jsx)("p",{children:l?"\u8BE5\u4F1A\u8BDD\u5DF2\u7ED3\u675F\u6216\u88AB\u6E05\u7406":"\u4ECE\u5DE6\u4FA7\u5217\u8868\u9009\u62E9\u4F1A\u8BDD\uFF0C\u67E5\u770B\u7EC8\u7AEF\u6216\u7F51\u9875\u9884\u89C8"})]}),w=S==="sessions"?Z:S==="info"&&h?(0,s.jsx)("main",{className:"wb-mobile-info",children:(0,s.jsx)(Ne,{session:h})}):ee;return(0,s.jsx)("main",{ref:k,className:"agent-workbench-page","data-surface":"appCenter","data-term-style":fe,"data-responsive-step":A.step,"data-demo":e.demo?"true":void 0,style:we,onKeyDown:Le,children:A.mode==="mobile"?(0,s.jsxs)("div",{className:"wb-mobile-stack",children:[S==="sessions"?Z:(0,s.jsxs)("div",{className:"wb-mobile-detail",children:[(0,s.jsxs)("div",{className:"wb-mobile-detail-bar",children:[(0,s.jsx)("button",{type:"button",className:"wb-mobile-back",onClick:()=>T("sessions"),children:"\u2039 \u4F1A\u8BDD\u5217\u8868"}),h?(0,s.jsx)("span",{className:"wb-mobile-detail-title",title:String(h.title||h.sessionId),children:String(h.title||h.sessionId)}):null,(0,s.jsx)("span",{className:"wb-mobile-detail-seg",children:Se.map(t=>(0,s.jsx)("button",{type:"button","aria-current":S===t?"page":void 0,onClick:()=>T(t),children:t==="workspace"?"\u7EC8\u7AEF":t==="preview"?"\u7F51\u9875":"\u4FE1\u606F"},t))})]}),S==="info"&&h?(0,s.jsx)("main",{className:"wb-mobile-info",children:(0,s.jsx)(Ne,{session:h})}):S==="preview"&&h?(0,s.jsx)("main",{className:"wb-mobile-preview",children:(0,s.jsx)(Rn,{session:h,api:n,authenticated:e.authenticated,capabilities:e.capabilities,now:f})}):ee]}),(0,s.jsx)(tn,{open:q,onClose:()=>V(!1),standingLink:e.manageAuthed===!0,api:n})]}):(0,s.jsxs)("div",{className:`wb-desktop-layout${Q?" is-rail-collapsed":""}${X?"":" is-terminal-closed"}`,children:[Z,Q?null:(0,s.jsx)("button",{type:"button",className:"wb-rail-separator",role:"separator","aria-label":"\u8C03\u6574\u5217\u8868\u5BBD\u5EA6","aria-orientation":"vertical","aria-valuemin":176,"aria-valuemax":460,"aria-valuenow":P.railWidth,onPointerDown:Ee,onKeyDown:ie,children:(0,s.jsx)("span",{"aria-hidden":"true",children:"\u22EE"})}),ee]})})}var _e=H(te(),1);function ot(){let e=Oe(),[n,r]=(0,We.useState)(Date.now());(0,We.useEffect)(()=>{let f=window.setInterval(()=>r(Date.now()),3e4);return()=>window.clearInterval(f)},[]);let c=Be(window.location.hash);return(0,_e.jsx)(xn,{sessions:[...e.sessions.values()],online:e.online,authenticated:pe.workbenchAuthed,capabilities:pe.workbenchCapabilities,manageAuthed:pe.authed,initialSessionId:c?.surface==="main"?c.sessionId:null,locale:"zh-CN",now:n})}function It(e){return Ke(e,(0,_e.jsx)(ot,{}))}export{It as renderAgentWorkbenchPage};
@@ -0,0 +1 @@
1
+ import{d as a,e as b,f as c,g as d,h as e,i as f,j as g,k as h,l as i,m as j,n as k,o as l,p as m,q as n,r as o}from"./chunk-53JUKBU2.js";import"./chunk-KTQ7B6ZR.js";import"./chunk-OT6L6G7R.js";import"./chunk-5QX4OYOR.js";import"./chunk-RHVFZC5Z.js";import"./chunk-QITAMHW6.js";import"./chunk-CK22743G.js";import"./chunk-XVIXNQGC.js";import"./chunk-CVNIMUPY.js";export{a as BOT_DEFAULTS_TABS,c as BdTabGrid,g as BotAgentSection,f as BotDefaultsPage,b as BotDefaultsTabs,j as CardBehaviorSection,k as CodexAppDisplaySection,h as DASHBOARD_MAX_TURN_TIMEOUT_MS,l as EnvelopeInjectionSection,n as GrantSection,d as ModelPickerField,m as SessionGroupTagRow,e as buildSubstituteTarget,i as effectiveAccess,o as renderBotDefaultsPage};
@@ -0,0 +1 @@
1
+ var r="botmuxClientShell",c=new Set(["desktop","mobile"]);function l(n){return n&&c.has(n)?n:null}function d(n){try{let t=new URL(n);if(l(t.searchParams.get(r)))return null;let e=t.hash.indexOf("?");if(e<0)return null;let o=new URLSearchParams(t.hash.slice(e+1)),s=l(o.get(r));if(!s)return null;let a=t.hash.slice(0,e)||"#/";o.delete(r);let i=o.toString();return t.searchParams.set(r,s),t.hash=i?`${a}?${i}`:a,t.toString()}catch{return null}}function h(n=typeof location>"u"?"":location.search,t=typeof location>"u"?"":location.hash){let e=l(new URLSearchParams(n.startsWith("?")?n.slice(1):n).get(r));if(e)return e;let o=t.indexOf("?");return o<0?null:l(new URLSearchParams(t.slice(o+1)).get(r))}function u(n){let t=(n.split("?")[0]||"#/").toLowerCase();return t==="#/workflows"||t.startsWith("#/workflows/")||t.startsWith("#/workflows-")||t==="#/v3"||t.startsWith("#/v3/")||t.startsWith("#/v3?")||t==="#/legacy-workflow"||t.startsWith("#/legacy-workflow/")}function f(n){let t=(n.split("?")[0]||"#/").toLowerCase();return t==="#/monitor-room"||t.startsWith("#/monitor-room/")}function S(n=typeof location>"u"?"":location.search,t=typeof location>"u"?"":location.hash){return h(n,t)===null}function b(n,t=typeof location>"u"?"":location.search){return h(t,n)?u(n)?"#/":f(n)?"#/sessions":null:null}export{d as a,h as b,S as c,b as d};
@@ -0,0 +1,10 @@
1
+ import{a as Te}from"./chunk-KTQ7B6ZR.js";import{a as we}from"./chunk-OT6L6G7R.js";import{a as Vt,b as St,c as At,g as ke,h as Ce,j as Se,k as Ne,q as pt}from"./chunk-5QX4OYOR.js";import{d as J}from"./chunk-RHVFZC5Z.js";import{a as Pt}from"./chunk-QITAMHW6.js";import{B as Jt,C as Ct,F as ye,G as ve,b as ge,w as he,x as I}from"./chunk-CK22743G.js";import{a as ya,c as De}from"./chunk-XVIXNQGC.js";import{c as ft,d as pe,e as Mt}from"./chunk-CVNIMUPY.js";var o=ft(pe(),1),le=ft(ya(),1);var K=ft(pe(),1);var xe=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],Nt={options:xe,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function Bt(a,t){return typeof a?.cliId=="string"&&a.cliId?a.cliId:t}function Qt(a){let t=null;for(let n of Pt.sessions.values())n.larkAppId!==a||!n.cliId||(!t||Number(n.lastMessageAt??0)>Number(t.lastMessageAt??0))&&(t=n);return t?.cliId??""}function Kt(a,t){let n=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return n||Bt(a,t)||"claude-code"}function zt(a,t){return a.find(n=>n.id===t)}function Lt(a,t){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?t.ttadkModelSuggestions:[...a?.modelChoices??[]]}function $t(a,t){let n=t??a,r=t?a:[],l=new Set,i=[];for(let c of n)typeof c!="string"||l.has(c)||(l.add(c),i.push(c));for(let c of r)typeof c!="string"||l.has(c)||(l.add(c),i.push(c));return i}async function Et(a){try{let t=await fetch(`/api/cli-options/models?key=${encodeURIComponent(a)}`),n=await t.json().catch(()=>({}));if(!t.ok||!n||!Array.isArray(n.models))return null;let r=n.models.filter(i=>typeof i=="string"),l=n.source==="live"?"live":"static";return{models:r,source:l}}catch{return null}}function Ie(){let a=0;return{begin(){let t=++a;return{commit:()=>t===a}}}}async function Re(){try{let a=await fetch("/api/bots"),t=await a.json().catch(()=>({}));if(!a.ok){let n=t?.error?`HTTP ${a.status}: ${t.error}${t.path?` (${t.path})`:""}`:`HTTP ${a.status}`;return{bots:[],error:n}}return!t||!Array.isArray(t.bots)?{bots:[],error:"unexpected response shape (no `bots` array)"}:{bots:t.bots,error:null}}catch(a){return{bots:[],error:a?.message??String(a)}}}async function Oe(a,t){try{let n=await fetch(`/api/bots/${encodeURIComponent(a)}/substitute-targets/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:t})}),r=await n.json().catch(()=>({}));return n.ok?{ok:!0,resolution:r?.resolution??{}}:{ok:!1,error:r?.error?`HTTP ${n.status}: ${r.error}`:`HTTP ${n.status}`}}catch(n){return{ok:!1,error:n?.message??String(n)}}}async function Pe(){try{let a=await fetch("/api/cli-options"),t=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(t?.options))return Nt;let n=t.options.filter(i=>i&&typeof i.id=="string"&&typeof i.label=="string").map(i=>({...i,modelChoices:Array.isArray(i.modelChoices)?i.modelChoices.filter(c=>typeof c=="string"):[]})),r=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():Nt.ttadkModelDefault,l=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(i=>typeof i=="string"):[];return{options:n.length?n:xe,ttadkModelDefault:r,ttadkModelSuggestions:l}}catch{return Nt}}function Me(a){if(!a)return"\u2014";let t=new Date(a);return Number.isNaN(t.getTime())?"\u2014":t.toLocaleString()}var k=ft(Mt(),1),va="botmux:open-bot-onboarding",Yt={id:"claude-code",label:"Claude"},Ee="glm-5.1";function Zt(){return{options:[Yt],ttadkModelDefault:Ee,ttadkModelSuggestions:[],suggestedAppName:"botmux-0",webSession:{status:"checking"}}}function Ae(){return{appName:"",cliId:Yt.id,dirMode:"fixed",workingDir:"~",model:""}}function Da(a,t){return a||t==="checking"}function Xt(a){return a instanceof Error?a.message:String(a)}function Be(a){return a.status==="completed"||a.status==="failed"||a.status==="needs_owner"}function Ft(a){return a==="login_failed"||a==="invalid_session"||a==="identity_unavailable"||a==="session_changed"}function ka(a){return a.status==="waiting_for_scan"?a.registrationMode==="compat"?I("botOnboarding.waitingCompat"):I("botOnboarding.waiting",{name:a.appName??""}):a.status==="verifying"?I("botOnboarding.verifying"):a.status==="configuring_permissions"?a.permissionStatusMsg?`${I("botOnboarding.configuringPermissions")} ${a.permissionStatusMsg}`:I("botOnboarding.configuringPermissions"):a.status==="waiting_for_platform_scan"?I("botOnboarding.platformScanHint"):a.status==="needs_owner"?I("botOnboarding.needsOwnerTitle"):a.status==="completed"?I("botOnboarding.completed",{name:a.appName??I("botOnboarding.botFallback")}):a.status==="failed"?a.appId?I("botOnboarding.partialFailureTitle"):a.error==="qr_expired"?I("botOnboarding.qrExpiredTitle"):Ft(a.error)?I("botOnboarding.authIncompleteTitle"):I("botOnboarding.createFailedTitle"):I("botOnboarding.starting")}async function Ca(){try{let a=await fetch("/api/cli-options"),t=await a.json();if(a.ok&&Array.isArray(t?.options)){let n=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():Ee,r=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(s=>typeof s=="string"):[],l=typeof t.suggestedAppName=="string"&&t.suggestedAppName.trim()?t.suggestedAppName.trim():"botmux-0",i=t?.webSession?.identity,c=t?.webSession?.status==="ready"&&typeof i?.userId=="string"&&typeof i?.userName=="string"&&typeof i?.tenantId=="string"&&typeof i?.tenantName=="string"?{status:"ready",source:typeof t.webSession.source=="string"?t.webSession.source:"botmux_cache",identity:{userId:i.userId,userName:i.userName,...typeof i.email=="string"?{email:i.email}:{},tenantId:i.tenantId,tenantName:i.tenantName}}:{status:"scan_required",...typeof t?.webSession?.reason=="string"?{reason:t.webSession.reason}:{}};return{options:t.options.map(s=>({...s,modelChoices:Array.isArray(s?.modelChoices)?s.modelChoices.filter(m=>typeof m=="string"):[]})),ttadkModelDefault:n,ttadkModelSuggestions:r,suggestedAppName:l,webSession:c}}}catch{}return{...Zt(),webSession:{status:"scan_required"}}}function Fe(a,t,n){let r=n.options.find(s=>s.id===t),l=r?.gateway==="ttadk",i=l&&r?.acceptsModel!==!1,c=a.model;return l&&!i?c="":i&&!c.trim()?c=n.ttadkModelDefault:!i&&c.trim()===n.ttadkModelDefault&&(c=""),{...a,cliId:t,model:c}}function Sa(a,t){let n=t.options.some(r=>r.id===a.cliId)?a.cliId:t.options[0]?.id??Yt.id;return Fe({...a},n,t)}async function Ue(){window.dispatchEvent(new Event(va))}function Na(a){let{job:t}=a;if(t.status!=="completed"&&t.status!=="needs_owner"||!t.permission)return null;let n=t.permission;if(n.ok){let l=[I("botOnboarding.permissionOk",{count:n.scopeCount??0})];return n.skippedScopeCount&&n.skippedScopeCount>0&&l.push(I("botOnboarding.permissionSkipped",{count:n.skippedScopeCount})),n.versionId&&l.push(I("botOnboarding.permissionVersion",{version:n.versionId})),(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("p",{className:"hint-ok",children:l.join(" ")}),n.scopeWarning?(0,k.jsx)("p",{className:"hint-warn",children:n.scopeWarning}):null]})}let r=t.remainingSteps??[];return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)("p",{className:"hint-warn",children:[I("botOnboarding.permissionManual"),n.message?`\uFF08${n.message}\uFF09`:""]}),r.length?(0,k.jsx)("ol",{className:"onboarding-steps",children:r.map(l=>(0,k.jsx)("li",{children:(0,k.jsx)("a",{href:l.url,target:"_blank",rel:"noopener",children:l.title})},`${l.title}:${l.url}`))}):null]})}function wa(a){let{job:t}=a;return t.appId?(0,k.jsxs)("p",{className:"onboarding-meta",children:[(0,k.jsx)("b",{children:"App ID:"})," ",(0,k.jsx)("code",{children:t.appId}),t.appName?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("span",{children:" / "}),(0,k.jsxs)("b",{children:[I("botOnboarding.appNameLabel"),":"]})," ",(0,k.jsx)("code",{children:t.appName})]}):null,t.cliId?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("span",{children:" / "}),(0,k.jsx)("b",{children:"CLI:"})," ",(0,k.jsx)("code",{children:t.cliId})]}):null,t.workingDir?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("span",{children:" / "}),(0,k.jsxs)("b",{children:[I("botOnboarding.metaDir"),":"]})," ",(0,k.jsx)("code",{children:t.workingDir})]}):null]}):null}function Le(a){return(0,k.jsxs)("div",{className:"qr-card",children:[(0,k.jsx)("img",{className:"qr-image",src:a.dataUrl,alt:a.alt}),a.link?(0,k.jsx)("a",{className:"onboarding-link",href:a.link,target:"_blank",rel:"noopener",children:I("botOnboarding.openLink")}):null]})}function $e(a,t){return a.find(n=>n.value===t)?.label??t}function Ta(a){let{job:t,ownerError:n}=a.view;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("p",{className:`onboarding-status status-${t.status}`,children:ka(t)}),t.status==="waiting_for_scan"&&t.qrDataUrl?(0,k.jsx)(Le,{dataUrl:t.qrDataUrl,alt:I("botOnboarding.qrAlt"),link:t.qrUrl}):null,t.status==="waiting_for_platform_scan"&&t.platformQrDataUrl?(0,k.jsx)(Le,{dataUrl:t.platformQrDataUrl,alt:I("botOnboarding.platformQrAlt")}):null,(0,k.jsx)(wa,{job:t}),(0,k.jsx)(Na,{job:t}),t.status==="needs_owner"?(0,k.jsxs)("form",{className:"onboarding-form",id:"ob-owner-form",onSubmit:r=>{r.preventDefault(),a.onSubmitOwner(t,a.ownerInput,a.ownerIdInput)},children:[(0,k.jsxs)("label",{className:"onboarding-field",children:[(0,k.jsx)("span",{children:I("botOnboarding.ownerLabel")}),(0,k.jsx)("input",{id:"ob-owner",type:"text",inputMode:"email",placeholder:I("botOnboarding.ownerPlaceholder"),autoComplete:"off",spellCheck:!1,value:a.ownerInput,onChange:r=>a.onOwnerInputChange(r.currentTarget.value)})]}),(0,k.jsx)("p",{className:"hint-warn",children:I("botOnboarding.needsOwnerDescription")}),(0,k.jsxs)("details",{className:"onboarding-technical",children:[(0,k.jsx)("summary",{children:I("botOnboarding.ownerUseId")}),(0,k.jsxs)("label",{className:"onboarding-field",children:[(0,k.jsx)("span",{children:I("botOnboarding.ownerIdLabel")}),(0,k.jsx)("input",{id:"ob-owner-id",type:"text",placeholder:I("botOnboarding.ownerIdPlaceholder"),autoComplete:"off",spellCheck:!1,value:a.ownerIdInput,onChange:r=>a.onOwnerIdInputChange(r.currentTarget.value)})]})]}),n?(0,k.jsx)("p",{className:"form-error",children:n}):null,(0,k.jsx)("div",{className:"actions onboarding-actions",children:(0,k.jsx)("button",{type:"submit",className:"primary onboarding-submit",children:I("botOnboarding.ownerSubmit")})})]}):null,t.status==="completed"?(0,k.jsx)("p",{className:"hint-ok",children:t.liveStarted?I("botOnboarding.liveOk"):I("botOnboarding.restartHint")}):null,t.status==="failed"?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("p",{className:"hint-warn",children:t.appId?I("botOnboarding.partialFailureDescription"):t.error==="qr_expired"?I("botOnboarding.qrExpiredDescription"):Ft(t.error)?I("botOnboarding.authIncompleteDescription"):I("botOnboarding.createFailedDescription")}),(0,k.jsxs)("details",{className:"onboarding-technical",children:[(0,k.jsx)("summary",{children:I("botOnboarding.technicalDetails")}),(0,k.jsx)("code",{children:t.message??t.error??"unknown"})]}),(0,k.jsxs)("div",{className:"actions onboarding-actions",children:[(0,k.jsx)("button",{type:"button",onClick:a.onClose,children:I("botOnboarding.close")}),t.appId?null:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("button",{type:"button",onClick:()=>a.onRetry("compat"),children:I("botOnboarding.compatibilityMode")}),(0,k.jsx)("button",{type:"button",className:"primary onboarding-submit",onClick:()=>a.onRetry("web"),children:t.error==="qr_expired"?I("botOnboarding.generateQr"):Ft(t.error)?I("botOnboarding.scanAgain"):I("botOnboarding.retry")})]})]})]}):null,t.status==="completed"?(0,k.jsx)("div",{className:"actions onboarding-actions",children:(0,k.jsx)("button",{type:"button",onClick:a.onClose,children:I("botOnboarding.close")})}):null]})}function xa(a){let t=a.cliState.options.find(d=>d.id===a.form.cliId),n=t?.gateway==="ttadk"&&t.acceptsModel===!1,[r,l]=(0,K.useState)(null),i=a.form.cliId;(0,K.useEffect)(()=>{if(t?.gateway==="ttadk"){l(null);return}let d=!1;return Et(i).then(y=>{d||l(y)}),()=>{d=!0}},[i]);let c=$t(Lt(t,a.cliState),r?.models??null),s=r?.source==="live"?r.models.length:0,m=a.form.dirMode==="card"?I("botOnboarding.dirLabelCard"):I("botOnboarding.dirLabelFixed"),u=a.form.dirMode==="card"?I("botOnboarding.dirPlaceholderCard"):I("botOnboarding.dirPlaceholderFixed"),b=[...a.cliState.options].sort((d,y)=>d.label.localeCompare(y.label,"en",{sensitivity:"base"})).map(d=>({value:d.id,label:d.available===!1?I("botOnboarding.cliMissingOption",{label:d.label,command:d.command??d.id}):d.label})),f=[{value:"fixed",label:I("botOnboarding.dirModeFixed")},{value:"card",label:I("botOnboarding.dirModeCard")}];return(0,k.jsxs)("form",{id:"onboarding-form",className:"onboarding-form",onSubmit:a.onSubmit,children:[(0,k.jsx)("div",{className:"onboarding-session","aria-live":"polite",children:a.sessionMode==="checking"?(0,k.jsx)("p",{children:I("botOnboarding.sessionChecking")}):a.cliState.webSession.status==="ready"?a.sessionMode==="reuse"?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)("div",{children:[(0,k.jsx)("strong",{children:I("botOnboarding.sessionReady",{user:a.cliState.webSession.identity.userName,tenant:a.cliState.webSession.identity.tenantName})}),a.cliState.webSession.identity.email?(0,k.jsx)("small",{children:a.cliState.webSession.identity.email}):null]}),(0,k.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>a.onSessionModeChange("qr"),children:I("botOnboarding.switchAccount")})]}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)("div",{children:[(0,k.jsx)("strong",{children:I("botOnboarding.sessionSwitching")}),(0,k.jsx)("small",{children:I("botOnboarding.sessionSwitchingHint")})]}),(0,k.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>a.onSessionModeChange("reuse"),children:I("botOnboarding.reuseCurrentAccount")})]}):(0,k.jsxs)("div",{children:[(0,k.jsx)("strong",{children:I("botOnboarding.sessionScanRequired")}),(0,k.jsx)("small",{children:I("botOnboarding.sessionScanRequiredHint")})]})}),(0,k.jsxs)("label",{className:"onboarding-field",children:[(0,k.jsx)("span",{children:I("botOnboarding.appNameLabel")}),(0,k.jsx)("input",{id:"ob-app-name",type:"text",maxLength:64,value:a.form.appName,placeholder:I("botOnboarding.appNamePlaceholder"),autoComplete:"off",spellCheck:!1,onChange:d=>a.onFormChange({...a.form,appName:d.currentTarget.value})}),(0,k.jsx)("small",{className:"onboarding-field-hint",children:I("botOnboarding.appNameHint",{name:a.cliState.suggestedAppName})})]}),(0,k.jsxs)("div",{className:"onboarding-field",children:[(0,k.jsx)("span",{children:I("botOnboarding.cliLabel")}),(0,k.jsx)(pt,{id:"ob-cli",className:"onboarding-menu",ariaLabel:I("botOnboarding.cliLabel"),label:$e(b,a.form.cliId),value:a.form.cliId,options:b,searchable:!0,searchPlaceholder:I("common.dropdownSearch"),searchEmptyLabel:I("common.dropdownSearchEmpty"),onChange:d=>{a.onFormChange(Fe(a.form,d,a.cliState))}}),t?.available===!1?(0,k.jsx)("small",{className:"hint-warn",children:I("botOnboarding.cliMissingHint",{command:t.command??a.form.cliId})}):(0,k.jsx)("small",{className:"onboarding-field-hint",children:a.form.cliId})]}),(0,k.jsxs)("div",{className:"onboarding-field",children:[(0,k.jsx)("span",{children:I("botOnboarding.dirModeLabel")}),(0,k.jsx)(pt,{id:"ob-dir-mode",className:"onboarding-menu",ariaLabel:I("botOnboarding.dirModeLabel"),label:$e(f,a.form.dirMode),value:a.form.dirMode,options:f,onChange:d=>a.onFormChange({...a.form,dirMode:d})})]}),(0,k.jsxs)("label",{className:"onboarding-field",children:[(0,k.jsx)("span",{children:m}),(0,k.jsx)("input",{id:"ob-dir",type:"text",value:a.form.workingDir,placeholder:u,autoComplete:"off",spellCheck:!1,onChange:d=>a.onFormChange({...a.form,workingDir:d.currentTarget.value})})]}),n?null:(0,k.jsxs)("div",{className:"onboarding-field",children:[(0,k.jsx)("span",{children:I("botOnboarding.modelLabel")}),(0,k.jsx)(te,{value:a.form.model,onChange:d=>a.onFormChange({...a.form,model:d}),options:c,dataInput:"ob-model",ariaLabel:I("botOnboarding.modelLabel"),defaultLabel:I("botDefaults.modelPickerDefault"),customLabel:I("botDefaults.modelPickerCustom"),menuClassName:"onboarding-menu",detectedCount:s||void 0,detectedLabel:s>0?I("botDefaults.modelPickerDetected",{count:s}):void 0},a.form.cliId)]}),a.error?(0,k.jsx)("p",{className:"form-error",children:a.error}):null,(0,k.jsxs)("div",{className:"actions onboarding-actions",children:[(0,k.jsx)("button",{type:"button",id:"ob-cancel",disabled:a.submitting,onClick:a.onClose,children:I("botOnboarding.cancel")}),(0,k.jsx)("button",{type:"submit",className:"primary onboarding-submit",disabled:Da(a.submitting,a.sessionMode),children:a.submitting?I("botOnboarding.starting"):a.sessionMode==="reuse"?I("botOnboarding.confirmReuse"):I("botOnboarding.startScan")})]})]})}function _n(a){let t=(0,K.useRef)(null),n=(0,K.useRef)(null),r=(0,K.useRef)(0),[l,i]=(0,K.useState)(()=>Zt()),[c,s]=(0,K.useState)(()=>Ae()),[m,u]=(0,K.useState)("checking"),[b,f]=(0,K.useState)({kind:"form"}),[d,y]=(0,K.useState)(!1),[T,x]=(0,K.useState)(""),[p,D]=(0,K.useState)(""),C=(0,K.useCallback)(()=>{n.current!==null&&(window.clearInterval(n.current),n.current=null)},[]),v=(0,K.useCallback)(()=>{C(),a.onClose()},[a,C]),w=(0,K.useCallback)(h=>{f({kind:"job",job:h}),h.status==="needs_owner"&&(x(h.suggestedOwner??""),D("")),Be(h)&&C()},[C]),N=(0,K.useCallback)(async h=>{let $=await fetch(`/api/bot-onboarding/${encodeURIComponent(h)}`),_=await $.json();if(!$.ok||!_?.job)throw new Error(_?.error??`http_${$.status}`);w(_.job)},[w]),g=(0,K.useCallback)(h=>{C(),n.current=window.setInterval(()=>{N(h).catch($=>{C(),f({kind:"job",job:{id:h,status:"failed",message:Xt($)}})})},1200)},[N,C]),q=(0,K.useCallback)(()=>{C();let h=r.current+1;r.current=h;let $=Zt();i($),s(Ae()),u("checking"),f({kind:"form"}),y(!1),x(""),D(""),Ca().then(_=>{r.current===h&&(i(_),s(B=>Sa(B,_)),u(_.webSession.status==="ready"?"reuse":"qr"))})},[C]);(0,K.useEffect)(()=>{if(a.open){q();return}C(),r.current+=1},[a.open,q,C]),(0,K.useEffect)(()=>{let h=t.current;if(h)if(a.open&&!h.open)try{h.showModal()}catch{}else!a.open&&h.open&&h.close()},[a.open]),(0,K.useEffect)(()=>()=>C(),[C]);let P=(0,K.useCallback)(async(h,$)=>{C(),y(!0),f({kind:"job",job:{id:"",status:"starting"}});try{let _=$??(m==="reuse"?"reuse":"qr"),B=h==="web"&&_==="reuse"&&l.webSession.status==="ready"?{userId:l.webSession.identity.userId,tenantId:l.webSession.identity.tenantId}:void 0,L=await fetch("/api/bot-onboarding/start",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({appName:h==="web"&&c.appName.trim()||void 0,registrationMode:h,...h==="web"?{sessionMode:_,expectedIdentity:B}:{},cliId:c.cliId,workingDir:c.workingDir.trim(),dirMode:c.dirMode,model:c.model.trim()||void 0})}),S=await L.json();if(L.status===400){f({kind:"form",error:S?.message??S?.error??"invalid_input"});return}if(!L.ok||!S?.job?.id)throw new Error(S?.error??`http_${L.status}`);let A=S.job;w(A),Be(A)||g(A.id)}catch(_){f({kind:"job",job:{id:"",status:"failed",message:Xt(_)}})}finally{y(!1)}},[w,l.webSession,c,m,g,C]),R=(0,K.useCallback)(h=>{h.preventDefault(),P("web")},[P]),O=(0,K.useCallback)(async h=>{if(h==="compat"&&!await we({title:"\u517C\u5BB9\u6027\u786E\u8BA4",message:I("botOnboarding.compatibilityConfirm"),danger:!1}))return;let $=h==="web"&&b.kind==="job"&&Ft(b.job.error);$&&u("qr"),P(h,$?"qr":void 0)},[P,b]),j=(0,K.useCallback)(async(h,$,_)=>{let B=[$.trim(),_.trim()].filter(Boolean).join(",");if(!B){f({kind:"job",job:h,ownerError:I("botOnboarding.ownerEmpty")});return}try{let L=await fetch(`/api/bot-onboarding/${encodeURIComponent(h.id)}/owner`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({owner:B})}),S=await L.json();if(!L.ok){f({kind:"job",job:h,ownerError:S?.message??S?.error??I("botOnboarding.ownerInvalid")});return}S?.job&&w(S.job)}catch(L){f({kind:"job",job:h,ownerError:Xt(L)})}},[w]),Q=(0,K.useMemo)(()=>b.kind==="form"?(0,k.jsx)(xa,{cliState:l,form:c,sessionMode:m,error:b.error,submitting:d,onFormChange:s,onSessionModeChange:u,onSubmit:R,onClose:v}):(0,k.jsx)(Ta,{view:b,ownerInput:T,ownerIdInput:p,onOwnerInputChange:x,onOwnerIdInputChange:D,onSubmitOwner:j,onRetry:O,onClose:v}),[l,v,c,p,T,O,m,R,j,d,b]),tt=b.kind==="form"||b.kind==="job"&&(b.job.status==="completed"||b.job.status==="failed");return(0,k.jsx)("dialog",{className:"onboarding-dialog",ref:t,onCancel:h=>{tt||h.preventDefault()},onClose:()=>{tt&&v()},onClick:h=>{tt&&h.target===h.currentTarget&&v()},children:(0,k.jsxs)("article",{className:"onboarding-card",children:[(0,k.jsxs)("header",{className:"onboarding-header",children:[(0,k.jsx)("h3",{children:I("botOnboarding.title")}),(0,k.jsx)("p",{children:I("botOnboarding.intro")})]}),Q]})})}var _e=[3600*1e3,480*60*1e3,1440*60*1e3,10080*60*1e3];var Ut=["low","medium","high","xhigh","max","ultra"],Ia=Ut.slice(0,4),je=Ut.slice(0,4),Ra=je.slice(0,3),Oa=new Set(["gpt-5.6-sol","gpt-5.6-terra"]),Pa=new Set(["gpt-5.6-luna"]),Ma=new Set(["grok-4.6"]);function Aa(a){return a==="codex"||a==="codex-app"}function Ba(a){let t=a?.trim().toLowerCase()??"";return Oa.has(t)?Ut:Pa.has(t)?Ut.slice(0,5):Ia}function La(a){let t=a?.trim().toLowerCase()??"";return Ma.has(t)?je:Ra}function Ge(a,t){return a==="grok"?La(t):Aa(a)?Ba(t):[]}var e=ft(Mt(),1);function ee(a){let t=a.cliRuntime;if(!t||typeof t!="object"){let l=typeof a.cliPathOverride=="string"?a.cliPathOverride.trim():"";return{mode:l?"legacy":"official",id:"",displayName:"",executable:l,legacyPath:l,updateProvider:"auto",packageName:""}}let n=t.update?.provider,r=n==="self"||n==="npm"||n==="none"?n:"auto";return{mode:"custom",id:typeof t.id=="string"?t.id:"",displayName:typeof t.displayName=="string"?t.displayName:"",executable:typeof t.executable=="string"?t.executable:"",legacyPath:"",updateProvider:r,packageName:t.update?.provider==="npm"&&typeof t.update.packageName=="string"?t.update.packageName:""}}var Tt=["common","sessions","security","cards","advanced"];function $a(a){let t=J(),n=(0,o.useRef)([]),r={common:t("botDefaults.tabCommon"),sessions:t("botDefaults.tabSessions"),security:t("botDefaults.tabSecurity"),cards:t("botDefaults.tabCards"),advanced:t("botDefaults.tabAdvanced")};function l(i){let c=(i+Tt.length)%Tt.length,s=Tt[c];a.onChange(s),n.current[c]?.focus()}return(0,e.jsxs)("nav",{className:"bd-tab-bar","aria-label":t("botDefaults.tabNavigation"),children:[(0,e.jsx)("div",{className:"bd-tabs",role:"tablist",children:Tt.map((i,c)=>(0,e.jsx)("button",{ref:s=>{n.current[c]=s},id:`bd-tab-${i}`,type:"button",role:"tab",className:`bd-tab${a.active===i?" active":""}`,"aria-selected":a.active===i,"aria-controls":`bd-panel-${i}`,tabIndex:a.active===i?0:-1,"data-bd-tab":i,onClick:()=>a.onChange(i),onKeyDown:s=>{s.key==="ArrowRight"?(s.preventDefault(),l(c+1)):s.key==="ArrowLeft"?(s.preventDefault(),l(c-1)):s.key==="Home"?(s.preventDefault(),l(0)):s.key==="End"&&(s.preventDefault(),l(Tt.length-1))},children:r[i]},i))}),(0,e.jsx)("small",{className:"bd-tab-hint",children:t("botDefaults.tabHint")})]})}var Ea=1,He=14;function xt(a){let t=(0,o.useRef)(null);return(0,o.useEffect)(()=>{let n=t.current;if(!n||typeof window>"u")return;let r=s=>{for(let m of s)m.style.gridColumn="",m.style.gridRowStart="",m.style.gridRowEnd=""},l=()=>{let s=Array.from(n.children).filter(T=>T instanceof HTMLElement);if(!s.length)return;let m=n.clientWidth;if(m<=0)return;let f=(n.closest(".bd-detail")?.clientWidth??m)>=1024?2:1;if(f<2){r(s);return}let d=Ea+He,y=new Array(f).fill(0);for(let T of s){let x=Math.max(1,Math.ceil((T.getBoundingClientRect().height+He)/d));if(T.classList.contains("bd-tile-wide")){let C=Math.max(...y);T.style.gridColumn="1 / -1",T.style.gridRowStart=String(C+1),T.style.gridRowEnd=String(C+1+x),y.fill(C+x);continue}let p=0;for(let C=1;C<f;C++)y[C]<y[p]&&(p=C);let D=y[p];T.style.gridColumn=String(p+1),T.style.gridRowStart=String(D+1),T.style.gridRowEnd=String(D+1+x),y[p]=D+x}},i=window.requestAnimationFrame(l),c=typeof ResizeObserver<"u"?new ResizeObserver(()=>l()):null;if(c){c.observe(n);for(let s of Array.from(n.children))c.observe(s)}return window.addEventListener("resize",l),()=>{window.cancelAnimationFrame(i),c?.disconnect(),window.removeEventListener("resize",l)}}),(0,e.jsx)("div",{ref:t,className:a.className?`bd-tab-grid ${a.className}`:"bd-tab-grid",children:a.children})}function We(a){if(!a||typeof a!="object")return!1;let t=a;return"closedMismatchedSessions"in t||"closedMismatchedFailed"in t||"closedMismatchedResidual"in t||"closedMismatchedResidualTaskIds"in t}function ae(a){let t=a&&typeof a=="object"?a:{},n=b=>typeof b=="number"&&Number.isInteger(b)&&b>0?b:0,r=n(t.closedMismatchedSessions),l=n(t.closedMismatchedFailed),i=n(t.closedMismatchedResidual),c=t.closedMismatchedResidualTaskIds,s=Array.isArray(c)?c.map(b=>typeof b=="string"&&b.trim()?b:"unknown"):[],m=i>0||s.length>0,u=m&&s.length===0?["unknown"]:s;return{closed:r,failed:l,residual:Math.max(i,u.length),residualIds:u,hasResidual:m}}function _t(a,t){return a.residualIds.length===0?"":t("botDefaults.agentResidualIds",{ids:a.residualIds.join(", ")})}function re(a,t=""){let n=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${t?` ${t}`:""}${n}`}function X(a){return(0,e.jsx)("span",{role:"status","aria-live":"polite",className:re(a.status),...a.attr??{},children:a.status?.text??""},a.status?.text??"")}function Fa(a){let t=typeof a.children=="string"?a.children:void 0;return(0,e.jsx)(Se,{className:"bd-info-tip",label:t,children:a.children})}function F(a){return(0,e.jsxs)("span",{className:"bd-field-title",children:[(0,e.jsx)("span",{className:"bd-field-title-text",children:a.children}),a.help?(0,e.jsx)(Fa,{children:a.help}):null]})}function it(a){let t=J();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(pt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:Vt(a.options,a.value),value:a.value,options:a.options,searchable:a.searchable,searchPlaceholder:a.searchable?t("common.dropdownSearch"):void 0,searchEmptyLabel:a.searchable?t("common.dropdownSearchEmpty"):void 0,onChange:a.onChange}),(0,e.jsx)("input",{type:"hidden","data-input":a.dataInput,value:a.value,readOnly:!0})]})}var qe="__custom__";function te(a){let t=J(),[n,r]=(0,o.useState)(!1),l=(0,o.useId)(),i=a.value,c=(0,o.useMemo)(()=>{let s=[];i&&!a.options.includes(i)&&s.push({value:i,label:i});for(let m of a.options)s.push({value:m,label:m});return s.push({value:qe,label:a.customLabel}),s},[i,a.options,a.customLabel]);return(0,e.jsxs)("span",{className:"bd-model-picker",children:[n?(0,e.jsxs)("span",{className:"bd-model-custom",children:[(0,e.jsx)("input",{type:"text","data-input":a.dataInput,list:l,value:i,placeholder:a.defaultLabel,disabled:a.disabled,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,onChange:s=>a.onChange(s.currentTarget.value)}),(0,e.jsx)("button",{type:"button",className:"bd-model-back",disabled:a.disabled,onClick:()=>r(!1),children:t("botDefaults.modelPickerBack")}),(0,e.jsx)("datalist",{id:l,children:a.options.map(s=>(0,e.jsx)("option",{value:s},s))})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(pt,{id:`bd-menu-${a.dataInput}`,className:["bd-model-menu",a.menuClassName].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:i||a.defaultLabel,value:i,options:c,searchable:!0,searchPlaceholder:t("common.dropdownSearch"),searchEmptyLabel:t("common.dropdownSearchEmpty"),onChange:s=>{if(s===qe){r(!0);return}a.onChange(s)}}),(0,e.jsx)("input",{type:"hidden","data-input":a.dataInput,value:i,onChange:s=>a.onChange(s.currentTarget.value)})]}),a.busy?(0,e.jsx)("small",{className:"bd-model-busy",children:(0,e.jsx)("span",{className:"bd-model-spinner","aria-hidden":"true"})}):null,typeof a.detectedCount=="number"&&a.detectedCount>0&&a.detectedLabel?(0,e.jsx)("small",{className:"bd-model-detected",children:a.detectedLabel}):null]})}function ot(a){return(0,e.jsxs)("label",{className:a.className?`toggle-row ${a.className}`:"toggle-row",children:[(0,e.jsx)("input",{type:"checkbox","data-action":a.dataAction,checked:a.checked,disabled:a.disabled,onChange:t=>a.onChange(t.currentTarget.checked)}),(0,e.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,e.jsxs)("span",{className:"toggle-tx",children:[(0,e.jsx)("strong",{children:(0,e.jsx)(F,{help:a.help,children:a.title})}),a.description?(0,e.jsx)("small",{children:a.description}):null]})]})}async function z(a,t,n){let r=await fetch(t,{method:a,headers:{"content-type":"application/json"},body:n===void 0?void 0:JSON.stringify(n)}),l=await r.json().catch(()=>({}));return{ok:r.ok&&l?.ok!==!1,status:r.status,body:l}}function V(a){let t=typeof a.body?.reason=="string"?a.body.reason:"",n=typeof a.body?.manualCommand=="string"?a.body.manualCommand:"";return t&&n?`${t}\uFF08${n}\uFF09`:String(t||a.body?.error||a.status)}function H(a){return a?.message??String(a)}function ea(a){let t=a.trim();return t?/^[1-9]\d*$/.test(t)?Number(t):"invalid":null}function Je(a,t){let n=a.trim();return n===""?t:/^(0|[1-9]\d*)$/.test(n)?Number(n):null}var ue=["email","openId","userId","unionId"];function Ve(a){let t=a.split(/[\r\n,,;;]+/).map(n=>n.trim()).filter(Boolean);return[...new Set(t)]}function yt(a){return(a??[]).join(`
2
+ `)}function Ua(a){return ue.find(t=>a?.[t]?.trim())??"email"}function _a(a){let t=a.idValue.trim();if(!t)return null;let n={...a.persisted};if(a.persisted[a.idField]!==t||a.originalIdField!=null&&a.originalIdField!==a.idField)for(let i of ue)delete n[i];n[a.idField]=t;let l=a.name.trim();return l?n.name=l:delete n.name,n}function ja(a,t){return a==null?t("botDefaults.brandStateDefault"):a.trim()===""?t("botDefaults.brandStateOff"):t("botDefaults.brandStateCustom")}var Ga=_e;function Ha(a,t){return a==null?t("botDefaults.maxLiveWorkersStateDefault"):t("botDefaults.maxLiveWorkersStateOn",{count:a})}function Wa(a,t){return{...a,usageDisplay:t.usageDisplay,disableStreamingCard:t.disableStreamingCard,silentTurnReactions:t.silentTurnReactions,codexAppCleanInput:t.codexAppCleanInput,writableTerminalLinkInCard:t.writableTerminalLinkInCard,privateCard:t.privateCard,summaryMemory:t.summaryMemory,summaryMemoryPath:t.summaryMemoryPath,botToBotSameDir:t.botToBotSameDir,autoStartOnGroupJoin:t.autoStartOnGroupJoin,autoStartOnGroupJoinPrompt:t.autoStartOnGroupJoinPrompt,autoStartOnNewTopic:t.autoStartOnNewTopic,regularGroupReplyMode:t.regularGroupReplyMode,regularGroupMentionMode:t.regularGroupMentionMode,docSubscribeDefaultMode:t.docSubscribeDefaultMode}}function qa(){let a=J(),t=(0,o.useRef)(!0),n=(0,o.useRef)(Ie()),[r,l]=(0,o.useState)([]),[i,c]=(0,o.useState)(Nt),[s,m]=(0,o.useState)(null),[u,b]=(0,o.useState)(!0),[f,d]=(0,o.useState)(!1),[y,T]=(0,o.useState)(""),[x,p]=(0,o.useState)(null),[D,C]=(0,o.useState)(0),[,v]=(0,o.useState)(0),[w,N]=(0,o.useState)(!1),[g,q]=(0,o.useState)("common"),P=(0,o.useCallback)(async(h=!1)=>{h&&C(_=>_+1);let $=n.current.begin();b(!0);try{let[_,B]=await Promise.all([Re(),Pe()]);if(!t.current||!$.commit())return;l(_.bots),m(_.error),c(B)}finally{t.current&&$.commit()&&b(!1)}},[]);(0,o.useEffect)(()=>{t.current=!0,P(),ve().then(()=>{t.current&&v($=>$+1)});let h=Pt.onBotsChanged(()=>{t.current&&P()});return()=>{t.current=!1,h()}},[P]);let R=(0,o.useMemo)(()=>{let h=y.trim().toLowerCase();return r.filter($=>!h||($.botName??"").toLowerCase().includes(h)||($.larkAppId??"").toLowerCase().includes(h))},[r,y]);(0,o.useEffect)(()=>{if(!(s||u)){if(R.length===0){x!==null&&p(null);return}(!x||!R.some(h=>h.larkAppId===x))&&p(R[0].larkAppId)}},[R,s,u,x]);let O=x?R.find(h=>h.larkAppId===x)??null:null,j=(0,o.useCallback)((h,$)=>{l(_=>_.map(B=>B.larkAppId!==h?B:typeof $=="function"?$(B):{...B,...$}))},[]),Q=async()=>{d(!0);try{await P(!0)}finally{t.current&&d(!1)}},tt;return u?tt=(0,e.jsx)(At,{label:a("common.loading")}):s?tt=(0,e.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",s,(0,e.jsx)("br",{}),"\u5E38\u89C1\u539F\u56E0\uFF1Adashboard / daemon \u8FDB\u7A0B\u8FD8\u5728\u8DD1\u65E7\u4EE3\u7801\uFF0C\u6267\u884C ",(0,e.jsx)("code",{children:"botmux restart"})," \u540E\u5237\u65B0\u3002"]}):R.length===0?tt=(0,e.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):O?tt=(0,e.jsx)(Va,{bot:O,cliState:i,patchBot:j,activeTab:g,onTabChange:q},`${O.larkAppId}:${D}`):tt=null,(0,e.jsxs)("section",{className:"page bot-defaults-page",children:[(0,e.jsxs)("div",{className:"page-heading",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"eyebrow",children:a("nav.botDefaults")}),(0,e.jsx)("h1",{children:a("botDefaults.title")})]}),(0,e.jsxs)("div",{className:"page-heading-actions",children:[(0,e.jsx)(Ce,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:f,disabled:f,onClick:()=>{Q()}}),he.authed?(0,e.jsx)(ke,{className:"page-primary-action add-bot-btn",disabled:w,onClick:()=>{N(!0),Ue().finally(()=>N(!1))},children:a("botOnboarding.add")}):null]})]}),(0,e.jsxs)("div",{className:"bd-layout",children:[(0,e.jsxs)("aside",{id:"bd-roster",className:"bd-roster",children:[(0,e.jsx)("form",{id:"bd-filters",className:"filters dashboard-toolbar",onSubmit:h=>h.preventDefault(),children:(0,e.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:y,onChange:h=>T(h.currentTarget.value)})}),(0,e.jsxs)("div",{className:"bd-roster-meta",children:[(0,e.jsx)("span",{children:a("botDefaults.rosterCount",{count:R.length})}),y.trim()&&R.length!==r.length?(0,e.jsx)("span",{children:a("botDefaults.rosterFiltered",{total:r.length})}):null]}),(0,e.jsx)("div",{className:"bd-roster-list",children:!s&&R.map(h=>(0,e.jsx)(Ja,{bot:h,selected:h.larkAppId===x,onSelect:()=>p(h.larkAppId)},h.larkAppId))})]}),(0,e.jsx)("div",{id:"bd-list",className:"bd-detail",children:tt})]})]})}function Ja(a){let{bot:t}=a,n=t.botName??t.larkAppId,r=Bt(t,Qt(t.larkAppId));return(0,e.jsxs)("div",{className:`bd-roster-item${a.selected?" on":""}`,"data-appid":t.larkAppId,role:"button",tabIndex:0,onClick:a.onSelect,onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),a.onSelect())},children:[(0,e.jsx)(St,{html:Ct({name:n,larkAppId:t.larkAppId,size:"sm"})}),(0,e.jsxs)("div",{className:"bd-roster-tx",children:[(0,e.jsx)("b",{children:(0,e.jsx)(Ne,{text:n,showPopover:!1,textClassName:"bd-roster-name"})}),(0,e.jsx)("span",{children:r||t.larkAppId.slice(0,14)})]}),t.defaultOncall?.enabled?(0,e.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function Va(a){let t=J(),{bot:n,cliState:r,patchBot:l}=a,i=n.botName??n.larkAppId,c=Bt(n,Qt(n.larkAppId)),s=(0,o.useCallback)(async u=>{let b=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/card-prefs`,u);return b.ok&&l(n.larkAppId,f=>Wa(f,b.body)),b},[n.larkAppId,l]);if(n.error)return(0,e.jsxs)("article",{className:"bd-card bd-profile","data-appid":n.larkAppId,children:[(0,e.jsxs)("header",{className:"bd-profile-head",children:[(0,e.jsx)(St,{html:Ct({name:i,larkAppId:n.larkAppId})}),(0,e.jsxs)("div",{className:"bd-profile-id",children:[(0,e.jsx)("strong",{children:i}),(0,e.jsx)("code",{children:n.larkAppId})]})]}),(0,e.jsxs)("p",{className:"hint-warn-inline",children:["\u67E5\u8BE2\u5931\u8D25\uFF1A",n.error]})]});let m=n.defaultOncall??{enabled:!1,workingDir:"",since:0};return(0,e.jsxs)("article",{className:"bd-card bd-profile","data-appid":n.larkAppId,children:[(0,e.jsxs)("div",{className:"bd-profile-chrome",children:[(0,e.jsxs)("header",{className:"bd-profile-head",children:[(0,e.jsx)(Za,{bot:n,name:i,patchBot:l}),(0,e.jsx)("div",{className:"bd-profile-main",children:(0,e.jsx)(Ya,{bot:n,cli:c,patchBot:l,meta:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("small",{className:"bd-meta-ok",children:["\u25CF ",t("botDefaults.metaOnline")]}),(m.since??0)>0?(0,e.jsxs)("small",{"data-oncall-since":!0,children:[t("botDefaults.lastEnabled"),": ",Me(m.since??0)]}):null,(n.autoboundChatCount??0)>0?(0,e.jsx)("small",{children:t("botDefaults.autobound",{count:n.autoboundChatCount??0})}):null]})})})]}),(0,e.jsx)($a,{active:a.activeTab,onChange:a.onTabChange})]}),(0,e.jsxs)("div",{className:"bd-body bd-tab-panels",children:[(0,e.jsx)("div",{id:"bd-panel-common",role:"tabpanel","aria-labelledby":"bd-tab-common",className:"bd-tab-panel",hidden:a.activeTab!=="common",children:(0,e.jsxs)(xt,{children:[(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(tn,{bot:n,sessionFallback:c,cliState:r,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(an,{bot:n,patchBot:l,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(cn,{bot:n,patchBot:l})})]})}),(0,e.jsx)("div",{id:"bd-panel-sessions",role:"tabpanel","aria-labelledby":"bd-tab-sessions",className:"bd-tab-panel",hidden:a.activeTab!=="sessions",children:(0,e.jsxs)(xt,{children:[(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(yn,{bot:n,patchBot:l,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(vn,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(gn,{bot:n,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(kn,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Cn,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(hn,{bot:n,patchBot:l,putCardPref:s})})]})}),(0,e.jsx)("div",{id:"bd-panel-security",role:"tabpanel","aria-labelledby":"bd-tab-security",className:"bd-tab-panel",hidden:a.activeTab!=="security",children:(0,e.jsxs)(xt,{children:[n.cliId!=="riff"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(on,{bot:n,patchBot:l})}):null,n.cliId!=="riff"&&n.sandbox===!0?(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(rn,{bot:n,patchBot:l})}):null,(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Pn,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Sn,{bot:n,patchBot:l})})]})}),(0,e.jsx)("div",{id:"bd-panel-cards",role:"tabpanel","aria-labelledby":"bd-tab-cards",className:"bd-tab-panel",hidden:a.activeTab!=="cards",children:(0,e.jsxs)(xt,{children:[(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(mn,{bot:n,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(Qa,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(On,{bot:n,patchBot:l})})]})}),(0,e.jsx)("div",{id:"bd-panel-advanced",role:"tabpanel","aria-labelledby":"bd-tab-advanced",className:"bd-tab-panel",hidden:a.activeTab!=="advanced",children:(0,e.jsxs)(xt,{children:[Te(n.cliId)?null:(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(dn,{bot:n,patchBot:l})}),n.cliId==="codex-app"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(fn,{bot:n,putCardPref:s})}):null,n.cliId==="claude-code"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(pn,{bot:n,patchBot:l})}):null,(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ka,{bot:n,patchBot:l})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(za,{bot:n,patchBot:l})})]})})]})]})}function Qa(a){let t=a.bot.feedback?.enabled===!0,[n,r]=(0,o.useState)(t),[l,i]=(0,o.useState)(JSON.stringify(a.bot.feedback??{enabled:!0},null,2)),[c,s]=(0,o.useState)(null),[m,u]=(0,o.useState)(!1),[b,f]=(0,o.useState)(""),[d,y]=(0,o.useState)([]),[T,x]=(0,o.useState)(null);(0,o.useEffect)(()=>{r(a.bot.feedback?.enabled===!0),i(JSON.stringify(a.bot.feedback??{enabled:!0},null,2))},[a.bot.feedback]),(0,o.useEffect)(()=>{ge().then(v=>{y(v.chats.filter(w=>w.memberBots.some(N=>N.larkAppId===a.bot.larkAppId&&N.inChat)))}).catch(()=>y([]))},[a.bot.larkAppId]);async function p(v=n){u(!0),s(null);try{let w={enabled:!1};if(v){let g=JSON.parse(l);if(!g||typeof g!="object"||Array.isArray(g))throw new Error("\u9AD8\u7EA7 JSON \u5FC5\u987B\u662F\u5BF9\u8C61");w={...g,enabled:!0}}let N=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/feedback`,{feedback:JSON.stringify(w)});if(!N.ok)throw new Error(V(N));a.patchBot(a.bot.larkAppId,{feedback:N.body.feedback??null}),s({text:"\u2713 \u5DF2\u4FDD\u5B58",ok:!0})}catch(w){s({text:`\u2717 ${H(w)}`})}finally{u(!1)}}async function D(){let v=b.trim()?`?chatId=${encodeURIComponent(b.trim())}`:"",w=await fetch(`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/feedback/effective${v}`),N=await w.json().catch(()=>({}));if(!w.ok)throw new Error(N?.error??`HTTP ${w.status}`);x(N.trace)}async function C(){if(!b.trim())return s({text:"\u2717 \u8BF7\u8F93\u5165\u804A\u5929 ID"});u(!0),s(null);try{let v=JSON.parse(l),w=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/chats/${encodeURIComponent(b.trim())}/feedback`,{feedback:v});if(!w.ok)throw new Error(V(w));await D(),s({text:"\u2713 \u804A\u5929\u8986\u76D6\u5DF2\u4FDD\u5B58",ok:!0})}catch(v){s({text:`\u2717 ${H(v)}`})}finally{u(!1)}}return(0,e.jsxs)("section",{className:"bd-section","aria-busy":m,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(F,{help:"\u5F00\u542F\u540E\uFF0C\u6700\u7EC8\u56DE\u7B54\u5361\u7247\u4F1A\u663E\u793A\u201C\u7ED3\u8BBA\u53EF\u7528 / \u6709\u6548\u63A8\u8FDB / \u7ED3\u8BBA\u6709\u8BEF\u201D\u7B49\u53CD\u9988\u6309\u94AE\uFF0C\u7528\u4E8E\u6536\u96C6\u56DE\u7B54\u8D28\u91CF\u8BC4\u4EF7\u3002\u9ED8\u8BA4\u5173\u95ED\uFF1B\u53EA\u5F71\u54CD\u8FD9\u4E2A bot \u7684\u6700\u7EC8\u56DE\u7B54\uFF0C\u4E0D\u5F71\u54CD\u8FC7\u7A0B\u6D88\u606F\u3002",children:"\u6700\u7EC8\u56DE\u7B54\u53CD\u9988"})}),(0,e.jsx)(ot,{checked:n,disabled:m,title:"\u6700\u7EC8\u56DE\u7B54\u53CD\u9988",help:null,description:"\u5728\u6700\u7EC8\u56DE\u7B54\u5361\u7247\u4E2D\u6536\u96C6\u7528\u6237\u8BC4\u4EF7\u3002",onChange:v=>{r(v),p(v)}}),(0,e.jsx)(X,{status:c}),n?(0,e.jsxs)("details",{className:"bd-feedback-advanced",children:[(0,e.jsx)("summary",{children:"\u9AD8\u7EA7\u914D\u7F6E\uFF08JSON \u4E0E\u804A\u5929\u8986\u76D6\uFF09"}),(0,e.jsxs)("div",{className:"bd-feedback-advanced-body",children:[(0,e.jsxs)("label",{className:"bd-row",children:[(0,e.jsx)(F,{help:"\u7528\u4E8E\u81EA\u5B9A\u4E49\u53CD\u9988\u6309\u94AE\u3001\u6587\u6848\u3001\u8D1F\u5411\u539F\u56E0\u548C\u662F\u5426\u5141\u8BB8\u6539\u9009\u3002\u4E0D\u4E86\u89E3 JSON \u914D\u7F6E\u65F6\u4FDD\u6301\u9ED8\u8BA4\u5373\u53EF\u3002",children:"\u9AD8\u7EA7 JSON"}),(0,e.jsx)("textarea",{className:"bd-feedback-json",value:l,disabled:m,rows:6,onChange:v=>i(v.target.value)})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary",disabled:m,onClick:()=>{p()},children:"\u4FDD\u5B58\u53CD\u9988\u914D\u7F6E"})}),(0,e.jsxs)("div",{className:"bd-feedback-chat-override",children:[(0,e.jsx)("h4",{children:(0,e.jsx)(F,{help:"\u8BA9\u540C\u4E00\u4E2A bot \u5728\u4E0D\u540C\u98DE\u4E66\u804A\u5929\u4E2D\u4F7F\u7528\u4E0D\u540C\u53CD\u9988\u89C4\u5219\uFF1B\u804A\u5929\u914D\u7F6E\u4F18\u5148\u4E8E bot \u9ED8\u8BA4\u914D\u7F6E\u3002\u53EA\u6709\u5404\u7FA4\u89C4\u5219\u4E0D\u540C\u65F6\u624D\u9700\u8981\u8BBE\u7F6E\u3002",children:"\u6BCF\u804A\u5929\u8986\u76D6"})}),(0,e.jsx)("p",{className:"hint",children:"\u4EC5\u5F53\u8FD9\u4E2A bot \u5728\u4E0D\u540C\u804A\u5929\u4E2D\u9700\u8981\u4E0D\u540C\u53CD\u9988\u89C4\u5219\u65F6\u8BBE\u7F6E\u3002"}),(0,e.jsxs)("label",{className:"bd-row",children:[(0,e.jsx)("span",{children:"\u804A\u5929"}),(0,e.jsxs)("select",{value:b,onChange:v=>{f(v.target.value),x(null)},children:[(0,e.jsx)("option",{value:"",children:"\u9009\u62E9\u804A\u5929"}),d.map(v=>(0,e.jsx)("option",{value:v.chatId,children:v.name||v.chatId},v.chatId))]})]}),b.trim()?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",disabled:m,onClick:()=>{C()},children:"\u4FDD\u5B58\u804A\u5929\u8986\u76D6"}),(0,e.jsx)("button",{type:"button",disabled:m,onClick:()=>{D()},children:"\u751F\u6548\u9884\u89C8"})]}),T?(0,e.jsx)("pre",{className:"code-block",children:JSON.stringify(T,null,2)}):null]}):null]})]})]}):null]})}function Ka(a){let t=J();return(0,e.jsxs)("section",{className:"bd-section bd-runtime-env",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionRuntimeEnv")}),(0,e.jsx)(Nn,{bot:a.bot,patchBot:a.patchBot}),(0,e.jsx)(wn,{bot:a.bot,patchBot:a.patchBot})]})}var aa=[{value:"idle",labelKey:"botDefaults.ownerReminderStateIdle"},{value:"dormant",labelKey:"botDefaults.ownerReminderStateDormant"},{value:"pending_repo",labelKey:"botDefaults.ownerReminderStatePendingRepo"},{value:"tui_prompt",labelKey:"botDefaults.ownerReminderStateTuiPrompt"},{value:"agent_attention",labelKey:"botDefaults.ownerReminderStateAgentAttention"},{value:"limited",labelKey:"botDefaults.ownerReminderStateLimited"}],Qe={enabled:!1,intervalMinutes:30,text:"\u8BE5\u4F1A\u8BDD\u5DF2\u7B49\u5F85\u5904\u7406\uFF0C\u8BF7\u7EE7\u7EED\u8DDF\u8FDB\u3002",states:aa.map(a=>a.value)};function za(a){let t=J(),n=a.bot.sessionOwnerReminder??Qe,[r,l]=(0,o.useState)(n.enabled===!0),[i,c]=(0,o.useState)(String(n.intervalMinutes)),[s,m]=(0,o.useState)(n.text),[u,b]=(0,o.useState)([...n.states]),[f,d]=(0,o.useState)(null),[y,T]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let D=a.bot.sessionOwnerReminder??Qe;l(D.enabled===!0),c(String(D.intervalMinutes)),m(D.text),b([...D.states])},[a.bot.sessionOwnerReminder]);function x(D,C){b(v=>C?v.includes(D)?v:[...v,D]:v.filter(w=>w!==D))}async function p(){let D=Number(i),C=s.trim();if(!Number.isInteger(D)||D<1||D>10080){d({text:`\u2717 ${t("botDefaults.ownerReminderIntervalInvalid")}`});return}if(!C||Array.from(C).length>500||/<\s*at\b/i.test(C)){d({text:`\u2717 ${t("botDefaults.ownerReminderTextInvalid")}`});return}if(r&&u.length===0){d({text:`\u2717 ${t("botDefaults.ownerReminderStatesInvalid")}`});return}T(!0),d(null);try{let v={enabled:r,intervalMinutes:D,text:C,states:u},w=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-owner-reminder`,v);if(w.ok&&w.body.ok){let N=w.body.sessionOwnerReminder??v;a.patchBot(a.bot.larkAppId,{sessionOwnerReminder:N}),d({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else d({text:`\u2717 ${V(w)}`})}catch(v){d({text:`\u2717 ${H(v)}`})}finally{T(!1)}}return(0,e.jsxs)("section",{className:"bd-section bd-owner-reminder",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(F,{help:t("botDefaults.ownerReminderHelp"),children:t("botDefaults.ownerReminderTitle")})}),(0,e.jsx)(ot,{checked:r,disabled:y,dataAction:"toggle-owner-reminder",title:t("botDefaults.ownerReminderEnabled"),help:t("botDefaults.ownerReminderEnabledHelp"),onChange:l}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.ownerReminderInterval")}),(0,e.jsx)("input",{type:"number",min:1,max:10080,step:1,"data-input":"ownerReminderInterval",value:i,disabled:y,onChange:D=>c(D.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:t("botDefaults.ownerReminderStates")}),(0,e.jsx)("div",{className:"bd-owner-reminder-states",children:aa.map(D=>(0,e.jsxs)("label",{children:[(0,e.jsx)("input",{type:"checkbox",checked:u.includes(D.value),disabled:y,onChange:C=>x(D.value,C.currentTarget.checked)}),(0,e.jsx)("span",{children:t(D.labelKey)})]},D.value))})]}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)(F,{help:t("botDefaults.ownerReminderTextHelp"),children:t("botDefaults.ownerReminderText")})}),(0,e.jsx)("textarea",{rows:3,maxLength:500,"data-input":"ownerReminderText",value:s,disabled:y,onChange:D=>m(D.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-owner-reminder",disabled:y,onClick:()=>{p()},children:t("botDefaults.ownerReminderSave")}),(0,e.jsx)(X,{status:f,attr:{"data-owner-reminder-status":""}})]})]})}var jt=512;async function Xa(a){let t=await createImageBitmap(a);try{let n=Math.min(t.width,t.height);if(!n)throw new Error("empty image");let r=document.createElement("canvas");r.width=jt,r.height=jt;let l=r.getContext("2d");if(!l)throw new Error("canvas unavailable");let i=(t.width-n)/2,c=(t.height-n)/2;return l.drawImage(t,i,c,n,n,0,0,jt,jt),r.toDataURL("image/png")}finally{t.close()}}function Za(a){let t=J(),{bot:n,name:r,patchBot:l}=a,i=(0,o.useRef)(null),[c,s]=(0,o.useState)(!1),[m,u]=(0,o.useState)(null),[b,f]=(0,o.useState)(!1),[d,y]=(0,o.useState)(!1),T=(0,o.useRef)(null);function x(C,v){let N=["no_session","session_expired","no_access","unsupported_brand"].includes(C)?t(`botDefaults.avatarWarn.${C}`):v||C;return t("botDefaults.avatarFailed",{error:N})}let p=(0,o.useCallback)(async C=>{s(!0),u({text:`\u23F3 ${t("botDefaults.avatarUploading")}`,ok:!0});try{let v=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/avatar`,{imageBase64:C});if(v.ok&&v.body.ok){let w=typeof v.body.avatarUrl=="string"?v.body.avatarUrl:"";w&&ye(n.larkAppId,r,w),l(n.larkAppId,N=>({...N})),T.current=null,f(!1),u({text:`\u2713 ${t("botDefaults.avatarOkFeishu")}`,ok:!0})}else{let w=String(v.body?.error??""),N=typeof v.body?.message=="string"?v.body.message:void 0;u({text:`\u2717 ${x(w,N??V(v))}`});let g=w==="no_session"||w==="session_expired";f(g),g||(T.current=null)}}catch(v){u({text:`\u2717 ${t("botDefaults.avatarFailed",{error:H(v)})}`})}finally{s(!1)}},[n.larkAppId,r,l,t]);async function D(C){if(!C||c)return;s(!0);let v;try{v=await Xa(C)}catch{s(!1),u({text:`\u2717 ${t("botDefaults.avatarBadImage")}`});return}T.current=v,await p(v)}return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"bd-profile-avatar bd-avatar-editable","data-avatar-control":!0,children:[(0,e.jsxs)("button",{type:"button",className:"bd-avatar-btn","data-action":"edit-bot-avatar",title:t("botDefaults.avatarTitle"),"aria-label":t("botDefaults.avatarTitle"),disabled:c,onClick:()=>i.current?.click(),children:[(0,e.jsx)(St,{html:Ct({name:r,larkAppId:n.larkAppId,dot:"ok"})}),(0,e.jsx)("span",{className:"bd-avatar-edit-badge","aria-hidden":"true",children:c?"\u23F3":"\u270E"})]}),(0,e.jsx)("input",{ref:i,type:"file",accept:"image/*",hidden:!0,"data-input":"botAvatarFile",onChange:C=>{let v=C.currentTarget.files?.[0];C.currentTarget.value="",D(v)}}),d?(0,e.jsx)(na,{onClose:()=>y(!1),onSuccess:()=>{f(!1),y(!1),T.current&&p(T.current)}}):null]}),m?(0,e.jsxs)("small",{className:re(m,"bd-avatar-status"),"data-avatar-status":!0,children:[m.text,b?(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-avatar",onClick:()=>y(!0),children:t("feishuLogin.entry")}):null]}):null]})}function Ya(a){let t=J(),{bot:n,cli:r,patchBot:l}=a,i=n.botName??n.larkAppId,[c,s]=(0,o.useState)(!1),[m,u]=(0,o.useState)(i),[b,f]=(0,o.useState)(!1),[d,y]=(0,o.useState)(null),[T,x]=(0,o.useState)(!1),[p,D]=(0,o.useState)(!1);(0,o.useEffect)(()=>{c||u(i)},[c,i]);function C(N){s(N),N&&(u(i),y(null),x(!1))}function v(N,g){let P=["no_session","session_expired","no_access","unsupported_brand"].includes(N)?t(`botDefaults.renameWarn.${N}`):g||N;return t("botDefaults.renameLocalOnly",{reason:P})}let w=(0,o.useCallback)(async()=>{let N=m.trim();if(!N){y({text:`\u2717 ${t("botDefaults.renameEmpty")}`});return}f(!0),y({text:`\u23F3 ${t("botDefaults.renaming")}`,ok:!0});try{let g=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/rename`,{name:N});if(g.ok&&g.body.ok){let q=typeof g.body.botName=="string"&&g.body.botName?g.body.botName:N;l(n.larkAppId,P=>({...P,botName:q,larkBotName:g.body.mode==="feishu"?N:P.larkBotName,displayName:g.body.mode==="feishu"?null:N})),C(!1),g.body.mode==="feishu"?(y({text:`\u2713 ${t("botDefaults.renameOkFeishu")}`,ok:!0}),x(!1)):(y({text:`\u26A0 ${v(String(g.body.warning??""),g.body.message)}`}),x(g.body.warning==="no_session"||g.body.warning==="session_expired"))}else y({text:`\u2717 ${t("botDefaults.renameFailed",{error:V(g)})}`})}catch(g){y({text:`\u2717 ${t("botDefaults.renameFailed",{error:H(g)})}`})}finally{f(!1)}},[n.larkAppId,m,l,t]);return(0,e.jsxs)("div",{className:"bd-profile-id",children:[c?(0,e.jsxs)("span",{className:"bd-name-editor","data-name-editor":!0,children:[(0,e.jsx)("input",{type:"text",className:"bd-name-input","data-input":"botRename",maxLength:64,value:m,disabled:b,autoFocus:!0,onChange:N=>u(N.currentTarget.value),onKeyDown:N=>{N.key==="Enter"?(N.preventDefault(),w()):N.key==="Escape"&&C(!1)}}),(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:b,onClick:()=>{w()},children:t("botDefaults.renameSave")}),(0,e.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:b,onClick:()=>C(!1),children:t("botDefaults.renameCancel")})]}):(0,e.jsxs)("div",{className:"bd-profile-title-row","data-name-row":!0,children:[(0,e.jsxs)("div",{className:"bd-profile-title-content",children:[(0,e.jsx)("strong",{"data-bot-name":!0,children:i}),r?(0,e.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:r}):null,a.meta?(0,e.jsx)("span",{className:"bd-profile-meta bd-meta",children:a.meta}):null]}),(0,e.jsx)("button",{type:"button",className:"bd-name-edit","data-action":"edit-bot-name",title:t("botDefaults.renameTitle"),"aria-label":t("botDefaults.renameTitle"),onClick:()=>C(!0),children:(0,e.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M11.5 2.5l2 2L6 12l-2.5.5L4 10z"})})})]}),(0,e.jsxs)("div",{className:"bd-profile-appid-row",children:[(0,e.jsx)("code",{children:n.larkAppId}),Jt(n.larkAppId,n.brand)?(0,e.jsxs)("a",{className:"bd-console-link",href:Jt(n.larkAppId,n.brand),target:"_blank",rel:"noopener noreferrer",children:[t("botDefaults.openConsole"),(0,e.jsx)("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M7 17 17 7M9 7h8v8"})})]}):null]}),(0,e.jsx)("small",{className:re(d,"bd-name-status"),"data-name-status":!0,children:d?.text??""}),(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login",hidden:!T,onClick:()=>D(!0),children:t("feishuLogin.entry")}),p?(0,e.jsx)(na,{onClose:()=>D(!1),onSuccess:()=>{x(!1),D(!1),w()}}):null]})}function na(a){let t=J(),{onClose:n,onSuccess:r}=a,l=(0,o.useRef)(null),i=(0,o.useRef)(null),[c,s]=(0,o.useState)(t("feishuLogin.starting")),[m,u]=(0,o.useState)(null),[b,f]=(0,o.useState)(!1),d=(0,o.useCallback)(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]),y=(0,o.useCallback)(p=>p?p.status==="awaiting_scan"&&p.qrDataUrl?(u(p.qrDataUrl),s(p.message||t("feishuLogin.scanHint")),f(!1),"active"):p.status==="starting"?(s(p.message||t("feishuLogin.starting")),u(null),f(!1),"active"):p.status==="success"?(d(),u(null),f(!1),s(t("feishuLogin.success")),i.current=window.setTimeout(()=>r(),900),"done"):(d(),u(null),s(t("feishuLogin.failed",{reason:p.message||p.reason||""})),f(!0),"done"):"active",[r,d,t]),T=(0,o.useCallback)(async()=>{try{let D=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));y(D.login)}catch{}},[y]),x=(0,o.useCallback)(async()=>{d(),s(t("feishuLogin.starting")),u(null),f(!1);let p="active";try{let C=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));p=y(C.login)}catch(D){s(t("feishuLogin.failed",{reason:H(D)})),f(!0);return}p==="active"&&l.current===null&&(l.current=window.setInterval(()=>{T()},1500))},[T,y,d,t]);return(0,o.useEffect)(()=>(x(),()=>{d(),i.current!==null&&window.clearTimeout(i.current)}),[x,d]),typeof document>"u"?null:(0,le.createPortal)((0,e.jsx)("div",{className:"feishu-login-overlay",onClick:p=>{p.currentTarget===p.target&&n()},children:(0,e.jsxs)("div",{className:"feishu-login-modal",role:"dialog","aria-modal":"true",children:[(0,e.jsx)("button",{type:"button",className:"feishu-login-close","data-close":!0,"aria-label":t("feishuLogin.close"),onClick:n,children:"x"}),(0,e.jsx)("h3",{className:"feishu-login-title",children:t("feishuLogin.title")}),(0,e.jsx)("p",{className:"feishu-login-hint","data-hint":!0,children:c}),(0,e.jsx)("div",{className:"feishu-login-qr","data-qr":!0,children:m?(0,e.jsx)("img",{className:"qr-image",src:m,alt:t("feishuLogin.qrAlt")}):null}),(0,e.jsx)("div",{className:"feishu-login-actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-retry":!0,hidden:!b,onClick:()=>{x()},children:t("feishuLogin.retry")})})]})}),document.body)}function tn(a){let t=J(),{bot:n,cliState:r,patchBot:l}=a,i=Kt(n,a.sessionFallback),c=JSON.stringify([n.cliRuntime??null,n.cliPathOverride??null]),[s,m]=(0,o.useState)(i),[u,b]=(0,o.useState)(!1),[f,d]=(0,o.useState)(typeof n.model=="string"?n.model:""),[y,T]=(0,o.useState)(n.reasoningEffort??""),[x,p]=(0,o.useState)(ne(n.turnTimeoutMs)),[D,C]=(0,o.useState)(!1),[v,w]=(0,o.useState)(null),[N,g]=(0,o.useState)(n.dshRuntime==="tui"?"tui":"official"),[q,P]=(0,o.useState)(!1),[R,O]=(0,o.useState)(()=>ee(n)),[j,Q]=(0,o.useState)(!1),[tt,h]=(0,o.useState)(null),[$,_]=(0,o.useState)(null),[B,L]=(0,o.useState)(!1),[S,A]=(0,o.useState)(Ke(n)),[E,U]=(0,o.useState)(null),[W,Z]=(0,o.useState)(!1);(0,o.useEffect)(()=>{m(Kt(n,a.sessionFallback)),b(!1),d(typeof n.model=="string"?n.model:""),T(n.reasoningEffort??""),p(ne(n.turnTimeoutMs)),C(!1),w(null),g(n.dshRuntime==="tui"?"tui":"official"),P(!1),O(ee(n)),Q(!1),A(Ke(n))},[n.agentSelectionKey,n.cliId,n.larkAppId,n.model,n.reasoningEffort,n.turnTimeoutMs,n.dshRuntime,c,n.wrapperCli,n.skillInjection,n.skillInjectionDefault,a.sessionFallback]);let nt=zt(r.options,s),et=Lt(nt,r),at=nt?.gateway==="ttadk"&&nt.acceptsModel===!1,[lt,st]=(0,o.useState)(null),[ct,Ht]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(nt?.gateway==="ttadk"){st(null),Ht(!1);return}let M=!1;return Ht(!0),Et(s).then(Y=>{M||st(Y)}).finally(()=>{M||Ht(!1)}),()=>{M=!0}},[s]);let la=$t(et,lt?.models??null),Wt=lt?.source==="live"?lt.models.length:0;function ra(M){let Y=s;m(M),b(!0),M!==Y&&(M!=="codex"||Y!=="codex")&&(O(ee({cliRuntime:null,cliPathOverride:null})),Q(!0),h(null));let dt=zt(r.options,M),G=dt?.gateway==="ttadk",rt=G&&dt.acceptsModel!==!1;d(G&&!rt?"":rt?ut=>ut.trim()?ut:r.ttadkModelDefault:ut=>ut.trim()===r.ttadkModelDefault?"":ut)}function de(M){O(Y=>({...Y,mode:M})),Q(!0),h(null),_(null)}function vt(M){O(Y=>({...Y,...M})),Q(!0),h(null),_(null)}async function ua(){_(null),h(null);let M;if(j&&(M=null),j&&s==="codex"&&R.mode==="custom"){let dt=R.id.trim(),G=R.executable.trim(),rt=R.displayName.trim(),ut=R.packageName.trim();if(!dt||!G){let bt=t("botDefaults.runtimeRequired");_({text:bt}),h({text:bt});return}if(R.updateProvider==="npm"&&!ut){let bt=t("botDefaults.runtimePackageRequired");_({text:bt}),h({text:bt});return}M={id:dt,...rt?{displayName:rt}:{},executable:G,update:R.updateProvider==="npm"?{provider:"npm",packageName:ut}:{provider:R.updateProvider}}}let Y;if(s==="dsh"&&D){let dt=en(x);if(dt==="invalid"){let G=t("botDefaults.agentTurnTimeoutInvalid");w(G),_({text:`\u2717 ${G}`});return}w(null),Y=dt}L(!0);try{let dt={cliId:s,model:f,reasoningEffort:s==="grok"||s==="codex"||s==="codex-app"||s.endsWith("-codex")?y:"",...s==="dsh"&&Y!==void 0?{turnTimeoutMs:Y}:{},...s==="dsh"&&q?{dshRuntime:N}:{},...j?{cliRuntime:M}:{}},G=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/agent`,dt);if(G.ok&&G.body.ok){let rt=ae(G.body),ut=rt.closed,bt=rt.residual,gt=rt.failed,Ot=[ut>0?t("botDefaults.agentClosedCount",{count:ut}):"",bt>0?t("botDefaults.agentClosedResidual",{count:bt}):"",gt>0?t("botDefaults.agentCloseFailed",{count:gt}):"",_t(rt,t)].filter(Boolean).join(" \xB7 "),ha=rt.hasResidual||gt>0;if(_(G.body.availabilityWarning?{text:`\u26A0\uFE0F ${G.body.availabilityWarning}${Ot?` \xB7 ${Ot}`:""}`}:ha?{text:`\u26A0\uFE0F ${Ot}`}:{text:`\u2713 ${Ot||t("botDefaults.agentSaved")}`,ok:!0}),l(n.larkAppId,{cliId:G.body.cliId,cliRuntime:G.body.cliRuntime===void 0?j?M??null:n.cliRuntime??null:G.body.cliRuntime,cliPathOverride:G.body.cliPathOverride===void 0?j?null:n.cliPathOverride??null:G.body.cliPathOverride,wrapperCli:G.body.wrapperCli??null,model:G.body.model??"",reasoningEffort:G.body.reasoningEffort??void 0,turnTimeoutMs:typeof G.body.turnTimeoutMs=="number"?G.body.turnTimeoutMs:void 0,dshRuntime:typeof G.body.dshRuntime=="string"?G.body.dshRuntime:n.dshRuntime??null,agentSelectionKey:G.body.selectionKey??s}),p(ne(typeof G.body.turnTimeoutMs=="number"?G.body.turnTimeoutMs:void 0)),C(!1),w(null),P(!1),Q(!1),M){let kt=G.body.runtimeProbe;kt&&typeof kt.version=="string"?h({text:t("botDefaults.runtimeProbeOk",{version:kt.version,provider:typeof kt.updateProvider=="string"?kt.updateProvider:R.updateProvider}),ok:!0}):h({text:t("botDefaults.runtimeProbeMissing")})}}else{let rt=We(G.body),ut=ae(G.body),gt=`\u2717 ${rt?[t("botDefaults.agentSwitchAborted",{closed:ut.closed,failed:ut.failed}),_t(ut,t)].filter(Boolean).join(" \xB7 "):typeof G.body?.message=="string"&&G.body.message?G.body.message:V(G)}`;_({text:gt}),s==="codex"&&R.mode==="custom"&&h({text:gt})}}catch(dt){let G=`\u2717 ${H(dt)}`;_({text:G}),s==="codex"&&R.mode==="custom"&&h({text:G})}finally{L(!1)}}async function da(){if(n.cliId==="riff")return{ok:!0,hadProblem:!1,note:""};try{let M=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/agent`,{cliId:"riff",model:""}),Y=ae(M.body);if(M.ok&&M.body.ok){l(n.larkAppId,{cliId:M.body.cliId,cliRuntime:M.body.cliRuntime??null,wrapperCli:M.body.wrapperCli??null,model:M.body.model??"",agentSelectionKey:M.body.selectionKey??"riff"});let rt=[Y.residual>0?t("botDefaults.agentClosedResidual",{count:Y.residual}):"",_t(Y,t)].filter(Boolean).join(" \xB7 ");return{ok:!0,hadProblem:Y.hasResidual,note:rt}}return{ok:!1,hadProblem:!0,note:We(M.body)?[t("botDefaults.riffAgentSwitchAborted",{closed:Y.closed,failed:Y.failed}),_t(Y,t)].filter(Boolean).join(" \xB7 "):V(M)}}catch(M){return{ok:!1,hadProblem:!0,note:H(M)}}}async function ca(M){A(M),U(null),Z(!0);try{let Y=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/skill-injection`,{skillInjection:M});Y.ok&&Y.body.ok?(U({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}),l(n.larkAppId,{skillInjection:Y.body.skillInjection??null})):U({text:`\u2717 ${V(Y)}`})}catch(Y){U({text:`\u2717 ${H(Y)}`})}finally{Z(!1)}}let ce=n.skillInjectionSupport==="dynamic"?"dynamic":n.skillInjectionSupport==="global"?"global":"none",Dt=s==="riff",Rt=s==="codex"||s==="codex-app"||s.endsWith("-codex"),ba=Rt||s==="grok",be=s==="dsh",qt=(0,o.useMemo)(()=>Ge(s==="grok"?"grok":Rt?"codex":void 0,f),[s,Rt,f]);(0,o.useEffect)(()=>{y&&!qt.includes(y)&&T("")},[y,qt]);let me=s==="codex"&&(!n.wrapperCli||u),fe=me&&R.mode!=="official",ma=[...r.options].sort((M,Y)=>M.label.localeCompare(Y.label,"en",{sensitivity:"base"})).map(M=>({value:M.id,label:M.available===!1&&!(M.id==="codex"&&fe)?t("botDefaults.agentMissingOption",{label:M.label,command:M.command??M.id}):`${M.label}\uFF08${M.id}\uFF09`})),fa=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamic")}],pa=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamicUnsupported"),disabled:!0},{value:"prompt",label:t("botDefaults.skillInjectionPrompt")},{value:"global",label:t("botDefaults.skillInjectionGlobal")},{value:"off",label:t("botDefaults.skillInjectionOff")}],ga=[{value:"auto",label:t("botDefaults.runtimeProviderAuto")},{value:"self",label:t("botDefaults.runtimeProviderSelf")},{value:"npm",label:t("botDefaults.runtimeProviderNpm")},{value:"none",label:t("botDefaults.runtimeProviderNone")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionAgent")}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:t("botDefaults.agentCli")}),(0,e.jsx)(it,{dataInput:"agentCliId",ariaLabel:t("botDefaults.agentCli"),value:s,disabled:B,options:ma,searchable:!0,onChange:ra}),nt?.available===!1&&!fe?(0,e.jsx)("small",{className:"hint-warn",children:t("botDefaults.agentMissingHint",{command:nt.command??s})}):null]})}),me?(0,e.jsxs)("div",{className:"bd-codex-runtime","data-codex-runtime":"",children:[(0,e.jsx)("div",{className:"bd-runtime-heading",children:(0,e.jsx)(F,{help:t("botDefaults.runtimeHelp"),children:t("botDefaults.runtimeTitle")})}),(0,e.jsxs)("div",{className:"bd-runtime-mode",role:"group","aria-label":t("botDefaults.runtimeTitle"),children:[(0,e.jsx)("button",{type:"button","data-action":"runtime-official","aria-pressed":R.mode==="official",disabled:B,onClick:()=>de("official"),children:t("botDefaults.runtimeOfficial")}),(0,e.jsx)("button",{type:"button","data-action":"runtime-custom","aria-pressed":R.mode==="custom",disabled:B,onClick:()=>de("custom"),children:t("botDefaults.runtimeCustom")})]}),(0,e.jsx)("input",{type:"hidden","data-input":"agentRuntimeMode",value:R.mode,readOnly:!0}),(0,e.jsx)("p",{className:"bd-runtime-note",children:t(R.mode==="official"?"botDefaults.runtimeOfficialNote":R.mode==="legacy"?"botDefaults.runtimeLegacyNote":"botDefaults.runtimeCustomNote")}),R.mode==="legacy"?(0,e.jsx)("div",{className:"bd-runtime-fields","data-runtime-legacy":"",children:(0,e.jsxs)("label",{className:"bd-runtime-wide",children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeLegacyPath")}),(0,e.jsx)("input",{type:"text",value:R.legacyPath,readOnly:!0,"aria-readonly":"true","data-input":"agentRuntimeLegacyPath"})]})}):null,R.mode==="custom"?(0,e.jsxs)("div",{className:"bd-runtime-fields",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:t("botDefaults.runtimeIdHelp"),children:t("botDefaults.runtimeId")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeId",value:R.id,disabled:B,autoComplete:"off",onChange:M=>vt({id:M.currentTarget.value})})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeDisplayName")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeDisplayName",placeholder:t("botDefaults.runtimeDisplayNamePlaceholder"),value:R.displayName,disabled:B,autoComplete:"off",onChange:M=>vt({displayName:M.currentTarget.value})})]}),(0,e.jsxs)("label",{className:"bd-runtime-wide",children:[(0,e.jsx)(F,{help:t("botDefaults.runtimeExecutableHelp"),children:t("botDefaults.runtimeExecutable")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeExecutable",value:R.executable,disabled:B,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:M=>vt({executable:M.currentTarget.value})})]}),(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeUpdateProvider")}),(0,e.jsx)(it,{dataInput:"agentRuntimeUpdateProvider",ariaLabel:t("botDefaults.runtimeUpdateProvider"),value:R.updateProvider,disabled:B,options:ga,onChange:M=>vt({updateProvider:M})})]}),R.updateProvider==="npm"?(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:t("botDefaults.runtimePackageHelp"),children:t("botDefaults.runtimePackageName")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimePackageName",value:R.packageName,disabled:B,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:M=>vt({packageName:M.currentTarget.value})})]}):null]}):null,(0,e.jsx)(X,{status:tt,attr:{"data-runtime-status":""}})]}):null,!Dt&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:t("botDefaults.agentHelp"),children:t("botDefaults.agentModel")}),(0,e.jsx)(te,{value:f,onChange:d,options:la,disabled:B||at,busy:ct,dataInput:"agentModel",ariaLabel:t("botDefaults.agentModel"),defaultLabel:t("botDefaults.modelPickerDefault"),customLabel:t("botDefaults.modelPickerCustom"),menuClassName:"bd-field-menu",detectedCount:Wt||void 0,detectedLabel:Wt>0?t("botDefaults.modelPickerDetected",{count:Wt}):void 0},s)]})}),be&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.dshRuntimeHelp"),children:t("botDefaults.dshRuntimeTitle")}),(0,e.jsxs)("div",{className:"bd-runtime-mode",role:"group","aria-label":t("botDefaults.dshRuntimeTitle"),children:[(0,e.jsx)("button",{type:"button","data-action":"dsh-runtime-official","aria-pressed":N==="official",disabled:B,onClick:()=>{g("official"),P(!0)},children:t("botDefaults.dshRuntimeOfficial")}),(0,e.jsx)("button",{type:"button","data-action":"dsh-runtime-tui","aria-pressed":N==="tui",disabled:B,onClick:()=>{g("tui"),P(!0)},children:t("botDefaults.dshRuntimeTui")})]}),(0,e.jsx)("p",{className:"bd-runtime-note",children:t(N==="tui"?"botDefaults.dshRuntimeTuiNote":"botDefaults.dshRuntimeOfficialNote")})]})}),be&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:t("botDefaults.agentTurnTimeoutHelp"),children:t("botDefaults.agentTurnTimeout")}),(0,e.jsx)("input",{type:"number",min:0,step:"any",inputMode:"decimal","data-input":"agentTurnTimeout",placeholder:t("botDefaults.agentTurnTimeoutPlaceholder"),value:x,disabled:B,onChange:M=>{p(M.currentTarget.value),C(!0),w(null)}}),v?(0,e.jsx)("small",{className:"hint-warn","data-turn-timeout-error":"",children:v}):null]})}),ba&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.agentReasoningEffortHelp"),children:t("botDefaults.agentReasoningEffort")}),(0,e.jsx)(it,{dataInput:"agentReasoningEffort",ariaLabel:t("botDefaults.agentReasoningEffort"),value:y,disabled:B,options:[{value:"",label:t(s==="grok"?"botDefaults.agentReasoningEffortDefaultGrok":Rt?"botDefaults.agentReasoningEffortDefaultCodex":"botDefaults.agentReasoningEffortDefault")},...qt.map(M=>({value:M,label:t(`botDefaults.agentReasoningEffort${M==="xhigh"?"Xhigh":M[0].toUpperCase()+M.slice(1)}`)}))],onChange:M=>T(M)})]})}),Dt&&(0,e.jsx)(Rn,{bot:n,patchBot:l,persistCliSelection:da}),!Dt&&ce==="dynamic"?(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.skillInjectionHelpDynamic"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(it,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:fa,onChange:()=>{}})]})}):!Dt&&ce==="global"?(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.skillInjectionHelp"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(it,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:S,disabled:W,options:pa,onChange:M=>{ca(M)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:E,attr:{"data-skill-injection-status":""}})})]}):null,!Dt&&(0,e.jsxs)("div",{className:"actions bd-section-actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:B,onClick:()=>{ua()},children:t("botDefaults.agentSave")}),(0,e.jsx)(X,{status:$,attr:{"data-agent-status":""}})]})]})}var oa=2147483647;function ne(a){if(typeof a!="number"||!Number.isInteger(a)||a<=0||a>oa)return"";let t=a/6e4;return Number.isInteger(t)?String(t):String(Number(t.toFixed(10)))}function en(a){let t=a.trim();if(!t)return"";let n=Number(t);if(!Number.isFinite(n)||n<=0)return"invalid";let r=Math.round(n*6e4);return r<=0||r>oa?"invalid":r}function Ke(a){let t=a.skillInjection==="global"||a.skillInjection==="prompt"||a.skillInjection==="off"?a.skillInjection:"",n=a.skillInjectionDefault==="global"||a.skillInjectionDefault==="off"?a.skillInjectionDefault:"prompt";return t||n}function an(a){let t=J(),{bot:n,patchBot:r}=a,l=ze(n),[i,c]=(0,o.useState)(l.mode),[s,m]=(0,o.useState)(l.workingDir),[u,b]=(0,o.useState)(n.defaultWorkingDirAutoWorktree===!0),[f,d]=(0,o.useState)(null),[y,T]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let D=ze(n);c(D.mode),m(D.workingDir),b(n.defaultWorkingDirAutoWorktree===!0)},[n.defaultOncall?.enabled,n.defaultOncall?.workingDir,n.defaultWorkingDir,n.defaultWorkingDirAutoWorktree]);async function x(){d(null);let D=s.trim();if(i!=="off"&&!D){d({text:t("botDefaults.required")});return}let C=i==="default"&&u;T(!0);try{let v=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/working-dir-mode`,{mode:i,workingDir:D,autoWorktree:C});if(v.ok&&v.body.ok){let w=v.body.resolvedPath?` \u2192 ${v.body.resolvedPath}`:"";d({text:`\u2713 ${t("botDefaults.workingDirSaved")}${w}`,ok:!0}),r(n.larkAppId,{defaultOncall:v.body.defaultOncall??n.defaultOncall,defaultWorkingDir:v.body.defaultWorkingDir??null,defaultWorkingDirAutoWorktree:v.body.defaultWorkingDirAutoWorktree===!0})}else d({text:`\u2717 ${V(v)}`})}catch(v){d({text:`\u2717 ${H(v)}`})}finally{T(!1)}}let p=[{value:"off",label:t("botDefaults.workingDirModeOff")},{value:"default",label:t("botDefaults.workingDirModeDefault")},{value:"oncall",label:t("botDefaults.workingDirModeOncall")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionWorkingDir")}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.workingDirModeHelp"),children:t("botDefaults.workingDirMode")}),(0,e.jsx)(it,{dataInput:"workingDirMode",ariaLabel:t("botDefaults.workingDirMode"),value:i,disabled:y,options:p,onChange:D=>c(D)})]})}),(0,e.jsx)("div",{className:"bd-row","data-wd-dir-row":!0,hidden:i==="off",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.workingDirField")}),(0,e.jsx)("input",{type:"text","data-input":"workingDir",placeholder:"e.g. /root/iserver/botmux",value:s,disabled:y,onChange:D=>m(D.currentTarget.value)})]})}),(0,e.jsxs)("label",{className:"toggle-row","data-wd-worktree-row":!0,hidden:i!=="default",children:[(0,e.jsx)("input",{type:"checkbox","data-input":"autoWorktree",checked:u,disabled:y,onChange:D=>b(D.currentTarget.checked)}),(0,e.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,e.jsx)("span",{className:"toggle-tx",children:(0,e.jsx)("strong",{children:(0,e.jsx)(F,{help:t("botDefaults.autoWorktreeHelp"),children:t("botDefaults.autoWorktree")})})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-working-dir",disabled:y,onClick:()=>{x()},children:t("botDefaults.save")}),(0,e.jsx)(X,{status:f,attr:{"data-status":""}})]}),(0,e.jsx)(nn,{bot:n,putCardPref:a.putCardPref})]})}function ze(a){let t=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:t.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||t.workingDir||""}}function nn(a){let t=J(),{bot:n,putCardPref:r}=a,[l,i]=(0,o.useState)(n.autoStartOnGroupJoin===!0),[c,s]=(0,o.useState)(n.autoStartOnNewTopic===!0),[m,u]=(0,o.useState)(typeof n.autoStartOnGroupJoinPrompt=="string"?n.autoStartOnGroupJoinPrompt:""),[b,f]=(0,o.useState)(null),[d,y]=(0,o.useState)(null);(0,o.useEffect)(()=>{i(n.autoStartOnGroupJoin===!0),s(n.autoStartOnNewTopic===!0),u(typeof n.autoStartOnGroupJoinPrompt=="string"?n.autoStartOnGroupJoinPrompt:"")},[n.autoStartOnGroupJoin,n.autoStartOnGroupJoinPrompt,n.autoStartOnNewTopic]);async function T(x,p){y(p),f(null);try{let D=await r(x);f(D.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${V(D)}`})}catch(D){f({text:`\u2717 ${H(D)}`})}finally{y(null)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:t("botDefaults.sectionAutoStart")}),(0,e.jsx)(ot,{checked:l,disabled:d==="join",dataAction:"toggle-auto-join",title:t("botDefaults.autoStartJoin"),help:t("botDefaults.autoStartJoinHelp"),onChange:x=>{i(x),T({autoStartOnGroupJoin:x},"join")}}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.autoStartJoinPrompt")}),(0,e.jsx)("textarea",{"data-input":"autoJoinPrompt",rows:3,placeholder:t("botDefaults.autoStartJoinPromptPlaceholder"),value:m,onChange:x=>u(x.currentTarget.value)})]})}),(0,e.jsx)(ot,{checked:c,disabled:d==="topic",dataAction:"toggle-auto-topic",title:t("botDefaults.autoStartTopic"),help:t("botDefaults.autoStartTopicHelp"),onChange:x=>{s(x),T({autoStartOnNewTopic:x},"topic")}}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-auto-join-prompt",disabled:d==="prompt",onClick:()=>{T({autoStartOnGroupJoinPrompt:m},"prompt")},children:t("botDefaults.autoStartJoinPromptSave")}),(0,e.jsx)(X,{status:b,attr:{"data-auto-start-status":""}})]})]})}function on(a){let t=J(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(n.sandbox===!0),[c,s]=(0,o.useState)(null),[m,u]=(0,o.useState)(!1);(0,o.useEffect)(()=>i(n.sandbox===!0),[n.sandbox]);async function b(d){i(d),s(null),u(!0);try{let y=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/sandbox`,{enabled:d});y.ok&&y.body.ok?(s({text:`\u2713 ${t("botDefaults.sandboxSaved")}`,ok:!0}),r(n.larkAppId,{sandbox:y.body.sandbox===!0})):(s({text:`\u2717 ${V(y)}`}),i(!d))}catch(y){s({text:`\u2717 ${H(y)}`}),i(!d)}finally{u(!1)}}let f=n.readIsolationSupported===!0;return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSandbox")}),(0,e.jsx)(ot,{checked:l,disabled:m,dataAction:"toggle-sandbox",title:t("botDefaults.sandboxToggle"),help:t("botDefaults.sandboxHelp"),onChange:d=>{b(d)}}),(0,e.jsx)("p",{className:"bd-section-note","data-read-iso-capability":f?"yes":"no",children:f?`\uFF0B ${t("botDefaults.sandboxReadIsoOn")}`:t("botDefaults.sandboxReadIsoOff")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:c,attr:{"data-sandbox-status":""}})})]})}var Xe={readWrite:0,readOnly:1,deny:2};function Ze(a,t,n){let r=b=>b==="~"||b.startsWith("~/")?n.replace(/\/+$/,"")+b.slice(1):b,l=b=>r(b).replace(/\/+$/,"")||"/",i=l(t),c=(b,f)=>{let d=l(b),y=l(f);return d===y||y.startsWith(d==="/"?"/":d+"/")},s=b=>l(b)==="/"?0:l(b).split("/").filter(Boolean).length,m,u=(b,f)=>{if(!c(f,i))return;let d=s(f);(!m||d>m.ruleDepth||d===m.ruleDepth&&Xe[b]>Xe[m.access])&&(m={access:b,ruleDepth:d,rule:f})};for(let b of a.readWrite)u("readWrite",b);for(let b of a.readOnly)u("readOnly",b);for(let b of a.deny)u("deny",b);return m?{access:m.access,rule:m.rule}:{access:"none"}}function sa(){return{readWrite:[],readOnly:[],deny:[]}}function It(a){return a?{readWrite:[...a.readWrite??[]],readOnly:[...a.readOnly??[]],deny:[...a.deny??[]]}:sa()}function sn(a,t){let n=r=>[...r].sort().join(`
3
+ `);return n(a.readWrite)===n(t.readWrite)&&n(a.readOnly)===n(t.readOnly)&&n(a.deny)===n(t.deny)}function oe(a){let t=[];for(let n of a.readWrite)t.push(`rw ${n}`);for(let n of a.readOnly)t.push(`ro ${n}`);for(let n of a.deny)t.push(`deny ${n}`);return t.join(`
4
+ `)}function ln(a){let t=sa();for(let n of a.split(`
5
+ `)){let r=n.trim();if(!r||r.startsWith("#"))continue;let l=/^(\S+)\s+(.+)$/.exec(r);if(!l)continue;let i=l[1].toLowerCase(),c=l[2].trim();i==="rw"||i==="readwrite"||i==="rw:"?t.readWrite.push(c):i==="ro"||i==="readonly"||i==="ro:"?t.readOnly.push(c):(i==="deny"||i==="-"||i==="deny:")&&t.deny.push(c)}return t}function rn(a){let t=J(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(()=>It(n.sandboxPaths)),[c,s]=(0,o.useState)(()=>oe(It(n.sandboxPaths))),[m,u]=(0,o.useState)(!1),[b,f]=(0,o.useState)(null),[d,y]=(0,o.useState)(!1),[T,x]=(0,o.useState)(""),[p,D]=(0,o.useState)({}),[C,v]=(0,o.useState)(new Set),[w,N]=(0,o.useState)([]),[g,q]=(0,o.useState)("~"),P=(0,o.useMemo)(()=>It(n.sandboxPaths),[n.sandboxPaths]);(0,o.useEffect)(()=>{i(It(n.sandboxPaths)),s(oe(It(n.sandboxPaths)))},[n.sandboxPaths]);let R=!sn(l,P),O=(0,o.useCallback)(async L=>{try{let S=L?`?path=${encodeURIComponent(L)}`:"",E=await(await fetch(`/api/fs/list${S}`)).json();if(!E.ok)return;L?D(U=>({...U,[L]:E.entries.map(W=>({name:W.name,path:W.path}))})):(N(E.entries.map(U=>({name:U.name,path:U.path}))),typeof E.home=="string"&&E.home.startsWith("/")&&q(E.home))}catch{}},[]);(0,o.useEffect)(()=>{!m&&w.length===0&&O("")},[m,w.length,O]);let j=(0,o.useCallback)(L=>{let S=L.replace(/\/+$/,"")||"/";if(l.readWrite.some(A=>(A.replace(/\/+$/,"")||"/")===S))return"readWrite";if(l.readOnly.some(A=>(A.replace(/\/+$/,"")||"/")===S))return"readOnly";if(l.deny.some(A=>(A.replace(/\/+$/,"")||"/")===S))return"deny"},[l]),Q=(0,o.useCallback)(L=>{f(null);let S=L.replace(/\/+$/,"")||"/",A=j(L),E=A===void 0?"readWrite":A==="readWrite"?"readOnly":A==="readOnly"?"deny":void 0;i(U=>{let W=nt=>nt.filter(et=>(et.replace(/\/+$/,"")||"/")!==S),Z={readWrite:W(U.readWrite),readOnly:W(U.readOnly),deny:W(U.deny)};return E&&Z[E].push(L),s(oe(Z)),Z})},[j]);function tt(L){s(L),i(ln(L)),f(null)}async function h(){y(!0),f(null);try{let L=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/sandbox-paths`,l);L.ok&&L.body.ok?(f({text:`\u2713 ${t("botDefaults.sbxPathsSaved")}`,ok:!0}),r(n.larkAppId,{sandboxPaths:L.body.sandboxPaths??{readWrite:[],readOnly:[],deny:[]}})):f({text:`\u2717 ${V(L)}`})}catch(L){f({text:`\u2717 ${H(L)}`})}finally{y(!1)}}let $=L=>t(L==="readWrite"?"botDefaults.sbxRw":L==="readOnly"?"botDefaults.sbxRo":L==="deny"?"botDefaults.sbxDeny":"botDefaults.sbxNone");function _(L){let{name:S,path:A,depth:E}=L,U=C.has(A),W=j(A),Z=Ze(l,A,g),nt=p[A];return(0,e.jsxs)("div",{className:"bd-sbx-node",children:[(0,e.jsxs)("div",{className:"bd-sbx-row",style:{paddingLeft:E*16},children:[(0,e.jsx)("span",{className:"bd-sbx-twisty",onClick:()=>{v(et=>{let at=new Set(et);return at.has(A)?at.delete(A):at.add(A),at}),nt||O(A)},children:U?"\u25BE":"\u25B8"}),(0,e.jsx)("span",{className:"bd-sbx-name",title:A,children:S}),(0,e.jsx)("button",{type:"button",className:`bd-sbx-state bd-sbx-state-${W??"inherit"}`,"data-action":"cycle-sandbox-path","data-path":A,title:W?void 0:`${t("botDefaults.sbxInherit")}: ${$(Z.access)}`,onClick:()=>Q(A),children:W?$(W):`\u21B3 ${$(Z.access)}`})]}),U&&(0,e.jsxs)("div",{className:"bd-sbx-kids",children:[nt?.map(et=>(0,e.jsx)(_,{name:et.name,path:et.path,depth:E+1},et.path)),nt&&nt.length===0&&(0,e.jsx)("div",{className:"bd-sbx-empty",style:{paddingLeft:(E+1)*16+20},children:t("botDefaults.sbxNoSubdirs")})]})]})}let B=T.trim()?Ze(l,T.trim(),g):null;return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSandboxPaths")}),(0,e.jsx)("p",{className:"bd-section-note",children:t("botDefaults.sbxPathsHelp")}),(0,e.jsx)("div",{className:"actions",style:{gap:8,flexWrap:"wrap"},children:(0,e.jsx)("button",{type:"button",className:"bd-btn",onClick:()=>u(L=>!L),children:t(m?"botDefaults.sbxPathsTreeMode":"botDefaults.sbxPathsTextMode")})}),m?(0,e.jsx)("textarea",{className:"bd-sbx-text","data-field":"sandbox-paths-text",rows:8,value:c,spellCheck:!1,placeholder:`rw ~/my-data
6
+ ro ~/reference-repos
7
+ deny ~/my-data/secrets`,onChange:L=>tt(L.target.value)}):(0,e.jsx)("div",{className:"bd-sbx-tree","data-field":"sandbox-paths-tree",children:w.map(L=>(0,e.jsx)(_,{name:L.name,path:L.path,depth:0},L.path))}),(0,e.jsxs)("div",{className:"bd-sbx-tester",children:[(0,e.jsx)("input",{className:"bd-sbx-test-input","data-field":"sandbox-path-test",placeholder:t("botDefaults.sbxTestPlaceholder"),value:T,onChange:L=>x(L.target.value)}),B&&(0,e.jsxs)("span",{className:`bd-sbx-test-out bd-sbx-state-${B.access}`,"data-test-access":B.access,children:[$(B.access),B.rule?` \u2190 ${B.rule}`:""]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"bd-btn bd-btn-primary","data-action":"save-sandbox-paths",disabled:d||!R,onClick:()=>{h()},children:t("botDefaults.sbxPathsSave")}),(0,e.jsx)(X,{status:b,attr:{"data-sandbox-paths-status":""}})]})]})}var un=[{value:"",labelKey:"botDefaults.backendAuto"},{value:"tmux",labelKey:"botDefaults.backendTmux"},{value:"herdr",labelKey:"botDefaults.backendHerdr"},{value:"zellij",labelKey:"botDefaults.backendZellij"},{value:"zmx",labelKey:"botDefaults.backendZmx"},{value:"pty",labelKey:"botDefaults.backendPty"}];function dn(a){let t=J(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(typeof n.backendType=="string"?n.backendType:""),[c,s]=(0,o.useState)(null),[m,u]=(0,o.useState)(!1);(0,o.useEffect)(()=>i(typeof n.backendType=="string"?n.backendType:""),[n.backendType]);let b=(0,o.useMemo)(()=>un.map(d=>({value:d.value,label:t(d.labelKey)})),[t]);async function f(d){let y=l;i(d),s(null),u(!0);try{let T=await z("PUT",`/api/bots/${encodeURIComponent(n.larkAppId)}/backend-type`,{backendType:d});T.ok&&T.body.ok?(s({text:`\u2713 ${t("botDefaults.backendSaved")}`,ok:!0}),r(n.larkAppId,{backendType:typeof T.body.backendType=="string"?T.body.backendType:null})):(s({text:`\u2717 ${V(T)}`}),i(y))}catch(T){s({text:`\u2717 ${H(T)}`}),i(y)}finally{u(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionBackend")}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.backendHelp"),children:t("botDefaults.backendLabel")}),(0,e.jsx)(it,{dataInput:"backendType",ariaLabel:t("botDefaults.backendLabel"),value:l,disabled:m,options:b,onChange:d=>{f(d)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:c,attr:{"data-backend-status":""}})})]})]})}function cn(a){let t=J(),{bot:n,patchBot:r}=a,[l,i]=(0,o.useState)(typeof n.teamRole=="string"),[c,s]=(0,o.useState)(typeof n.teamRole=="string"?n.teamRole:""),[m,u]=(0,o.useState)("every"),[b,f]=(0,o.useState)(null),[d,y]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let p=!0,D=`/api/team/local-bots/${encodeURIComponent(n.larkAppId)}/role`;return typeof n.teamRole=="string"?(i(!0),s(n.teamRole),()=>{p=!1}):(f(null),i(!1),s(""),(async()=>{try{let C=await fetch(D),v=await C.json().catch(()=>({}));if(!p)return;if(C.ok&&v.ok){let w=v.role??"";s(w),u(v.injectMode==="once"?"once":"every"),i(!0),r(n.larkAppId,{teamRole:w})}else f({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${v.error??C.status}`})}catch(C){p&&f({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${H(C)}`})}})(),()=>{p=!1})},[n.larkAppId,n.teamRole,r,t]),(0,o.useEffect)(()=>{let p=!0;return typeof n.teamRole!="string"?()=>{p=!1}:((async()=>{try{let D=await fetch(`/api/team/local-bots/${encodeURIComponent(n.larkAppId)}/role`),C=await D.json().catch(()=>({}));p&&D.ok&&C.ok&&u(C.injectMode==="once"?"once":"every")}catch{}})(),()=>{p=!1})},[n.larkAppId]);async function T(p,D,C=m){if(l){f(null),y(!0);try{let v=await z("PUT",`/api/team/local-bots/${encodeURIComponent(n.larkAppId)}/role`,{role:p,injectMode:C});if(v.ok&&v.body.ok){let w=p.trim();s(w),(v.body.injectMode==="once"||v.body.injectMode==="every")&&u(v.body.injectMode),r(n.larkAppId,{teamRole:w}),f({text:`\u2713 ${t(D?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else f({text:`\u2717 ${V(v)}`})}catch(v){f({text:`\u2717 ${H(v)}`})}finally{y(!1)}}}let x=[{value:"every",label:t("roles.injectModeEvery")},{value:"once",label:t("roles.injectModeOnce")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(F,{help:t("botDefaults.roleHelp"),children:t("botDefaults.sectionRole")})}),(0,e.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:t("botDefaults.rolePlaceholder"),disabled:!l||d,value:c,onChange:p=>s(p.currentTarget.value)}),(0,e.jsxs)("div",{className:"bd-role-inject",children:[(0,e.jsx)("span",{className:"bd-subsection-title",children:(0,e.jsx)(F,{help:t("roles.injectModeHint"),children:t("roles.injectModeLabel")})}),(0,e.jsx)(pt,{id:`bd-role-inject-${n.larkAppId}`,className:"bd-role-inject-menu",ariaLabel:t("roles.injectModeLabel"),disabled:!l||d,label:Vt(x,m),value:m,options:x,onChange:p=>{let D=p==="once"?"once":"every";u(D),T(c,c.trim()==="",D)}})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!l||d,onClick:()=>{T(c,c.trim()==="")},children:t("botDefaults.roleSave")}),(0,e.jsx)(X,{status:b,attr:{"data-role-status":""}})]}),(0,e.jsx)(bn,{appId:n.larkAppId})]})}function bn(a){let t=J(),[n,r]=(0,o.useState)({loaded:!1,loading:!0,items:[]});(0,o.useEffect)(()=>{let c=!0;return r({loaded:!1,loading:!0,items:[]}),(async()=>{try{let s=await fetch("/api/role-profiles"),m=await s.json().catch(()=>({}));if(!c)return;if(!s.ok)throw new Error(m?.error??String(s.status));let b=(Array.isArray(m.profiles)?m.profiles:[]).filter(f=>(f.botEntries??[]).some(d=>d?.larkAppId===a.appId&&d?.hasEntry)).map(f=>({profileId:String(f.profileId)}));r({loaded:!0,loading:!1,items:b})}catch(s){c&&r({loaded:!0,loading:!1,error:H(s),items:[]})}})(),()=>{c=!1}},[a.appId]);async function l(c){let s=n.items.find(m=>m.profileId===c);if(!(!s||s.loaded||s.loading)){r(m=>({...m,items:m.items.map(u=>u.profileId===c?{...u,loading:!0}:u)}));try{let m=await fetch(`/api/role-profiles/${encodeURIComponent(c)}/${encodeURIComponent(a.appId)}`),u=await m.json().catch(()=>({}));if(!m.ok)throw new Error(u?.error??String(m.status));r(b=>({...b,items:b.items.map(f=>f.profileId===c?{...f,loading:!1,loaded:!0,content:u?.hasEntry?String(u.content??""):""}:f)}))}catch(m){r(u=>({...u,items:u.items.map(b=>b.profileId===c?{...b,loading:!1,error:H(m)}:b)}))}}}let i;return n.loading?i=(0,e.jsx)(At,{label:t("common.loading"),compact:!0}):n.error?i=(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRolesLoadFailed",{error:n.error})}):n.items.length===0?i=(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRolesEmpty")}):i=n.items.map(c=>(0,e.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":c.profileId,onToggle:s=>{s.currentTarget.open&&l(c.profileId)},children:[(0,e.jsx)("summary",{children:(0,e.jsx)("span",{className:"bd-profile-role-id",children:c.profileId})}),(0,e.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":c.profileId,children:c.loading?(0,e.jsx)(At,{label:t("common.loading"),compact:!0}):c.error?(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRoleDetailLoadFailed",{error:c.error})}):c.loaded?(0,e.jsx)("pre",{children:c.content??""}):(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRoleClickToLoad")})})]},c.profileId)),(0,e.jsxs)("div",{className:"bd-profile-roles","data-profile-roles":!0,children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(F,{help:t("botDefaults.profileRolesHelp"),children:t("botDefaults.profileRoles")})}),(0,e.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:i})]})}function mn(a){let t=J(),{bot:n,putCardPref:r}=a,[l,i]=(0,o.useState)(n.usageDisplay??"streaming"),[c,s]=(0,o.useState)(n.disableStreamingCard===!0),[m,u]=(0,o.useState)(n.silentTurnReactions===!0),[b,f]=(0,o.useState)(n.writableTerminalLinkInCard===!0),[d,y]=(0,o.useState)(n.privateCard===!0),[T,x]=(0,o.useState)(null),[p,D]=(0,o.useState)(null);(0,o.useEffect)(()=>{i(n.usageDisplay??"streaming"),s(n.disableStreamingCard===!0),u(n.silentTurnReactions===!0),f(n.writableTerminalLinkInCard===!0),y(n.privateCard===!0)},[n.disableStreamingCard,n.privateCard,n.usageDisplay,n.silentTurnReactions,n.writableTerminalLinkInCard]);async function C(w,N,g){D(N),x(null);try{let q=await r(w);q.ok?x({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(g?.(),x({text:`\u2717 ${V(q)}`}))}catch(q){g?.(),x({text:`\u2717 ${H(q)}`})}finally{D(null)}}let v=[{value:"streaming",label:t("botDefaults.usageDisplayStreaming")},{value:"footer",label:t("botDefaults.usageDisplayFooter")},{value:"off",label:t("botDefaults.usageDisplayOff")}];return(0,e.jsxs)("section",{className:"bd-section","aria-busy":p!==null,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCard")}),(0,e.jsxs)("div",{className:"bd-card-settings",children:[(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-feedback-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardFeedbackGroup")}),(0,e.jsx)(ot,{className:"bd-card-primary-toggle",checked:!c,disabled:p!==null,dataAction:"toggle-disable-streaming",title:t("botDefaults.autoStreaming"),description:t("botDefaults.autoStreamingDescription"),help:t("botDefaults.autoStreamingHelp"),onChange:w=>{let N=c,g=!w;s(g),C({disableStreamingCard:g},"streaming",()=>s(N))}}),(0,e.jsxs)("div",{className:"bd-card-dependent","data-card-off-options":!0,hidden:!c,children:[(0,e.jsx)(ot,{checked:!m,disabled:p!==null,dataAction:"toggle-silent-reactions",title:t("botDefaults.silentTurnReactions"),description:t("botDefaults.silentTurnReactionsDescription"),help:t("botDefaults.silentTurnReactionsHelp"),onChange:w=>{let N=m,g=!w;u(g),C({silentTurnReactions:g},"silent",()=>u(N))}}),(0,e.jsx)("p",{role:"status","data-card-pref-moot":!0,className:"bd-card-mode-note",children:t("botDefaults.manualCardHint")})]})]}),(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-content-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardContentGroup")}),n.usageSupported===!0&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.usageDisplayHelp"),children:t("botDefaults.usageDisplay")}),(0,e.jsx)(it,{dataInput:"usageDisplay",ariaLabel:t("botDefaults.usageDisplay"),value:l,disabled:p!==null,options:v,onChange:w=>{let N=l;i(w),C({usageDisplay:w},"usage",()=>i(N))}})]})}),(0,e.jsx)("div",{className:"bd-card-control-list",children:(0,e.jsx)(ot,{checked:b,disabled:p!==null,dataAction:"toggle-writable-link",title:t("botDefaults.writableLink"),description:t("botDefaults.writableLinkDescription"),help:t("botDefaults.writableLinkHelp"),onChange:w=>{let N=b;f(w),C({writableTerminalLinkInCard:w},"writable",()=>f(N))}})})]}),(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-manual-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardManualGroup")}),(0,e.jsx)("p",{className:"bd-card-setting-copy",children:t("botDefaults.manualCardIntro")}),(0,e.jsx)("div",{className:"bd-card-control-list",children:(0,e.jsx)(ot,{checked:d,disabled:p!==null,dataAction:"toggle-private-card",title:t("botDefaults.privateCard"),description:t("botDefaults.privateCardDescription"),help:t("botDefaults.privateCardHelp"),onChange:w=>{let N=d;y(w),C({privateCard:w},"private",()=>y(N))}})})]})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:T,attr:{"data-card-pref-status":""}})})]})}function fn(a){let t=J(),[n,r]=(0,o.useState)(a.bot.codexAppCleanInput===!0),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(a.bot.codexAppCleanInput===!0),[a.bot.codexAppCleanInput]);async function m(u){let b=n;r(u),s(!0),i(null);try{let f=await a.putCardPref({codexAppCleanInput:u});f.ok?i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(r(b),i({text:`\u2717 ${V(f)}`}))}catch(f){r(b),i({text:`\u2717 ${H(f)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section","data-codex-app-display":!0,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCodexAppDisplay")}),(0,e.jsx)(ot,{checked:n,disabled:c,dataAction:"toggle-codex-app-clean-input",title:t("botDefaults.codexAppCleanInput"),help:t("botDefaults.codexAppCleanInputHelp"),onChange:u=>{m(u)}}),(0,e.jsx)("small",{className:"bd-section-note",children:t("botDefaults.codexAppCleanInputCompat")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:l,attr:{"data-codex-app-clean-input-status":""}})})]})}function pn(a){let t=J(),[n,r]=(0,o.useState)(a.bot.envelopeInjection==="auto"),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(a.bot.envelopeInjection==="auto"),[a.bot.envelopeInjection]);async function m(u){let b=n;r(u),s(!0),i(null);try{let f=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/envelope-injection`,{envelopeInjection:u?"auto":"off"});if(f.ok&&f.body.ok){let d=f.body.envelopeInjection==="auto";r(d),a.patchBot(a.bot.larkAppId,{envelopeInjection:d?"auto":"off"}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else r(b),i({text:`\u2717 ${V(f)}`})}catch(f){r(b),i({text:`\u2717 ${H(f)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section","data-envelope-injection":!0,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.envelopeInjection")}),(0,e.jsx)(ot,{checked:n,disabled:c,dataAction:"toggle-envelope-injection",title:t("botDefaults.envelopeInjectionAuto"),help:t("botDefaults.envelopeInjectionHelp"),onChange:u=>{m(u)}}),(0,e.jsx)("small",{className:"bd-section-note",children:t("botDefaults.envelopeInjectionNote")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:l,attr:{"data-envelope-injection-status":""}})})]})}function gn(a){let t=J(),[n,r]=(0,o.useState)(a.bot.botToBotSameDir!==!1),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(a.bot.botToBotSameDir!==!1),[a.bot.botToBotSameDir]);async function m(u){r(u),s(!0),i(null);try{let b=await a.putCardPref({botToBotSameDir:u});i(b.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${V(b)}`})}catch(b){i({text:`\u2717 ${H(b)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCrossBot")}),(0,e.jsx)(ot,{checked:n,disabled:c,dataAction:"toggle-cross-bot-samedir",title:t("botDefaults.botToBotSameDir"),help:t("botDefaults.botToBotSameDirHelp"),onChange:u=>{m(u)}}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:l,attr:{"data-crossbot-status":""}})})]})}function hn(a){let t=J(),n=ie(a.bot),[r,l]=(0,o.useState)(String(n.limit)),[i,c]=(0,o.useState)(String(n.sinceHours)),[s,m]=(0,o.useState)(a.bot.summaryMemory===!0),[u,b]=(0,o.useState)(se(a.bot)),[f,d]=(0,o.useState)(null),[y,T]=(0,o.useState)(null),[x,p]=(0,o.useState)(!1),[D,C]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let N=ie(a.bot);l(String(N.limit)),c(String(N.sinceHours)),m(a.bot.summaryMemory===!0),b(se(a.bot))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours,a.bot.summaryMemory,a.bot.summaryMemoryPath]);async function v(){d(null);let N=Je(r,50),g=Je(i,24);if(N==null||g==null){d({text:`\u2717 ${t("botDefaults.summaryNumberInvalid")}`});return}p(!0);try{let q=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:N,sinceHours:g});if(q.ok&&q.body.ok){let P=q.body.summaryRange??{limit:N,sinceHours:g},R=ie({...a.bot,summaryRange:P});l(String(R.limit)),c(String(R.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:P}),d({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else d({text:`\u2717 ${V(q)}`})}catch(q){d({text:`\u2717 ${H(q)}`})}finally{p(!1)}}async function w(N,g=u){let q=s,P=u,R=ia(g);m(N),b(R),T(null),C(!0);try{let O=await a.putCardPref({summaryMemory:N,summaryMemoryPath:R});if(O.ok&&O.body.ok){let j=O.body.summaryMemory===!0,Q=se({...a.bot,summaryMemoryPath:O.body.summaryMemoryPath});m(j),b(Q),a.patchBot(a.bot.larkAppId,{summaryMemory:j,summaryMemoryPath:Q}),T({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else m(q),b(P),T({text:`\u2717 ${V(O)}`})}catch(O){m(q),b(P),T({text:`\u2717 ${H(O)}`})}finally{C(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(F,{help:t("botDefaults.summaryLimitHelp"),children:t("botDefaults.sectionSummaryTrigger")})}),(0,e.jsxs)("div",{className:"bd-row bd-summary-limits",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summaryLimit")}),(0,e.jsx)("input",{type:"number",min:0,step:1,"data-input":"summaryLimit",value:r,disabled:x,onChange:N=>l(N.currentTarget.value)})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summarySinceHours")}),(0,e.jsx)("input",{type:"number",min:0,step:1,"data-input":"summarySinceHours",value:i,disabled:x,onChange:N=>c(N.currentTarget.value)})]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-trigger",disabled:x,onClick:()=>{v()},children:t("botDefaults.summarySave")}),(0,e.jsx)(X,{status:f,attr:{"data-summary-trigger-status":""}})]}),(0,e.jsx)(ot,{checked:s,disabled:D,title:t("botDefaults.summaryMemory"),help:t("botDefaults.summaryMemoryHelp"),onChange:N=>{w(N)}}),(0,e.jsx)("div",{className:"bd-row bd-summary-limits",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summaryMemoryPath")}),(0,e.jsx)("input",{type:"text","data-input":"summaryMemoryPath",value:u,disabled:D,onChange:N=>b(N.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-memory-path",disabled:D,onClick:()=>{w(s,u)},children:t("botDefaults.summaryMemoryPathSave")})}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:y,attr:{"data-summary-memory-status":""}})})]})}function ia(a){return a.trim()||"summary.md"}function se(a){return ia(typeof a.summaryMemoryPath=="string"?a.summaryMemoryPath:"")}function ie(a){let t=a.summaryRange??{limit:50,sinceHours:24};return{limit:Number.isInteger(t.limit)&&Number(t.limit)>=0?Number(t.limit):50,sinceHours:Number.isInteger(t.sinceHours)&&Number(t.sinceHours)>=0?Number(t.sinceHours):24}}function yn(a){let t=J(),[n,r]=(0,o.useState)(Gt(a.bot.p2pMode)),[l,i]=(0,o.useState)(Ye(a.bot)),[c,s]=(0,o.useState)(ta(a.bot)),[m,u]=(0,o.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[b,f]=(0,o.useState)(null),[d,y]=(0,o.useState)(null),[T,x]=(0,o.useState)(null),[p,D]=(0,o.useState)(null),[C,v]=(0,o.useState)(null);(0,o.useEffect)(()=>{r(Gt(a.bot.p2pMode)),i(Ye(a.bot)),s(ta(a.bot)),u(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function w(O){let j=Gt(O);r(j),f("p2p"),y(null);try{let Q=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:j});Q.ok&&Q.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:Gt(Q.body.p2pMode)}),y({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):y({text:`\u2717 ${V(Q)}`})}catch(Q){y({text:`\u2717 ${H(Q)}`})}finally{f(null)}}async function N(O,j,Q){f(O),Q(null);try{let tt=await a.putCardPref(j);Q(tt.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${V(tt)}`})}catch(tt){Q({text:`\u2717 ${H(tt)}`})}finally{f(null)}}let g=[{value:"thread",label:t("botDefaults.p2pThread")},{value:"chat",label:t("botDefaults.p2pChat")},{value:"group",label:t("botDefaults.p2pGroup")}],q=[{value:"chat",label:t("botDefaults.regularGroupModeChat")},{value:"chat-topic",label:t("botDefaults.regularGroupModeChatTopic")},{value:"new-topic",label:t("botDefaults.regularGroupModeNewTopic")},{value:"shared",label:t("botDefaults.regularGroupModeShared")}],P=[{value:"always",label:t("botDefaults.mentionModeAlways")},{value:"topic",label:t("botDefaults.mentionModeTopic")},{value:"never",label:t("botDefaults.mentionModeNever")},{value:"ambient",label:t("botDefaults.mentionModeAmbient")}],R=[{value:"mention-only",label:t("botDefaults.docSubscribeModeMention")},{value:"all",label:t("botDefaults.docSubscribeModeAll")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSessionMode")}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.p2pHelp"),children:t("botDefaults.p2pMode")}),(0,e.jsx)(it,{dataInput:"p2pMode",ariaLabel:t("botDefaults.p2pMode"),value:n,disabled:b==="p2p",options:g,onChange:O=>{w(O)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:d,attr:{"data-p2p-status":""}})})]}),n==="group"&&(0,e.jsx)(Dn,{bot:a.bot}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.regularGroupModeHelp"),children:t("botDefaults.regularGroupMode")}),(0,e.jsx)(it,{dataInput:"regularGroupMode",ariaLabel:t("botDefaults.regularGroupMode"),value:l,disabled:b==="regular",options:q,onChange:O=>{i(O),N("regular",{regularGroupReplyMode:O},x)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:T,attr:{"data-regular-group-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.mentionModeHelp"),children:t("botDefaults.mentionMode")}),(0,e.jsx)(it,{dataInput:"regularGroupMentionMode",ariaLabel:t("botDefaults.mentionMode"),value:c,disabled:b==="mention",options:P,onChange:O=>{s(O),N("mention",{regularGroupMentionMode:O},D)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:p,attr:{"data-mention-mode-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.docSubscribeModeHelp"),children:t("botDefaults.docSubscribeMode")}),(0,e.jsx)(it,{dataInput:"docSubscribeDefaultMode",ariaLabel:t("botDefaults.docSubscribeMode"),value:m,disabled:b==="doc",options:R,onChange:O=>{u(O),N("doc",{docSubscribeDefaultMode:O},v)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:C,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function vn(a){let t=J(),n=a.bot.substituteMode??null,[r,l]=(0,o.useState)(n?.enabled===!0);function i(S){switch(S){case"cross_app_open_id":return t("botDefaults.substituteReasonCrossAppOpenId");case"not_visible":return t("botDefaults.substituteReasonNotVisible");case"resolve_failed":return t("botDefaults.substituteReasonResolveFailed");case"unresolvable":return t("botDefaults.substituteReasonUnresolvable");default:return t("botDefaults.substituteUnresolved")}}let[c,s]=(0,o.useState)(n?.disclosure==="none"?"none":"prefix"),[m,u]=(0,o.useState)(n?.replyMode==="quote"?"quote":"thread"),[b,f]=(0,o.useState)(n?.disableControlCard!==!0),[d,y]=(0,o.useState)(()=>yt(n?.chats)),[T,x]=(0,o.useState)(()=>yt(n?.excludedChats)),[p,D]=(0,o.useState)(n?.topicGroups!==!1),[C,v]=(0,o.useState)(n?.topicActiveSessionTrigger!==!1),[w,N]=(0,o.useState)(null),[g,q]=(0,o.useState)(!1),P=(0,o.useRef)(0),R=(0,o.useRef)(!1);function O(S){let A=Ua(S);return{key:++P.current,idField:A,idValue:S?.[A]??"",name:S?.name??"",persisted:S?{...S}:{},originalIdField:S?A:void 0,resolution:S?.name||S?.avatarUrl?{ok:!0,name:S.name,avatarUrl:S.avatarUrl}:void 0}}let j=(0,o.useRef)(new Map);async function Q(S){let A=(j.current.get(S)??0)+1;j.current.set(S,A);let E=()=>j.current.get(S)===A;h(U=>U.map(W=>W.key===S?{...W,resolving:!0}:W));try{let U=tt.find(et=>et.key===S);if(!U)return;let W=U.idValue.trim();if(!W){h(et=>et.map(at=>at.key===S?{...at,resolving:!1,resolution:void 0}:at));return}let Z={[U.idField]:W};U.name.trim()&&(Z.name=U.name.trim());let nt=await Oe(a.bot.larkAppId,Z);if(!E())return;h(et=>et.map(at=>{if(at.key!==S)return at;if(!nt.ok)return{...at,resolving:!1,resolution:{ok:!1}};let lt=nt.resolution;if(lt?.ok===!0){if(!lt.openId)return{...at,resolving:!1,resolution:void 0};let st={...at.persisted};return st.openId=lt.openId,lt.name&&(st.name=lt.name),lt.avatarUrl&&(st.avatarUrl=lt.avatarUrl),{...at,name:lt.name??at.name,persisted:st,resolving:!1,resolution:{ok:!0,name:lt.name,avatarUrl:lt.avatarUrl}}}return{...at,resolving:!1,resolution:{ok:!1,reason:lt?.reason}}}))}catch{if(!E())return;h(U=>U.map(W=>W.key===S?{...W,resolving:!1,resolution:{ok:!1}}:W))}}let[tt,h]=(0,o.useState)(()=>{let S=n?.targets??[];return S.length?S.map(A=>O(A)):[O()]});(0,o.useEffect)(()=>{if(R.current){R.current=!1;return}let S=a.bot.substituteMode??null;l(S?.enabled===!0),s(S?.disclosure==="none"?"none":"prefix"),u(S?.replyMode==="quote"?"quote":"thread"),f(S?.disableControlCard!==!0),y(yt(S?.chats)),x(yt(S?.excludedChats)),D(S?.topicGroups!==!1),v(S?.topicActiveSessionTrigger!==!1);let A=S?.targets??[];h(A.length?A.map(E=>O(E)):[O()])},[a.bot.larkAppId,a.bot.substituteMode]);async function $(S){q(!0),N(null);try{let A=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/substitute-mode`,S);if(A.ok&&A.body.ok){let E=A.body.substituteMode&&typeof A.body.substituteMode=="object"?A.body.substituteMode:null,U=Array.isArray(A.body?.resolution)?A.body.resolution:[],W=U.filter(Z=>Z?.ok===!1).map(Z=>String(Z.input??"").trim()).filter(Boolean);if(l(E?.enabled===!0),s(E?.disclosure==="none"?"none":"prefix"),u(E?.replyMode==="quote"?"quote":"thread"),f(E?.disableControlCard!==!0),y(yt(E?.chats)),x(yt(E?.excludedChats)),D(E?.topicGroups!==!1),v(E?.topicActiveSessionTrigger!==!1),U.length)R.current=!0,h(Z=>{let nt=[...U];return Z.map(et=>{let at=et.idValue.trim(),lt=nt.findIndex(ct=>String(ct.input??"").trim()===at);if(lt<0)return et;let st=nt.splice(lt,1)[0];if(st?.ok===!0){let ct={...et.persisted};return st.openId&&(ct.openId=st.openId),et.idField==="email"&&(ct.email=at),st.name&&(ct.name=st.name),st.avatarUrl&&(ct.avatarUrl=st.avatarUrl),{...et,name:st.name??et.name,persisted:ct,resolution:{ok:!0,name:st.name,avatarUrl:st.avatarUrl}}}return{...et,resolution:{ok:!1,reason:st?.reason}}})});else{let Z=E?.targets??[];h(Z.length?Z.map(nt=>O(nt)):[O()])}a.patchBot(a.bot.larkAppId,{substituteMode:E}),N(W.length?{text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${W.join(", ")}`}:{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else{let E=Array.isArray(A.body?.resolution)?A.body.resolution.filter(U=>U?.ok===!1).map(U=>String(U.input??"").trim()).filter(Boolean):[];N({text:E.length?`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${E.join(", ")}`:`\u2717 ${V(A)}`})}}catch(A){N({text:`\u2717 ${H(A)}`})}finally{q(!1)}}function _(){let S=[],A=!1;for(let E of tt){let U=_a(E);if(!U){A||=!!E.name.trim();continue}S.push(U)}if(A||r&&S.length===0){N({text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}`});return}$({enabled:r,targets:S,disclosure:c,chats:Ve(d),excludedChats:Ve(T),replyMode:m,disableControlCard:!b,topicGroups:p,topicActiveSessionTrigger:C})}let B=[{value:"prefix",label:t("botDefaults.substituteDisclosurePrefix")},{value:"none",label:t("botDefaults.substituteDisclosureNone")}],L=[{value:"thread",label:t("botDefaults.substituteReplyModeThread")},{value:"quote",label:t("botDefaults.substituteReplyModeQuote")}];return(0,e.jsxs)("section",{className:"bd-section bd-substitute-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSubstitute")}),(0,e.jsx)(ot,{checked:r,disabled:g,dataAction:"toggle-substitute-mode",title:t("botDefaults.substituteEnabled"),help:t("botDefaults.substituteHelp"),onChange:l}),(0,e.jsx)(ot,{checked:p,disabled:g,dataAction:"toggle-substitute-topic-groups",title:t("botDefaults.substituteTopicGroups"),help:t("botDefaults.substituteTopicGroupsHelp"),onChange:D}),(0,e.jsx)(ot,{checked:C,disabled:g||!p,dataAction:"toggle-substitute-topic-active",title:t("botDefaults.substituteTopicActive"),help:t("botDefaults.substituteTopicActiveHelp"),onChange:v}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{children:t("botDefaults.substituteDisclosure")}),(0,e.jsx)(it,{dataInput:"substituteDisclosure",ariaLabel:t("botDefaults.substituteDisclosure"),value:c,disabled:g,options:B,onChange:S=>s(S)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.substituteReplyModeHelp"),children:t("botDefaults.substituteReplyMode")}),(0,e.jsx)(it,{dataInput:"substituteReplyMode",ariaLabel:t("botDefaults.substituteReplyMode"),value:m,disabled:g,options:L,onChange:S=>u(S)})]})}),(0,e.jsx)(ot,{checked:b,disabled:g,dataAction:"toggle-substitute-control-card",title:t("botDefaults.substituteControlCard"),help:t("botDefaults.substituteControlCardHelp"),onChange:f}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:t("botDefaults.substituteChatsHelp"),children:t("botDefaults.substituteChats")}),(0,e.jsx)("textarea",{"data-input":"substituteChats",rows:3,placeholder:t("botDefaults.substituteChatsPlaceholder"),value:d,disabled:g,onChange:S=>y(S.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:t("botDefaults.substituteExcludedChatsHelp"),children:t("botDefaults.substituteExcludedChats")}),(0,e.jsx)("textarea",{"data-input":"substituteExcludedChats",rows:3,placeholder:t("botDefaults.substituteExcludedChatsPlaceholder"),value:T,disabled:g,onChange:S=>x(S.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,e.jsx)(F,{help:t("botDefaults.substituteTargetsHelp"),children:t("botDefaults.substituteTargets")}),(0,e.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[tt.map((S,A)=>(0,e.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,e.jsx)(it,{dataInput:`substituteTargetType-${S.key}`,className:"bd-substitute-target-type",ariaLabel:`${t("botDefaults.substituteTargetType")} ${A+1}`,value:S.idField,disabled:g,options:ue.map(E=>({value:E,label:t(`botDefaults.substituteTarget${E[0].toUpperCase()}${E.slice(1)}`)})),onChange:E=>{h(U=>U.map(W=>W.key===S.key?{...W,idField:E,idValue:W.persisted[E]??"",resolution:void 0}:W))}}),(0,e.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${S.key}`,"aria-label":`${t("botDefaults.substituteTargetType")} ${A+1}`,placeholder:t("botDefaults.substituteTargetIdPlaceholder"),value:S.idValue,disabled:g,onChange:E=>{let U=E.currentTarget.value;h(W=>W.map(Z=>Z.key===S.key?{...Z,idValue:U,resolution:void 0}:Z))},onBlur:()=>{S.idValue.trim()&&Q(S.key)}}),(0,e.jsx)("div",{className:"bd-substitute-target-name",children:S.resolving?(0,e.jsx)("span",{className:"bd-substitute-target-resolving",children:t("botDefaults.substituteResolving")}):S.resolution?.ok===!0&&(S.name||S.resolution.avatarUrl)?(0,e.jsxs)(e.Fragment,{children:[S.resolution.avatarUrl?(0,e.jsx)(St,{html:Ct({name:S.resolution.name,avatarUrl:S.resolution.avatarUrl,size:"sm"})}):null,(0,e.jsx)("span",{className:"bd-substitute-target-name-chip","data-chip":`substituteTargetName-${S.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${A+1}`,children:S.name})]}):S.resolution?.ok===!1?(0,e.jsx)("span",{className:"bd-substitute-target-resolution-badge",children:i(S.resolution.reason)}):(0,e.jsx)("input",{type:"text","data-input":`substituteTargetName-${S.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${A+1}`,placeholder:t("botDefaults.substituteTargetNamePlaceholder"),value:S.name,disabled:g,onChange:E=>{let U=E.currentTarget.value;h(W=>W.map(Z=>Z.key===S.key?{...Z,name:U}:Z))}})}),(0,e.jsx)("button",{type:"button",className:"bd-substitute-target-remove","data-action":"remove-substitute-target",title:t("botDefaults.substituteTargetRemove"),"aria-label":t("botDefaults.substituteTargetRemove"),disabled:g,onClick:()=>{h(E=>{let U=E.filter(W=>W.key!==S.key);return U.length?U:[O()]})},children:(0,e.jsx)("span",{"aria-hidden":"true",children:"\xD7"})})]},S.key)),(0,e.jsx)("button",{type:"button",className:"bd-substitute-target-add","data-action":"add-substitute-target",title:t("botDefaults.substituteTargetAdd"),"aria-label":t("botDefaults.substituteTargetAdd"),disabled:g,onClick:()=>h(S=>[...S,O()]),children:(0,e.jsx)("span",{"aria-hidden":"true",children:"+"})})]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-substitute-mode",disabled:g,onClick:_,children:t("botDefaults.substituteSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:g,onClick:()=>{$({enabled:!1,targets:[]})},children:t("botDefaults.substituteOff")}),(0,e.jsx)(X,{status:w,attr:{"data-substitute-status":""}})]})]})}function Gt(a){return a==="thread"?"thread":a==="group"?"group":"chat"}function Dn(a){let t=J(),[n,r]=(0,o.useState)(null),[l,i]=(0,o.useState)(!1),[c,s]=(0,o.useState)(!1),[m,u]=(0,o.useState)(null),[b,f]=(0,o.useState)(""),[d,y]=(0,o.useState)(""),[T,x]=(0,o.useState)(!1),p=(0,o.useRef)({generation:0,mounted:!0}),D=async(P=p.current.generation)=>{try{let R=await z("GET",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-status`);if(p.current.mounted&&P===p.current.generation&&R.ok&&R.body.ok)return r({authorized:!!R.body.authorized,tagMode:String(R.body.tagMode??"feed-group")}),!!R.body.authorized}catch{}return!1};(0,o.useEffect)(()=>{p.current.mounted=!0;let P=++p.current.generation;return r(null),i(!1),s(!1),u(null),f(""),y(""),x(!1),D(P),()=>{p.current.mounted=!1,p.current.generation+=1}},[a.bot.larkAppId]);async function C(P){let R=p.current.generation;s(!0),u(null);try{let O=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-config`,{mode:P});if(!p.current.mounted||R!==p.current.generation)return;O.ok&&O.body.ok?r(j=>({authorized:j?.authorized??!1,tagMode:String(O.body.tagMode)})):u(V(O))}catch(O){p.current.mounted&&R===p.current.generation&&u(H(O))}finally{p.current.mounted&&R===p.current.generation&&s(!1)}}async function v(){let P=++p.current.generation;i(!0),u(null),y("");try{let R=await z("POST",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-auth`,{});if(!p.current.mounted||P!==p.current.generation)return;if(!R.ok||!R.body.ok||!R.body.authUrl){u(V(R));return}let O=String(R.body.authUrl);f(O),window.open(O,"_blank","noopener");for(let j=0;j<60;j++){if(await new Promise(Q=>setTimeout(Q,3e3)),!p.current.mounted||P!==p.current.generation)return;if(await D(P)){p.current.mounted&&P===p.current.generation&&(p.current.generation+=1,f(""),y(""),x(!1),i(!1),u(null));return}}}catch(R){p.current.mounted&&P===p.current.generation&&u(H(R))}finally{p.current.mounted&&P===p.current.generation&&i(!1)}}async function w(){let P=p.current.generation,R=d.trim();if(!R)return;x(!0),u(null);let O=()=>{!p.current.mounted||P!==p.current.generation||(p.current.generation+=1,f(""),y(""),x(!1),i(!1))};try{let j=await z("POST","/api/feed-groups/oauth-callback",{callbackUrl:R});if(!p.current.mounted||P!==p.current.generation)return;if(!j.ok||!j.body.ok){if(await D(P))return void O();if(p.current.mounted&&P===p.current.generation){let Q=String(j.body?.message||V(j));u(Q.replace(/^[❌✅]\s*/u,""))}return}if(await D(P))return void O();p.current.mounted&&P===p.current.generation&&u(t("botDefaults.sgTagAuthNotConfirmed"))}catch(j){p.current.mounted&&P===p.current.generation&&u(H(j))}finally{p.current.mounted&&P===p.current.generation&&x(!1)}}let N=n?.tagMode??"feed-group",g=n?.authorized===!0,q=[{value:"feed-group",label:t("botDefaults.sgTagModeFeedGroup")},{value:"chat-tag",label:t("botDefaults.sgTagModeChatTag")},{value:"off",label:t("botDefaults.sgTagModeOff")}];return(0,e.jsxs)("div",{className:"bd-row","data-session-group-tag-row":!0,children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.sgTagHelp"),children:t("botDefaults.sgTag")}),(0,e.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,e.jsx)(it,{dataInput:"sessionGroupTagMode",ariaLabel:t("botDefaults.sgTag"),value:N,disabled:c||!n,options:q,onChange:P=>{C(P)}}),N==="chat-tag"&&(0,e.jsx)("span",{"data-sg-tag-state":"tenant",children:t("botDefaults.sgTagChatTagNote")}),N==="feed-group"&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{"data-sg-tag-state":g?"authorized":"unauthorized",children:g?`\u{1F7E2} ${t("botDefaults.sgTagAuthorized")}`:`\u26AA ${t("botDefaults.sgTagUnauthorized")}`}),!g&&(0,e.jsx)("button",{type:"button",className:"primary","data-action":"session-group-tag-auth",disabled:l,onClick:()=>{v()},children:t(l?"botDefaults.sgTagAuthWaiting":"botDefaults.sgTagAuthStart")})]}),m&&(0,e.jsxs)("span",{className:"status-error",children:["\u2717 ",m]})]})]}),b&&typeof document<"u"?(0,le.createPortal)((0,e.jsx)("div",{className:"feed-group-auth-overlay",children:(0,e.jsxs)("section",{className:"feed-group-auth-card",role:"dialog","aria-modal":"true","aria-labelledby":"sg-tag-auth-title",children:[(0,e.jsx)("h3",{id:"sg-tag-auth-title",children:t("botDefaults.sgTagAuthTitle")}),(0,e.jsx)("p",{children:t("botDefaults.sgTagAuthHint")}),(0,e.jsx)("button",{type:"button",className:"primary feed-group-auth-open",onClick:()=>window.open(b,"_blank","noopener"),children:t("botDefaults.sgTagAuthOpen")}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.sgTagAuthPasteLabel")}),(0,e.jsx)("input",{type:"url","data-input":"sessionGroupTagCallbackUrl",value:d,placeholder:"http://127.0.0.1:9768/callback?code=\u2026&state=\u2026",onChange:P=>y(P.currentTarget.value)})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button","data-action":"session-group-tag-cancel",onClick:()=>{p.current.generation+=1,f(""),y(""),x(!1),i(!1)},children:t("botDefaults.sgTagAuthCancel")}),(0,e.jsx)("button",{type:"button",className:"primary","data-action":"session-group-tag-complete",disabled:!d.trim()||T,onClick:()=>{w()},children:t(T?"botDefaults.sgTagAuthSubmitting":"botDefaults.sgTagAuthComplete")})]})]})}),document.body):null]})}function Ye(a){return a.regularGroupReplyMode==="chat"||a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"?a.regularGroupReplyMode:"chat-topic"}function ta(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function kn(a){let t=J(),n=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null,r=Number.isFinite(a.bot.logicalSessionCount)?Number(a.bot.logicalSessionCount):0,l=Number.isFinite(a.bot.residentSessionCount)?Number(a.bot.residentSessionCount):0,i=Number.isFinite(a.bot.dormantSessionCount)?Number(a.bot.dormantSessionCount):0,[c,s]=(0,o.useState)(n),m=c??30,[u,b]=(0,o.useState)(n==null?"":String(n)),[f,d]=(0,o.useState)(null),[y,T]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let D=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;s(D),b(D==null?"":String(D))},[a.bot.maxLiveWorkers]);async function x(D){d(null),T(!0);try{let C=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:D});if(C.ok&&C.body.ok){let v=typeof C.body.maxLiveWorkers=="number"?C.body.maxLiveWorkers:null;s(v),b(v==null?"":String(v)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:v}),d({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else d({text:`\u2717 ${V(C)}`})}catch(C){d({text:`\u2717 ${H(C)}`})}finally{T(!1)}}function p(){let D=ea(u);if(D==="invalid"){d({text:`\u2717 ${t("botDefaults.maxLiveWorkersInvalid")}`});return}x(D)}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSessionCap")}),(0,e.jsxs)("div",{className:"bd-row bd-quota",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:t("botDefaults.maxLiveWorkersHelp"),children:t("botDefaults.maxLiveWorkers")}),(0,e.jsx)("input",{type:"number",min:1,step:1,"data-input":"maxLiveWorkers",placeholder:t("botDefaults.maxLiveWorkersPlaceholder"),value:u,disabled:y,onChange:D=>b(D.currentTarget.value)})]}),(0,e.jsx)("small",{"data-session-cap-state":!0,children:Ha(c,t)}),(0,e.jsx)("small",{className:"bd-help bd-session-residency",children:t("botDefaults.maxLiveWorkersUsage",{resident:l,cap:m,dormant:i,logical:r})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:y,onClick:p,children:t("botDefaults.maxLiveWorkersSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:y,onClick:()=>{b(""),x(null)},children:t("botDefaults.maxLiveWorkersOff")}),(0,e.jsx)(X,{status:f,attr:{"data-session-cap-status":""}})]})]})}function Cn(a){let t=J(),[n,r]=(0,o.useState)(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[a.bot.startupCommands]);async function m(){i(null),s(!0);try{let u=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:n});if(u.ok&&u.body.ok){let b=typeof u.body.startupCommands=="string"?u.body.startupCommands:"";r(b),a.patchBot(a.bot.larkAppId,{startupCommands:b}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${V(u)}`})}catch(u){i({text:`\u2717 ${H(u)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(F,{help:t("botDefaults.startupCommandsHelp"),children:t("botDefaults.sectionStartupCommands")})}),(0,e.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:t("botDefaults.startupCommandsPlaceholder"),value:n,disabled:c,onChange:u=>r(u.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:c,onClick:()=>{m()},children:t("botDefaults.startupCommandsSave")}),(0,e.jsx)(X,{status:l,attr:{"data-startup-commands-status":""}})]})]})}function Sn(a){let t=J(),[n,r]=(0,o.useState)(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:""),[l,i]=(0,o.useState)(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:""),[c,s]=(0,o.useState)(null),[m,u]=(0,o.useState)(null);(0,o.useEffect)(()=>{r(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:"")},[a.bot.customPassthroughCommands]),(0,o.useEffect)(()=>{i(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:"")},[a.bot.canTalkDaemonCommands]);async function b(){s(null),u("passthrough");try{let d=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/custom-passthrough`,{customPassthroughCommands:n});if(d.ok&&d.body.ok){let y=typeof d.body.customPassthroughCommands=="string"?d.body.customPassthroughCommands:"";r(y),a.patchBot(a.bot.larkAppId,{customPassthroughCommands:y}),s({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else s({text:`\u2717 ${V(d)}`})}catch(d){s({text:`\u2717 ${H(d)}`})}finally{u(null)}}async function f(){s(null),u("cantalk");try{let d=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/cantalk-daemon-commands`,{canTalkDaemonCommands:l});if(d.ok&&d.body.ok){let y=typeof d.body.canTalkDaemonCommands=="string"?d.body.canTalkDaemonCommands:"";i(y),a.patchBot(a.bot.larkAppId,{canTalkDaemonCommands:y}),s({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else s({text:`\u2717 ${V(d)}`})}catch(d){s({text:`\u2717 ${H(d)}`})}finally{u(null)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(F,{help:t("botDefaults.sectionSlashCommandsHelp"),children:t("botDefaults.sectionSlashCommands")})}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(F,{help:t("botDefaults.customPassthroughHelp"),children:t("botDefaults.customPassthrough")})}),(0,e.jsx)("textarea",{"data-input":"customPassthroughCommands",rows:2,placeholder:t("botDefaults.customPassthroughPlaceholder"),value:n,disabled:m==="passthrough",onChange:d=>r(d.currentTarget.value)}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-custom-passthrough",disabled:m==="passthrough",onClick:()=>{b()},children:t("botDefaults.customPassthroughSave")})})]}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(F,{help:t("botDefaults.canTalkDaemonHelp"),children:t("botDefaults.canTalkDaemon")})}),(0,e.jsx)("textarea",{"data-input":"canTalkDaemonCommands",rows:2,placeholder:t("botDefaults.canTalkDaemonPlaceholder"),value:l,disabled:m==="cantalk",onChange:d=>i(d.currentTarget.value)}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-cantalk-daemon",disabled:m==="cantalk",onClick:()=>{f()},children:t("botDefaults.canTalkDaemonSave")})})]}),(0,e.jsx)(X,{status:c,attr:{"data-slash-commands-status":""}})]})}function Nn(a){let t=J(),[n,r]=(0,o.useState)(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[a.bot.launchShell]);async function m(){i(null),s(!0);try{let u=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:n});if(u.ok&&u.body.ok){let b=typeof u.body.launchShell=="string"?u.body.launchShell:"";r(b),a.patchBot(a.bot.larkAppId,{launchShell:b}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${V(u)}`})}catch(u){i({text:`\u2717 ${H(u)}`})}finally{s(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(F,{help:t("botDefaults.launchShellHelp"),children:t("botDefaults.sectionLaunchShell")})}),(0,e.jsx)("input",{type:"text","data-input":"launchShell",placeholder:t("botDefaults.launchShellPlaceholder"),value:n,disabled:c,onChange:u=>r(u.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:c,onClick:()=>{m()},children:t("botDefaults.launchShellSave")}),(0,e.jsx)(X,{status:l,attr:{"data-launch-shell-status":""}})]})]})}function wn(a){let t=J(),[n,r]=(0,o.useState)(typeof a.bot.env=="string"?a.bot.env:""),[l,i]=(0,o.useState)(null),[c,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>r(typeof a.bot.env=="string"?a.bot.env:""),[a.bot.env]);async function m(){i(null),s(!0);try{let u=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:n});if(u.ok&&u.body.ok){let b=typeof u.body.env=="string"?u.body.env:"";r(b),a.patchBot(a.bot.larkAppId,{env:b}),i({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else i({text:`\u2717 ${V(u)}`})}catch(u){i({text:`\u2717 ${H(u)}`})}finally{s(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(F,{help:t("botDefaults.envHelp"),children:t("botDefaults.sectionEnv")})}),(0,e.jsx)("textarea",{"data-input":"env",rows:5,placeholder:t("botDefaults.envPlaceholder"),value:n,disabled:c,onChange:u=>r(u.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:c,onClick:()=>{m()},children:t("botDefaults.envSave")}),(0,e.jsx)(X,{status:l,attr:{"data-env-status":""}})]})]})}var Tn=["gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.4","gpt-5.4-pro"],xn=["","low","medium","high","xhigh"],In=["boe","cn"];function Rn(a){let t=J(),n=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{},[r,l]=(0,o.useState)(typeof n.baseUrl=="string"?n.baseUrl:""),[i,c]=(0,o.useState)(n.sandboxCluster==="cn"?"cn":"boe"),[s,m]=(0,o.useState)(typeof n.model=="string"?n.model:""),[u,b]=(0,o.useState)(typeof n.reasoningEffort=="string"?n.reasoningEffort:""),[f,d]=(0,o.useState)(typeof n.jwtEnv=="string"?n.jwtEnv:""),[y,T]=(0,o.useState)(typeof n.systemPrompt=="string"?n.systemPrompt:""),[x,p]=(0,o.useState)(Array.isArray(n.setupCommands)?n.setupCommands.join(`
8
+ `):""),[D,C]=(0,o.useState)(null),[v,w]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let g=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{};l(typeof g.baseUrl=="string"?g.baseUrl:""),c(g.sandboxCluster==="cn"?"cn":"boe"),m(typeof g.model=="string"?g.model:""),b(typeof g.reasoningEffort=="string"?g.reasoningEffort:""),d(typeof g.jwtEnv=="string"?g.jwtEnv:""),T(typeof g.systemPrompt=="string"?g.systemPrompt:""),p(Array.isArray(g.setupCommands)?g.setupCommands.join(`
9
+ `):"")},[a.bot.riff]);async function N(){C(null),w(!0);try{let g={};r.trim()&&(g.baseUrl=r.trim()),g.sandboxCluster=i,s.trim()&&(g.model=s.trim()),u&&(g.reasoningEffort=u),f.trim()&&(g.jwtEnv=f.trim()),y.trim()&&(g.systemPrompt=y.trim()),x.trim()&&(g.setupCommands=x.split(`
10
+ `).map(R=>R.trim()).filter(Boolean));let q=Object.keys(g).length?JSON.stringify(g):"",P=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/riff`,{riff:q});if(P.ok&&P.body.ok){let R=typeof P.body.riff=="string"&&P.body.riff?JSON.parse(P.body.riff):null;a.patchBot(a.bot.larkAppId,{riff:R});let O=await a.persistCliSelection?.();if(O&&!O.ok){C({text:`\u2717 ${O.note||t("botDefaults.riffCliPersistFailed")}`});return}if(O?.hadProblem){C({text:`\u26A0\uFE0F ${O.note}`});return}C({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else C({text:`\u2717 ${V(P)}`})}catch(g){C({text:`\u2717 ${H(g)}`})}finally{w(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(F,{help:t("botDefaults.riffHelp"),children:t("botDefaults.sectionRiff")})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffBaseUrl")}),(0,e.jsx)("input",{type:"text","data-input":"riff-base-url",placeholder:t("botDefaults.riffBaseUrlPlaceholder"),value:r,disabled:v,onChange:g=>l(g.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:(0,e.jsx)(F,{help:t("botDefaults.riffSandboxClusterHelp"),children:t("botDefaults.riffSandboxCluster")})}),(0,e.jsx)(it,{dataInput:"riff-sandbox-cluster",ariaLabel:t("botDefaults.riffSandboxCluster"),value:i,disabled:v,options:In.map(g=>({value:g,label:g.toUpperCase()})),onChange:g=>c(g)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)(F,{help:t("botDefaults.riffModelHelp"),children:t("botDefaults.riffModel")})}),(0,e.jsx)("input",{type:"text","data-input":"riff-model",list:`riff-model-suggestions-${a.bot.larkAppId}`,placeholder:t("botDefaults.riffModelPlaceholder"),value:s,disabled:v,onChange:g=>m(g.currentTarget.value)}),(0,e.jsx)("datalist",{id:`riff-model-suggestions-${a.bot.larkAppId}`,children:Tn.map(g=>(0,e.jsx)("option",{value:g},g))})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:(0,e.jsx)(F,{help:t("botDefaults.riffReasoningEffortHelp"),children:t("botDefaults.riffReasoningEffort")})}),(0,e.jsx)(it,{dataInput:"riff-reasoning-effort",ariaLabel:t("botDefaults.riffReasoningEffort"),value:u,disabled:v,options:xn.map(g=>({value:g,label:g===""?t("botDefaults.riffReasoningEffortDefault"):g})),onChange:g=>b(g)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)(F,{help:t("botDefaults.riffJwtEnvHelp"),children:t("botDefaults.riffJwtEnv")})}),(0,e.jsx)("input",{type:"text","data-input":"riff-jwt-env",placeholder:t("botDefaults.riffJwtEnvPlaceholder"),value:f,disabled:v,onChange:g=>d(g.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffSystemPrompt")}),(0,e.jsx)("textarea",{"data-input":"riff-system-prompt",placeholder:t("botDefaults.riffSystemPromptPlaceholder"),value:y,disabled:v,onChange:g=>T(g.currentTarget.value),rows:4})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffSetupCommands")}),(0,e.jsx)("textarea",{"data-input":"riff-setup-commands",placeholder:t("botDefaults.riffSetupCommandsPlaceholder"),value:x,disabled:v,onChange:g=>p(g.currentTarget.value),rows:3})]})}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-riff",disabled:v,onClick:()=>{N()},children:t("botDefaults.riffSave")}),(0,e.jsx)(X,{status:D,attr:{"data-riff-status":""}})]})]})}function On(a){let t=J(),n=a.bot.brandLabel??null,[r,l]=(0,o.useState)(n),[i,c]=(0,o.useState)(n??""),[s,m]=(0,o.useState)(null),[u,b]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let d=a.bot.brandLabel??null;l(d),c(d??"")},[a.bot.brandLabel]);async function f(d){m(null),b(!0);try{let y=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/brand-label`,{brandLabel:d});if(y.ok&&y.body.ok){let T=y.body.brandLabel??null;l(T),c(T??""),a.patchBot(a.bot.larkAppId,{brandLabel:T}),m({text:"\u2713",ok:!0})}else m({text:`\u2717 ${V(y)}`})}catch(y){m({text:`\u2717 ${H(y)}`})}finally{b(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionBrand")}),(0,e.jsxs)("div",{className:"bd-row bd-brand",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:t("botDefaults.brandLabelHelp"),children:t("botDefaults.brandLabel")}),(0,e.jsx)("input",{type:"text","data-input":"brandLabel",placeholder:t("botDefaults.brandLabelPlaceholder"),value:i,disabled:u,onChange:d=>c(d.currentTarget.value)})]}),(0,e.jsx)("small",{"data-brand-state":!0,children:ja(r,t)})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-brand",disabled:u,onClick:()=>{f(i)},children:t("botDefaults.brandSave")}),(0,e.jsx)("button",{type:"button","data-action":"reset-brand",disabled:u,onClick:()=>{f(null)},children:t("botDefaults.brandReset")}),(0,e.jsx)(X,{status:s,attr:{"data-brand-status":""}})]})]})}function Pn(a){let t=J(),[n,r]=(0,o.useState)(a.bot.autoGrantRequestCards!==!1),[l,i]=(0,o.useState)(a.bot.restrictGrantCommands===!0),[c,s]=(0,o.useState)(a.bot.p2pOpen===!0),[m,u]=(0,o.useState)(typeof a.bot.grantDefaultDurationMs=="number"?a.bot.grantDefaultDurationMs:null),[b,f]=(0,o.useState)(String(a.bot.grantDefaultDurationMs??36e5)),[d,y]=(0,o.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null),[T,x]=(0,o.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?String(a.bot.messageQuotaDefaultLimit):""),[p,D]=(0,o.useState)(null),[C,v]=(0,o.useState)(null),[w,N]=(0,o.useState)(null);(0,o.useEffect)(()=>{r(a.bot.autoGrantRequestCards!==!1)},[a.bot.autoGrantRequestCards]),(0,o.useEffect)(()=>{i(a.bot.restrictGrantCommands===!0)},[a.bot.restrictGrantCommands]),(0,o.useEffect)(()=>{s(a.bot.p2pOpen===!0)},[a.bot.p2pOpen]),(0,o.useEffect)(()=>{let h=typeof a.bot.grantDefaultDurationMs=="number"?a.bot.grantDefaultDurationMs:null;u(h),f(String(h??36e5))},[a.bot.grantDefaultDurationMs]),(0,o.useEffect)(()=>{let h=typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null;y(h),x(h===null?"":String(h))},[a.bot.messageQuotaDefaultLimit]);async function g(h,$,_){N($),D($==="duration"||$==="quota"?{text:t("botDefaults.grantDefaultsSaving")}:null);try{let B=await z("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/grant-prefs`,h);if(B.ok&&B.body.ok){let L=typeof B.body.grantDefaultDurationMs=="number"?B.body.grantDefaultDurationMs:null,S=typeof B.body.messageQuotaDefaultLimit=="number"?B.body.messageQuotaDefaultLimit:null;r(B.body.autoGrantRequestCards!==!1),i(B.body.restrictGrantCommands===!0),s(B.body.p2pOpen===!0),u(L),y(S),"grantDefaultDurationMs"in h&&f(String(L??36e5)),"messageQuotaDefaultLimit"in h&&x(S===null?"":String(S)),a.patchBot(a.bot.larkAppId,{autoGrantRequestCards:B.body.autoGrantRequestCards!==!1,restrictGrantCommands:B.body.restrictGrantCommands===!0,p2pOpen:B.body.p2pOpen===!0,grantDefaultDurationMs:L,messageQuotaDefaultLimit:S}),"messageQuotaDefaultLimit"in h&&v(null),D({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else _?.(),D({text:`\u2717 ${V(B)}`})}catch(B){_?.(),D({text:`\u2717 ${H(B)}`})}finally{N(null)}}function q(h){f(h),D(null);let $=Number(h);if(!Ga.includes($)){D({text:`\u2717 ${t("botDefaults.grantDurationInvalid")}`});return}let _=$===36e5?null:$;if(_===m)return;let B=String(m??36e5);g({grantDefaultDurationMs:_},"duration",()=>f(B))}function P(){let h=ea(T),$=h!==d;if(D(null),!$){v(null);return}if(h==="invalid"||typeof h=="number"&&h>1e3){v(t("botDefaults.quotaInvalid"));return}v(null),g({messageQuotaDefaultLimit:h},"quota")}let R=[{value:String(36e5),label:t("botDefaults.grantDuration1Hour")},{value:String(480*60*1e3),label:t("botDefaults.grantDuration8Hours")},{value:String(1440*60*1e3),label:t("botDefaults.grantDuration1Day")},{value:String(10080*60*1e3),label:t("botDefaults.grantDuration7Days")}],O=m??36e5,j=O===36e5?t("botDefaults.grantDuration1HourValue"):String(R.find(h=>h.value===String(O))?.label??""),Q=d===null?t("botDefaults.quotaHelpBuiltIn",{count:3}):d>1e3?t("botDefaults.quotaHelpLegacy",{cardCount:1e3,oncallCount:d,defaultCount:3}):t("botDefaults.quotaHelpCustom",{count:d,defaultCount:3}),tt=d===null?t(m===null?"botDefaults.grantDefaultsCurrentBuiltIn":"botDefaults.grantDefaultsCurrentCustomBuiltInQuota",{duration:j,count:3}):d>1e3?t("botDefaults.grantDefaultsCurrentLegacy",{duration:j,cardCount:1e3,oncallCount:d}):t("botDefaults.grantDefaultsCurrentCustom",{duration:j,count:d});return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionGrant")}),(0,e.jsxs)("div",{className:"bd-toggle-grid bd-grant-toggle-grid",children:[(0,e.jsx)(ot,{checked:n,disabled:w!==null,dataAction:"toggle-auto-grant-card",title:t("botDefaults.autoGrantCard"),help:t("botDefaults.autoGrantCardHelp"),onChange:h=>{let $=n;r(h),g({autoGrantRequestCards:h},"autoGrant",()=>r($))}}),(0,e.jsx)(ot,{checked:l,disabled:w!==null,dataAction:"toggle-restrict-grant",title:t("botDefaults.restrictGrant"),help:t("botDefaults.restrictGrantHelp"),onChange:h=>{let $=l;i(h),g({restrictGrantCommands:h},"restrict",()=>i($))}}),(0,e.jsx)(ot,{checked:c,disabled:w!==null,dataAction:"toggle-p2p-open",title:t("botDefaults.p2pOpen"),help:t("botDefaults.p2pOpenHelp"),onChange:h=>{let $=c;s(h),g({p2pOpen:h},"p2pOpen",()=>s($))}})]}),(0,e.jsxs)("form",{className:"bd-grant-defaults",noValidate:!0,onSubmit:h=>{h.preventDefault(),P()},children:[(0,e.jsx)("div",{className:"bd-row bd-grant-duration",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(F,{help:t("botDefaults.grantDurationHelp"),children:t("botDefaults.grantDurationDefault")}),(0,e.jsx)(it,{dataInput:"grantDefaultDurationMs",value:b,options:R,disabled:w!==null,ariaLabel:t("botDefaults.grantDurationDefault"),onChange:q})]})}),(0,e.jsxs)("div",{className:"bd-row bd-quota",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(F,{help:Q,children:t("botDefaults.quotaDefault")}),(0,e.jsx)("input",{type:"number",min:1,max:1e3,step:1,"data-input":"quotaLimit",placeholder:t("botDefaults.quotaPlaceholder",{count:3}),value:T,disabled:w!==null,"aria-label":t("botDefaults.quotaDefault"),"aria-invalid":C?!0:void 0,"aria-describedby":C?"grant-defaults-state grant-default-quota-error":"grant-defaults-state",onChange:h=>{x(h.currentTarget.value),v(null),D(null)},onBlur:P,onKeyDown:h=>{h.key==="Enter"&&(h.preventDefault(),h.currentTarget.blur())}})]}),C?(0,e.jsx)("small",{id:"grant-default-quota-error",className:"bd-field-error",role:"alert",children:C}):null,(0,e.jsx)("small",{id:"grant-defaults-state","data-grant-defaults-state":!0,children:tt})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(X,{status:p,attr:{"data-grant-status":""}})})]})]})}function eo(a){return De(a,(0,e.jsx)(qa,{}))}export{va as a,Ue as b,_n as c,Tt as d,$a as e,xt as f,te as g,_a as h,qa as i,tn as j,oa as k,Ze as l,mn as m,fn as n,pn as o,Dn as p,Pn as q,eo as r};
@@ -1 +1 @@
1
- import{a as S,b as B,d as R}from"./chunk-5THX4DI2.js";import{c as g}from"./chunk-7SZRL6FY.js";var a=g(S(),1),E=g(B(),1),t=g(R(),1);function k(e,o){return e.find(i=>i.value===o)?.label??o}function H(e){let o=e.as??"span";return(0,t.jsx)(o,{style:{display:"contents"},dangerouslySetInnerHTML:{__html:e.html}})}function O(e){let o=["page-loading",e.compact?"page-loading-compact":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:o,role:"status","aria-live":"polite",children:[(0,t.jsx)("i",{className:"page-loading-spin","aria-hidden":"true"}),(0,t.jsx)("span",{children:e.label})]})}function J(e){return(0,t.jsxs)("div",{className:"sect-head overview-panel-head",children:[(0,t.jsx)("h2",{children:e.title}),e.count?(0,t.jsx)("span",{className:"sect-head-count",children:e.count}):null,e.hint?(0,t.jsx)("span",{className:"sect-head-hint",children:e.hint}):null,e.children]})}function X(e){return(0,t.jsx)("a",{className:"sect-head-action",href:e.href,children:e.children})}function D(e){return(0,t.jsx)("div",{className:"sect-head-controls",children:e.children})}function x(e){return e.kind==="plus"?(0,t.jsx)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M8 3.25v9.5M3.25 8h9.5"})}):(0,t.jsxs)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M13.1 6.55A5.35 5.35 0 1 0 13 10.1"}),(0,t.jsx)("path",{d:"M13.15 2.95v3.7H9.45"})]})}function A(e){let{children:o,className:i,type:l="button",...u}=e;return(0,t.jsxs)("button",{...u,type:l,className:["ui-create-action",i].filter(Boolean).join(" "),children:[(0,t.jsx)(x,{kind:"plus"}),(0,t.jsx)("span",{className:"ui-create-action-label",children:o})]})}function j(e){let{label:o,busy:i=!1,className:l,type:u="button",...d}=e;return(0,t.jsx)("button",{...d,type:u,className:["ui-refresh-button",i?"is-loading":"",l].filter(Boolean).join(" "),title:o,"aria-label":o,"aria-busy":i||void 0,children:(0,t.jsx)(x,{kind:"refresh"})})}function T(e,o){return e?.closest("dialog[open]")??o}function C(e){let o=(0,a.useRef)(null),i=(0,a.useRef)(null),[l,u]=(0,a.useState)(!1),[d,b]=(0,a.useState)(null),s=(0,a.useCallback)(()=>{let m=o.current;if(!m||typeof window>"u")return;let h=m.getBoundingClientRect(),r=Math.min(360,Math.max(160,window.innerWidth-48)),c=24+r/2,v=window.innerWidth-24-r/2,w=h.left+h.width/2,y=Math.min(Math.max(w,c),Math.max(c,v)),N=h.top<80;b({left:y,top:N?h.bottom+8:h.top-8,placement:N?"bottom":"top"})},[]),f=(0,a.useCallback)(()=>{i.current&&(clearTimeout(i.current),i.current=null),s(),u(!0)},[s]),n=(0,a.useCallback)(()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>u(!1),160)},[]);(0,a.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),(0,a.useEffect)(()=>{if(l)return s(),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0)}},[l,s]);let p=l&&d&&typeof document<"u"?(0,E.createPortal)((0,t.jsx)("span",{className:`ui-info-pop ui-info-pop-floating ui-info-pop-${d.placement}`,role:"tooltip",style:{left:d.left,top:d.top},onMouseEnter:f,onMouseLeave:n,children:e.children}),T(o.current,document.body)):null;return(0,t.jsxs)("span",{ref:o,className:["ui-info-tip",e.className].filter(Boolean).join(" "),tabIndex:e.focusable===!1?void 0:0,"aria-label":e.label,onClick:e.preventClick===!1?void 0:m=>m.preventDefault(),onMouseEnter:f,onMouseLeave:n,onFocus:f,onBlur:n,children:[e.trigger??(0,t.jsx)("span",{className:"ui-info-mark","aria-hidden":"true",children:"?"}),p]})}function z(e){let o=(0,a.useRef)(null),[i,l]=(0,a.useState)(!1),[u,d]=(0,a.useState)(!1),[b,s]=(0,a.useState)(null),f=(0,a.useCallback)(()=>{let r=o.current;if(!r)return!1;let v=(r.querySelector(".ui-overflow-scroll")??r).scrollWidth>r.clientWidth+1;return d(v),v||l(!1),v},[]),n=(0,a.useCallback)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=r.getBoundingClientRect(),v=Math.min(460,Math.max(220,window.innerWidth-48)),w=24+v/2,y=window.innerWidth-24-v/2,N=c.left+c.width/2,M=Math.min(Math.max(N,w),Math.max(w,y)),L=c.top<84;s({left:M,top:L?c.bottom+8:c.top-8,placement:L?"bottom":"top"})},[]),p=(0,a.useCallback)(()=>{if(!(!e.text.trim()||!f())){if(e.showPopover===!1){l(!1);return}n(),l(!0)}},[f,e.showPopover,e.text,n]),m=(0,a.useCallback)(()=>l(!1),[]);(0,a.useEffect)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=window.requestAnimationFrame(f),v=typeof ResizeObserver<"u"?new ResizeObserver(()=>f()):null;return v?.observe(r),window.addEventListener("resize",f),()=>{window.cancelAnimationFrame(c),v?.disconnect(),window.removeEventListener("resize",f)}},[f,e.text]),(0,a.useEffect)(()=>{if(i)return n(),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0)}},[i,n]);let h=e.showPopover!==!1&&i&&b&&typeof document<"u"?(0,E.createPortal)((0,t.jsx)("span",{className:["ui-info-pop","ui-info-pop-floating",`ui-info-pop-${b.placement}`,"ui-overflow-popover",e.popoverClassName].filter(Boolean).join(" "),role:"tooltip",style:{left:b.left,top:b.top},children:e.text}),T(o.current,document.body)):null;return(0,t.jsxs)("span",{ref:o,className:["ui-overflow-text",u?"is-overflowing":"",e.className].filter(Boolean).join(" "),style:e.durationMs?{"--ui-overflow-duration":`${e.durationMs}ms`}:void 0,onMouseEnter:p,onMouseLeave:m,children:[(0,t.jsx)("span",{className:["ui-overflow-scroll",e.textClassName].filter(Boolean).join(" "),children:e.children??e.text}),h]})}function I(e){return(0,t.jsxs)("span",{className:["ui-field-title",e.className].filter(Boolean).join(" "),children:[(0,t.jsx)("span",{className:"ui-field-title-text",children:e.children}),e.help?(0,t.jsx)(C,{label:e.helpLabel,children:e.help}):null]})}function W(e){return(0,t.jsx)("ul",{className:["overview-list",e.className].filter(Boolean).join(" "),id:e.id,children:e.children})}function q(e){let{kind:o,className:i,children:l,...u}=e,d=o?`overview-list-item-${o}`:"";return(0,t.jsx)("li",{...u,className:["overview-list-item",d,i].filter(Boolean).join(" "),children:l})}function F(e){return(0,t.jsx)("div",{className:"overview-list-main",children:e.children})}function K(e){return(0,t.jsx)("div",{className:"overview-list-tail",children:e.children})}function P(e){let o=(0,a.useRef)(null),i=(0,a.useRef)(null),[l,u]=(0,a.useState)(""),d=n=>{o.current?.removeAttribute("open"),n!==e.value&&e.onChange(n)},b=l.trim().toLowerCase(),s=e.searchable&&b?e.options.filter(n=>n.value.toLowerCase().includes(b)||typeof n.label=="string"&&n.label.toLowerCase().includes(b)):e.options;(0,a.useEffect)(()=>{if(typeof document>"u")return;let n=()=>{o.current?.open&&(o.current.open=!1)},p=h=>{let r=o.current;if(!r?.open)return;let c=h.target;c instanceof Node&&r.contains(c)||n()},m=h=>{h.key==="Escape"&&n()};return document.addEventListener("pointerdown",p,!0),document.addEventListener("keydown",m),()=>{document.removeEventListener("pointerdown",p,!0),document.removeEventListener("keydown",m)}},[]),(0,a.useEffect)(()=>{e.disabled&&o.current?.open&&(o.current.open=!1)},[e.disabled]);let f=["sect-sort-menu",e.disabled?"is-disabled":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("details",{id:e.id,className:f,ref:o,hidden:e.hidden,style:e.style,onToggle:n=>{!e.searchable||!n.currentTarget.open||(u(""),i.current?.focus())},children:[(0,t.jsx)("summary",{"aria-label":e.ariaLabel,"aria-disabled":e.disabled?!0:void 0,tabIndex:e.disabled?-1:void 0,onClick:n=>{e.disabled&&n.preventDefault()},onKeyDown:n=>{e.disabled&&(n.key==="Enter"||n.key===" ")&&n.preventDefault()},children:(0,t.jsx)("span",{className:"sect-sort-value",children:e.label})}),(0,t.jsxs)("div",{className:"sect-sort-pop",children:[e.searchable?(0,t.jsx)("input",{ref:i,className:"sect-sort-search",type:"search",placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,autoComplete:"off",spellCheck:!1,value:l,onChange:n=>u(n.currentTarget.value),onKeyDown:n=>{if(n.key!=="Enter")return;n.preventDefault();let p=s.find(m=>!m.disabled);p&&d(p.value)}}):null,s.map(n=>(0,t.jsx)("button",{type:"button",disabled:n.disabled,"aria-current":e.value===n.value?"true":void 0,onClick:()=>d(n.value),children:n.label},n.value)),e.searchable&&s.length===0?(0,t.jsx)("p",{className:"sect-sort-empty",children:e.searchEmptyLabel}):null]})]})}function $(e){return(0,t.jsx)(P,{...e})}export{k as a,H as b,O as c,J as d,X as e,D as f,A as g,j as h,T as i,C as j,z as k,I as l,W as m,q as n,F as o,K as p,P as q,$ as r};
1
+ import{a as B}from"./chunk-XVIXNQGC.js";import{c as g,d as S,e as R}from"./chunk-CVNIMUPY.js";var a=g(S(),1),E=g(B(),1),t=g(R(),1);function k(e,o){return e.find(i=>i.value===o)?.label??o}function H(e){let o=e.as??"span";return(0,t.jsx)(o,{style:{display:"contents"},dangerouslySetInnerHTML:{__html:e.html}})}function O(e){let o=["page-loading",e.compact?"page-loading-compact":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:o,role:"status","aria-live":"polite",children:[(0,t.jsx)("i",{className:"page-loading-spin","aria-hidden":"true"}),(0,t.jsx)("span",{children:e.label})]})}function J(e){return(0,t.jsxs)("div",{className:"sect-head overview-panel-head",children:[(0,t.jsx)("h2",{children:e.title}),e.count?(0,t.jsx)("span",{className:"sect-head-count",children:e.count}):null,e.hint?(0,t.jsx)("span",{className:"sect-head-hint",children:e.hint}):null,e.children]})}function X(e){return(0,t.jsx)("a",{className:"sect-head-action",href:e.href,children:e.children})}function D(e){return(0,t.jsx)("div",{className:"sect-head-controls",children:e.children})}function x(e){return e.kind==="plus"?(0,t.jsx)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M8 3.25v9.5M3.25 8h9.5"})}):(0,t.jsxs)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M13.1 6.55A5.35 5.35 0 1 0 13 10.1"}),(0,t.jsx)("path",{d:"M13.15 2.95v3.7H9.45"})]})}function A(e){let{children:o,className:i,type:l="button",...u}=e;return(0,t.jsxs)("button",{...u,type:l,className:["ui-create-action",i].filter(Boolean).join(" "),children:[(0,t.jsx)(x,{kind:"plus"}),(0,t.jsx)("span",{className:"ui-create-action-label",children:o})]})}function j(e){let{label:o,busy:i=!1,className:l,type:u="button",...d}=e;return(0,t.jsx)("button",{...d,type:u,className:["ui-refresh-button",i?"is-loading":"",l].filter(Boolean).join(" "),title:o,"aria-label":o,"aria-busy":i||void 0,children:(0,t.jsx)(x,{kind:"refresh"})})}function T(e,o){return e?.closest("dialog[open]")??o}function C(e){let o=(0,a.useRef)(null),i=(0,a.useRef)(null),[l,u]=(0,a.useState)(!1),[d,b]=(0,a.useState)(null),s=(0,a.useCallback)(()=>{let m=o.current;if(!m||typeof window>"u")return;let h=m.getBoundingClientRect(),r=Math.min(360,Math.max(160,window.innerWidth-48)),c=24+r/2,v=window.innerWidth-24-r/2,w=h.left+h.width/2,y=Math.min(Math.max(w,c),Math.max(c,v)),N=h.top<80;b({left:y,top:N?h.bottom+8:h.top-8,placement:N?"bottom":"top"})},[]),f=(0,a.useCallback)(()=>{i.current&&(clearTimeout(i.current),i.current=null),s(),u(!0)},[s]),n=(0,a.useCallback)(()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>u(!1),160)},[]);(0,a.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),(0,a.useEffect)(()=>{if(l)return s(),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0)}},[l,s]);let p=l&&d&&typeof document<"u"?(0,E.createPortal)((0,t.jsx)("span",{className:`ui-info-pop ui-info-pop-floating ui-info-pop-${d.placement}`,role:"tooltip",style:{left:d.left,top:d.top},onMouseEnter:f,onMouseLeave:n,children:e.children}),T(o.current,document.body)):null;return(0,t.jsxs)("span",{ref:o,className:["ui-info-tip",e.className].filter(Boolean).join(" "),tabIndex:e.focusable===!1?void 0:0,"aria-label":e.label,onClick:e.preventClick===!1?void 0:m=>m.preventDefault(),onMouseEnter:f,onMouseLeave:n,onFocus:f,onBlur:n,children:[e.trigger??(0,t.jsx)("span",{className:"ui-info-mark","aria-hidden":"true",children:"?"}),p]})}function z(e){let o=(0,a.useRef)(null),[i,l]=(0,a.useState)(!1),[u,d]=(0,a.useState)(!1),[b,s]=(0,a.useState)(null),f=(0,a.useCallback)(()=>{let r=o.current;if(!r)return!1;let v=(r.querySelector(".ui-overflow-scroll")??r).scrollWidth>r.clientWidth+1;return d(v),v||l(!1),v},[]),n=(0,a.useCallback)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=r.getBoundingClientRect(),v=Math.min(460,Math.max(220,window.innerWidth-48)),w=24+v/2,y=window.innerWidth-24-v/2,N=c.left+c.width/2,M=Math.min(Math.max(N,w),Math.max(w,y)),L=c.top<84;s({left:M,top:L?c.bottom+8:c.top-8,placement:L?"bottom":"top"})},[]),p=(0,a.useCallback)(()=>{if(!(!e.text.trim()||!f())){if(e.showPopover===!1){l(!1);return}n(),l(!0)}},[f,e.showPopover,e.text,n]),m=(0,a.useCallback)(()=>l(!1),[]);(0,a.useEffect)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=window.requestAnimationFrame(f),v=typeof ResizeObserver<"u"?new ResizeObserver(()=>f()):null;return v?.observe(r),window.addEventListener("resize",f),()=>{window.cancelAnimationFrame(c),v?.disconnect(),window.removeEventListener("resize",f)}},[f,e.text]),(0,a.useEffect)(()=>{if(i)return n(),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0)}},[i,n]);let h=e.showPopover!==!1&&i&&b&&typeof document<"u"?(0,E.createPortal)((0,t.jsx)("span",{className:["ui-info-pop","ui-info-pop-floating",`ui-info-pop-${b.placement}`,"ui-overflow-popover",e.popoverClassName].filter(Boolean).join(" "),role:"tooltip",style:{left:b.left,top:b.top},children:e.text}),T(o.current,document.body)):null;return(0,t.jsxs)("span",{ref:o,className:["ui-overflow-text",u?"is-overflowing":"",e.className].filter(Boolean).join(" "),style:e.durationMs?{"--ui-overflow-duration":`${e.durationMs}ms`}:void 0,onMouseEnter:p,onMouseLeave:m,children:[(0,t.jsx)("span",{className:["ui-overflow-scroll",e.textClassName].filter(Boolean).join(" "),children:e.children??e.text}),h]})}function I(e){return(0,t.jsxs)("span",{className:["ui-field-title",e.className].filter(Boolean).join(" "),children:[(0,t.jsx)("span",{className:"ui-field-title-text",children:e.children}),e.help?(0,t.jsx)(C,{label:e.helpLabel,children:e.help}):null]})}function W(e){return(0,t.jsx)("ul",{className:["overview-list",e.className].filter(Boolean).join(" "),id:e.id,children:e.children})}function q(e){let{kind:o,className:i,children:l,...u}=e,d=o?`overview-list-item-${o}`:"";return(0,t.jsx)("li",{...u,className:["overview-list-item",d,i].filter(Boolean).join(" "),children:l})}function F(e){return(0,t.jsx)("div",{className:"overview-list-main",children:e.children})}function K(e){return(0,t.jsx)("div",{className:"overview-list-tail",children:e.children})}function P(e){let o=(0,a.useRef)(null),i=(0,a.useRef)(null),[l,u]=(0,a.useState)(""),d=n=>{o.current?.removeAttribute("open"),n!==e.value&&e.onChange(n)},b=l.trim().toLowerCase(),s=e.searchable&&b?e.options.filter(n=>n.value.toLowerCase().includes(b)||typeof n.label=="string"&&n.label.toLowerCase().includes(b)):e.options;(0,a.useEffect)(()=>{if(typeof document>"u")return;let n=()=>{o.current?.open&&(o.current.open=!1)},p=h=>{let r=o.current;if(!r?.open)return;let c=h.target;c instanceof Node&&r.contains(c)||n()},m=h=>{h.key==="Escape"&&n()};return document.addEventListener("pointerdown",p,!0),document.addEventListener("keydown",m),()=>{document.removeEventListener("pointerdown",p,!0),document.removeEventListener("keydown",m)}},[]),(0,a.useEffect)(()=>{e.disabled&&o.current?.open&&(o.current.open=!1)},[e.disabled]);let f=["sect-sort-menu",e.disabled?"is-disabled":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("details",{id:e.id,className:f,ref:o,hidden:e.hidden,style:e.style,onToggle:n=>{!e.searchable||!n.currentTarget.open||(u(""),i.current?.focus())},children:[(0,t.jsx)("summary",{"aria-label":e.ariaLabel,"aria-disabled":e.disabled?!0:void 0,tabIndex:e.disabled?-1:void 0,onClick:n=>{e.disabled&&n.preventDefault()},onKeyDown:n=>{e.disabled&&(n.key==="Enter"||n.key===" ")&&n.preventDefault()},children:(0,t.jsx)("span",{className:"sect-sort-value",children:e.label})}),(0,t.jsxs)("div",{className:"sect-sort-pop",children:[e.searchable?(0,t.jsx)("input",{ref:i,className:"sect-sort-search",type:"search",placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,autoComplete:"off",spellCheck:!1,value:l,onChange:n=>u(n.currentTarget.value),onKeyDown:n=>{if(n.key!=="Enter")return;n.preventDefault();let p=s.find(m=>!m.disabled);p&&d(p.value)}}):null,s.map(n=>(0,t.jsx)("button",{type:"button",disabled:n.disabled,"aria-current":e.value===n.value?"true":void 0,onClick:()=>d(n.value),children:n.label},n.value)),e.searchable&&s.length===0?(0,t.jsx)("p",{className:"sect-sort-empty",children:e.searchEmptyLabel}):null]})]})}function $(e){return(0,t.jsx)(P,{...e})}export{k as a,H as b,O as c,J as d,X as e,D as f,A as g,j as h,T as i,C as j,z as k,I as l,W as m,q as n,F as o,K as p,P as q,$ as r};
@@ -1 +1 @@
1
- import{H as i,L as c,b as r}from"./chunk-F6KNPF4R.js";var l={chats:[],bots:[]};async function A(){try{l=await r()}catch{}}var p=new Set(["working","analyzing","active","starting"]);function m(d){let s=new Map,e=t=>{let a=s.get(t);return a||(a={botName:t,larkAppId:t,cliId:"unknown",online:!1,sessions:[],active:[],busy:[],attention:[],lastActiveAt:0},s.set(t,a)),a};for(let t of l.bots??[]){let a=e(t.larkAppId??t.botName??"-");a.online=!0,t.botName&&(a.botName=t.botName),t.botAvatarUrl&&(a.botAvatarUrl=t.botAvatarUrl),t.cliId&&(a.cliId=t.cliId),t.brand&&(a.brand=t.brand)}let b=[...d].sort((t,a)=>+(t.status==="closed")-+(a.status==="closed"));for(let t of b){let a=t.larkAppId??t.botName??"-";if(t.status==="closed"&&!s.has(a))continue;let o=e(a);t.botName&&(o.botName===o.larkAppId||!o.botName)&&(o.botName=t.botName),o.sessions.push(t),t.cliId&&o.cliId==="unknown"&&(o.cliId=t.cliId),o.lastActiveAt=Math.max(o.lastActiveAt,Number(t.lastMessageAt??0)),t.status!=="closed"&&(o.active.push(t),p.has(t.status)&&o.busy.push(t),c(t)&&o.attention.push(t))}for(let t of s.values())if(t.botName===t.larkAppId){let a=i(t.larkAppId);a&&(t.botName=a)}return[...s.values()].sort((t,a)=>{let o=n=>n.attention.length?0:n.busy.length?1:n.online||n.active.length?2:3;return o(t)!==o(a)?o(t)-o(a):a.lastActiveAt-t.lastActiveAt})}export{A as a,m as b};
1
+ import{H as i,L as c,b as r}from"./chunk-CK22743G.js";var l={chats:[],bots:[]};async function A(){try{l=await r()}catch{}}var p=new Set(["working","analyzing","active","starting"]);function m(d){let s=new Map,e=t=>{let a=s.get(t);return a||(a={botName:t,larkAppId:t,cliId:"unknown",online:!1,sessions:[],active:[],busy:[],attention:[],lastActiveAt:0},s.set(t,a)),a};for(let t of l.bots??[]){let a=e(t.larkAppId??t.botName??"-");a.online=!0,t.botName&&(a.botName=t.botName),t.botAvatarUrl&&(a.botAvatarUrl=t.botAvatarUrl),t.cliId&&(a.cliId=t.cliId),t.brand&&(a.brand=t.brand)}let b=[...d].sort((t,a)=>+(t.status==="closed")-+(a.status==="closed"));for(let t of b){let a=t.larkAppId??t.botName??"-";if(t.status==="closed"&&!s.has(a))continue;let o=e(a);t.botName&&(o.botName===o.larkAppId||!o.botName)&&(o.botName=t.botName),o.sessions.push(t),t.cliId&&o.cliId==="unknown"&&(o.cliId=t.cliId),o.lastActiveAt=Math.max(o.lastActiveAt,Number(t.lastMessageAt??0)),t.status!=="closed"&&(o.active.push(t),p.has(t.status)&&o.busy.push(t),c(t)&&o.attention.push(t))}for(let t of s.values())if(t.botName===t.larkAppId){let a=i(t.larkAppId);a&&(t.botName=a)}return[...s.values()].sort((t,a)=>{let o=n=>n.attention.length?0:n.busy.length?1:n.online||n.active.length?2:3;return o(t)!==o(a)?o(t)-o(a):a.lastActiveAt-t.lastActiveAt})}export{A as a,m as b};