botmux 3.13.0 → 3.15.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 (541) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +25 -1
  3. package/dist/.runtime-build-id +1 -1
  4. package/dist/adapters/adopt-route.d.ts +58 -0
  5. package/dist/adapters/adopt-route.d.ts.map +1 -1
  6. package/dist/adapters/adopt-route.js +136 -0
  7. package/dist/adapters/adopt-route.js.map +1 -1
  8. package/dist/adapters/backend/capabilities.js +1 -1
  9. package/dist/adapters/backend/capabilities.js.map +1 -1
  10. package/dist/adapters/backend/herdr-backend.d.ts +1 -1
  11. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/herdr-backend.js +2 -1
  13. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  14. package/dist/adapters/backend/riff-backend.d.ts +97 -0
  15. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  16. package/dist/adapters/backend/riff-backend.js +380 -66
  17. package/dist/adapters/backend/riff-backend.js.map +1 -1
  18. package/dist/adapters/backend/sandbox.d.ts +8 -0
  19. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  20. package/dist/adapters/backend/sandbox.js +16 -2
  21. package/dist/adapters/backend/sandbox.js.map +1 -1
  22. package/dist/adapters/backend/tmux-backend.d.ts +12 -13
  23. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  24. package/dist/adapters/backend/tmux-backend.js +113 -53
  25. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  26. package/dist/adapters/backend/tmux-pipe-backend.d.ts +34 -3
  27. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  28. package/dist/adapters/backend/tmux-pipe-backend.js +72 -9
  29. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  30. package/dist/adapters/backend/types.d.ts +7 -0
  31. package/dist/adapters/backend/types.d.ts.map +1 -1
  32. package/dist/adapters/backend/types.js.map +1 -1
  33. package/dist/adapters/backend/zellij-backend.d.ts +2 -3
  34. package/dist/adapters/backend/zellij-backend.d.ts.map +1 -1
  35. package/dist/adapters/backend/zellij-backend.js +6 -13
  36. package/dist/adapters/backend/zellij-backend.js.map +1 -1
  37. package/dist/adapters/backend/zellij-observe-backend.d.ts +2 -1
  38. package/dist/adapters/backend/zellij-observe-backend.d.ts.map +1 -1
  39. package/dist/adapters/backend/zellij-observe-backend.js +6 -3
  40. package/dist/adapters/backend/zellij-observe-backend.js.map +1 -1
  41. package/dist/adapters/backend/zmx-backend.d.ts.map +1 -1
  42. package/dist/adapters/backend/zmx-backend.js +40 -18
  43. package/dist/adapters/backend/zmx-backend.js.map +1 -1
  44. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  45. package/dist/adapters/cli/claude-code.js +12 -1
  46. package/dist/adapters/cli/claude-code.js.map +1 -1
  47. package/dist/adapters/cli/codex.d.ts.map +1 -1
  48. package/dist/adapters/cli/codex.js +3 -2
  49. package/dist/adapters/cli/codex.js.map +1 -1
  50. package/dist/adapters/cli/cursor.d.ts.map +1 -1
  51. package/dist/adapters/cli/cursor.js +13 -1
  52. package/dist/adapters/cli/cursor.js.map +1 -1
  53. package/dist/adapters/cli/dsh.d.ts +4 -0
  54. package/dist/adapters/cli/dsh.d.ts.map +1 -0
  55. package/dist/adapters/cli/dsh.js +100 -0
  56. package/dist/adapters/cli/dsh.js.map +1 -0
  57. package/dist/adapters/cli/fs-policy.d.ts.map +1 -1
  58. package/dist/adapters/cli/fs-policy.js +5 -0
  59. package/dist/adapters/cli/fs-policy.js.map +1 -1
  60. package/dist/adapters/cli/opencode.d.ts +52 -1
  61. package/dist/adapters/cli/opencode.d.ts.map +1 -1
  62. package/dist/adapters/cli/opencode.js +117 -76
  63. package/dist/adapters/cli/opencode.js.map +1 -1
  64. package/dist/adapters/cli/opencode2.d.ts +4 -0
  65. package/dist/adapters/cli/opencode2.d.ts.map +1 -0
  66. package/dist/adapters/cli/opencode2.js +137 -0
  67. package/dist/adapters/cli/opencode2.js.map +1 -0
  68. package/dist/adapters/cli/pi.d.ts +14 -1
  69. package/dist/adapters/cli/pi.d.ts.map +1 -1
  70. package/dist/adapters/cli/pi.js +21 -1
  71. package/dist/adapters/cli/pi.js.map +1 -1
  72. package/dist/adapters/cli/read-isolation.d.ts +1 -1
  73. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  74. package/dist/adapters/cli/read-isolation.js +5 -2
  75. package/dist/adapters/cli/read-isolation.js.map +1 -1
  76. package/dist/adapters/cli/registry.d.ts +7 -1
  77. package/dist/adapters/cli/registry.d.ts.map +1 -1
  78. package/dist/adapters/cli/registry.js +19 -6
  79. package/dist/adapters/cli/registry.js.map +1 -1
  80. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  81. package/dist/adapters/cli/shared-hints.js +41 -23
  82. package/dist/adapters/cli/shared-hints.js.map +1 -1
  83. package/dist/adapters/cli/types.d.ts +28 -3
  84. package/dist/adapters/cli/types.d.ts.map +1 -1
  85. package/dist/adapters/hook-command.d.ts +8 -0
  86. package/dist/adapters/hook-command.d.ts.map +1 -1
  87. package/dist/adapters/hook-command.js +11 -0
  88. package/dist/adapters/hook-command.js.map +1 -1
  89. package/dist/adapters/hook-installer.d.ts +16 -1
  90. package/dist/adapters/hook-installer.d.ts.map +1 -1
  91. package/dist/adapters/hook-installer.js +232 -2
  92. package/dist/adapters/hook-installer.js.map +1 -1
  93. package/dist/bot-registry.d.ts +138 -8
  94. package/dist/bot-registry.d.ts.map +1 -1
  95. package/dist/bot-registry.js +76 -4
  96. package/dist/bot-registry.js.map +1 -1
  97. package/dist/cli/pm2-start-transaction.d.ts +14 -0
  98. package/dist/cli/pm2-start-transaction.d.ts.map +1 -1
  99. package/dist/cli/pm2-start-transaction.js +25 -9
  100. package/dist/cli/pm2-start-transaction.js.map +1 -1
  101. package/dist/cli/restart-failure-notification.d.ts +54 -0
  102. package/dist/cli/restart-failure-notification.d.ts.map +1 -0
  103. package/dist/cli/restart-failure-notification.js +142 -0
  104. package/dist/cli/restart-failure-notification.js.map +1 -0
  105. package/dist/cli/restart-failure-owner.d.ts +20 -0
  106. package/dist/cli/restart-failure-owner.d.ts.map +1 -0
  107. package/dist/cli/restart-failure-owner.js +27 -0
  108. package/dist/cli/restart-failure-owner.js.map +1 -0
  109. package/dist/cli/restart-shutdown-preflight.d.ts +24 -0
  110. package/dist/cli/restart-shutdown-preflight.d.ts.map +1 -0
  111. package/dist/cli/restart-shutdown-preflight.js +105 -0
  112. package/dist/cli/restart-shutdown-preflight.js.map +1 -0
  113. package/dist/cli/send-dispatch.d.ts +26 -0
  114. package/dist/cli/send-dispatch.d.ts.map +1 -1
  115. package/dist/cli/send-dispatch.js +30 -0
  116. package/dist/cli/send-dispatch.js.map +1 -1
  117. package/dist/cli.d.ts +4 -1
  118. package/dist/cli.d.ts.map +1 -1
  119. package/dist/cli.js +673 -402
  120. package/dist/cli.js.map +1 -1
  121. package/dist/codex-app-runner.js +38 -15
  122. package/dist/codex-app-runner.js.map +1 -1
  123. package/dist/codex-rpc-lifecycle.d.ts +14 -2
  124. package/dist/codex-rpc-lifecycle.d.ts.map +1 -1
  125. package/dist/codex-rpc-lifecycle.js +13 -3
  126. package/dist/codex-rpc-lifecycle.js.map +1 -1
  127. package/dist/core/ask-broker.d.ts +3 -0
  128. package/dist/core/ask-broker.d.ts.map +1 -1
  129. package/dist/core/ask-broker.js +29 -7
  130. package/dist/core/ask-broker.js.map +1 -1
  131. package/dist/core/ask-hook/registry.d.ts.map +1 -1
  132. package/dist/core/ask-hook/registry.js +4 -0
  133. package/dist/core/ask-hook/registry.js.map +1 -1
  134. package/dist/core/ask-types.d.ts +5 -1
  135. package/dist/core/ask-types.d.ts.map +1 -1
  136. package/dist/core/ask-types.js.map +1 -1
  137. package/dist/core/browser-restart.d.ts +112 -0
  138. package/dist/core/browser-restart.d.ts.map +1 -0
  139. package/dist/core/browser-restart.js +233 -0
  140. package/dist/core/browser-restart.js.map +1 -0
  141. package/dist/core/command-discovery.d.ts.map +1 -1
  142. package/dist/core/command-discovery.js +4 -1
  143. package/dist/core/command-discovery.js.map +1 -1
  144. package/dist/core/command-handler.d.ts +19 -11
  145. package/dist/core/command-handler.d.ts.map +1 -1
  146. package/dist/core/command-handler.js +237 -43
  147. package/dist/core/command-handler.js.map +1 -1
  148. package/dist/core/current-turn-provenance.d.ts.map +1 -1
  149. package/dist/core/current-turn-provenance.js +7 -27
  150. package/dist/core/current-turn-provenance.js.map +1 -1
  151. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  152. package/dist/core/dashboard-ipc-server.js +359 -11
  153. package/dist/core/dashboard-ipc-server.js.map +1 -1
  154. package/dist/core/dispatch-registry.d.ts.map +1 -1
  155. package/dist/core/dispatch-registry.js +6 -0
  156. package/dist/core/dispatch-registry.js.map +1 -1
  157. package/dist/core/dispatch-report-binding.d.ts +31 -0
  158. package/dist/core/dispatch-report-binding.d.ts.map +1 -0
  159. package/dist/core/dispatch-report-binding.js +88 -0
  160. package/dist/core/dispatch-report-binding.js.map +1 -0
  161. package/dist/core/doc-comment-prompt.d.ts +2 -0
  162. package/dist/core/doc-comment-prompt.d.ts.map +1 -1
  163. package/dist/core/doc-comment-prompt.js +6 -0
  164. package/dist/core/doc-comment-prompt.js.map +1 -1
  165. package/dist/core/host-overload-alert.d.ts +25 -1
  166. package/dist/core/host-overload-alert.d.ts.map +1 -1
  167. package/dist/core/host-overload-alert.js +69 -8
  168. package/dist/core/host-overload-alert.js.map +1 -1
  169. package/dist/core/local-terminal-opener.js +1 -1
  170. package/dist/core/local-terminal-opener.js.map +1 -1
  171. package/dist/core/managed-origin-capability.d.ts +7 -6
  172. package/dist/core/managed-origin-capability.d.ts.map +1 -1
  173. package/dist/core/managed-origin-capability.js +32 -1
  174. package/dist/core/managed-origin-capability.js.map +1 -1
  175. package/dist/core/passthrough-commands.d.ts.map +1 -1
  176. package/dist/core/passthrough-commands.js +3 -2
  177. package/dist/core/passthrough-commands.js.map +1 -1
  178. package/dist/core/plugins/materializer.d.ts.map +1 -1
  179. package/dist/core/plugins/materializer.js +1 -0
  180. package/dist/core/plugins/materializer.js.map +1 -1
  181. package/dist/core/producer-quiescence.d.ts +70 -0
  182. package/dist/core/producer-quiescence.d.ts.map +1 -0
  183. package/dist/core/producer-quiescence.js +90 -0
  184. package/dist/core/producer-quiescence.js.map +1 -0
  185. package/dist/core/raw-command-write-options.d.ts +10 -0
  186. package/dist/core/raw-command-write-options.d.ts.map +1 -0
  187. package/dist/core/raw-command-write-options.js +23 -0
  188. package/dist/core/raw-command-write-options.js.map +1 -0
  189. package/dist/core/raw-command-writer.d.ts +4 -0
  190. package/dist/core/raw-command-writer.d.ts.map +1 -1
  191. package/dist/core/raw-command-writer.js +15 -6
  192. package/dist/core/raw-command-writer.js.map +1 -1
  193. package/dist/core/reply-target.d.ts +11 -0
  194. package/dist/core/reply-target.d.ts.map +1 -1
  195. package/dist/core/reply-target.js +22 -7
  196. package/dist/core/reply-target.js.map +1 -1
  197. package/dist/core/report-session-relay.d.ts +53 -0
  198. package/dist/core/report-session-relay.d.ts.map +1 -0
  199. package/dist/core/report-session-relay.js +116 -0
  200. package/dist/core/report-session-relay.js.map +1 -0
  201. package/dist/core/session-discovery.d.ts +5 -0
  202. package/dist/core/session-discovery.d.ts.map +1 -1
  203. package/dist/core/session-discovery.js +13 -0
  204. package/dist/core/session-discovery.js.map +1 -1
  205. package/dist/core/session-group-birth.d.ts +7 -0
  206. package/dist/core/session-group-birth.d.ts.map +1 -0
  207. package/dist/core/session-group-birth.js +145 -0
  208. package/dist/core/session-group-birth.js.map +1 -0
  209. package/dist/core/session-manager.d.ts +16 -21
  210. package/dist/core/session-manager.d.ts.map +1 -1
  211. package/dist/core/session-manager.js +140 -21
  212. package/dist/core/session-manager.js.map +1 -1
  213. package/dist/core/skills/frontmatter.d.ts.map +1 -1
  214. package/dist/core/skills/frontmatter.js +6 -1
  215. package/dist/core/skills/frontmatter.js.map +1 -1
  216. package/dist/core/trigger-session.d.ts.map +1 -1
  217. package/dist/core/trigger-session.js +18 -3
  218. package/dist/core/trigger-session.js.map +1 -1
  219. package/dist/core/types.d.ts +18 -0
  220. package/dist/core/types.d.ts.map +1 -1
  221. package/dist/core/types.js.map +1 -1
  222. package/dist/core/worker-pool.d.ts +63 -11
  223. package/dist/core/worker-pool.d.ts.map +1 -1
  224. package/dist/core/worker-pool.js +262 -21
  225. package/dist/core/worker-pool.js.map +1 -1
  226. package/dist/daemon.d.ts +33 -0
  227. package/dist/daemon.d.ts.map +1 -1
  228. package/dist/daemon.js +904 -147
  229. package/dist/daemon.js.map +1 -1
  230. package/dist/dashboard/auth.d.ts +20 -0
  231. package/dist/dashboard/auth.d.ts.map +1 -1
  232. package/dist/dashboard/auth.js +86 -1
  233. package/dist/dashboard/auth.js.map +1 -1
  234. package/dist/dashboard/bot-payload.d.ts +9 -0
  235. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  236. package/dist/dashboard/bot-payload.js +5 -1
  237. package/dist/dashboard/bot-payload.js.map +1 -1
  238. package/dist/dashboard/federation-spoke-api.d.ts.map +1 -1
  239. package/dist/dashboard/federation-spoke-api.js +27 -3
  240. package/dist/dashboard/federation-spoke-api.js.map +1 -1
  241. package/dist/dashboard/feedback-analytics-api.d.ts +6 -0
  242. package/dist/dashboard/feedback-analytics-api.d.ts.map +1 -0
  243. package/dist/dashboard/feedback-analytics-api.js +39 -0
  244. package/dist/dashboard/feedback-analytics-api.js.map +1 -0
  245. package/dist/dashboard/session-action-timeout.d.ts +3 -0
  246. package/dist/dashboard/session-action-timeout.d.ts.map +1 -0
  247. package/dist/dashboard/session-action-timeout.js +12 -0
  248. package/dist/dashboard/session-action-timeout.js.map +1 -0
  249. package/dist/dashboard/vc-consumer-profiles-api.d.ts +9 -3
  250. package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -1
  251. package/dist/dashboard/vc-consumer-profiles-api.js +2 -1
  252. package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -1
  253. package/dist/dashboard/web/app.d.ts.map +1 -1
  254. package/dist/dashboard/web/app.js +48 -5
  255. package/dist/dashboard/web/app.js.map +1 -1
  256. package/dist/dashboard/web/bot-defaults-page.d.ts +11 -0
  257. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  258. package/dist/dashboard/web/bot-defaults-page.js +368 -36
  259. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  260. package/dist/dashboard/web/bot-defaults.d.ts +8 -0
  261. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  262. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  263. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
  264. package/dist/dashboard/web/dashboard-routes.js +1 -0
  265. package/dist/dashboard/web/dashboard-routes.js.map +1 -1
  266. package/dist/dashboard/web/feedback-page.d.ts +3 -0
  267. package/dist/dashboard/web/feedback-page.d.ts.map +1 -0
  268. package/dist/dashboard/web/feedback-page.js +34 -0
  269. package/dist/dashboard/web/feedback-page.js.map +1 -0
  270. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  271. package/dist/dashboard/web/groups-page.js +7 -2
  272. package/dist/dashboard/web/groups-page.js.map +1 -1
  273. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  274. package/dist/dashboard/web/i18n.js +122 -22
  275. package/dist/dashboard/web/i18n.js.map +1 -1
  276. package/dist/dashboard/web/skills-page.d.ts.map +1 -1
  277. package/dist/dashboard/web/skills-page.js +4 -2
  278. package/dist/dashboard/web/skills-page.js.map +1 -1
  279. package/dist/dashboard/web/team-federation-page.d.ts.map +1 -1
  280. package/dist/dashboard/web/team-federation-page.js +26 -2
  281. package/dist/dashboard/web/team-federation-page.js.map +1 -1
  282. package/dist/dashboard/web/team-federation.d.ts +19 -0
  283. package/dist/dashboard/web/team-federation.d.ts.map +1 -1
  284. package/dist/dashboard/web/team-federation.js +3 -0
  285. package/dist/dashboard/web/team-federation.js.map +1 -1
  286. package/dist/dashboard/web/update-action.d.ts +8 -0
  287. package/dist/dashboard/web/update-action.d.ts.map +1 -1
  288. package/dist/dashboard/web/update-action.js +10 -0
  289. package/dist/dashboard/web/update-action.js.map +1 -1
  290. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
  291. package/dist/dashboard/web/vc-consumer-profiles-section.js +58 -9
  292. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
  293. package/dist/dashboard-web/app.js +1 -1
  294. package/dist/dashboard-web/chunks/bot-defaults-page-65SMZ4QY.js +10 -0
  295. package/dist/dashboard-web/chunks/chunk-G5XGBCM6.js +1 -0
  296. package/dist/dashboard-web/chunks/chunk-IKN6WURK.js +1 -0
  297. package/dist/dashboard-web/chunks/{chunk-6JTZJRQJ.js → chunk-VMWNR3SV.js} +15 -15
  298. package/dist/dashboard-web/chunks/{chunk-CU4SUKK3.js → chunk-Z7B3E3US.js} +1 -1
  299. package/dist/dashboard-web/chunks/{chunk-5QJB24I2.js → chunk-Z7DO42GJ.js} +1 -1
  300. package/dist/dashboard-web/chunks/connectors-page-CPH6VVFY.js +1 -0
  301. package/dist/dashboard-web/chunks/feedback-page-J2FKQ3LK.js +1 -0
  302. package/dist/dashboard-web/chunks/groups-page-VDOOLS4M.js +8 -0
  303. package/dist/dashboard-web/chunks/{insights-page-EVGGJI5L.js → insights-page-A2LWTKJD.js} +1 -1
  304. package/dist/dashboard-web/chunks/{monitor-room-HRGR2ENP.js → monitor-room-2YR752E3.js} +1 -1
  305. package/dist/dashboard-web/chunks/monitoring-page-BGYSKZGM.js +2 -0
  306. package/dist/dashboard-web/chunks/office-page-ZZHTEAE4.js +1 -0
  307. package/dist/dashboard-web/chunks/overview-page-7NYPKQSB.js +1 -0
  308. package/dist/dashboard-web/chunks/roles-page-YUC4YLJG.js +1 -0
  309. package/dist/dashboard-web/chunks/schedules-page-2L2NKTDJ.js +1 -0
  310. package/dist/dashboard-web/chunks/{sessions-page-DXBCDWCS.js → sessions-page-DYZZMKFL.js} +1 -1
  311. package/dist/dashboard-web/chunks/settings-page-LIULUSMH.js +2 -0
  312. package/dist/dashboard-web/chunks/{skills-page-2QAVB2SA.js → skills-page-DQPBBI3T.js} +2 -2
  313. package/dist/dashboard-web/chunks/team-federation-page-LQKLDV4K.js +1 -0
  314. package/dist/dashboard-web/chunks/{v3-page-AY35LKCX.js → v3-page-RVKQIMAP.js} +1 -1
  315. package/dist/dashboard-web/chunks/whiteboards-page-S5K55HRZ.js +1 -0
  316. package/dist/dashboard-web/style.css +35 -0
  317. package/dist/dashboard.js +210 -13
  318. package/dist/dashboard.js.map +1 -1
  319. package/dist/desktop/shared/shell-path-probes.d.ts +1 -1
  320. package/dist/desktop/shared/shell-path-probes.js +2 -2
  321. package/dist/desktop/shared/shell-path-probes.js.map +1 -1
  322. package/dist/dsh-runner.d.ts +3 -0
  323. package/dist/dsh-runner.d.ts.map +1 -0
  324. package/dist/dsh-runner.js +673 -0
  325. package/dist/dsh-runner.js.map +1 -0
  326. package/dist/global-config.d.ts +24 -0
  327. package/dist/global-config.d.ts.map +1 -1
  328. package/dist/global-config.js +35 -0
  329. package/dist/global-config.js.map +1 -1
  330. package/dist/i18n/en.d.ts.map +1 -1
  331. package/dist/i18n/en.js +39 -31
  332. package/dist/i18n/en.js.map +1 -1
  333. package/dist/i18n/zh.d.ts.map +1 -1
  334. package/dist/i18n/zh.js +39 -31
  335. package/dist/i18n/zh.js.map +1 -1
  336. package/dist/im/lark/ask-card.d.ts +3 -1
  337. package/dist/im/lark/ask-card.d.ts.map +1 -1
  338. package/dist/im/lark/ask-card.js +61 -5
  339. package/dist/im/lark/ask-card.js.map +1 -1
  340. package/dist/im/lark/card-builder.d.ts.map +1 -1
  341. package/dist/im/lark/card-builder.js +13 -6
  342. package/dist/im/lark/card-builder.js.map +1 -1
  343. package/dist/im/lark/card-handler.d.ts +2 -1
  344. package/dist/im/lark/card-handler.d.ts.map +1 -1
  345. package/dist/im/lark/card-handler.js +145 -5
  346. package/dist/im/lark/card-handler.js.map +1 -1
  347. package/dist/im/lark/event-dispatcher.d.ts +18 -0
  348. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  349. package/dist/im/lark/event-dispatcher.js +41 -28
  350. package/dist/im/lark/event-dispatcher.js.map +1 -1
  351. package/dist/im/lark/md-card.d.ts +18 -0
  352. package/dist/im/lark/md-card.d.ts.map +1 -1
  353. package/dist/im/lark/md-card.js +21 -0
  354. package/dist/im/lark/md-card.js.map +1 -1
  355. package/dist/im/lark/relay-target-routing.d.ts.map +1 -1
  356. package/dist/im/lark/relay-target-routing.js +3 -2
  357. package/dist/im/lark/relay-target-routing.js.map +1 -1
  358. package/dist/im/lark/reply-mode-command.d.ts.map +1 -1
  359. package/dist/im/lark/reply-mode-command.js +19 -8
  360. package/dist/im/lark/reply-mode-command.js.map +1 -1
  361. package/dist/im/lark/skill-feedback-card.d.ts +15 -0
  362. package/dist/im/lark/skill-feedback-card.d.ts.map +1 -0
  363. package/dist/im/lark/skill-feedback-card.js +149 -0
  364. package/dist/im/lark/skill-feedback-card.js.map +1 -0
  365. package/dist/services/bot-config-store.d.ts +10 -1
  366. package/dist/services/bot-config-store.d.ts.map +1 -1
  367. package/dist/services/bot-config-store.js +103 -3
  368. package/dist/services/bot-config-store.js.map +1 -1
  369. package/dist/services/bridge-fallback-gate.d.ts +29 -7
  370. package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
  371. package/dist/services/bridge-fallback-gate.js +58 -16
  372. package/dist/services/bridge-fallback-gate.js.map +1 -1
  373. package/dist/services/codex-reasoning-effort.d.ts +9 -0
  374. package/dist/services/codex-reasoning-effort.d.ts.map +1 -0
  375. package/dist/services/codex-reasoning-effort.js +23 -0
  376. package/dist/services/codex-reasoning-effort.js.map +1 -0
  377. package/dist/services/codex-service-tier.d.ts +1 -1
  378. package/dist/services/codex-service-tier.d.ts.map +1 -1
  379. package/dist/services/codex-transcript.d.ts +9 -0
  380. package/dist/services/codex-transcript.d.ts.map +1 -1
  381. package/dist/services/codex-transcript.js +13 -6
  382. package/dist/services/codex-transcript.js.map +1 -1
  383. package/dist/services/feed-group-tagger.d.ts +15 -0
  384. package/dist/services/feed-group-tagger.d.ts.map +1 -0
  385. package/dist/services/feed-group-tagger.js +348 -0
  386. package/dist/services/feed-group-tagger.js.map +1 -0
  387. package/dist/services/feedback-analytics.d.ts +82 -0
  388. package/dist/services/feedback-analytics.d.ts.map +1 -0
  389. package/dist/services/feedback-analytics.js +95 -0
  390. package/dist/services/feedback-analytics.js.map +1 -0
  391. package/dist/services/feedback-outbox.d.ts +24 -0
  392. package/dist/services/feedback-outbox.d.ts.map +1 -0
  393. package/dist/services/feedback-outbox.js +12 -0
  394. package/dist/services/feedback-outbox.js.map +1 -0
  395. package/dist/services/feedback-policy-resolver.d.ts +56 -0
  396. package/dist/services/feedback-policy-resolver.d.ts.map +1 -0
  397. package/dist/services/feedback-policy-resolver.js +156 -0
  398. package/dist/services/feedback-policy-resolver.js.map +1 -0
  399. package/dist/services/feedback-policy.d.ts +41 -0
  400. package/dist/services/feedback-policy.d.ts.map +1 -0
  401. package/dist/services/feedback-policy.js +102 -0
  402. package/dist/services/feedback-policy.js.map +1 -0
  403. package/dist/services/feedback-webhook-dispatcher.d.ts +76 -0
  404. package/dist/services/feedback-webhook-dispatcher.d.ts.map +1 -0
  405. package/dist/services/feedback-webhook-dispatcher.js +237 -0
  406. package/dist/services/feedback-webhook-dispatcher.js.map +1 -0
  407. package/dist/services/grant-prefs-store.d.ts +3 -0
  408. package/dist/services/grant-prefs-store.d.ts.map +1 -1
  409. package/dist/services/grant-prefs-store.js +30 -1
  410. package/dist/services/grant-prefs-store.js.map +1 -1
  411. package/dist/services/groups-store.d.ts +14 -0
  412. package/dist/services/groups-store.d.ts.map +1 -1
  413. package/dist/services/groups-store.js +23 -0
  414. package/dist/services/groups-store.js.map +1 -1
  415. package/dist/services/local-cli-opener.d.ts +1 -1
  416. package/dist/services/local-cli-opener.d.ts.map +1 -1
  417. package/dist/services/local-cli-opener.js +2 -0
  418. package/dist/services/local-cli-opener.js.map +1 -1
  419. package/dist/services/peer-cross-ref-store.d.ts +8 -0
  420. package/dist/services/peer-cross-ref-store.d.ts.map +1 -0
  421. package/dist/services/peer-cross-ref-store.js +95 -0
  422. package/dist/services/peer-cross-ref-store.js.map +1 -0
  423. package/dist/services/pi-transcript.d.ts.map +1 -1
  424. package/dist/services/pi-transcript.js +10 -6
  425. package/dist/services/pi-transcript.js.map +1 -1
  426. package/dist/services/prompt-context-store.d.ts +29 -0
  427. package/dist/services/prompt-context-store.d.ts.map +1 -0
  428. package/dist/services/prompt-context-store.js +205 -0
  429. package/dist/services/prompt-context-store.js.map +1 -0
  430. package/dist/services/session-group-avatar.d.ts +6 -0
  431. package/dist/services/session-group-avatar.d.ts.map +1 -0
  432. package/dist/services/session-group-avatar.js +96 -0
  433. package/dist/services/session-group-avatar.js.map +1 -0
  434. package/dist/services/session-group-title.d.ts +47 -0
  435. package/dist/services/session-group-title.d.ts.map +1 -0
  436. package/dist/services/session-group-title.js +226 -0
  437. package/dist/services/session-group-title.js.map +1 -0
  438. package/dist/services/session-groups-store.d.ts +30 -0
  439. package/dist/services/session-groups-store.d.ts.map +1 -0
  440. package/dist/services/session-groups-store.js +132 -0
  441. package/dist/services/session-groups-store.js.map +1 -0
  442. package/dist/services/session-store.d.ts +58 -0
  443. package/dist/services/session-store.d.ts.map +1 -1
  444. package/dist/services/session-store.js +174 -0
  445. package/dist/services/session-store.js.map +1 -1
  446. package/dist/services/skill-feedback-store.d.ts +252 -0
  447. package/dist/services/skill-feedback-store.d.ts.map +1 -0
  448. package/dist/services/skill-feedback-store.js +795 -0
  449. package/dist/services/skill-feedback-store.js.map +1 -0
  450. package/dist/services/skill-registry-store.d.ts +23 -0
  451. package/dist/services/skill-registry-store.d.ts.map +1 -1
  452. package/dist/services/skill-registry-store.js +93 -7
  453. package/dist/services/skill-registry-store.js.map +1 -1
  454. package/dist/services/structured-bridge-clis.d.ts +13 -4
  455. package/dist/services/structured-bridge-clis.d.ts.map +1 -1
  456. package/dist/services/structured-bridge-clis.js +13 -3
  457. package/dist/services/structured-bridge-clis.js.map +1 -1
  458. package/dist/services/team-store.d.ts +4 -0
  459. package/dist/services/team-store.d.ts.map +1 -1
  460. package/dist/services/team-store.js +16 -0
  461. package/dist/services/team-store.js.map +1 -1
  462. package/dist/services/traex-transcript.d.ts +32 -4
  463. package/dist/services/traex-transcript.d.ts.map +1 -1
  464. package/dist/services/traex-transcript.js +116 -8
  465. package/dist/services/traex-transcript.js.map +1 -1
  466. package/dist/services/trigger-types.d.ts +1 -1
  467. package/dist/services/trigger-types.d.ts.map +1 -1
  468. package/dist/services/trigger-types.js +2 -2
  469. package/dist/services/trigger-types.js.map +1 -1
  470. package/dist/services/turn-completion-events.d.ts +57 -0
  471. package/dist/services/turn-completion-events.d.ts.map +1 -0
  472. package/dist/services/turn-completion-events.js +179 -0
  473. package/dist/services/turn-completion-events.js.map +1 -0
  474. package/dist/services/vc-meeting-consumer-isolation.d.ts +21 -12
  475. package/dist/services/vc-meeting-consumer-isolation.d.ts.map +1 -1
  476. package/dist/services/vc-meeting-consumer-isolation.js +25 -19
  477. package/dist/services/vc-meeting-consumer-isolation.js.map +1 -1
  478. package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts +8 -2
  479. package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts.map +1 -1
  480. package/dist/services/vc-meeting-consumer-profile-bootstrap.js +18 -10
  481. package/dist/services/vc-meeting-consumer-profile-bootstrap.js.map +1 -1
  482. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  483. package/dist/setup/bot-config-editor.js +6 -0
  484. package/dist/setup/bot-config-editor.js.map +1 -1
  485. package/dist/setup/cli-availability.d.ts +2 -1
  486. package/dist/setup/cli-availability.d.ts.map +1 -1
  487. package/dist/setup/cli-availability.js +2 -1
  488. package/dist/setup/cli-availability.js.map +1 -1
  489. package/dist/setup/cli-selection.d.ts +8 -0
  490. package/dist/setup/cli-selection.d.ts.map +1 -1
  491. package/dist/setup/cli-selection.js +31 -0
  492. package/dist/setup/cli-selection.js.map +1 -1
  493. package/dist/setup/ensure-fonts.d.ts +5 -0
  494. package/dist/setup/ensure-fonts.d.ts.map +1 -1
  495. package/dist/setup/ensure-fonts.js +26 -1
  496. package/dist/setup/ensure-fonts.js.map +1 -1
  497. package/dist/setup/lark-scopes.json +3 -1
  498. package/dist/setup/open-platform-automation.d.ts +1 -1
  499. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  500. package/dist/setup/open-platform-automation.js +15 -3
  501. package/dist/setup/open-platform-automation.js.map +1 -1
  502. package/dist/skills/definitions.d.ts +1 -1
  503. package/dist/skills/definitions.d.ts.map +1 -1
  504. package/dist/skills/definitions.js +9 -2
  505. package/dist/skills/definitions.js.map +1 -1
  506. package/dist/types.d.ts +11 -4
  507. package/dist/types.d.ts.map +1 -1
  508. package/dist/utils/bot-routing.d.ts +1 -1
  509. package/dist/utils/bot-routing.d.ts.map +1 -1
  510. package/dist/utils/bot-routing.js.map +1 -1
  511. package/dist/utils/user-token.d.ts +38 -0
  512. package/dist/utils/user-token.d.ts.map +1 -1
  513. package/dist/utils/user-token.js +76 -1
  514. package/dist/utils/user-token.js.map +1 -1
  515. package/dist/utils/web-terminal-scroll.d.ts +27 -0
  516. package/dist/utils/web-terminal-scroll.d.ts.map +1 -0
  517. package/dist/utils/web-terminal-scroll.js +60 -0
  518. package/dist/utils/web-terminal-scroll.js.map +1 -0
  519. package/dist/vc-agent/polling-source.d.ts +70 -0
  520. package/dist/vc-agent/polling-source.d.ts.map +1 -1
  521. package/dist/vc-agent/polling-source.js +115 -0
  522. package/dist/vc-agent/polling-source.js.map +1 -1
  523. package/dist/worker.js +469 -86
  524. package/dist/worker.js.map +1 -1
  525. package/dist/workflows/definition.d.ts +22 -22
  526. package/dist/workflows/events/payloads.d.ts +8 -8
  527. package/dist/workflows/events/schema.d.ts +20 -20
  528. package/dist/workflows/migration/v2-run-archive-schema.d.ts +20 -20
  529. package/package.json +5 -1
  530. package/dist/dashboard-web/chunks/bot-defaults-page-NQJFJ45Z.js +0 -10
  531. package/dist/dashboard-web/chunks/chunk-KEEYQ3WF.js +0 -1
  532. package/dist/dashboard-web/chunks/connectors-page-HADHZXXZ.js +0 -1
  533. package/dist/dashboard-web/chunks/groups-page-5TYF46RS.js +0 -8
  534. package/dist/dashboard-web/chunks/monitoring-page-LBU7TTTW.js +0 -2
  535. package/dist/dashboard-web/chunks/office-page-DF6RRBMN.js +0 -1
  536. package/dist/dashboard-web/chunks/overview-page-ZB6QH2EX.js +0 -1
  537. package/dist/dashboard-web/chunks/roles-page-ZBZGHIIF.js +0 -1
  538. package/dist/dashboard-web/chunks/schedules-page-NQVQC3QY.js +0 -1
  539. package/dist/dashboard-web/chunks/settings-page-E7NN4NVQ.js +0 -2
  540. package/dist/dashboard-web/chunks/team-federation-page-VGWL53AE.js +0 -1
  541. package/dist/dashboard-web/chunks/whiteboards-page-BNWUU4KG.js +0 -1
@@ -0,0 +1,10 @@
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};
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
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};