botmux 3.15.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 (780) 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/types.d.ts +101 -6
  45. package/dist/adapters/backend/types.d.ts.map +1 -1
  46. package/dist/adapters/backend/types.js.map +1 -1
  47. package/dist/adapters/backend/zmx-backend.d.ts +11 -0
  48. package/dist/adapters/backend/zmx-backend.d.ts.map +1 -1
  49. package/dist/adapters/backend/zmx-backend.js +16 -1
  50. package/dist/adapters/backend/zmx-backend.js.map +1 -1
  51. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  52. package/dist/adapters/cli/codex-app.js +2 -2
  53. package/dist/adapters/cli/codex-app.js.map +1 -1
  54. package/dist/adapters/cli/codex.d.ts.map +1 -1
  55. package/dist/adapters/cli/codex.js +7 -0
  56. package/dist/adapters/cli/codex.js.map +1 -1
  57. package/dist/adapters/cli/copilot.d.ts +3 -1
  58. package/dist/adapters/cli/copilot.d.ts.map +1 -1
  59. package/dist/adapters/cli/copilot.js +23 -5
  60. package/dist/adapters/cli/copilot.js.map +1 -1
  61. package/dist/adapters/cli/cursor.d.ts.map +1 -1
  62. package/dist/adapters/cli/cursor.js +13 -3
  63. package/dist/adapters/cli/cursor.js.map +1 -1
  64. package/dist/adapters/cli/grok.d.ts.map +1 -1
  65. package/dist/adapters/cli/grok.js +24 -5
  66. package/dist/adapters/cli/grok.js.map +1 -1
  67. package/dist/adapters/cli/kimi.d.ts.map +1 -1
  68. package/dist/adapters/cli/kimi.js +19 -1
  69. package/dist/adapters/cli/kimi.js.map +1 -1
  70. package/dist/adapters/cli/mojo.d.ts +28 -0
  71. package/dist/adapters/cli/mojo.d.ts.map +1 -0
  72. package/dist/adapters/cli/mojo.js +58 -0
  73. package/dist/adapters/cli/mojo.js.map +1 -0
  74. package/dist/adapters/cli/pi.d.ts +6 -4
  75. package/dist/adapters/cli/pi.d.ts.map +1 -1
  76. package/dist/adapters/cli/pi.js +6 -4
  77. package/dist/adapters/cli/pi.js.map +1 -1
  78. package/dist/adapters/cli/read-isolation.d.ts +251 -1
  79. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  80. package/dist/adapters/cli/read-isolation.js +254 -1
  81. package/dist/adapters/cli/read-isolation.js.map +1 -1
  82. package/dist/adapters/cli/registry.d.ts +13 -1
  83. package/dist/adapters/cli/registry.d.ts.map +1 -1
  84. package/dist/adapters/cli/registry.js +19 -1
  85. package/dist/adapters/cli/registry.js.map +1 -1
  86. package/dist/adapters/cli/runner-input.d.ts +3 -3
  87. package/dist/adapters/cli/runner-input.d.ts.map +1 -1
  88. package/dist/adapters/cli/runner-input.js +4 -3
  89. package/dist/adapters/cli/runner-input.js.map +1 -1
  90. package/dist/adapters/cli/shared-hints.d.ts +3 -1
  91. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  92. package/dist/adapters/cli/shared-hints.js +22 -6
  93. package/dist/adapters/cli/shared-hints.js.map +1 -1
  94. package/dist/adapters/cli/types.d.ts +29 -4
  95. package/dist/adapters/cli/types.d.ts.map +1 -1
  96. package/dist/bot-registry.d.ts +20 -0
  97. package/dist/bot-registry.d.ts.map +1 -1
  98. package/dist/bot-registry.js +30 -4
  99. package/dist/bot-registry.js.map +1 -1
  100. package/dist/cli/arg-utils.d.ts +5 -0
  101. package/dist/cli/arg-utils.d.ts.map +1 -1
  102. package/dist/cli/arg-utils.js +7 -0
  103. package/dist/cli/arg-utils.js.map +1 -1
  104. package/dist/cli/bots-list-output.d.ts +130 -2
  105. package/dist/cli/bots-list-output.d.ts.map +1 -1
  106. package/dist/cli/bots-list-output.js +173 -27
  107. package/dist/cli/bots-list-output.js.map +1 -1
  108. package/dist/cli/daemon-lifecycle-env.d.ts +10 -3
  109. package/dist/cli/daemon-lifecycle-env.d.ts.map +1 -1
  110. package/dist/cli/daemon-lifecycle-env.js +38 -11
  111. package/dist/cli/daemon-lifecycle-env.js.map +1 -1
  112. package/dist/cli/dashboard-command.d.ts +15 -0
  113. package/dist/cli/dashboard-command.d.ts.map +1 -1
  114. package/dist/cli/dashboard-command.js +22 -0
  115. package/dist/cli/dashboard-command.js.map +1 -1
  116. package/dist/cli/log-tail.d.ts +54 -0
  117. package/dist/cli/log-tail.d.ts.map +1 -0
  118. package/dist/cli/log-tail.js +167 -0
  119. package/dist/cli/log-tail.js.map +1 -0
  120. package/dist/cli/pm2-env.d.ts +16 -0
  121. package/dist/cli/pm2-env.d.ts.map +1 -0
  122. package/dist/cli/pm2-env.js +63 -0
  123. package/dist/cli/pm2-env.js.map +1 -0
  124. package/dist/cli/pm2-fleet-lock.d.ts +26 -0
  125. package/dist/cli/pm2-fleet-lock.d.ts.map +1 -0
  126. package/dist/cli/pm2-fleet-lock.js +50 -0
  127. package/dist/cli/pm2-fleet-lock.js.map +1 -0
  128. package/dist/cli/pm2-god-retirement.d.ts +59 -0
  129. package/dist/cli/pm2-god-retirement.d.ts.map +1 -0
  130. package/dist/cli/pm2-god-retirement.js +95 -0
  131. package/dist/cli/pm2-god-retirement.js.map +1 -0
  132. package/dist/cli/session-list-wake.d.ts +41 -0
  133. package/dist/cli/session-list-wake.d.ts.map +1 -0
  134. package/dist/cli/session-list-wake.js +102 -0
  135. package/dist/cli/session-list-wake.js.map +1 -0
  136. package/dist/cli/workflow.d.ts.map +1 -1
  137. package/dist/cli/workflow.js +26 -0
  138. package/dist/cli/workflow.js.map +1 -1
  139. package/dist/cli.d.ts.map +1 -1
  140. package/dist/cli.js +933 -115
  141. package/dist/cli.js.map +1 -1
  142. package/dist/codex-app-runner.js +261 -49
  143. package/dist/codex-app-runner.js.map +1 -1
  144. package/dist/core/cli-runtime-update.d.ts +8 -0
  145. package/dist/core/cli-runtime-update.d.ts.map +1 -1
  146. package/dist/core/cli-runtime-update.js +127 -8
  147. package/dist/core/cli-runtime-update.js.map +1 -1
  148. package/dist/core/close-residual.d.ts +64 -0
  149. package/dist/core/close-residual.d.ts.map +1 -0
  150. package/dist/core/close-residual.js +93 -0
  151. package/dist/core/close-residual.js.map +1 -0
  152. package/dist/core/closed-session-card.d.ts.map +1 -1
  153. package/dist/core/closed-session-card.js +11 -3
  154. package/dist/core/closed-session-card.js.map +1 -1
  155. package/dist/core/command-handler.d.ts.map +1 -1
  156. package/dist/core/command-handler.js +129 -27
  157. package/dist/core/command-handler.js.map +1 -1
  158. package/dist/core/cost-calculator.d.ts +3 -1
  159. package/dist/core/cost-calculator.d.ts.map +1 -1
  160. package/dist/core/cost-calculator.js +230 -1
  161. package/dist/core/cost-calculator.js.map +1 -1
  162. package/dist/core/daemon-background-close.d.ts +19 -0
  163. package/dist/core/daemon-background-close.d.ts.map +1 -0
  164. package/dist/core/daemon-background-close.js +39 -0
  165. package/dist/core/daemon-background-close.js.map +1 -0
  166. package/dist/core/dashboard-command/overview.d.ts +4 -0
  167. package/dist/core/dashboard-command/overview.d.ts.map +1 -1
  168. package/dist/core/dashboard-command/overview.js +8 -1
  169. package/dist/core/dashboard-command/overview.js.map +1 -1
  170. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  171. package/dist/core/dashboard-ipc-server.js +373 -41
  172. package/dist/core/dashboard-ipc-server.js.map +1 -1
  173. package/dist/core/dashboard-rows.d.ts +4 -0
  174. package/dist/core/dashboard-rows.d.ts.map +1 -1
  175. package/dist/core/dashboard-rows.js +3 -0
  176. package/dist/core/dashboard-rows.js.map +1 -1
  177. package/dist/core/dashboard-url.d.ts +37 -0
  178. package/dist/core/dashboard-url.d.ts.map +1 -1
  179. package/dist/core/dashboard-url.js +71 -0
  180. package/dist/core/dashboard-url.js.map +1 -1
  181. package/dist/core/deferred-schedule-settlement.d.ts +15 -1
  182. package/dist/core/deferred-schedule-settlement.d.ts.map +1 -1
  183. package/dist/core/deferred-schedule-settlement.js +4 -1
  184. package/dist/core/deferred-schedule-settlement.js.map +1 -1
  185. package/dist/core/device-isolation-daemon.d.ts +91 -1
  186. package/dist/core/device-isolation-daemon.d.ts.map +1 -1
  187. package/dist/core/device-isolation-daemon.js +346 -2
  188. package/dist/core/device-isolation-daemon.js.map +1 -1
  189. package/dist/core/local-terminal-opener.d.ts.map +1 -1
  190. package/dist/core/local-terminal-opener.js +5 -1
  191. package/dist/core/local-terminal-opener.js.map +1 -1
  192. package/dist/core/loopback-target.d.ts +14 -0
  193. package/dist/core/loopback-target.d.ts.map +1 -0
  194. package/dist/core/loopback-target.js +20 -0
  195. package/dist/core/loopback-target.js.map +1 -0
  196. package/dist/core/maintenance.d.ts.map +1 -1
  197. package/dist/core/maintenance.js +16 -2
  198. package/dist/core/maintenance.js.map +1 -1
  199. package/dist/core/mojo-containment-command.d.ts +20 -0
  200. package/dist/core/mojo-containment-command.d.ts.map +1 -0
  201. package/dist/core/mojo-containment-command.js +266 -0
  202. package/dist/core/mojo-containment-command.js.map +1 -0
  203. package/dist/core/mojo-containment.d.ts +575 -0
  204. package/dist/core/mojo-containment.d.ts.map +1 -0
  205. package/dist/core/mojo-containment.js +1158 -0
  206. package/dist/core/mojo-containment.js.map +1 -0
  207. package/dist/core/mojo-launcher-env-quarantine.d.ts +30 -0
  208. package/dist/core/mojo-launcher-env-quarantine.d.ts.map +1 -0
  209. package/dist/core/mojo-launcher-env-quarantine.js +175 -0
  210. package/dist/core/mojo-launcher-env-quarantine.js.map +1 -0
  211. package/dist/core/mojo-session-identity.d.ts +3 -0
  212. package/dist/core/mojo-session-identity.d.ts.map +1 -0
  213. package/dist/core/mojo-session-identity.js +126 -0
  214. package/dist/core/mojo-session-identity.js.map +1 -0
  215. package/dist/core/persistent-backend.d.ts +32 -8
  216. package/dist/core/persistent-backend.d.ts.map +1 -1
  217. package/dist/core/persistent-backend.js +55 -17
  218. package/dist/core/persistent-backend.js.map +1 -1
  219. package/dist/core/plugins/mcp/gateway.d.ts +14 -1
  220. package/dist/core/plugins/mcp/gateway.d.ts.map +1 -1
  221. package/dist/core/plugins/mcp/gateway.js +70 -3
  222. package/dist/core/plugins/mcp/gateway.js.map +1 -1
  223. package/dist/core/plugins/mcp/host.d.ts +2 -0
  224. package/dist/core/plugins/mcp/host.d.ts.map +1 -1
  225. package/dist/core/plugins/mcp/host.js +2 -0
  226. package/dist/core/plugins/mcp/host.js.map +1 -1
  227. package/dist/core/plugins/pm2.d.ts.map +1 -1
  228. package/dist/core/plugins/pm2.js +16 -3
  229. package/dist/core/plugins/pm2.js.map +1 -1
  230. package/dist/core/plugins/service-manager.d.ts +9 -0
  231. package/dist/core/plugins/service-manager.d.ts.map +1 -1
  232. package/dist/core/plugins/service-manager.js +33 -16
  233. package/dist/core/plugins/service-manager.js.map +1 -1
  234. package/dist/core/preview-port-owner.d.ts +109 -0
  235. package/dist/core/preview-port-owner.d.ts.map +1 -0
  236. package/dist/core/preview-port-owner.js +320 -0
  237. package/dist/core/preview-port-owner.js.map +1 -0
  238. package/dist/core/remote-cli-ids.d.ts +5 -0
  239. package/dist/core/remote-cli-ids.d.ts.map +1 -0
  240. package/dist/core/remote-cli-ids.js +24 -0
  241. package/dist/core/remote-cli-ids.js.map +1 -0
  242. package/dist/core/{riff-shutdown-detach.d.ts → remote-shutdown-detach.d.ts} +40 -39
  243. package/dist/core/remote-shutdown-detach.d.ts.map +1 -0
  244. package/dist/core/{riff-shutdown-detach.js → remote-shutdown-detach.js} +85 -83
  245. package/dist/core/remote-shutdown-detach.js.map +1 -0
  246. package/dist/core/{riff-worker-shutdown-readiness.d.ts → remote-worker-shutdown-readiness.d.ts} +5 -4
  247. package/dist/core/remote-worker-shutdown-readiness.d.ts.map +1 -0
  248. package/dist/core/{riff-worker-shutdown-readiness.js → remote-worker-shutdown-readiness.js} +4 -3
  249. package/dist/core/remote-worker-shutdown-readiness.js.map +1 -0
  250. package/dist/core/reply-target.d.ts +16 -1
  251. package/dist/core/reply-target.d.ts.map +1 -1
  252. package/dist/core/reply-target.js +61 -0
  253. package/dist/core/reply-target.js.map +1 -1
  254. package/dist/core/session-group-birth.d.ts +26 -0
  255. package/dist/core/session-group-birth.d.ts.map +1 -1
  256. package/dist/core/session-group-birth.js +81 -4
  257. package/dist/core/session-group-birth.js.map +1 -1
  258. package/dist/core/session-manager.d.ts +15 -2
  259. package/dist/core/session-manager.d.ts.map +1 -1
  260. package/dist/core/session-manager.js +259 -5
  261. package/dist/core/session-manager.js.map +1 -1
  262. package/dist/core/session-model.d.ts +46 -0
  263. package/dist/core/session-model.d.ts.map +1 -0
  264. package/dist/core/session-model.js +42 -0
  265. package/dist/core/session-model.js.map +1 -0
  266. package/dist/core/session-owner-reminder.d.ts +63 -0
  267. package/dist/core/session-owner-reminder.d.ts.map +1 -0
  268. package/dist/core/session-owner-reminder.js +196 -0
  269. package/dist/core/session-owner-reminder.js.map +1 -0
  270. package/dist/core/session-preview-registry.d.ts +53 -0
  271. package/dist/core/session-preview-registry.d.ts.map +1 -0
  272. package/dist/core/session-preview-registry.js +82 -0
  273. package/dist/core/session-preview-registry.js.map +1 -0
  274. package/dist/core/session-preview.d.ts +114 -0
  275. package/dist/core/session-preview.d.ts.map +1 -0
  276. package/dist/core/session-preview.js +184 -0
  277. package/dist/core/session-preview.js.map +1 -0
  278. package/dist/core/session-rename.d.ts.map +1 -1
  279. package/dist/core/session-rename.js +5 -3
  280. package/dist/core/session-rename.js.map +1 -1
  281. package/dist/core/session-wake-deadline.d.ts +5 -0
  282. package/dist/core/session-wake-deadline.d.ts.map +1 -0
  283. package/dist/core/session-wake-deadline.js +13 -0
  284. package/dist/core/session-wake-deadline.js.map +1 -0
  285. package/dist/core/shutdown-budgets.d.ts +7 -6
  286. package/dist/core/shutdown-budgets.d.ts.map +1 -1
  287. package/dist/core/shutdown-budgets.js +11 -10
  288. package/dist/core/shutdown-budgets.js.map +1 -1
  289. package/dist/core/terminal-control-grant.d.ts +74 -0
  290. package/dist/core/terminal-control-grant.d.ts.map +1 -0
  291. package/dist/core/terminal-control-grant.js +183 -0
  292. package/dist/core/terminal-control-grant.js.map +1 -0
  293. package/dist/core/terminal-proxy.d.ts.map +1 -1
  294. package/dist/core/terminal-proxy.js +4 -5
  295. package/dist/core/terminal-proxy.js.map +1 -1
  296. package/dist/core/terminal-write-auth.d.ts +4 -11
  297. package/dist/core/terminal-write-auth.d.ts.map +1 -1
  298. package/dist/core/terminal-write-auth.js +19 -16
  299. package/dist/core/terminal-write-auth.js.map +1 -1
  300. package/dist/core/trigger-session.d.ts.map +1 -1
  301. package/dist/core/trigger-session.js +36 -29
  302. package/dist/core/trigger-session.js.map +1 -1
  303. package/dist/core/types.d.ts +88 -10
  304. package/dist/core/types.d.ts.map +1 -1
  305. package/dist/core/types.js +9 -7
  306. package/dist/core/types.js.map +1 -1
  307. package/dist/core/workbench-link.d.ts +81 -0
  308. package/dist/core/workbench-link.d.ts.map +1 -0
  309. package/dist/core/workbench-link.js +109 -0
  310. package/dist/core/workbench-link.js.map +1 -0
  311. package/dist/core/worker-pool.d.ts +312 -11
  312. package/dist/core/worker-pool.d.ts.map +1 -1
  313. package/dist/core/worker-pool.js +2494 -209
  314. package/dist/core/worker-pool.js.map +1 -1
  315. package/dist/daemon.d.ts +6 -0
  316. package/dist/daemon.d.ts.map +1 -1
  317. package/dist/daemon.js +443 -106
  318. package/dist/daemon.js.map +1 -1
  319. package/dist/dashboard/aggregator.d.ts +33 -3
  320. package/dist/dashboard/aggregator.d.ts.map +1 -1
  321. package/dist/dashboard/aggregator.js +93 -17
  322. package/dist/dashboard/aggregator.js.map +1 -1
  323. package/dist/dashboard/auth-session-connections.d.ts +59 -0
  324. package/dist/dashboard/auth-session-connections.d.ts.map +1 -0
  325. package/dist/dashboard/auth-session-connections.js +109 -0
  326. package/dist/dashboard/auth-session-connections.js.map +1 -0
  327. package/dist/dashboard/auth.d.ts +99 -1
  328. package/dist/dashboard/auth.d.ts.map +1 -1
  329. package/dist/dashboard/auth.js +176 -64
  330. package/dist/dashboard/auth.js.map +1 -1
  331. package/dist/dashboard/bot-payload.d.ts +1 -0
  332. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  333. package/dist/dashboard/bot-payload.js +3 -0
  334. package/dist/dashboard/bot-payload.js.map +1 -1
  335. package/dist/dashboard/control-audit.d.ts +112 -0
  336. package/dist/dashboard/control-audit.d.ts.map +1 -0
  337. package/dist/dashboard/control-audit.js +195 -0
  338. package/dist/dashboard/control-audit.js.map +1 -0
  339. package/dist/dashboard/control-csrf.d.ts +123 -0
  340. package/dist/dashboard/control-csrf.d.ts.map +1 -0
  341. package/dist/dashboard/control-csrf.js +392 -0
  342. package/dist/dashboard/control-csrf.js.map +1 -0
  343. package/dist/dashboard/daemon-reconcile.d.ts +26 -0
  344. package/dist/dashboard/daemon-reconcile.d.ts.map +1 -0
  345. package/dist/dashboard/daemon-reconcile.js +46 -0
  346. package/dist/dashboard/daemon-reconcile.js.map +1 -0
  347. package/dist/dashboard/debug-terminal.d.ts.map +1 -1
  348. package/dist/dashboard/debug-terminal.js +18 -4
  349. package/dist/dashboard/debug-terminal.js.map +1 -1
  350. package/dist/dashboard/events-sse.d.ts +60 -0
  351. package/dist/dashboard/events-sse.d.ts.map +1 -0
  352. package/dist/dashboard/events-sse.js +63 -0
  353. package/dist/dashboard/events-sse.js.map +1 -0
  354. package/dist/dashboard/h5-auth.d.ts +256 -0
  355. package/dist/dashboard/h5-auth.d.ts.map +1 -0
  356. package/dist/dashboard/h5-auth.js +825 -0
  357. package/dist/dashboard/h5-auth.js.map +1 -0
  358. package/dist/dashboard/managed-spawn.d.ts +36 -0
  359. package/dist/dashboard/managed-spawn.d.ts.map +1 -0
  360. package/dist/dashboard/managed-spawn.js +169 -0
  361. package/dist/dashboard/managed-spawn.js.map +1 -0
  362. package/dist/dashboard/preview-content-capability.d.ts +41 -0
  363. package/dist/dashboard/preview-content-capability.d.ts.map +1 -0
  364. package/dist/dashboard/preview-content-capability.js +127 -0
  365. package/dist/dashboard/preview-content-capability.js.map +1 -0
  366. package/dist/dashboard/preview-contract.d.ts +85 -0
  367. package/dist/dashboard/preview-contract.d.ts.map +1 -0
  368. package/dist/dashboard/preview-contract.js +198 -0
  369. package/dist/dashboard/preview-contract.js.map +1 -0
  370. package/dist/dashboard/preview-guard-page.d.ts +52 -0
  371. package/dist/dashboard/preview-guard-page.d.ts.map +1 -0
  372. package/dist/dashboard/preview-guard-page.js +162 -0
  373. package/dist/dashboard/preview-guard-page.js.map +1 -0
  374. package/dist/dashboard/preview-interaction.d.ts +57 -0
  375. package/dist/dashboard/preview-interaction.d.ts.map +1 -0
  376. package/dist/dashboard/preview-interaction.js +198 -0
  377. package/dist/dashboard/preview-interaction.js.map +1 -0
  378. package/dist/dashboard/preview-proxy.d.ts +113 -0
  379. package/dist/dashboard/preview-proxy.d.ts.map +1 -0
  380. package/dist/dashboard/preview-proxy.js +543 -0
  381. package/dist/dashboard/preview-proxy.js.map +1 -0
  382. package/dist/dashboard/public-redact.d.ts +23 -0
  383. package/dist/dashboard/public-redact.d.ts.map +1 -1
  384. package/dist/dashboard/public-redact.js +90 -21
  385. package/dist/dashboard/public-redact.js.map +1 -1
  386. package/dist/dashboard/request-identity.d.ts +77 -0
  387. package/dist/dashboard/request-identity.d.ts.map +1 -0
  388. package/dist/dashboard/request-identity.js +72 -0
  389. package/dist/dashboard/request-identity.js.map +1 -0
  390. package/dist/dashboard/session-cleanup.d.ts +5 -0
  391. package/dist/dashboard/session-cleanup.d.ts.map +1 -1
  392. package/dist/dashboard/session-cleanup.js +4 -0
  393. package/dist/dashboard/session-cleanup.js.map +1 -1
  394. package/dist/dashboard/settings-write-applier.d.ts +5 -1
  395. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  396. package/dist/dashboard/settings-write-applier.js +14 -0
  397. package/dist/dashboard/settings-write-applier.js.map +1 -1
  398. package/dist/dashboard/standing-link.d.ts +76 -0
  399. package/dist/dashboard/standing-link.d.ts.map +1 -0
  400. package/dist/dashboard/standing-link.js +111 -0
  401. package/dist/dashboard/standing-link.js.map +1 -0
  402. package/dist/dashboard/terminal-control.d.ts +105 -0
  403. package/dist/dashboard/terminal-control.d.ts.map +1 -0
  404. package/dist/dashboard/terminal-control.js +296 -0
  405. package/dist/dashboard/terminal-control.js.map +1 -0
  406. package/dist/dashboard/terminal-front-proxy.d.ts +55 -0
  407. package/dist/dashboard/terminal-front-proxy.d.ts.map +1 -0
  408. package/dist/dashboard/terminal-front-proxy.js +397 -0
  409. package/dist/dashboard/terminal-front-proxy.js.map +1 -0
  410. package/dist/dashboard/terminal-view-capability.d.ts +97 -0
  411. package/dist/dashboard/terminal-view-capability.d.ts.map +1 -0
  412. package/dist/dashboard/terminal-view-capability.js +145 -0
  413. package/dist/dashboard/terminal-view-capability.js.map +1 -0
  414. package/dist/dashboard/web/agent-workbench-api.d.ts +59 -0
  415. package/dist/dashboard/web/agent-workbench-api.d.ts.map +1 -0
  416. package/dist/dashboard/web/agent-workbench-api.js +227 -0
  417. package/dist/dashboard/web/agent-workbench-api.js.map +1 -0
  418. package/dist/dashboard/web/agent-workbench-appearance-menu.d.ts +59 -0
  419. package/dist/dashboard/web/agent-workbench-appearance-menu.d.ts.map +1 -0
  420. package/dist/dashboard/web/agent-workbench-appearance-menu.js +195 -0
  421. package/dist/dashboard/web/agent-workbench-appearance-menu.js.map +1 -0
  422. package/dist/dashboard/web/agent-workbench-appearance.d.ts +222 -0
  423. package/dist/dashboard/web/agent-workbench-appearance.d.ts.map +1 -0
  424. package/dist/dashboard/web/agent-workbench-appearance.js +499 -0
  425. package/dist/dashboard/web/agent-workbench-appearance.js.map +1 -0
  426. package/dist/dashboard/web/agent-workbench-capabilities.d.ts +13 -0
  427. package/dist/dashboard/web/agent-workbench-capabilities.d.ts.map +1 -0
  428. package/dist/dashboard/web/agent-workbench-capabilities.js +24 -0
  429. package/dist/dashboard/web/agent-workbench-capabilities.js.map +1 -0
  430. package/dist/dashboard/web/agent-workbench-chat.d.ts +90 -0
  431. package/dist/dashboard/web/agent-workbench-chat.d.ts.map +1 -0
  432. package/dist/dashboard/web/agent-workbench-chat.js +168 -0
  433. package/dist/dashboard/web/agent-workbench-chat.js.map +1 -0
  434. package/dist/dashboard/web/agent-workbench-dock-page.d.ts +3 -0
  435. package/dist/dashboard/web/agent-workbench-dock-page.d.ts.map +1 -0
  436. package/dist/dashboard/web/agent-workbench-dock-page.js +23 -0
  437. package/dist/dashboard/web/agent-workbench-dock-page.js.map +1 -0
  438. package/dist/dashboard/web/agent-workbench-dock-view.d.ts +22 -0
  439. package/dist/dashboard/web/agent-workbench-dock-view.d.ts.map +1 -0
  440. package/dist/dashboard/web/agent-workbench-dock-view.js +76 -0
  441. package/dist/dashboard/web/agent-workbench-dock-view.js.map +1 -0
  442. package/dist/dashboard/web/agent-workbench-model.d.ts +196 -0
  443. package/dist/dashboard/web/agent-workbench-model.d.ts.map +1 -0
  444. package/dist/dashboard/web/agent-workbench-model.js +529 -0
  445. package/dist/dashboard/web/agent-workbench-model.js.map +1 -0
  446. package/dist/dashboard/web/agent-workbench-page.d.ts +3 -0
  447. package/dist/dashboard/web/agent-workbench-page.d.ts.map +1 -0
  448. package/dist/dashboard/web/agent-workbench-page.js +27 -0
  449. package/dist/dashboard/web/agent-workbench-page.js.map +1 -0
  450. package/dist/dashboard/web/agent-workbench-panes.d.ts +49 -0
  451. package/dist/dashboard/web/agent-workbench-panes.d.ts.map +1 -0
  452. package/dist/dashboard/web/agent-workbench-panes.js +468 -0
  453. package/dist/dashboard/web/agent-workbench-panes.js.map +1 -0
  454. package/dist/dashboard/web/agent-workbench-session-list.d.ts +42 -0
  455. package/dist/dashboard/web/agent-workbench-session-list.d.ts.map +1 -0
  456. package/dist/dashboard/web/agent-workbench-session-list.js +353 -0
  457. package/dist/dashboard/web/agent-workbench-session-list.js.map +1 -0
  458. package/dist/dashboard/web/agent-workbench-storage.d.ts +49 -0
  459. package/dist/dashboard/web/agent-workbench-storage.d.ts.map +1 -0
  460. package/dist/dashboard/web/agent-workbench-storage.js +197 -0
  461. package/dist/dashboard/web/agent-workbench-storage.js.map +1 -0
  462. package/dist/dashboard/web/agent-workbench-touch.d.ts +46 -0
  463. package/dist/dashboard/web/agent-workbench-touch.d.ts.map +1 -0
  464. package/dist/dashboard/web/agent-workbench-touch.js +96 -0
  465. package/dist/dashboard/web/agent-workbench-touch.js.map +1 -0
  466. package/dist/dashboard/web/agent-workbench-view.d.ts +34 -0
  467. package/dist/dashboard/web/agent-workbench-view.d.ts.map +1 -0
  468. package/dist/dashboard/web/agent-workbench-view.js +439 -0
  469. package/dist/dashboard/web/agent-workbench-view.js.map +1 -0
  470. package/dist/dashboard/web/app.d.ts.map +1 -1
  471. package/dist/dashboard/web/app.js +63 -2
  472. package/dist/dashboard/web/app.js.map +1 -1
  473. package/dist/dashboard/web/bot-defaults-page.d.ts +11 -0
  474. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  475. package/dist/dashboard/web/bot-defaults-page.js +267 -36
  476. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  477. package/dist/dashboard/web/bot-defaults.d.ts +6 -0
  478. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  479. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  480. package/dist/dashboard/web/control-csrf.d.ts +4 -0
  481. package/dist/dashboard/web/control-csrf.d.ts.map +1 -0
  482. package/dist/dashboard/web/control-csrf.js +26 -0
  483. package/dist/dashboard/web/control-csrf.js.map +1 -0
  484. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
  485. package/dist/dashboard/web/dashboard-routes.js +2 -0
  486. package/dist/dashboard/web/dashboard-routes.js.map +1 -1
  487. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  488. package/dist/dashboard/web/groups-page.js +11 -2
  489. package/dist/dashboard/web/groups-page.js.map +1 -1
  490. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  491. package/dist/dashboard/web/i18n.js +132 -6
  492. package/dist/dashboard/web/i18n.js.map +1 -1
  493. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  494. package/dist/dashboard/web/overview-page.js +3 -2
  495. package/dist/dashboard/web/overview-page.js.map +1 -1
  496. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  497. package/dist/dashboard/web/sessions-page.js +41 -1
  498. package/dist/dashboard/web/sessions-page.js.map +1 -1
  499. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  500. package/dist/dashboard/web/sessions.js +5 -1
  501. package/dist/dashboard/web/sessions.js.map +1 -1
  502. package/dist/dashboard/web/settings-page.d.ts +3 -0
  503. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  504. package/dist/dashboard/web/settings-page.js +56 -10
  505. package/dist/dashboard/web/settings-page.js.map +1 -1
  506. package/dist/dashboard/web/store.d.ts +27 -2
  507. package/dist/dashboard/web/store.d.ts.map +1 -1
  508. package/dist/dashboard/web/store.js +43 -4
  509. package/dist/dashboard/web/store.js.map +1 -1
  510. package/dist/dashboard/web/ui.d.ts +3 -0
  511. package/dist/dashboard/web/ui.d.ts.map +1 -1
  512. package/dist/dashboard/web/ui.js +11 -0
  513. package/dist/dashboard/web/ui.js.map +1 -1
  514. package/dist/dashboard/web/update-action.d.ts +12 -0
  515. package/dist/dashboard/web/update-action.d.ts.map +1 -1
  516. package/dist/dashboard/web/update-action.js +11 -0
  517. package/dist/dashboard/web/update-action.js.map +1 -1
  518. package/dist/dashboard/workbench-doctor.d.ts +114 -0
  519. package/dist/dashboard/workbench-doctor.d.ts.map +1 -0
  520. package/dist/dashboard/workbench-doctor.js +620 -0
  521. package/dist/dashboard/workbench-doctor.js.map +1 -0
  522. package/dist/dashboard/workbench-ticket.d.ts +165 -0
  523. package/dist/dashboard/workbench-ticket.d.ts.map +1 -0
  524. package/dist/dashboard/workbench-ticket.js +495 -0
  525. package/dist/dashboard/workbench-ticket.js.map +1 -0
  526. package/dist/dashboard-web/app.js +1 -1
  527. package/dist/dashboard-web/chunks/agent-workbench-dock-page-IKAC5CFL.js +1 -0
  528. package/dist/dashboard-web/chunks/agent-workbench-page-M53UN5EB.js +1 -0
  529. package/dist/dashboard-web/chunks/bot-defaults-page-YKE5SDZF.js +10 -0
  530. package/dist/dashboard-web/chunks/chunk-22WIADUT.js +2 -0
  531. package/dist/dashboard-web/chunks/chunk-24ONYQMR.js +1 -0
  532. package/dist/dashboard-web/chunks/{chunk-Z7B3E3US.js → chunk-2W6SCN3M.js} +1 -1
  533. package/dist/dashboard-web/chunks/chunk-4XNJX6B3.js +1 -0
  534. package/dist/dashboard-web/chunks/{chunk-VMWNR3SV.js → chunk-F6KNPF4R.js} +11 -9
  535. package/dist/dashboard-web/chunks/chunk-FXW3V4JR.js +1 -0
  536. package/dist/dashboard-web/chunks/chunk-G5ZS2YUS.js +1 -0
  537. package/dist/dashboard-web/chunks/chunk-KTQ7B6ZR.js +1 -0
  538. package/dist/dashboard-web/chunks/{chunk-Z7DO42GJ.js → chunk-NACP7BMR.js} +1 -1
  539. package/dist/dashboard-web/chunks/{connectors-page-CPH6VVFY.js → connectors-page-VOISXXII.js} +1 -1
  540. package/dist/dashboard-web/chunks/{feedback-page-J2FKQ3LK.js → feedback-page-RN6HRZMS.js} +1 -1
  541. package/dist/dashboard-web/chunks/groups-page-UQT6DCB7.js +8 -0
  542. package/dist/dashboard-web/chunks/{insights-page-A2LWTKJD.js → insights-page-HJFDYR5N.js} +3 -3
  543. package/dist/dashboard-web/chunks/{monitor-room-2YR752E3.js → monitor-room-V7PCP47V.js} +1 -1
  544. package/dist/dashboard-web/chunks/{monitoring-page-BGYSKZGM.js → monitoring-page-NKEKVQAP.js} +1 -1
  545. package/dist/dashboard-web/chunks/{office-page-ZZHTEAE4.js → office-page-GVJF73XW.js} +1 -1
  546. package/dist/dashboard-web/chunks/overview-page-KHLV6VTI.js +1 -0
  547. package/dist/dashboard-web/chunks/{plugin-page-VEGTCEAS.js → plugin-page-J3OF5IY4.js} +1 -1
  548. package/dist/dashboard-web/chunks/{roles-page-YUC4YLJG.js → roles-page-WQIRSOLZ.js} +1 -1
  549. package/dist/dashboard-web/chunks/{schedules-page-2L2NKTDJ.js → schedules-page-J2DEY2X6.js} +1 -1
  550. package/dist/dashboard-web/chunks/sessions-page-7BQFEA5P.js +8 -0
  551. package/dist/dashboard-web/chunks/settings-page-BJEIOFJH.js +2 -0
  552. package/dist/dashboard-web/chunks/{skills-page-DQPBBI3T.js → skills-page-HGIFR3IU.js} +1 -1
  553. package/dist/dashboard-web/chunks/{team-federation-page-LQKLDV4K.js → team-federation-page-MR5ZPL4B.js} +1 -1
  554. package/dist/dashboard-web/chunks/{v3-page-RVKQIMAP.js → v3-page-GBR5JWPE.js} +2 -2
  555. package/dist/dashboard-web/chunks/{whiteboards-page-S5K55HRZ.js → whiteboards-page-QAZM4BN3.js} +1 -1
  556. package/dist/dashboard-web/index.html +8 -1
  557. package/dist/dashboard-web/style.css +2006 -10
  558. package/dist/dashboard.js +1006 -263
  559. package/dist/dashboard.js.map +1 -1
  560. package/dist/global-config.d.ts +30 -0
  561. package/dist/global-config.d.ts.map +1 -1
  562. package/dist/global-config.js +33 -0
  563. package/dist/global-config.js.map +1 -1
  564. package/dist/i18n/en.d.ts.map +1 -1
  565. package/dist/i18n/en.js +31 -1
  566. package/dist/i18n/en.js.map +1 -1
  567. package/dist/i18n/zh.d.ts.map +1 -1
  568. package/dist/i18n/zh.js +28 -1
  569. package/dist/i18n/zh.js.map +1 -1
  570. package/dist/im/lark/card-builder.d.ts +1 -1
  571. package/dist/im/lark/card-builder.d.ts.map +1 -1
  572. package/dist/im/lark/card-builder.js +22 -6
  573. package/dist/im/lark/card-builder.js.map +1 -1
  574. package/dist/im/lark/card-handler.d.ts.map +1 -1
  575. package/dist/im/lark/card-handler.js +118 -24
  576. package/dist/im/lark/card-handler.js.map +1 -1
  577. package/dist/im/lark/client.d.ts +15 -0
  578. package/dist/im/lark/client.d.ts.map +1 -1
  579. package/dist/im/lark/client.js +30 -0
  580. package/dist/im/lark/client.js.map +1 -1
  581. package/dist/im/lark/event-dispatcher.d.ts +48 -0
  582. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  583. package/dist/im/lark/event-dispatcher.js +133 -22
  584. package/dist/im/lark/event-dispatcher.js.map +1 -1
  585. package/dist/im/lark/identity-cache.d.ts +14 -6
  586. package/dist/im/lark/identity-cache.d.ts.map +1 -1
  587. package/dist/im/lark/identity-cache.js +69 -26
  588. package/dist/im/lark/identity-cache.js.map +1 -1
  589. package/dist/im/lark/lark-hosts.d.ts +13 -0
  590. package/dist/im/lark/lark-hosts.d.ts.map +1 -1
  591. package/dist/im/lark/lark-hosts.js +16 -0
  592. package/dist/im/lark/lark-hosts.js.map +1 -1
  593. package/dist/im/lark/overview-card.d.ts +22 -0
  594. package/dist/im/lark/overview-card.d.ts.map +1 -1
  595. package/dist/im/lark/overview-card.js +53 -3
  596. package/dist/im/lark/overview-card.js.map +1 -1
  597. package/dist/im/lark/sessions-card.d.ts.map +1 -1
  598. package/dist/im/lark/sessions-card.js +26 -3
  599. package/dist/im/lark/sessions-card.js.map +1 -1
  600. package/dist/im/lark/workflow-slash-command.d.ts +6 -0
  601. package/dist/im/lark/workflow-slash-command.d.ts.map +1 -1
  602. package/dist/im/lark/workflow-slash-command.js +7 -0
  603. package/dist/im/lark/workflow-slash-command.js.map +1 -1
  604. package/dist/index-daemon.js +27 -4
  605. package/dist/index-daemon.js.map +1 -1
  606. package/dist/index-dashboard.d.ts +3 -0
  607. package/dist/index-dashboard.d.ts.map +1 -0
  608. package/dist/index-dashboard.js +94 -0
  609. package/dist/index-dashboard.js.map +1 -0
  610. package/dist/platform/team-agents-client.d.ts +199 -0
  611. package/dist/platform/team-agents-client.d.ts.map +1 -0
  612. package/dist/platform/team-agents-client.js +263 -0
  613. package/dist/platform/team-agents-client.js.map +1 -0
  614. package/dist/platform/tunnel-client.d.ts +6 -0
  615. package/dist/platform/tunnel-client.d.ts.map +1 -1
  616. package/dist/platform/tunnel-client.js.map +1 -1
  617. package/dist/services/async-trigger-state.d.ts +7 -3
  618. package/dist/services/async-trigger-state.d.ts.map +1 -1
  619. package/dist/services/async-trigger-state.js +28 -0
  620. package/dist/services/async-trigger-state.js.map +1 -1
  621. package/dist/services/async-trigger-store.d.ts +13 -4
  622. package/dist/services/async-trigger-store.d.ts.map +1 -1
  623. package/dist/services/async-trigger-store.js +55 -8
  624. package/dist/services/async-trigger-store.js.map +1 -1
  625. package/dist/services/bot-config-store.d.ts +1 -11
  626. package/dist/services/bot-config-store.d.ts.map +1 -1
  627. package/dist/services/bot-config-store.js +27 -3
  628. package/dist/services/bot-config-store.js.map +1 -1
  629. package/dist/services/bot-profile-store.d.ts +17 -2
  630. package/dist/services/bot-profile-store.d.ts.map +1 -1
  631. package/dist/services/bot-profile-store.js +93 -12
  632. package/dist/services/bot-profile-store.js.map +1 -1
  633. package/dist/services/bridge-turn-queue.d.ts +10 -1
  634. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  635. package/dist/services/bridge-turn-queue.js +29 -9
  636. package/dist/services/bridge-turn-queue.js.map +1 -1
  637. package/dist/services/claude-transcript.d.ts +19 -0
  638. package/dist/services/claude-transcript.d.ts.map +1 -1
  639. package/dist/services/claude-transcript.js +57 -5
  640. package/dist/services/claude-transcript.js.map +1 -1
  641. package/dist/services/codex-app-threads.d.ts +2 -0
  642. package/dist/services/codex-app-threads.d.ts.map +1 -1
  643. package/dist/services/codex-app-threads.js +1 -1
  644. package/dist/services/codex-app-threads.js.map +1 -1
  645. package/dist/services/codex-reasoning-effort.d.ts +8 -0
  646. package/dist/services/codex-reasoning-effort.d.ts.map +1 -1
  647. package/dist/services/codex-reasoning-effort.js +24 -0
  648. package/dist/services/codex-reasoning-effort.js.map +1 -1
  649. package/dist/services/cursor-resume-policy.d.ts.map +1 -1
  650. package/dist/services/cursor-resume-policy.js +15 -3
  651. package/dist/services/cursor-resume-policy.js.map +1 -1
  652. package/dist/services/open-platform-rename.d.ts.map +1 -1
  653. package/dist/services/open-platform-rename.js +3 -2
  654. package/dist/services/open-platform-rename.js.map +1 -1
  655. package/dist/services/ordinary-turn-recovery.d.ts +76 -0
  656. package/dist/services/ordinary-turn-recovery.d.ts.map +1 -0
  657. package/dist/services/ordinary-turn-recovery.js +349 -0
  658. package/dist/services/ordinary-turn-recovery.js.map +1 -0
  659. package/dist/services/resume-fresh-policy.d.ts +17 -0
  660. package/dist/services/resume-fresh-policy.d.ts.map +1 -0
  661. package/dist/services/resume-fresh-policy.js +24 -0
  662. package/dist/services/resume-fresh-policy.js.map +1 -0
  663. package/dist/services/session-group-title.d.ts +1 -0
  664. package/dist/services/session-group-title.d.ts.map +1 -1
  665. package/dist/services/session-group-title.js +16 -1
  666. package/dist/services/session-group-title.js.map +1 -1
  667. package/dist/services/session-groups-store.d.ts +30 -0
  668. package/dist/services/session-groups-store.d.ts.map +1 -1
  669. package/dist/services/session-groups-store.js +26 -4
  670. package/dist/services/session-groups-store.js.map +1 -1
  671. package/dist/services/session-owner-notification.d.ts +9 -0
  672. package/dist/services/session-owner-notification.d.ts.map +1 -0
  673. package/dist/services/session-owner-notification.js +10 -0
  674. package/dist/services/session-owner-notification.js.map +1 -0
  675. package/dist/services/session-owner-reminder-config-store.d.ts +9 -0
  676. package/dist/services/session-owner-reminder-config-store.d.ts.map +1 -0
  677. package/dist/services/session-owner-reminder-config-store.js +24 -0
  678. package/dist/services/session-owner-reminder-config-store.js.map +1 -0
  679. package/dist/services/session-owner-reminder-store.d.ts +5 -0
  680. package/dist/services/session-owner-reminder-store.d.ts.map +1 -0
  681. package/dist/services/session-owner-reminder-store.js +54 -0
  682. package/dist/services/session-owner-reminder-store.js.map +1 -0
  683. package/dist/services/session-store.d.ts +98 -21
  684. package/dist/services/session-store.d.ts.map +1 -1
  685. package/dist/services/session-store.js +406 -48
  686. package/dist/services/session-store.js.map +1 -1
  687. package/dist/services/structured-bridge-clis.d.ts +9 -5
  688. package/dist/services/structured-bridge-clis.d.ts.map +1 -1
  689. package/dist/services/structured-bridge-clis.js +9 -4
  690. package/dist/services/structured-bridge-clis.js.map +1 -1
  691. package/dist/services/transcript-resolver.d.ts +1 -1
  692. package/dist/services/transcript-resolver.d.ts.map +1 -1
  693. package/dist/services/transcript-resolver.js +6 -1
  694. package/dist/services/transcript-resolver.js.map +1 -1
  695. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  696. package/dist/setup/bot-config-editor.js +7 -2
  697. package/dist/setup/bot-config-editor.js.map +1 -1
  698. package/dist/setup/ensure-herdr-integrations.d.ts +13 -0
  699. package/dist/setup/ensure-herdr-integrations.d.ts.map +1 -1
  700. package/dist/setup/ensure-herdr-integrations.js +21 -3
  701. package/dist/setup/ensure-herdr-integrations.js.map +1 -1
  702. package/dist/setup/open-platform-automation.d.ts +1 -0
  703. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  704. package/dist/setup/open-platform-automation.js +107 -7
  705. package/dist/setup/open-platform-automation.js.map +1 -1
  706. package/dist/skills/definitions.d.ts +17 -0
  707. package/dist/skills/definitions.d.ts.map +1 -1
  708. package/dist/skills/definitions.js +78 -8
  709. package/dist/skills/definitions.js.map +1 -1
  710. package/dist/skills/injection-mode.d.ts +24 -3
  711. package/dist/skills/injection-mode.d.ts.map +1 -1
  712. package/dist/skills/injection-mode.js +64 -15
  713. package/dist/skills/injection-mode.js.map +1 -1
  714. package/dist/skills/installer.d.ts +18 -0
  715. package/dist/skills/installer.d.ts.map +1 -1
  716. package/dist/skills/installer.js +45 -1
  717. package/dist/skills/installer.js.map +1 -1
  718. package/dist/types.d.ts +221 -10
  719. package/dist/types.d.ts.map +1 -1
  720. package/dist/utils/child-env.d.ts +92 -2
  721. package/dist/utils/child-env.d.ts.map +1 -1
  722. package/dist/utils/child-env.js +195 -1
  723. package/dist/utils/child-env.js.map +1 -1
  724. package/dist/utils/cli-usage-limit.d.ts +25 -14
  725. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  726. package/dist/utils/cli-usage-limit.js +25 -15
  727. package/dist/utils/cli-usage-limit.js.map +1 -1
  728. package/dist/utils/daemon-rejection-guard.d.ts +35 -0
  729. package/dist/utils/daemon-rejection-guard.d.ts.map +1 -0
  730. package/dist/utils/daemon-rejection-guard.js +101 -0
  731. package/dist/utils/daemon-rejection-guard.js.map +1 -0
  732. package/dist/utils/dashboard-env.d.ts +53 -0
  733. package/dist/utils/dashboard-env.d.ts.map +1 -0
  734. package/dist/utils/dashboard-env.js +116 -0
  735. package/dist/utils/dashboard-env.js.map +1 -0
  736. package/dist/utils/global-install.d.ts.map +1 -1
  737. package/dist/utils/global-install.js +61 -5
  738. package/dist/utils/global-install.js.map +1 -1
  739. package/dist/utils/install-diagnostics.d.ts +14 -7
  740. package/dist/utils/install-diagnostics.d.ts.map +1 -1
  741. package/dist/utils/install-diagnostics.js +20 -11
  742. package/dist/utils/install-diagnostics.js.map +1 -1
  743. package/dist/utils/local-dev-update.d.ts +132 -0
  744. package/dist/utils/local-dev-update.d.ts.map +1 -0
  745. package/dist/utils/local-dev-update.js +176 -0
  746. package/dist/utils/local-dev-update.js.map +1 -0
  747. package/dist/utils/pending-input-queue.d.ts +12 -1
  748. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  749. package/dist/utils/pending-input-queue.js.map +1 -1
  750. package/dist/worker.js +1284 -225
  751. package/dist/worker.js.map +1 -1
  752. package/dist/workflows/definition.d.ts +68 -68
  753. package/dist/workflows/events/payloads.d.ts +14 -14
  754. package/dist/workflows/events/schema.d.ts +312 -312
  755. package/dist/workflows/migration/v2-run-archive-schema.d.ts +40 -40
  756. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  757. package/dist/workflows/v3/cli-run.js +7 -0
  758. package/dist/workflows/v3/cli-run.js.map +1 -1
  759. package/dist/workflows/v3/goal-cli.d.ts +3 -0
  760. package/dist/workflows/v3/goal-cli.d.ts.map +1 -1
  761. package/dist/workflows/v3/goal-cli.js +11 -0
  762. package/dist/workflows/v3/goal-cli.js.map +1 -1
  763. package/dist/workflows/v3/run-envelope.d.ts +144 -144
  764. package/package.json +3 -2
  765. package/dist/cli/pm2-god-admission.d.ts +0 -8
  766. package/dist/cli/pm2-god-admission.d.ts.map +0 -1
  767. package/dist/cli/pm2-god-admission.js +0 -25
  768. package/dist/cli/pm2-god-admission.js.map +0 -1
  769. package/dist/core/riff-shutdown-detach.d.ts.map +0 -1
  770. package/dist/core/riff-shutdown-detach.js.map +0 -1
  771. package/dist/core/riff-worker-shutdown-readiness.d.ts.map +0 -1
  772. package/dist/core/riff-worker-shutdown-readiness.js.map +0 -1
  773. package/dist/dashboard-web/chunks/bot-defaults-page-65SMZ4QY.js +0 -10
  774. package/dist/dashboard-web/chunks/chunk-G5XGBCM6.js +0 -1
  775. package/dist/dashboard-web/chunks/chunk-IKN6WURK.js +0 -1
  776. package/dist/dashboard-web/chunks/chunk-WLIVBPJC.js +0 -1
  777. package/dist/dashboard-web/chunks/groups-page-VDOOLS4M.js +0 -8
  778. package/dist/dashboard-web/chunks/overview-page-7NYPKQSB.js +0 -1
  779. package/dist/dashboard-web/chunks/sessions-page-DYZZMKFL.js +0 -8
  780. package/dist/dashboard-web/chunks/settings-page-LIULUSMH.js +0 -2
@@ -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 ee}from"./chunk-Z7B3E3US.js";import{c as H}from"./chunk-IKN6WURK.js";import{a as Rt,b as pt,c as St,g as Xt,h as Zt,j as Yt,k as te,q as wt}from"./chunk-5CJMHTT4.js";import{a as Ct}from"./chunk-G5XGBCM6.js";import{A as Vt,B as Qt,b as qt,r as Jt,w as Pt,x as mt}from"./chunk-VMWNR3SV.js";import{a as zt}from"./chunk-SYC6D5XU.js";import{a as Be,b as Ae,d as Kt}from"./chunk-5THX4DI2.js";import{c as kt}from"./chunk-7SZRL6FY.js";var n=kt(Be(),1),De=kt(Ae(),1);var ae=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],gt={options:ae,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function Tt(a,t){return typeof a?.cliId=="string"&&a.cliId?a.cliId:t}function Mt(a){let t=null;for(let o of Ct.sessions.values())o.larkAppId!==a||!o.cliId||(!t||Number(o.lastMessageAt??0)>Number(t.lastMessageAt??0))&&(t=o);return t?.cliId??""}function Bt(a,t){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||Tt(a,t)||"claude-code"}function At(a,t){return a.find(o=>o.id===t)}function oe(a,t){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?t.ttadkModelSuggestions:[]}function ne(){let a=0;return{begin(){let t=++a;return{commit:()=>t===a}}}}async function se(){try{let a=await fetch("/api/bots"),t=await a.json().catch(()=>({}));if(!a.ok){let o=t?.error?`HTTP ${a.status}: ${t.error}${t.path?` (${t.path})`:""}`:`HTTP ${a.status}`;return{bots:[],error:o}}return!t||!Array.isArray(t.bots)?{bots:[],error:"unexpected response shape (no `bots` array)"}:{bots:t.bots,error:null}}catch(a){return{bots:[],error:a?.message??String(a)}}}async function le(a,t){try{let o=await fetch(`/api/bots/${encodeURIComponent(a)}/substitute-targets/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:t})}),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 ie(){try{let a=await fetch("/api/cli-options"),t=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(t?.options))return gt;let o=t.options.filter(l=>l&&typeof l.id=="string"&&typeof l.label=="string"),u=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():gt.ttadkModelDefault,i=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(l=>typeof l=="string"):[];return{options:o.length?o:ae,ttadkModelDefault:u,ttadkModelSuggestions:i}}catch{return gt}}function re(a){if(!a)return"\u2014";let t=new Date(a);return Number.isNaN(t.getTime())?"\u2014":t.toLocaleString()}var ue=[3600*1e3,480*60*1e3,1440*60*1e3,10080*60*1e3];var Ot=["low","medium","high","xhigh","max","ultra"],Oe=Ot.slice(0,4),$e=new Set(["gpt-5.6-sol","gpt-5.6-terra"]),Le=new Set(["gpt-5.6-luna"]);function de(a){let t=a?.trim().toLowerCase()??"";return $e.has(t)?Ot:Le.has(t)?Ot.slice(0,5):Oe}var e=kt(Kt(),1);function $t(a){let t=a.cliRuntime;if(!t||typeof t!="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=t.update?.provider,u=o==="self"||o==="npm"||o==="none"?o:"auto";return{mode:"custom",id:typeof t.id=="string"?t.id:"",displayName:typeof t.displayName=="string"?t.displayName:"",executable:typeof t.executable=="string"?t.executable:"",legacyPath:"",updateProvider:u,packageName:t.update?.provider==="npm"&&typeof t.update.packageName=="string"?t.update.packageName:""}}var ht=["common","sessions","security","cards","advanced"];function Ee(a){let t=H(),o=(0,n.useRef)([]),u={common:t("botDefaults.tabCommon"),sessions:t("botDefaults.tabSessions"),security:t("botDefaults.tabSecurity"),cards:t("botDefaults.tabCards"),advanced:t("botDefaults.tabAdvanced")};function i(l){let m=(l+ht.length)%ht.length,s=ht[m];a.onChange(s),o.current[m]?.focus()}return(0,e.jsxs)("nav",{className:"bd-tab-bar","aria-label":t("botDefaults.tabNavigation"),children:[(0,e.jsx)("div",{className:"bd-tabs",role:"tablist",children:ht.map((l,m)=>(0,e.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(ht.length-1))},children:u[l]},l))}),(0,e.jsx)("small",{className:"bd-tab-hint",children:t("botDefaults.tabHint")})]})}var Ue=1,ce=14;function vt(a){let t=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let o=t.current;if(!o||typeof window>"u")return;let u=s=>{for(let c of s)c.style.gridColumn="",c.style.gridRowStart="",c.style.gridRowEnd=""},i=()=>{let s=Array.from(o.children).filter(S=>S instanceof HTMLElement);if(!s.length)return;let c=o.clientWidth;if(c<=0)return;let p=(o.closest(".bd-detail")?.clientWidth??c)>=1024?2:1;if(p<2){u(s);return}let d=Ue+ce,y=new Array(p).fill(0);for(let S of s){let x=Math.max(1,Math.ceil((S.getBoundingClientRect().height+ce)/d));if(S.classList.contains("bd-tile-wide")){let C=Math.max(...y);S.style.gridColumn="1 / -1",S.style.gridRowStart=String(C+1),S.style.gridRowEnd=String(C+1+x),y.fill(C+x);continue}let v=0;for(let C=1;C<p;C++)y[C]<y[v]&&(v=C);let D=y[v];S.style.gridColumn=String(v+1),S.style.gridRowStart=String(D+1),S.style.gridRowEnd=String(D+1+x),y[v]=D+x}},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,e.jsx)("div",{ref:t,className:a.className?`bd-tab-grid ${a.className}`:"bd-tab-grid",children:a.children})}function Gt(a,t=""){let o=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${t?` ${t}`:""}${o}`}function J(a){return(0,e.jsx)("span",{role:"status","aria-live":"polite",className:Gt(a.status),...a.attr??{},children:a.status?.text??""})}function Fe(a){let t=typeof a.children=="string"?a.children:void 0;return(0,e.jsx)(Yt,{className:"bd-info-tip",label:t,children:a.children})}function A(a){return(0,e.jsxs)("span",{className:"bd-field-title",children:[(0,e.jsx)("span",{className:"bd-field-title-text",children:a.children}),a.help?(0,e.jsx)(Fe,{children:a.help}):null]})}function tt(a){let t=H();return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(wt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:Rt(a.options,a.value),value:a.value,options:a.options,searchable:a.searchable,searchPlaceholder:a.searchable?t("common.dropdownSearch"):void 0,searchEmptyLabel:a.searchable?t("common.dropdownSearchEmpty"):void 0,onChange:a.onChange}),(0,e.jsx)("input",{type:"hidden","data-input":a.dataInput,value:a.value,readOnly:!0})]})}function et(a){return(0,e.jsxs)("label",{className:a.className?`toggle-row ${a.className}`:"toggle-row",children:[(0,e.jsx)("input",{type:"checkbox","data-action":a.dataAction,checked:a.checked,disabled:a.disabled,onChange:t=>a.onChange(t.currentTarget.checked)}),(0,e.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,e.jsxs)("span",{className:"toggle-tx",children:[(0,e.jsx)("strong",{children:(0,e.jsx)(A,{help:a.help,children:a.title})}),a.description?(0,e.jsx)("small",{children:a.description}):null]})]})}async function V(a,t,o){let u=await fetch(t,{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 _(a){let t=typeof a.body?.reason=="string"?a.body.reason:"",o=typeof a.body?.manualCommand=="string"?a.body.manualCommand:"";return t&&o?`${t}\uFF08${o}\uFF09`:String(t||a.body?.error||a.status)}function U(a){return a?.message??String(a)}function ke(a){let t=a.trim();return t?/^[1-9]\d*$/.test(t)?Number(t):"invalid":null}function be(a,t){let o=a.trim();return o===""?t:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var jt=["email","openId","userId","unionId"];function fe(a){let t=a.split(/[\r\n,,;;]+/).map(o=>o.trim()).filter(Boolean);return[...new Set(t)]}function bt(a){return(a??[]).join(`
2
- `)}function Ge(a){return jt.find(t=>a?.[t]?.trim())??"email"}function je(a){let t=a.idValue.trim();if(!t)return null;let o={...a.persisted};if(a.persisted[a.idField]!==t||a.originalIdField!=null&&a.originalIdField!==a.idField)for(let l of jt)delete o[l];o[a.idField]=t;let i=a.name.trim();return i?o.name=i:delete o.name,o}function He(a,t){return a==null?t("botDefaults.brandStateDefault"):a.trim()===""?t("botDefaults.brandStateOff"):t("botDefaults.brandStateCustom")}var _e=ue;function We(a,t){return a==null?t("botDefaults.maxLiveWorkersStateDefault"):t("botDefaults.maxLiveWorkersStateOn",{count:a})}function qe(a,t){return{...a,usageDisplay:t.usageDisplay,disableStreamingCard:t.disableStreamingCard,silentTurnReactions:t.silentTurnReactions,codexAppCleanInput:t.codexAppCleanInput,writableTerminalLinkInCard:t.writableTerminalLinkInCard,privateCard:t.privateCard,summaryMemory:t.summaryMemory,summaryMemoryPath:t.summaryMemoryPath,botToBotSameDir:t.botToBotSameDir,autoStartOnGroupJoin:t.autoStartOnGroupJoin,autoStartOnGroupJoinPrompt:t.autoStartOnGroupJoinPrompt,autoStartOnNewTopic:t.autoStartOnNewTopic,regularGroupReplyMode:t.regularGroupReplyMode,regularGroupMentionMode:t.regularGroupMentionMode,docSubscribeDefaultMode:t.docSubscribeDefaultMode}}function Je(){let a=H(),t=(0,n.useRef)(!0),o=(0,n.useRef)(ne()),[u,i]=(0,n.useState)([]),[l,m]=(0,n.useState)(gt),[s,c]=(0,n.useState)(null),[r,b]=(0,n.useState)(!0),[p,d]=(0,n.useState)(!1),[y,S]=(0,n.useState)(""),[x,v]=(0,n.useState)(null),[D,C]=(0,n.useState)(0),[,h]=(0,n.useState)(0),[N,g]=(0,n.useState)(!1),[f,F]=(0,n.useState)("common"),$=(0,n.useCallback)(async(T=!1)=>{T&&C(Z=>Z+1);let L=o.current.begin();b(!0);try{let[Z,G]=await Promise.all([se(),ie()]);if(!t.current||!L.commit())return;i(Z.bots),c(Z.error),m(G)}finally{t.current&&L.commit()&&b(!1)}},[]);(0,n.useEffect)(()=>{t.current=!0,$(),Qt().then(()=>{t.current&&h(L=>L+1)});let T=Ct.onBotsChanged(()=>{t.current&&$()});return()=>{t.current=!1,T()}},[$]);let W=(0,n.useMemo)(()=>{let T=y.trim().toLowerCase();return u.filter(L=>!T||(L.botName??"").toLowerCase().includes(T)||(L.larkAppId??"").toLowerCase().includes(T))},[u,y]);(0,n.useEffect)(()=>{if(!(s||r)){if(W.length===0){x!==null&&v(null);return}(!x||!W.some(T=>T.larkAppId===x))&&v(W[0].larkAppId)}},[W,s,r,x]);let w=x?W.find(T=>T.larkAppId===x)??null:null,X=(0,n.useCallback)((T,L)=>{i(Z=>Z.map(G=>G.larkAppId!==T?G:typeof L=="function"?L(G):{...G,...L}))},[]),j=async()=>{d(!0);try{await $(!0)}finally{t.current&&d(!1)}},q;return r?q=(0,e.jsx)(St,{label:a("common.loading")}):s?q=(0,e.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",s,(0,e.jsx)("br",{}),"\u5E38\u89C1\u539F\u56E0\uFF1Adashboard / daemon \u8FDB\u7A0B\u8FD8\u5728\u8DD1\u65E7\u4EE3\u7801\uFF0C\u6267\u884C ",(0,e.jsx)("code",{children:"botmux restart"})," \u540E\u5237\u65B0\u3002"]}):W.length===0?q=(0,e.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):w?q=(0,e.jsx)(Qe,{bot:w,cliState:l,patchBot:X,activeTab:f,onTabChange:F},`${w.larkAppId}:${D}`):q=null,(0,e.jsxs)("section",{className:"page bot-defaults-page",children:[(0,e.jsxs)("div",{className:"page-heading",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"eyebrow",children:a("nav.botDefaults")}),(0,e.jsx)("h1",{children:a("botDefaults.title")})]}),(0,e.jsxs)("div",{className:"page-heading-actions",children:[(0,e.jsx)(Zt,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:p,disabled:p,onClick:()=>{j()}}),Jt.authed?(0,e.jsx)(Xt,{className:"page-primary-action add-bot-btn",disabled:N,onClick:()=>{g(!0),ee().finally(()=>g(!1))},children:a("botOnboarding.add")}):null]})]}),(0,e.jsxs)("div",{className:"bd-layout",children:[(0,e.jsxs)("aside",{id:"bd-roster",className:"bd-roster",children:[(0,e.jsx)("form",{id:"bd-filters",className:"filters dashboard-toolbar",onSubmit:T=>T.preventDefault(),children:(0,e.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:y,onChange:T=>S(T.currentTarget.value)})}),(0,e.jsxs)("div",{className:"bd-roster-meta",children:[(0,e.jsx)("span",{children:a("botDefaults.rosterCount",{count:W.length})}),y.trim()&&W.length!==u.length?(0,e.jsx)("span",{children:a("botDefaults.rosterFiltered",{total:u.length})}):null]}),(0,e.jsx)("div",{className:"bd-roster-list",children:!s&&W.map(T=>(0,e.jsx)(Ve,{bot:T,selected:T.larkAppId===x,onSelect:()=>v(T.larkAppId)},T.larkAppId))})]}),(0,e.jsx)("div",{id:"bd-list",className:"bd-detail",children:q})]})]})}function Ve(a){let{bot:t}=a,o=t.botName??t.larkAppId,u=Tt(t,Mt(t.larkAppId));return(0,e.jsxs)("div",{className:`bd-roster-item${a.selected?" on":""}`,"data-appid":t.larkAppId,role:"button",tabIndex:0,onClick:a.onSelect,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),a.onSelect())},children:[(0,e.jsx)(pt,{html:mt({name:o,larkAppId:t.larkAppId,size:"sm"})}),(0,e.jsxs)("div",{className:"bd-roster-tx",children:[(0,e.jsx)("b",{children:(0,e.jsx)(te,{text:o,showPopover:!1,textClassName:"bd-roster-name"})}),(0,e.jsx)("span",{children:u||t.larkAppId.slice(0,14)})]}),t.defaultOncall?.enabled?(0,e.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function Qe(a){let t=H(),{bot:o,cliState:u,patchBot:i}=a,l=o.botName??o.larkAppId,m=Tt(o,Mt(o.larkAppId)),s=(0,n.useCallback)(async r=>{let b=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/card-prefs`,r);return b.ok&&i(o.larkAppId,p=>qe(p,b.body)),b},[o.larkAppId,i]);if(o.error)return(0,e.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,e.jsxs)("header",{className:"bd-profile-head",children:[(0,e.jsx)(pt,{html:mt({name:l,larkAppId:o.larkAppId})}),(0,e.jsxs)("div",{className:"bd-profile-id",children:[(0,e.jsx)("strong",{children:l}),(0,e.jsx)("code",{children:o.larkAppId})]})]}),(0,e.jsxs)("p",{className:"hint-warn-inline",children:["\u67E5\u8BE2\u5931\u8D25\uFF1A",o.error]})]});let c=o.defaultOncall??{enabled:!1,workingDir:"",since:0};return(0,e.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,e.jsxs)("div",{className:"bd-profile-chrome",children:[(0,e.jsxs)("header",{className:"bd-profile-head",children:[(0,e.jsx)(Ze,{bot:o,name:l,patchBot:i}),(0,e.jsx)("div",{className:"bd-profile-main",children:(0,e.jsx)(Ye,{bot:o,cli:m,patchBot:i,meta:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("small",{className:"bd-meta-ok",children:["\u25CF ",t("botDefaults.metaOnline")]}),(c.since??0)>0?(0,e.jsxs)("small",{"data-oncall-since":!0,children:[t("botDefaults.lastEnabled"),": ",re(c.since??0)]}):null,(o.autoboundChatCount??0)>0?(0,e.jsx)("small",{children:t("botDefaults.autobound",{count:o.autoboundChatCount??0})}):null]})})})]}),(0,e.jsx)(Ee,{active:a.activeTab,onChange:a.onTabChange})]}),(0,e.jsxs)("div",{className:"bd-body bd-tab-panels",children:[(0,e.jsx)("div",{id:"bd-panel-common",role:"tabpanel","aria-labelledby":"bd-tab-common",className:"bd-tab-panel",hidden:a.activeTab!=="common",children:(0,e.jsxs)(vt,{children:[(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ta,{bot:o,sessionFallback:m,cliState:u,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(aa,{bot:o,patchBot:i,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(da,{bot:o,patchBot:i})})]})}),(0,e.jsx)("div",{id:"bd-panel-sessions",role:"tabpanel","aria-labelledby":"bd-tab-sessions",className:"bd-tab-panel",hidden:a.activeTab!=="sessions",children:(0,e.jsxs)(vt,{children:[(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ya,{bot:o,patchBot:i,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ha,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(pa,{bot:o,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Da,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ka,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ga,{bot:o,patchBot:i,putCardPref:s})})]})}),(0,e.jsx)("div",{id:"bd-panel-security",role:"tabpanel","aria-labelledby":"bd-tab-security",className:"bd-tab-panel",hidden:a.activeTab!=="security",children:(0,e.jsxs)(vt,{children:[o.cliId!=="riff"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(na,{bot:o,patchBot:i})}):null,o.cliId!=="riff"&&o.sandbox===!0?(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(ia,{bot:o,patchBot:i})}):null,(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(wa,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ca,{bot:o,patchBot:i})})]})}),(0,e.jsx)("div",{id:"bd-panel-cards",role:"tabpanel","aria-labelledby":"bd-tab-cards",className:"bd-tab-panel",hidden:a.activeTab!=="cards",children:(0,e.jsxs)(vt,{children:[(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(ba,{bot:o,putCardPref:s})}),(0,e.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,e.jsx)(ze,{bot:o,patchBot:i})}),(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ra,{bot:o,patchBot:i})})]})}),(0,e.jsx)("div",{id:"bd-panel-advanced",role:"tabpanel","aria-labelledby":"bd-tab-advanced",className:"bd-tab-panel",hidden:a.activeTab!=="advanced",children:(0,e.jsxs)(vt,{children:[o.cliId!=="riff"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ua,{bot:o,patchBot:i})}):null,o.cliId==="codex-app"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(fa,{bot:o,putCardPref:s})}):null,o.cliId==="claude-code"?(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(ma,{bot:o,patchBot:i})}):null,(0,e.jsx)("section",{className:"bd-tile",children:(0,e.jsx)(Ke,{bot:o,patchBot:i})})]})})]})]})}function ze(a){let t=a.bot.feedback?.enabled===!0,[o,u]=(0,n.useState)(t),[i,l]=(0,n.useState)(JSON.stringify(a.bot.feedback??{enabled:!0},null,2)),[m,s]=(0,n.useState)(null),[c,r]=(0,n.useState)(!1),[b,p]=(0,n.useState)(""),[d,y]=(0,n.useState)([]),[S,x]=(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)(()=>{qt().then(h=>{y(h.chats.filter(N=>N.memberBots.some(g=>g.larkAppId===a.bot.larkAppId&&g.inChat)))}).catch(()=>y([]))},[a.bot.larkAppId]);async function v(h=o){r(!0),s(null);try{let N={enabled:!1};if(h){let f=JSON.parse(i);if(!f||typeof f!="object"||Array.isArray(f))throw new Error("\u9AD8\u7EA7 JSON \u5FC5\u987B\u662F\u5BF9\u8C61");N={...f,enabled:!0}}let g=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/feedback`,{feedback:JSON.stringify(N)});if(!g.ok)throw new Error(_(g));a.patchBot(a.bot.larkAppId,{feedback:g.body.feedback??null}),s({text:"\u2713 \u5DF2\u4FDD\u5B58",ok:!0})}catch(N){s({text:`\u2717 ${U(N)}`})}finally{r(!1)}}async function D(){let h=b.trim()?`?chatId=${encodeURIComponent(b.trim())}`:"",N=await fetch(`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/feedback/effective${h}`),g=await N.json().catch(()=>({}));if(!N.ok)throw new Error(g?.error??`HTTP ${N.status}`);x(g.trace)}async function C(){if(!b.trim())return s({text:"\u2717 \u8BF7\u8F93\u5165\u804A\u5929 ID"});r(!0),s(null);try{let h=JSON.parse(i),N=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/chats/${encodeURIComponent(b.trim())}/feedback`,{feedback:h});if(!N.ok)throw new Error(_(N));await D(),s({text:"\u2713 \u804A\u5929\u8986\u76D6\u5DF2\u4FDD\u5B58",ok:!0})}catch(h){s({text:`\u2717 ${U(h)}`})}finally{r(!1)}}return(0,e.jsxs)("section",{className:"bd-section","aria-busy":c,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:"\u6700\u7EC8\u56DE\u7B54\u53CD\u9988"}),(0,e.jsx)(et,{checked:o,disabled:c,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),v(h)}}),(0,e.jsxs)("label",{className:"bd-row",children:[(0,e.jsx)("span",{children:"\u9AD8\u7EA7 JSON"}),(0,e.jsx)("textarea",{value:i,disabled:c||!o,rows:10,onChange:h=>l(h.target.value)})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary",disabled:c||!o,onClick:()=>{v()},children:"\u4FDD\u5B58\u53CD\u9988\u914D\u7F6E"}),(0,e.jsx)(J,{status:m})]}),(0,e.jsx)("h4",{children:"\u6BCF\u804A\u5929\u8986\u76D6"}),(0,e.jsxs)("label",{className:"bd-row",children:[(0,e.jsx)("span",{children:"\u804A\u5929"}),(0,e.jsxs)("select",{value:b,onChange:h=>p(h.target.value),children:[(0,e.jsx)("option",{value:"",children:"\u9009\u62E9\u804A\u5929"}),d.map(h=>(0,e.jsx)("option",{value:h.chatId,children:h.name||h.chatId},h.chatId))]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",disabled:c||!b.trim(),onClick:()=>{C()},children:"\u4FDD\u5B58\u804A\u5929\u8986\u76D6"}),(0,e.jsx)("button",{type:"button",disabled:c,onClick:()=>{D()},children:"\u751F\u6548\u9884\u89C8"})]}),S?(0,e.jsx)("pre",{className:"code-block",children:JSON.stringify(S,null,2)}):null]})}function Ke(a){let t=H();return(0,e.jsxs)("section",{className:"bd-section bd-runtime-env",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionRuntimeEnv")}),(0,e.jsx)(Sa,{bot:a.bot,patchBot:a.patchBot}),(0,e.jsx)(Ta,{bot:a.bot,patchBot:a.patchBot})]})}var Nt=512;async function Xe(a){let t=await createImageBitmap(a);try{let o=Math.min(t.width,t.height);if(!o)throw new Error("empty image");let u=document.createElement("canvas");u.width=Nt,u.height=Nt;let i=u.getContext("2d");if(!i)throw new Error("canvas unavailable");let l=(t.width-o)/2,m=(t.height-o)/2;return i.drawImage(t,l,m,o,o,0,0,Nt,Nt),u.toDataURL("image/png")}finally{t.close()}}function Ze(a){let t=H(),{bot:o,name:u,patchBot:i}=a,l=(0,n.useRef)(null),[m,s]=(0,n.useState)(!1),[c,r]=(0,n.useState)(null),[b,p]=(0,n.useState)(!1),[d,y]=(0,n.useState)(!1),S=(0,n.useRef)(null);function x(C,h){let g=["no_session","session_expired","no_access","unsupported_brand"].includes(C)?t(`botDefaults.avatarWarn.${C}`):h||C;return t("botDefaults.avatarFailed",{error:g})}let v=(0,n.useCallback)(async C=>{s(!0),r({text:`\u23F3 ${t("botDefaults.avatarUploading")}`,ok:!0});try{let h=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/avatar`,{imageBase64:C});if(h.ok&&h.body.ok){let N=typeof h.body.avatarUrl=="string"?h.body.avatarUrl:"";N&&Vt(o.larkAppId,u,N),i(o.larkAppId,g=>({...g})),S.current=null,p(!1),r({text:`\u2713 ${t("botDefaults.avatarOkFeishu")}`,ok:!0})}else{let N=String(h.body?.error??""),g=typeof h.body?.message=="string"?h.body.message:void 0;r({text:`\u2717 ${x(N,g??_(h))}`});let f=N==="no_session"||N==="session_expired";p(f),f||(S.current=null)}}catch(h){r({text:`\u2717 ${t("botDefaults.avatarFailed",{error:U(h)})}`})}finally{s(!1)}},[o.larkAppId,u,i,t]);async function D(C){if(!C||m)return;s(!0);let h;try{h=await Xe(C)}catch{s(!1),r({text:`\u2717 ${t("botDefaults.avatarBadImage")}`});return}S.current=h,await v(h)}return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"bd-profile-avatar bd-avatar-editable","data-avatar-control":!0,children:[(0,e.jsxs)("button",{type:"button",className:"bd-avatar-btn","data-action":"edit-bot-avatar",title:t("botDefaults.avatarTitle"),"aria-label":t("botDefaults.avatarTitle"),disabled:m,onClick:()=>l.current?.click(),children:[(0,e.jsx)(pt,{html:mt({name:u,larkAppId:o.larkAppId,dot:"ok"})}),(0,e.jsx)("span",{className:"bd-avatar-edit-badge","aria-hidden":"true",children:m?"\u23F3":"\u270E"})]}),(0,e.jsx)("input",{ref:l,type:"file",accept:"image/*",hidden:!0,"data-input":"botAvatarFile",onChange:C=>{let h=C.currentTarget.files?.[0];C.currentTarget.value="",D(h)}}),d?(0,e.jsx)(Ce,{onClose:()=>y(!1),onSuccess:()=>{p(!1),y(!1),S.current&&v(S.current)}}):null]}),c?(0,e.jsxs)("small",{className:Gt(c,"bd-avatar-status"),"data-avatar-status":!0,children:[c.text,b?(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-avatar",onClick:()=>y(!0),children:t("feishuLogin.entry")}):null]}):null]})}function Ye(a){let t=H(),{bot:o,cli:u,patchBot:i}=a,l=o.botName??o.larkAppId,[m,s]=(0,n.useState)(!1),[c,r]=(0,n.useState)(l),[b,p]=(0,n.useState)(!1),[d,y]=(0,n.useState)(null),[S,x]=(0,n.useState)(!1),[v,D]=(0,n.useState)(!1);(0,n.useEffect)(()=>{m||r(l)},[m,l]);function C(g){s(g),g&&(r(l),y(null),x(!1))}function h(g,f){let $=["no_session","session_expired","no_access","unsupported_brand"].includes(g)?t(`botDefaults.renameWarn.${g}`):f||g;return t("botDefaults.renameLocalOnly",{reason:$})}let N=(0,n.useCallback)(async()=>{let g=c.trim();if(!g){y({text:`\u2717 ${t("botDefaults.renameEmpty")}`});return}p(!0),y({text:`\u23F3 ${t("botDefaults.renaming")}`,ok:!0});try{let f=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/rename`,{name:g});if(f.ok&&f.body.ok){let F=typeof f.body.botName=="string"&&f.body.botName?f.body.botName:g;i(o.larkAppId,$=>({...$,botName:F,larkBotName:f.body.mode==="feishu"?g:$.larkBotName,displayName:f.body.mode==="feishu"?null:g})),C(!1),f.body.mode==="feishu"?(y({text:`\u2713 ${t("botDefaults.renameOkFeishu")}`,ok:!0}),x(!1)):(y({text:`\u26A0 ${h(String(f.body.warning??""),f.body.message)}`}),x(f.body.warning==="no_session"||f.body.warning==="session_expired"))}else y({text:`\u2717 ${t("botDefaults.renameFailed",{error:_(f)})}`})}catch(f){y({text:`\u2717 ${t("botDefaults.renameFailed",{error:U(f)})}`})}finally{p(!1)}},[o.larkAppId,c,i,t]);return(0,e.jsxs)("div",{className:"bd-profile-id",children:[m?(0,e.jsxs)("span",{className:"bd-name-editor","data-name-editor":!0,children:[(0,e.jsx)("input",{type:"text",className:"bd-name-input","data-input":"botRename",maxLength:64,value:c,disabled:b,autoFocus:!0,onChange:g=>r(g.currentTarget.value),onKeyDown:g=>{g.key==="Enter"?(g.preventDefault(),N()):g.key==="Escape"&&C(!1)}}),(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:b,onClick:()=>{N()},children:t("botDefaults.renameSave")}),(0,e.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:b,onClick:()=>C(!1),children:t("botDefaults.renameCancel")})]}):(0,e.jsxs)("div",{className:"bd-profile-title-row","data-name-row":!0,children:[(0,e.jsxs)("div",{className:"bd-profile-title-content",children:[(0,e.jsx)("strong",{"data-bot-name":!0,children:l}),u?(0,e.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:u}):null,a.meta?(0,e.jsx)("span",{className:"bd-profile-meta bd-meta",children:a.meta}):null]}),(0,e.jsx)("button",{type:"button",className:"bd-name-edit","data-action":"edit-bot-name",title:t("botDefaults.renameTitle"),"aria-label":t("botDefaults.renameTitle"),onClick:()=>C(!0),children:(0,e.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M11.5 2.5l2 2L6 12l-2.5.5L4 10z"})})})]}),(0,e.jsxs)("div",{className:"bd-profile-appid-row",children:[(0,e.jsx)("code",{children:o.larkAppId}),Pt(o.larkAppId,o.brand)?(0,e.jsxs)("a",{className:"bd-console-link",href:Pt(o.larkAppId,o.brand),target:"_blank",rel:"noopener noreferrer",children:[t("botDefaults.openConsole"),(0,e.jsx)("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M7 17 17 7M9 7h8v8"})})]}):null]}),(0,e.jsx)("small",{className:Gt(d,"bd-name-status"),"data-name-status":!0,children:d?.text??""}),(0,e.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login",hidden:!S,onClick:()=>D(!0),children:t("feishuLogin.entry")}),v?(0,e.jsx)(Ce,{onClose:()=>D(!1),onSuccess:()=>{x(!1),D(!1),N()}}):null]})}function Ce(a){let t=H(),{onClose:o,onSuccess:u}=a,i=(0,n.useRef)(null),l=(0,n.useRef)(null),[m,s]=(0,n.useState)(t("feishuLogin.starting")),[c,r]=(0,n.useState)(null),[b,p]=(0,n.useState)(!1),d=(0,n.useCallback)(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]),y=(0,n.useCallback)(v=>v?v.status==="awaiting_scan"&&v.qrDataUrl?(r(v.qrDataUrl),s(v.message||t("feishuLogin.scanHint")),p(!1),"active"):v.status==="starting"?(s(v.message||t("feishuLogin.starting")),r(null),p(!1),"active"):v.status==="success"?(d(),r(null),p(!1),s(t("feishuLogin.success")),l.current=window.setTimeout(()=>u(),900),"done"):(d(),r(null),s(t("feishuLogin.failed",{reason:v.message||v.reason||""})),p(!0),"done"):"active",[u,d,t]),S=(0,n.useCallback)(async()=>{try{let D=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));y(D.login)}catch{}},[y]),x=(0,n.useCallback)(async()=>{d(),s(t("feishuLogin.starting")),r(null),p(!1);let v="active";try{let C=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));v=y(C.login)}catch(D){s(t("feishuLogin.failed",{reason:U(D)})),p(!0);return}v==="active"&&i.current===null&&(i.current=window.setInterval(()=>{S()},1500))},[S,y,d,t]);return(0,n.useEffect)(()=>(x(),()=>{d(),l.current!==null&&window.clearTimeout(l.current)}),[x,d]),typeof document>"u"?null:(0,De.createPortal)((0,e.jsx)("div",{className:"feishu-login-overlay",onClick:v=>{v.currentTarget===v.target&&o()},children:(0,e.jsxs)("div",{className:"feishu-login-modal",role:"dialog","aria-modal":"true",children:[(0,e.jsx)("button",{type:"button",className:"feishu-login-close","data-close":!0,"aria-label":t("feishuLogin.close"),onClick:o,children:"x"}),(0,e.jsx)("h3",{className:"feishu-login-title",children:t("feishuLogin.title")}),(0,e.jsx)("p",{className:"feishu-login-hint","data-hint":!0,children:m}),(0,e.jsx)("div",{className:"feishu-login-qr","data-qr":!0,children:c?(0,e.jsx)("img",{className:"qr-image",src:c,alt:t("feishuLogin.qrAlt")}):null}),(0,e.jsx)("div",{className:"feishu-login-actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-retry":!0,hidden:!b,onClick:()=>{x()},children:t("feishuLogin.retry")})})]})}),document.body)}function ta(a){let t=H(),{bot:o,cliState:u,patchBot:i}=a,l=Bt(o,a.sessionFallback),m=JSON.stringify([o.cliRuntime??null,o.cliPathOverride??null]),[s,c]=(0,n.useState)(l),[r,b]=(0,n.useState)(!1),[p,d]=(0,n.useState)(typeof o.model=="string"?o.model:""),[y,S]=(0,n.useState)(o.reasoningEffort??""),[x,v]=(0,n.useState)(Lt(o.turnTimeoutMs)),[D,C]=(0,n.useState)(!1),[h,N]=(0,n.useState)(null),[g,f]=(0,n.useState)(()=>$t(o)),[F,$]=(0,n.useState)(!1),[W,w]=(0,n.useState)(null),[X,j]=(0,n.useState)(null),[q,T]=(0,n.useState)(!1),[L,Z]=(0,n.useState)(me(o)),[G,M]=(0,n.useState)(null),[k,P]=(0,n.useState)(!1);(0,n.useEffect)(()=>{c(Bt(o,a.sessionFallback)),b(!1),d(typeof o.model=="string"?o.model:""),S(o.reasoningEffort??""),v(Lt(o.turnTimeoutMs)),C(!1),N(null),f($t(o)),$(!1),Z(me(o))},[o.agentSelectionKey,o.cliId,o.larkAppId,o.model,o.reasoningEffort,o.turnTimeoutMs,m,o.wrapperCli,o.skillInjection,o.skillInjectionDefault,a.sessionFallback]);let R=At(u.options,s),B=oe(R,u),O=R?.gateway==="ttadk"&&R.acceptsModel===!1,Q=O?t("botOnboarding.modelTtadkCocoPlaceholder"):R?.gateway==="ttadk"?t("botOnboarding.modelTtadkPlaceholder").replace("{model}",u.ttadkModelDefault):t("botDefaults.agentModelPlaceholder");function ot(I){let Y=s;c(I),b(!0),I!==Y&&(I!=="codex"||Y!=="codex")&&(f($t({cliRuntime:null,cliPathOverride:null})),$(!0),w(null));let lt=At(u.options,I),E=lt?.gateway==="ttadk",ut=E&&lt.acceptsModel!==!1;d(E&&!ut?"":ut?st=>st.trim()?st:u.ttadkModelDefault:st=>st.trim()===u.ttadkModelDefault?"":st)}function K(I){f(Y=>({...Y,mode:I})),$(!0),w(null),j(null)}function z(I){f(Y=>({...Y,...I})),$(!0),w(null),j(null)}async function nt(){j(null),w(null);let I;if(F&&(I=null),F&&s==="codex"&&g.mode==="custom"){let lt=g.id.trim(),E=g.executable.trim(),ut=g.displayName.trim(),st=g.packageName.trim();if(!lt||!E){let it=t("botDefaults.runtimeRequired");j({text:it}),w({text:it});return}if(g.updateProvider==="npm"&&!st){let it=t("botDefaults.runtimePackageRequired");j({text:it}),w({text:it});return}I={id:lt,...ut?{displayName:ut}:{},executable:E,update:g.updateProvider==="npm"?{provider:"npm",packageName:st}:{provider:g.updateProvider}}}let Y;if(s==="dsh"&&D){let lt=ea(x);if(lt==="invalid"){let E=t("botDefaults.agentTurnTimeoutInvalid");N(E),j({text:`\u2717 ${E}`});return}N(null),Y=lt}T(!0);try{let lt={cliId:s,model:p,reasoningEffort:s==="codex"||s==="codex-app"||s.endsWith("-codex")?y:"",...s==="dsh"&&Y!==void 0?{turnTimeoutMs:Y}:{},...F?{cliRuntime:I}:{}},E=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,lt);if(E.ok&&E.body.ok){let ut=Number.isInteger(E.body.closedMismatchedSessions)&&E.body.closedMismatchedSessions>0?E.body.closedMismatchedSessions:0,st=ut>0?t("botDefaults.agentClosedCount",{count:ut}):"";if(j(E.body.availabilityWarning?{text:`\u26A0\uFE0F ${E.body.availabilityWarning}${st?` \xB7 ${st}`:""}`}:{text:`\u2713 ${st||t("botDefaults.agentSaved")}`,ok:!0}),i(o.larkAppId,{cliId:E.body.cliId,cliRuntime:E.body.cliRuntime===void 0?F?I??null:o.cliRuntime??null:E.body.cliRuntime,cliPathOverride:E.body.cliPathOverride===void 0?F?null:o.cliPathOverride??null:E.body.cliPathOverride,wrapperCli:E.body.wrapperCli??null,model:E.body.model??"",reasoningEffort:E.body.reasoningEffort??void 0,turnTimeoutMs:typeof E.body.turnTimeoutMs=="number"?E.body.turnTimeoutMs:void 0,agentSelectionKey:E.body.selectionKey??s}),v(Lt(typeof E.body.turnTimeoutMs=="number"?E.body.turnTimeoutMs:void 0)),C(!1),N(null),$(!1),I){let it=E.body.runtimeProbe;it&&typeof it.version=="string"?w({text:t("botDefaults.runtimeProbeOk",{version:it.version,provider:typeof it.updateProvider=="string"?it.updateProvider:g.updateProvider}),ok:!0}):w({text:t("botDefaults.runtimeProbeMissing")})}}else{let st=`\u2717 ${typeof E.body?.message=="string"&&E.body.message?E.body.message:_(E)}`;j({text:st}),s==="codex"&&g.mode==="custom"&&w({text:st})}}catch(lt){let E=`\u2717 ${U(lt)}`;j({text:E}),s==="codex"&&g.mode==="custom"&&w({text:E})}finally{T(!1)}}async function at(){if(o.cliId==="riff")return!0;try{let I=await V("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):(j({text:`\u2717 ${_(I)}`}),!1)}catch(I){return j({text:`\u2717 ${U(I)}`}),!1}}async function rt(I){Z(I),M(null),P(!0);try{let Y=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/skill-injection`,{skillInjection:I});Y.ok&&Y.body.ok?(M({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}),i(o.larkAppId,{skillInjection:Y.body.skillInjection??null})):M({text:`\u2717 ${_(Y)}`})}catch(Y){M({text:`\u2717 ${U(Y)}`})}finally{P(!1)}}let Ht=o.skillInjectionSupport==="dynamic"?"dynamic":o.skillInjectionSupport==="global"?"global":"none",ft=s==="riff",xe=s==="codex"||s==="codex-app"||s.endsWith("-codex"),Ie=s==="dsh",It=(0,n.useMemo)(()=>de(p),[p]);(0,n.useEffect)(()=>{y&&!It.includes(y)&&S("")},[y,It]);let _t=s==="codex"&&(!o.wrapperCli||r),Wt=_t&&g.mode!=="official",Pe=[...u.options].sort((I,Y)=>I.label.localeCompare(Y.label,"en",{sensitivity:"base"})).map(I=>({value:I.id,label:I.available===!1&&!(I.id==="codex"&&Wt)?t("botDefaults.agentMissingOption",{label:I.label,command:I.command??I.id}):`${I.label}\uFF08${I.id}\uFF09`})),Re=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamic")}],we=[{value:"dynamic",label:t("botDefaults.skillInjectionDynamicUnsupported"),disabled:!0},{value:"prompt",label:t("botDefaults.skillInjectionPrompt")},{value:"global",label:t("botDefaults.skillInjectionGlobal")},{value:"off",label:t("botDefaults.skillInjectionOff")}],Me=[{value:"auto",label:t("botDefaults.runtimeProviderAuto")},{value:"self",label:t("botDefaults.runtimeProviderSelf")},{value:"npm",label:t("botDefaults.runtimeProviderNpm")},{value:"none",label:t("botDefaults.runtimeProviderNone")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionAgent")}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:t("botDefaults.agentCli")}),(0,e.jsx)(tt,{dataInput:"agentCliId",ariaLabel:t("botDefaults.agentCli"),value:s,disabled:q,options:Pe,searchable:!0,onChange:ot}),R?.available===!1&&!Wt?(0,e.jsx)("small",{className:"hint-warn",children:t("botDefaults.agentMissingHint",{command:R.command??s})}):null]})}),_t?(0,e.jsxs)("div",{className:"bd-codex-runtime","data-codex-runtime":"",children:[(0,e.jsx)("div",{className:"bd-runtime-heading",children:(0,e.jsx)(A,{help:t("botDefaults.runtimeHelp"),children:t("botDefaults.runtimeTitle")})}),(0,e.jsxs)("div",{className:"bd-runtime-mode",role:"group","aria-label":t("botDefaults.runtimeTitle"),children:[(0,e.jsx)("button",{type:"button","data-action":"runtime-official","aria-pressed":g.mode==="official",disabled:q,onClick:()=>K("official"),children:t("botDefaults.runtimeOfficial")}),(0,e.jsx)("button",{type:"button","data-action":"runtime-custom","aria-pressed":g.mode==="custom",disabled:q,onClick:()=>K("custom"),children:t("botDefaults.runtimeCustom")})]}),(0,e.jsx)("input",{type:"hidden","data-input":"agentRuntimeMode",value:g.mode,readOnly:!0}),(0,e.jsx)("p",{className:"bd-runtime-note",children:t(g.mode==="official"?"botDefaults.runtimeOfficialNote":g.mode==="legacy"?"botDefaults.runtimeLegacyNote":"botDefaults.runtimeCustomNote")}),g.mode==="legacy"?(0,e.jsx)("div",{className:"bd-runtime-fields","data-runtime-legacy":"",children:(0,e.jsxs)("label",{className:"bd-runtime-wide",children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeLegacyPath")}),(0,e.jsx)("input",{type:"text",value:g.legacyPath,readOnly:!0,"aria-readonly":"true","data-input":"agentRuntimeLegacyPath"})]})}):null,g.mode==="custom"?(0,e.jsxs)("div",{className:"bd-runtime-fields",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:t("botDefaults.runtimeIdHelp"),children:t("botDefaults.runtimeId")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeId",value:g.id,disabled:q,autoComplete:"off",onChange:I=>z({id:I.currentTarget.value})})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeDisplayName")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeDisplayName",placeholder:t("botDefaults.runtimeDisplayNamePlaceholder"),value:g.displayName,disabled:q,autoComplete:"off",onChange:I=>z({displayName:I.currentTarget.value})})]}),(0,e.jsxs)("label",{className:"bd-runtime-wide",children:[(0,e.jsx)(A,{help:t("botDefaults.runtimeExecutableHelp"),children:t("botDefaults.runtimeExecutable")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimeExecutable",value:g.executable,disabled:q,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:I=>z({executable:I.currentTarget.value})})]}),(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:t("botDefaults.runtimeUpdateProvider")}),(0,e.jsx)(tt,{dataInput:"agentRuntimeUpdateProvider",ariaLabel:t("botDefaults.runtimeUpdateProvider"),value:g.updateProvider,disabled:q,options:Me,onChange:I=>z({updateProvider:I})})]}),g.updateProvider==="npm"?(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:t("botDefaults.runtimePackageHelp"),children:t("botDefaults.runtimePackageName")}),(0,e.jsx)("input",{type:"text","data-input":"agentRuntimePackageName",value:g.packageName,disabled:q,autoCapitalize:"none",autoComplete:"off",spellCheck:!1,onChange:I=>z({packageName:I.currentTarget.value})})]}):null]}):null,(0,e.jsx)(J,{status:W,attr:{"data-runtime-status":""}})]}):null,!ft&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:t("botDefaults.agentHelp"),children:t("botDefaults.agentModel")}),(0,e.jsx)("input",{type:"text","data-input":"agentModel",list:`agent-model-suggestions-${o.larkAppId}`,placeholder:Q,value:p,disabled:q||O,onChange:I=>d(I.currentTarget.value)}),(0,e.jsx)("datalist",{id:`agent-model-suggestions-${o.larkAppId}`,children:B.map(I=>(0,e.jsx)("option",{value:I},I))})]})}),Ie&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:t("botDefaults.agentTurnTimeoutHelp"),children:t("botDefaults.agentTurnTimeout")}),(0,e.jsx)("input",{type:"number",min:0,step:"any",inputMode:"decimal","data-input":"agentTurnTimeout",placeholder:t("botDefaults.agentTurnTimeoutPlaceholder"),value:x,disabled:q,onChange:I=>{v(I.currentTarget.value),C(!0),N(null)}}),h?(0,e.jsx)("small",{className:"hint-warn","data-turn-timeout-error":"",children:h}):null]})}),xe&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.agentReasoningEffortHelp"),children:t("botDefaults.agentReasoningEffort")}),(0,e.jsx)(tt,{dataInput:"agentReasoningEffort",ariaLabel:t("botDefaults.agentReasoningEffort"),value:y,disabled:q,options:[{value:"",label:t("botDefaults.agentReasoningEffortDefault")},...It.map(I=>({value:I,label:t(`botDefaults.agentReasoningEffort${I==="xhigh"?"Xhigh":I[0].toUpperCase()+I.slice(1)}`)}))],onChange:I=>S(I)})]})}),ft&&(0,e.jsx)(Pa,{bot:o,patchBot:i,persistCliSelection:at}),!ft&&Ht==="dynamic"?(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.skillInjectionHelpDynamic"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(tt,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:Re,onChange:()=>{}})]})}):!ft&&Ht==="global"?(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.skillInjectionHelp"),children:t("botDefaults.skillInjection")}),(0,e.jsx)(tt,{dataInput:"skillInjection",ariaLabel:t("botDefaults.skillInjection"),value:L,disabled:k,options:we,onChange:I=>{rt(I)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:G,attr:{"data-skill-injection-status":""}})})]}):null,!ft&&(0,e.jsxs)("div",{className:"actions bd-section-actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:q,onClick:()=>{nt()},children:t("botDefaults.agentSave")}),(0,e.jsx)(J,{status:X,attr:{"data-agent-status":""}})]})]})}var Se=2147483647;function Lt(a){if(typeof a!="number"||!Number.isInteger(a)||a<=0||a>Se)return"";let t=a/6e4;return Number.isInteger(t)?String(t):String(Number(t.toFixed(10)))}function ea(a){let t=a.trim();if(!t)return"";let o=Number(t);if(!Number.isFinite(o)||o<=0)return"invalid";let u=Math.round(o*6e4);return u<=0||u>Se?"invalid":u}function me(a){let t=a.skillInjection==="global"||a.skillInjection==="prompt"||a.skillInjection==="off"?a.skillInjection:"",o=a.skillInjectionDefault==="global"||a.skillInjectionDefault==="off"?a.skillInjectionDefault:"prompt";return t||o}function aa(a){let t=H(),{bot:o,patchBot:u}=a,i=pe(o),[l,m]=(0,n.useState)(i.mode),[s,c]=(0,n.useState)(i.workingDir),[r,b]=(0,n.useState)(o.defaultWorkingDirAutoWorktree===!0),[p,d]=(0,n.useState)(null),[y,S]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let D=pe(o);m(D.mode),c(D.workingDir),b(o.defaultWorkingDirAutoWorktree===!0)},[o.defaultOncall?.enabled,o.defaultOncall?.workingDir,o.defaultWorkingDir,o.defaultWorkingDirAutoWorktree]);async function x(){d(null);let D=s.trim();if(l!=="off"&&!D){d({text:t("botDefaults.required")});return}let C=l==="default"&&r;S(!0);try{let h=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/working-dir-mode`,{mode:l,workingDir:D,autoWorktree:C});if(h.ok&&h.body.ok){let N=h.body.resolvedPath?` \u2192 ${h.body.resolvedPath}`:"";d({text:`\u2713 ${t("botDefaults.workingDirSaved")}${N}`,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 ${_(h)}`})}catch(h){d({text:`\u2717 ${U(h)}`})}finally{S(!1)}}let v=[{value:"off",label:t("botDefaults.workingDirModeOff")},{value:"default",label:t("botDefaults.workingDirModeDefault")},{value:"oncall",label:t("botDefaults.workingDirModeOncall")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionWorkingDir")}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.workingDirModeHelp"),children:t("botDefaults.workingDirMode")}),(0,e.jsx)(tt,{dataInput:"workingDirMode",ariaLabel:t("botDefaults.workingDirMode"),value:l,disabled:y,options:v,onChange:D=>m(D)})]})}),(0,e.jsx)("div",{className:"bd-row","data-wd-dir-row":!0,hidden:l==="off",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.workingDirField")}),(0,e.jsx)("input",{type:"text","data-input":"workingDir",placeholder:"e.g. /root/iserver/botmux",value:s,disabled:y,onChange:D=>c(D.currentTarget.value)})]})}),(0,e.jsxs)("label",{className:"toggle-row","data-wd-worktree-row":!0,hidden:l!=="default",children:[(0,e.jsx)("input",{type:"checkbox","data-input":"autoWorktree",checked:r,disabled:y,onChange:D=>b(D.currentTarget.checked)}),(0,e.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,e.jsx)("span",{className:"toggle-tx",children:(0,e.jsx)("strong",{children:(0,e.jsx)(A,{help:t("botDefaults.autoWorktreeHelp"),children:t("botDefaults.autoWorktree")})})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-working-dir",disabled:y,onClick:()=>{x()},children:t("botDefaults.save")}),(0,e.jsx)(J,{status:p,attr:{"data-status":""}})]}),(0,e.jsx)(oa,{bot:o,putCardPref:a.putCardPref})]})}function pe(a){let t=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:t.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||t.workingDir||""}}function oa(a){let t=H(),{bot:o,putCardPref:u}=a,[i,l]=(0,n.useState)(o.autoStartOnGroupJoin===!0),[m,s]=(0,n.useState)(o.autoStartOnNewTopic===!0),[c,r]=(0,n.useState)(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:""),[b,p]=(0,n.useState)(null),[d,y]=(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 S(x,v){y(v),p(null);try{let D=await u(x);p(D.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${_(D)}`})}catch(D){p({text:`\u2717 ${U(D)}`})}finally{y(null)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:t("botDefaults.sectionAutoStart")}),(0,e.jsx)(et,{checked:i,disabled:d==="join",dataAction:"toggle-auto-join",title:t("botDefaults.autoStartJoin"),help:t("botDefaults.autoStartJoinHelp"),onChange:x=>{l(x),S({autoStartOnGroupJoin:x},"join")}}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.autoStartJoinPrompt")}),(0,e.jsx)("textarea",{"data-input":"autoJoinPrompt",rows:3,placeholder:t("botDefaults.autoStartJoinPromptPlaceholder"),value:c,onChange:x=>r(x.currentTarget.value)})]})}),(0,e.jsx)(et,{checked:m,disabled:d==="topic",dataAction:"toggle-auto-topic",title:t("botDefaults.autoStartTopic"),help:t("botDefaults.autoStartTopicHelp"),onChange:x=>{s(x),S({autoStartOnNewTopic:x},"topic")}}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-auto-join-prompt",disabled:d==="prompt",onClick:()=>{S({autoStartOnGroupJoinPrompt:c},"prompt")},children:t("botDefaults.autoStartJoinPromptSave")}),(0,e.jsx)(J,{status:b,attr:{"data-auto-start-status":""}})]})]})}function na(a){let t=H(),{bot:o,patchBot:u}=a,[i,l]=(0,n.useState)(o.sandbox===!0),[m,s]=(0,n.useState)(null),[c,r]=(0,n.useState)(!1);(0,n.useEffect)(()=>l(o.sandbox===!0),[o.sandbox]);async function b(d){l(d),s(null),r(!0);try{let y=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox`,{enabled:d});y.ok&&y.body.ok?(s({text:`\u2713 ${t("botDefaults.sandboxSaved")}`,ok:!0}),u(o.larkAppId,{sandbox:y.body.sandbox===!0})):(s({text:`\u2717 ${_(y)}`}),l(!d))}catch(y){s({text:`\u2717 ${U(y)}`}),l(!d)}finally{r(!1)}}let p=o.readIsolationSupported===!0;return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSandbox")}),(0,e.jsx)(et,{checked:i,disabled:c,dataAction:"toggle-sandbox",title:t("botDefaults.sandboxToggle"),help:t("botDefaults.sandboxHelp"),onChange:d=>{b(d)}}),(0,e.jsx)("p",{className:"bd-section-note","data-read-iso-capability":p?"yes":"no",children:p?`\uFF0B ${t("botDefaults.sandboxReadIsoOn")}`:t("botDefaults.sandboxReadIsoOff")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:m,attr:{"data-sandbox-status":""}})})]})}var ge={readWrite:0,readOnly:1,deny:2};function ye(a,t,o){let u=b=>b==="~"||b.startsWith("~/")?o.replace(/\/+$/,"")+b.slice(1):b,i=b=>u(b).replace(/\/+$/,"")||"/",l=i(t),m=(b,p)=>{let d=i(b),y=i(p);return d===y||y.startsWith(d==="/"?"/":d+"/")},s=b=>i(b)==="/"?0:i(b).split("/").filter(Boolean).length,c,r=(b,p)=>{if(!m(p,l))return;let d=s(p);(!c||d>c.ruleDepth||d===c.ruleDepth&&ge[b]>ge[c.access])&&(c={access:b,ruleDepth:d,rule:p})};for(let b of a.readWrite)r("readWrite",b);for(let b of a.readOnly)r("readOnly",b);for(let b of a.deny)r("deny",b);return c?{access:c.access,rule:c.rule}:{access:"none"}}function Te(){return{readWrite:[],readOnly:[],deny:[]}}function Dt(a){return a?{readWrite:[...a.readWrite??[]],readOnly:[...a.readOnly??[]],deny:[...a.deny??[]]}:Te()}function sa(a,t){let o=u=>[...u].sort().join(`
3
- `);return o(a.readWrite)===o(t.readWrite)&&o(a.readOnly)===o(t.readOnly)&&o(a.deny)===o(t.deny)}function Et(a){let t=[];for(let o of a.readWrite)t.push(`rw ${o}`);for(let o of a.readOnly)t.push(`ro ${o}`);for(let o of a.deny)t.push(`deny ${o}`);return t.join(`
4
- `)}function la(a){let t=Te();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:"?t.readWrite.push(m):l==="ro"||l==="readonly"||l==="ro:"?t.readOnly.push(m):(l==="deny"||l==="-"||l==="deny:")&&t.deny.push(m)}return t}function ia(a){let t=H(),{bot:o,patchBot:u}=a,[i,l]=(0,n.useState)(()=>Dt(o.sandboxPaths)),[m,s]=(0,n.useState)(()=>Et(Dt(o.sandboxPaths))),[c,r]=(0,n.useState)(!1),[b,p]=(0,n.useState)(null),[d,y]=(0,n.useState)(!1),[S,x]=(0,n.useState)(""),[v,D]=(0,n.useState)({}),[C,h]=(0,n.useState)(new Set),[N,g]=(0,n.useState)([]),[f,F]=(0,n.useState)("~"),$=(0,n.useMemo)(()=>Dt(o.sandboxPaths),[o.sandboxPaths]);(0,n.useEffect)(()=>{l(Dt(o.sandboxPaths)),s(Et(Dt(o.sandboxPaths)))},[o.sandboxPaths]);let W=!sa(i,$),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?D(B=>({...B,[M]:R.entries.map(O=>({name:O.name,path:O.path}))})):(g(R.entries.map(B=>({name:B.name,path:B.path}))),typeof R.home=="string"&&R.home.startsWith("/")&&F(R.home))}catch{}},[]);(0,n.useEffect)(()=>{!c&&N.length===0&&w("")},[c,N.length,w]);let X=(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]),j=(0,n.useCallback)(M=>{p(null);let k=M.replace(/\/+$/,"")||"/",P=X(M),R=P===void 0?"readWrite":P==="readWrite"?"readOnly":P==="readOnly"?"deny":void 0;l(B=>{let O=ot=>ot.filter(K=>(K.replace(/\/+$/,"")||"/")!==k),Q={readWrite:O(B.readWrite),readOnly:O(B.readOnly),deny:O(B.deny)};return R&&Q[R].push(M),s(Et(Q)),Q})},[X]);function q(M){s(M),l(la(M)),p(null)}async function T(){y(!0),p(null);try{let M=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox-paths`,i);M.ok&&M.body.ok?(p({text:`\u2713 ${t("botDefaults.sbxPathsSaved")}`,ok:!0}),u(o.larkAppId,{sandboxPaths:M.body.sandboxPaths??{readWrite:[],readOnly:[],deny:[]}})):p({text:`\u2717 ${_(M)}`})}catch(M){p({text:`\u2717 ${U(M)}`})}finally{y(!1)}}let L=M=>t(M==="readWrite"?"botDefaults.sbxRw":M==="readOnly"?"botDefaults.sbxRo":M==="deny"?"botDefaults.sbxDeny":"botDefaults.sbxNone");function Z(M){let{name:k,path:P,depth:R}=M,B=C.has(P),O=X(P),Q=ye(i,P,f),ot=v[P];return(0,e.jsxs)("div",{className:"bd-sbx-node",children:[(0,e.jsxs)("div",{className:"bd-sbx-row",style:{paddingLeft:R*16},children:[(0,e.jsx)("span",{className:"bd-sbx-twisty",onClick:()=>{h(K=>{let z=new Set(K);return z.has(P)?z.delete(P):z.add(P),z}),ot||w(P)},children:B?"\u25BE":"\u25B8"}),(0,e.jsx)("span",{className:"bd-sbx-name",title:P,children:k}),(0,e.jsx)("button",{type:"button",className:`bd-sbx-state bd-sbx-state-${O??"inherit"}`,"data-action":"cycle-sandbox-path","data-path":P,title:O?void 0:`${t("botDefaults.sbxInherit")}: ${L(Q.access)}`,onClick:()=>j(P),children:O?L(O):`\u21B3 ${L(Q.access)}`})]}),B&&(0,e.jsxs)("div",{className:"bd-sbx-kids",children:[ot?.map(K=>(0,e.jsx)(Z,{name:K.name,path:K.path,depth:R+1},K.path)),ot&&ot.length===0&&(0,e.jsx)("div",{className:"bd-sbx-empty",style:{paddingLeft:(R+1)*16+20},children:t("botDefaults.sbxNoSubdirs")})]})]})}let G=S.trim()?ye(i,S.trim(),f):null;return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSandboxPaths")}),(0,e.jsx)("p",{className:"bd-section-note",children:t("botDefaults.sbxPathsHelp")}),(0,e.jsx)("div",{className:"actions",style:{gap:8,flexWrap:"wrap"},children:(0,e.jsx)("button",{type:"button",className:"bd-btn",onClick:()=>r(M=>!M),children:t(c?"botDefaults.sbxPathsTreeMode":"botDefaults.sbxPathsTextMode")})}),c?(0,e.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=>q(M.target.value)}):(0,e.jsx)("div",{className:"bd-sbx-tree","data-field":"sandbox-paths-tree",children:N.map(M=>(0,e.jsx)(Z,{name:M.name,path:M.path,depth:0},M.path))}),(0,e.jsxs)("div",{className:"bd-sbx-tester",children:[(0,e.jsx)("input",{className:"bd-sbx-test-input","data-field":"sandbox-path-test",placeholder:t("botDefaults.sbxTestPlaceholder"),value:S,onChange:M=>x(M.target.value)}),G&&(0,e.jsxs)("span",{className:`bd-sbx-test-out bd-sbx-state-${G.access}`,"data-test-access":G.access,children:[L(G.access),G.rule?` \u2190 ${G.rule}`:""]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"bd-btn bd-btn-primary","data-action":"save-sandbox-paths",disabled:d||!W,onClick:()=>{T()},children:t("botDefaults.sbxPathsSave")}),(0,e.jsx)(J,{status:b,attr:{"data-sandbox-paths-status":""}})]})]})}var ra=[{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 ua(a){let t=H(),{bot:o,patchBot:u}=a,[i,l]=(0,n.useState)(typeof o.backendType=="string"?o.backendType:""),[m,s]=(0,n.useState)(null),[c,r]=(0,n.useState)(!1);(0,n.useEffect)(()=>l(typeof o.backendType=="string"?o.backendType:""),[o.backendType]);let b=(0,n.useMemo)(()=>ra.map(d=>({value:d.value,label:t(d.labelKey)})),[t]);async function p(d){let y=i;l(d),s(null),r(!0);try{let S=await V("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/backend-type`,{backendType:d});S.ok&&S.body.ok?(s({text:`\u2713 ${t("botDefaults.backendSaved")}`,ok:!0}),u(o.larkAppId,{backendType:typeof S.body.backendType=="string"?S.body.backendType:null})):(s({text:`\u2717 ${_(S)}`}),l(y))}catch(S){s({text:`\u2717 ${U(S)}`}),l(y)}finally{r(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionBackend")}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.backendHelp"),children:t("botDefaults.backendLabel")}),(0,e.jsx)(tt,{dataInput:"backendType",ariaLabel:t("botDefaults.backendLabel"),value:i,disabled:c,options:b,onChange:d=>{p(d)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:m,attr:{"data-backend-status":""}})})]})]})}function da(a){let t=H(),{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:""),[c,r]=(0,n.useState)("every"),[b,p]=(0,n.useState)(null),[d,y]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let v=!0,D=`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`;return typeof o.teamRole=="string"?(l(!0),s(o.teamRole),()=>{v=!1}):(p(null),l(!1),s(""),(async()=>{try{let C=await fetch(D),h=await C.json().catch(()=>({}));if(!v)return;if(C.ok&&h.ok){let N=h.role??"";s(N),r(h.injectMode==="once"?"once":"every"),l(!0),u(o.larkAppId,{teamRole:N})}else p({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${h.error??C.status}`})}catch(C){v&&p({text:`\u2717 ${t("botDefaults.roleLoadErr")}: ${U(C)}`})}})(),()=>{v=!1})},[o.larkAppId,o.teamRole,u,t]),(0,n.useEffect)(()=>{let v=!0;return typeof o.teamRole!="string"?()=>{v=!1}:((async()=>{try{let D=await fetch(`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`),C=await D.json().catch(()=>({}));v&&D.ok&&C.ok&&r(C.injectMode==="once"?"once":"every")}catch{}})(),()=>{v=!1})},[o.larkAppId]);async function S(v,D,C=c){if(i){p(null),y(!0);try{let h=await V("PUT",`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`,{role:v,injectMode:C});if(h.ok&&h.body.ok){let N=v.trim();s(N),(h.body.injectMode==="once"||h.body.injectMode==="every")&&r(h.body.injectMode),u(o.larkAppId,{teamRole:N}),p({text:`\u2713 ${t(D?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else p({text:`\u2717 ${_(h)}`})}catch(h){p({text:`\u2717 ${U(h)}`})}finally{y(!1)}}}let x=[{value:"every",label:t("roles.injectModeEvery")},{value:"once",label:t("roles.injectModeOnce")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(A,{help:t("botDefaults.roleHelp"),children:t("botDefaults.sectionRole")})}),(0,e.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:t("botDefaults.rolePlaceholder"),disabled:!i||d,value:m,onChange:v=>s(v.currentTarget.value)}),(0,e.jsxs)("div",{className:"bd-role-inject",children:[(0,e.jsx)("span",{className:"bd-subsection-title",children:(0,e.jsx)(A,{help:t("roles.injectModeHint"),children:t("roles.injectModeLabel")})}),(0,e.jsx)(wt,{id:`bd-role-inject-${o.larkAppId}`,className:"bd-role-inject-menu",ariaLabel:t("roles.injectModeLabel"),disabled:!i||d,label:Rt(x,c),value:c,options:x,onChange:v=>{let D=v==="once"?"once":"every";r(D),S(m,m.trim()==="",D)}})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!i||d,onClick:()=>{S(m,m.trim()==="")},children:t("botDefaults.roleSave")}),(0,e.jsx)(J,{status:b,attr:{"data-role-status":""}})]}),(0,e.jsx)(ca,{appId:o.larkAppId})]})}function ca(a){let t=H(),[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"),c=await s.json().catch(()=>({}));if(!m)return;if(!s.ok)throw new Error(c?.error??String(s.status));let b=(Array.isArray(c.profiles)?c.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:b})}catch(s){m&&u({loaded:!0,loading:!1,error:U(s),items:[]})}})(),()=>{m=!1}},[a.appId]);async function i(m){let s=o.items.find(c=>c.profileId===m);if(!(!s||s.loaded||s.loading)){u(c=>({...c,items:c.items.map(r=>r.profileId===m?{...r,loading:!0}:r)}));try{let c=await fetch(`/api/role-profiles/${encodeURIComponent(m)}/${encodeURIComponent(a.appId)}`),r=await c.json().catch(()=>({}));if(!c.ok)throw new Error(r?.error??String(c.status));u(b=>({...b,items:b.items.map(p=>p.profileId===m?{...p,loading:!1,loaded:!0,content:r?.hasEntry?String(r.content??""):""}:p)}))}catch(c){u(r=>({...r,items:r.items.map(b=>b.profileId===m?{...b,loading:!1,error:U(c)}:b)}))}}}let l;return o.loading?l=(0,e.jsx)(St,{label:t("common.loading"),compact:!0}):o.error?l=(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRolesLoadFailed",{error:o.error})}):o.items.length===0?l=(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRolesEmpty")}):l=o.items.map(m=>(0,e.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":m.profileId,onToggle:s=>{s.currentTarget.open&&i(m.profileId)},children:[(0,e.jsx)("summary",{children:(0,e.jsx)("span",{className:"bd-profile-role-id",children:m.profileId})}),(0,e.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":m.profileId,children:m.loading?(0,e.jsx)(St,{label:t("common.loading"),compact:!0}):m.error?(0,e.jsx)("p",{className:"hint-warn-inline",children:t("botDefaults.profileRoleDetailLoadFailed",{error:m.error})}):m.loaded?(0,e.jsx)("pre",{children:m.content??""}):(0,e.jsx)("p",{className:"empty",children:t("botDefaults.profileRoleClickToLoad")})})]},m.profileId)),(0,e.jsxs)("div",{className:"bd-profile-roles","data-profile-roles":!0,children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(A,{help:t("botDefaults.profileRolesHelp"),children:t("botDefaults.profileRoles")})}),(0,e.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:l})]})}function ba(a){let t=H(),{bot:o,putCardPref:u}=a,[i,l]=(0,n.useState)(o.usageDisplay??"streaming"),[m,s]=(0,n.useState)(o.disableStreamingCard===!0),[c,r]=(0,n.useState)(o.silentTurnReactions===!0),[b,p]=(0,n.useState)(o.writableTerminalLinkInCard===!0),[d,y]=(0,n.useState)(o.privateCard===!0),[S,x]=(0,n.useState)(null),[v,D]=(0,n.useState)(null);(0,n.useEffect)(()=>{l(o.usageDisplay??"streaming"),s(o.disableStreamingCard===!0),r(o.silentTurnReactions===!0),p(o.writableTerminalLinkInCard===!0),y(o.privateCard===!0)},[o.disableStreamingCard,o.privateCard,o.usageDisplay,o.silentTurnReactions,o.writableTerminalLinkInCard]);async function C(N,g,f){D(g),x(null);try{let F=await u(N);F.ok?x({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(f?.(),x({text:`\u2717 ${_(F)}`}))}catch(F){f?.(),x({text:`\u2717 ${U(F)}`})}finally{D(null)}}let h=[{value:"streaming",label:t("botDefaults.usageDisplayStreaming")},{value:"footer",label:t("botDefaults.usageDisplayFooter")},{value:"off",label:t("botDefaults.usageDisplayOff")}];return(0,e.jsxs)("section",{className:"bd-section","aria-busy":v!==null,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCard")}),(0,e.jsxs)("div",{className:"bd-card-settings",children:[(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-feedback-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardFeedbackGroup")}),(0,e.jsx)(et,{className:"bd-card-primary-toggle",checked:!m,disabled:v!==null,dataAction:"toggle-disable-streaming",title:t("botDefaults.autoStreaming"),description:t("botDefaults.autoStreamingDescription"),help:t("botDefaults.autoStreamingHelp"),onChange:N=>{let g=m,f=!N;s(f),C({disableStreamingCard:f},"streaming",()=>s(g))}}),(0,e.jsxs)("div",{className:"bd-card-dependent","data-card-off-options":!0,hidden:!m,children:[(0,e.jsx)(et,{checked:!c,disabled:v!==null,dataAction:"toggle-silent-reactions",title:t("botDefaults.silentTurnReactions"),description:t("botDefaults.silentTurnReactionsDescription"),help:t("botDefaults.silentTurnReactionsHelp"),onChange:N=>{let g=c,f=!N;r(f),C({silentTurnReactions:f},"silent",()=>r(g))}}),(0,e.jsx)("p",{role:"status","data-card-pref-moot":!0,className:"bd-card-mode-note",children:t("botDefaults.manualCardHint")})]})]}),(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-content-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardContentGroup")}),o.usageSupported===!0&&(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.usageDisplayHelp"),children:t("botDefaults.usageDisplay")}),(0,e.jsx)(tt,{dataInput:"usageDisplay",ariaLabel:t("botDefaults.usageDisplay"),value:i,disabled:v!==null,options:h,onChange:N=>{let g=i;l(N),C({usageDisplay:N},"usage",()=>l(g))}})]})}),(0,e.jsx)("div",{className:"bd-card-control-list",children:(0,e.jsx)(et,{checked:b,disabled:v!==null,dataAction:"toggle-writable-link",title:t("botDefaults.writableLink"),description:t("botDefaults.writableLinkDescription"),help:t("botDefaults.writableLinkHelp"),onChange:N=>{let g=b;p(N),C({writableTerminalLinkInCard:N},"writable",()=>p(g))}})})]}),(0,e.jsxs)("section",{className:"bd-card-setting-group","data-card-manual-group":!0,children:[(0,e.jsx)("h4",{className:"bd-card-setting-heading",children:t("botDefaults.cardManualGroup")}),(0,e.jsx)("p",{className:"bd-card-setting-copy",children:t("botDefaults.manualCardIntro")}),(0,e.jsx)("div",{className:"bd-card-control-list",children:(0,e.jsx)(et,{checked:d,disabled:v!==null,dataAction:"toggle-private-card",title:t("botDefaults.privateCard"),description:t("botDefaults.privateCardDescription"),help:t("botDefaults.privateCardHelp"),onChange:N=>{let g=d;y(N),C({privateCard:N},"private",()=>y(g))}})})]})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:S,attr:{"data-card-pref-status":""}})})]})}function fa(a){let t=H(),[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 c(r){let b=o;u(r),s(!0),l(null);try{let p=await a.putCardPref({codexAppCleanInput:r});p.ok?l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}):(u(b),l({text:`\u2717 ${_(p)}`}))}catch(p){u(b),l({text:`\u2717 ${U(p)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section","data-codex-app-display":!0,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCodexAppDisplay")}),(0,e.jsx)(et,{checked:o,disabled:m,dataAction:"toggle-codex-app-clean-input",title:t("botDefaults.codexAppCleanInput"),help:t("botDefaults.codexAppCleanInputHelp"),onChange:r=>{c(r)}}),(0,e.jsx)("small",{className:"bd-section-note",children:t("botDefaults.codexAppCleanInputCompat")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:i,attr:{"data-codex-app-clean-input-status":""}})})]})}function ma(a){let t=H(),[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 c(r){let b=o;u(r),s(!0),l(null);try{let p=await V("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 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else u(b),l({text:`\u2717 ${_(p)}`})}catch(p){u(b),l({text:`\u2717 ${U(p)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section","data-envelope-injection":!0,children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.envelopeInjection")}),(0,e.jsx)(et,{checked:o,disabled:m,dataAction:"toggle-envelope-injection",title:t("botDefaults.envelopeInjectionAuto"),help:t("botDefaults.envelopeInjectionHelp"),onChange:r=>{c(r)}}),(0,e.jsx)("small",{className:"bd-section-note",children:t("botDefaults.envelopeInjectionNote")}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:i,attr:{"data-envelope-injection-status":""}})})]})}function pa(a){let t=H(),[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 c(r){u(r),s(!0),l(null);try{let b=await a.putCardPref({botToBotSameDir:r});l(b.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${_(b)}`})}catch(b){l({text:`\u2717 ${U(b)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionCrossBot")}),(0,e.jsx)(et,{checked:o,disabled:m,dataAction:"toggle-cross-bot-samedir",title:t("botDefaults.botToBotSameDir"),help:t("botDefaults.botToBotSameDirHelp"),onChange:r=>{c(r)}}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:i,attr:{"data-crossbot-status":""}})})]})}function ga(a){let t=H(),o=Ft(a.bot),[u,i]=(0,n.useState)(String(o.limit)),[l,m]=(0,n.useState)(String(o.sinceHours)),[s,c]=(0,n.useState)(a.bot.summaryMemory===!0),[r,b]=(0,n.useState)(Ut(a.bot)),[p,d]=(0,n.useState)(null),[y,S]=(0,n.useState)(null),[x,v]=(0,n.useState)(!1),[D,C]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let g=Ft(a.bot);i(String(g.limit)),m(String(g.sinceHours)),c(a.bot.summaryMemory===!0),b(Ut(a.bot))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours,a.bot.summaryMemory,a.bot.summaryMemoryPath]);async function h(){d(null);let g=be(u,50),f=be(l,24);if(g==null||f==null){d({text:`\u2717 ${t("botDefaults.summaryNumberInvalid")}`});return}v(!0);try{let F=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:g,sinceHours:f});if(F.ok&&F.body.ok){let $=F.body.summaryRange??{limit:g,sinceHours:f},W=Ft({...a.bot,summaryRange:$});i(String(W.limit)),m(String(W.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:$}),d({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else d({text:`\u2717 ${_(F)}`})}catch(F){d({text:`\u2717 ${U(F)}`})}finally{v(!1)}}async function N(g,f=r){let F=s,$=r,W=Ne(f);c(g),b(W),S(null),C(!0);try{let w=await a.putCardPref({summaryMemory:g,summaryMemoryPath:W});if(w.ok&&w.body.ok){let X=w.body.summaryMemory===!0,j=Ut({...a.bot,summaryMemoryPath:w.body.summaryMemoryPath});c(X),b(j),a.patchBot(a.bot.larkAppId,{summaryMemory:X,summaryMemoryPath:j}),S({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else c(F),b($),S({text:`\u2717 ${_(w)}`})}catch(w){c(F),b($),S({text:`\u2717 ${U(w)}`})}finally{C(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(A,{help:t("botDefaults.summaryLimitHelp"),children:t("botDefaults.sectionSummaryTrigger")})}),(0,e.jsxs)("div",{className:"bd-row bd-summary-limits",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summaryLimit")}),(0,e.jsx)("input",{type:"number",min:0,step:1,"data-input":"summaryLimit",value:u,disabled:x,onChange:g=>i(g.currentTarget.value)})]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summarySinceHours")}),(0,e.jsx)("input",{type:"number",min:0,step:1,"data-input":"summarySinceHours",value:l,disabled:x,onChange:g=>m(g.currentTarget.value)})]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-trigger",disabled:x,onClick:()=>{h()},children:t("botDefaults.summarySave")}),(0,e.jsx)(J,{status:p,attr:{"data-summary-trigger-status":""}})]}),(0,e.jsx)(et,{checked:s,disabled:D,title:t("botDefaults.summaryMemory"),help:t("botDefaults.summaryMemoryHelp"),onChange:g=>{N(g)}}),(0,e.jsx)("div",{className:"bd-row bd-summary-limits",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.summaryMemoryPath")}),(0,e.jsx)("input",{type:"text","data-input":"summaryMemoryPath",value:r,disabled:D,onChange:g=>b(g.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-memory-path",disabled:D,onClick:()=>{N(s,r)},children:t("botDefaults.summaryMemoryPathSave")})}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:y,attr:{"data-summary-memory-status":""}})})]})}function Ne(a){return a.trim()||"summary.md"}function Ut(a){return Ne(typeof a.summaryMemoryPath=="string"?a.summaryMemoryPath:"")}function Ft(a){let t=a.summaryRange??{limit:50,sinceHours:24};return{limit:Number.isInteger(t.limit)&&Number(t.limit)>=0?Number(t.limit):50,sinceHours:Number.isInteger(t.sinceHours)&&Number(t.sinceHours)>=0?Number(t.sinceHours):24}}function ya(a){let t=H(),[o,u]=(0,n.useState)(xt(a.bot.p2pMode)),[i,l]=(0,n.useState)(he(a.bot)),[m,s]=(0,n.useState)(ve(a.bot)),[c,r]=(0,n.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[b,p]=(0,n.useState)(null),[d,y]=(0,n.useState)(null),[S,x]=(0,n.useState)(null),[v,D]=(0,n.useState)(null),[C,h]=(0,n.useState)(null);(0,n.useEffect)(()=>{u(xt(a.bot.p2pMode)),l(he(a.bot)),s(ve(a.bot)),r(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function N(w){let X=xt(w);u(X),p("p2p"),y(null);try{let j=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:X});j.ok&&j.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:xt(j.body.p2pMode)}),y({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})):y({text:`\u2717 ${_(j)}`})}catch(j){y({text:`\u2717 ${U(j)}`})}finally{p(null)}}async function g(w,X,j){p(w),j(null);try{let q=await a.putCardPref(X);j(q.ok?{text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${_(q)}`})}catch(q){j({text:`\u2717 ${U(q)}`})}finally{p(null)}}let f=[{value:"thread",label:t("botDefaults.p2pThread")},{value:"chat",label:t("botDefaults.p2pChat")},{value:"group",label:t("botDefaults.p2pGroup")}],F=[{value:"chat",label:t("botDefaults.regularGroupModeChat")},{value:"chat-topic",label:t("botDefaults.regularGroupModeChatTopic")},{value:"new-topic",label:t("botDefaults.regularGroupModeNewTopic")},{value:"shared",label:t("botDefaults.regularGroupModeShared")}],$=[{value:"always",label:t("botDefaults.mentionModeAlways")},{value:"topic",label:t("botDefaults.mentionModeTopic")},{value:"never",label:t("botDefaults.mentionModeNever")},{value:"ambient",label:t("botDefaults.mentionModeAmbient")}],W=[{value:"mention-only",label:t("botDefaults.docSubscribeModeMention")},{value:"all",label:t("botDefaults.docSubscribeModeAll")}];return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSessionMode")}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.p2pHelp"),children:t("botDefaults.p2pMode")}),(0,e.jsx)(tt,{dataInput:"p2pMode",ariaLabel:t("botDefaults.p2pMode"),value:o,disabled:b==="p2p",options:f,onChange:w=>{N(w)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:d,attr:{"data-p2p-status":""}})})]}),o==="group"&&(0,e.jsx)(va,{bot:a.bot}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.regularGroupModeHelp"),children:t("botDefaults.regularGroupMode")}),(0,e.jsx)(tt,{dataInput:"regularGroupMode",ariaLabel:t("botDefaults.regularGroupMode"),value:i,disabled:b==="regular",options:F,onChange:w=>{l(w),g("regular",{regularGroupReplyMode:w},x)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:S,attr:{"data-regular-group-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.mentionModeHelp"),children:t("botDefaults.mentionMode")}),(0,e.jsx)(tt,{dataInput:"regularGroupMentionMode",ariaLabel:t("botDefaults.mentionMode"),value:m,disabled:b==="mention",options:$,onChange:w=>{s(w),g("mention",{regularGroupMentionMode:w},D)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:v,attr:{"data-mention-mode-status":""}})})]}),(0,e.jsxs)("div",{className:"bd-row",children:[(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.docSubscribeModeHelp"),children:t("botDefaults.docSubscribeMode")}),(0,e.jsx)(tt,{dataInput:"docSubscribeDefaultMode",ariaLabel:t("botDefaults.docSubscribeMode"),value:c,disabled:b==="doc",options:W,onChange:w=>{r(w),g("doc",{docSubscribeDefaultMode:w},h)}})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:C,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function ha(a){let t=H(),o=a.bot.substituteMode??null,[u,i]=(0,n.useState)(o?.enabled===!0);function l(k){switch(k){case"cross_app_open_id":return t("botDefaults.substituteReasonCrossAppOpenId");case"not_visible":return t("botDefaults.substituteReasonNotVisible");case"resolve_failed":return t("botDefaults.substituteReasonResolveFailed");case"unresolvable":return t("botDefaults.substituteReasonUnresolvable");default:return t("botDefaults.substituteUnresolved")}}let[m,s]=(0,n.useState)(o?.disclosure==="none"?"none":"prefix"),[c,r]=(0,n.useState)(o?.replyMode==="quote"?"quote":"thread"),[b,p]=(0,n.useState)(o?.disableControlCard!==!0),[d,y]=(0,n.useState)(()=>bt(o?.chats)),[S,x]=(0,n.useState)(()=>bt(o?.excludedChats)),[v,D]=(0,n.useState)(o?.topicGroups!==!1),[C,h]=(0,n.useState)(o?.topicActiveSessionTrigger!==!1),[N,g]=(0,n.useState)(null),[f,F]=(0,n.useState)(!1),$=(0,n.useRef)(0),W=(0,n.useRef)(!1);function w(k){let P=Ge(k);return{key:++$.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 X=(0,n.useRef)(new Map);async function j(k){let P=(X.current.get(k)??0)+1;X.current.set(k,P);let R=()=>X.current.get(k)===P;T(B=>B.map(O=>O.key===k?{...O,resolving:!0}:O));try{let B=q.find(K=>K.key===k);if(!B)return;let O=B.idValue.trim();if(!O){T(K=>K.map(z=>z.key===k?{...z,resolving:!1,resolution:void 0}:z));return}let Q={[B.idField]:O};B.name.trim()&&(Q.name=B.name.trim());let ot=await le(a.bot.larkAppId,Q);if(!R())return;T(K=>K.map(z=>{if(z.key!==k)return z;if(!ot.ok)return{...z,resolving:!1,resolution:{ok:!1}};let nt=ot.resolution;if(nt?.ok===!0){if(!nt.openId)return{...z,resolving:!1,resolution:void 0};let at={...z.persisted};return at.openId=nt.openId,nt.name&&(at.name=nt.name),nt.avatarUrl&&(at.avatarUrl=nt.avatarUrl),{...z,name:nt.name??z.name,persisted:at,resolving:!1,resolution:{ok:!0,name:nt.name,avatarUrl:nt.avatarUrl}}}return{...z,resolving:!1,resolution:{ok:!1,reason:nt?.reason}}}))}catch{if(!R())return;T(B=>B.map(O=>O.key===k?{...O,resolving:!1,resolution:{ok:!1}}:O))}}let[q,T]=(0,n.useState)(()=>{let k=o?.targets??[];return k.length?k.map(P=>w(P)):[w()]});(0,n.useEffect)(()=>{if(W.current){W.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),y(bt(k?.chats)),x(bt(k?.excludedChats)),D(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 L(k){F(!0),g(null);try{let P=await V("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:[],O=B.filter(Q=>Q?.ok===!1).map(Q=>String(Q.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),y(bt(R?.chats)),x(bt(R?.excludedChats)),D(R?.topicGroups!==!1),h(R?.topicActiveSessionTrigger!==!1),B.length)W.current=!0,T(Q=>{let ot=[...B];return Q.map(K=>{let z=K.idValue.trim(),nt=ot.findIndex(rt=>String(rt.input??"").trim()===z);if(nt<0)return K;let at=ot.splice(nt,1)[0];if(at?.ok===!0){let rt={...K.persisted};return at.openId&&(rt.openId=at.openId),K.idField==="email"&&(rt.email=z),at.name&&(rt.name=at.name),at.avatarUrl&&(rt.avatarUrl=at.avatarUrl),{...K,name:at.name??K.name,persisted:rt,resolution:{ok:!0,name:at.name,avatarUrl:at.avatarUrl}}}return{...K,resolution:{ok:!1,reason:at?.reason}}})});else{let Q=R?.targets??[];T(Q.length?Q.map(ot=>w(ot)):[w()])}a.patchBot(a.bot.larkAppId,{substituteMode:R}),g(O.length?{text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${O.join(", ")}`}:{text:`\u2713 ${t("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):[];g({text:R.length?`\u2717 ${t("botDefaults.substituteTargetsInvalid")}: ${R.join(", ")}`:`\u2717 ${_(P)}`})}}catch(P){g({text:`\u2717 ${U(P)}`})}finally{F(!1)}}function Z(){let k=[],P=!1;for(let R of q){let B=je(R);if(!B){P||=!!R.name.trim();continue}k.push(B)}if(P||u&&k.length===0){g({text:`\u2717 ${t("botDefaults.substituteTargetsInvalid")}`});return}L({enabled:u,targets:k,disclosure:m,chats:fe(d),excludedChats:fe(S),replyMode:c,disableControlCard:!b,topicGroups:v,topicActiveSessionTrigger:C})}let G=[{value:"prefix",label:t("botDefaults.substituteDisclosurePrefix")},{value:"none",label:t("botDefaults.substituteDisclosureNone")}],M=[{value:"thread",label:t("botDefaults.substituteReplyModeThread")},{value:"quote",label:t("botDefaults.substituteReplyModeQuote")}];return(0,e.jsxs)("section",{className:"bd-section bd-substitute-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSubstitute")}),(0,e.jsx)(et,{checked:u,disabled:f,dataAction:"toggle-substitute-mode",title:t("botDefaults.substituteEnabled"),help:t("botDefaults.substituteHelp"),onChange:i}),(0,e.jsx)(et,{checked:v,disabled:f,dataAction:"toggle-substitute-topic-groups",title:t("botDefaults.substituteTopicGroups"),help:t("botDefaults.substituteTopicGroupsHelp"),onChange:D}),(0,e.jsx)(et,{checked:C,disabled:f||!v,dataAction:"toggle-substitute-topic-active",title:t("botDefaults.substituteTopicActive"),help:t("botDefaults.substituteTopicActiveHelp"),onChange:h}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{children:t("botDefaults.substituteDisclosure")}),(0,e.jsx)(tt,{dataInput:"substituteDisclosure",ariaLabel:t("botDefaults.substituteDisclosure"),value:m,disabled:f,options:G,onChange:k=>s(k)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.substituteReplyModeHelp"),children:t("botDefaults.substituteReplyMode")}),(0,e.jsx)(tt,{dataInput:"substituteReplyMode",ariaLabel:t("botDefaults.substituteReplyMode"),value:c,disabled:f,options:M,onChange:k=>r(k)})]})}),(0,e.jsx)(et,{checked:b,disabled:f,dataAction:"toggle-substitute-control-card",title:t("botDefaults.substituteControlCard"),help:t("botDefaults.substituteControlCardHelp"),onChange:p}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:t("botDefaults.substituteChatsHelp"),children:t("botDefaults.substituteChats")}),(0,e.jsx)("textarea",{"data-input":"substituteChats",rows:3,placeholder:t("botDefaults.substituteChatsPlaceholder"),value:d,disabled:f,onChange:k=>y(k.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:t("botDefaults.substituteExcludedChatsHelp"),children:t("botDefaults.substituteExcludedChats")}),(0,e.jsx)("textarea",{"data-input":"substituteExcludedChats",rows:3,placeholder:t("botDefaults.substituteExcludedChatsPlaceholder"),value:S,disabled:f,onChange:k=>x(k.currentTarget.value)})]})}),(0,e.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,e.jsx)(A,{help:t("botDefaults.substituteTargetsHelp"),children:t("botDefaults.substituteTargets")}),(0,e.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[q.map((k,P)=>(0,e.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,e.jsx)(tt,{dataInput:`substituteTargetType-${k.key}`,className:"bd-substitute-target-type",ariaLabel:`${t("botDefaults.substituteTargetType")} ${P+1}`,value:k.idField,disabled:f,options:jt.map(R=>({value:R,label:t(`botDefaults.substituteTarget${R[0].toUpperCase()}${R.slice(1)}`)})),onChange:R=>{T(B=>B.map(O=>O.key===k.key?{...O,idField:R,idValue:O.persisted[R]??"",resolution:void 0}:O))}}),(0,e.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${k.key}`,"aria-label":`${t("botDefaults.substituteTargetType")} ${P+1}`,placeholder:t("botDefaults.substituteTargetIdPlaceholder"),value:k.idValue,disabled:f,onChange:R=>{let B=R.currentTarget.value;T(O=>O.map(Q=>Q.key===k.key?{...Q,idValue:B,resolution:void 0}:Q))},onBlur:()=>{k.idValue.trim()&&j(k.key)}}),(0,e.jsx)("div",{className:"bd-substitute-target-name",children:k.resolving?(0,e.jsx)("span",{className:"bd-substitute-target-resolving",children:t("botDefaults.substituteResolving")}):k.resolution?.ok===!0&&(k.name||k.resolution.avatarUrl)?(0,e.jsxs)(e.Fragment,{children:[k.resolution.avatarUrl?(0,e.jsx)(pt,{html:mt({name:k.resolution.name,avatarUrl:k.resolution.avatarUrl,size:"sm"})}):null,(0,e.jsx)("span",{className:"bd-substitute-target-name-chip","data-chip":`substituteTargetName-${k.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${P+1}`,children:k.name})]}):k.resolution?.ok===!1?(0,e.jsx)("span",{className:"bd-substitute-target-resolution-badge",children:l(k.resolution.reason)}):(0,e.jsx)("input",{type:"text","data-input":`substituteTargetName-${k.key}`,"aria-label":`${t("botDefaults.substituteTargetName")} ${P+1}`,placeholder:t("botDefaults.substituteTargetNamePlaceholder"),value:k.name,disabled:f,onChange:R=>{let B=R.currentTarget.value;T(O=>O.map(Q=>Q.key===k.key?{...Q,name:B}:Q))}})}),(0,e.jsx)("button",{type:"button",className:"bd-substitute-target-remove","data-action":"remove-substitute-target",title:t("botDefaults.substituteTargetRemove"),"aria-label":t("botDefaults.substituteTargetRemove"),disabled:f,onClick:()=>{T(R=>{let B=R.filter(O=>O.key!==k.key);return B.length?B:[w()]})},children:(0,e.jsx)("span",{"aria-hidden":"true",children:"\xD7"})})]},k.key)),(0,e.jsx)("button",{type:"button",className:"bd-substitute-target-add","data-action":"add-substitute-target",title:t("botDefaults.substituteTargetAdd"),"aria-label":t("botDefaults.substituteTargetAdd"),disabled:f,onClick:()=>T(k=>[...k,w()]),children:(0,e.jsx)("span",{"aria-hidden":"true",children:"+"})})]})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-substitute-mode",disabled:f,onClick:Z,children:t("botDefaults.substituteSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:f,onClick:()=>{L({enabled:!1,targets:[]})},children:t("botDefaults.substituteOff")}),(0,e.jsx)(J,{status:N,attr:{"data-substitute-status":""}})]})]})}function xt(a){return a==="thread"?"thread":a==="group"?"group":"chat"}function va(a){let t=H(),[o,u]=(0,n.useState)(null),[i,l]=(0,n.useState)(!1),[m,s]=(0,n.useState)(!1),[c,r]=(0,n.useState)(null),b=async()=>{try{let v=await V("GET",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-status`);if(v.ok&&v.body.ok)return u({authorized:!!v.body.authorized,tagMode:String(v.body.tagMode??"feed-group")}),!!v.body.authorized}catch{}return!1};(0,n.useEffect)(()=>{b()},[a.bot.larkAppId]);async function p(v){s(!0),r(null);try{let D=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-config`,{mode:v});D.ok&&D.body.ok?u(C=>({authorized:C?.authorized??!1,tagMode:String(D.body.tagMode)})):r(_(D))}catch(D){r(U(D))}finally{s(!1)}}async function d(){l(!0),r(null);try{let v=await V("POST",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/session-group-tag-auth`,{});if(!v.ok||!v.body.ok||!v.body.authUrl){r(_(v));return}window.open(v.body.authUrl,"_blank","noopener");for(let D=0;D<60;D++)if(await new Promise(C=>setTimeout(C,3e3)),await b())return;r(t("botDefaults.sgTagAuthTimeout"))}catch(v){r(U(v))}finally{l(!1)}}let y=o?.tagMode??"feed-group",S=o?.authorized===!0,x=[{value:"feed-group",label:t("botDefaults.sgTagModeFeedGroup")},{value:"chat-tag",label:t("botDefaults.sgTagModeChatTag")},{value:"off",label:t("botDefaults.sgTagModeOff")}];return(0,e.jsx)("div",{className:"bd-row","data-session-group-tag-row":!0,children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.sgTagHelp"),children:t("botDefaults.sgTag")}),(0,e.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,e.jsx)(tt,{dataInput:"sessionGroupTagMode",ariaLabel:t("botDefaults.sgTag"),value:y,disabled:m||!o,options:x,onChange:v=>{p(v)}}),y==="chat-tag"&&(0,e.jsx)("span",{"data-sg-tag-state":"tenant",children:t("botDefaults.sgTagChatTagNote")}),y==="feed-group"&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{"data-sg-tag-state":S?"authorized":"unauthorized",children:S?`\u{1F7E2} ${t("botDefaults.sgTagAuthorized")}`:`\u26AA ${t("botDefaults.sgTagUnauthorized")}`}),!S&&(0,e.jsx)("button",{type:"button",className:"primary","data-action":"session-group-tag-auth",disabled:i,onClick:()=>{d()},children:t(i?"botDefaults.sgTagAuthWaiting":"botDefaults.sgTagAuthStart")})]}),c&&(0,e.jsxs)("span",{className:"status-error",children:["\u2717 ",c]})]})]})})}function he(a){return a.regularGroupReplyMode==="chat"||a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"?a.regularGroupReplyMode:"chat-topic"}function ve(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function Da(a){let t=H(),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),c=m??30,[r,b]=(0,n.useState)(o==null?"":String(o)),[p,d]=(0,n.useState)(null),[y,S]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let D=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;s(D),b(D==null?"":String(D))},[a.bot.maxLiveWorkers]);async function x(D){d(null),S(!0);try{let C=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:D});if(C.ok&&C.body.ok){let h=typeof C.body.maxLiveWorkers=="number"?C.body.maxLiveWorkers:null;s(h),b(h==null?"":String(h)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:h}),d({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else d({text:`\u2717 ${_(C)}`})}catch(C){d({text:`\u2717 ${U(C)}`})}finally{S(!1)}}function v(){let D=ke(r);if(D==="invalid"){d({text:`\u2717 ${t("botDefaults.maxLiveWorkersInvalid")}`});return}x(D)}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionSessionCap")}),(0,e.jsxs)("div",{className:"bd-row bd-quota",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:t("botDefaults.maxLiveWorkersHelp"),children:t("botDefaults.maxLiveWorkers")}),(0,e.jsx)("input",{type:"number",min:1,step:1,"data-input":"maxLiveWorkers",placeholder:t("botDefaults.maxLiveWorkersPlaceholder"),value:r,disabled:y,onChange:D=>b(D.currentTarget.value)})]}),(0,e.jsx)("small",{"data-session-cap-state":!0,children:We(m,t)}),(0,e.jsx)("small",{className:"bd-help bd-session-residency",children:t("botDefaults.maxLiveWorkersUsage",{resident:i,cap:c,dormant:l,logical:u})})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:y,onClick:v,children:t("botDefaults.maxLiveWorkersSave")}),(0,e.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:y,onClick:()=>{b(""),x(null)},children:t("botDefaults.maxLiveWorkersOff")}),(0,e.jsx)(J,{status:p,attr:{"data-session-cap-status":""}})]})]})}function ka(a){let t=H(),[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 c(){l(null),s(!0);try{let r=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:o});if(r.ok&&r.body.ok){let b=typeof r.body.startupCommands=="string"?r.body.startupCommands:"";u(b),a.patchBot(a.bot.larkAppId,{startupCommands:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${_(r)}`})}catch(r){l({text:`\u2717 ${U(r)}`})}finally{s(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(A,{help:t("botDefaults.startupCommandsHelp"),children:t("botDefaults.sectionStartupCommands")})}),(0,e.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:t("botDefaults.startupCommandsPlaceholder"),value:o,disabled:m,onChange:r=>u(r.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:m,onClick:()=>{c()},children:t("botDefaults.startupCommandsSave")}),(0,e.jsx)(J,{status:i,attr:{"data-startup-commands-status":""}})]})]})}function Ca(a){let t=H(),[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),[c,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 b(){s(null),r("passthrough");try{let d=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/custom-passthrough`,{customPassthroughCommands:o});if(d.ok&&d.body.ok){let y=typeof d.body.customPassthroughCommands=="string"?d.body.customPassthroughCommands:"";u(y),a.patchBot(a.bot.larkAppId,{customPassthroughCommands:y}),s({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else s({text:`\u2717 ${_(d)}`})}catch(d){s({text:`\u2717 ${U(d)}`})}finally{r(null)}}async function p(){s(null),r("cantalk");try{let d=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/cantalk-daemon-commands`,{canTalkDaemonCommands:i});if(d.ok&&d.body.ok){let y=typeof d.body.canTalkDaemonCommands=="string"?d.body.canTalkDaemonCommands:"";l(y),a.patchBot(a.bot.larkAppId,{canTalkDaemonCommands:y}),s({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else s({text:`\u2717 ${_(d)}`})}catch(d){s({text:`\u2717 ${U(d)}`})}finally{r(null)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:(0,e.jsx)(A,{help:t("botDefaults.sectionSlashCommandsHelp"),children:t("botDefaults.sectionSlashCommands")})}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(A,{help:t("botDefaults.customPassthroughHelp"),children:t("botDefaults.customPassthrough")})}),(0,e.jsx)("textarea",{"data-input":"customPassthroughCommands",rows:2,placeholder:t("botDefaults.customPassthroughPlaceholder"),value:o,disabled:c==="passthrough",onChange:d=>u(d.currentTarget.value)}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-custom-passthrough",disabled:c==="passthrough",onClick:()=>{b()},children:t("botDefaults.customPassthroughSave")})})]}),(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(A,{help:t("botDefaults.canTalkDaemonHelp"),children:t("botDefaults.canTalkDaemon")})}),(0,e.jsx)("textarea",{"data-input":"canTalkDaemonCommands",rows:2,placeholder:t("botDefaults.canTalkDaemonPlaceholder"),value:i,disabled:c==="cantalk",onChange:d=>l(d.currentTarget.value)}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-cantalk-daemon",disabled:c==="cantalk",onClick:()=>{p()},children:t("botDefaults.canTalkDaemonSave")})})]}),(0,e.jsx)(J,{status:m,attr:{"data-slash-commands-status":""}})]})}function Sa(a){let t=H(),[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 c(){l(null),s(!0);try{let r=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:o});if(r.ok&&r.body.ok){let b=typeof r.body.launchShell=="string"?r.body.launchShell:"";u(b),a.patchBot(a.bot.larkAppId,{launchShell:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${_(r)}`})}catch(r){l({text:`\u2717 ${U(r)}`})}finally{s(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(A,{help:t("botDefaults.launchShellHelp"),children:t("botDefaults.sectionLaunchShell")})}),(0,e.jsx)("input",{type:"text","data-input":"launchShell",placeholder:t("botDefaults.launchShellPlaceholder"),value:o,disabled:m,onChange:r=>u(r.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:m,onClick:()=>{c()},children:t("botDefaults.launchShellSave")}),(0,e.jsx)(J,{status:i,attr:{"data-launch-shell-status":""}})]})]})}function Ta(a){let t=H(),[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 c(){l(null),s(!0);try{let r=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:o});if(r.ok&&r.body.ok){let b=typeof r.body.env=="string"?r.body.env:"";u(b),a.patchBot(a.bot.larkAppId,{env:b}),l({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${_(r)}`})}catch(r){l({text:`\u2717 ${U(r)}`})}finally{s(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(A,{help:t("botDefaults.envHelp"),children:t("botDefaults.sectionEnv")})}),(0,e.jsx)("textarea",{"data-input":"env",rows:5,placeholder:t("botDefaults.envPlaceholder"),value:o,disabled:m,onChange:r=>u(r.currentTarget.value)}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:m,onClick:()=>{c()},children:t("botDefaults.envSave")}),(0,e.jsx)(J,{status:i,attr:{"data-env-status":""}})]})]})}var Na=["gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.4","gpt-5.4-pro"],xa=["","low","medium","high","xhigh"],Ia=["boe","cn"];function Pa(a){let t=H(),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,c]=(0,n.useState)(typeof o.model=="string"?o.model:""),[r,b]=(0,n.useState)(typeof o.reasoningEffort=="string"?o.reasoningEffort:""),[p,d]=(0,n.useState)(typeof o.jwtEnv=="string"?o.jwtEnv:""),[y,S]=(0,n.useState)(typeof o.systemPrompt=="string"?o.systemPrompt:""),[x,v]=(0,n.useState)(Array.isArray(o.setupCommands)?o.setupCommands.join(`
8
- `):""),[D,C]=(0,n.useState)(null),[h,N]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let f=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{};i(typeof f.baseUrl=="string"?f.baseUrl:""),m(f.sandboxCluster==="cn"?"cn":"boe"),c(typeof f.model=="string"?f.model:""),b(typeof f.reasoningEffort=="string"?f.reasoningEffort:""),d(typeof f.jwtEnv=="string"?f.jwtEnv:""),S(typeof f.systemPrompt=="string"?f.systemPrompt:""),v(Array.isArray(f.setupCommands)?f.setupCommands.join(`
9
- `):"")},[a.bot.riff]);async function g(){C(null),N(!0);try{let f={};u.trim()&&(f.baseUrl=u.trim()),f.sandboxCluster=l,s.trim()&&(f.model=s.trim()),r&&(f.reasoningEffort=r),p.trim()&&(f.jwtEnv=p.trim()),y.trim()&&(f.systemPrompt=y.trim()),x.trim()&&(f.setupCommands=x.split(`
10
- `).map(W=>W.trim()).filter(Boolean));let F=Object.keys(f).length?JSON.stringify(f):"",$=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/riff`,{riff:F});if($.ok&&$.body.ok){let W=typeof $.body.riff=="string"&&$.body.riff?JSON.parse($.body.riff):null;if(a.patchBot(a.bot.larkAppId,{riff:W}),a.persistCliSelection&&!await a.persistCliSelection()){C({text:`\u2717 ${t("botDefaults.riffCliPersistFailed")}`});return}C({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else C({text:`\u2717 ${_($)}`})}catch(f){C({text:`\u2717 ${U(f)}`})}finally{N(!1)}}return(0,e.jsxs)("div",{className:"bd-subsection",children:[(0,e.jsx)("h4",{className:"bd-subsection-title",children:(0,e.jsx)(A,{help:t("botDefaults.riffHelp"),children:t("botDefaults.sectionRiff")})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffBaseUrl")}),(0,e.jsx)("input",{type:"text","data-input":"riff-base-url",placeholder:t("botDefaults.riffBaseUrlPlaceholder"),value:u,disabled:h,onChange:f=>i(f.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:(0,e.jsx)(A,{help:t("botDefaults.riffSandboxClusterHelp"),children:t("botDefaults.riffSandboxCluster")})}),(0,e.jsx)(tt,{dataInput:"riff-sandbox-cluster",ariaLabel:t("botDefaults.riffSandboxCluster"),value:l,disabled:h,options:Ia.map(f=>({value:f,label:f.toUpperCase()})),onChange:f=>m(f)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)(A,{help:t("botDefaults.riffModelHelp"),children:t("botDefaults.riffModel")})}),(0,e.jsx)("input",{type:"text","data-input":"riff-model",list:`riff-model-suggestions-${a.bot.larkAppId}`,placeholder:t("botDefaults.riffModelPlaceholder"),value:s,disabled:h,onChange:f=>c(f.currentTarget.value)}),(0,e.jsx)("datalist",{id:`riff-model-suggestions-${a.bot.larkAppId}`,children:Na.map(f=>(0,e.jsx)("option",{value:f},f))})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)("span",{children:(0,e.jsx)(A,{help:t("botDefaults.riffReasoningEffortHelp"),children:t("botDefaults.riffReasoningEffort")})}),(0,e.jsx)(tt,{dataInput:"riff-reasoning-effort",ariaLabel:t("botDefaults.riffReasoningEffort"),value:r,disabled:h,options:xa.map(f=>({value:f,label:f===""?t("botDefaults.riffReasoningEffortDefault"):f})),onChange:f=>b(f)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:(0,e.jsx)(A,{help:t("botDefaults.riffJwtEnvHelp"),children:t("botDefaults.riffJwtEnv")})}),(0,e.jsx)("input",{type:"text","data-input":"riff-jwt-env",placeholder:t("botDefaults.riffJwtEnvPlaceholder"),value:p,disabled:h,onChange:f=>d(f.currentTarget.value)})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffSystemPrompt")}),(0,e.jsx)("textarea",{"data-input":"riff-system-prompt",placeholder:t("botDefaults.riffSystemPromptPlaceholder"),value:y,disabled:h,onChange:f=>S(f.currentTarget.value),rows:4})]})}),(0,e.jsx)("div",{className:"bd-row",children:(0,e.jsxs)("label",{children:[(0,e.jsx)("span",{children:t("botDefaults.riffSetupCommands")}),(0,e.jsx)("textarea",{"data-input":"riff-setup-commands",placeholder:t("botDefaults.riffSetupCommandsPlaceholder"),value:x,disabled:h,onChange:f=>v(f.currentTarget.value),rows:3})]})}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-riff",disabled:h,onClick:()=>{g()},children:t("botDefaults.riffSave")}),(0,e.jsx)(J,{status:D,attr:{"data-riff-status":""}})]})]})}function Ra(a){let t=H(),o=a.bot.brandLabel??null,[u,i]=(0,n.useState)(o),[l,m]=(0,n.useState)(o??""),[s,c]=(0,n.useState)(null),[r,b]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let d=a.bot.brandLabel??null;i(d),m(d??"")},[a.bot.brandLabel]);async function p(d){c(null),b(!0);try{let y=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/brand-label`,{brandLabel:d});if(y.ok&&y.body.ok){let S=y.body.brandLabel??null;i(S),m(S??""),a.patchBot(a.bot.larkAppId,{brandLabel:S}),c({text:"\u2713",ok:!0})}else c({text:`\u2717 ${_(y)}`})}catch(y){c({text:`\u2717 ${U(y)}`})}finally{b(!1)}}return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionBrand")}),(0,e.jsxs)("div",{className:"bd-row bd-brand",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:t("botDefaults.brandLabelHelp"),children:t("botDefaults.brandLabel")}),(0,e.jsx)("input",{type:"text","data-input":"brandLabel",placeholder:t("botDefaults.brandLabelPlaceholder"),value:l,disabled:r,onChange:d=>m(d.currentTarget.value)})]}),(0,e.jsx)("small",{"data-brand-state":!0,children:He(u,t)})]}),(0,e.jsxs)("div",{className:"actions",children:[(0,e.jsx)("button",{type:"button",className:"primary","data-action":"save-brand",disabled:r,onClick:()=>{p(l)},children:t("botDefaults.brandSave")}),(0,e.jsx)("button",{type:"button","data-action":"reset-brand",disabled:r,onClick:()=>{p(null)},children:t("botDefaults.brandReset")}),(0,e.jsx)(J,{status:s,attr:{"data-brand-status":""}})]})]})}function wa(a){let t=H(),[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),[c,r]=(0,n.useState)(typeof a.bot.grantDefaultDurationMs=="number"?a.bot.grantDefaultDurationMs:null),[b,p]=(0,n.useState)(String(a.bot.grantDefaultDurationMs??36e5)),[d,y]=(0,n.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null),[S,x]=(0,n.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?String(a.bot.messageQuotaDefaultLimit):""),[v,D]=(0,n.useState)(null),[C,h]=(0,n.useState)(null),[N,g]=(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;y(T),x(T===null?"":String(T))},[a.bot.messageQuotaDefaultLimit]);async function f(T,L,Z){g(L),D(L==="duration"||L==="quota"?{text:t("botDefaults.grantDefaultsSaving")}:null);try{let G=await V("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/grant-prefs`,T);if(G.ok&&G.body.ok){let M=typeof G.body.grantDefaultDurationMs=="number"?G.body.grantDefaultDurationMs:null,k=typeof G.body.messageQuotaDefaultLimit=="number"?G.body.messageQuotaDefaultLimit:null;u(G.body.autoGrantRequestCards!==!1),l(G.body.restrictGrantCommands===!0),s(G.body.p2pOpen===!0),r(M),y(k),"grantDefaultDurationMs"in T&&p(String(M??36e5)),"messageQuotaDefaultLimit"in T&&x(k===null?"":String(k)),a.patchBot(a.bot.larkAppId,{autoGrantRequestCards:G.body.autoGrantRequestCards!==!1,restrictGrantCommands:G.body.restrictGrantCommands===!0,p2pOpen:G.body.p2pOpen===!0,grantDefaultDurationMs:M,messageQuotaDefaultLimit:k}),"messageQuotaDefaultLimit"in T&&h(null),D({text:`\u2713 ${t("botDefaults.cardPrefSaved")}`,ok:!0})}else Z?.(),D({text:`\u2717 ${_(G)}`})}catch(G){Z?.(),D({text:`\u2717 ${U(G)}`})}finally{g(null)}}function F(T){p(T),D(null);let L=Number(T);if(!_e.includes(L)){D({text:`\u2717 ${t("botDefaults.grantDurationInvalid")}`});return}let Z=L===36e5?null:L;if(Z===c)return;let G=String(c??36e5);f({grantDefaultDurationMs:Z},"duration",()=>p(G))}function $(){let T=ke(S),L=T!==d;if(D(null),!L){h(null);return}if(T==="invalid"||typeof T=="number"&&T>1e3){h(t("botDefaults.quotaInvalid"));return}h(null),f({messageQuotaDefaultLimit:T},"quota")}let W=[{value:String(36e5),label:t("botDefaults.grantDuration1Hour")},{value:String(480*60*1e3),label:t("botDefaults.grantDuration8Hours")},{value:String(1440*60*1e3),label:t("botDefaults.grantDuration1Day")},{value:String(10080*60*1e3),label:t("botDefaults.grantDuration7Days")}],w=c??36e5,X=w===36e5?t("botDefaults.grantDuration1HourValue"):String(W.find(T=>T.value===String(w))?.label??""),j=d===null?t("botDefaults.quotaHelpBuiltIn",{count:3}):d>1e3?t("botDefaults.quotaHelpLegacy",{cardCount:1e3,oncallCount:d,defaultCount:3}):t("botDefaults.quotaHelpCustom",{count:d,defaultCount:3}),q=d===null?t(c===null?"botDefaults.grantDefaultsCurrentBuiltIn":"botDefaults.grantDefaultsCurrentCustomBuiltInQuota",{duration:X,count:3}):d>1e3?t("botDefaults.grantDefaultsCurrentLegacy",{duration:X,cardCount:1e3,oncallCount:d}):t("botDefaults.grantDefaultsCurrentCustom",{duration:X,count:d});return(0,e.jsxs)("section",{className:"bd-section",children:[(0,e.jsx)("h3",{className:"bd-section-title",children:t("botDefaults.sectionGrant")}),(0,e.jsxs)("div",{className:"bd-toggle-grid bd-grant-toggle-grid",children:[(0,e.jsx)(et,{checked:o,disabled:N!==null,dataAction:"toggle-auto-grant-card",title:t("botDefaults.autoGrantCard"),help:t("botDefaults.autoGrantCardHelp"),onChange:T=>{let L=o;u(T),f({autoGrantRequestCards:T},"autoGrant",()=>u(L))}}),(0,e.jsx)(et,{checked:i,disabled:N!==null,dataAction:"toggle-restrict-grant",title:t("botDefaults.restrictGrant"),help:t("botDefaults.restrictGrantHelp"),onChange:T=>{let L=i;l(T),f({restrictGrantCommands:T},"restrict",()=>l(L))}}),(0,e.jsx)(et,{checked:m,disabled:N!==null,dataAction:"toggle-p2p-open",title:t("botDefaults.p2pOpen"),help:t("botDefaults.p2pOpenHelp"),onChange:T=>{let L=m;s(T),f({p2pOpen:T},"p2pOpen",()=>s(L))}})]}),(0,e.jsxs)("form",{className:"bd-grant-defaults",noValidate:!0,onSubmit:T=>{T.preventDefault(),$()},children:[(0,e.jsx)("div",{className:"bd-row bd-grant-duration",children:(0,e.jsxs)("div",{className:"bd-field",children:[(0,e.jsx)(A,{help:t("botDefaults.grantDurationHelp"),children:t("botDefaults.grantDurationDefault")}),(0,e.jsx)(tt,{dataInput:"grantDefaultDurationMs",value:b,options:W,disabled:N!==null,ariaLabel:t("botDefaults.grantDurationDefault"),onChange:F})]})}),(0,e.jsxs)("div",{className:"bd-row bd-quota",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)(A,{help:j,children:t("botDefaults.quotaDefault")}),(0,e.jsx)("input",{type:"number",min:1,max:1e3,step:1,"data-input":"quotaLimit",placeholder:t("botDefaults.quotaPlaceholder",{count:3}),value:S,disabled:N!==null,"aria-label":t("botDefaults.quotaDefault"),"aria-invalid":C?!0:void 0,"aria-describedby":C?"grant-defaults-state grant-default-quota-error":"grant-defaults-state",onChange:T=>{x(T.currentTarget.value),h(null),D(null)},onBlur:$,onKeyDown:T=>{T.key==="Enter"&&(T.preventDefault(),T.currentTarget.blur())}})]}),C?(0,e.jsx)("small",{id:"grant-default-quota-error",className:"bd-field-error",role:"alert",children:C}):null,(0,e.jsx)("small",{id:"grant-defaults-state","data-grant-defaults-state":!0,children:q})]}),(0,e.jsx)("div",{className:"actions",children:(0,e.jsx)(J,{status:v,attr:{"data-grant-status":""}})})]})]})}function qa(a){return zt(a,(0,e.jsx)(Je,{}))}export{ht as BOT_DEFAULTS_TABS,vt as BdTabGrid,ta as BotAgentSection,Je as BotDefaultsPage,Ee as BotDefaultsTabs,ba as CardBehaviorSection,fa as CodexAppDisplaySection,Se as DASHBOARD_MAX_TURN_TIMEOUT_MS,ma as EnvelopeInjectionSection,wa as GrantSection,je as buildSubstituteTarget,ye as effectiveAccess,qa as renderBotDefaultsPage};
@@ -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 n}from"./chunk-G5XGBCM6.js";import{r as s,s as i}from"./chunk-VMWNR3SV.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
- 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-IKN6WURK.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-VMWNR3SV.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};
@@ -1 +0,0 @@
1
- import{a as Q,b as ee}from"./chunk-Z7DO42GJ.js";import{a as j,c as N}from"./chunk-IKN6WURK.js";import{b as x,d as T,e as k,f as I,k as X,m as O,n as P,o as _,p as G,r as J}from"./chunk-5CJMHTT4.js";import"./chunk-G5XGBCM6.js";import{B as q,D as H,E as V,F as M,G as g,H as A,u as L,w as $,x as C}from"./chunk-VMWNR3SV.js";import{a as W}from"./chunk-SYC6D5XU.js";import{a as re,d as K}from"./chunk-5THX4DI2.js";import{c as E}from"./chunk-7SZRL6FY.js";var r=E(re(),1);var t=E(K(),1),le=new Set(["working","analyzing","active","starting"]),ce=new Set(["idle","dormant"]),te="botmux.overview.teamExpanded",ne="botmux.overview.activeSort",z=5,B=1,ve=260;function de(){try{return window.localStorage.getItem(te)==="1"}catch{return!1}}function me(e){try{window.localStorage.setItem(te,e?"1":"0")}catch{}}function ue(e){return e==="attention"?"attention":"time"}function pe(){try{return ue(window.localStorage.getItem(ne))}catch{return"time"}}function we(e){try{window.localStorage.setItem(ne,e)}catch{}}function fe(e,o){let s=(i,a)=>Number(a.lastMessageAt??0)-Number(i.lastMessageAt??0);return o==="attention"?[...e].sort((i,a)=>{let v=g(i)?0:1,c=g(a)?0:1;if(v!==c)return v-c;if(v===0){let d=A(i)-A(a);if(d!==0)return d}return s(i,a)}):[...e].sort(s)}function ge(e){return String(e??"unknown").toLowerCase().replace(/[^a-z0-9_-]/g,"-")}function Se(e,o){let s=String(e??"unknown"),i=`sessions.status.${s}`,a=o(i);return a===i?s:a}function he(e){if(!e)return B*z;let o=window.getComputedStyle(e).gridTemplateColumns.split(/\s+/).filter(i=>Number.parseFloat(i)>0);return Math.max(1,o.length||z)*B}function be(e,o){if(!e)return;let s=document.querySelector(".sidebar");if(!s||window.matchMedia("(max-width: 980px)").matches){e.style.removeProperty(o);return}let i=s.getBoundingClientRect().bottom,a=e.getBoundingClientRect().top,c=`${Math.max(ve,Math.round(i-a))}px`;e.style.getPropertyValue(o)!==c&&e.style.setProperty(o,c)}function Ae({card:e}){let o=N(),s=$(e.larkAppId,e.brand),i=!e.online&&e.active.length===0,a=e.attention.length>0,v=e.busy.length>0,c=a?"warn":v?"busy":i?"off":"ok",d;if(a){let u=[...e.attention].sort((h,f)=>A(h)-A(f))[0];d=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("b",{children:(M(u.title)||u.sessionId).slice(0,60)})," \xB7 ",g(u)??""]})}else if(v){let u=[...e.busy].sort((h,f)=>Number(f.lastMessageAt??0)-Number(h.lastMessageAt??0))[0];d=(0,t.jsx)("b",{children:(M(u.title)||u.sessionId).slice(0,60)})}else i?d=o("overview.botOffline"):d=o("overview.botIdle");let S=a?(0,t.jsx)("span",{className:"tag tag-warn",children:o("overview.botNeedsYou")}):v?(0,t.jsx)("span",{className:"tag tag-run",children:o("overview.botBusy",{count:e.busy.length})}):i?(0,t.jsx)("span",{className:"tag tag-off",children:o("overview.botOff")}):(0,t.jsx)("span",{className:"tag tag-ok",children:o("overview.botReady")});return(0,t.jsxs)("article",{className:`mate${a?" mate-attn":""}${i?" mate-off":""}`,children:[s?(0,t.jsx)("a",{className:"mate-console",href:s,target:"_blank",rel:"noopener noreferrer","data-tip":o("overview.botConsole"),"aria-label":o("overview.botConsole"),children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",width:"14",height:"14",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.jsxs)("div",{className:"mate-top",children:[(0,t.jsx)(x,{html:C({name:e.botName,larkAppId:e.larkAppId,avatarUrl:e.botAvatarUrl,dot:c})}),(0,t.jsxs)("div",{className:"mate-id",children:[(0,t.jsx)("b",{children:e.botName}),(0,t.jsx)("span",{className:"mate-role",children:e.cliId})]})]}),(0,t.jsx)("div",{className:"mate-task",children:d}),(0,t.jsxs)("div",{className:"mate-foot",children:[S,(0,t.jsx)("span",{children:e.lastActiveAt?o("overview.lastActive",{time:L(e.lastActiveAt)}):o("common.never")})]})]})}function Ne({session:e}){let o=N(),s=H(e),i=String(e.status??"unknown"),a=g(e);return(0,t.jsxs)(P,{kind:"session",children:[(0,t.jsx)(x,{html:C({name:s,larkAppId:e.larkAppId,size:"sm"})}),(0,t.jsxs)(_,{children:[(0,t.jsx)("b",{children:(M(e.title)||e.sessionId).slice(0,64)}),(0,t.jsxs)("span",{children:[s," \xB7 ",V(e)??e.cliId??"unknown"," \xB7 ",L(e.lastMessageAt)]})]}),(0,t.jsx)(G,{children:a?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("a",{className:"overview-list-action",href:"#/sessions",children:o("strip.handle")}),(0,t.jsx)("span",{className:"status overview-list-status status-attention",children:a})]}):(0,t.jsx)("span",{className:`status overview-list-status status-${ge(i)}`,children:Se(i,o)})})]})}function ye({schedule:e,timeZone:o}){let s=e.nextRunAt?new Date(e.nextRunAt).toLocaleString(void 0,o?{timeZone:o,timeZoneName:"short"}:void 0):"-";return(0,t.jsxs)(P,{kind:"schedule",children:[(0,t.jsxs)(_,{children:[(0,t.jsx)("strong",{children:e.name??e.id}),(0,t.jsxs)("span",{children:[H(e)," \xB7 ",e.parsed?.display??""]})]}),(0,t.jsx)("span",{className:"overview-list-meta",children:(0,t.jsx)(X,{text:s,showPopover:!1,durationMs:2600})})]})}function Me({mode:e,onModeChange:o}){let s=N(),i=s(e==="attention"?"overview.sortAttentionFirst":"overview.sortByTime");return(0,t.jsx)(J,{className:"overview-active-sort-menu",label:i,value:e,options:[{value:"time",label:s("overview.sortByTime")},{value:"attention",label:s("overview.sortAttentionFirst")}],onChange:o})}function Te(){let e=N(),o=(0,r.useRef)(null),s=(0,r.useRef)(null),i=(0,r.useRef)(null),[a,v]=(0,r.useState)(de),[c,d]=(0,r.useState)(pe),[S,u]=(0,r.useState)(B*z),[h,f]=(0,r.useState)(0),{sessions:y,schedules:D,scheduleTimeZone:oe}=j(n=>({sessions:[...n.sessions.values()],schedules:[...n.schedules.values()],scheduleTimeZone:n.scheduleTimeZone}));(0,r.useEffect)(()=>{let n=0,m=()=>{window.cancelAnimationFrame(n),n=window.requestAnimationFrame(()=>{let w=he(o.current);u(l=>l===w?l:w)})};m();let p=typeof ResizeObserver>"u"||!o.current?null:new ResizeObserver(m);return p&&o.current&&p.observe(o.current),window.addEventListener("resize",m),()=>{window.cancelAnimationFrame(n),p?.disconnect(),window.removeEventListener("resize",m)}},[]),(0,r.useEffect)(()=>{Q().then(()=>f(n=>n+1)),q().then(()=>f(n=>n+1))},[]);let F=(0,r.useMemo)(()=>y.filter(n=>n.status!=="closed"),[y]),b=(0,r.useMemo)(()=>ee(y),[y,h]),U=a?b:b.slice(0,S),Y=(0,r.useMemo)(()=>fe(F.filter(n=>g(n)||le.has(n.status)||ce.has(n.status)),c).slice(0,7),[F,c]),R=(0,r.useMemo)(()=>D.filter(n=>n.nextRunAt).sort((n,m)=>Date.parse(n.nextRunAt)-Date.parse(m.nextRunAt)).slice(0,5),[D]);(0,r.useEffect)(()=>{let n=[{el:s.current,propertyName:"--active-sessions-min-height"},{el:i.current,propertyName:"--schedules-panel-min-height"}].filter(l=>!!l.el);if(!n.length)return;let m=0,p=()=>{window.cancelAnimationFrame(m),m=window.requestAnimationFrame(()=>{for(let l of n)be(l.el,l.propertyName)})};p();let w=typeof ResizeObserver>"u"?null:new ResizeObserver(p);if(w){for(let ae of n)w.observe(ae.el);let l=document.querySelector(".sidebar"),Z=n[0].el.closest(".page");l&&w.observe(l),Z&&w.observe(Z)}return window.addEventListener("resize",p),()=>{window.cancelAnimationFrame(m),w?.disconnect(),window.removeEventListener("resize",p);for(let l of n)l.el.style.removeProperty(l.propertyName)}},[a,S,b.length,R.length]);let se=()=>{v(n=>(me(!n),!n))},ie=n=>{d(n),we(n)};return(0,t.jsxs)("section",{className:"page hero-page",children:[(0,t.jsx)("div",{className:"page-heading",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"eyebrow",children:e("app.subtitle")}),(0,t.jsx)("h1",{children:e("overview.title")})]})}),(0,t.jsxs)("div",{className:"overview-layout",children:[(0,t.jsxs)("div",{className:"overview-main",children:[(0,t.jsxs)("section",{className:"overview-block team-section",children:[(0,t.jsx)(T,{title:e("overview.team"),count:e("overview.teamCount",{count:b.length}),hint:e("overview.teamHint"),children:(0,t.jsx)(I,{children:(0,t.jsx)(k,{href:"#/bot-defaults",children:e("overview.viewAllPlain")})})}),(0,t.jsx)("div",{className:"team-grid",id:"team-grid",ref:o,children:U.length?U.map(n=>(0,t.jsx)(Ae,{card:n},n.larkAppId??n.botName)):(0,t.jsx)("div",{className:"empty",children:e("overview.noSessions")})}),b.length>S?(0,t.jsx)("button",{type:"button",className:"team-toggle",id:"team-toggle",onClick:se,children:e(a?"overview.teamCollapse":"overview.teamExpand")}):null]}),(0,t.jsxs)("section",{className:"overview-block",children:[(0,t.jsx)(T,{title:e("overview.activeSessions"),children:(0,t.jsxs)(I,{children:[(0,t.jsx)(Me,{mode:c,onModeChange:ie}),(0,t.jsx)(k,{href:"#/sessions",children:e("overview.viewAllPlain")})]})}),(0,t.jsx)("section",{className:"panel active-sessions-panel",ref:s,children:(0,t.jsx)(O,{id:"recent-sessions",children:Y.length?Y.map(n=>(0,t.jsx)(Ne,{session:n},n.sessionId)):(0,t.jsx)("li",{className:"empty",children:e("overview.noSessions")})})})]})]}),(0,t.jsx)("aside",{className:"overview-side",children:(0,t.jsxs)("section",{className:"overview-block",children:[(0,t.jsx)(T,{title:e("overview.nextSchedules"),children:(0,t.jsx)(k,{href:"#/schedules",children:e("overview.viewAllPlain")})}),(0,t.jsx)("section",{className:"panel schedules-panel",ref:i,children:(0,t.jsx)(O,{id:"next-schedules",children:R.length?R.map(n=>(0,t.jsx)(ye,{schedule:n,timeZone:oe},n.id)):(0,t.jsx)("li",{className:"empty",children:e("overview.noSchedules")})})})]})})]})]})}function He(e){e.classList.add("overview-root");let o=W(e,(0,t.jsx)(Te,{}));return()=>{o(),e.classList.remove("overview-root")}}export{He as renderOverviewPage};