botmux 3.14.0 → 3.16.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 (812) hide show
  1. package/README.en.md +2 -2
  2. package/README.md +2 -2
  3. package/dist/.runtime-build-id +1 -1
  4. package/dist/adapters/backend/destroy-result.d.ts +159 -0
  5. package/dist/adapters/backend/destroy-result.d.ts.map +1 -0
  6. package/dist/adapters/backend/destroy-result.js +223 -0
  7. package/dist/adapters/backend/destroy-result.js.map +1 -0
  8. package/dist/adapters/backend/herdr-backend.d.ts +4 -0
  9. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  10. package/dist/adapters/backend/herdr-backend.js +23 -1
  11. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  12. package/dist/adapters/backend/mojo-backend.d.ts +577 -0
  13. package/dist/adapters/backend/mojo-backend.d.ts.map +1 -0
  14. package/dist/adapters/backend/mojo-backend.js +2471 -0
  15. package/dist/adapters/backend/mojo-backend.js.map +1 -0
  16. package/dist/adapters/backend/mojo-budgets.d.ts +21 -0
  17. package/dist/adapters/backend/mojo-budgets.d.ts.map +1 -0
  18. package/dist/adapters/backend/mojo-budgets.js +22 -0
  19. package/dist/adapters/backend/mojo-budgets.js.map +1 -0
  20. package/dist/adapters/backend/mojo-isolated-workspace.d.ts +69 -0
  21. package/dist/adapters/backend/mojo-isolated-workspace.d.ts.map +1 -0
  22. package/dist/adapters/backend/mojo-isolated-workspace.js +213 -0
  23. package/dist/adapters/backend/mojo-isolated-workspace.js.map +1 -0
  24. package/dist/adapters/backend/mojo-process-tree.d.ts +292 -0
  25. package/dist/adapters/backend/mojo-process-tree.d.ts.map +1 -0
  26. package/dist/adapters/backend/mojo-process-tree.js +486 -0
  27. package/dist/adapters/backend/mojo-process-tree.js.map +1 -0
  28. package/dist/adapters/backend/mojo-types.d.ts +542 -0
  29. package/dist/adapters/backend/mojo-types.d.ts.map +1 -0
  30. package/dist/adapters/backend/mojo-types.js +682 -0
  31. package/dist/adapters/backend/mojo-types.js.map +1 -0
  32. package/dist/adapters/backend/reproduce-command.js +3 -3
  33. package/dist/adapters/backend/reproduce-command.js.map +1 -1
  34. package/dist/adapters/backend/riff-backend.js +1 -1
  35. package/dist/adapters/backend/riff-backend.js.map +1 -1
  36. package/dist/adapters/backend/sandbox.d.ts +44 -7
  37. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  38. package/dist/adapters/backend/sandbox.js +30 -7
  39. package/dist/adapters/backend/sandbox.js.map +1 -1
  40. package/dist/adapters/backend/session-backend-selector.d.ts +14 -1
  41. package/dist/adapters/backend/session-backend-selector.d.ts.map +1 -1
  42. package/dist/adapters/backend/session-backend-selector.js +82 -10
  43. package/dist/adapters/backend/session-backend-selector.js.map +1 -1
  44. package/dist/adapters/backend/tmux-pipe-backend.d.ts +30 -0
  45. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  46. package/dist/adapters/backend/tmux-pipe-backend.js +60 -0
  47. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  48. package/dist/adapters/backend/types.d.ts +108 -6
  49. package/dist/adapters/backend/types.d.ts.map +1 -1
  50. package/dist/adapters/backend/types.js.map +1 -1
  51. package/dist/adapters/backend/zmx-backend.d.ts +11 -0
  52. package/dist/adapters/backend/zmx-backend.d.ts.map +1 -1
  53. package/dist/adapters/backend/zmx-backend.js +16 -1
  54. package/dist/adapters/backend/zmx-backend.js.map +1 -1
  55. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  56. package/dist/adapters/cli/codex-app.js +2 -2
  57. package/dist/adapters/cli/codex-app.js.map +1 -1
  58. package/dist/adapters/cli/codex.d.ts.map +1 -1
  59. package/dist/adapters/cli/codex.js +7 -0
  60. package/dist/adapters/cli/codex.js.map +1 -1
  61. package/dist/adapters/cli/copilot.d.ts +3 -1
  62. package/dist/adapters/cli/copilot.d.ts.map +1 -1
  63. package/dist/adapters/cli/copilot.js +23 -5
  64. package/dist/adapters/cli/copilot.js.map +1 -1
  65. package/dist/adapters/cli/cursor.d.ts.map +1 -1
  66. package/dist/adapters/cli/cursor.js +26 -4
  67. package/dist/adapters/cli/cursor.js.map +1 -1
  68. package/dist/adapters/cli/dsh.d.ts.map +1 -1
  69. package/dist/adapters/cli/dsh.js +5 -1
  70. package/dist/adapters/cli/dsh.js.map +1 -1
  71. package/dist/adapters/cli/grok.d.ts.map +1 -1
  72. package/dist/adapters/cli/grok.js +24 -5
  73. package/dist/adapters/cli/grok.js.map +1 -1
  74. package/dist/adapters/cli/kimi.d.ts.map +1 -1
  75. package/dist/adapters/cli/kimi.js +19 -1
  76. package/dist/adapters/cli/kimi.js.map +1 -1
  77. package/dist/adapters/cli/mojo.d.ts +28 -0
  78. package/dist/adapters/cli/mojo.d.ts.map +1 -0
  79. package/dist/adapters/cli/mojo.js +58 -0
  80. package/dist/adapters/cli/mojo.js.map +1 -0
  81. package/dist/adapters/cli/pi.d.ts +20 -5
  82. package/dist/adapters/cli/pi.d.ts.map +1 -1
  83. package/dist/adapters/cli/pi.js +27 -5
  84. package/dist/adapters/cli/pi.js.map +1 -1
  85. package/dist/adapters/cli/read-isolation.d.ts +251 -1
  86. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  87. package/dist/adapters/cli/read-isolation.js +254 -1
  88. package/dist/adapters/cli/read-isolation.js.map +1 -1
  89. package/dist/adapters/cli/registry.d.ts +13 -1
  90. package/dist/adapters/cli/registry.d.ts.map +1 -1
  91. package/dist/adapters/cli/registry.js +19 -1
  92. package/dist/adapters/cli/registry.js.map +1 -1
  93. package/dist/adapters/cli/runner-input.d.ts +3 -3
  94. package/dist/adapters/cli/runner-input.d.ts.map +1 -1
  95. package/dist/adapters/cli/runner-input.js +4 -3
  96. package/dist/adapters/cli/runner-input.js.map +1 -1
  97. package/dist/adapters/cli/shared-hints.d.ts +3 -1
  98. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  99. package/dist/adapters/cli/shared-hints.js +51 -30
  100. package/dist/adapters/cli/shared-hints.js.map +1 -1
  101. package/dist/adapters/cli/types.d.ts +33 -4
  102. package/dist/adapters/cli/types.d.ts.map +1 -1
  103. package/dist/bot-registry.d.ts +42 -0
  104. package/dist/bot-registry.d.ts.map +1 -1
  105. package/dist/bot-registry.js +54 -4
  106. package/dist/bot-registry.js.map +1 -1
  107. package/dist/cli/arg-utils.d.ts +5 -0
  108. package/dist/cli/arg-utils.d.ts.map +1 -1
  109. package/dist/cli/arg-utils.js +7 -0
  110. package/dist/cli/arg-utils.js.map +1 -1
  111. package/dist/cli/bots-list-output.d.ts +130 -2
  112. package/dist/cli/bots-list-output.d.ts.map +1 -1
  113. package/dist/cli/bots-list-output.js +173 -27
  114. package/dist/cli/bots-list-output.js.map +1 -1
  115. package/dist/cli/daemon-lifecycle-env.d.ts +10 -3
  116. package/dist/cli/daemon-lifecycle-env.d.ts.map +1 -1
  117. package/dist/cli/daemon-lifecycle-env.js +38 -11
  118. package/dist/cli/daemon-lifecycle-env.js.map +1 -1
  119. package/dist/cli/dashboard-command.d.ts +15 -0
  120. package/dist/cli/dashboard-command.d.ts.map +1 -1
  121. package/dist/cli/dashboard-command.js +22 -0
  122. package/dist/cli/dashboard-command.js.map +1 -1
  123. package/dist/cli/log-tail.d.ts +54 -0
  124. package/dist/cli/log-tail.d.ts.map +1 -0
  125. package/dist/cli/log-tail.js +167 -0
  126. package/dist/cli/log-tail.js.map +1 -0
  127. package/dist/cli/pm2-env.d.ts +16 -0
  128. package/dist/cli/pm2-env.d.ts.map +1 -0
  129. package/dist/cli/pm2-env.js +63 -0
  130. package/dist/cli/pm2-env.js.map +1 -0
  131. package/dist/cli/pm2-fleet-lock.d.ts +26 -0
  132. package/dist/cli/pm2-fleet-lock.d.ts.map +1 -0
  133. package/dist/cli/pm2-fleet-lock.js +50 -0
  134. package/dist/cli/pm2-fleet-lock.js.map +1 -0
  135. package/dist/cli/pm2-god-retirement.d.ts +59 -0
  136. package/dist/cli/pm2-god-retirement.d.ts.map +1 -0
  137. package/dist/cli/pm2-god-retirement.js +95 -0
  138. package/dist/cli/pm2-god-retirement.js.map +1 -0
  139. package/dist/cli/session-list-wake.d.ts +41 -0
  140. package/dist/cli/session-list-wake.d.ts.map +1 -0
  141. package/dist/cli/session-list-wake.js +102 -0
  142. package/dist/cli/session-list-wake.js.map +1 -0
  143. package/dist/cli/workflow.d.ts.map +1 -1
  144. package/dist/cli/workflow.js +26 -0
  145. package/dist/cli/workflow.js.map +1 -1
  146. package/dist/cli.d.ts.map +1 -1
  147. package/dist/cli.js +941 -118
  148. package/dist/cli.js.map +1 -1
  149. package/dist/codex-app-runner.js +261 -49
  150. package/dist/codex-app-runner.js.map +1 -1
  151. package/dist/core/cli-runtime-update.d.ts +8 -0
  152. package/dist/core/cli-runtime-update.d.ts.map +1 -1
  153. package/dist/core/cli-runtime-update.js +127 -8
  154. package/dist/core/cli-runtime-update.js.map +1 -1
  155. package/dist/core/close-residual.d.ts +64 -0
  156. package/dist/core/close-residual.d.ts.map +1 -0
  157. package/dist/core/close-residual.js +93 -0
  158. package/dist/core/close-residual.js.map +1 -0
  159. package/dist/core/closed-session-card.d.ts.map +1 -1
  160. package/dist/core/closed-session-card.js +11 -3
  161. package/dist/core/closed-session-card.js.map +1 -1
  162. package/dist/core/command-discovery.d.ts.map +1 -1
  163. package/dist/core/command-discovery.js +4 -1
  164. package/dist/core/command-discovery.js.map +1 -1
  165. package/dist/core/command-handler.d.ts.map +1 -1
  166. package/dist/core/command-handler.js +129 -27
  167. package/dist/core/command-handler.js.map +1 -1
  168. package/dist/core/cost-calculator.d.ts +3 -1
  169. package/dist/core/cost-calculator.d.ts.map +1 -1
  170. package/dist/core/cost-calculator.js +230 -1
  171. package/dist/core/cost-calculator.js.map +1 -1
  172. package/dist/core/daemon-background-close.d.ts +19 -0
  173. package/dist/core/daemon-background-close.d.ts.map +1 -0
  174. package/dist/core/daemon-background-close.js +39 -0
  175. package/dist/core/daemon-background-close.js.map +1 -0
  176. package/dist/core/dashboard-command/overview.d.ts +4 -0
  177. package/dist/core/dashboard-command/overview.d.ts.map +1 -1
  178. package/dist/core/dashboard-command/overview.js +8 -1
  179. package/dist/core/dashboard-command/overview.js.map +1 -1
  180. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  181. package/dist/core/dashboard-ipc-server.js +415 -42
  182. package/dist/core/dashboard-ipc-server.js.map +1 -1
  183. package/dist/core/dashboard-rows.d.ts +4 -0
  184. package/dist/core/dashboard-rows.d.ts.map +1 -1
  185. package/dist/core/dashboard-rows.js +3 -0
  186. package/dist/core/dashboard-rows.js.map +1 -1
  187. package/dist/core/dashboard-url.d.ts +37 -0
  188. package/dist/core/dashboard-url.d.ts.map +1 -1
  189. package/dist/core/dashboard-url.js +71 -0
  190. package/dist/core/dashboard-url.js.map +1 -1
  191. package/dist/core/deferred-schedule-settlement.d.ts +15 -1
  192. package/dist/core/deferred-schedule-settlement.d.ts.map +1 -1
  193. package/dist/core/deferred-schedule-settlement.js +4 -1
  194. package/dist/core/deferred-schedule-settlement.js.map +1 -1
  195. package/dist/core/device-isolation-daemon.d.ts +91 -1
  196. package/dist/core/device-isolation-daemon.d.ts.map +1 -1
  197. package/dist/core/device-isolation-daemon.js +346 -2
  198. package/dist/core/device-isolation-daemon.js.map +1 -1
  199. package/dist/core/local-terminal-opener.d.ts.map +1 -1
  200. package/dist/core/local-terminal-opener.js +5 -1
  201. package/dist/core/local-terminal-opener.js.map +1 -1
  202. package/dist/core/loopback-target.d.ts +14 -0
  203. package/dist/core/loopback-target.d.ts.map +1 -0
  204. package/dist/core/loopback-target.js +20 -0
  205. package/dist/core/loopback-target.js.map +1 -0
  206. package/dist/core/maintenance.d.ts.map +1 -1
  207. package/dist/core/maintenance.js +16 -2
  208. package/dist/core/maintenance.js.map +1 -1
  209. package/dist/core/mojo-containment-command.d.ts +20 -0
  210. package/dist/core/mojo-containment-command.d.ts.map +1 -0
  211. package/dist/core/mojo-containment-command.js +266 -0
  212. package/dist/core/mojo-containment-command.js.map +1 -0
  213. package/dist/core/mojo-containment.d.ts +575 -0
  214. package/dist/core/mojo-containment.d.ts.map +1 -0
  215. package/dist/core/mojo-containment.js +1158 -0
  216. package/dist/core/mojo-containment.js.map +1 -0
  217. package/dist/core/mojo-launcher-env-quarantine.d.ts +30 -0
  218. package/dist/core/mojo-launcher-env-quarantine.d.ts.map +1 -0
  219. package/dist/core/mojo-launcher-env-quarantine.js +175 -0
  220. package/dist/core/mojo-launcher-env-quarantine.js.map +1 -0
  221. package/dist/core/mojo-session-identity.d.ts +3 -0
  222. package/dist/core/mojo-session-identity.d.ts.map +1 -0
  223. package/dist/core/mojo-session-identity.js +126 -0
  224. package/dist/core/mojo-session-identity.js.map +1 -0
  225. package/dist/core/persistent-backend.d.ts +32 -8
  226. package/dist/core/persistent-backend.d.ts.map +1 -1
  227. package/dist/core/persistent-backend.js +55 -17
  228. package/dist/core/persistent-backend.js.map +1 -1
  229. package/dist/core/plugins/mcp/gateway.d.ts +14 -1
  230. package/dist/core/plugins/mcp/gateway.d.ts.map +1 -1
  231. package/dist/core/plugins/mcp/gateway.js +70 -3
  232. package/dist/core/plugins/mcp/gateway.js.map +1 -1
  233. package/dist/core/plugins/mcp/host.d.ts +2 -0
  234. package/dist/core/plugins/mcp/host.d.ts.map +1 -1
  235. package/dist/core/plugins/mcp/host.js +2 -0
  236. package/dist/core/plugins/mcp/host.js.map +1 -1
  237. package/dist/core/plugins/pm2.d.ts.map +1 -1
  238. package/dist/core/plugins/pm2.js +16 -3
  239. package/dist/core/plugins/pm2.js.map +1 -1
  240. package/dist/core/plugins/service-manager.d.ts +9 -0
  241. package/dist/core/plugins/service-manager.d.ts.map +1 -1
  242. package/dist/core/plugins/service-manager.js +33 -16
  243. package/dist/core/plugins/service-manager.js.map +1 -1
  244. package/dist/core/preview-port-owner.d.ts +109 -0
  245. package/dist/core/preview-port-owner.d.ts.map +1 -0
  246. package/dist/core/preview-port-owner.js +320 -0
  247. package/dist/core/preview-port-owner.js.map +1 -0
  248. package/dist/core/remote-cli-ids.d.ts +5 -0
  249. package/dist/core/remote-cli-ids.d.ts.map +1 -0
  250. package/dist/core/remote-cli-ids.js +24 -0
  251. package/dist/core/remote-cli-ids.js.map +1 -0
  252. package/dist/core/{riff-shutdown-detach.d.ts → remote-shutdown-detach.d.ts} +40 -39
  253. package/dist/core/remote-shutdown-detach.d.ts.map +1 -0
  254. package/dist/core/{riff-shutdown-detach.js → remote-shutdown-detach.js} +85 -83
  255. package/dist/core/remote-shutdown-detach.js.map +1 -0
  256. package/dist/core/{riff-worker-shutdown-readiness.d.ts → remote-worker-shutdown-readiness.d.ts} +5 -4
  257. package/dist/core/remote-worker-shutdown-readiness.d.ts.map +1 -0
  258. package/dist/core/{riff-worker-shutdown-readiness.js → remote-worker-shutdown-readiness.js} +4 -3
  259. package/dist/core/remote-worker-shutdown-readiness.js.map +1 -0
  260. package/dist/core/reply-target.d.ts +16 -1
  261. package/dist/core/reply-target.d.ts.map +1 -1
  262. package/dist/core/reply-target.js +61 -0
  263. package/dist/core/reply-target.js.map +1 -1
  264. package/dist/core/session-group-birth.d.ts +26 -0
  265. package/dist/core/session-group-birth.d.ts.map +1 -1
  266. package/dist/core/session-group-birth.js +81 -4
  267. package/dist/core/session-group-birth.js.map +1 -1
  268. package/dist/core/session-manager.d.ts +15 -2
  269. package/dist/core/session-manager.d.ts.map +1 -1
  270. package/dist/core/session-manager.js +259 -5
  271. package/dist/core/session-manager.js.map +1 -1
  272. package/dist/core/session-model.d.ts +46 -0
  273. package/dist/core/session-model.d.ts.map +1 -0
  274. package/dist/core/session-model.js +42 -0
  275. package/dist/core/session-model.js.map +1 -0
  276. package/dist/core/session-owner-reminder.d.ts +63 -0
  277. package/dist/core/session-owner-reminder.d.ts.map +1 -0
  278. package/dist/core/session-owner-reminder.js +196 -0
  279. package/dist/core/session-owner-reminder.js.map +1 -0
  280. package/dist/core/session-preview-registry.d.ts +53 -0
  281. package/dist/core/session-preview-registry.d.ts.map +1 -0
  282. package/dist/core/session-preview-registry.js +82 -0
  283. package/dist/core/session-preview-registry.js.map +1 -0
  284. package/dist/core/session-preview.d.ts +114 -0
  285. package/dist/core/session-preview.d.ts.map +1 -0
  286. package/dist/core/session-preview.js +184 -0
  287. package/dist/core/session-preview.js.map +1 -0
  288. package/dist/core/session-rename.d.ts.map +1 -1
  289. package/dist/core/session-rename.js +5 -3
  290. package/dist/core/session-rename.js.map +1 -1
  291. package/dist/core/session-wake-deadline.d.ts +5 -0
  292. package/dist/core/session-wake-deadline.d.ts.map +1 -0
  293. package/dist/core/session-wake-deadline.js +13 -0
  294. package/dist/core/session-wake-deadline.js.map +1 -0
  295. package/dist/core/shutdown-budgets.d.ts +7 -6
  296. package/dist/core/shutdown-budgets.d.ts.map +1 -1
  297. package/dist/core/shutdown-budgets.js +11 -10
  298. package/dist/core/shutdown-budgets.js.map +1 -1
  299. package/dist/core/skills/frontmatter.d.ts.map +1 -1
  300. package/dist/core/skills/frontmatter.js +6 -1
  301. package/dist/core/skills/frontmatter.js.map +1 -1
  302. package/dist/core/terminal-control-grant.d.ts +74 -0
  303. package/dist/core/terminal-control-grant.d.ts.map +1 -0
  304. package/dist/core/terminal-control-grant.js +183 -0
  305. package/dist/core/terminal-control-grant.js.map +1 -0
  306. package/dist/core/terminal-proxy.d.ts.map +1 -1
  307. package/dist/core/terminal-proxy.js +4 -5
  308. package/dist/core/terminal-proxy.js.map +1 -1
  309. package/dist/core/terminal-write-auth.d.ts +4 -11
  310. package/dist/core/terminal-write-auth.d.ts.map +1 -1
  311. package/dist/core/terminal-write-auth.js +19 -16
  312. package/dist/core/terminal-write-auth.js.map +1 -1
  313. package/dist/core/trigger-session.d.ts.map +1 -1
  314. package/dist/core/trigger-session.js +36 -29
  315. package/dist/core/trigger-session.js.map +1 -1
  316. package/dist/core/types.d.ts +88 -10
  317. package/dist/core/types.d.ts.map +1 -1
  318. package/dist/core/types.js +9 -7
  319. package/dist/core/types.js.map +1 -1
  320. package/dist/core/workbench-link.d.ts +81 -0
  321. package/dist/core/workbench-link.d.ts.map +1 -0
  322. package/dist/core/workbench-link.js +109 -0
  323. package/dist/core/workbench-link.js.map +1 -0
  324. package/dist/core/worker-pool.d.ts +312 -11
  325. package/dist/core/worker-pool.d.ts.map +1 -1
  326. package/dist/core/worker-pool.js +2515 -217
  327. package/dist/core/worker-pool.js.map +1 -1
  328. package/dist/daemon.d.ts +6 -0
  329. package/dist/daemon.d.ts.map +1 -1
  330. package/dist/daemon.js +447 -116
  331. package/dist/daemon.js.map +1 -1
  332. package/dist/dashboard/aggregator.d.ts +33 -3
  333. package/dist/dashboard/aggregator.d.ts.map +1 -1
  334. package/dist/dashboard/aggregator.js +93 -17
  335. package/dist/dashboard/aggregator.js.map +1 -1
  336. package/dist/dashboard/auth-session-connections.d.ts +59 -0
  337. package/dist/dashboard/auth-session-connections.d.ts.map +1 -0
  338. package/dist/dashboard/auth-session-connections.js +109 -0
  339. package/dist/dashboard/auth-session-connections.js.map +1 -0
  340. package/dist/dashboard/auth.d.ts +99 -1
  341. package/dist/dashboard/auth.d.ts.map +1 -1
  342. package/dist/dashboard/auth.js +176 -64
  343. package/dist/dashboard/auth.js.map +1 -1
  344. package/dist/dashboard/bot-payload.d.ts +5 -0
  345. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  346. package/dist/dashboard/bot-payload.js +4 -0
  347. package/dist/dashboard/bot-payload.js.map +1 -1
  348. package/dist/dashboard/control-audit.d.ts +112 -0
  349. package/dist/dashboard/control-audit.d.ts.map +1 -0
  350. package/dist/dashboard/control-audit.js +195 -0
  351. package/dist/dashboard/control-audit.js.map +1 -0
  352. package/dist/dashboard/control-csrf.d.ts +123 -0
  353. package/dist/dashboard/control-csrf.d.ts.map +1 -0
  354. package/dist/dashboard/control-csrf.js +392 -0
  355. package/dist/dashboard/control-csrf.js.map +1 -0
  356. package/dist/dashboard/daemon-reconcile.d.ts +26 -0
  357. package/dist/dashboard/daemon-reconcile.d.ts.map +1 -0
  358. package/dist/dashboard/daemon-reconcile.js +46 -0
  359. package/dist/dashboard/daemon-reconcile.js.map +1 -0
  360. package/dist/dashboard/debug-terminal.d.ts.map +1 -1
  361. package/dist/dashboard/debug-terminal.js +18 -4
  362. package/dist/dashboard/debug-terminal.js.map +1 -1
  363. package/dist/dashboard/events-sse.d.ts +60 -0
  364. package/dist/dashboard/events-sse.d.ts.map +1 -0
  365. package/dist/dashboard/events-sse.js +63 -0
  366. package/dist/dashboard/events-sse.js.map +1 -0
  367. package/dist/dashboard/h5-auth.d.ts +256 -0
  368. package/dist/dashboard/h5-auth.d.ts.map +1 -0
  369. package/dist/dashboard/h5-auth.js +825 -0
  370. package/dist/dashboard/h5-auth.js.map +1 -0
  371. package/dist/dashboard/managed-spawn.d.ts +36 -0
  372. package/dist/dashboard/managed-spawn.d.ts.map +1 -0
  373. package/dist/dashboard/managed-spawn.js +169 -0
  374. package/dist/dashboard/managed-spawn.js.map +1 -0
  375. package/dist/dashboard/preview-content-capability.d.ts +41 -0
  376. package/dist/dashboard/preview-content-capability.d.ts.map +1 -0
  377. package/dist/dashboard/preview-content-capability.js +127 -0
  378. package/dist/dashboard/preview-content-capability.js.map +1 -0
  379. package/dist/dashboard/preview-contract.d.ts +85 -0
  380. package/dist/dashboard/preview-contract.d.ts.map +1 -0
  381. package/dist/dashboard/preview-contract.js +198 -0
  382. package/dist/dashboard/preview-contract.js.map +1 -0
  383. package/dist/dashboard/preview-guard-page.d.ts +52 -0
  384. package/dist/dashboard/preview-guard-page.d.ts.map +1 -0
  385. package/dist/dashboard/preview-guard-page.js +162 -0
  386. package/dist/dashboard/preview-guard-page.js.map +1 -0
  387. package/dist/dashboard/preview-interaction.d.ts +57 -0
  388. package/dist/dashboard/preview-interaction.d.ts.map +1 -0
  389. package/dist/dashboard/preview-interaction.js +198 -0
  390. package/dist/dashboard/preview-interaction.js.map +1 -0
  391. package/dist/dashboard/preview-proxy.d.ts +113 -0
  392. package/dist/dashboard/preview-proxy.d.ts.map +1 -0
  393. package/dist/dashboard/preview-proxy.js +543 -0
  394. package/dist/dashboard/preview-proxy.js.map +1 -0
  395. package/dist/dashboard/public-redact.d.ts +23 -0
  396. package/dist/dashboard/public-redact.d.ts.map +1 -1
  397. package/dist/dashboard/public-redact.js +90 -21
  398. package/dist/dashboard/public-redact.js.map +1 -1
  399. package/dist/dashboard/request-identity.d.ts +77 -0
  400. package/dist/dashboard/request-identity.d.ts.map +1 -0
  401. package/dist/dashboard/request-identity.js +72 -0
  402. package/dist/dashboard/request-identity.js.map +1 -0
  403. package/dist/dashboard/session-cleanup.d.ts +5 -0
  404. package/dist/dashboard/session-cleanup.d.ts.map +1 -1
  405. package/dist/dashboard/session-cleanup.js +4 -0
  406. package/dist/dashboard/session-cleanup.js.map +1 -1
  407. package/dist/dashboard/settings-write-applier.d.ts +5 -1
  408. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  409. package/dist/dashboard/settings-write-applier.js +14 -0
  410. package/dist/dashboard/settings-write-applier.js.map +1 -1
  411. package/dist/dashboard/standing-link.d.ts +76 -0
  412. package/dist/dashboard/standing-link.d.ts.map +1 -0
  413. package/dist/dashboard/standing-link.js +111 -0
  414. package/dist/dashboard/standing-link.js.map +1 -0
  415. package/dist/dashboard/terminal-control.d.ts +105 -0
  416. package/dist/dashboard/terminal-control.d.ts.map +1 -0
  417. package/dist/dashboard/terminal-control.js +296 -0
  418. package/dist/dashboard/terminal-control.js.map +1 -0
  419. package/dist/dashboard/terminal-front-proxy.d.ts +55 -0
  420. package/dist/dashboard/terminal-front-proxy.d.ts.map +1 -0
  421. package/dist/dashboard/terminal-front-proxy.js +397 -0
  422. package/dist/dashboard/terminal-front-proxy.js.map +1 -0
  423. package/dist/dashboard/terminal-view-capability.d.ts +97 -0
  424. package/dist/dashboard/terminal-view-capability.d.ts.map +1 -0
  425. package/dist/dashboard/terminal-view-capability.js +145 -0
  426. package/dist/dashboard/terminal-view-capability.js.map +1 -0
  427. package/dist/dashboard/web/agent-workbench-api.d.ts +59 -0
  428. package/dist/dashboard/web/agent-workbench-api.d.ts.map +1 -0
  429. package/dist/dashboard/web/agent-workbench-api.js +227 -0
  430. package/dist/dashboard/web/agent-workbench-api.js.map +1 -0
  431. package/dist/dashboard/web/agent-workbench-appearance-menu.d.ts +59 -0
  432. package/dist/dashboard/web/agent-workbench-appearance-menu.d.ts.map +1 -0
  433. package/dist/dashboard/web/agent-workbench-appearance-menu.js +195 -0
  434. package/dist/dashboard/web/agent-workbench-appearance-menu.js.map +1 -0
  435. package/dist/dashboard/web/agent-workbench-appearance.d.ts +222 -0
  436. package/dist/dashboard/web/agent-workbench-appearance.d.ts.map +1 -0
  437. package/dist/dashboard/web/agent-workbench-appearance.js +499 -0
  438. package/dist/dashboard/web/agent-workbench-appearance.js.map +1 -0
  439. package/dist/dashboard/web/agent-workbench-capabilities.d.ts +13 -0
  440. package/dist/dashboard/web/agent-workbench-capabilities.d.ts.map +1 -0
  441. package/dist/dashboard/web/agent-workbench-capabilities.js +24 -0
  442. package/dist/dashboard/web/agent-workbench-capabilities.js.map +1 -0
  443. package/dist/dashboard/web/agent-workbench-chat.d.ts +90 -0
  444. package/dist/dashboard/web/agent-workbench-chat.d.ts.map +1 -0
  445. package/dist/dashboard/web/agent-workbench-chat.js +168 -0
  446. package/dist/dashboard/web/agent-workbench-chat.js.map +1 -0
  447. package/dist/dashboard/web/agent-workbench-dock-page.d.ts +3 -0
  448. package/dist/dashboard/web/agent-workbench-dock-page.d.ts.map +1 -0
  449. package/dist/dashboard/web/agent-workbench-dock-page.js +23 -0
  450. package/dist/dashboard/web/agent-workbench-dock-page.js.map +1 -0
  451. package/dist/dashboard/web/agent-workbench-dock-view.d.ts +22 -0
  452. package/dist/dashboard/web/agent-workbench-dock-view.d.ts.map +1 -0
  453. package/dist/dashboard/web/agent-workbench-dock-view.js +76 -0
  454. package/dist/dashboard/web/agent-workbench-dock-view.js.map +1 -0
  455. package/dist/dashboard/web/agent-workbench-model.d.ts +196 -0
  456. package/dist/dashboard/web/agent-workbench-model.d.ts.map +1 -0
  457. package/dist/dashboard/web/agent-workbench-model.js +529 -0
  458. package/dist/dashboard/web/agent-workbench-model.js.map +1 -0
  459. package/dist/dashboard/web/agent-workbench-page.d.ts +3 -0
  460. package/dist/dashboard/web/agent-workbench-page.d.ts.map +1 -0
  461. package/dist/dashboard/web/agent-workbench-page.js +27 -0
  462. package/dist/dashboard/web/agent-workbench-page.js.map +1 -0
  463. package/dist/dashboard/web/agent-workbench-panes.d.ts +49 -0
  464. package/dist/dashboard/web/agent-workbench-panes.d.ts.map +1 -0
  465. package/dist/dashboard/web/agent-workbench-panes.js +468 -0
  466. package/dist/dashboard/web/agent-workbench-panes.js.map +1 -0
  467. package/dist/dashboard/web/agent-workbench-session-list.d.ts +42 -0
  468. package/dist/dashboard/web/agent-workbench-session-list.d.ts.map +1 -0
  469. package/dist/dashboard/web/agent-workbench-session-list.js +353 -0
  470. package/dist/dashboard/web/agent-workbench-session-list.js.map +1 -0
  471. package/dist/dashboard/web/agent-workbench-storage.d.ts +49 -0
  472. package/dist/dashboard/web/agent-workbench-storage.d.ts.map +1 -0
  473. package/dist/dashboard/web/agent-workbench-storage.js +197 -0
  474. package/dist/dashboard/web/agent-workbench-storage.js.map +1 -0
  475. package/dist/dashboard/web/agent-workbench-touch.d.ts +46 -0
  476. package/dist/dashboard/web/agent-workbench-touch.d.ts.map +1 -0
  477. package/dist/dashboard/web/agent-workbench-touch.js +96 -0
  478. package/dist/dashboard/web/agent-workbench-touch.js.map +1 -0
  479. package/dist/dashboard/web/agent-workbench-view.d.ts +34 -0
  480. package/dist/dashboard/web/agent-workbench-view.d.ts.map +1 -0
  481. package/dist/dashboard/web/agent-workbench-view.js +439 -0
  482. package/dist/dashboard/web/agent-workbench-view.js.map +1 -0
  483. package/dist/dashboard/web/app.d.ts.map +1 -1
  484. package/dist/dashboard/web/app.js +63 -2
  485. package/dist/dashboard/web/app.js.map +1 -1
  486. package/dist/dashboard/web/bot-defaults-page.d.ts +18 -0
  487. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  488. package/dist/dashboard/web/bot-defaults-page.js +362 -36
  489. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  490. package/dist/dashboard/web/bot-defaults.d.ts +8 -0
  491. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  492. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  493. package/dist/dashboard/web/control-csrf.d.ts +4 -0
  494. package/dist/dashboard/web/control-csrf.d.ts.map +1 -0
  495. package/dist/dashboard/web/control-csrf.js +26 -0
  496. package/dist/dashboard/web/control-csrf.js.map +1 -0
  497. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
  498. package/dist/dashboard/web/dashboard-routes.js +2 -0
  499. package/dist/dashboard/web/dashboard-routes.js.map +1 -1
  500. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  501. package/dist/dashboard/web/groups-page.js +11 -2
  502. package/dist/dashboard/web/groups-page.js.map +1 -1
  503. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  504. package/dist/dashboard/web/i18n.js +140 -6
  505. package/dist/dashboard/web/i18n.js.map +1 -1
  506. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  507. package/dist/dashboard/web/overview-page.js +3 -2
  508. package/dist/dashboard/web/overview-page.js.map +1 -1
  509. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  510. package/dist/dashboard/web/sessions-page.js +41 -1
  511. package/dist/dashboard/web/sessions-page.js.map +1 -1
  512. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  513. package/dist/dashboard/web/sessions.js +5 -1
  514. package/dist/dashboard/web/sessions.js.map +1 -1
  515. package/dist/dashboard/web/settings-page.d.ts +3 -0
  516. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  517. package/dist/dashboard/web/settings-page.js +56 -10
  518. package/dist/dashboard/web/settings-page.js.map +1 -1
  519. package/dist/dashboard/web/skills-page.d.ts.map +1 -1
  520. package/dist/dashboard/web/skills-page.js +4 -2
  521. package/dist/dashboard/web/skills-page.js.map +1 -1
  522. package/dist/dashboard/web/store.d.ts +27 -2
  523. package/dist/dashboard/web/store.d.ts.map +1 -1
  524. package/dist/dashboard/web/store.js +43 -4
  525. package/dist/dashboard/web/store.js.map +1 -1
  526. package/dist/dashboard/web/ui.d.ts +3 -0
  527. package/dist/dashboard/web/ui.d.ts.map +1 -1
  528. package/dist/dashboard/web/ui.js +11 -0
  529. package/dist/dashboard/web/ui.js.map +1 -1
  530. package/dist/dashboard/web/update-action.d.ts +12 -0
  531. package/dist/dashboard/web/update-action.d.ts.map +1 -1
  532. package/dist/dashboard/web/update-action.js +11 -0
  533. package/dist/dashboard/web/update-action.js.map +1 -1
  534. package/dist/dashboard/workbench-doctor.d.ts +114 -0
  535. package/dist/dashboard/workbench-doctor.d.ts.map +1 -0
  536. package/dist/dashboard/workbench-doctor.js +620 -0
  537. package/dist/dashboard/workbench-doctor.js.map +1 -0
  538. package/dist/dashboard/workbench-ticket.d.ts +165 -0
  539. package/dist/dashboard/workbench-ticket.d.ts.map +1 -0
  540. package/dist/dashboard/workbench-ticket.js +495 -0
  541. package/dist/dashboard/workbench-ticket.js.map +1 -0
  542. package/dist/dashboard-web/app.js +1 -1
  543. package/dist/dashboard-web/chunks/agent-workbench-dock-page-IKAC5CFL.js +1 -0
  544. package/dist/dashboard-web/chunks/agent-workbench-page-M53UN5EB.js +1 -0
  545. package/dist/dashboard-web/chunks/bot-defaults-page-YKE5SDZF.js +10 -0
  546. package/dist/dashboard-web/chunks/chunk-22WIADUT.js +2 -0
  547. package/dist/dashboard-web/chunks/chunk-24ONYQMR.js +1 -0
  548. package/dist/dashboard-web/chunks/{chunk-6O7KXFD2.js → chunk-2W6SCN3M.js} +1 -1
  549. package/dist/dashboard-web/chunks/chunk-4XNJX6B3.js +1 -0
  550. package/dist/dashboard-web/chunks/{chunk-Q2MT4VWH.js → chunk-F6KNPF4R.js} +11 -9
  551. package/dist/dashboard-web/chunks/chunk-FXW3V4JR.js +1 -0
  552. package/dist/dashboard-web/chunks/chunk-G5ZS2YUS.js +1 -0
  553. package/dist/dashboard-web/chunks/chunk-KTQ7B6ZR.js +1 -0
  554. package/dist/dashboard-web/chunks/{chunk-U3ZFSO7E.js → chunk-NACP7BMR.js} +1 -1
  555. package/dist/dashboard-web/chunks/{connectors-page-2KZO5KSJ.js → connectors-page-VOISXXII.js} +1 -1
  556. package/dist/dashboard-web/chunks/{feedback-page-CLVTOLLO.js → feedback-page-RN6HRZMS.js} +1 -1
  557. package/dist/dashboard-web/chunks/groups-page-UQT6DCB7.js +8 -0
  558. package/dist/dashboard-web/chunks/{insights-page-4RPU2CRU.js → insights-page-HJFDYR5N.js} +3 -3
  559. package/dist/dashboard-web/chunks/{monitor-room-OTKQ2CXK.js → monitor-room-V7PCP47V.js} +1 -1
  560. package/dist/dashboard-web/chunks/{monitoring-page-IJPUB6JT.js → monitoring-page-NKEKVQAP.js} +1 -1
  561. package/dist/dashboard-web/chunks/{office-page-QSR3J44Y.js → office-page-GVJF73XW.js} +1 -1
  562. package/dist/dashboard-web/chunks/overview-page-KHLV6VTI.js +1 -0
  563. package/dist/dashboard-web/chunks/{plugin-page-VEGTCEAS.js → plugin-page-J3OF5IY4.js} +1 -1
  564. package/dist/dashboard-web/chunks/{roles-page-6NWJMOB5.js → roles-page-WQIRSOLZ.js} +1 -1
  565. package/dist/dashboard-web/chunks/{schedules-page-6I3LNXD4.js → schedules-page-J2DEY2X6.js} +1 -1
  566. package/dist/dashboard-web/chunks/sessions-page-7BQFEA5P.js +8 -0
  567. package/dist/dashboard-web/chunks/settings-page-BJEIOFJH.js +2 -0
  568. package/dist/dashboard-web/chunks/{skills-page-M2Q6L5CB.js → skills-page-HGIFR3IU.js} +2 -2
  569. package/dist/dashboard-web/chunks/{team-federation-page-7I7FDE3B.js → team-federation-page-MR5ZPL4B.js} +1 -1
  570. package/dist/dashboard-web/chunks/{v3-page-HQXRL65L.js → v3-page-GBR5JWPE.js} +2 -2
  571. package/dist/dashboard-web/chunks/{whiteboards-page-LQKC4TAZ.js → whiteboards-page-QAZM4BN3.js} +1 -1
  572. package/dist/dashboard-web/index.html +8 -1
  573. package/dist/dashboard-web/style.css +2006 -10
  574. package/dist/dashboard.js +1017 -264
  575. package/dist/dashboard.js.map +1 -1
  576. package/dist/dsh-runner.js +8 -1
  577. package/dist/dsh-runner.js.map +1 -1
  578. package/dist/global-config.d.ts +30 -0
  579. package/dist/global-config.d.ts.map +1 -1
  580. package/dist/global-config.js +33 -0
  581. package/dist/global-config.js.map +1 -1
  582. package/dist/i18n/en.d.ts.map +1 -1
  583. package/dist/i18n/en.js +46 -27
  584. package/dist/i18n/en.js.map +1 -1
  585. package/dist/i18n/zh.d.ts.map +1 -1
  586. package/dist/i18n/zh.js +43 -27
  587. package/dist/i18n/zh.js.map +1 -1
  588. package/dist/im/lark/card-builder.d.ts +1 -1
  589. package/dist/im/lark/card-builder.d.ts.map +1 -1
  590. package/dist/im/lark/card-builder.js +22 -6
  591. package/dist/im/lark/card-builder.js.map +1 -1
  592. package/dist/im/lark/card-handler.d.ts.map +1 -1
  593. package/dist/im/lark/card-handler.js +118 -24
  594. package/dist/im/lark/card-handler.js.map +1 -1
  595. package/dist/im/lark/client.d.ts +15 -0
  596. package/dist/im/lark/client.d.ts.map +1 -1
  597. package/dist/im/lark/client.js +30 -0
  598. package/dist/im/lark/client.js.map +1 -1
  599. package/dist/im/lark/event-dispatcher.d.ts +48 -0
  600. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  601. package/dist/im/lark/event-dispatcher.js +138 -41
  602. package/dist/im/lark/event-dispatcher.js.map +1 -1
  603. package/dist/im/lark/identity-cache.d.ts +14 -6
  604. package/dist/im/lark/identity-cache.d.ts.map +1 -1
  605. package/dist/im/lark/identity-cache.js +69 -26
  606. package/dist/im/lark/identity-cache.js.map +1 -1
  607. package/dist/im/lark/lark-hosts.d.ts +13 -0
  608. package/dist/im/lark/lark-hosts.d.ts.map +1 -1
  609. package/dist/im/lark/lark-hosts.js +16 -0
  610. package/dist/im/lark/lark-hosts.js.map +1 -1
  611. package/dist/im/lark/overview-card.d.ts +22 -0
  612. package/dist/im/lark/overview-card.d.ts.map +1 -1
  613. package/dist/im/lark/overview-card.js +53 -3
  614. package/dist/im/lark/overview-card.js.map +1 -1
  615. package/dist/im/lark/sessions-card.d.ts.map +1 -1
  616. package/dist/im/lark/sessions-card.js +26 -3
  617. package/dist/im/lark/sessions-card.js.map +1 -1
  618. package/dist/im/lark/workflow-slash-command.d.ts +6 -0
  619. package/dist/im/lark/workflow-slash-command.d.ts.map +1 -1
  620. package/dist/im/lark/workflow-slash-command.js +7 -0
  621. package/dist/im/lark/workflow-slash-command.js.map +1 -1
  622. package/dist/index-daemon.js +27 -4
  623. package/dist/index-daemon.js.map +1 -1
  624. package/dist/index-dashboard.d.ts +3 -0
  625. package/dist/index-dashboard.d.ts.map +1 -0
  626. package/dist/index-dashboard.js +94 -0
  627. package/dist/index-dashboard.js.map +1 -0
  628. package/dist/platform/team-agents-client.d.ts +199 -0
  629. package/dist/platform/team-agents-client.d.ts.map +1 -0
  630. package/dist/platform/team-agents-client.js +263 -0
  631. package/dist/platform/team-agents-client.js.map +1 -0
  632. package/dist/platform/tunnel-client.d.ts +6 -0
  633. package/dist/platform/tunnel-client.d.ts.map +1 -1
  634. package/dist/platform/tunnel-client.js.map +1 -1
  635. package/dist/services/async-trigger-state.d.ts +7 -3
  636. package/dist/services/async-trigger-state.d.ts.map +1 -1
  637. package/dist/services/async-trigger-state.js +28 -0
  638. package/dist/services/async-trigger-state.js.map +1 -1
  639. package/dist/services/async-trigger-store.d.ts +13 -4
  640. package/dist/services/async-trigger-store.d.ts.map +1 -1
  641. package/dist/services/async-trigger-store.js +55 -8
  642. package/dist/services/async-trigger-store.js.map +1 -1
  643. package/dist/services/bot-config-store.d.ts +1 -11
  644. package/dist/services/bot-config-store.d.ts.map +1 -1
  645. package/dist/services/bot-config-store.js +27 -3
  646. package/dist/services/bot-config-store.js.map +1 -1
  647. package/dist/services/bot-profile-store.d.ts +17 -2
  648. package/dist/services/bot-profile-store.d.ts.map +1 -1
  649. package/dist/services/bot-profile-store.js +93 -12
  650. package/dist/services/bot-profile-store.js.map +1 -1
  651. package/dist/services/bridge-fallback-gate.d.ts +15 -7
  652. package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
  653. package/dist/services/bridge-fallback-gate.js +43 -16
  654. package/dist/services/bridge-fallback-gate.js.map +1 -1
  655. package/dist/services/bridge-turn-queue.d.ts +10 -1
  656. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  657. package/dist/services/bridge-turn-queue.js +29 -9
  658. package/dist/services/bridge-turn-queue.js.map +1 -1
  659. package/dist/services/claude-transcript.d.ts +19 -0
  660. package/dist/services/claude-transcript.d.ts.map +1 -1
  661. package/dist/services/claude-transcript.js +57 -5
  662. package/dist/services/claude-transcript.js.map +1 -1
  663. package/dist/services/codex-app-threads.d.ts +2 -0
  664. package/dist/services/codex-app-threads.d.ts.map +1 -1
  665. package/dist/services/codex-app-threads.js +1 -1
  666. package/dist/services/codex-app-threads.js.map +1 -1
  667. package/dist/services/codex-reasoning-effort.d.ts +8 -0
  668. package/dist/services/codex-reasoning-effort.d.ts.map +1 -1
  669. package/dist/services/codex-reasoning-effort.js +24 -0
  670. package/dist/services/codex-reasoning-effort.js.map +1 -1
  671. package/dist/services/cursor-resume-policy.d.ts.map +1 -1
  672. package/dist/services/cursor-resume-policy.js +15 -3
  673. package/dist/services/cursor-resume-policy.js.map +1 -1
  674. package/dist/services/open-platform-rename.d.ts.map +1 -1
  675. package/dist/services/open-platform-rename.js +3 -2
  676. package/dist/services/open-platform-rename.js.map +1 -1
  677. package/dist/services/ordinary-turn-recovery.d.ts +76 -0
  678. package/dist/services/ordinary-turn-recovery.d.ts.map +1 -0
  679. package/dist/services/ordinary-turn-recovery.js +349 -0
  680. package/dist/services/ordinary-turn-recovery.js.map +1 -0
  681. package/dist/services/peer-cross-ref-store.d.ts +8 -0
  682. package/dist/services/peer-cross-ref-store.d.ts.map +1 -0
  683. package/dist/services/peer-cross-ref-store.js +95 -0
  684. package/dist/services/peer-cross-ref-store.js.map +1 -0
  685. package/dist/services/pi-transcript.d.ts.map +1 -1
  686. package/dist/services/pi-transcript.js +10 -6
  687. package/dist/services/pi-transcript.js.map +1 -1
  688. package/dist/services/resume-fresh-policy.d.ts +17 -0
  689. package/dist/services/resume-fresh-policy.d.ts.map +1 -0
  690. package/dist/services/resume-fresh-policy.js +24 -0
  691. package/dist/services/resume-fresh-policy.js.map +1 -0
  692. package/dist/services/session-group-title.d.ts +1 -0
  693. package/dist/services/session-group-title.d.ts.map +1 -1
  694. package/dist/services/session-group-title.js +16 -1
  695. package/dist/services/session-group-title.js.map +1 -1
  696. package/dist/services/session-groups-store.d.ts +30 -0
  697. package/dist/services/session-groups-store.d.ts.map +1 -1
  698. package/dist/services/session-groups-store.js +26 -4
  699. package/dist/services/session-groups-store.js.map +1 -1
  700. package/dist/services/session-owner-notification.d.ts +9 -0
  701. package/dist/services/session-owner-notification.d.ts.map +1 -0
  702. package/dist/services/session-owner-notification.js +10 -0
  703. package/dist/services/session-owner-notification.js.map +1 -0
  704. package/dist/services/session-owner-reminder-config-store.d.ts +9 -0
  705. package/dist/services/session-owner-reminder-config-store.d.ts.map +1 -0
  706. package/dist/services/session-owner-reminder-config-store.js +24 -0
  707. package/dist/services/session-owner-reminder-config-store.js.map +1 -0
  708. package/dist/services/session-owner-reminder-store.d.ts +5 -0
  709. package/dist/services/session-owner-reminder-store.d.ts.map +1 -0
  710. package/dist/services/session-owner-reminder-store.js +54 -0
  711. package/dist/services/session-owner-reminder-store.js.map +1 -0
  712. package/dist/services/session-store.d.ts +98 -21
  713. package/dist/services/session-store.d.ts.map +1 -1
  714. package/dist/services/session-store.js +406 -48
  715. package/dist/services/session-store.js.map +1 -1
  716. package/dist/services/structured-bridge-clis.d.ts +15 -2
  717. package/dist/services/structured-bridge-clis.d.ts.map +1 -1
  718. package/dist/services/structured-bridge-clis.js +16 -1
  719. package/dist/services/structured-bridge-clis.js.map +1 -1
  720. package/dist/services/transcript-resolver.d.ts +1 -1
  721. package/dist/services/transcript-resolver.d.ts.map +1 -1
  722. package/dist/services/transcript-resolver.js +6 -1
  723. package/dist/services/transcript-resolver.js.map +1 -1
  724. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  725. package/dist/setup/bot-config-editor.js +7 -2
  726. package/dist/setup/bot-config-editor.js.map +1 -1
  727. package/dist/setup/ensure-herdr-integrations.d.ts +13 -0
  728. package/dist/setup/ensure-herdr-integrations.d.ts.map +1 -1
  729. package/dist/setup/ensure-herdr-integrations.js +21 -3
  730. package/dist/setup/ensure-herdr-integrations.js.map +1 -1
  731. package/dist/setup/open-platform-automation.d.ts +1 -0
  732. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  733. package/dist/setup/open-platform-automation.js +107 -7
  734. package/dist/setup/open-platform-automation.js.map +1 -1
  735. package/dist/skills/definitions.d.ts +17 -0
  736. package/dist/skills/definitions.d.ts.map +1 -1
  737. package/dist/skills/definitions.js +78 -8
  738. package/dist/skills/definitions.js.map +1 -1
  739. package/dist/skills/injection-mode.d.ts +24 -3
  740. package/dist/skills/injection-mode.d.ts.map +1 -1
  741. package/dist/skills/injection-mode.js +64 -15
  742. package/dist/skills/injection-mode.js.map +1 -1
  743. package/dist/skills/installer.d.ts +18 -0
  744. package/dist/skills/installer.d.ts.map +1 -1
  745. package/dist/skills/installer.js +45 -1
  746. package/dist/skills/installer.js.map +1 -1
  747. package/dist/types.d.ts +222 -10
  748. package/dist/types.d.ts.map +1 -1
  749. package/dist/utils/bot-routing.d.ts +1 -1
  750. package/dist/utils/bot-routing.d.ts.map +1 -1
  751. package/dist/utils/bot-routing.js.map +1 -1
  752. package/dist/utils/child-env.d.ts +92 -2
  753. package/dist/utils/child-env.d.ts.map +1 -1
  754. package/dist/utils/child-env.js +195 -1
  755. package/dist/utils/child-env.js.map +1 -1
  756. package/dist/utils/cli-usage-limit.d.ts +25 -14
  757. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  758. package/dist/utils/cli-usage-limit.js +25 -15
  759. package/dist/utils/cli-usage-limit.js.map +1 -1
  760. package/dist/utils/daemon-rejection-guard.d.ts +35 -0
  761. package/dist/utils/daemon-rejection-guard.d.ts.map +1 -0
  762. package/dist/utils/daemon-rejection-guard.js +101 -0
  763. package/dist/utils/daemon-rejection-guard.js.map +1 -0
  764. package/dist/utils/dashboard-env.d.ts +53 -0
  765. package/dist/utils/dashboard-env.d.ts.map +1 -0
  766. package/dist/utils/dashboard-env.js +116 -0
  767. package/dist/utils/dashboard-env.js.map +1 -0
  768. package/dist/utils/global-install.d.ts.map +1 -1
  769. package/dist/utils/global-install.js +61 -5
  770. package/dist/utils/global-install.js.map +1 -1
  771. package/dist/utils/install-diagnostics.d.ts +14 -7
  772. package/dist/utils/install-diagnostics.d.ts.map +1 -1
  773. package/dist/utils/install-diagnostics.js +20 -11
  774. package/dist/utils/install-diagnostics.js.map +1 -1
  775. package/dist/utils/local-dev-update.d.ts +132 -0
  776. package/dist/utils/local-dev-update.d.ts.map +1 -0
  777. package/dist/utils/local-dev-update.js +176 -0
  778. package/dist/utils/local-dev-update.js.map +1 -0
  779. package/dist/utils/pending-input-queue.d.ts +12 -1
  780. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  781. package/dist/utils/pending-input-queue.js.map +1 -1
  782. package/dist/worker.js +1517 -236
  783. package/dist/worker.js.map +1 -1
  784. package/dist/workflows/definition.d.ts +68 -68
  785. package/dist/workflows/events/payloads.d.ts +14 -14
  786. package/dist/workflows/events/schema.d.ts +312 -312
  787. package/dist/workflows/migration/v2-run-archive-schema.d.ts +40 -40
  788. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  789. package/dist/workflows/v3/cli-run.js +7 -0
  790. package/dist/workflows/v3/cli-run.js.map +1 -1
  791. package/dist/workflows/v3/goal-cli.d.ts +3 -0
  792. package/dist/workflows/v3/goal-cli.d.ts.map +1 -1
  793. package/dist/workflows/v3/goal-cli.js +11 -0
  794. package/dist/workflows/v3/goal-cli.js.map +1 -1
  795. package/dist/workflows/v3/run-envelope.d.ts +144 -144
  796. package/package.json +7 -2
  797. package/dist/cli/pm2-god-admission.d.ts +0 -8
  798. package/dist/cli/pm2-god-admission.d.ts.map +0 -1
  799. package/dist/cli/pm2-god-admission.js +0 -25
  800. package/dist/cli/pm2-god-admission.js.map +0 -1
  801. package/dist/core/riff-shutdown-detach.d.ts.map +0 -1
  802. package/dist/core/riff-shutdown-detach.js.map +0 -1
  803. package/dist/core/riff-worker-shutdown-readiness.d.ts.map +0 -1
  804. package/dist/core/riff-worker-shutdown-readiness.js.map +0 -1
  805. package/dist/dashboard-web/chunks/bot-defaults-page-4RENHE7J.js +0 -10
  806. package/dist/dashboard-web/chunks/chunk-2WQDS65D.js +0 -1
  807. package/dist/dashboard-web/chunks/chunk-G5XGBCM6.js +0 -1
  808. package/dist/dashboard-web/chunks/chunk-WLIVBPJC.js +0 -1
  809. package/dist/dashboard-web/chunks/groups-page-HLASRTSY.js +0 -8
  810. package/dist/dashboard-web/chunks/overview-page-6OK63V4V.js +0 -1
  811. package/dist/dashboard-web/chunks/sessions-page-B2TXGJDO.js +0 -8
  812. package/dist/dashboard-web/chunks/settings-page-6KJADSC6.js +0 -2
@@ -1 +0,0 @@
1
- {"version":3,"file":"riff-shutdown-detach.d.ts","sourceRoot":"","sources":["../../src/core/riff-shutdown-detach.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"riff-shutdown-detach.js","sourceRoot":"","sources":["../../src/core/riff-shutdown-detach.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"riff-worker-shutdown-readiness.d.ts","sourceRoot":"","sources":["../../src/core/riff-worker-shutdown-readiness.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC9C,4EAA4E;IAC5E,sBAAsB,EAAE,OAAO,CAAC;IAChC;qDACiD;IACjD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,OAAO,CAAC;IAC/B;oDACgD;IAChD,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,kFAAkF;AAClF,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,+BAA+B,GACxC,MAAM,GAAG,IAAI,CAYf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"riff-worker-shutdown-readiness.js","sourceRoot":"","sources":["../../src/core/riff-worker-shutdown-readiness.ts"],"names":[],"mappings":"AAeA,kFAAkF;AAClF,MAAM,UAAU,8BAA8B,CAC5C,QAAyC;IAEzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,sBAAsB;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACvE,IAAI,QAAQ,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,eAAe,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IACrF,IAAI,QAAQ,CAAC,gBAAgB,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClF,IAAI,QAAQ,CAAC,oBAAoB;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,qBAAqB;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpE,IAAI,QAAQ,CAAC,wBAAwB,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC"}
@@ -1,10 +0,0 @@
1
- import{b as Qt}from"./chunk-6O7KXFD2.js";import{c as G}from"./chunk-2WQDS65D.js";import{a as Tt,b as ft,c as kt,g as _t,h as qt,j as Jt,k as Vt,q as It}from"./chunk-5CJMHTT4.js";import{a as Dt}from"./chunk-G5XGBCM6.js";import{A as Gt,B as jt,b as Ut,r as Ft,w as xt,x as bt}from"./chunk-Q2MT4VWH.js";import{a as Ht}from"./chunk-SYC6D5XU.js";import{a as Ce,b as Se,d as Wt}from"./chunk-5THX4DI2.js";import{c as vt}from"./chunk-7SZRL6FY.js";var n=vt(Ce(),1),fe=vt(Se(),1);var zt=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],mt={options:zt,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function Ct(a,e){return typeof a?.cliId=="string"&&a.cliId?a.cliId:e}function Pt(a){let e=null;for(let o of Dt.sessions.values())o.larkAppId!==a||!o.cliId||(!e||Number(o.lastMessageAt??0)>Number(e.lastMessageAt??0))&&(e=o);return e?.cliId??""}function Rt(a,e){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||Ct(a,e)||"claude-code"}function wt(a,e){return a.find(o=>o.id===e)}function Kt(a,e){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?e.ttadkModelSuggestions:[]}function Xt(){let a=0;return{begin(){let e=++a;return{commit:()=>e===a}}}}async function Zt(){try{let a=await fetch("/api/bots"),e=await a.json().catch(()=>({}));if(!a.ok){let o=e?.error?`HTTP ${a.status}: ${e.error}${e.path?` (${e.path})`:""}`:`HTTP ${a.status}`;return{bots:[],error:o}}return!e||!Array.isArray(e.bots)?{bots:[],error:"unexpected response shape (no `bots` array)"}:{bots:e.bots,error:null}}catch(a){return{bots:[],error:a?.message??String(a)}}}async function Yt(a,e){try{let o=await fetch(`/api/bots/${encodeURIComponent(a)}/substitute-targets/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:e})}),u=await o.json().catch(()=>({}));return o.ok?{ok:!0,resolution:u?.resolution??{}}:{ok:!1,error:u?.error?`HTTP ${o.status}: ${u.error}`:`HTTP ${o.status}`}}catch(o){return{ok:!1,error:o?.message??String(o)}}}async function te(){try{let a=await fetch("/api/cli-options"),e=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(e?.options))return mt;let o=e.options.filter(l=>l&&typeof l.id=="string"&&typeof l.label=="string"),u=typeof e.ttadkModelDefault=="string"&&e.ttadkModelDefault.trim()?e.ttadkModelDefault.trim():mt.ttadkModelDefault,i=Array.isArray(e.ttadkModelSuggestions)?e.ttadkModelSuggestions.filter(l=>typeof l=="string"):[];return{options:o.length?o:zt,ttadkModelDefault:u,ttadkModelSuggestions:i}}catch{return mt}}function ee(a){if(!a)return"\u2014";let e=new Date(a);return Number.isNaN(e.getTime())?"\u2014":e.toLocaleString()}var ae=[3600*1e3,480*60*1e3,1440*60*1e3,10080*60*1e3];var Mt=["low","medium","high","xhigh","max","ultra"],Ne=Mt.slice(0,4),xe=new Set(["gpt-5.6-sol","gpt-5.6-terra"]),Te=new Set(["gpt-5.6-luna"]);function oe(a){let e=a?.trim().toLowerCase()??"";return xe.has(e)?Mt:Te.has(e)?Mt.slice(0,5):Ne}var t=vt(Wt(),1);function Bt(a){let e=a.cliRuntime;if(!e||typeof e!="object"){let i=typeof a.cliPathOverride=="string"?a.cliPathOverride.trim():"";return{mode:i?"legacy":"official",id:"",displayName:"",executable:i,legacyPath:i,updateProvider:"auto",packageName:""}}let o=e.update?.provider,u=o==="self"||o==="npm"||o==="none"?o:"auto";return{mode:"custom",id:typeof e.id=="string"?e.id:"",displayName:typeof e.displayName=="string"?e.displayName:"",executable:typeof e.executable=="string"?e.executable:"",legacyPath:"",updateProvider:u,packageName:e.update?.provider==="npm"&&typeof e.update.packageName=="string"?e.update.packageName:""}}var gt=["common","sessions","security","cards","advanced"];function Ie(a){let e=G(),o=(0,n.useRef)([]),u={common:e("botDefaults.tabCommon"),sessions:e("botDefaults.tabSessions"),security:e("botDefaults.tabSecurity"),cards:e("botDefaults.tabCards"),advanced:e("botDefaults.tabAdvanced")};function i(l){let m=(l+gt.length)%gt.length,s=gt[m];a.onChange(s),o.current[m]?.focus()}return(0,t.jsxs)("nav",{className:"bd-tab-bar","aria-label":e("botDefaults.tabNavigation"),children:[(0,t.jsx)("div",{className:"bd-tabs",role:"tablist",children:gt.map((l,m)=>(0,t.jsx)("button",{ref:s=>{o.current[m]=s},id:`bd-tab-${l}`,type:"button",role:"tab",className:`bd-tab${a.active===l?" active":""}`,"aria-selected":a.active===l,"aria-controls":`bd-panel-${l}`,tabIndex:a.active===l?0:-1,"data-bd-tab":l,onClick:()=>a.onChange(l),onKeyDown:s=>{s.key==="ArrowRight"?(s.preventDefault(),i(m+1)):s.key==="ArrowLeft"?(s.preventDefault(),i(m-1)):s.key==="Home"?(s.preventDefault(),i(0)):s.key==="End"&&(s.preventDefault(),i(gt.length-1))},children:u[l]},l))}),(0,t.jsx)("small",{className:"bd-tab-hint",children:e("botDefaults.tabHint")})]})}var Pe=1,ne=14;function yt(a){let e=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let o=e.current;if(!o||typeof window>"u")return;let u=s=>{for(let b of s)b.style.gridColumn="",b.style.gridRowStart="",b.style.gridRowEnd=""},i=()=>{let s=Array.from(o.children).filter(N=>N instanceof HTMLElement);if(!s.length)return;let b=o.clientWidth;if(b<=0)return;let p=(o.closest(".bd-detail")?.clientWidth??b)>=1024?2:1;if(p<2){u(s);return}let d=Pe+ne,g=new Array(p).fill(0);for(let N of s){let D=Math.max(1,Math.ceil((N.getBoundingClientRect().height+ne)/d));if(N.classList.contains("bd-tile-wide")){let C=Math.max(...g);N.style.gridColumn="1 / -1",N.style.gridRowStart=String(C+1),N.style.gridRowEnd=String(C+1+D),g.fill(C+D);continue}let y=0;for(let C=1;C<p;C++)g[C]<g[y]&&(y=C);let v=g[y];N.style.gridColumn=String(y+1),N.style.gridRowStart=String(v+1),N.style.gridRowEnd=String(v+1+D),g[y]=v+D}},l=window.requestAnimationFrame(i),m=typeof ResizeObserver<"u"?new ResizeObserver(()=>i()):null;if(m){m.observe(o);for(let s of Array.from(o.children))m.observe(s)}return window.addEventListener("resize",i),()=>{window.cancelAnimationFrame(l),m?.disconnect(),window.removeEventListener("resize",i)}}),(0,t.jsx)("div",{ref:e,className:a.className?`bd-tab-grid ${a.className}`:"bd-tab-grid",children:a.children})}function Lt(a,e=""){let o=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${e?` ${e}`:""}${o}`}function _(a){return(0,t.jsx)("span",{role:"status","aria-live":"polite",className:Lt(a.status),...a.attr??{},children:a.status?.text??""})}function Re(a){let e=typeof a.children=="string"?a.children:void 0;return(0,t.jsx)(Jt,{className:"bd-info-tip",label:e,children:a.children})}function $(a){return(0,t.jsxs)("span",{className:"bd-field-title",children:[(0,t.jsx)("span",{className:"bd-field-title-text",children:a.children}),a.help?(0,t.jsx)(Re,{children:a.help}):null]})}function et(a){let e=G();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(It,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:Tt(a.options,a.value),value:a.value,options:a.options,searchable:a.searchable,searchPlaceholder:a.searchable?e("common.dropdownSearch"):void 0,searchEmptyLabel:a.searchable?e("common.dropdownSearchEmpty"):void 0,onChange:a.onChange}),(0,t.jsx)("input",{type:"hidden","data-input":a.dataInput,value:a.value,readOnly:!0})]})}function at(a){return(0,t.jsxs)("label",{className:a.className?`toggle-row ${a.className}`:"toggle-row",children:[(0,t.jsx)("input",{type:"checkbox","data-action":a.dataAction,checked:a.checked,disabled:a.disabled,onChange:e=>a.onChange(e.currentTarget.checked)}),(0,t.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,t.jsxs)("span",{className:"toggle-tx",children:[(0,t.jsx)("strong",{children:(0,t.jsx)($,{help:a.help,children:a.title})}),a.description?(0,t.jsx)("small",{children:a.description}):null]})]})}async function q(a,e,o){let u=await fetch(e,{method:a,headers:{"content-type":"application/json"},body:o===void 0?void 0:JSON.stringify(o)}),i=await u.json().catch(()=>({}));return{ok:u.ok&&i?.ok!==!1,status:u.status,body:i}}function j(a){let e=typeof a.body?.reason=="string"?a.body.reason:"",o=typeof a.body?.manualCommand=="string"?a.body.manualCommand:"";return e&&o?`${e}\uFF08${o}\uFF09`:String(e||a.body?.error||a.status)}function E(a){return a?.message??String(a)}function me(a){let e=a.trim();return e?/^[1-9]\d*$/.test(e)?Number(e):"invalid":null}function se(a,e){let o=a.trim();return o===""?e:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var Et=["email","openId","userId","unionId"];function le(a){let e=a.split(/[\r\n,,;;]+/).map(o=>o.trim()).filter(Boolean);return[...new Set(e)]}function ct(a){return(a??[]).join(`
2
- `)}function we(a){return Et.find(e=>a?.[e]?.trim())??"email"}function Me(a){let e=a.idValue.trim();if(!e)return null;let o={...a.persisted};if(a.persisted[a.idField]!==e||a.originalIdField!=null&&a.originalIdField!==a.idField)for(let l of Et)delete o[l];o[a.idField]=e;let i=a.name.trim();return i?o.name=i:delete o.name,o}function Be(a,e){return a==null?e("botDefaults.brandStateDefault"):a.trim()===""?e("botDefaults.brandStateOff"):e("botDefaults.brandStateCustom")}var Ae=ae;function Oe(a,e){return a==null?e("botDefaults.maxLiveWorkersStateDefault"):e("botDefaults.maxLiveWorkersStateOn",{count:a})}function $e(a,e){return{...a,usageDisplay:e.usageDisplay,disableStreamingCard:e.disableStreamingCard,silentTurnReactions:e.silentTurnReactions,codexAppCleanInput:e.codexAppCleanInput,writableTerminalLinkInCard:e.writableTerminalLinkInCard,privateCard:e.privateCard,summaryMemory:e.summaryMemory,summaryMemoryPath:e.summaryMemoryPath,botToBotSameDir:e.botToBotSameDir,autoStartOnGroupJoin:e.autoStartOnGroupJoin,autoStartOnGroupJoinPrompt:e.autoStartOnGroupJoinPrompt,autoStartOnNewTopic:e.autoStartOnNewTopic,regularGroupReplyMode:e.regularGroupReplyMode,regularGroupMentionMode:e.regularGroupMentionMode,docSubscribeDefaultMode:e.docSubscribeDefaultMode}}function Le(){let a=G(),e=(0,n.useRef)(!0),o=(0,n.useRef)(Xt()),[u,i]=(0,n.useState)([]),[l,m]=(0,n.useState)(mt),[s,b]=(0,n.useState)(null),[r,f]=(0,n.useState)(!0),[p,d]=(0,n.useState)(!1),[g,N]=(0,n.useState)(""),[D,y]=(0,n.useState)(null),[v,C]=(0,n.useState)(0),[,h]=(0,n.useState)(0),[x,S]=(0,n.useState)(!1),[c,A]=(0,n.useState)("common"),F=(0,n.useCallback)(async(T=!1)=>{T&&C(Y=>Y+1);let O=o.current.begin();f(!0);try{let[Y,U]=await Promise.all([Zt(),te()]);if(!e.current||!O.commit())return;i(Y.bots),b(Y.error),m(U)}finally{e.current&&O.commit()&&f(!1)}},[]);(0,n.useEffect)(()=>{e.current=!0,F(),jt().then(()=>{e.current&&h(O=>O+1)});let T=Dt.onBotsChanged(()=>{e.current&&F()});return()=>{e.current=!1,T()}},[F]);let H=(0,n.useMemo)(()=>{let T=g.trim().toLowerCase();return u.filter(O=>!T||(O.botName??"").toLowerCase().includes(T)||(O.larkAppId??"").toLowerCase().includes(T))},[u,g]);(0,n.useEffect)(()=>{if(!(s||r)){if(H.length===0){D!==null&&y(null);return}(!D||!H.some(T=>T.larkAppId===D))&&y(H[0].larkAppId)}},[H,s,r,D]);let w=D?H.find(T=>T.larkAppId===D)??null:null,z=(0,n.useCallback)((T,O)=>{i(Y=>Y.map(U=>U.larkAppId!==T?U:typeof O=="function"?O(U):{...U,...O}))},[]),Q=async()=>{d(!0);try{await F(!0)}finally{e.current&&d(!1)}},Z;return r?Z=(0,t.jsx)(kt,{label:a("common.loading")}):s?Z=(0,t.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",s,(0,t.jsx)("br",{}),"\u5E38\u89C1\u539F\u56E0\uFF1Adashboard / daemon \u8FDB\u7A0B\u8FD8\u5728\u8DD1\u65E7\u4EE3\u7801\uFF0C\u6267\u884C ",(0,t.jsx)("code",{children:"botmux restart"})," \u540E\u5237\u65B0\u3002"]}):H.length===0?Z=(0,t.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):w?Z=(0,t.jsx)(Ue,{bot:w,cliState:l,patchBot:z,activeTab:c,onTabChange:A},`${w.larkAppId}:${v}`):Z=null,(0,t.jsxs)("section",{className:"page bot-defaults-page",children:[(0,t.jsxs)("div",{className:"page-heading",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"eyebrow",children:a("nav.botDefaults")}),(0,t.jsx)("h1",{children:a("botDefaults.title")})]}),(0,t.jsxs)("div",{className:"page-heading-actions",children:[(0,t.jsx)(qt,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:p,disabled:p,onClick:()=>{Q()}}),Ft.authed?(0,t.jsx)(_t,{className:"page-primary-action add-bot-btn",disabled:x,onClick:()=>{S(!0),Qt().finally(()=>S(!1))},children:a("botOnboarding.add")}):null]})]}),(0,t.jsxs)("div",{className:"bd-layout",children:[(0,t.jsxs)("aside",{id:"bd-roster",className:"bd-roster",children:[(0,t.jsx)("form",{id:"bd-filters",className:"filters dashboard-toolbar",onSubmit:T=>T.preventDefault(),children:(0,t.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:g,onChange:T=>N(T.currentTarget.value)})}),(0,t.jsxs)("div",{className:"bd-roster-meta",children:[(0,t.jsx)("span",{children:a("botDefaults.rosterCount",{count:H.length})}),g.trim()&&H.length!==u.length?(0,t.jsx)("span",{children:a("botDefaults.rosterFiltered",{total:u.length})}):null]}),(0,t.jsx)("div",{className:"bd-roster-list",children:!s&&H.map(T=>(0,t.jsx)(Ee,{bot:T,selected:T.larkAppId===D,onSelect:()=>y(T.larkAppId)},T.larkAppId))})]}),(0,t.jsx)("div",{id:"bd-list",className:"bd-detail",children:Z})]})]})}function Ee(a){let{bot:e}=a,o=e.botName??e.larkAppId,u=Ct(e,Pt(e.larkAppId));return(0,t.jsxs)("div",{className:`bd-roster-item${a.selected?" on":""}`,"data-appid":e.larkAppId,role:"button",tabIndex:0,onClick:a.onSelect,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),a.onSelect())},children:[(0,t.jsx)(ft,{html:bt({name:o,larkAppId:e.larkAppId,size:"sm"})}),(0,t.jsxs)("div",{className:"bd-roster-tx",children:[(0,t.jsx)("b",{children:(0,t.jsx)(Vt,{text:o,showPopover:!1,textClassName:"bd-roster-name"})}),(0,t.jsx)("span",{children:u||e.larkAppId.slice(0,14)})]}),e.defaultOncall?.enabled?(0,t.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function Ue(a){let e=G(),{bot:o,cliState:u,patchBot:i}=a,l=o.botName??o.larkAppId,m=Ct(o,Pt(o.larkAppId)),s=(0,n.useCallback)(async r=>{let f=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/card-prefs`,r);return f.ok&&i(o.larkAppId,p=>$e(p,f.body)),f},[o.larkAppId,i]);if(o.error)return(0,t.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,t.jsxs)("header",{className:"bd-profile-head",children:[(0,t.jsx)(ft,{html:bt({name:l,larkAppId:o.larkAppId})}),(0,t.jsxs)("div",{className:"bd-profile-id",children:[(0,t.jsx)("strong",{children:l}),(0,t.jsx)("code",{children:o.larkAppId})]})]}),(0,t.jsxs)("p",{className:"hint-warn-inline",children:["\u67E5\u8BE2\u5931\u8D25\uFF1A",o.error]})]});let b=o.defaultOncall??{enabled:!1,workingDir:"",since:0};return(0,t.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,t.jsxs)("div",{className:"bd-profile-chrome",children:[(0,t.jsxs)("header",{className:"bd-profile-head",children:[(0,t.jsx)(He,{bot:o,name:l,patchBot:i}),(0,t.jsx)("div",{className:"bd-profile-main",children:(0,t.jsx)(We,{bot:o,cli:m,patchBot:i,meta:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("small",{className:"bd-meta-ok",children:["\u25CF ",e("botDefaults.metaOnline")]}),(b.since??0)>0?(0,t.jsxs)("small",{"data-oncall-since":!0,children:[e("botDefaults.lastEnabled"),": ",ee(b.since??0)]}):null,(o.autoboundChatCount??0)>0?(0,t.jsx)("small",{children:e("botDefaults.autobound",{count:o.autoboundChatCount??0})}):null]})})})]}),(0,t.jsx)(Ie,{active:a.activeTab,onChange:a.onTabChange})]}),(0,t.jsxs)("div",{className:"bd-body bd-tab-panels",children:[(0,t.jsx)("div",{id:"bd-panel-common",role:"tabpanel","aria-labelledby":"bd-tab-common",className:"bd-tab-panel",hidden:a.activeTab!=="common",children:(0,t.jsxs)(yt,{children:[(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(_e,{bot:o,sessionFallback:m,cliState:u,patchBot:i})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(qe,{bot:o,patchBot:i,putCardPref:s})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Ye,{bot:o,patchBot:i})})]})}),(0,t.jsx)("div",{id:"bd-panel-sessions",role:"tabpanel","aria-labelledby":"bd-tab-sessions",className:"bd-tab-panel",hidden:a.activeTab!=="sessions",children:(0,t.jsxs)(yt,{children:[(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(la,{bot:o,patchBot:i,putCardPref:s})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(ia,{bot:o,patchBot:i})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(na,{bot:o,putCardPref:s})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(ua,{bot:o,patchBot:i})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(da,{bot:o,patchBot:i})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(sa,{bot:o,patchBot:i,putCardPref:s})})]})}),(0,t.jsx)("div",{id:"bd-panel-security",role:"tabpanel","aria-labelledby":"bd-tab-security",className:"bd-tab-panel",hidden:a.activeTab!=="security",children:(0,t.jsxs)(yt,{children:[o.cliId!=="riff"?(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Ve,{bot:o,patchBot:i})}):null,o.cliId!=="riff"&&o.sandbox===!0?(0,t.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,t.jsx)(Ke,{bot:o,patchBot:i})}):null,(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(va,{bot:o,patchBot:i})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(ca,{bot:o,patchBot:i})})]})}),(0,t.jsx)("div",{id:"bd-panel-cards",role:"tabpanel","aria-labelledby":"bd-tab-cards",className:"bd-tab-panel",hidden:a.activeTab!=="cards",children:(0,t.jsxs)(yt,{children:[(0,t.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,t.jsx)(ea,{bot:o,putCardPref:s})}),(0,t.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,t.jsx)(Fe,{bot:o,patchBot:i})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(ha,{bot:o,patchBot:i})})]})}),(0,t.jsx)("div",{id:"bd-panel-advanced",role:"tabpanel","aria-labelledby":"bd-tab-advanced",className:"bd-tab-panel",hidden:a.activeTab!=="advanced",children:(0,t.jsxs)(yt,{children:[o.cliId!=="riff"?(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Ze,{bot:o,patchBot:i})}):null,o.cliId==="codex-app"?(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(aa,{bot:o,putCardPref:s})}):null,o.cliId==="claude-code"?(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(oa,{bot:o,patchBot:i})}):null,(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Ge,{bot:o,patchBot:i})})]})})]})]})}function Fe(a){let e=a.bot.feedback?.enabled===!0,[o,u]=(0,n.useState)(e),[i,l]=(0,n.useState)(JSON.stringify(a.bot.feedback??{enabled:!0},null,2)),[m,s]=(0,n.useState)(null),[b,r]=(0,n.useState)(!1),[f,p]=(0,n.useState)(""),[d,g]=(0,n.useState)([]),[N,D]=(0,n.useState)(null);(0,n.useEffect)(()=>{u(a.bot.feedback?.enabled===!0),l(JSON.stringify(a.bot.feedback??{enabled:!0},null,2))},[a.bot.feedback]),(0,n.useEffect)(()=>{Ut().then(h=>{g(h.chats.filter(x=>x.memberBots.some(S=>S.larkAppId===a.bot.larkAppId&&S.inChat)))}).catch(()=>g([]))},[a.bot.larkAppId]);async function y(h=o){r(!0),s(null);try{let x={enabled:!1};if(h){let c=JSON.parse(i);if(!c||typeof c!="object"||Array.isArray(c))throw new Error("\u9AD8\u7EA7 JSON \u5FC5\u987B\u662F\u5BF9\u8C61");x={...c,enabled:!0}}let S=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/feedback`,{feedback:JSON.stringify(x)});if(!S.ok)throw new Error(j(S));a.patchBot(a.bot.larkAppId,{feedback:S.body.feedback??null}),s({text:"\u2713 \u5DF2\u4FDD\u5B58",ok:!0})}catch(x){s({text:`\u2717 ${E(x)}`})}finally{r(!1)}}async function v(){let h=f.trim()?`?chatId=${encodeURIComponent(f.trim())}`:"",x=await fetch(`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/feedback/effective${h}`),S=await x.json().catch(()=>({}));if(!x.ok)throw new Error(S?.error??`HTTP ${x.status}`);D(S.trace)}async function C(){if(!f.trim())return s({text:"\u2717 \u8BF7\u8F93\u5165\u804A\u5929 ID"});r(!0),s(null);try{let h=JSON.parse(i),x=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/chats/${encodeURIComponent(f.trim())}/feedback`,{feedback:h});if(!x.ok)throw new Error(j(x));await v(),s({text:"\u2713 \u804A\u5929\u8986\u76D6\u5DF2\u4FDD\u5B58",ok:!0})}catch(h){s({text:`\u2717 ${E(h)}`})}finally{r(!1)}}return(0,t.jsxs)("section",{className:"bd-section","aria-busy":b,children:[(0,t.jsx)("h3",{className:"bd-section-title",children:"\u6700\u7EC8\u56DE\u7B54\u53CD\u9988"}),(0,t.jsx)(at,{checked:o,disabled:b,title:"\u6700\u7EC8\u56DE\u7B54\u53CD\u9988",help:"\u9ED8\u8BA4\u5173\u95ED\uFF1B\u53EA\u5BF9\u8FD9\u4E2A bot \u7684\u6700\u7EC8\u56DE\u7B54\u751F\u6548",onChange:h=>{u(h),y(h)}}),(0,t.jsxs)("label",{className:"bd-row",children:[(0,t.jsx)("span",{children:"\u9AD8\u7EA7 JSON"}),(0,t.jsx)("textarea",{value:i,disabled:b||!o,rows:10,onChange:h=>l(h.target.value)})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary",disabled:b||!o,onClick:()=>{y()},children:"\u4FDD\u5B58\u53CD\u9988\u914D\u7F6E"}),(0,t.jsx)(_,{status:m})]}),(0,t.jsx)("h4",{children:"\u6BCF\u804A\u5929\u8986\u76D6"}),(0,t.jsxs)("label",{className:"bd-row",children:[(0,t.jsx)("span",{children:"\u804A\u5929"}),(0,t.jsxs)("select",{value:f,onChange:h=>p(h.target.value),children:[(0,t.jsx)("option",{value:"",children:"\u9009\u62E9\u804A\u5929"}),d.map(h=>(0,t.jsx)("option",{value:h.chatId,children:h.name||h.chatId},h.chatId))]})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",disabled:b||!f.trim(),onClick:()=>{C()},children:"\u4FDD\u5B58\u804A\u5929\u8986\u76D6"}),(0,t.jsx)("button",{type:"button",disabled:b,onClick:()=>{v()},children:"\u751F\u6548\u9884\u89C8"})]}),N?(0,t.jsx)("pre",{className:"code-block",children:JSON.stringify(N,null,2)}):null]})}function Ge(a){let e=G();return(0,t.jsxs)("section",{className:"bd-section bd-runtime-env",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionRuntimeEnv")}),(0,t.jsx)(ba,{bot:a.bot,patchBot:a.patchBot}),(0,t.jsx)(fa,{bot:a.bot,patchBot:a.patchBot})]})}var St=512;async function je(a){let e=await createImageBitmap(a);try{let o=Math.min(e.width,e.height);if(!o)throw new Error("empty image");let u=document.createElement("canvas");u.width=St,u.height=St;let i=u.getContext("2d");if(!i)throw new Error("canvas unavailable");let l=(e.width-o)/2,m=(e.height-o)/2;return i.drawImage(e,l,m,o,o,0,0,St,St),u.toDataURL("image/png")}finally{e.close()}}function He(a){let e=G(),{bot:o,name:u,patchBot:i}=a,l=(0,n.useRef)(null),[m,s]=(0,n.useState)(!1),[b,r]=(0,n.useState)(null),[f,p]=(0,n.useState)(!1),[d,g]=(0,n.useState)(!1),N=(0,n.useRef)(null);function D(C,h){let S=["no_session","session_expired","no_access","unsupported_brand"].includes(C)?e(`botDefaults.avatarWarn.${C}`):h||C;return e("botDefaults.avatarFailed",{error:S})}let y=(0,n.useCallback)(async C=>{s(!0),r({text:`\u23F3 ${e("botDefaults.avatarUploading")}`,ok:!0});try{let h=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/avatar`,{imageBase64:C});if(h.ok&&h.body.ok){let x=typeof h.body.avatarUrl=="string"?h.body.avatarUrl:"";x&&Gt(o.larkAppId,u,x),i(o.larkAppId,S=>({...S})),N.current=null,p(!1),r({text:`\u2713 ${e("botDefaults.avatarOkFeishu")}`,ok:!0})}else{let x=String(h.body?.error??""),S=typeof h.body?.message=="string"?h.body.message:void 0;r({text:`\u2717 ${D(x,S??j(h))}`});let c=x==="no_session"||x==="session_expired";p(c),c||(N.current=null)}}catch(h){r({text:`\u2717 ${e("botDefaults.avatarFailed",{error:E(h)})}`})}finally{s(!1)}},[o.larkAppId,u,i,e]);async function v(C){if(!C||m)return;s(!0);let h;try{h=await je(C)}catch{s(!1),r({text:`\u2717 ${e("botDefaults.avatarBadImage")}`});return}N.current=h,await y(h)}return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"bd-profile-avatar bd-avatar-editable","data-avatar-control":!0,children:[(0,t.jsxs)("button",{type:"button",className:"bd-avatar-btn","data-action":"edit-bot-avatar",title:e("botDefaults.avatarTitle"),"aria-label":e("botDefaults.avatarTitle"),disabled:m,onClick:()=>l.current?.click(),children:[(0,t.jsx)(ft,{html:bt({name:u,larkAppId:o.larkAppId,dot:"ok"})}),(0,t.jsx)("span",{className:"bd-avatar-edit-badge","aria-hidden":"true",children:m?"\u23F3":"\u270E"})]}),(0,t.jsx)("input",{ref:l,type:"file",accept:"image/*",hidden:!0,"data-input":"botAvatarFile",onChange:C=>{let h=C.currentTarget.files?.[0];C.currentTarget.value="",v(h)}}),d?(0,t.jsx)(pe,{onClose:()=>g(!1),onSuccess:()=>{p(!1),g(!1),N.current&&y(N.current)}}):null]}),b?(0,t.jsxs)("small",{className:Lt(b,"bd-avatar-status"),"data-avatar-status":!0,children:[b.text,f?(0,t.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-avatar",onClick:()=>g(!0),children:e("feishuLogin.entry")}):null]}):null]})}function We(a){let e=G(),{bot:o,cli:u,patchBot:i}=a,l=o.botName??o.larkAppId,[m,s]=(0,n.useState)(!1),[b,r]=(0,n.useState)(l),[f,p]=(0,n.useState)(!1),[d,g]=(0,n.useState)(null),[N,D]=(0,n.useState)(!1),[y,v]=(0,n.useState)(!1);(0,n.useEffect)(()=>{m||r(l)},[m,l]);function C(S){s(S),S&&(r(l),g(null),D(!1))}function h(S,c){let F=["no_session","session_expired","no_access","unsupported_brand"].includes(S)?e(`botDefaults.renameWarn.${S}`):c||S;return e("botDefaults.renameLocalOnly",{reason:F})}let x=(0,n.useCallback)(async()=>{let S=b.trim();if(!S){g({text:`\u2717 ${e("botDefaults.renameEmpty")}`});return}p(!0),g({text:`\u23F3 ${e("botDefaults.renaming")}`,ok:!0});try{let c=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/rename`,{name:S});if(c.ok&&c.body.ok){let A=typeof c.body.botName=="string"&&c.body.botName?c.body.botName:S;i(o.larkAppId,F=>({...F,botName:A,larkBotName:c.body.mode==="feishu"?S:F.larkBotName,displayName:c.body.mode==="feishu"?null:S})),C(!1),c.body.mode==="feishu"?(g({text:`\u2713 ${e("botDefaults.renameOkFeishu")}`,ok:!0}),D(!1)):(g({text:`\u26A0 ${h(String(c.body.warning??""),c.body.message)}`}),D(c.body.warning==="no_session"||c.body.warning==="session_expired"))}else g({text:`\u2717 ${e("botDefaults.renameFailed",{error:j(c)})}`})}catch(c){g({text:`\u2717 ${e("botDefaults.renameFailed",{error:E(c)})}`})}finally{p(!1)}},[o.larkAppId,b,i,e]);return(0,t.jsxs)("div",{className:"bd-profile-id",children:[m?(0,t.jsxs)("span",{className:"bd-name-editor","data-name-editor":!0,children:[(0,t.jsx)("input",{type:"text",className:"bd-name-input","data-input":"botRename",maxLength:64,value:b,disabled:f,autoFocus:!0,onChange:S=>r(S.currentTarget.value),onKeyDown:S=>{S.key==="Enter"?(S.preventDefault(),x()):S.key==="Escape"&&C(!1)}}),(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:f,onClick:()=>{x()},children:e("botDefaults.renameSave")}),(0,t.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:f,onClick:()=>C(!1),children:e("botDefaults.renameCancel")})]}):(0,t.jsxs)("div",{className:"bd-profile-title-row","data-name-row":!0,children:[(0,t.jsxs)("div",{className:"bd-profile-title-content",children:[(0,t.jsx)("strong",{"data-bot-name":!0,children:l}),u?(0,t.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:u}):null,a.meta?(0,t.jsx)("span",{className:"bd-profile-meta bd-meta",children:a.meta}):null]}),(0,t.jsx)("button",{type:"button",className:"bd-name-edit","data-action":"edit-bot-name",title:e("botDefaults.renameTitle"),"aria-label":e("botDefaults.renameTitle"),onClick:()=>C(!0),children:(0,t.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,t.jsx)("path",{d:"M11.5 2.5l2 2L6 12l-2.5.5L4 10z"})})})]}),(0,t.jsxs)("div",{className:"bd-profile-appid-row",children:[(0,t.jsx)("code",{children:o.larkAppId}),xt(o.larkAppId,o.brand)?(0,t.jsxs)("a",{className:"bd-console-link",href:xt(o.larkAppId,o.brand),target:"_blank",rel:"noopener noreferrer",children:[e("botDefaults.openConsole"),(0,t.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,t.jsx)("path",{d:"M7 17 17 7M9 7h8v8"})})]}):null]}),(0,t.jsx)("small",{className:Lt(d,"bd-name-status"),"data-name-status":!0,children:d?.text??""}),(0,t.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login",hidden:!N,onClick:()=>v(!0),children:e("feishuLogin.entry")}),y?(0,t.jsx)(pe,{onClose:()=>v(!1),onSuccess:()=>{D(!1),v(!1),x()}}):null]})}function pe(a){let e=G(),{onClose:o,onSuccess:u}=a,i=(0,n.useRef)(null),l=(0,n.useRef)(null),[m,s]=(0,n.useState)(e("feishuLogin.starting")),[b,r]=(0,n.useState)(null),[f,p]=(0,n.useState)(!1),d=(0,n.useCallback)(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]),g=(0,n.useCallback)(y=>y?y.status==="awaiting_scan"&&y.qrDataUrl?(r(y.qrDataUrl),s(y.message||e("feishuLogin.scanHint")),p(!1),"active"):y.status==="starting"?(s(y.message||e("feishuLogin.starting")),r(null),p(!1),"active"):y.status==="success"?(d(),r(null),p(!1),s(e("feishuLogin.success")),l.current=window.setTimeout(()=>u(),900),"done"):(d(),r(null),s(e("feishuLogin.failed",{reason:y.message||y.reason||""})),p(!0),"done"):"active",[u,d,e]),N=(0,n.useCallback)(async()=>{try{let v=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));g(v.login)}catch{}},[g]),D=(0,n.useCallback)(async()=>{d(),s(e("feishuLogin.starting")),r(null),p(!1);let y="active";try{let C=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));y=g(C.login)}catch(v){s(e("feishuLogin.failed",{reason:E(v)})),p(!0);return}y==="active"&&i.current===null&&(i.current=window.setInterval(()=>{N()},1500))},[N,g,d,e]);return(0,n.useEffect)(()=>(D(),()=>{d(),l.current!==null&&window.clearTimeout(l.current)}),[D,d]),typeof document>"u"?null:(0,fe.createPortal)((0,t.jsx)("div",{className:"feishu-login-overlay",onClick:y=>{y.currentTarget===y.target&&o()},children:(0,t.jsxs)("div",{className:"feishu-login-modal",role:"dialog","aria-modal":"true",children:[(0,t.jsx)("button",{type:"button",className:"feishu-login-close","data-close":!0,"aria-label":e("feishuLogin.close"),onClick:o,children:"x"}),(0,t.jsx)("h3",{className:"feishu-login-title",children:e("feishuLogin.title")}),(0,t.jsx)("p",{className:"feishu-login-hint","data-hint":!0,children:m}),(0,t.jsx)("div",{className:"feishu-login-qr","data-qr":!0,children:b?(0,t.jsx)("img",{className:"qr-image",src:b,alt:e("feishuLogin.qrAlt")}):null}),(0,t.jsx)("div",{className:"feishu-login-actions",children:(0,t.jsx)("button",{type:"button",className:"primary","data-retry":!0,hidden:!f,onClick:()=>{D()},children:e("feishuLogin.retry")})})]})}),document.body)}function _e(a){let e=G(),{bot:o,cliState:u,patchBot:i}=a,l=Rt(o,a.sessionFallback),m=JSON.stringify([o.cliRuntime??null,o.cliPathOverride??null]),[s,b]=(0,n.useState)(l),[r,f]=(0,n.useState)(!1),[p,d]=(0,n.useState)(typeof o.model=="string"?o.model:""),[g,N]=(0,n.useState)(o.reasoningEffort??""),[D,y]=(0,n.useState)(()=>Bt(o)),[v,C]=(0,n.useState)(!1),[h,x]=(0,n.useState)(null),[S,c]=(0,n.useState)(null),[A,F]=(0,n.useState)(!1),[H,w]=(0,n.useState)(ie(o)),[z,Q]=(0,n.useState)(null),[Z,T]=(0,n.useState)(!1);(0,n.useEffect)(()=>{b(Rt(o,a.sessionFallback)),f(!1),d(typeof o.model=="string"?o.model:""),N(o.reasoningEffort??""),y(Bt(o)),C(!1),w(ie(o))},[o.agentSelectionKey,o.cliId,o.larkAppId,o.model,o.reasoningEffort,m,o.wrapperCli,o.skillInjection,o.skillInjectionDefault,a.sessionFallback]);let O=wt(u.options,s),Y=Kt(O,u),U=O?.gateway==="ttadk"&&O.acceptsModel===!1,M=U?e("botOnboarding.modelTtadkCocoPlaceholder"):O?.gateway==="ttadk"?e("botOnboarding.modelTtadkPlaceholder").replace("{model}",u.ttadkModelDefault):e("botDefaults.agentModelPlaceholder");function k(I){let X=s;b(I),f(!0),I!==X&&(I!=="codex"||X!=="codex")&&(y(Bt({cliRuntime:null,cliPathOverride:null})),C(!0),x(null));let W=wt(u.options,I),rt=W?.gateway==="ttadk",lt=rt&&W.acceptsModel!==!1;d(rt&&!lt?"":lt?st=>st.trim()?st:u.ttadkModelDefault:st=>st.trim()===u.ttadkModelDefault?"":st)}function P(I){y(X=>({...X,mode:I})),C(!0),x(null),c(null)}function R(I){y(X=>({...X,...I})),C(!0),x(null),c(null)}async function B(){c(null),x(null);let I;if(v&&(I=null),v&&s==="codex"&&D.mode==="custom"){let X=D.id.trim(),W=D.executable.trim(),rt=D.displayName.trim(),lt=D.packageName.trim();if(!X||!W){let st=e("botDefaults.runtimeRequired");c({text:st}),x({text:st});return}if(D.updateProvider==="npm"&&!lt){let st=e("botDefaults.runtimePackageRequired");c({text:st}),x({text:st});return}I={id:X,...rt?{displayName:rt}:{},executable:W,update:D.updateProvider==="npm"?{provider:"npm",packageName:lt}:{provider:D.updateProvider}}}F(!0);try{let X={cliId:s,model:p,reasoningEffort:s==="codex"||s==="codex-app"||s.endsWith("-codex")?g:"",...v?{cliRuntime:I}:{}},W=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,X);if(W.ok&&W.body.ok){let rt=Number.isInteger(W.body.closedMismatchedSessions)&&W.body.closedMismatchedSessions>0?W.body.closedMismatchedSessions:0,lt=rt>0?e("botDefaults.agentClosedCount",{count:rt}):"";if(c(W.body.availabilityWarning?{text:`\u26A0\uFE0F ${W.body.availabilityWarning}${lt?` \xB7 ${lt}`:""}`}:{text:`\u2713 ${lt||e("botDefaults.agentSaved")}`,ok:!0}),i(o.larkAppId,{cliId:W.body.cliId,cliRuntime:W.body.cliRuntime===void 0?v?I??null:o.cliRuntime??null:W.body.cliRuntime,cliPathOverride:W.body.cliPathOverride===void 0?v?null:o.cliPathOverride??null:W.body.cliPathOverride,wrapperCli:W.body.wrapperCli??null,model:W.body.model??"",reasoningEffort:W.body.reasoningEffort??void 0,agentSelectionKey:W.body.selectionKey??s}),C(!1),I){let st=W.body.runtimeProbe;st&&typeof st.version=="string"?x({text:e("botDefaults.runtimeProbeOk",{version:st.version,provider:typeof st.updateProvider=="string"?st.updateProvider:D.updateProvider}),ok:!0}):x({text:e("botDefaults.runtimeProbeMissing")})}}else{let lt=`\u2717 ${typeof W.body?.message=="string"&&W.body.message?W.body.message:j(W)}`;c({text:lt}),s==="codex"&&D.mode==="custom"&&x({text:lt})}}catch(X){let W=`\u2717 ${E(X)}`;c({text:W}),s==="codex"&&D.mode==="custom"&&x({text:W})}finally{F(!1)}}async function L(){if(o.cliId==="riff")return!0;try{let I=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:"riff",model:""});return I.ok&&I.body.ok?(i(o.larkAppId,{cliId:I.body.cliId,cliRuntime:I.body.cliRuntime??null,wrapperCli:I.body.wrapperCli??null,model:I.body.model??"",agentSelectionKey:I.body.selectionKey??"riff"}),!0):(c({text:`\u2717 ${j(I)}`}),!1)}catch(I){return c({text:`\u2717 ${E(I)}`}),!1}}async function J(I){w(I),Q(null),T(!0);try{let X=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/skill-injection`,{skillInjection:I});X.ok&&X.body.ok?(Q({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}),i(o.larkAppId,{skillInjection:X.body.skillInjection??null})):Q({text:`\u2717 ${j(X)}`})}catch(X){Q({text:`\u2717 ${E(X)}`})}finally{T(!1)}}let nt=o.skillInjectionSupport==="dynamic"?"dynamic":o.skillInjectionSupport==="global"?"global":"none",V=s==="riff",K=s==="codex"||s==="codex-app"||s.endsWith("-codex"),ot=(0,n.useMemo)(()=>oe(p),[p]);(0,n.useEffect)(()=>{g&&!ot.includes(g)&&N("")},[g,ot]);let tt=s==="codex"&&(!o.wrapperCli||r),it=tt&&D.mode!=="official",he=[...u.options].sort((I,X)=>I.label.localeCompare(X.label,"en",{sensitivity:"base"})).map(I=>({value:I.id,label:I.available===!1&&!(I.id==="codex"&&it)?e("botDefaults.agentMissingOption",{label:I.label,command:I.command??I.id}):`${I.label}\uFF08${I.id}\uFF09`})),ve=[{value:"dynamic",label:e("botDefaults.skillInjectionDynamic")}],De=[{value:"dynamic",label:e("botDefaults.skillInjectionDynamicUnsupported"),disabled:!0},{value:"prompt",label:e("botDefaults.skillInjectionPrompt")},{value:"global",label:e("botDefaults.skillInjectionGlobal")},{value:"off",label:e("botDefaults.skillInjectionOff")}],ke=[{value:"auto",label:e("botDefaults.runtimeProviderAuto")},{value:"self",label:e("botDefaults.runtimeProviderSelf")},{value:"npm",label:e("botDefaults.runtimeProviderNpm")},{value:"none",label:e("botDefaults.runtimeProviderNone")}];return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionAgent")}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)("span",{children:e("botDefaults.agentCli")}),(0,t.jsx)(et,{dataInput:"agentCliId",ariaLabel:e("botDefaults.agentCli"),value:s,disabled:A,options:he,searchable:!0,onChange:k}),O?.available===!1&&!it?(0,t.jsx)("small",{className:"hint-warn",children:e("botDefaults.agentMissingHint",{command:O.command??s})}):null]})}),tt?(0,t.jsxs)("div",{className:"bd-codex-runtime","data-codex-runtime":"",children:[(0,t.jsx)("div",{className:"bd-runtime-heading",children:(0,t.jsx)($,{help:e("botDefaults.runtimeHelp"),children:e("botDefaults.runtimeTitle")})}),(0,t.jsxs)("div",{className:"bd-runtime-mode",role:"group","aria-label":e("botDefaults.runtimeTitle"),children:[(0,t.jsx)("button",{type:"button","data-action":"runtime-official","aria-pressed":D.mode==="official",disabled:A,onClick:()=>P("official"),children:e("botDefaults.runtimeOfficial")}),(0,t.jsx)("button",{type:"button","data-action":"runtime-custom","aria-pressed":D.mode==="custom",disabled:A,onClick:()=>P("custom"),children:e("botDefaults.runtimeCustom")})]}),(0,t.jsx)("input",{type:"hidden","data-input":"agentRuntimeMode",value:D.mode,readOnly:!0}),(0,t.jsx)("p",{className:"bd-runtime-note",children:e(D.mode==="official"?"botDefaults.runtimeOfficialNote":D.mode==="legacy"?"botDefaults.runtimeLegacyNote":"botDefaults.runtimeCustomNote")}),D.mode==="legacy"?(0,t.jsx)("div",{className:"bd-runtime-fields","data-runtime-legacy":"",children:(0,t.jsxs)("label",{className:"bd-runtime-wide",children:[(0,t.jsx)("span",{children:e("botDefaults.runtimeLegacyPath")}),(0,t.jsx)("input",{type:"text",value:D.legacyPath,readOnly:!0,"aria-readonly":"true","data-input":"agentRuntimeLegacyPath"})]})}):null,D.mode==="custom"?(0,t.jsxs)("div",{className:"bd-runtime-fields",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)($,{help:e("botDefaults.runtimeIdHelp"),children:e("botDefaults.runtimeId")}),(0,t.jsx)("input",{type:"text","data-input":"agentRuntimeId",value:D.id,disabled:A,autoComplete:"off",onChange:I=>R({id:I.currentTarget.value})})]}),(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.runtimeDisplayName")}),(0,t.jsx)("input",{type:"text","data-input":"agentRuntimeDisplayName",placeholder:e("botDefaults.runtimeDisplayNamePlaceholder"),value:D.displayName,disabled:A,autoComplete:"off",onChange:I=>R({displayName:I.currentTarget.value})})]}),(0,t.jsxs)("label",{className:"bd-runtime-wide",children:[(0,t.jsx)($,{help:e("botDefaults.runtimeExecutableHelp"),children:e("botDefaults.runtimeExecutable")}),(0,t.jsx)("input",{type:"text","data-input":"agentRuntimeExecutable",value:D.executable,disabled:A,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:I=>R({executable:I.currentTarget.value})})]}),(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)("span",{children:e("botDefaults.runtimeUpdateProvider")}),(0,t.jsx)(et,{dataInput:"agentRuntimeUpdateProvider",ariaLabel:e("botDefaults.runtimeUpdateProvider"),value:D.updateProvider,disabled:A,options:ke,onChange:I=>R({updateProvider:I})})]}),D.updateProvider==="npm"?(0,t.jsxs)("label",{children:[(0,t.jsx)($,{help:e("botDefaults.runtimePackageHelp"),children:e("botDefaults.runtimePackageName")}),(0,t.jsx)("input",{type:"text","data-input":"agentRuntimePackageName",value:D.packageName,disabled:A,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:I=>R({packageName:I.currentTarget.value})})]}):null]}):null,(0,t.jsx)(_,{status:h,attr:{"data-runtime-status":""}})]}):null,!V&&(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)($,{help:e("botDefaults.agentHelp"),children:e("botDefaults.agentModel")}),(0,t.jsx)("input",{type:"text","data-input":"agentModel",list:`agent-model-suggestions-${o.larkAppId}`,placeholder:M,value:p,disabled:A||U,onChange:I=>d(I.currentTarget.value)}),(0,t.jsx)("datalist",{id:`agent-model-suggestions-${o.larkAppId}`,children:Y.map(I=>(0,t.jsx)("option",{value:I},I))})]})}),K&&(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.agentReasoningEffortHelp"),children:e("botDefaults.agentReasoningEffort")}),(0,t.jsx)(et,{dataInput:"agentReasoningEffort",ariaLabel:e("botDefaults.agentReasoningEffort"),value:g,disabled:A,options:[{value:"",label:e("botDefaults.agentReasoningEffortDefault")},...ot.map(I=>({value:I,label:e(`botDefaults.agentReasoningEffort${I==="xhigh"?"Xhigh":I[0].toUpperCase()+I.slice(1)}`)}))],onChange:I=>N(I)})]})}),V&&(0,t.jsx)(ya,{bot:o,patchBot:i,persistCliSelection:L}),!V&&nt==="dynamic"?(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.skillInjectionHelpDynamic"),children:e("botDefaults.skillInjection")}),(0,t.jsx)(et,{dataInput:"skillInjection",ariaLabel:e("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:ve,onChange:()=>{}})]})}):!V&&nt==="global"?(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.skillInjectionHelp"),children:e("botDefaults.skillInjection")}),(0,t.jsx)(et,{dataInput:"skillInjection",ariaLabel:e("botDefaults.skillInjection"),value:H,disabled:Z,options:De,onChange:I=>{J(I)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:z,attr:{"data-skill-injection-status":""}})})]}):null,!V&&(0,t.jsxs)("div",{className:"actions bd-section-actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:A,onClick:()=>{B()},children:e("botDefaults.agentSave")}),(0,t.jsx)(_,{status:S,attr:{"data-agent-status":""}})]})]})}function ie(a){let e=a.skillInjection==="global"||a.skillInjection==="prompt"||a.skillInjection==="off"?a.skillInjection:"",o=a.skillInjectionDefault==="global"||a.skillInjectionDefault==="off"?a.skillInjectionDefault:"prompt";return e||o}function qe(a){let e=G(),{bot:o,patchBot:u}=a,i=re(o),[l,m]=(0,n.useState)(i.mode),[s,b]=(0,n.useState)(i.workingDir),[r,f]=(0,n.useState)(o.defaultWorkingDirAutoWorktree===!0),[p,d]=(0,n.useState)(null),[g,N]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let v=re(o);m(v.mode),b(v.workingDir),f(o.defaultWorkingDirAutoWorktree===!0)},[o.defaultOncall?.enabled,o.defaultOncall?.workingDir,o.defaultWorkingDir,o.defaultWorkingDirAutoWorktree]);async function D(){d(null);let v=s.trim();if(l!=="off"&&!v){d({text:e("botDefaults.required")});return}let C=l==="default"&&r;N(!0);try{let h=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/working-dir-mode`,{mode:l,workingDir:v,autoWorktree:C});if(h.ok&&h.body.ok){let x=h.body.resolvedPath?` \u2192 ${h.body.resolvedPath}`:"";d({text:`\u2713 ${e("botDefaults.workingDirSaved")}${x}`,ok:!0}),u(o.larkAppId,{defaultOncall:h.body.defaultOncall??o.defaultOncall,defaultWorkingDir:h.body.defaultWorkingDir??null,defaultWorkingDirAutoWorktree:h.body.defaultWorkingDirAutoWorktree===!0})}else d({text:`\u2717 ${j(h)}`})}catch(h){d({text:`\u2717 ${E(h)}`})}finally{N(!1)}}let y=[{value:"off",label:e("botDefaults.workingDirModeOff")},{value:"default",label:e("botDefaults.workingDirModeDefault")},{value:"oncall",label:e("botDefaults.workingDirModeOncall")}];return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionWorkingDir")}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.workingDirModeHelp"),children:e("botDefaults.workingDirMode")}),(0,t.jsx)(et,{dataInput:"workingDirMode",ariaLabel:e("botDefaults.workingDirMode"),value:l,disabled:g,options:y,onChange:v=>m(v)})]})}),(0,t.jsx)("div",{className:"bd-row","data-wd-dir-row":!0,hidden:l==="off",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.workingDirField")}),(0,t.jsx)("input",{type:"text","data-input":"workingDir",placeholder:"e.g. /root/iserver/botmux",value:s,disabled:g,onChange:v=>b(v.currentTarget.value)})]})}),(0,t.jsxs)("label",{className:"toggle-row","data-wd-worktree-row":!0,hidden:l!=="default",children:[(0,t.jsx)("input",{type:"checkbox","data-input":"autoWorktree",checked:r,disabled:g,onChange:v=>f(v.currentTarget.checked)}),(0,t.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,t.jsx)("span",{className:"toggle-tx",children:(0,t.jsx)("strong",{children:(0,t.jsx)($,{help:e("botDefaults.autoWorktreeHelp"),children:e("botDefaults.autoWorktree")})})})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-working-dir",disabled:g,onClick:()=>{D()},children:e("botDefaults.save")}),(0,t.jsx)(_,{status:p,attr:{"data-status":""}})]}),(0,t.jsx)(Je,{bot:o,putCardPref:a.putCardPref})]})}function re(a){let e=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:e.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||e.workingDir||""}}function Je(a){let e=G(),{bot:o,putCardPref:u}=a,[i,l]=(0,n.useState)(o.autoStartOnGroupJoin===!0),[m,s]=(0,n.useState)(o.autoStartOnNewTopic===!0),[b,r]=(0,n.useState)(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:""),[f,p]=(0,n.useState)(null),[d,g]=(0,n.useState)(null);(0,n.useEffect)(()=>{l(o.autoStartOnGroupJoin===!0),s(o.autoStartOnNewTopic===!0),r(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:"")},[o.autoStartOnGroupJoin,o.autoStartOnGroupJoinPrompt,o.autoStartOnNewTopic]);async function N(D,y){g(y),p(null);try{let v=await u(D);p(v.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${j(v)}`})}catch(v){p({text:`\u2717 ${E(v)}`})}finally{g(null)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:e("botDefaults.sectionAutoStart")}),(0,t.jsx)(at,{checked:i,disabled:d==="join",dataAction:"toggle-auto-join",title:e("botDefaults.autoStartJoin"),help:e("botDefaults.autoStartJoinHelp"),onChange:D=>{l(D),N({autoStartOnGroupJoin:D},"join")}}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.autoStartJoinPrompt")}),(0,t.jsx)("textarea",{"data-input":"autoJoinPrompt",rows:3,placeholder:e("botDefaults.autoStartJoinPromptPlaceholder"),value:b,onChange:D=>r(D.currentTarget.value)})]})}),(0,t.jsx)(at,{checked:m,disabled:d==="topic",dataAction:"toggle-auto-topic",title:e("botDefaults.autoStartTopic"),help:e("botDefaults.autoStartTopicHelp"),onChange:D=>{s(D),N({autoStartOnNewTopic:D},"topic")}}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-auto-join-prompt",disabled:d==="prompt",onClick:()=>{N({autoStartOnGroupJoinPrompt:b},"prompt")},children:e("botDefaults.autoStartJoinPromptSave")}),(0,t.jsx)(_,{status:f,attr:{"data-auto-start-status":""}})]})]})}function Ve(a){let e=G(),{bot:o,patchBot:u}=a,[i,l]=(0,n.useState)(o.sandbox===!0),[m,s]=(0,n.useState)(null),[b,r]=(0,n.useState)(!1);(0,n.useEffect)(()=>l(o.sandbox===!0),[o.sandbox]);async function f(d){l(d),s(null),r(!0);try{let g=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox`,{enabled:d});g.ok&&g.body.ok?(s({text:`\u2713 ${e("botDefaults.sandboxSaved")}`,ok:!0}),u(o.larkAppId,{sandbox:g.body.sandbox===!0})):(s({text:`\u2717 ${j(g)}`}),l(!d))}catch(g){s({text:`\u2717 ${E(g)}`}),l(!d)}finally{r(!1)}}let p=o.readIsolationSupported===!0;return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSandbox")}),(0,t.jsx)(at,{checked:i,disabled:b,dataAction:"toggle-sandbox",title:e("botDefaults.sandboxToggle"),help:e("botDefaults.sandboxHelp"),onChange:d=>{f(d)}}),(0,t.jsx)("p",{className:"bd-section-note","data-read-iso-capability":p?"yes":"no",children:p?`\uFF0B ${e("botDefaults.sandboxReadIsoOn")}`:e("botDefaults.sandboxReadIsoOff")}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:m,attr:{"data-sandbox-status":""}})})]})}var ue={readWrite:0,readOnly:1,deny:2};function de(a,e,o){let u=f=>f==="~"||f.startsWith("~/")?o.replace(/\/+$/,"")+f.slice(1):f,i=f=>u(f).replace(/\/+$/,"")||"/",l=i(e),m=(f,p)=>{let d=i(f),g=i(p);return d===g||g.startsWith(d==="/"?"/":d+"/")},s=f=>i(f)==="/"?0:i(f).split("/").filter(Boolean).length,b,r=(f,p)=>{if(!m(p,l))return;let d=s(p);(!b||d>b.ruleDepth||d===b.ruleDepth&&ue[f]>ue[b.access])&&(b={access:f,ruleDepth:d,rule:p})};for(let f of a.readWrite)r("readWrite",f);for(let f of a.readOnly)r("readOnly",f);for(let f of a.deny)r("deny",f);return b?{access:b.access,rule:b.rule}:{access:"none"}}function ge(){return{readWrite:[],readOnly:[],deny:[]}}function ht(a){return a?{readWrite:[...a.readWrite??[]],readOnly:[...a.readOnly??[]],deny:[...a.deny??[]]}:ge()}function Qe(a,e){let o=u=>[...u].sort().join(`
3
- `);return o(a.readWrite)===o(e.readWrite)&&o(a.readOnly)===o(e.readOnly)&&o(a.deny)===o(e.deny)}function At(a){let e=[];for(let o of a.readWrite)e.push(`rw ${o}`);for(let o of a.readOnly)e.push(`ro ${o}`);for(let o of a.deny)e.push(`deny ${o}`);return e.join(`
4
- `)}function ze(a){let e=ge();for(let o of a.split(`
5
- `)){let u=o.trim();if(!u||u.startsWith("#"))continue;let i=/^(\S+)\s+(.+)$/.exec(u);if(!i)continue;let l=i[1].toLowerCase(),m=i[2].trim();l==="rw"||l==="readwrite"||l==="rw:"?e.readWrite.push(m):l==="ro"||l==="readonly"||l==="ro:"?e.readOnly.push(m):(l==="deny"||l==="-"||l==="deny:")&&e.deny.push(m)}return e}function Ke(a){let e=G(),{bot:o,patchBot:u}=a,[i,l]=(0,n.useState)(()=>ht(o.sandboxPaths)),[m,s]=(0,n.useState)(()=>At(ht(o.sandboxPaths))),[b,r]=(0,n.useState)(!1),[f,p]=(0,n.useState)(null),[d,g]=(0,n.useState)(!1),[N,D]=(0,n.useState)(""),[y,v]=(0,n.useState)({}),[C,h]=(0,n.useState)(new Set),[x,S]=(0,n.useState)([]),[c,A]=(0,n.useState)("~"),F=(0,n.useMemo)(()=>ht(o.sandboxPaths),[o.sandboxPaths]);(0,n.useEffect)(()=>{l(ht(o.sandboxPaths)),s(At(ht(o.sandboxPaths)))},[o.sandboxPaths]);let H=!Qe(i,F),w=(0,n.useCallback)(async M=>{try{let k=M?`?path=${encodeURIComponent(M)}`:"",R=await(await fetch(`/api/fs/list${k}`)).json();if(!R.ok)return;M?v(B=>({...B,[M]:R.entries.map(L=>({name:L.name,path:L.path}))})):(S(R.entries.map(B=>({name:B.name,path:B.path}))),typeof R.home=="string"&&R.home.startsWith("/")&&A(R.home))}catch{}},[]);(0,n.useEffect)(()=>{!b&&x.length===0&&w("")},[b,x.length,w]);let z=(0,n.useCallback)(M=>{let k=M.replace(/\/+$/,"")||"/";if(i.readWrite.some(P=>(P.replace(/\/+$/,"")||"/")===k))return"readWrite";if(i.readOnly.some(P=>(P.replace(/\/+$/,"")||"/")===k))return"readOnly";if(i.deny.some(P=>(P.replace(/\/+$/,"")||"/")===k))return"deny"},[i]),Q=(0,n.useCallback)(M=>{p(null);let k=M.replace(/\/+$/,"")||"/",P=z(M),R=P===void 0?"readWrite":P==="readWrite"?"readOnly":P==="readOnly"?"deny":void 0;l(B=>{let L=nt=>nt.filter(V=>(V.replace(/\/+$/,"")||"/")!==k),J={readWrite:L(B.readWrite),readOnly:L(B.readOnly),deny:L(B.deny)};return R&&J[R].push(M),s(At(J)),J})},[z]);function Z(M){s(M),l(ze(M)),p(null)}async function T(){g(!0),p(null);try{let M=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox-paths`,i);M.ok&&M.body.ok?(p({text:`\u2713 ${e("botDefaults.sbxPathsSaved")}`,ok:!0}),u(o.larkAppId,{sandboxPaths:M.body.sandboxPaths??{readWrite:[],readOnly:[],deny:[]}})):p({text:`\u2717 ${j(M)}`})}catch(M){p({text:`\u2717 ${E(M)}`})}finally{g(!1)}}let O=M=>e(M==="readWrite"?"botDefaults.sbxRw":M==="readOnly"?"botDefaults.sbxRo":M==="deny"?"botDefaults.sbxDeny":"botDefaults.sbxNone");function Y(M){let{name:k,path:P,depth:R}=M,B=C.has(P),L=z(P),J=de(i,P,c),nt=y[P];return(0,t.jsxs)("div",{className:"bd-sbx-node",children:[(0,t.jsxs)("div",{className:"bd-sbx-row",style:{paddingLeft:R*16},children:[(0,t.jsx)("span",{className:"bd-sbx-twisty",onClick:()=>{h(V=>{let K=new Set(V);return K.has(P)?K.delete(P):K.add(P),K}),nt||w(P)},children:B?"\u25BE":"\u25B8"}),(0,t.jsx)("span",{className:"bd-sbx-name",title:P,children:k}),(0,t.jsx)("button",{type:"button",className:`bd-sbx-state bd-sbx-state-${L??"inherit"}`,"data-action":"cycle-sandbox-path","data-path":P,title:L?void 0:`${e("botDefaults.sbxInherit")}: ${O(J.access)}`,onClick:()=>Q(P),children:L?O(L):`\u21B3 ${O(J.access)}`})]}),B&&(0,t.jsxs)("div",{className:"bd-sbx-kids",children:[nt?.map(V=>(0,t.jsx)(Y,{name:V.name,path:V.path,depth:R+1},V.path)),nt&&nt.length===0&&(0,t.jsx)("div",{className:"bd-sbx-empty",style:{paddingLeft:(R+1)*16+20},children:e("botDefaults.sbxNoSubdirs")})]})]})}let U=N.trim()?de(i,N.trim(),c):null;return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSandboxPaths")}),(0,t.jsx)("p",{className:"bd-section-note",children:e("botDefaults.sbxPathsHelp")}),(0,t.jsx)("div",{className:"actions",style:{gap:8,flexWrap:"wrap"},children:(0,t.jsx)("button",{type:"button",className:"bd-btn",onClick:()=>r(M=>!M),children:e(b?"botDefaults.sbxPathsTreeMode":"botDefaults.sbxPathsTextMode")})}),b?(0,t.jsx)("textarea",{className:"bd-sbx-text","data-field":"sandbox-paths-text",rows:8,value:m,spellCheck:!1,placeholder:`rw ~/my-data
6
- ro ~/reference-repos
7
- deny ~/my-data/secrets`,onChange:M=>Z(M.target.value)}):(0,t.jsx)("div",{className:"bd-sbx-tree","data-field":"sandbox-paths-tree",children:x.map(M=>(0,t.jsx)(Y,{name:M.name,path:M.path,depth:0},M.path))}),(0,t.jsxs)("div",{className:"bd-sbx-tester",children:[(0,t.jsx)("input",{className:"bd-sbx-test-input","data-field":"sandbox-path-test",placeholder:e("botDefaults.sbxTestPlaceholder"),value:N,onChange:M=>D(M.target.value)}),U&&(0,t.jsxs)("span",{className:`bd-sbx-test-out bd-sbx-state-${U.access}`,"data-test-access":U.access,children:[O(U.access),U.rule?` \u2190 ${U.rule}`:""]})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"bd-btn bd-btn-primary","data-action":"save-sandbox-paths",disabled:d||!H,onClick:()=>{T()},children:e("botDefaults.sbxPathsSave")}),(0,t.jsx)(_,{status:f,attr:{"data-sandbox-paths-status":""}})]})]})}var Xe=[{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 Ze(a){let e=G(),{bot:o,patchBot:u}=a,[i,l]=(0,n.useState)(typeof o.backendType=="string"?o.backendType:""),[m,s]=(0,n.useState)(null),[b,r]=(0,n.useState)(!1);(0,n.useEffect)(()=>l(typeof o.backendType=="string"?o.backendType:""),[o.backendType]);let f=(0,n.useMemo)(()=>Xe.map(d=>({value:d.value,label:e(d.labelKey)})),[e]);async function p(d){let g=i;l(d),s(null),r(!0);try{let N=await q("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/backend-type`,{backendType:d});N.ok&&N.body.ok?(s({text:`\u2713 ${e("botDefaults.backendSaved")}`,ok:!0}),u(o.larkAppId,{backendType:typeof N.body.backendType=="string"?N.body.backendType:null})):(s({text:`\u2717 ${j(N)}`}),l(g))}catch(N){s({text:`\u2717 ${E(N)}`}),l(g)}finally{r(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionBackend")}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.backendHelp"),children:e("botDefaults.backendLabel")}),(0,t.jsx)(et,{dataInput:"backendType",ariaLabel:e("botDefaults.backendLabel"),value:i,disabled:b,options:f,onChange:d=>{p(d)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:m,attr:{"data-backend-status":""}})})]})]})}function Ye(a){let e=G(),{bot:o,patchBot:u}=a,[i,l]=(0,n.useState)(typeof o.teamRole=="string"),[m,s]=(0,n.useState)(typeof o.teamRole=="string"?o.teamRole:""),[b,r]=(0,n.useState)("every"),[f,p]=(0,n.useState)(null),[d,g]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let y=!0,v=`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`;return typeof o.teamRole=="string"?(l(!0),s(o.teamRole),()=>{y=!1}):(p(null),l(!1),s(""),(async()=>{try{let C=await fetch(v),h=await C.json().catch(()=>({}));if(!y)return;if(C.ok&&h.ok){let x=h.role??"";s(x),r(h.injectMode==="once"?"once":"every"),l(!0),u(o.larkAppId,{teamRole:x})}else p({text:`\u2717 ${e("botDefaults.roleLoadErr")}: ${h.error??C.status}`})}catch(C){y&&p({text:`\u2717 ${e("botDefaults.roleLoadErr")}: ${E(C)}`})}})(),()=>{y=!1})},[o.larkAppId,o.teamRole,u,e]),(0,n.useEffect)(()=>{let y=!0;return typeof o.teamRole!="string"?()=>{y=!1}:((async()=>{try{let v=await fetch(`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`),C=await v.json().catch(()=>({}));y&&v.ok&&C.ok&&r(C.injectMode==="once"?"once":"every")}catch{}})(),()=>{y=!1})},[o.larkAppId]);async function N(y,v,C=b){if(i){p(null),g(!0);try{let h=await q("PUT",`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`,{role:y,injectMode:C});if(h.ok&&h.body.ok){let x=y.trim();s(x),(h.body.injectMode==="once"||h.body.injectMode==="every")&&r(h.body.injectMode),u(o.larkAppId,{teamRole:x}),p({text:`\u2713 ${e(v?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else p({text:`\u2717 ${j(h)}`})}catch(h){p({text:`\u2717 ${E(h)}`})}finally{g(!1)}}}let D=[{value:"every",label:e("roles.injectModeEvery")},{value:"once",label:e("roles.injectModeOnce")}];return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)($,{help:e("botDefaults.roleHelp"),children:e("botDefaults.sectionRole")})}),(0,t.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:e("botDefaults.rolePlaceholder"),disabled:!i||d,value:m,onChange:y=>s(y.currentTarget.value)}),(0,t.jsxs)("div",{className:"bd-role-inject",children:[(0,t.jsx)("span",{className:"bd-subsection-title",children:(0,t.jsx)($,{help:e("roles.injectModeHint"),children:e("roles.injectModeLabel")})}),(0,t.jsx)(It,{id:`bd-role-inject-${o.larkAppId}`,className:"bd-role-inject-menu",ariaLabel:e("roles.injectModeLabel"),disabled:!i||d,label:Tt(D,b),value:b,options:D,onChange:y=>{let v=y==="once"?"once":"every";r(v),N(m,m.trim()==="",v)}})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!i||d,onClick:()=>{N(m,m.trim()==="")},children:e("botDefaults.roleSave")}),(0,t.jsx)(_,{status:f,attr:{"data-role-status":""}})]}),(0,t.jsx)(ta,{appId:o.larkAppId})]})}function ta(a){let e=G(),[o,u]=(0,n.useState)({loaded:!1,loading:!0,items:[]});(0,n.useEffect)(()=>{let m=!0;return u({loaded:!1,loading:!0,items:[]}),(async()=>{try{let s=await fetch("/api/role-profiles"),b=await s.json().catch(()=>({}));if(!m)return;if(!s.ok)throw new Error(b?.error??String(s.status));let f=(Array.isArray(b.profiles)?b.profiles:[]).filter(p=>(p.botEntries??[]).some(d=>d?.larkAppId===a.appId&&d?.hasEntry)).map(p=>({profileId:String(p.profileId)}));u({loaded:!0,loading:!1,items:f})}catch(s){m&&u({loaded:!0,loading:!1,error:E(s),items:[]})}})(),()=>{m=!1}},[a.appId]);async function i(m){let s=o.items.find(b=>b.profileId===m);if(!(!s||s.loaded||s.loading)){u(b=>({...b,items:b.items.map(r=>r.profileId===m?{...r,loading:!0}:r)}));try{let b=await fetch(`/api/role-profiles/${encodeURIComponent(m)}/${encodeURIComponent(a.appId)}`),r=await b.json().catch(()=>({}));if(!b.ok)throw new Error(r?.error??String(b.status));u(f=>({...f,items:f.items.map(p=>p.profileId===m?{...p,loading:!1,loaded:!0,content:r?.hasEntry?String(r.content??""):""}:p)}))}catch(b){u(r=>({...r,items:r.items.map(f=>f.profileId===m?{...f,loading:!1,error:E(b)}:f)}))}}}let l;return o.loading?l=(0,t.jsx)(kt,{label:e("common.loading"),compact:!0}):o.error?l=(0,t.jsx)("p",{className:"hint-warn-inline",children:e("botDefaults.profileRolesLoadFailed",{error:o.error})}):o.items.length===0?l=(0,t.jsx)("p",{className:"empty",children:e("botDefaults.profileRolesEmpty")}):l=o.items.map(m=>(0,t.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":m.profileId,onToggle:s=>{s.currentTarget.open&&i(m.profileId)},children:[(0,t.jsx)("summary",{children:(0,t.jsx)("span",{className:"bd-profile-role-id",children:m.profileId})}),(0,t.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":m.profileId,children:m.loading?(0,t.jsx)(kt,{label:e("common.loading"),compact:!0}):m.error?(0,t.jsx)("p",{className:"hint-warn-inline",children:e("botDefaults.profileRoleDetailLoadFailed",{error:m.error})}):m.loaded?(0,t.jsx)("pre",{children:m.content??""}):(0,t.jsx)("p",{className:"empty",children:e("botDefaults.profileRoleClickToLoad")})})]},m.profileId)),(0,t.jsxs)("div",{className:"bd-profile-roles","data-profile-roles":!0,children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)($,{help:e("botDefaults.profileRolesHelp"),children:e("botDefaults.profileRoles")})}),(0,t.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:l})]})}function ea(a){let e=G(),{bot:o,putCardPref:u}=a,[i,l]=(0,n.useState)(o.usageDisplay??"streaming"),[m,s]=(0,n.useState)(o.disableStreamingCard===!0),[b,r]=(0,n.useState)(o.silentTurnReactions===!0),[f,p]=(0,n.useState)(o.writableTerminalLinkInCard===!0),[d,g]=(0,n.useState)(o.privateCard===!0),[N,D]=(0,n.useState)(null),[y,v]=(0,n.useState)(null);(0,n.useEffect)(()=>{l(o.usageDisplay??"streaming"),s(o.disableStreamingCard===!0),r(o.silentTurnReactions===!0),p(o.writableTerminalLinkInCard===!0),g(o.privateCard===!0)},[o.disableStreamingCard,o.privateCard,o.usageDisplay,o.silentTurnReactions,o.writableTerminalLinkInCard]);async function C(x,S,c){v(S),D(null);try{let A=await u(x);A.ok?D({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}):(c?.(),D({text:`\u2717 ${j(A)}`}))}catch(A){c?.(),D({text:`\u2717 ${E(A)}`})}finally{v(null)}}let h=[{value:"streaming",label:e("botDefaults.usageDisplayStreaming")},{value:"footer",label:e("botDefaults.usageDisplayFooter")},{value:"off",label:e("botDefaults.usageDisplayOff")}];return(0,t.jsxs)("section",{className:"bd-section","aria-busy":y!==null,children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionCard")}),(0,t.jsxs)("div",{className:"bd-card-settings",children:[(0,t.jsxs)("section",{className:"bd-card-setting-group","data-card-feedback-group":!0,children:[(0,t.jsx)("h4",{className:"bd-card-setting-heading",children:e("botDefaults.cardFeedbackGroup")}),(0,t.jsx)(at,{className:"bd-card-primary-toggle",checked:!m,disabled:y!==null,dataAction:"toggle-disable-streaming",title:e("botDefaults.autoStreaming"),description:e("botDefaults.autoStreamingDescription"),help:e("botDefaults.autoStreamingHelp"),onChange:x=>{let S=m,c=!x;s(c),C({disableStreamingCard:c},"streaming",()=>s(S))}}),(0,t.jsxs)("div",{className:"bd-card-dependent","data-card-off-options":!0,hidden:!m,children:[(0,t.jsx)(at,{checked:!b,disabled:y!==null,dataAction:"toggle-silent-reactions",title:e("botDefaults.silentTurnReactions"),description:e("botDefaults.silentTurnReactionsDescription"),help:e("botDefaults.silentTurnReactionsHelp"),onChange:x=>{let S=b,c=!x;r(c),C({silentTurnReactions:c},"silent",()=>r(S))}}),(0,t.jsx)("p",{role:"status","data-card-pref-moot":!0,className:"bd-card-mode-note",children:e("botDefaults.manualCardHint")})]})]}),(0,t.jsxs)("section",{className:"bd-card-setting-group","data-card-content-group":!0,children:[(0,t.jsx)("h4",{className:"bd-card-setting-heading",children:e("botDefaults.cardContentGroup")}),o.usageSupported===!0&&(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.usageDisplayHelp"),children:e("botDefaults.usageDisplay")}),(0,t.jsx)(et,{dataInput:"usageDisplay",ariaLabel:e("botDefaults.usageDisplay"),value:i,disabled:y!==null,options:h,onChange:x=>{let S=i;l(x),C({usageDisplay:x},"usage",()=>l(S))}})]})}),(0,t.jsx)("div",{className:"bd-card-control-list",children:(0,t.jsx)(at,{checked:f,disabled:y!==null,dataAction:"toggle-writable-link",title:e("botDefaults.writableLink"),description:e("botDefaults.writableLinkDescription"),help:e("botDefaults.writableLinkHelp"),onChange:x=>{let S=f;p(x),C({writableTerminalLinkInCard:x},"writable",()=>p(S))}})})]}),(0,t.jsxs)("section",{className:"bd-card-setting-group","data-card-manual-group":!0,children:[(0,t.jsx)("h4",{className:"bd-card-setting-heading",children:e("botDefaults.cardManualGroup")}),(0,t.jsx)("p",{className:"bd-card-setting-copy",children:e("botDefaults.manualCardIntro")}),(0,t.jsx)("div",{className:"bd-card-control-list",children:(0,t.jsx)(at,{checked:d,disabled:y!==null,dataAction:"toggle-private-card",title:e("botDefaults.privateCard"),description:e("botDefaults.privateCardDescription"),help:e("botDefaults.privateCardHelp"),onChange:x=>{let S=d;g(x),C({privateCard:x},"private",()=>g(S))}})})]})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:N,attr:{"data-card-pref-status":""}})})]})}function aa(a){let e=G(),[o,u]=(0,n.useState)(a.bot.codexAppCleanInput===!0),[i,l]=(0,n.useState)(null),[m,s]=(0,n.useState)(!1);(0,n.useEffect)(()=>u(a.bot.codexAppCleanInput===!0),[a.bot.codexAppCleanInput]);async function b(r){let f=o;u(r),s(!0),l(null);try{let p=await a.putCardPref({codexAppCleanInput:r});p.ok?l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}):(u(f),l({text:`\u2717 ${j(p)}`}))}catch(p){u(f),l({text:`\u2717 ${E(p)}`})}finally{s(!1)}}return(0,t.jsxs)("section",{className:"bd-section","data-codex-app-display":!0,children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionCodexAppDisplay")}),(0,t.jsx)(at,{checked:o,disabled:m,dataAction:"toggle-codex-app-clean-input",title:e("botDefaults.codexAppCleanInput"),help:e("botDefaults.codexAppCleanInputHelp"),onChange:r=>{b(r)}}),(0,t.jsx)("small",{className:"bd-section-note",children:e("botDefaults.codexAppCleanInputCompat")}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:i,attr:{"data-codex-app-clean-input-status":""}})})]})}function oa(a){let e=G(),[o,u]=(0,n.useState)(a.bot.envelopeInjection==="auto"),[i,l]=(0,n.useState)(null),[m,s]=(0,n.useState)(!1);(0,n.useEffect)(()=>u(a.bot.envelopeInjection==="auto"),[a.bot.envelopeInjection]);async function b(r){let f=o;u(r),s(!0),l(null);try{let p=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/envelope-injection`,{envelopeInjection:r?"auto":"off"});if(p.ok&&p.body.ok){let d=p.body.envelopeInjection==="auto";u(d),a.patchBot(a.bot.larkAppId,{envelopeInjection:d?"auto":"off"}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else u(f),l({text:`\u2717 ${j(p)}`})}catch(p){u(f),l({text:`\u2717 ${E(p)}`})}finally{s(!1)}}return(0,t.jsxs)("section",{className:"bd-section","data-envelope-injection":!0,children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.envelopeInjection")}),(0,t.jsx)(at,{checked:o,disabled:m,dataAction:"toggle-envelope-injection",title:e("botDefaults.envelopeInjectionAuto"),help:e("botDefaults.envelopeInjectionHelp"),onChange:r=>{b(r)}}),(0,t.jsx)("small",{className:"bd-section-note",children:e("botDefaults.envelopeInjectionNote")}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:i,attr:{"data-envelope-injection-status":""}})})]})}function na(a){let e=G(),[o,u]=(0,n.useState)(a.bot.botToBotSameDir!==!1),[i,l]=(0,n.useState)(null),[m,s]=(0,n.useState)(!1);(0,n.useEffect)(()=>u(a.bot.botToBotSameDir!==!1),[a.bot.botToBotSameDir]);async function b(r){u(r),s(!0),l(null);try{let f=await a.putCardPref({botToBotSameDir:r});l(f.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${j(f)}`})}catch(f){l({text:`\u2717 ${E(f)}`})}finally{s(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionCrossBot")}),(0,t.jsx)(at,{checked:o,disabled:m,dataAction:"toggle-cross-bot-samedir",title:e("botDefaults.botToBotSameDir"),help:e("botDefaults.botToBotSameDirHelp"),onChange:r=>{b(r)}}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:i,attr:{"data-crossbot-status":""}})})]})}function sa(a){let e=G(),o=$t(a.bot),[u,i]=(0,n.useState)(String(o.limit)),[l,m]=(0,n.useState)(String(o.sinceHours)),[s,b]=(0,n.useState)(a.bot.summaryMemory===!0),[r,f]=(0,n.useState)(Ot(a.bot)),[p,d]=(0,n.useState)(null),[g,N]=(0,n.useState)(null),[D,y]=(0,n.useState)(!1),[v,C]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let S=$t(a.bot);i(String(S.limit)),m(String(S.sinceHours)),b(a.bot.summaryMemory===!0),f(Ot(a.bot))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours,a.bot.summaryMemory,a.bot.summaryMemoryPath]);async function h(){d(null);let S=se(u,50),c=se(l,24);if(S==null||c==null){d({text:`\u2717 ${e("botDefaults.summaryNumberInvalid")}`});return}y(!0);try{let A=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:S,sinceHours:c});if(A.ok&&A.body.ok){let F=A.body.summaryRange??{limit:S,sinceHours:c},H=$t({...a.bot,summaryRange:F});i(String(H.limit)),m(String(H.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:F}),d({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else d({text:`\u2717 ${j(A)}`})}catch(A){d({text:`\u2717 ${E(A)}`})}finally{y(!1)}}async function x(S,c=r){let A=s,F=r,H=ye(c);b(S),f(H),N(null),C(!0);try{let w=await a.putCardPref({summaryMemory:S,summaryMemoryPath:H});if(w.ok&&w.body.ok){let z=w.body.summaryMemory===!0,Q=Ot({...a.bot,summaryMemoryPath:w.body.summaryMemoryPath});b(z),f(Q),a.patchBot(a.bot.larkAppId,{summaryMemory:z,summaryMemoryPath:Q}),N({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else b(A),f(F),N({text:`\u2717 ${j(w)}`})}catch(w){b(A),f(F),N({text:`\u2717 ${E(w)}`})}finally{C(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)($,{help:e("botDefaults.summaryLimitHelp"),children:e("botDefaults.sectionSummaryTrigger")})}),(0,t.jsxs)("div",{className:"bd-row bd-summary-limits",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.summaryLimit")}),(0,t.jsx)("input",{type:"number",min:0,step:1,"data-input":"summaryLimit",value:u,disabled:D,onChange:S=>i(S.currentTarget.value)})]}),(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.summarySinceHours")}),(0,t.jsx)("input",{type:"number",min:0,step:1,"data-input":"summarySinceHours",value:l,disabled:D,onChange:S=>m(S.currentTarget.value)})]})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-trigger",disabled:D,onClick:()=>{h()},children:e("botDefaults.summarySave")}),(0,t.jsx)(_,{status:p,attr:{"data-summary-trigger-status":""}})]}),(0,t.jsx)(at,{checked:s,disabled:v,title:e("botDefaults.summaryMemory"),help:e("botDefaults.summaryMemoryHelp"),onChange:S=>{x(S)}}),(0,t.jsx)("div",{className:"bd-row bd-summary-limits",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.summaryMemoryPath")}),(0,t.jsx)("input",{type:"text","data-input":"summaryMemoryPath",value:r,disabled:v,onChange:S=>f(S.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-memory-path",disabled:v,onClick:()=>{x(s,r)},children:e("botDefaults.summaryMemoryPathSave")})}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:g,attr:{"data-summary-memory-status":""}})})]})}function ye(a){return a.trim()||"summary.md"}function Ot(a){return ye(typeof a.summaryMemoryPath=="string"?a.summaryMemoryPath:"")}function $t(a){let e=a.summaryRange??{limit:50,sinceHours:24};return{limit:Number.isInteger(e.limit)&&Number(e.limit)>=0?Number(e.limit):50,sinceHours:Number.isInteger(e.sinceHours)&&Number(e.sinceHours)>=0?Number(e.sinceHours):24}}function la(a){let e=G(),[o,u]=(0,n.useState)(Nt(a.bot.p2pMode)),[i,l]=(0,n.useState)(ce(a.bot)),[m,s]=(0,n.useState)(be(a.bot)),[b,r]=(0,n.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[f,p]=(0,n.useState)(null),[d,g]=(0,n.useState)(null),[N,D]=(0,n.useState)(null),[y,v]=(0,n.useState)(null),[C,h]=(0,n.useState)(null);(0,n.useEffect)(()=>{u(Nt(a.bot.p2pMode)),l(ce(a.bot)),s(be(a.bot)),r(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function x(w){let z=Nt(w);u(z),p("p2p"),g(null);try{let Q=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:z});Q.ok&&Q.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:Nt(Q.body.p2pMode)}),g({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})):g({text:`\u2717 ${j(Q)}`})}catch(Q){g({text:`\u2717 ${E(Q)}`})}finally{p(null)}}async function S(w,z,Q){p(w),Q(null);try{let Z=await a.putCardPref(z);Q(Z.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${j(Z)}`})}catch(Z){Q({text:`\u2717 ${E(Z)}`})}finally{p(null)}}let c=[{value:"thread",label:e("botDefaults.p2pThread")},{value:"chat",label:e("botDefaults.p2pChat")},{value:"group",label:e("botDefaults.p2pGroup")}],A=[{value:"chat",label:e("botDefaults.regularGroupModeChat")},{value:"chat-topic",label:e("botDefaults.regularGroupModeChatTopic")},{value:"new-topic",label:e("botDefaults.regularGroupModeNewTopic")},{value:"shared",label:e("botDefaults.regularGroupModeShared")}],F=[{value:"always",label:e("botDefaults.mentionModeAlways")},{value:"topic",label:e("botDefaults.mentionModeTopic")},{value:"never",label:e("botDefaults.mentionModeNever")},{value:"ambient",label:e("botDefaults.mentionModeAmbient")}],H=[{value:"mention-only",label:e("botDefaults.docSubscribeModeMention")},{value:"all",label:e("botDefaults.docSubscribeModeAll")}];return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSessionMode")}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.p2pHelp"),children:e("botDefaults.p2pMode")}),(0,t.jsx)(et,{dataInput:"p2pMode",ariaLabel:e("botDefaults.p2pMode"),value:o,disabled:f==="p2p",options:c,onChange:w=>{x(w)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:d,attr:{"data-p2p-status":""}})})]}),o==="group"&&(0,t.jsx)(ra,{bot:a.bot}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.regularGroupModeHelp"),children:e("botDefaults.regularGroupMode")}),(0,t.jsx)(et,{dataInput:"regularGroupMode",ariaLabel:e("botDefaults.regularGroupMode"),value:i,disabled:f==="regular",options:A,onChange:w=>{l(w),S("regular",{regularGroupReplyMode:w},D)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:N,attr:{"data-regular-group-status":""}})})]}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.mentionModeHelp"),children:e("botDefaults.mentionMode")}),(0,t.jsx)(et,{dataInput:"regularGroupMentionMode",ariaLabel:e("botDefaults.mentionMode"),value:m,disabled:f==="mention",options:F,onChange:w=>{s(w),S("mention",{regularGroupMentionMode:w},v)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:y,attr:{"data-mention-mode-status":""}})})]}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.docSubscribeModeHelp"),children:e("botDefaults.docSubscribeMode")}),(0,t.jsx)(et,{dataInput:"docSubscribeDefaultMode",ariaLabel:e("botDefaults.docSubscribeMode"),value:b,disabled:f==="doc",options:H,onChange:w=>{r(w),S("doc",{docSubscribeDefaultMode:w},h)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:C,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function ia(a){let e=G(),o=a.bot.substituteMode??null,[u,i]=(0,n.useState)(o?.enabled===!0);function l(k){switch(k){case"cross_app_open_id":return e("botDefaults.substituteReasonCrossAppOpenId");case"not_visible":return e("botDefaults.substituteReasonNotVisible");case"resolve_failed":return e("botDefaults.substituteReasonResolveFailed");case"unresolvable":return e("botDefaults.substituteReasonUnresolvable");default:return e("botDefaults.substituteUnresolved")}}let[m,s]=(0,n.useState)(o?.disclosure==="none"?"none":"prefix"),[b,r]=(0,n.useState)(o?.replyMode==="quote"?"quote":"thread"),[f,p]=(0,n.useState)(o?.disableControlCard!==!0),[d,g]=(0,n.useState)(()=>ct(o?.chats)),[N,D]=(0,n.useState)(()=>ct(o?.excludedChats)),[y,v]=(0,n.useState)(o?.topicGroups!==!1),[C,h]=(0,n.useState)(o?.topicActiveSessionTrigger!==!1),[x,S]=(0,n.useState)(null),[c,A]=(0,n.useState)(!1),F=(0,n.useRef)(0),H=(0,n.useRef)(!1);function w(k){let P=we(k);return{key:++F.current,idField:P,idValue:k?.[P]??"",name:k?.name??"",persisted:k?{...k}:{},originalIdField:k?P:void 0,resolution:k?.name||k?.avatarUrl?{ok:!0,name:k.name,avatarUrl:k.avatarUrl}:void 0}}let z=(0,n.useRef)(new Map);async function Q(k){let P=(z.current.get(k)??0)+1;z.current.set(k,P);let R=()=>z.current.get(k)===P;T(B=>B.map(L=>L.key===k?{...L,resolving:!0}:L));try{let B=Z.find(V=>V.key===k);if(!B)return;let L=B.idValue.trim();if(!L){T(V=>V.map(K=>K.key===k?{...K,resolving:!1,resolution:void 0}:K));return}let J={[B.idField]:L};B.name.trim()&&(J.name=B.name.trim());let nt=await Yt(a.bot.larkAppId,J);if(!R())return;T(V=>V.map(K=>{if(K.key!==k)return K;if(!nt.ok)return{...K,resolving:!1,resolution:{ok:!1}};let ot=nt.resolution;if(ot?.ok===!0){if(!ot.openId)return{...K,resolving:!1,resolution:void 0};let tt={...K.persisted};return tt.openId=ot.openId,ot.name&&(tt.name=ot.name),ot.avatarUrl&&(tt.avatarUrl=ot.avatarUrl),{...K,name:ot.name??K.name,persisted:tt,resolving:!1,resolution:{ok:!0,name:ot.name,avatarUrl:ot.avatarUrl}}}return{...K,resolving:!1,resolution:{ok:!1,reason:ot?.reason}}}))}catch{if(!R())return;T(B=>B.map(L=>L.key===k?{...L,resolving:!1,resolution:{ok:!1}}:L))}}let[Z,T]=(0,n.useState)(()=>{let k=o?.targets??[];return k.length?k.map(P=>w(P)):[w()]});(0,n.useEffect)(()=>{if(H.current){H.current=!1;return}let k=a.bot.substituteMode??null;i(k?.enabled===!0),s(k?.disclosure==="none"?"none":"prefix"),r(k?.replyMode==="quote"?"quote":"thread"),p(k?.disableControlCard!==!0),g(ct(k?.chats)),D(ct(k?.excludedChats)),v(k?.topicGroups!==!1),h(k?.topicActiveSessionTrigger!==!1);let P=k?.targets??[];T(P.length?P.map(R=>w(R)):[w()])},[a.bot.larkAppId,a.bot.substituteMode]);async function O(k){A(!0),S(null);try{let P=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/substitute-mode`,k);if(P.ok&&P.body.ok){let R=P.body.substituteMode&&typeof P.body.substituteMode=="object"?P.body.substituteMode:null,B=Array.isArray(P.body?.resolution)?P.body.resolution:[],L=B.filter(J=>J?.ok===!1).map(J=>String(J.input??"").trim()).filter(Boolean);if(i(R?.enabled===!0),s(R?.disclosure==="none"?"none":"prefix"),r(R?.replyMode==="quote"?"quote":"thread"),p(R?.disableControlCard!==!0),g(ct(R?.chats)),D(ct(R?.excludedChats)),v(R?.topicGroups!==!1),h(R?.topicActiveSessionTrigger!==!1),B.length)H.current=!0,T(J=>{let nt=[...B];return J.map(V=>{let K=V.idValue.trim(),ot=nt.findIndex(it=>String(it.input??"").trim()===K);if(ot<0)return V;let tt=nt.splice(ot,1)[0];if(tt?.ok===!0){let it={...V.persisted};return tt.openId&&(it.openId=tt.openId),V.idField==="email"&&(it.email=K),tt.name&&(it.name=tt.name),tt.avatarUrl&&(it.avatarUrl=tt.avatarUrl),{...V,name:tt.name??V.name,persisted:it,resolution:{ok:!0,name:tt.name,avatarUrl:tt.avatarUrl}}}return{...V,resolution:{ok:!1,reason:tt?.reason}}})});else{let J=R?.targets??[];T(J.length?J.map(nt=>w(nt)):[w()])}a.patchBot(a.bot.larkAppId,{substituteMode:R}),S(L.length?{text:`\u2717 ${e("botDefaults.substituteTargetsInvalid")}: ${L.join(", ")}`}:{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else{let R=Array.isArray(P.body?.resolution)?P.body.resolution.filter(B=>B?.ok===!1).map(B=>String(B.input??"").trim()).filter(Boolean):[];S({text:R.length?`\u2717 ${e("botDefaults.substituteTargetsInvalid")}: ${R.join(", ")}`:`\u2717 ${j(P)}`})}}catch(P){S({text:`\u2717 ${E(P)}`})}finally{A(!1)}}function Y(){let k=[],P=!1;for(let R of Z){let B=Me(R);if(!B){P||=!!R.name.trim();continue}k.push(B)}if(P||u&&k.length===0){S({text:`\u2717 ${e("botDefaults.substituteTargetsInvalid")}`});return}O({enabled:u,targets:k,disclosure:m,chats:le(d),excludedChats:le(N),replyMode:b,disableControlCard:!f,topicGroups:y,topicActiveSessionTrigger:C})}let U=[{value:"prefix",label:e("botDefaults.substituteDisclosurePrefix")},{value:"none",label:e("botDefaults.substituteDisclosureNone")}],M=[{value:"thread",label:e("botDefaults.substituteReplyModeThread")},{value:"quote",label:e("botDefaults.substituteReplyModeQuote")}];return(0,t.jsxs)("section",{className:"bd-section bd-substitute-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSubstitute")}),(0,t.jsx)(at,{checked:u,disabled:c,dataAction:"toggle-substitute-mode",title:e("botDefaults.substituteEnabled"),help:e("botDefaults.substituteHelp"),onChange:i}),(0,t.jsx)(at,{checked:y,disabled:c,dataAction:"toggle-substitute-topic-groups",title:e("botDefaults.substituteTopicGroups"),help:e("botDefaults.substituteTopicGroupsHelp"),onChange:v}),(0,t.jsx)(at,{checked:C,disabled:c||!y,dataAction:"toggle-substitute-topic-active",title:e("botDefaults.substituteTopicActive"),help:e("botDefaults.substituteTopicActiveHelp"),onChange:h}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{children:e("botDefaults.substituteDisclosure")}),(0,t.jsx)(et,{dataInput:"substituteDisclosure",ariaLabel:e("botDefaults.substituteDisclosure"),value:m,disabled:c,options:U,onChange:k=>s(k)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.substituteReplyModeHelp"),children:e("botDefaults.substituteReplyMode")}),(0,t.jsx)(et,{dataInput:"substituteReplyMode",ariaLabel:e("botDefaults.substituteReplyMode"),value:b,disabled:c,options:M,onChange:k=>r(k)})]})}),(0,t.jsx)(at,{checked:f,disabled:c,dataAction:"toggle-substitute-control-card",title:e("botDefaults.substituteControlCard"),help:e("botDefaults.substituteControlCardHelp"),onChange:p}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)($,{help:e("botDefaults.substituteChatsHelp"),children:e("botDefaults.substituteChats")}),(0,t.jsx)("textarea",{"data-input":"substituteChats",rows:3,placeholder:e("botDefaults.substituteChatsPlaceholder"),value:d,disabled:c,onChange:k=>g(k.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)($,{help:e("botDefaults.substituteExcludedChatsHelp"),children:e("botDefaults.substituteExcludedChats")}),(0,t.jsx)("textarea",{"data-input":"substituteExcludedChats",rows:3,placeholder:e("botDefaults.substituteExcludedChatsPlaceholder"),value:N,disabled:c,onChange:k=>D(k.currentTarget.value)})]})}),(0,t.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,t.jsx)($,{help:e("botDefaults.substituteTargetsHelp"),children:e("botDefaults.substituteTargets")}),(0,t.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[Z.map((k,P)=>(0,t.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,t.jsx)(et,{dataInput:`substituteTargetType-${k.key}`,className:"bd-substitute-target-type",ariaLabel:`${e("botDefaults.substituteTargetType")} ${P+1}`,value:k.idField,disabled:c,options:Et.map(R=>({value:R,label:e(`botDefaults.substituteTarget${R[0].toUpperCase()}${R.slice(1)}`)})),onChange:R=>{T(B=>B.map(L=>L.key===k.key?{...L,idField:R,idValue:L.persisted[R]??"",resolution:void 0}:L))}}),(0,t.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${k.key}`,"aria-label":`${e("botDefaults.substituteTargetType")} ${P+1}`,placeholder:e("botDefaults.substituteTargetIdPlaceholder"),value:k.idValue,disabled:c,onChange:R=>{let B=R.currentTarget.value;T(L=>L.map(J=>J.key===k.key?{...J,idValue:B,resolution:void 0}:J))},onBlur:()=>{k.idValue.trim()&&Q(k.key)}}),(0,t.jsx)("div",{className:"bd-substitute-target-name",children:k.resolving?(0,t.jsx)("span",{className:"bd-substitute-target-resolving",children:e("botDefaults.substituteResolving")}):k.resolution?.ok===!0&&(k.name||k.resolution.avatarUrl)?(0,t.jsxs)(t.Fragment,{children:[k.resolution.avatarUrl?(0,t.jsx)(ft,{html:bt({name:k.resolution.name,avatarUrl:k.resolution.avatarUrl,size:"sm"})}):null,(0,t.jsx)("span",{className:"bd-substitute-target-name-chip","data-chip":`substituteTargetName-${k.key}`,"aria-label":`${e("botDefaults.substituteTargetName")} ${P+1}`,children:k.name})]}):k.resolution?.ok===!1?(0,t.jsx)("span",{className:"bd-substitute-target-resolution-badge",children:l(k.resolution.reason)}):(0,t.jsx)("input",{type:"text","data-input":`substituteTargetName-${k.key}`,"aria-label":`${e("botDefaults.substituteTargetName")} ${P+1}`,placeholder:e("botDefaults.substituteTargetNamePlaceholder"),value:k.name,disabled:c,onChange:R=>{let B=R.currentTarget.value;T(L=>L.map(J=>J.key===k.key?{...J,name:B}:J))}})}),(0,t.jsx)("button",{type:"button",className:"bd-substitute-target-remove","data-action":"remove-substitute-target",title:e("botDefaults.substituteTargetRemove"),"aria-label":e("botDefaults.substituteTargetRemove"),disabled:c,onClick:()=>{T(R=>{let B=R.filter(L=>L.key!==k.key);return B.length?B:[w()]})},children:(0,t.jsx)("span",{"aria-hidden":"true",children:"\xD7"})})]},k.key)),(0,t.jsx)("button",{type:"button",className:"bd-substitute-target-add","data-action":"add-substitute-target",title:e("botDefaults.substituteTargetAdd"),"aria-label":e("botDefaults.substituteTargetAdd"),disabled:c,onClick:()=>T(k=>[...k,w()]),children:(0,t.jsx)("span",{"aria-hidden":"true",children:"+"})})]})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-substitute-mode",disabled:c,onClick:Y,children:e("botDefaults.substituteSave")}),(0,t.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:c,onClick:()=>{O({enabled:!1,targets:[]})},children:e("botDefaults.substituteOff")}),(0,t.jsx)(_,{status:x,attr:{"data-substitute-status":""}})]})]})}function Nt(a){return a==="thread"?"thread":a==="group"?"group":"chat"}function ra(a){let e=G(),[o,u]=(0,n.useState)(null),[i,l]=(0,n.useState)(!1),[m,s]=(0,n.useState)(!1),[b,r]=(0,n.useState)(null),f=async()=>{try{let y=await q("GET",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-status`);if(y.ok&&y.body.ok)return u({authorized:!!y.body.authorized,tagMode:String(y.body.tagMode??"feed-group")}),!!y.body.authorized}catch{}return!1};(0,n.useEffect)(()=>{f()},[a.bot.larkAppId]);async function p(y){s(!0),r(null);try{let v=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-config`,{mode:y});v.ok&&v.body.ok?u(C=>({authorized:C?.authorized??!1,tagMode:String(v.body.tagMode)})):r(j(v))}catch(v){r(E(v))}finally{s(!1)}}async function d(){l(!0),r(null);try{let y=await q("POST",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-auth`,{});if(!y.ok||!y.body.ok||!y.body.authUrl){r(j(y));return}window.open(y.body.authUrl,"_blank","noopener");for(let v=0;v<60;v++)if(await new Promise(C=>setTimeout(C,3e3)),await f())return;r(e("botDefaults.sgTagAuthTimeout"))}catch(y){r(E(y))}finally{l(!1)}}let g=o?.tagMode??"feed-group",N=o?.authorized===!0,D=[{value:"feed-group",label:e("botDefaults.sgTagModeFeedGroup")},{value:"chat-tag",label:e("botDefaults.sgTagModeChatTag")},{value:"off",label:e("botDefaults.sgTagModeOff")}];return(0,t.jsx)("div",{className:"bd-row","data-session-group-tag-row":!0,children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.sgTagHelp"),children:e("botDefaults.sgTag")}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,t.jsx)(et,{dataInput:"sessionGroupTagMode",ariaLabel:e("botDefaults.sgTag"),value:g,disabled:m||!o,options:D,onChange:y=>{p(y)}}),g==="chat-tag"&&(0,t.jsx)("span",{"data-sg-tag-state":"tenant",children:e("botDefaults.sgTagChatTagNote")}),g==="feed-group"&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{"data-sg-tag-state":N?"authorized":"unauthorized",children:N?`\u{1F7E2} ${e("botDefaults.sgTagAuthorized")}`:`\u26AA ${e("botDefaults.sgTagUnauthorized")}`}),!N&&(0,t.jsx)("button",{type:"button",className:"primary","data-action":"session-group-tag-auth",disabled:i,onClick:()=>{d()},children:e(i?"botDefaults.sgTagAuthWaiting":"botDefaults.sgTagAuthStart")})]}),b&&(0,t.jsxs)("span",{className:"status-error",children:["\u2717 ",b]})]})]})})}function ce(a){return a.regularGroupReplyMode==="chat"||a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"?a.regularGroupReplyMode:"chat-topic"}function be(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function ua(a){let e=G(),o=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null,u=Number.isFinite(a.bot.logicalSessionCount)?Number(a.bot.logicalSessionCount):0,i=Number.isFinite(a.bot.residentSessionCount)?Number(a.bot.residentSessionCount):0,l=Number.isFinite(a.bot.dormantSessionCount)?Number(a.bot.dormantSessionCount):0,[m,s]=(0,n.useState)(o),b=m??30,[r,f]=(0,n.useState)(o==null?"":String(o)),[p,d]=(0,n.useState)(null),[g,N]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let v=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;s(v),f(v==null?"":String(v))},[a.bot.maxLiveWorkers]);async function D(v){d(null),N(!0);try{let C=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:v});if(C.ok&&C.body.ok){let h=typeof C.body.maxLiveWorkers=="number"?C.body.maxLiveWorkers:null;s(h),f(h==null?"":String(h)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:h}),d({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else d({text:`\u2717 ${j(C)}`})}catch(C){d({text:`\u2717 ${E(C)}`})}finally{N(!1)}}function y(){let v=me(r);if(v==="invalid"){d({text:`\u2717 ${e("botDefaults.maxLiveWorkersInvalid")}`});return}D(v)}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSessionCap")}),(0,t.jsxs)("div",{className:"bd-row bd-quota",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)($,{help:e("botDefaults.maxLiveWorkersHelp"),children:e("botDefaults.maxLiveWorkers")}),(0,t.jsx)("input",{type:"number",min:1,step:1,"data-input":"maxLiveWorkers",placeholder:e("botDefaults.maxLiveWorkersPlaceholder"),value:r,disabled:g,onChange:v=>f(v.currentTarget.value)})]}),(0,t.jsx)("small",{"data-session-cap-state":!0,children:Oe(m,e)}),(0,t.jsx)("small",{className:"bd-help bd-session-residency",children:e("botDefaults.maxLiveWorkersUsage",{resident:i,cap:b,dormant:l,logical:u})})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:g,onClick:y,children:e("botDefaults.maxLiveWorkersSave")}),(0,t.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:g,onClick:()=>{f(""),D(null)},children:e("botDefaults.maxLiveWorkersOff")}),(0,t.jsx)(_,{status:p,attr:{"data-session-cap-status":""}})]})]})}function da(a){let e=G(),[o,u]=(0,n.useState)(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[i,l]=(0,n.useState)(null),[m,s]=(0,n.useState)(!1);(0,n.useEffect)(()=>u(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[a.bot.startupCommands]);async function b(){l(null),s(!0);try{let r=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:o});if(r.ok&&r.body.ok){let f=typeof r.body.startupCommands=="string"?r.body.startupCommands:"";u(f),a.patchBot(a.bot.larkAppId,{startupCommands:f}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${j(r)}`})}catch(r){l({text:`\u2717 ${E(r)}`})}finally{s(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)($,{help:e("botDefaults.startupCommandsHelp"),children:e("botDefaults.sectionStartupCommands")})}),(0,t.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:e("botDefaults.startupCommandsPlaceholder"),value:o,disabled:m,onChange:r=>u(r.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:m,onClick:()=>{b()},children:e("botDefaults.startupCommandsSave")}),(0,t.jsx)(_,{status:i,attr:{"data-startup-commands-status":""}})]})]})}function ca(a){let e=G(),[o,u]=(0,n.useState)(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:""),[i,l]=(0,n.useState)(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:""),[m,s]=(0,n.useState)(null),[b,r]=(0,n.useState)(null);(0,n.useEffect)(()=>{u(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:"")},[a.bot.customPassthroughCommands]),(0,n.useEffect)(()=>{l(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:"")},[a.bot.canTalkDaemonCommands]);async function f(){s(null),r("passthrough");try{let d=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/custom-passthrough`,{customPassthroughCommands:o});if(d.ok&&d.body.ok){let g=typeof d.body.customPassthroughCommands=="string"?d.body.customPassthroughCommands:"";u(g),a.patchBot(a.bot.larkAppId,{customPassthroughCommands:g}),s({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else s({text:`\u2717 ${j(d)}`})}catch(d){s({text:`\u2717 ${E(d)}`})}finally{r(null)}}async function p(){s(null),r("cantalk");try{let d=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/cantalk-daemon-commands`,{canTalkDaemonCommands:i});if(d.ok&&d.body.ok){let g=typeof d.body.canTalkDaemonCommands=="string"?d.body.canTalkDaemonCommands:"";l(g),a.patchBot(a.bot.larkAppId,{canTalkDaemonCommands:g}),s({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else s({text:`\u2717 ${j(d)}`})}catch(d){s({text:`\u2717 ${E(d)}`})}finally{r(null)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)($,{help:e("botDefaults.sectionSlashCommandsHelp"),children:e("botDefaults.sectionSlashCommands")})}),(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)($,{help:e("botDefaults.customPassthroughHelp"),children:e("botDefaults.customPassthrough")})}),(0,t.jsx)("textarea",{"data-input":"customPassthroughCommands",rows:2,placeholder:e("botDefaults.customPassthroughPlaceholder"),value:o,disabled:b==="passthrough",onChange:d=>u(d.currentTarget.value)}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-custom-passthrough",disabled:b==="passthrough",onClick:()=>{f()},children:e("botDefaults.customPassthroughSave")})})]}),(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)($,{help:e("botDefaults.canTalkDaemonHelp"),children:e("botDefaults.canTalkDaemon")})}),(0,t.jsx)("textarea",{"data-input":"canTalkDaemonCommands",rows:2,placeholder:e("botDefaults.canTalkDaemonPlaceholder"),value:i,disabled:b==="cantalk",onChange:d=>l(d.currentTarget.value)}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-cantalk-daemon",disabled:b==="cantalk",onClick:()=>{p()},children:e("botDefaults.canTalkDaemonSave")})})]}),(0,t.jsx)(_,{status:m,attr:{"data-slash-commands-status":""}})]})}function ba(a){let e=G(),[o,u]=(0,n.useState)(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[i,l]=(0,n.useState)(null),[m,s]=(0,n.useState)(!1);(0,n.useEffect)(()=>u(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[a.bot.launchShell]);async function b(){l(null),s(!0);try{let r=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:o});if(r.ok&&r.body.ok){let f=typeof r.body.launchShell=="string"?r.body.launchShell:"";u(f),a.patchBot(a.bot.larkAppId,{launchShell:f}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${j(r)}`})}catch(r){l({text:`\u2717 ${E(r)}`})}finally{s(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)($,{help:e("botDefaults.launchShellHelp"),children:e("botDefaults.sectionLaunchShell")})}),(0,t.jsx)("input",{type:"text","data-input":"launchShell",placeholder:e("botDefaults.launchShellPlaceholder"),value:o,disabled:m,onChange:r=>u(r.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:m,onClick:()=>{b()},children:e("botDefaults.launchShellSave")}),(0,t.jsx)(_,{status:i,attr:{"data-launch-shell-status":""}})]})]})}function fa(a){let e=G(),[o,u]=(0,n.useState)(typeof a.bot.env=="string"?a.bot.env:""),[i,l]=(0,n.useState)(null),[m,s]=(0,n.useState)(!1);(0,n.useEffect)(()=>u(typeof a.bot.env=="string"?a.bot.env:""),[a.bot.env]);async function b(){l(null),s(!0);try{let r=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:o});if(r.ok&&r.body.ok){let f=typeof r.body.env=="string"?r.body.env:"";u(f),a.patchBot(a.bot.larkAppId,{env:f}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${j(r)}`})}catch(r){l({text:`\u2717 ${E(r)}`})}finally{s(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)($,{help:e("botDefaults.envHelp"),children:e("botDefaults.sectionEnv")})}),(0,t.jsx)("textarea",{"data-input":"env",rows:5,placeholder:e("botDefaults.envPlaceholder"),value:o,disabled:m,onChange:r=>u(r.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:m,onClick:()=>{b()},children:e("botDefaults.envSave")}),(0,t.jsx)(_,{status:i,attr:{"data-env-status":""}})]})]})}var ma=["gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.4","gpt-5.4-pro"],pa=["","low","medium","high","xhigh"],ga=["boe","cn"];function ya(a){let e=G(),o=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{},[u,i]=(0,n.useState)(typeof o.baseUrl=="string"?o.baseUrl:""),[l,m]=(0,n.useState)(o.sandboxCluster==="cn"?"cn":"boe"),[s,b]=(0,n.useState)(typeof o.model=="string"?o.model:""),[r,f]=(0,n.useState)(typeof o.reasoningEffort=="string"?o.reasoningEffort:""),[p,d]=(0,n.useState)(typeof o.jwtEnv=="string"?o.jwtEnv:""),[g,N]=(0,n.useState)(typeof o.systemPrompt=="string"?o.systemPrompt:""),[D,y]=(0,n.useState)(Array.isArray(o.setupCommands)?o.setupCommands.join(`
8
- `):""),[v,C]=(0,n.useState)(null),[h,x]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let c=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{};i(typeof c.baseUrl=="string"?c.baseUrl:""),m(c.sandboxCluster==="cn"?"cn":"boe"),b(typeof c.model=="string"?c.model:""),f(typeof c.reasoningEffort=="string"?c.reasoningEffort:""),d(typeof c.jwtEnv=="string"?c.jwtEnv:""),N(typeof c.systemPrompt=="string"?c.systemPrompt:""),y(Array.isArray(c.setupCommands)?c.setupCommands.join(`
9
- `):"")},[a.bot.riff]);async function S(){C(null),x(!0);try{let c={};u.trim()&&(c.baseUrl=u.trim()),c.sandboxCluster=l,s.trim()&&(c.model=s.trim()),r&&(c.reasoningEffort=r),p.trim()&&(c.jwtEnv=p.trim()),g.trim()&&(c.systemPrompt=g.trim()),D.trim()&&(c.setupCommands=D.split(`
10
- `).map(H=>H.trim()).filter(Boolean));let A=Object.keys(c).length?JSON.stringify(c):"",F=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/riff`,{riff:A});if(F.ok&&F.body.ok){let H=typeof F.body.riff=="string"&&F.body.riff?JSON.parse(F.body.riff):null;if(a.patchBot(a.bot.larkAppId,{riff:H}),a.persistCliSelection&&!await a.persistCliSelection()){C({text:`\u2717 ${e("botDefaults.riffCliPersistFailed")}`});return}C({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else C({text:`\u2717 ${j(F)}`})}catch(c){C({text:`\u2717 ${E(c)}`})}finally{x(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)($,{help:e("botDefaults.riffHelp"),children:e("botDefaults.sectionRiff")})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.riffBaseUrl")}),(0,t.jsx)("input",{type:"text","data-input":"riff-base-url",placeholder:e("botDefaults.riffBaseUrlPlaceholder"),value:u,disabled:h,onChange:c=>i(c.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)("span",{children:(0,t.jsx)($,{help:e("botDefaults.riffSandboxClusterHelp"),children:e("botDefaults.riffSandboxCluster")})}),(0,t.jsx)(et,{dataInput:"riff-sandbox-cluster",ariaLabel:e("botDefaults.riffSandboxCluster"),value:l,disabled:h,options:ga.map(c=>({value:c,label:c.toUpperCase()})),onChange:c=>m(c)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:(0,t.jsx)($,{help:e("botDefaults.riffModelHelp"),children:e("botDefaults.riffModel")})}),(0,t.jsx)("input",{type:"text","data-input":"riff-model",list:`riff-model-suggestions-${a.bot.larkAppId}`,placeholder:e("botDefaults.riffModelPlaceholder"),value:s,disabled:h,onChange:c=>b(c.currentTarget.value)}),(0,t.jsx)("datalist",{id:`riff-model-suggestions-${a.bot.larkAppId}`,children:ma.map(c=>(0,t.jsx)("option",{value:c},c))})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)("span",{children:(0,t.jsx)($,{help:e("botDefaults.riffReasoningEffortHelp"),children:e("botDefaults.riffReasoningEffort")})}),(0,t.jsx)(et,{dataInput:"riff-reasoning-effort",ariaLabel:e("botDefaults.riffReasoningEffort"),value:r,disabled:h,options:pa.map(c=>({value:c,label:c===""?e("botDefaults.riffReasoningEffortDefault"):c})),onChange:c=>f(c)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:(0,t.jsx)($,{help:e("botDefaults.riffJwtEnvHelp"),children:e("botDefaults.riffJwtEnv")})}),(0,t.jsx)("input",{type:"text","data-input":"riff-jwt-env",placeholder:e("botDefaults.riffJwtEnvPlaceholder"),value:p,disabled:h,onChange:c=>d(c.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.riffSystemPrompt")}),(0,t.jsx)("textarea",{"data-input":"riff-system-prompt",placeholder:e("botDefaults.riffSystemPromptPlaceholder"),value:g,disabled:h,onChange:c=>N(c.currentTarget.value),rows:4})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.riffSetupCommands")}),(0,t.jsx)("textarea",{"data-input":"riff-setup-commands",placeholder:e("botDefaults.riffSetupCommandsPlaceholder"),value:D,disabled:h,onChange:c=>y(c.currentTarget.value),rows:3})]})}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-riff",disabled:h,onClick:()=>{S()},children:e("botDefaults.riffSave")}),(0,t.jsx)(_,{status:v,attr:{"data-riff-status":""}})]})]})}function ha(a){let e=G(),o=a.bot.brandLabel??null,[u,i]=(0,n.useState)(o),[l,m]=(0,n.useState)(o??""),[s,b]=(0,n.useState)(null),[r,f]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let d=a.bot.brandLabel??null;i(d),m(d??"")},[a.bot.brandLabel]);async function p(d){b(null),f(!0);try{let g=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/brand-label`,{brandLabel:d});if(g.ok&&g.body.ok){let N=g.body.brandLabel??null;i(N),m(N??""),a.patchBot(a.bot.larkAppId,{brandLabel:N}),b({text:"\u2713",ok:!0})}else b({text:`\u2717 ${j(g)}`})}catch(g){b({text:`\u2717 ${E(g)}`})}finally{f(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionBrand")}),(0,t.jsxs)("div",{className:"bd-row bd-brand",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)($,{help:e("botDefaults.brandLabelHelp"),children:e("botDefaults.brandLabel")}),(0,t.jsx)("input",{type:"text","data-input":"brandLabel",placeholder:e("botDefaults.brandLabelPlaceholder"),value:l,disabled:r,onChange:d=>m(d.currentTarget.value)})]}),(0,t.jsx)("small",{"data-brand-state":!0,children:Be(u,e)})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-brand",disabled:r,onClick:()=>{p(l)},children:e("botDefaults.brandSave")}),(0,t.jsx)("button",{type:"button","data-action":"reset-brand",disabled:r,onClick:()=>{p(null)},children:e("botDefaults.brandReset")}),(0,t.jsx)(_,{status:s,attr:{"data-brand-status":""}})]})]})}function va(a){let e=G(),[o,u]=(0,n.useState)(a.bot.autoGrantRequestCards!==!1),[i,l]=(0,n.useState)(a.bot.restrictGrantCommands===!0),[m,s]=(0,n.useState)(a.bot.p2pOpen===!0),[b,r]=(0,n.useState)(typeof a.bot.grantDefaultDurationMs=="number"?a.bot.grantDefaultDurationMs:null),[f,p]=(0,n.useState)(String(a.bot.grantDefaultDurationMs??36e5)),[d,g]=(0,n.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null),[N,D]=(0,n.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?String(a.bot.messageQuotaDefaultLimit):""),[y,v]=(0,n.useState)(null),[C,h]=(0,n.useState)(null),[x,S]=(0,n.useState)(null);(0,n.useEffect)(()=>{u(a.bot.autoGrantRequestCards!==!1)},[a.bot.autoGrantRequestCards]),(0,n.useEffect)(()=>{l(a.bot.restrictGrantCommands===!0)},[a.bot.restrictGrantCommands]),(0,n.useEffect)(()=>{s(a.bot.p2pOpen===!0)},[a.bot.p2pOpen]),(0,n.useEffect)(()=>{let T=typeof a.bot.grantDefaultDurationMs=="number"?a.bot.grantDefaultDurationMs:null;r(T),p(String(T??36e5))},[a.bot.grantDefaultDurationMs]),(0,n.useEffect)(()=>{let T=typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null;g(T),D(T===null?"":String(T))},[a.bot.messageQuotaDefaultLimit]);async function c(T,O,Y){S(O),v(O==="duration"||O==="quota"?{text:e("botDefaults.grantDefaultsSaving")}:null);try{let U=await q("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/grant-prefs`,T);if(U.ok&&U.body.ok){let M=typeof U.body.grantDefaultDurationMs=="number"?U.body.grantDefaultDurationMs:null,k=typeof U.body.messageQuotaDefaultLimit=="number"?U.body.messageQuotaDefaultLimit:null;u(U.body.autoGrantRequestCards!==!1),l(U.body.restrictGrantCommands===!0),s(U.body.p2pOpen===!0),r(M),g(k),"grantDefaultDurationMs"in T&&p(String(M??36e5)),"messageQuotaDefaultLimit"in T&&D(k===null?"":String(k)),a.patchBot(a.bot.larkAppId,{autoGrantRequestCards:U.body.autoGrantRequestCards!==!1,restrictGrantCommands:U.body.restrictGrantCommands===!0,p2pOpen:U.body.p2pOpen===!0,grantDefaultDurationMs:M,messageQuotaDefaultLimit:k}),"messageQuotaDefaultLimit"in T&&h(null),v({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else Y?.(),v({text:`\u2717 ${j(U)}`})}catch(U){Y?.(),v({text:`\u2717 ${E(U)}`})}finally{S(null)}}function A(T){p(T),v(null);let O=Number(T);if(!Ae.includes(O)){v({text:`\u2717 ${e("botDefaults.grantDurationInvalid")}`});return}let Y=O===36e5?null:O;if(Y===b)return;let U=String(b??36e5);c({grantDefaultDurationMs:Y},"duration",()=>p(U))}function F(){let T=me(N),O=T!==d;if(v(null),!O){h(null);return}if(T==="invalid"||typeof T=="number"&&T>1e3){h(e("botDefaults.quotaInvalid"));return}h(null),c({messageQuotaDefaultLimit:T},"quota")}let H=[{value:String(36e5),label:e("botDefaults.grantDuration1Hour")},{value:String(480*60*1e3),label:e("botDefaults.grantDuration8Hours")},{value:String(1440*60*1e3),label:e("botDefaults.grantDuration1Day")},{value:String(10080*60*1e3),label:e("botDefaults.grantDuration7Days")}],w=b??36e5,z=w===36e5?e("botDefaults.grantDuration1HourValue"):String(H.find(T=>T.value===String(w))?.label??""),Q=d===null?e("botDefaults.quotaHelpBuiltIn",{count:3}):d>1e3?e("botDefaults.quotaHelpLegacy",{cardCount:1e3,oncallCount:d,defaultCount:3}):e("botDefaults.quotaHelpCustom",{count:d,defaultCount:3}),Z=d===null?e(b===null?"botDefaults.grantDefaultsCurrentBuiltIn":"botDefaults.grantDefaultsCurrentCustomBuiltInQuota",{duration:z,count:3}):d>1e3?e("botDefaults.grantDefaultsCurrentLegacy",{duration:z,cardCount:1e3,oncallCount:d}):e("botDefaults.grantDefaultsCurrentCustom",{duration:z,count:d});return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionGrant")}),(0,t.jsxs)("div",{className:"bd-toggle-grid bd-grant-toggle-grid",children:[(0,t.jsx)(at,{checked:o,disabled:x!==null,dataAction:"toggle-auto-grant-card",title:e("botDefaults.autoGrantCard"),help:e("botDefaults.autoGrantCardHelp"),onChange:T=>{let O=o;u(T),c({autoGrantRequestCards:T},"autoGrant",()=>u(O))}}),(0,t.jsx)(at,{checked:i,disabled:x!==null,dataAction:"toggle-restrict-grant",title:e("botDefaults.restrictGrant"),help:e("botDefaults.restrictGrantHelp"),onChange:T=>{let O=i;l(T),c({restrictGrantCommands:T},"restrict",()=>l(O))}}),(0,t.jsx)(at,{checked:m,disabled:x!==null,dataAction:"toggle-p2p-open",title:e("botDefaults.p2pOpen"),help:e("botDefaults.p2pOpenHelp"),onChange:T=>{let O=m;s(T),c({p2pOpen:T},"p2pOpen",()=>s(O))}})]}),(0,t.jsxs)("form",{className:"bd-grant-defaults",noValidate:!0,onSubmit:T=>{T.preventDefault(),F()},children:[(0,t.jsx)("div",{className:"bd-row bd-grant-duration",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)($,{help:e("botDefaults.grantDurationHelp"),children:e("botDefaults.grantDurationDefault")}),(0,t.jsx)(et,{dataInput:"grantDefaultDurationMs",value:f,options:H,disabled:x!==null,ariaLabel:e("botDefaults.grantDurationDefault"),onChange:A})]})}),(0,t.jsxs)("div",{className:"bd-row bd-quota",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)($,{help:Q,children:e("botDefaults.quotaDefault")}),(0,t.jsx)("input",{type:"number",min:1,max:1e3,step:1,"data-input":"quotaLimit",placeholder:e("botDefaults.quotaPlaceholder",{count:3}),value:N,disabled:x!==null,"aria-label":e("botDefaults.quotaDefault"),"aria-invalid":C?!0:void 0,"aria-describedby":C?"grant-defaults-state grant-default-quota-error":"grant-defaults-state",onChange:T=>{D(T.currentTarget.value),h(null),v(null)},onBlur:F,onKeyDown:T=>{T.key==="Enter"&&(T.preventDefault(),T.currentTarget.blur())}})]}),C?(0,t.jsx)("small",{id:"grant-default-quota-error",className:"bd-field-error",role:"alert",children:C}):null,(0,t.jsx)("small",{id:"grant-defaults-state","data-grant-defaults-state":!0,children:Z})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(_,{status:y,attr:{"data-grant-status":""}})})]})]})}function Oa(a){return Ht(a,(0,t.jsx)(Le,{}))}export{gt as BOT_DEFAULTS_TABS,yt as BdTabGrid,_e as BotAgentSection,Le as BotDefaultsPage,Ie as BotDefaultsTabs,ea as CardBehaviorSection,aa as CodexAppDisplaySection,oa as EnvelopeInjectionSection,va as GrantSection,Me as buildSubstituteTarget,de as effectiveAccess,Oa as renderBotDefaultsPage};
@@ -1 +0,0 @@
1
- import{a as n}from"./chunk-G5XGBCM6.js";import{r as s,s as i}from"./chunk-Q2MT4VWH.js";import{a as l}from"./chunk-5THX4DI2.js";import{c as S}from"./chunk-7SZRL6FY.js";var e=S(l(),1);function f(o){return n.on(o)}function m(o){let u=(0,e.useRef)(o),r=(0,e.useRef)(null);u.current=o;let a=()=>{let t=n.getSnapshot();if(r.current&&r.current.version===t.version)return r.current.value;let c=u.current(t);return r.current={version:t.version,value:c},c};return(0,e.useSyncExternalStore)(f,a,a)}function h(o){return s.on(o)}function p(){return s.locale}function v(){return(0,e.useSyncExternalStore)(h,p,p)}function T(){return v(),i}export{m as a,v as b,T as c};
@@ -1 +0,0 @@
1
- var a=class{sessions=new Map;schedules=new Map;online=!0;scheduleTimeZone="";version=0;snapshot={sessions:this.sessions,schedules:this.schedules,online:this.online,version:this.version,scheduleTimeZone:this.scheduleTimeZone};listeners=new Set;botsListeners=new Set;setScheduleTimeZone(e){typeof e=="string"&&e&&this.scheduleTimeZone!==e&&(this.scheduleTimeZone=e,this.emit())}replaceSnapshot(e,s,t){this.sessions.clear();for(let i of e)this.sessions.set(i.sessionId,i);this.schedules.clear();for(let i of s)this.schedules.set(i.id,i);t&&(this.scheduleTimeZone=t),this.emit()}applySse(e,s){if(e==="session.spawned")this.sessions.set(s.session.sessionId,s.session);else if(e==="session.update"){let t=this.sessions.get(s.sessionId);t&&this.sessions.set(s.sessionId,{...t,...s.patch})}else if(e==="session.exited"){let t=this.sessions.get(s.sessionId);t&&this.sessions.set(s.sessionId,{...t,status:"closed"})}else if(e==="schedule.created")this.schedules.set(s.schedule.id,s.schedule);else if(e==="schedule.updated"){let t=this.schedules.get(s.id);t&&this.schedules.set(s.id,{...t,...s.patch})}else if(e==="schedule.deleted")this.schedules.delete(s.id);else if(e==="schedule.timezone")typeof s?.timezone=="string"&&s.timezone&&(this.scheduleTimeZone=s.timezone);else if(e==="bots.changed"){for(let t of this.botsListeners)t();return}else return;this.emit()}onBotsChanged(e){return this.botsListeners.add(e),()=>this.botsListeners.delete(e)}setOnline(e){this.online!==e&&(this.online=e,this.emit())}on(e){return this.listeners.add(e),()=>this.listeners.delete(e)}getSnapshot(){return this.snapshot}emit(){this.version+=1,this.snapshot={sessions:this.sessions,schedules:this.schedules,online:this.online,version:this.version,scheduleTimeZone:this.scheduleTimeZone};for(let e of this.listeners)e()}},r=new a;async function f(){let c=[],e=!1,s=new EventSource("/events"),t=["session.spawned","session.update","session.exited","schedule.created","schedule.updated","schedule.deleted","schedule.fired","schedule.timezone","bots.changed","heartbeat"];for(let l of t)s.addEventListener(l,n=>{try{let o=JSON.parse(n.data),h=o.body??o;e?r.applySse(l,h):c.push({type:l,body:h})}catch{}});let i=null,d=0,u=0,p=()=>(d+=1,i||(i=(async()=>{for(;u<d;){let l=d;e=!1;try{let[n,o]=await Promise.all([fetch("/api/sessions").then(h=>h.json()),fetch("/api/schedules").then(h=>h.json())]);r.replaceSnapshot(n.sessions??[],o.schedules??[],typeof o.timezone=="string"?o.timezone:void 0),u=l}finally{e=!0;for(let n of c.splice(0))r.applySse(n.type,n.body)}}})().finally(()=>{i=null}),i));s.onerror=()=>r.setOnline(!1),s.onopen=()=>{r.setOnline(!0),p().catch(()=>{})},await p()}export{r as a,f as b};
@@ -1 +0,0 @@
1
- import{a as p,d as g}from"./chunk-5THX4DI2.js";import{c as s}from"./chunk-7SZRL6FY.js";var c=s(p(),1),a=s(g(),1);function k(t){let l=(0,c.useRef)(null),u=(0,c.useRef)(null),r=t.groups.find(e=>e.groupId===t.selectedId)?.name,o=t.newName.trim()?`\u65B0\u5EFA\u6807\u7B7E\uFF1A${t.newName.trim()}`:r||"\u4E0D\u9009\u62E9\u6807\u7B7E";(0,c.useEffect)(()=>{let e=m=>{let f=l.current;f?.open&&(m.target instanceof Node&&f.contains(m.target)||(f.open=!1))},i=m=>{m.key==="Escape"&&l.current?.open&&(l.current.open=!1)};return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",i),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",i)}},[]),(0,c.useEffect)(()=>{t.disabled&&l.current?.open&&(l.current.open=!1)},[t.disabled]);let d=(e,i)=>{t.onChange(e,i),l.current?.removeAttribute("open"),queueMicrotask(()=>u.current?.focus())};return(0,a.jsxs)("details",{ref:l,className:`feed-group-picker${t.disabled?" is-disabled":""}`,children:[(0,a.jsx)("summary",{ref:u,"aria-label":`\u98DE\u4E66\u6807\u7B7E\uFF0C\u5F53\u524D\uFF1A${o}`,"aria-disabled":t.disabled||void 0,tabIndex:t.disabled?-1:void 0,onClick:e=>{t.disabled&&e.preventDefault()},children:(0,a.jsx)("span",{children:o})}),(0,a.jsxs)("div",{className:"feed-group-picker-pop",children:[(0,a.jsxs)("label",{className:"feed-group-picker-new",children:[(0,a.jsx)("span",{children:"\u65B0\u5EFA\u6807\u7B7E"}),(0,a.jsx)("input",{type:"text",maxLength:60,value:t.newName,placeholder:"\u8F93\u5165\u65B0\u6807\u7B7E\u540D\u79F0",onChange:e=>t.onChange("",e.currentTarget.value.trimStart()),onKeyDown:e=>{e.key==="Enter"&&e.preventDefault()}})]}),(0,a.jsx)("button",{type:"button","aria-current":!t.selectedId&&!t.newName.trim()?"true":void 0,onClick:()=>d("",""),children:"\u4E0D\u9009\u62E9\u6807\u7B7E"}),t.groups.map(e=>(0,a.jsx)("button",{type:"button","aria-current":t.selectedId===e.groupId&&!t.newName.trim()?"true":void 0,onClick:()=>d(e.groupId,""),children:e.name},e.groupId))]})]})}var b=s(p(),1),n=s(g(),1);function y(t){let[l,u]=(0,b.useState)(""),r=l.trim().toLowerCase(),o=(0,b.useMemo)(()=>r?t.bots.filter(e=>(e.botName??e.larkAppId).toLowerCase().includes(r)||e.larkAppId.toLowerCase().includes(r)):t.bots,[t.bots,r]),d=t.selected.size;return t.bots.length?(0,n.jsxs)("div",{className:"bot-multi-select",children:[(0,n.jsx)("input",{className:"bot-multi-select-search",type:"search",placeholder:t.searchPlaceholder,"aria-label":t.searchPlaceholder,value:l,onChange:e=>u(e.currentTarget.value)}),o.length?(0,n.jsx)("div",{className:"bot-multi-select-list",role:"group",children:o.map(e=>(0,n.jsxs)("label",{className:"bot-multi-select-row",children:[(0,n.jsx)("input",{type:"checkbox",value:e.larkAppId,checked:t.selected.has(e.larkAppId),onChange:i=>t.onToggle(e.larkAppId,i.currentTarget.checked)}),(0,n.jsxs)("span",{className:"bot-multi-select-main",children:[(0,n.jsx)("strong",{children:e.botName??e.larkAppId}),(0,n.jsxs)("small",{children:["(",e.larkAppId,")"]})]})]},e.larkAppId))}):(0,n.jsx)("p",{className:"bot-multi-select-empty",children:t.noMatchLabel}),d?(0,n.jsx)("small",{className:"bot-multi-select-count",children:t.selectedCountLabel(d)}):null]}):(0,n.jsx)("p",{className:"bot-multi-select-empty",children:t.emptyLabel})}export{k as a,y as b};
@@ -1,8 +0,0 @@
1
- import{a as we,b as ke,c as Se,d as Pe}from"./chunk-R3FXBFQH.js";import{a as be,b as ye}from"./chunk-WLIVBPJC.js";import{a as ve}from"./chunk-ZJVTGU5X.js";import{c as he}from"./chunk-2WQDS65D.js";import{c as Q,g as ee,h as de,m as te,n as pe,o as ge,p as fe,q as me}from"./chunk-5CJMHTT4.js";import"./chunk-G5XGBCM6.js";import{a as z,b as K,s as Z,v as ie,y as le}from"./chunk-Q2MT4VWH.js";import{a as ce}from"./chunk-SYC6D5XU.js";import{a as Ue,d as ue}from"./chunk-5THX4DI2.js";import{c as Y}from"./chunk-7SZRL6FY.js";var l=Y(Ue(),1);var je=/^[A-Za-z0-9._-]{1,64}$/,Ce=6,Ie=30;function oe(o,t){return Se(o,t)}function Ne(o,t,r=Ie){let n=Number.isFinite(r)?Math.max(1,Math.floor(r)):Ie,a=o.length,c=Math.max(1,Math.ceil(a/n)),s=Number.isFinite(t)?Math.floor(t):1,p=Math.min(c,Math.max(1,s)),h=(p-1)*n,R=Math.min(a,h+n);return{rows:o.slice(h,R),page:p,totalPages:c,from:a===0?0:h+1,to:R,total:a}}async function Ge(o,t,r){if(o.length===0)return[];let n=new Array(o.length),a=0,c=Math.min(Math.max(1,t),o.length);return await Promise.all(Array.from({length:c},async()=>{for(;a<o.length;){let s=a++;n[s]=await r(o[s])}})),n}function re(o){return je.test(o)&&o!=="."&&o!==".."}function ne(o){let t=String(o??"").trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64);return re(t)?t:"profile"}async function X(){let t=await(await fetch("/api/role-profiles")).json().catch(()=>({}));return Array.isArray(t.profiles)?t.profiles:[]}async function Re(o){let t=await X(),r=await Ge(t,Ce,async s=>{try{let h=await(await fetch(`/api/role-profiles/${encodeURIComponent(s.profileId)}`)).json().catch(()=>({}));return[s.profileId,Array.isArray(h.entries)?h.entries:[]]}catch{return[s.profileId,[]]}}),n=new Set,a=[];for(let s of o.chats??[])for(let p of s.memberBots??[]){if(!p?.inChat||!p?.hasRole||!p?.larkAppId)continue;let h=oe(p.larkAppId,s.chatId);n.has(h)||(n.add(h),a.push({chatId:s.chatId,larkAppId:p.larkAppId}))}let c=await Pe(a);return{profiles:t,entriesById:new Map(r),groupRoleContentByBot:c,loaded:!0}}async function xe(o){let t=(o.memberBots??[]).filter(r=>r?.inChat&&r?.larkAppId);return Ge(t,Ce,async r=>{try{let a=await(await fetch(`/api/roles/${encodeURIComponent(r.larkAppId)}/${encodeURIComponent(o.chatId)}`)).json().catch(()=>({})),c=a?.hasEffectiveRole??a?.hasRole,s="effectiveContent"in a?a.effectiveContent:a.content,p=c?String(s??"").trim():"",h=a?.effectiveSource==="chat"||a?.effectiveSource==="team"?a.effectiveSource:null;return{larkAppId:r.larkAppId,botName:r.botName,content:p,status:p?h??"chat":"empty"}}catch{return{larkAppId:r.larkAppId,botName:r.botName,content:"",status:"error"}}})}function Ae(o,t){return o.filter(r=>!t||!t.has(r.larkAppId))}function Be(o,t){let r=t.q.trim().toLowerCase();return o.filter(n=>!r||(n.name??"").toLowerCase().includes(r)||n.chatId.toLowerCase().includes(r)||(n.ownerId??"").toLowerCase().includes(r)).filter(n=>!t.missingOnly||(n.memberBots??[]).some(a=>!a.inChat))}function Te(o,t){if(t.size===0)return!0;let r=o?.memberBots??[];for(let n of t)if(!r.some(a=>a.larkAppId===n&&a.inChat))return!1;return!0}function Ee(o){let t=Array.isArray(o)?o:[],r=t.filter(n=>!!n?.ok).length;return{rows:t,okCount:r,failed:t.length-r}}function Le(o,t,r){let n=String(o??"").trim();if(!n)return null;if(r)return{kind:"warn",text:Z("groups.roleProfileBootstrapFailed",{name:n,reason:String(r)})};let a=typeof t=="string"&&t.trim()?t.trim():"";return a?{kind:"ok",text:Z("groups.roleProfileBootstrapSent",{name:n,messageId:a})}:{kind:"ok",text:Z("groups.roleProfileBootstrapDone",{name:n})}}function $e(o,t,r,n,a){let c=new Set(n);a&&c.add(a);let s={chatId:t,name:r,ownerId:a??null,memberBots:o.bots.map(p=>({larkAppId:p.larkAppId,botName:p.botName,inChat:c.has(p.larkAppId),oncallChat:null}))};return{bots:o.bots,chats:[s,...o.chats.filter(p=>p.chatId!==t)]}}var e=Y(ue(),1);function Me(){return{profiles:[],entriesById:new Map,groupRoleContentByBot:new Map,loaded:!1}}function He(o){let t={};for(let r of ie(o).split(";")){if(!r)continue;let n=r.indexOf(":");n<=0||(t[r.slice(0,n)]=r.slice(n+1))}return t}function _e(o){let t=o.chat,r=t.avatar??le(t.chatId),[n,a]=(0,l.useState)(!1);(0,l.useEffect)(()=>{a(!1)},[r]);let c=t.name??t.chatId,s=!!r&&!n;return(0,e.jsx)("span",{className:`orb-avatar orb-square orb-avatar-sm${s?" orb-has-img":""}`,style:He(c),"aria-hidden":"true",children:s?(0,e.jsx)("img",{className:"orb-img",src:r,alt:"",decoding:"async",referrerPolicy:"no-referrer",onError:()=>a(!0)}):null})}function ae(o){return(0,e.jsxs)("p",{className:"hint-warn",children:[(0,e.jsx)("strong",{children:o.title}),(0,e.jsx)("br",{}),(0,e.jsx)("small",{children:String(o.reason??"unknown")})]})}function De(o){let t=Ae(o.bots,o.excludeIds),r=o.tr;return(0,e.jsx)(ye,{bots:t,selected:o.selected,onToggle:o.onToggle,searchPlaceholder:r("botPicker.searchPlaceholder"),noMatchLabel:r("botPicker.noMatch"),emptyLabel:r("botPicker.empty"),selectedCountLabel:n=>r("botPicker.selectedCount",{n:String(n)})})}function We(o){let t=o.summary;return t.rows.length?(0,e.jsxs)("div",{className:t.failed?"hint-warn":"hint-ok",children:[(0,e.jsxs)("strong",{children:["\u6DFB\u52A0\u7ED3\u679C\uFF1A\u6210\u529F ",t.okCount,"/",t.rows.length,t.failed?`\uFF0C\u5931\u8D25 ${t.failed}`:""]}),(0,e.jsx)("ul",{children:t.rows.map((r,n)=>{let a=String(r?.id??"?");return(0,e.jsxs)("li",{children:[(0,e.jsx)("code",{children:a}),": ",r?.ok?"OK":`failed (${String(r?.error??"unknown")})`]},`${a}-${n}`)})})]}):(0,e.jsx)("p",{className:"hint-warn",children:"\u6CA1\u6709\u8FD4\u56DE\u6DFB\u52A0\u7ED3\u679C\u3002"})}function Je(o){let{chat:t,context:r,tr:n}=o;if(!r.profiles.length||!r.loaded)return null;let a=new Map;for(let h of t.memberBots??[])h?.inChat&&a.set(h.larkAppId,r.groupRoleContentByBot.get(oe(h.larkAppId,t.chatId))??null);if(!we(a))return null;let s=ke(t.memberBots??[],r.profiles,r.entriesById,a)[0];if(!s)return(0,e.jsx)("div",{className:"g-profile-status muted",children:n("groups.profileStatusUnmatched")});let p=s.kind==="full"?"groups.profileStatusFullChat":"groups.profileStatusPartial";return(0,e.jsx)("div",{className:`g-profile-status ${s.kind}`,children:n(p,{name:s.profileId,matched:s.matched,total:s.total,chat:s.chatMatched})})}function qe(o){return o?o.error?"error":o.inChat?"in":"out":"unknown"}function ze(o,t){switch(o){case"in":return t("groups.botStatusIn");case"out":return t("groups.botStatusOut");case"error":return t("groups.botStatusError");default:return t("groups.botStatusUnknown")}}function Ve(o){let t=new Map((o.chat.memberBots??[]).map(r=>[r.larkAppId,r]));return(0,e.jsx)("div",{className:"groups-bot-strip","aria-label":o.tr("groups.botCoverage"),children:o.bots.map(r=>{let n=t.get(r.larkAppId),a=qe(n),c=ze(a,o.tr),s=r.botName??r.larkAppId;return(0,e.jsxs)("span",{className:`groups-bot-pill groups-bot-${a}`,title:`${s}: ${c}${n?.error?` (${String(n.error)})`:""}`,children:[(0,e.jsx)("i",{"aria-hidden":"true"}),(0,e.jsx)("span",{className:"groups-bot-name",children:s}),(0,e.jsx)("span",{className:"groups-bot-state",children:c})]},r.larkAppId)})})}var Oe=(0,l.memo)(function(t){let{chat:r,tr:n}=t,c=(r.memberBots??[]).filter(s=>s.inChat).length;return(0,e.jsxs)(pe,{kind:"group",className:"groups-list-row","data-chat":r.chatId,children:[(0,e.jsx)(_e,{chat:r}),(0,e.jsxs)(ge,{children:[(0,e.jsxs)("div",{className:"groups-row-head",children:[(0,e.jsx)("b",{children:r.name??r.chatId}),(0,e.jsxs)("span",{className:"groups-row-meta",children:[(0,e.jsx)("span",{className:"groups-row-tag",children:(0,e.jsx)("code",{children:r.chatId})}),r.ownerId?(0,e.jsxs)("span",{className:"groups-row-tag groups-row-owner-tag",children:[(0,e.jsx)("span",{children:n("groups.owner")}),(0,e.jsx)("code",{children:r.ownerId})]}):null]})]}),(0,e.jsx)(Je,{chat:r,context:t.roleContext,tr:n})]}),(0,e.jsx)("span",{className:"groups-row-count",children:n("groups.memberSummary",{count:c,total:t.bots.length})}),(0,e.jsxs)("div",{className:"groups-row-lower",children:[(0,e.jsx)(Ve,{chat:r,bots:t.bots,tr:n}),(0,e.jsxs)(fe,{children:[(0,e.jsx)(ee,{className:"add-bots",onClick:()=>t.onAddBots(r),children:n("groups.addBots")}),(0,e.jsx)("button",{className:"save-profile",type:"button",onClick:()=>t.onSaveProfile(r),children:n("groups.saveAsProfile")}),(0,e.jsx)("button",{className:"manage-chat",type:"button",onClick:()=>t.onManage(r),children:n("groups.manage")})]})]})]})});function Ke(o){let{tr:t}=o,[r,n]=(0,l.useState)(!1),[a,c]=(0,l.useState)(null),[s,p]=(0,l.useState)(null),[h,R]=(0,l.useState)(!1),[g,C]=(0,l.useState)(new Set),[I,u]=(0,l.useState)(""),[k,v]=(0,l.useState)([]),[S,x]=(0,l.useState)(""),[L,B]=(0,l.useState)(""),[O,j]=(0,l.useState)(""),[$,J]=(0,l.useState)(!0),[A,T]=(0,l.useState)(""),[D,q]=(0,l.useState)(!1),[F,M]=(0,l.useState)(""),[d,w]=(0,l.useState)("");(0,l.useEffect)(()=>{let f=!0;return fetch("/api/feed-groups").then(async b=>{let P=await b.json().catch(()=>({}));if(!b.ok||!P.ok)throw new Error(P.message??P.error??`HTTP ${b.status}`);f&&(v(Array.isArray(P.groups)?P.groups:[]),x(typeof P.larkAppId=="string"?P.larkAppId:""))}).catch(b=>{f&&T(b instanceof Error?b.message:String(b))}).finally(()=>{f&&J(!1)}),()=>{f=!1}},[]),(0,l.useEffect)(()=>{if(!F)return;let f=!0,b=window.setInterval(()=>{fetch("/api/feed-groups").then(async P=>{let N=await P.json().catch(()=>({}));!P.ok||!N.ok||!f||(v(Array.isArray(N.groups)?N.groups:[]),x(typeof N.larkAppId=="string"?N.larkAppId:""),T(""),M(""),w(""))}).catch(()=>{})},1e3);return()=>{f=!1,window.clearInterval(b)}},[F]);async function U(){let f=S?`?larkAppId=${encodeURIComponent(S)}`:"",b=await fetch(`/api/feed-groups/auth-url${f}`),P=await b.json().catch(()=>({}));if(!b.ok||!P.authUrl){c({title:"\u65E0\u6CD5\u53D1\u8D77\u6807\u7B7E\u6388\u6743",reason:P.error??`HTTP ${b.status}`});return}M(String(P.authUrl)),w("")}async function H(f){q(!0);try{let b=await fetch("/api/feed-groups/oauth-callback",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({callbackUrl:f.trim()})}),P=await b.json().catch(()=>({}));if(!b.ok||!P.ok)throw new Error(P.message??P.error??`HTTP ${b.status}`);let N=await fetch("/api/feed-groups"),i=await N.json().catch(()=>({}));if(!N.ok||!i.ok)throw new Error(i.message??i.error??`HTTP ${N.status}`);v(Array.isArray(i.groups)?i.groups:[]),x(typeof i.larkAppId=="string"?i.larkAppId:""),T(""),M(""),w("")}catch(b){c({title:"\u6807\u7B7E\u6388\u6743\u5931\u8D25",reason:b instanceof Error?b.message:String(b)})}finally{q(!1)}}async function _(f){f.preventDefault();let b=new FormData(f.currentTarget),P=String(b.get("name")??"").trim(),N=String(b.get("bindWorkingDir")??"").trim(),i=String(b.get("roleProfileId")??"").trim(),m=[...g];if(m.length===0){c({title:"\u8BF7\u9009\u62E9 bot",reason:"\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A bot \u540E\u518D\u521B\u5EFA\u7FA4\u804A\u3002"});return}n(!0),c(null);try{let y=await fetch("/api/groups/create",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:P||void 0,larkAppIds:m,bindWorkingDir:N||void 0,roleProfileId:i||void 0,feedGroupId:L||void 0,newFeedGroupName:O||void 0,feedGroupAppId:L||O?S:void 0})}),G=await y.json().catch(()=>({ok:!1,error:`HTTP ${y.status}`}));G.ok&&G.chatId?(p(G),o.onCreated(G,m,P)):(c({title:"\u521B\u5EFA\u5931\u8D25",reason:G.error??`HTTP ${y.status}`}),n(!1))}catch(y){c({title:"\u7F51\u7EDC\u9519\u8BEF",reason:y}),n(!1)}}if(s){let f=String(s.chatId),b=typeof s.shareLink=="string"&&s.shareLink?s.shareLink:`https://applink.feishu.cn/client/chat/open?openChatId=${encodeURIComponent(f)}`,P=s.invalidBotIds??[],N=s.invalidUserIds??[],i=Array.isArray(s.oncallBindings)?s.oncallBindings:[],m=i.filter(E=>E?.ok).length,y=i.filter(E=>!E?.ok),G=Le(typeof s.roleProfileId=="string"?s.roleProfileId:"",s.roleProfileBootstrapMessageId,s.roleProfileBootstrapError);return(0,e.jsxs)("article",{className:"g-create-dialog g-create-success",children:[(0,e.jsx)("header",{children:(0,e.jsx)("h3",{children:t("groups.successTitle")})}),(0,e.jsxs)("p",{children:[(0,e.jsx)("b",{children:"chatId:"})," ",(0,e.jsx)("code",{children:f})," ",(0,e.jsx)("button",{type:"button","data-copy":f,onClick:()=>{ve(f,t("sessions.copy")).then(E=>{E&&(R(!0),o.setTimer(()=>R(!1),800))})},children:t(h?"sessions.copied":"sessions.copy")})]}),(0,e.jsxs)("p",{children:[(0,e.jsx)("b",{children:"\u521B\u5EFA\u8005:"})," ",(0,e.jsx)("code",{children:String(s.creator??"?")})]}),s.feedGroupId?(0,e.jsxs)("p",{className:"hint-ok",children:["\u5DF2\u52A0\u5165\u98DE\u4E66\u6807\u7B7E",s.feedGroupName?`\u300C${String(s.feedGroupName)}\u300D`:"","\u3002"]}):null,s.feedGroupError?(0,e.jsxs)("p",{className:"hint-warn",children:["\u7FA4\u804A\u5DF2\u521B\u5EFA\uFF0C\u4F46\u6807\u7B7E\u8BBE\u7F6E\u5931\u8D25\uFF1A",String(s.feedGroupError)]}):null,(0,e.jsx)(Ze,{resp:s}),i.length>0?y.length===0?(0,e.jsxs)("p",{className:"hint-ok",children:["\u5DF2\u7ED1\u5B9A\u76EE\u5F55\uFF1A",(0,e.jsx)("code",{children:String(s.bindResolvedPath??"")}),"\uFF08",m,"/",i.length," bots\uFF09"]}):(0,e.jsxs)("p",{className:"hint-warn",children:["\u76EE\u5F55\u7ED1\u5B9A\u90E8\u5206\u5931\u8D25\uFF1A\u6210\u529F ",m,"/",i.length,"\u3002",y.map((E,W)=>(0,e.jsxs)("span",{children:[(0,e.jsx)("br",{}),(0,e.jsx)("code",{children:String(E?.larkAppId??"?")}),": ",String(E?.error??"unknown")]},`${E?.larkAppId??"?"}-${W}`))]}):null,G?(0,e.jsx)("p",{className:G.kind==="ok"?"hint-ok":"hint-warn",children:G.text}):null,P.length||N.length?(0,e.jsxs)("ul",{children:[P.length?(0,e.jsxs)("li",{children:["\u65E0\u6548 bot id: ",(0,e.jsx)("code",{children:P.join(", ")})]}):null,N.length?(0,e.jsxs)("li",{children:["\u65E0\u6548\u7528\u6237 open_id: ",(0,e.jsx)("code",{children:N.join(", ")})]}):null]}):null,(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",id:"g-create-close",onClick:o.onClose,children:t("sessions.dismiss")}),(0,e.jsx)("a",{className:"btn-link primary",href:b,target:"_blank",rel:"noopener",children:t("groups.openGroup")})]})]})}return(0,e.jsxs)("article",{className:"g-create-dialog",children:[(0,e.jsxs)("header",{className:"g-create-head",children:[(0,e.jsx)("h3",{children:t("groups.createTitle")}),(0,e.jsx)("p",{children:t("groups.createHelp")})]}),(0,e.jsxs)("form",{id:"g-createform",className:"g-create-form",onSubmit:f=>{_(f)},children:[(0,e.jsxs)("fieldset",{className:"g-modal-field g-create-bots",children:[(0,e.jsx)("legend",{children:t("groups.botPicker")}),(0,e.jsx)("div",{className:"g-bot-picker",children:(0,e.jsx)(De,{bots:o.bots,tr:t,selected:g,onToggle:(f,b)=>C(P=>{let N=new Set(P);return b?N.add(f):N.delete(f),N})})})]}),(0,e.jsxs)("div",{className:"g-create-fields",children:[(0,e.jsxs)("fieldset",{className:"g-modal-field",children:[(0,e.jsx)("legend",{children:t("groups.name")}),(0,e.jsx)("input",{type:"text",name:"name",placeholder:t("groups.namePlaceholder"),maxLength:60})]}),(0,e.jsxs)("fieldset",{className:"g-modal-field",children:[(0,e.jsx)("legend",{children:t("groups.bindDir")}),(0,e.jsx)("input",{type:"text",name:"bindWorkingDir",placeholder:"e.g. ~/projects/botmux"}),(0,e.jsx)("small",{children:t("groups.bindDirHelp")})]}),(0,e.jsxs)("fieldset",{className:"g-modal-field g-profile-field",children:[(0,e.jsx)("legend",{children:t("groups.roleProfile")}),(0,e.jsx)("input",{type:"hidden",name:"roleProfileId",value:I}),(0,e.jsx)(me,{className:"g-profile-menu",ariaLabel:t("groups.roleProfile"),label:I||t("groups.roleProfileNone"),value:I,options:[{value:"",label:t("groups.roleProfileNone")},...o.roleProfiles.map(f=>({value:f.profileId,label:f.profileId}))],onChange:u}),(0,e.jsx)("small",{children:t("groups.roleProfileHelp")})]}),(0,e.jsxs)("fieldset",{className:"g-modal-field g-feed-group-field",children:[(0,e.jsx)("legend",{children:"\u98DE\u4E66\u6807\u7B7E\uFF08\u53EF\u9009\uFF09"}),(0,e.jsx)("input",{type:"hidden",name:"feedGroupId",value:L}),(0,e.jsx)(be,{groups:k,selectedId:L,newName:O,disabled:$||!!A,onChange:(f,b)=>{B(f),j(b)}}),(0,e.jsx)("small",{children:"\u5C55\u5F00\u540E\u53EF\u5728\u7B2C\u4E00\u884C\u8F93\u5165\u65B0\u6807\u7B7E\u540D\u79F0\uFF0C\u6216\u9009\u62E9\u4E0B\u65B9\u5DF2\u6709\u6807\u7B7E\u3002"}),$?(0,e.jsx)("small",{children:"\u6B63\u5728\u8BFB\u53D6\u98DE\u4E66\u6807\u7B7E\u2026"}):null,A?(0,e.jsxs)("div",{className:"hint-warn-inline",children:[(0,e.jsx)("small",{children:A})," ",(0,e.jsx)("button",{type:"button",disabled:D,onClick:()=>{U()},children:D?"\u6B63\u5728\u5B8C\u6210\u6388\u6743\u2026":"\u7ACB\u5373\u6388\u6743"}),(0,e.jsx)("small",{children:" \u6388\u6743\u540E\u4F1A\u5F39\u7A97\u63D0\u793A\u4F60\u7C98\u8D34\u56DE\u8C03\u5730\u5740\u3002"})]}):null,!$&&!A&&k.length===0?(0,e.jsx)("small",{children:"\u5F53\u524D\u6CA1\u6709\u6807\u7B7E\uFF0C\u53EF\u76F4\u63A5\u521B\u5EFA\u4E00\u4E2A\u3002"}):null]})]}),F?(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":"feed-group-auth-title",children:[(0,e.jsx)("h3",{id:"feed-group-auth-title",children:"\u6388\u6743\u98DE\u4E66\u6807\u7B7E"}),(0,e.jsxs)("p",{children:["\u70B9\u51FB\u4E0B\u9762\u7684\u6309\u94AE\uFF0C\u5728\u98DE\u4E66\u9875\u9762\u786E\u8BA4\u6388\u6743\u3002\u5982\u679C BotMux \u4E0E\u6D4F\u89C8\u5668\u5728\u540C\u4E00\u53F0\u7535\u8111\uFF0C\u786E\u8BA4\u540E\u4F1A\u81EA\u52A8\u5B8C\u6210\u6388\u6743\u3002\u5982\u679C BotMux \u8FD0\u884C\u5728\u8FDC\u7A0B\u865A\u62DF\u673A\u4E0A\uFF0C\u6D4F\u89C8\u5668\u4F1A\u56E0\u65E0\u6CD5\u8BBF\u95EE\u672C\u673A\u5730\u5740 ",(0,e.jsx)("code",{children:"127.0.0.1:9768"})," \u800C\u663E\u793A\u201C\u65E0\u6CD5\u8BBF\u95EE\u201D\uFF1B\u6B64\u65F6\u8BF7\u590D\u5236\u5730\u5740\u680F\u4E2D\u7684\u5B8C\u6574\u94FE\u63A5\u5E76\u7C98\u8D34\u5230\u4E0B\u65B9\u3002"]}),(0,e.jsx)("button",{type:"button",className:"primary feed-group-auth-open",onClick:()=>window.open(F,"_blank","noopener"),children:"\u8DF3\u8F6C\u98DE\u4E66\u6388\u6743"}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:"\u8BF7\u628A\u70B9\u51FB\u6388\u6743\u540E\u7684\u5B8C\u6574\u94FE\u63A5\u7C98\u8D34\u5728\u8FD9\u91CC"}),(0,e.jsx)("input",{type:"url",value:d,placeholder:"http://127.0.0.1:9768/callback?code=\u2026&state=\u2026",onChange:f=>w(f.currentTarget.value)})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",onClick:()=>{M(""),w("")},children:"\u53D6\u6D88"}),(0,e.jsx)("button",{type:"button",className:"primary",disabled:!d.trim()||D,onClick:()=>{H(d)},children:D?"\u6B63\u5728\u5B8C\u6210\u6388\u6743\u2026":"\u5B8C\u6210\u6388\u6743"})]})]})}):null,(0,e.jsx)("div",{className:"g-create-status","data-create-status":!0,"aria-live":"polite",children:a?(0,e.jsx)(ae,{...a}):null}),(0,e.jsxs)("div",{className:"actions g-create-actions",children:[(0,e.jsx)("button",{type:"button",id:"g-create-cancel",onClick:o.onClose,children:t("groups.cancel")}),(0,e.jsx)("button",{type:"submit",className:"primary",disabled:r,children:r?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("i",{className:"button-spinner","aria-hidden":"true"}),t("groups.createSubmitting")]}):t("groups.createSubmit")})]})]})]})}function Ze(o){let t=o.resp,r=t.autoInvitedOpenId,n=!!t.autoInviteRejected,a=t.ownerTransferredTo,c=t.transferError,s=t.notifyMessageId,p=t.notifyError;return r?(0,e.jsxs)("p",{className:"hint-ok",children:["\u5DF2\u81EA\u52A8\u9080\u8BF7\u4F60\uFF08",(0,e.jsx)("code",{children:r}),"\uFF09\u4F5C\u4E3A\u6210\u5458\u3002",a?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("br",{}),(0,e.jsx)("small",{children:"\u7FA4\u4E3B\u5DF2\u4ECE\u673A\u5668\u4EBA\u8F6C\u8BA9\u7ED9\u4F60\u3002"})]}):null,c?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("br",{}),(0,e.jsxs)("small",{className:"hint-warn-inline",children:["\u26A0 \u81EA\u52A8\u8F6C\u8BA9\u7FA4\u4E3B\u5931\u8D25\uFF08",c,"\uFF09\uFF0C\u4F60\u73B0\u5728\u662F\u6210\u5458\u4F46\u7FA4\u4E3B\u4ECD\u662F\u673A\u5668\u4EBA\u3002"]})]}):null,s?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("br",{}),(0,e.jsxs)("small",{children:["\u673A\u5668\u4EBA\u5DF2\u5728\u7FA4\u91CC @ \u4E86\u4F60\uFF08\u6D88\u606F id ",(0,e.jsx)("code",{children:s}),"\uFF09\uFF0C\u770B\u98DE\u4E66\u901A\u77E5\u5C31\u80FD\u8FDB\u7FA4\u3002"]})]}):null,p?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("br",{}),(0,e.jsxs)("small",{className:"hint-warn-inline",children:["\u26A0 \u81EA\u52A8 @ \u901A\u77E5\u5931\u8D25\uFF08",p,"\uFF09\uFF0C\u65B0\u7FA4\u53EF\u80FD\u4E0D\u4F1A\u4E3B\u52A8\u51FA\u73B0\u5728\u4F60\u4FA7\u8FB9\u680F\uFF0C\u5EFA\u8BAE\u4ECE\u4E0B\u9762\u6309\u94AE\u8DF3\u8FDB\u53BB\u3002"]})]}):null]}):n?(0,e.jsxs)("p",{className:"hint-warn",children:["\u98DE\u4E66\u62D2\u7EDD\u4E86\u81EA\u52A8\u9080\u8BF7\uFF08\u4F60\u7684 open_id \u5728\u521B\u5EFA\u8005 bot \u7684 scope \u4E0B\u4E0D\u53EF\u7528\uFF09\u3002",(0,e.jsx)("strong",{children:"\u4F60\u76EE\u524D\u4E0D\u662F\u65B0\u7FA4\u6210\u5458"}),"\uFF0C\u9700\u8981\u8BA9\u7FA4\u91CC\u7684\u67D0\u4E2A\u673A\u5668\u4EBA\u624B\u52A8\u628A\u4F60\u52A0\u8FDB\u6765\u3002"]}):(0,e.jsxs)("p",{className:"hint-warn",children:["\u6CA1\u5728 dashboard \u7F13\u5B58\u91CC\u627E\u5230 ownerOpenId\uFF0C",(0,e.jsx)("strong",{children:"\u6CA1\u6709\u81EA\u52A8\u9080\u8BF7\u4F60"}),"\u3002\u70B9\u5F00\u4E0B\u9762\u94FE\u63A5\u524D\uFF0C\u5148\u8BA9\u7FA4\u91CC\u4EFB\u4E00\u673A\u5668\u4EBA\u624B\u52A8\u628A\u4F60\u52A0\u8FDB\u53BB\u3002"]})}function Xe(o){let{chat:t,tr:r}=o,[n,a]=(0,l.useState)(!1),[c,s]=(0,l.useState)(null),[p,h]=(0,l.useState)(null),[R,g]=(0,l.useState)(new Set),C=(0,l.useMemo)(()=>new Set((t.memberBots??[]).filter(u=>u.inChat).map(u=>u.larkAppId)),[t]);async function I(u){u.preventDefault();let k=[...R];if(k.length===0){s({title:"\u8BF7\u9009\u62E9 bot",reason:"\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A bot \u540E\u518D\u6DFB\u52A0\u3002"}),h(null);return}a(!0),s(null),h(null);try{let S=await(await fetch(`/api/groups/${encodeURIComponent(t.chatId)}/add-bots`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({larkAppIds:k})})).json();if(S.error==="no_proxy_bot")s({title:"\u65E0\u6CD5\u6DFB\u52A0 bot",reason:"\u5F53\u524D\u7FA4\u91CC\u6CA1\u6709\u53EF\u4EE3\u7406\u64CD\u4F5C\u7684 bot\u3002\u8BF7\u5148\u5728\u98DE\u4E66\u91CC\u624B\u52A8\u62C9\u5165\u4E00\u4E2A bot\uFF0C\u7136\u540E\u91CD\u8BD5\u3002"});else if(S.result){let x=Ee(S.result);try{await o.onReloadGroups({force:!0}),h({result:x})}catch(L){h({result:x,refreshError:`\u6DFB\u52A0\u7ED3\u679C\u5DF2\u8FD4\u56DE\uFF0C\u4F46\u5237\u65B0\u7FA4\u7EC4\u5217\u8868\u5931\u8D25\uFF1A${L}`})}}else s({title:"\u54CD\u5E94\u5F02\u5E38",reason:JSON.stringify(S)})}catch(v){s({title:"\u7F51\u7EDC\u9519\u8BEF",reason:v})}finally{a(!1)}}return(0,e.jsxs)("article",{className:"g-add-bots-dialog",children:[(0,e.jsx)("header",{children:(0,e.jsxs)("h3",{children:[r("groups.addBots")," \xB7 ",t.name??t.chatId]})}),(0,e.jsx)("p",{children:r("groups.createHelp")}),(0,e.jsxs)("form",{id:"g-addform",onSubmit:u=>{I(u)},children:[(0,e.jsx)(De,{bots:o.bots,excludeIds:C,tr:r,selected:R,onToggle:(u,k)=>g(v=>{let S=new Set(v);return k?S.add(u):S.delete(u),S})}),(0,e.jsxs)("div",{"data-add-status":!0,"aria-live":"polite",children:[c?(0,e.jsx)(ae,{...c}):null,p?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(We,{summary:p.result}),p.refreshError?(0,e.jsx)(ae,{title:"\u5237\u65B0\u5931\u8D25",reason:p.refreshError}):null]}):null]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",id:"g-cancel",onClick:o.onClose,children:r("groups.cancel")}),(0,e.jsx)("button",{type:"submit",className:"primary",disabled:n,children:n?"Adding...":r("groups.addBots")})]})]})]})}function Ye(o){let{tr:t}=o,[r,n]=(0,l.useState)([]),[a,c]=(0,l.useState)([]),[s,p]=(0,l.useState)(!0),[h,R]=(0,l.useState)(null),g=(0,l.useMemo)(()=>[...a].sort((d,w)=>d.profileId.localeCompare(w.profileId)),[a]),C=g.length>0,I=r.filter(d=>d.status==="empty").length,u=r.filter(d=>d.status==="error").length,k=!s&&!h&&r.length>0&&u===0,[v,S]=(0,l.useState)("new"),[x,L]=(0,l.useState)(o.suggestedProfileId),[B,O]=(0,l.useState)(""),[j,$]=(0,l.useState)(!1),[J,A]=(0,l.useState)(null),T=v==="overwrite"?B:x.trim(),D=t(v==="overwrite"?"groups.saveProfileOverwriteSubmit":"groups.saveProfileSubmit"),q=h||(s?t("groups.saveProfilePreparing"):u?t("groups.saveProfileFailedLoadSummary",{count:u}):r.length?I?t("groups.saveProfileEntrySummaryWithEmpty",{count:r.length,emptyCount:I}):t("groups.saveProfileEntrySummary",{count:r.length}):t("groups.saveProfileNoRoles"));(0,l.useEffect)(()=>{let d=!0;return p(!0),R(null),A(null),(async()=>{try{let[w,U]=await Promise.all([xe(o.chat),X().catch(()=>[])]);if(!d)return;let H=[...U].sort((_,f)=>_.profileId.localeCompare(f.profileId));n(w),c(U),O(_=>H.some(f=>f.profileId===_)?_:H[0]?.profileId??"")}catch(w){if(!d)return;n([]),c([]),O(""),R(w instanceof Error?w.message:String(w))}finally{d&&p(!1)}})(),()=>{d=!1}},[o.chat]);async function F(d){if(d.preventDefault(),!!k){if(!re(T)){A({text:t("groups.saveProfileInvalid"),className:"error"});return}$(!0),A({text:t("groups.saveProfileSaving")});try{let U=(await Promise.all(r.map(async H=>(await fetch(`/api/role-profiles/${encodeURIComponent(T)}/${encodeURIComponent(H.larkAppId)}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({content:H.content,allowEmpty:!0})})).ok))).filter(Boolean).length;if(U!==r.length){A({text:t("groups.saveProfileFailed",{saved:U,total:r.length}),className:"error"}),$(!1);return}A({text:t("groups.saveProfileDone",{name:T,count:U}),className:"ok"}),await o.onRefreshRoleContext(),o.setTimer(o.onClose,700)}catch(w){A({text:String(w),className:"error"}),$(!1)}}}function M(d){d==="overwrite"&&!C||(S(d),A(null))}return(0,e.jsxs)("article",{className:"g-save-profile-dialog",children:[(0,e.jsxs)("header",{children:[(0,e.jsx)("h3",{children:t("groups.saveProfileTitle")}),(0,e.jsx)("p",{children:t("groups.saveProfileIntro",{name:o.chat.name??o.chat.chatId,count:s?"-":r.length})})]}),(0,e.jsxs)("form",{id:"g-save-profile-form",onSubmit:d=>{F(d)},children:[(0,e.jsxs)("section",{className:"g-save-profile-panel",children:[(0,e.jsxs)("div",{className:"g-save-profile-section-head",children:[(0,e.jsx)("span",{children:t("groups.saveProfileScope")}),(0,e.jsx)("small",{children:t("groups.saveProfileScopeHelp")})]}),(0,e.jsxs)("div",{className:"g-save-profile-stats",children:[(0,e.jsxs)("span",{children:[t("groups.saveProfileBotCount")," ",(0,e.jsx)("strong",{children:s?"-":r.length})]}),u?(0,e.jsxs)("span",{className:"warn",children:[t("groups.saveProfileLoadFailed")," ",(0,e.jsx)("strong",{children:u})]}):null]}),(0,e.jsx)("div",{className:"g-save-profile-entry-list",children:s?(0,e.jsx)("div",{className:"g-save-profile-loading",children:(0,e.jsx)(Q,{label:t("common.loading")})}):h?(0,e.jsx)("div",{className:"g-save-profile-empty",children:h}):r.length?r.map(d=>(0,e.jsxs)("div",{className:`g-save-profile-entry ${d.status==="error"?"error":""}`,children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:d.botName??d.larkAppId}),(0,e.jsx)("code",{children:d.larkAppId})]}),(0,e.jsx)("span",{className:`g-save-profile-entry-status ${d.status==="error"?"error":"ok"}`,children:t(d.status==="error"?"groups.saveProfileStatus.error":"groups.saveProfileStatus.entry")})]},d.larkAppId)):(0,e.jsx)("div",{className:"g-save-profile-empty",children:t("groups.saveProfileNoRoles")})})]}),(0,e.jsxs)("div",{className:"form-row",children:[(0,e.jsx)("span",{children:t("groups.saveProfileMode")}),(0,e.jsxs)("div",{className:"g-save-profile-switch",role:"tablist","aria-label":t("groups.saveProfileMode"),children:[(0,e.jsx)("button",{type:"button",className:v==="new"?"active":"","data-save-profile-mode":"new","aria-pressed":v==="new",onClick:()=>M("new"),children:t("groups.saveProfileNew")}),(0,e.jsx)("button",{type:"button",className:v==="overwrite"?"active":"","data-save-profile-mode":"overwrite","aria-pressed":v==="overwrite",disabled:!C,onClick:()=>M("overwrite"),children:t("groups.saveProfileOverwrite")})]})]}),(0,e.jsxs)("label",{className:"form-row","data-profile-mode-row":"new",hidden:v!=="new",children:[(0,e.jsx)("span",{children:t("groups.saveProfileIdLabel")}),(0,e.jsx)("input",{type:"text",name:"profileId",value:x,maxLength:64,autoComplete:"off",onChange:d=>{L(d.currentTarget.value),A(null)}}),(0,e.jsx)("small",{children:t("groups.saveProfileInvalid")})]}),(0,e.jsxs)("div",{className:"form-row","data-profile-mode-row":"overwrite",hidden:v!=="overwrite",children:[(0,e.jsx)("span",{children:t("groups.saveProfileExistingLabel")}),C?(0,e.jsx)("div",{className:"g-save-profile-picker",children:g.map(d=>(0,e.jsxs)("button",{type:"button",className:`g-save-profile-pick ${d.profileId===B?"selected":""}`,"data-profile-id":d.profileId,"aria-pressed":d.profileId===B,onClick:()=>{O(d.profileId),S("overwrite"),A(null)},children:[(0,e.jsx)("span",{children:d.profileId}),(0,e.jsx)("small",{children:t("groups.saveProfileExistingMeta",{count:d.entryCount??0})})]},d.profileId))}):(0,e.jsx)("div",{className:"g-save-profile-summary warn",children:t("groups.saveProfileExistingEmpty")}),(0,e.jsx)("small",{children:t("groups.saveProfileOverwriteHelp")})]}),(0,e.jsxs)("div",{className:"g-save-profile-target",children:[(0,e.jsx)("span",{children:t("groups.saveProfileTarget")}),(0,e.jsx)("code",{"data-save-profile-target":!0,children:T||"-"}),(0,e.jsx)("small",{"data-save-profile-target-mode":!0,children:t(v==="overwrite"?"groups.saveProfileTargetOverwrite":"groups.saveProfileTargetNew")})]}),(0,e.jsx)("div",{className:`g-save-profile-summary ${k?"":"warn"}`,children:q}),(0,e.jsx)("div",{className:`g-save-profile-status ${J?.className??""}`,"data-save-profile-status":!0,children:J?.text??""}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",id:"g-save-profile-cancel",onClick:o.onClose,children:t("groups.cancel")}),(0,e.jsx)("button",{type:"submit",className:"primary",disabled:!k||j||v==="overwrite"&&!B,children:j?t("groups.saveProfileSaving"):D})]})]})]})}function Qe(o){let{member:t,tr:r}=o,n=(0,l.useRef)(null),[a,c]=(0,l.useState)(!!t.oncallChat),[s,p]=(0,l.useState)(t.oncallChat?.workingDir??""),[h,R]=(0,l.useState)(!1),[g,C]=(0,l.useState)(null);async function I(){C(null);let u=s.trim();if(a&&!u){C({text:r("groups.needWorkingDir"),className:"hint-warn-inline"});return}R(!0);try{let k=`/api/groups/${encodeURIComponent(o.chat.chatId)}/oncall/${encodeURIComponent(t.larkAppId)}`,v=a?await fetch(k,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({workingDir:u})}):await fetch(k,{method:"DELETE"}),S=await v.json().catch(()=>({}));if(v.ok&&S.ok){C({text:a?`\u2713 \u5DF2\u7ED1\u5B9A \u2192 ${S.resolvedPath??u}`:"\u2713 \u5DF2\u89E3\u7ED1",className:"hint-ok"});try{await o.onSaved()}catch{}}else C({text:`\u2717 ${S.error??v.status}`,className:"hint-warn-inline"})}catch(k){C({text:`\u2717 ${k?.message??k}`,className:"hint-warn-inline"})}finally{R(!1)}}return(0,e.jsxs)("div",{className:"oncall-row","data-bot":t.larkAppId,children:[(0,e.jsxs)("label",{className:"checkbox-row",children:[(0,e.jsx)("input",{type:"checkbox","data-action":"toggle",checked:a,onChange:u=>{c(u.currentTarget.checked),u.currentTarget.checked&&window.setTimeout(()=>n.current?.focus(),0)}}),(0,e.jsx)("strong",{children:t.botName??t.larkAppId}),(0,e.jsxs)("small",{children:["(",t.larkAppId,")"]})]}),(0,e.jsxs)("div",{className:"oncall-row-body",children:[(0,e.jsx)("input",{ref:n,type:"text","data-input":"workingDir",placeholder:"e.g. /root/iserver/botmux",value:s,disabled:!a,onChange:u=>p(u.currentTarget.value)}),(0,e.jsx)("button",{type:"button","data-action":"save",disabled:h,onClick:()=>{I()},children:r("groups.save")}),(0,e.jsx)("span",{className:`oncall-status ${g?.className??""}`,"data-status":!0,children:g?.text??""})]})]})}function et(o){let{chat:t,tr:r}=o,n=(t.memberBots??[]).filter(g=>g.inChat),a=typeof t.ownerId=="string"?t.ownerId:"",[c,s]=(0,l.useState)(()=>new Set);function p(g,C){s(I=>{let u=new Set(I);return C?u.add(g):u.delete(g),u})}async function h(){let g=[...c];if(g.length===0){alert("\u81F3\u5C11\u9009\u4E00\u4E2A\u673A\u5668\u4EBA");return}if(confirm(`\u786E\u5B9A\u8BA9 ${g.length} \u4E2A\u673A\u5668\u4EBA\u9000\u51FA\u7FA4\u804A\uFF1F\u8BE5 bot \u5728\u6B64\u7FA4\u7684\u4F1A\u8BDD\u4F1A\u4E00\u5E76\u5173\u95ED\u3002`))try{let I=await(await fetch(`/api/groups/${encodeURIComponent(t.chatId)}/leave`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({larkAppIds:g})})).json(),u=(I.result??[]).map(k=>{if(!k.ok)return`${k.larkAppId}: \u5931\u8D25 (${k.error??"unknown"})`;let v=k.closedSessions??[],S=v.filter(B=>!B.ok).length,x=v.length-S,L=v.length===0?"":S===0?`\uFF08\u5173\u95ED ${x} \u4E2A\u4F1A\u8BDD\uFF09`:`\uFF08\u5173\u95ED ${x} \u4E2A\uFF0C${S} \u4E2A\u5931\u8D25\uFF09`;return`${k.larkAppId}: OK${L}`}).join(`
2
- `);alert(u||`Unexpected: ${JSON.stringify(I)}`),await o.onReloadGroups({force:!0})}catch(C){alert("Network error: "+C)}finally{o.onClose()}}async function R(){if(n.length===0||!confirm(`\u786E\u5B9A\u89E3\u6563\u7FA4\u804A\u300C${t.name??t.chatId}\u300D\uFF1F\u6B64\u64CD\u4F5C\u4E0D\u53EF\u6062\u590D\uFF0C\u672C\u7FA4\u6240\u6709\u673A\u5668\u4EBA\u4F1A\u8BDD\u4E5F\u4F1A\u4E00\u5E76\u5173\u95ED\u3002`))return;let g=[...n].sort((I,u)=>(u.larkAppId===a?1:0)-(I.larkAppId===a?1:0)),C=[];for(let I of g)try{let u=await fetch(`/api/groups/${encodeURIComponent(t.chatId)}/disband`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({larkAppId:I.larkAppId})}),k=await u.json();if(k.ok){let v=k.closedSessions??[],S=v.filter(B=>!B.ok).length,x=v.length-S,L=v.length===0?"":S===0?`
3
- \u5173\u95ED\u4E86 ${x} \u4E2A\u4F1A\u8BDD\u3002`:`
4
- \u5173\u95ED\u4E86 ${x} \u4E2A\u4F1A\u8BDD\uFF0C${S} \u4E2A\u4F1A\u8BDD\u5173\u95ED\u5931\u8D25\u3002`;alert(`\u5DF2\u89E3\u6563\uFF08\u7531 ${I.botName??I.larkAppId} \u6267\u884C\uFF09${L}`),await o.onReloadGroups({force:!0}),o.onClose();return}C.push(`${I.botName??I.larkAppId}: ${k.error??u.status}`)}catch(u){C.push(`${I.botName??I.larkAppId}: ${u}`)}alert(`\u6240\u6709\u5728\u7FA4\u673A\u5668\u4EBA\u5747\u65E0\u6CD5\u89E3\u6563\uFF1A
5
- ${C.join(`
6
- `)}
7
-
8
- \u5EFA\u8BAE\u6539\u7528\u300C\u9000\u51FA\u7FA4\u804A\u300D\u3002`)}return(0,e.jsxs)("article",{className:"g-manage-dialog",children:[(0,e.jsx)("header",{children:(0,e.jsx)("h3",{children:r("groups.manageTitle",{name:t.name??t.chatId})})}),(0,e.jsxs)("div",{className:"g-manage-meta",children:[(0,e.jsxs)("span",{children:[(0,e.jsx)("b",{children:"chatId"}),(0,e.jsx)("code",{children:t.chatId})]}),(0,e.jsxs)("span",{children:[(0,e.jsx)("b",{children:r("groups.owner")}),(0,e.jsx)("code",{children:t.ownerId??r("common.unknown")})]})]}),(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:r("groups.oncall")}),(0,e.jsx)("p",{children:(0,e.jsx)("small",{children:r("groups.oncallHelp")})}),n.length===0?(0,e.jsx)("p",{className:"empty",children:"\u6CA1\u6709\u673A\u5668\u4EBA\u5728\u7FA4\u91CC"}):n.map(g=>(0,e.jsx)(Qe,{chat:t,member:g,tr:r,onSaved:async()=>{await o.onReloadGroups({force:!0})}},g.larkAppId))]}),(0,e.jsxs)("fieldset",{children:[(0,e.jsx)("legend",{children:r("groups.leaveTitle")}),n.length===0?(0,e.jsx)("p",{className:"empty",children:"\u6CA1\u6709\u673A\u5668\u4EBA\u5728\u7FA4\u91CC"}):(0,e.jsx)("div",{className:"g-leave-picker",children:n.map(g=>(0,e.jsxs)("label",{className:"checkbox-row",children:[(0,e.jsx)("input",{type:"checkbox",name:"leave-bot",value:g.larkAppId,checked:c.has(g.larkAppId),onChange:C=>p(g.larkAppId,C.currentTarget.checked)}),(0,e.jsxs)("span",{className:"checkbox-row-main",children:[(0,e.jsx)("strong",{children:g.botName??g.larkAppId}),g.larkAppId===a?(0,e.jsx)("small",{children:"\xB7 \u7FA4\u4E3B"}):null]})]},g.larkAppId))})]}),(0,e.jsx)("p",{className:"g-manage-danger-hint",children:r("groups.dangerHint")}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",onClick:o.onClose,children:r("sessions.dismiss")}),(0,e.jsx)("button",{id:"g-leave-btn",type:"button",disabled:n.length===0,onClick:()=>{h()},children:r("groups.leaveSelected")}),(0,e.jsx)("button",{id:"g-disband-btn",type:"button",className:"contrast",disabled:n.length===0,onClick:()=>{R()},children:r("groups.disband")})]})]})}function tt(o){let t=(0,l.useRef)(null);(0,l.useEffect)(()=>{let a=t.current;if(!a)return;let c=()=>o.onClose();return a.addEventListener("close",c),()=>a.removeEventListener("close",c)},[o.onClose]),(0,l.useEffect)(()=>{let a=t.current;a&&(o.dialog&&!a.open&&a.showModal(),!o.dialog&&a.open&&a.close())},[o.dialog]);let r=null;o.dialog?.type==="create"?r=(0,e.jsx)(Ke,{bots:o.snapshot.bots,roleProfiles:o.dialog.roleProfiles,tr:o.tr,onClose:o.onClose,onCreated:o.onCreated,setTimer:o.setTimer}):o.dialog?.type==="add-bots"?r=(0,e.jsx)(Xe,{chat:o.dialog.chat,bots:o.snapshot.bots,tr:o.tr,onClose:o.onClose,onReloadGroups:o.onReloadGroups}):o.dialog?.type==="save-profile"?r=(0,e.jsx)(Ye,{chat:o.dialog.chat,suggestedProfileId:o.dialog.suggestedProfileId,tr:o.tr,onClose:o.onClose,onRefreshRoleContext:o.onRefreshRoleContext,setTimer:o.setTimer}):o.dialog?.type==="manage"&&(r=(0,e.jsx)(et,{chat:o.dialog.chat,tr:o.tr,onClose:o.onClose,onReloadGroups:o.onReloadGroups}));let n=o.dialog?.type==="create"?"groups-create-modal":void 0;return(0,e.jsx)("dialog",{id:"g-drawer",className:n,ref:t,onMouseDown:a=>{a.target===a.currentTarget&&a.currentTarget.close()},children:r})}function ot(){let o=he(),t=(0,l.useRef)(!1),r=(0,l.useRef)(z),n=(0,l.useRef)(new Set),a=(0,l.useRef)(new Map),c=(0,l.useRef)(0),[s,p]=(0,l.useState)(z),[h,R]=(0,l.useState)(()=>Me()),[g,C]=(0,l.useState)({q:"",missingOnly:!1}),[I,u]=(0,l.useState)(!0),[k,v]=(0,l.useState)(null),[S,x]=(0,l.useState)(!1),[L,B]=(0,l.useState)(null),[O,j]=(0,l.useState)(1),$=(0,l.useCallback)(i=>{p(m=>{let y=typeof i=="function"?i(m):i;return r.current=y,y})},[]),J=(0,l.useCallback)((i,m)=>{let y=window.setTimeout(()=>{n.current.delete(y),t.current&&i()},m);return n.current.add(y),y},[]),A=(0,l.useCallback)(i=>new Promise(m=>{let y=window.setTimeout(()=>{n.current.delete(y),a.current.delete(y),m()},i);n.current.add(y),a.current.set(y,m)}),[]),T=(0,l.useCallback)(async i=>{let m=++c.current;try{let y=await Re(i??r.current);t.current&&m===c.current&&R(y)}catch{t.current&&m===c.current&&R({...Me(),loaded:!0})}},[]),D=(0,l.useCallback)(async i=>{let m=await K({force:i?.force});return t.current&&($(m),v(null),T(m)),m},[T,$]),q=(0,l.useCallback)(async(i,m)=>{let y=[600,1200,1200,1200,1200,1200];for(let G of y){if(await A(G),!t.current)return;let E;try{E=await K({force:!0})}catch{continue}if(!t.current)return;let W=(E.chats??[]).find(V=>V.chatId===i);if(W&&Te(W,m)){$(E),T(E);return}}},[A,T,$]);(0,l.useEffect)(()=>(t.current=!0,(async()=>{u(!0);try{await D()}catch(i){t.current&&($(z),v(i instanceof Error?i.message:String(i)),T(z))}finally{t.current&&u(!1)}})(),()=>{t.current=!1,c.current+=1;for(let i of n.current)window.clearTimeout(i);n.current.clear();for(let i of a.current.values())i();a.current.clear()}),[D]);let F=(0,l.useMemo)(()=>Be(s.chats,g),[s.chats,g]),M=(0,l.useMemo)(()=>F.filter(i=>!i.sessionGroup),[F]),d=(0,l.useMemo)(()=>F.filter(i=>i.sessionGroup),[F]),w=(0,l.useMemo)(()=>Ne(M,O),[M,O]);(0,l.useEffect)(()=>{O!==w.page&&j(w.page)},[O,w.page]);async function U(){x(!0);try{await D({force:!0})}catch(i){v(i instanceof Error?i.message:String(i))}finally{t.current&&x(!1)}}async function H(){if(r.current.bots.length===0){alert(o("groups.noBotsOnline"));return}let i=[];try{i=await X()}catch{}t.current&&B({type:"create",roleProfiles:i})}function _(i,m,y){let G=String(i.chatId),E=Array.isArray(i.invalidBotIds)?i.invalidBotIds:[],W=m.filter(Fe=>!E.includes(Fe)),V=new Set(W);typeof i.creator=="string"&&i.creator&&V.add(i.creator);let se=$e(r.current,G,y||G,W,i.creator);$(se),T(se),q(G,V).catch(()=>{})}let f=(0,l.useCallback)(i=>{let m=new Set((i.memberBots??[]).filter(G=>G.inChat).map(G=>G.larkAppId));if(!r.current.bots.filter(G=>!m.has(G.larkAppId)).length){alert("All configured bots are already in this chat.");return}B({type:"add-bots",chat:i})},[]),b=(0,l.useCallback)(i=>{let m=ne(i.name??""),y=m==="profile"?ne(i.chatId):m;B({type:"save-profile",chat:i,suggestedProfileId:y})},[]),P=(0,l.useCallback)(i=>{B({type:"manage",chat:i})},[]);function N(i){let m=document.getElementById("g-body");m&&(m.scrollTop=0),j(i)}return(0,e.jsxs)("section",{className:"page groups-page",children:[(0,e.jsxs)("div",{className:"page-heading",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"eyebrow",children:o("nav.groups")}),(0,e.jsx)("h1",{children:o("groups.title")})]}),(0,e.jsx)("div",{className:"page-heading-actions",children:(0,e.jsx)(ee,{id:"g-create",className:"page-primary-action",onClick:()=>{H()},children:o("groups.create")})})]}),(0,e.jsxs)("form",{id:"g-filters",className:"filters dashboard-toolbar groups-toolbar",onSubmit:i=>i.preventDefault(),children:[(0,e.jsx)("input",{type:"search",name:"q",placeholder:o("groups.search"),value:g.q,onChange:i=>{let m=i.currentTarget.value;j(1),C(y=>({...y,q:m}))}}),(0,e.jsxs)("label",{className:"filter-toggle",children:[(0,e.jsx)("input",{type:"checkbox",name:"missing",checked:g.missingOnly,onChange:i=>{let m=i.currentTarget.checked;j(1),C(y=>({...y,missingOnly:m}))}}),(0,e.jsx)("span",{className:"filter-toggle-label",children:o("groups.missingOnly")}),(0,e.jsx)("span",{className:"filter-toggle-switch","aria-hidden":"true"})]}),(0,e.jsx)("span",{className:"groups-toolbar-spacer","aria-hidden":"true"}),(0,e.jsxs)("span",{className:"groups-toolbar-count",children:[o("groups.matrixTitle")," ",I?"-/-":`${M.length}/${s.chats.length}`]}),(0,e.jsx)(de,{id:"g-refresh",label:o("groups.refresh"),busy:S,disabled:S,onClick:()=>{U()}})]}),k?(0,e.jsxs)("p",{className:"hint-warn",children:["\u52A0\u8F7D\u7FA4\u7EC4\u5931\u8D25\uFF1A",k]}):null,(0,e.jsx)("section",{className:"overview-block groups-matrix-section",children:I?(0,e.jsx)("div",{id:"g-loading",children:(0,e.jsx)(Q,{label:o("common.loading")})}):(0,e.jsxs)("div",{className:"groups-list-wrap",id:"g-table-wrap",children:[M.length===0?(0,e.jsx)("div",{className:"empty groups-list-empty",id:"g-body",children:o("groups.empty")}):(0,e.jsx)(te,{id:"g-body",className:"groups-list",children:w.rows.map(i=>(0,e.jsx)(Oe,{chat:i,bots:s.bots,roleContext:h,tr:o,onAddBots:f,onSaveProfile:b,onManage:P},i.chatId))}),M.length>0&&w.totalPages>1?(0,e.jsxs)("nav",{className:"groups-pagination","aria-label":o("groups.paginationLabel"),children:[(0,e.jsx)("span",{className:"groups-pagination-status","aria-live":"polite",children:o("groups.pageStatus",{page:w.page,pages:w.totalPages,from:w.from,to:w.to,total:w.total})}),(0,e.jsxs)("div",{className:"groups-pagination-actions",children:[(0,e.jsx)("button",{type:"button",disabled:w.page<=1,onClick:()=>N(w.page-1),children:o("groups.prevPage")}),(0,e.jsx)("button",{type:"button",disabled:w.page>=w.totalPages,onClick:()=>N(w.page+1),children:o("groups.nextPage")})]})]}):null]})}),!I&&d.length>0?(0,e.jsxs)("details",{className:"overview-block groups-session-section",open:!!g.q,"data-session-groups":!0,children:[(0,e.jsxs)("summary",{style:{cursor:"pointer",padding:"10px 4px",fontWeight:600,opacity:.85},children:["\u{1F916} ",o("groups.sessionSection"),"\uFF08",d.length,"\uFF09",(0,e.jsx)("span",{style:{fontWeight:400,opacity:.7,marginLeft:8},children:o("groups.sessionSectionHint")})]}),(0,e.jsx)(te,{id:"g-session-body",className:"groups-list",children:d.map(i=>(0,e.jsx)(Oe,{chat:i,bots:s.bots,roleContext:h,tr:o,onAddBots:f,onSaveProfile:b,onManage:P},i.chatId))})]}):null,(0,e.jsx)(tt,{dialog:L,snapshot:s,tr:o,onClose:()=>B(null),onCreated:_,onReloadGroups:D,onRefreshRoleContext:()=>T(),setTimer:J})]})}function ht(o){return ce(o,(0,e.jsx)(ot,{}))}export{Xe as AddBotsDialog,ht as renderGroupsPage};