botmux 3.7.1 → 3.8.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 (622) hide show
  1. package/dist/.runtime-build-id +1 -1
  2. package/dist/adapters/backend/capabilities.d.ts +17 -0
  3. package/dist/adapters/backend/capabilities.d.ts.map +1 -0
  4. package/dist/adapters/backend/capabilities.js +22 -0
  5. package/dist/adapters/backend/capabilities.js.map +1 -0
  6. package/dist/adapters/backend/critical-control-key.d.ts +19 -0
  7. package/dist/adapters/backend/critical-control-key.d.ts.map +1 -0
  8. package/dist/adapters/backend/critical-control-key.js +34 -0
  9. package/dist/adapters/backend/critical-control-key.js.map +1 -0
  10. package/dist/adapters/backend/herdr-backend.d.ts +9 -0
  11. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/herdr-backend.js +23 -4
  13. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  14. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  15. package/dist/adapters/backend/riff-backend.js +3 -2
  16. package/dist/adapters/backend/riff-backend.js.map +1 -1
  17. package/dist/adapters/backend/session-backend-selector.d.ts +61 -6
  18. package/dist/adapters/backend/session-backend-selector.d.ts.map +1 -1
  19. package/dist/adapters/backend/session-backend-selector.js +173 -9
  20. package/dist/adapters/backend/session-backend-selector.js.map +1 -1
  21. package/dist/adapters/backend/tmux-backend.d.ts +10 -3
  22. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  23. package/dist/adapters/backend/tmux-backend.js +25 -8
  24. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  25. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  26. package/dist/adapters/backend/tmux-pipe-backend.js +3 -2
  27. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  28. package/dist/adapters/backend/types.d.ts +45 -4
  29. package/dist/adapters/backend/types.d.ts.map +1 -1
  30. package/dist/adapters/backend/types.js +11 -0
  31. package/dist/adapters/backend/types.js.map +1 -1
  32. package/dist/adapters/backend/zellij-backend.d.ts.map +1 -1
  33. package/dist/adapters/backend/zellij-backend.js +3 -2
  34. package/dist/adapters/backend/zellij-backend.js.map +1 -1
  35. package/dist/adapters/backend/zmx-backend.d.ts +286 -0
  36. package/dist/adapters/backend/zmx-backend.d.ts.map +1 -0
  37. package/dist/adapters/backend/zmx-backend.js +2396 -0
  38. package/dist/adapters/backend/zmx-backend.js.map +1 -0
  39. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  40. package/dist/adapters/cli/claude-code.js +3 -0
  41. package/dist/adapters/cli/claude-code.js.map +1 -1
  42. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  43. package/dist/adapters/cli/codex-app.js +5 -1
  44. package/dist/adapters/cli/codex-app.js.map +1 -1
  45. package/dist/adapters/cli/codex.d.ts.map +1 -1
  46. package/dist/adapters/cli/codex.js +26 -1
  47. package/dist/adapters/cli/codex.js.map +1 -1
  48. package/dist/adapters/cli/fs-policy.d.ts +79 -1
  49. package/dist/adapters/cli/fs-policy.d.ts.map +1 -1
  50. package/dist/adapters/cli/fs-policy.js +290 -13
  51. package/dist/adapters/cli/fs-policy.js.map +1 -1
  52. package/dist/adapters/cli/grok.d.ts.map +1 -1
  53. package/dist/adapters/cli/grok.js +4 -1
  54. package/dist/adapters/cli/grok.js.map +1 -1
  55. package/dist/adapters/cli/oh-my-pi.d.ts.map +1 -1
  56. package/dist/adapters/cli/oh-my-pi.js +5 -3
  57. package/dist/adapters/cli/oh-my-pi.js.map +1 -1
  58. package/dist/adapters/cli/shared-hints.d.ts +7 -4
  59. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  60. package/dist/adapters/cli/shared-hints.js +52 -35
  61. package/dist/adapters/cli/shared-hints.js.map +1 -1
  62. package/dist/adapters/cli/strict-input-handle.d.ts +13 -0
  63. package/dist/adapters/cli/strict-input-handle.d.ts.map +1 -0
  64. package/dist/adapters/cli/strict-input-handle.js +39 -0
  65. package/dist/adapters/cli/strict-input-handle.js.map +1 -0
  66. package/dist/adapters/cli/traex.d.ts.map +1 -1
  67. package/dist/adapters/cli/traex.js +6 -4
  68. package/dist/adapters/cli/traex.js.map +1 -1
  69. package/dist/adapters/cli/types.d.ts +16 -0
  70. package/dist/adapters/cli/types.d.ts.map +1 -1
  71. package/dist/bot-registry.d.ts +137 -8
  72. package/dist/bot-registry.d.ts.map +1 -1
  73. package/dist/bot-registry.js +298 -12
  74. package/dist/bot-registry.js.map +1 -1
  75. package/dist/cli/session-list-liveness.d.ts +1 -1
  76. package/dist/cli/session-list-liveness.js +1 -1
  77. package/dist/cli/zmx-managed-attach.d.ts +41 -0
  78. package/dist/cli/zmx-managed-attach.d.ts.map +1 -0
  79. package/dist/cli/zmx-managed-attach.js +72 -0
  80. package/dist/cli/zmx-managed-attach.js.map +1 -0
  81. package/dist/cli.d.ts.map +1 -1
  82. package/dist/cli.js +780 -131
  83. package/dist/cli.js.map +1 -1
  84. package/dist/codex-app-runner.js +90 -2
  85. package/dist/codex-app-runner.js.map +1 -1
  86. package/dist/codex-rpc-engine.d.ts.map +1 -1
  87. package/dist/codex-rpc-engine.js +22 -6
  88. package/dist/codex-rpc-engine.js.map +1 -1
  89. package/dist/config.d.ts +5 -0
  90. package/dist/config.d.ts.map +1 -1
  91. package/dist/config.js +29 -1
  92. package/dist/config.js.map +1 -1
  93. package/dist/core/ask-broker.d.ts +22 -1
  94. package/dist/core/ask-broker.d.ts.map +1 -1
  95. package/dist/core/ask-broker.js +12 -5
  96. package/dist/core/ask-broker.js.map +1 -1
  97. package/dist/core/botmux-wrapper.d.ts +18 -0
  98. package/dist/core/botmux-wrapper.d.ts.map +1 -1
  99. package/dist/core/botmux-wrapper.js +25 -1
  100. package/dist/core/botmux-wrapper.js.map +1 -1
  101. package/dist/core/chat-rename.d.ts +27 -0
  102. package/dist/core/chat-rename.d.ts.map +1 -0
  103. package/dist/core/chat-rename.js +53 -0
  104. package/dist/core/chat-rename.js.map +1 -0
  105. package/dist/core/command-handler.d.ts.map +1 -1
  106. package/dist/core/command-handler.js +160 -12
  107. package/dist/core/command-handler.js.map +1 -1
  108. package/dist/core/cost-calculator.d.ts +25 -1
  109. package/dist/core/cost-calculator.d.ts.map +1 -1
  110. package/dist/core/cost-calculator.js +102 -4
  111. package/dist/core/cost-calculator.js.map +1 -1
  112. package/dist/core/dashboard-ipc-server.d.ts +16 -2
  113. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  114. package/dist/core/dashboard-ipc-server.js +611 -62
  115. package/dist/core/dashboard-ipc-server.js.map +1 -1
  116. package/dist/core/dashboard-rows.d.ts +22 -1
  117. package/dist/core/dashboard-rows.d.ts.map +1 -1
  118. package/dist/core/dashboard-rows.js +61 -0
  119. package/dist/core/dashboard-rows.js.map +1 -1
  120. package/dist/core/dashboard-url.d.ts +6 -0
  121. package/dist/core/dashboard-url.d.ts.map +1 -1
  122. package/dist/core/dashboard-url.js +11 -1
  123. package/dist/core/dashboard-url.js.map +1 -1
  124. package/dist/core/device-isolation-daemon.d.ts +28 -6
  125. package/dist/core/device-isolation-daemon.d.ts.map +1 -1
  126. package/dist/core/device-isolation-daemon.js +96 -13
  127. package/dist/core/device-isolation-daemon.js.map +1 -1
  128. package/dist/core/host-overload-alert.d.ts +75 -0
  129. package/dist/core/host-overload-alert.d.ts.map +1 -1
  130. package/dist/core/host-overload-alert.js +103 -0
  131. package/dist/core/host-overload-alert.js.map +1 -1
  132. package/dist/core/idle-worker-sweeper.js +1 -1
  133. package/dist/core/idle-worker-sweeper.js.map +1 -1
  134. package/dist/core/inflight-input-tracker.d.ts +3 -0
  135. package/dist/core/inflight-input-tracker.d.ts.map +1 -1
  136. package/dist/core/inflight-input-tracker.js +9 -0
  137. package/dist/core/inflight-input-tracker.js.map +1 -1
  138. package/dist/core/passthrough-commands.d.ts.map +1 -1
  139. package/dist/core/passthrough-commands.js +10 -0
  140. package/dist/core/passthrough-commands.js.map +1 -1
  141. package/dist/core/persistent-backend.d.ts +32 -4
  142. package/dist/core/persistent-backend.d.ts.map +1 -1
  143. package/dist/core/persistent-backend.js +75 -6
  144. package/dist/core/persistent-backend.js.map +1 -1
  145. package/dist/core/plugins/mcp/gateway.js +2 -2
  146. package/dist/core/plugins/mcp/gateway.js.map +1 -1
  147. package/dist/core/plugins/runtime.d.ts +3 -0
  148. package/dist/core/plugins/runtime.d.ts.map +1 -1
  149. package/dist/core/plugins/runtime.js.map +1 -1
  150. package/dist/core/plugins/service-manager.d.ts +4 -1
  151. package/dist/core/plugins/service-manager.d.ts.map +1 -1
  152. package/dist/core/plugins/service-manager.js +11 -6
  153. package/dist/core/plugins/service-manager.js.map +1 -1
  154. package/dist/core/role-library.d.ts +48 -1
  155. package/dist/core/role-library.d.ts.map +1 -1
  156. package/dist/core/role-library.js +111 -3
  157. package/dist/core/role-library.js.map +1 -1
  158. package/dist/core/role-resolver.d.ts +14 -2
  159. package/dist/core/role-resolver.d.ts.map +1 -1
  160. package/dist/core/role-resolver.js +47 -4
  161. package/dist/core/role-resolver.js.map +1 -1
  162. package/dist/core/session-activity.d.ts +14 -0
  163. package/dist/core/session-activity.d.ts.map +1 -1
  164. package/dist/core/session-activity.js +46 -1
  165. package/dist/core/session-activity.js.map +1 -1
  166. package/dist/core/session-board.d.ts +5 -2
  167. package/dist/core/session-board.d.ts.map +1 -1
  168. package/dist/core/session-board.js +5 -2
  169. package/dist/core/session-board.js.map +1 -1
  170. package/dist/core/session-liveness.d.ts +6 -5
  171. package/dist/core/session-liveness.d.ts.map +1 -1
  172. package/dist/core/session-liveness.js +34 -13
  173. package/dist/core/session-liveness.js.map +1 -1
  174. package/dist/core/session-manager.d.ts +3 -2
  175. package/dist/core/session-manager.d.ts.map +1 -1
  176. package/dist/core/session-manager.js +397 -103
  177. package/dist/core/session-manager.js.map +1 -1
  178. package/dist/core/session-marker.d.ts +11 -2
  179. package/dist/core/session-marker.d.ts.map +1 -1
  180. package/dist/core/session-marker.js +50 -11
  181. package/dist/core/session-marker.js.map +1 -1
  182. package/dist/core/session-message-preview.d.ts +20 -0
  183. package/dist/core/session-message-preview.d.ts.map +1 -0
  184. package/dist/core/session-message-preview.js +188 -0
  185. package/dist/core/session-message-preview.js.map +1 -0
  186. package/dist/core/session-title.d.ts +5 -1
  187. package/dist/core/session-title.d.ts.map +1 -1
  188. package/dist/core/session-title.js +20 -3
  189. package/dist/core/session-title.js.map +1 -1
  190. package/dist/core/startup-commands.d.ts +1 -1
  191. package/dist/core/startup-commands.js +1 -1
  192. package/dist/core/terminal-url.d.ts.map +1 -1
  193. package/dist/core/terminal-url.js +3 -2
  194. package/dist/core/terminal-url.js.map +1 -1
  195. package/dist/core/trigger-session.d.ts.map +1 -1
  196. package/dist/core/trigger-session.js +75 -12
  197. package/dist/core/trigger-session.js.map +1 -1
  198. package/dist/core/types.d.ts +35 -0
  199. package/dist/core/types.d.ts.map +1 -1
  200. package/dist/core/types.js +23 -0
  201. package/dist/core/types.js.map +1 -1
  202. package/dist/core/worker-ipc.d.ts +11 -0
  203. package/dist/core/worker-ipc.d.ts.map +1 -0
  204. package/dist/core/worker-ipc.js +26 -0
  205. package/dist/core/worker-ipc.js.map +1 -0
  206. package/dist/core/worker-pool.d.ts +179 -29
  207. package/dist/core/worker-pool.d.ts.map +1 -1
  208. package/dist/core/worker-pool.js +2118 -331
  209. package/dist/core/worker-pool.js.map +1 -1
  210. package/dist/daemon.d.ts +132 -3
  211. package/dist/daemon.d.ts.map +1 -1
  212. package/dist/daemon.js +1327 -449
  213. package/dist/daemon.js.map +1 -1
  214. package/dist/dashboard/auth.d.ts +2 -0
  215. package/dist/dashboard/auth.d.ts.map +1 -1
  216. package/dist/dashboard/auth.js +9 -0
  217. package/dist/dashboard/auth.js.map +1 -1
  218. package/dist/dashboard/bot-payload.d.ts +4 -0
  219. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  220. package/dist/dashboard/bot-payload.js +5 -0
  221. package/dist/dashboard/bot-payload.js.map +1 -1
  222. package/dist/dashboard/federation-api.d.ts.map +1 -1
  223. package/dist/dashboard/federation-api.js +4 -0
  224. package/dist/dashboard/federation-api.js.map +1 -1
  225. package/dist/dashboard/federation-spoke-api.d.ts.map +1 -1
  226. package/dist/dashboard/federation-spoke-api.js +32 -5
  227. package/dist/dashboard/federation-spoke-api.js.map +1 -1
  228. package/dist/dashboard/public-redact.d.ts +8 -2
  229. package/dist/dashboard/public-redact.d.ts.map +1 -1
  230. package/dist/dashboard/public-redact.js +34 -7
  231. package/dist/dashboard/public-redact.js.map +1 -1
  232. package/dist/dashboard/session-card-model.d.ts.map +1 -1
  233. package/dist/dashboard/session-card-model.js +10 -2
  234. package/dist/dashboard/session-card-model.js.map +1 -1
  235. package/dist/dashboard/settings-write-applier.d.ts +35 -1
  236. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  237. package/dist/dashboard/settings-write-applier.js +88 -1
  238. package/dist/dashboard/settings-write-applier.js.map +1 -1
  239. package/dist/dashboard/web/app.d.ts.map +1 -1
  240. package/dist/dashboard/web/app.js +0 -1
  241. package/dist/dashboard/web/app.js.map +1 -1
  242. package/dist/dashboard/web/bot-defaults-page.d.ts +15 -0
  243. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  244. package/dist/dashboard/web/bot-defaults-page.js +212 -58
  245. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  246. package/dist/dashboard/web/bot-defaults.d.ts +3 -0
  247. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  248. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  249. package/dist/dashboard/web/bot-onboarding.d.ts +2 -1
  250. package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
  251. package/dist/dashboard/web/bot-onboarding.js.map +1 -1
  252. package/dist/dashboard/web/clipboard.d.ts +2 -0
  253. package/dist/dashboard/web/clipboard.d.ts.map +1 -0
  254. package/dist/dashboard/web/clipboard.js +42 -0
  255. package/dist/dashboard/web/clipboard.js.map +1 -0
  256. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  257. package/dist/dashboard/web/connectors-page.js +12 -8
  258. package/dist/dashboard/web/connectors-page.js.map +1 -1
  259. package/dist/dashboard/web/dashboard-components.d.ts +17 -16
  260. package/dist/dashboard/web/dashboard-components.d.ts.map +1 -1
  261. package/dist/dashboard/web/dashboard-components.js.map +1 -1
  262. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  263. package/dist/dashboard/web/groups-page.js +7 -3
  264. package/dist/dashboard/web/groups-page.js.map +1 -1
  265. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  266. package/dist/dashboard/web/i18n.js +205 -12
  267. package/dist/dashboard/web/i18n.js.map +1 -1
  268. package/dist/dashboard/web/icon-tooltip.d.ts.map +1 -1
  269. package/dist/dashboard/web/icon-tooltip.js +16 -1
  270. package/dist/dashboard/web/icon-tooltip.js.map +1 -1
  271. package/dist/dashboard/web/listener-filters.d.ts +23 -0
  272. package/dist/dashboard/web/listener-filters.d.ts.map +1 -0
  273. package/dist/dashboard/web/listener-filters.js +36 -0
  274. package/dist/dashboard/web/listener-filters.js.map +1 -0
  275. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  276. package/dist/dashboard/web/overview-page.js.map +1 -1
  277. package/dist/dashboard/web/plugin-page.d.ts.map +1 -1
  278. package/dist/dashboard/web/plugin-page.js.map +1 -1
  279. package/dist/dashboard/web/preview-markdown.d.ts +5 -0
  280. package/dist/dashboard/web/preview-markdown.d.ts.map +1 -0
  281. package/dist/dashboard/web/preview-markdown.js +52 -0
  282. package/dist/dashboard/web/preview-markdown.js.map +1 -0
  283. package/dist/dashboard/web/roles-page.d.ts.map +1 -1
  284. package/dist/dashboard/web/roles-page.js +535 -10
  285. package/dist/dashboard/web/roles-page.js.map +1 -1
  286. package/dist/dashboard/web/roles.d.ts +77 -0
  287. package/dist/dashboard/web/roles.d.ts.map +1 -1
  288. package/dist/dashboard/web/roles.js +98 -0
  289. package/dist/dashboard/web/roles.js.map +1 -1
  290. package/dist/dashboard/web/session-terminal.d.ts.map +1 -1
  291. package/dist/dashboard/web/session-terminal.js +6 -4
  292. package/dist/dashboard/web/session-terminal.js.map +1 -1
  293. package/dist/dashboard/web/sessions-kanban.d.ts +4 -1
  294. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
  295. package/dist/dashboard/web/sessions-kanban.js +1 -1
  296. package/dist/dashboard/web/sessions-kanban.js.map +1 -1
  297. package/dist/dashboard/web/sessions-page.d.ts +3 -2
  298. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  299. package/dist/dashboard/web/sessions-page.js +163 -28
  300. package/dist/dashboard/web/sessions-page.js.map +1 -1
  301. package/dist/dashboard/web/sessions.d.ts +25 -0
  302. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  303. package/dist/dashboard/web/sessions.js +58 -7
  304. package/dist/dashboard/web/sessions.js.map +1 -1
  305. package/dist/dashboard/web/settings-page.d.ts +28 -3
  306. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  307. package/dist/dashboard/web/settings-page.js +61 -1
  308. package/dist/dashboard/web/settings-page.js.map +1 -1
  309. package/dist/dashboard/web/skills-page.d.ts +6 -5
  310. package/dist/dashboard/web/skills-page.d.ts.map +1 -1
  311. package/dist/dashboard/web/skills-page.js +2 -0
  312. package/dist/dashboard/web/skills-page.js.map +1 -1
  313. package/dist/dashboard/web/v3-components.d.ts +3 -2
  314. package/dist/dashboard/web/v3-components.d.ts.map +1 -1
  315. package/dist/dashboard/web/v3-components.js.map +1 -1
  316. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts +12 -2
  317. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
  318. package/dist/dashboard/web/vc-consumer-profiles-section.js +0 -9
  319. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
  320. package/dist/dashboard/web/webhook-logs-page.d.ts +2 -1
  321. package/dist/dashboard/web/webhook-logs-page.d.ts.map +1 -1
  322. package/dist/dashboard/web/webhook-logs-page.js +4 -1
  323. package/dist/dashboard/web/webhook-logs-page.js.map +1 -1
  324. package/dist/dashboard-web/app.js +1 -1
  325. package/dist/dashboard-web/chunks/bot-defaults-page-FAPIMQV3.js +10 -0
  326. package/dist/dashboard-web/chunks/{chunk-QFMH6ITB.js → chunk-5CJMHTT4.js} +1 -1
  327. package/dist/dashboard-web/chunks/{chunk-KQB42ML5.js → chunk-DLZK52JU.js} +14 -12
  328. package/dist/dashboard-web/chunks/chunk-FDZ7WOBW.js +16 -0
  329. package/dist/dashboard-web/chunks/{chunk-3QAUJXAS.js → chunk-GTAJV5YC.js} +1 -1
  330. package/dist/dashboard-web/chunks/{chunk-FNPGOZMX.js → chunk-IHNG6KE6.js} +1 -1
  331. package/dist/dashboard-web/chunks/{chunk-FLGXZJTD.js → chunk-VA6QWSGQ.js} +1 -1
  332. package/dist/dashboard-web/chunks/chunk-XJ7BGPJH.js +1 -0
  333. package/dist/dashboard-web/chunks/chunk-ZJVTGU5X.js +1 -0
  334. package/dist/dashboard-web/chunks/connectors-page-LKWRT3GS.js +1 -0
  335. package/dist/dashboard-web/chunks/groups-page-V6654ICQ.js +8 -0
  336. package/dist/dashboard-web/chunks/insights-page-237RMFQ5.js +7 -0
  337. package/dist/dashboard-web/chunks/{monitor-room-7IVIS75W.js → monitor-room-OO5Y4FRQ.js} +1 -1
  338. package/dist/dashboard-web/chunks/{monitoring-page-5SSJRQZF.js → monitoring-page-OUEITM5P.js} +1 -1
  339. package/dist/dashboard-web/chunks/{office-page-EOND3L5D.js → office-page-4KNAHQ4Q.js} +1 -1
  340. package/dist/dashboard-web/chunks/{overview-page-NISBVBBJ.js → overview-page-QDP4YK2S.js} +1 -1
  341. package/dist/dashboard-web/chunks/{plugin-page-JXC5F5YV.js → plugin-page-VEGTCEAS.js} +1 -1
  342. package/dist/dashboard-web/chunks/roles-page-PGXNZZNP.js +1 -0
  343. package/dist/dashboard-web/chunks/{schedules-page-AVOOKLUH.js → schedules-page-BJNC5TID.js} +1 -1
  344. package/dist/dashboard-web/chunks/sessions-page-M2ZYYCMO.js +6 -0
  345. package/dist/dashboard-web/chunks/settings-page-IJFZKUUW.js +2 -0
  346. package/dist/dashboard-web/chunks/{skills-page-5MW54PCC.js → skills-page-YRAIRZOQ.js} +3 -3
  347. package/dist/dashboard-web/chunks/{team-federation-page-2SNIMVXI.js → team-federation-page-DEU27GRU.js} +1 -1
  348. package/dist/dashboard-web/chunks/{v3-page-W6SBXXQC.js → v3-page-6KHEW2YL.js} +5 -5
  349. package/dist/dashboard-web/chunks/{whiteboards-page-STC54KTP.js → whiteboards-page-VDECAALH.js} +1 -1
  350. package/dist/dashboard-web/style.css +12545 -11432
  351. package/dist/dashboard.js +215 -36
  352. package/dist/dashboard.js.map +1 -1
  353. package/dist/global-config.d.ts +41 -2
  354. package/dist/global-config.d.ts.map +1 -1
  355. package/dist/global-config.js +47 -0
  356. package/dist/global-config.js.map +1 -1
  357. package/dist/i18n/en.d.ts.map +1 -1
  358. package/dist/i18n/en.js +71 -19
  359. package/dist/i18n/en.js.map +1 -1
  360. package/dist/i18n/zh.d.ts.map +1 -1
  361. package/dist/i18n/zh.js +71 -19
  362. package/dist/i18n/zh.js.map +1 -1
  363. package/dist/im/lark/callback-button-marker.d.ts +34 -0
  364. package/dist/im/lark/callback-button-marker.d.ts.map +1 -0
  365. package/dist/im/lark/callback-button-marker.js +99 -0
  366. package/dist/im/lark/callback-button-marker.js.map +1 -0
  367. package/dist/im/lark/card-builder.d.ts +46 -10
  368. package/dist/im/lark/card-builder.d.ts.map +1 -1
  369. package/dist/im/lark/card-builder.js +299 -78
  370. package/dist/im/lark/card-builder.js.map +1 -1
  371. package/dist/im/lark/card-handler.d.ts +3 -4
  372. package/dist/im/lark/card-handler.d.ts.map +1 -1
  373. package/dist/im/lark/card-handler.js +380 -148
  374. package/dist/im/lark/card-handler.js.map +1 -1
  375. package/dist/im/lark/client.d.ts +24 -1
  376. package/dist/im/lark/client.d.ts.map +1 -1
  377. package/dist/im/lark/client.js +101 -8
  378. package/dist/im/lark/client.js.map +1 -1
  379. package/dist/im/lark/doc-comment.d.ts.map +1 -1
  380. package/dist/im/lark/doc-comment.js +6 -1
  381. package/dist/im/lark/doc-comment.js.map +1 -1
  382. package/dist/im/lark/event-dispatcher.d.ts +115 -3
  383. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  384. package/dist/im/lark/event-dispatcher.js +534 -147
  385. package/dist/im/lark/event-dispatcher.js.map +1 -1
  386. package/dist/im/lark/grant-command.d.ts +16 -12
  387. package/dist/im/lark/grant-command.d.ts.map +1 -1
  388. package/dist/im/lark/grant-command.js +48 -151
  389. package/dist/im/lark/grant-command.js.map +1 -1
  390. package/dist/im/lark/grant-pending.d.ts +12 -4
  391. package/dist/im/lark/grant-pending.d.ts.map +1 -1
  392. package/dist/im/lark/grant-pending.js +31 -8
  393. package/dist/im/lark/grant-pending.js.map +1 -1
  394. package/dist/im/lark/invite-command.d.ts +20 -0
  395. package/dist/im/lark/invite-command.d.ts.map +1 -0
  396. package/dist/im/lark/invite-command.js +239 -0
  397. package/dist/im/lark/invite-command.js.map +1 -0
  398. package/dist/im/lark/md-card.d.ts +66 -4
  399. package/dist/im/lark/md-card.d.ts.map +1 -1
  400. package/dist/im/lark/md-card.js +201 -31
  401. package/dist/im/lark/md-card.js.map +1 -1
  402. package/dist/im/lark/mention-targets.d.ts +43 -0
  403. package/dist/im/lark/mention-targets.d.ts.map +1 -0
  404. package/dist/im/lark/mention-targets.js +190 -0
  405. package/dist/im/lark/mention-targets.js.map +1 -0
  406. package/dist/im/lark/message-parser.d.ts +31 -0
  407. package/dist/im/lark/message-parser.d.ts.map +1 -1
  408. package/dist/im/lark/message-parser.js +305 -32
  409. package/dist/im/lark/message-parser.js.map +1 -1
  410. package/dist/im/lark/reply-card-footer-signature.d.ts +7 -0
  411. package/dist/im/lark/reply-card-footer-signature.d.ts.map +1 -0
  412. package/dist/im/lark/reply-card-footer-signature.js +7 -0
  413. package/dist/im/lark/reply-card-footer-signature.js.map +1 -0
  414. package/dist/im/lark/sessions-card.d.ts.map +1 -1
  415. package/dist/im/lark/sessions-card.js +4 -1
  416. package/dist/im/lark/sessions-card.js.map +1 -1
  417. package/dist/im/lark/substitute-command.d.ts.map +1 -1
  418. package/dist/im/lark/substitute-command.js +8 -0
  419. package/dist/im/lark/substitute-command.js.map +1 -1
  420. package/dist/im/lark/topic-root-context.d.ts +35 -0
  421. package/dist/im/lark/topic-root-context.d.ts.map +1 -0
  422. package/dist/im/lark/topic-root-context.js +37 -0
  423. package/dist/im/lark/topic-root-context.js.map +1 -0
  424. package/dist/im/lark/v3-blocked-card.d.ts.map +1 -1
  425. package/dist/im/lark/v3-blocked-card.js +2 -1
  426. package/dist/im/lark/v3-blocked-card.js.map +1 -1
  427. package/dist/im/lark/v3-gate-card.d.ts.map +1 -1
  428. package/dist/im/lark/v3-gate-card.js +2 -1
  429. package/dist/im/lark/v3-gate-card.js.map +1 -1
  430. package/dist/im/lark/v3-loop-grant-card.d.ts.map +1 -1
  431. package/dist/im/lark/v3-loop-grant-card.js +2 -1
  432. package/dist/im/lark/v3-loop-grant-card.js.map +1 -1
  433. package/dist/im/lark/v3-progress-card.d.ts.map +1 -1
  434. package/dist/im/lark/v3-progress-card.js +2 -1
  435. package/dist/im/lark/v3-progress-card.js.map +1 -1
  436. package/dist/im/lark/v3-revisit-grant-card.d.ts.map +1 -1
  437. package/dist/im/lark/v3-revisit-grant-card.js +2 -1
  438. package/dist/im/lark/v3-revisit-grant-card.js.map +1 -1
  439. package/dist/index-core-only.d.ts +3 -0
  440. package/dist/index-core-only.d.ts.map +1 -0
  441. package/dist/index-core-only.js +107 -0
  442. package/dist/index-core-only.js.map +1 -0
  443. package/dist/services/async-trigger-state.d.ts +8 -0
  444. package/dist/services/async-trigger-state.d.ts.map +1 -1
  445. package/dist/services/async-trigger-state.js +3 -2
  446. package/dist/services/async-trigger-state.js.map +1 -1
  447. package/dist/services/async-trigger-store.d.ts +10 -2
  448. package/dist/services/async-trigger-store.d.ts.map +1 -1
  449. package/dist/services/async-trigger-store.js +3 -2
  450. package/dist/services/async-trigger-store.js.map +1 -1
  451. package/dist/services/backend-availability.d.ts +3 -1
  452. package/dist/services/backend-availability.d.ts.map +1 -1
  453. package/dist/services/backend-availability.js +14 -1
  454. package/dist/services/backend-availability.js.map +1 -1
  455. package/dist/services/backend-type-store.d.ts.map +1 -1
  456. package/dist/services/backend-type-store.js +1 -1
  457. package/dist/services/backend-type-store.js.map +1 -1
  458. package/dist/services/bot-config-store.d.ts.map +1 -1
  459. package/dist/services/bot-config-store.js +2 -1
  460. package/dist/services/bot-config-store.js.map +1 -1
  461. package/dist/services/bridge-fallback-gate.d.ts +14 -1
  462. package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
  463. package/dist/services/bridge-fallback-gate.js +65 -1
  464. package/dist/services/bridge-fallback-gate.js.map +1 -1
  465. package/dist/services/card-prefs-store.d.ts +7 -2
  466. package/dist/services/card-prefs-store.d.ts.map +1 -1
  467. package/dist/services/card-prefs-store.js +30 -4
  468. package/dist/services/card-prefs-store.js.map +1 -1
  469. package/dist/services/codex-app-runner-protocol.d.ts +9 -0
  470. package/dist/services/codex-app-runner-protocol.d.ts.map +1 -1
  471. package/dist/services/codex-app-runner-protocol.js +17 -0
  472. package/dist/services/codex-app-runner-protocol.js.map +1 -1
  473. package/dist/services/codex-app-token-usage.d.ts +93 -0
  474. package/dist/services/codex-app-token-usage.d.ts.map +1 -0
  475. package/dist/services/codex-app-token-usage.js +190 -0
  476. package/dist/services/codex-app-token-usage.js.map +1 -0
  477. package/dist/services/codex-transcript.d.ts +6 -1
  478. package/dist/services/codex-transcript.d.ts.map +1 -1
  479. package/dist/services/codex-transcript.js +103 -32
  480. package/dist/services/codex-transcript.js.map +1 -1
  481. package/dist/services/federation-roster.d.ts +4 -0
  482. package/dist/services/federation-roster.d.ts.map +1 -1
  483. package/dist/services/federation-roster.js +3 -0
  484. package/dist/services/federation-roster.js.map +1 -1
  485. package/dist/services/federation-store.d.ts +6 -0
  486. package/dist/services/federation-store.d.ts.map +1 -1
  487. package/dist/services/federation-store.js.map +1 -1
  488. package/dist/services/grant-policy.d.ts +13 -0
  489. package/dist/services/grant-policy.d.ts.map +1 -0
  490. package/dist/services/grant-policy.js +40 -0
  491. package/dist/services/grant-policy.js.map +1 -0
  492. package/dist/services/grant-store.d.ts +24 -3
  493. package/dist/services/grant-store.d.ts.map +1 -1
  494. package/dist/services/grant-store.js +196 -12
  495. package/dist/services/grant-store.js.map +1 -1
  496. package/dist/services/groups-store.d.ts +36 -0
  497. package/dist/services/groups-store.d.ts.map +1 -1
  498. package/dist/services/groups-store.js +123 -1
  499. package/dist/services/groups-store.js.map +1 -1
  500. package/dist/services/jsonl-cursor.d.ts.map +1 -1
  501. package/dist/services/jsonl-cursor.js +8 -2
  502. package/dist/services/jsonl-cursor.js.map +1 -1
  503. package/dist/services/local-cli-opener.d.ts.map +1 -1
  504. package/dist/services/local-cli-opener.js +32 -0
  505. package/dist/services/local-cli-opener.js.map +1 -1
  506. package/dist/services/message-listener-run-preview-store.d.ts +43 -0
  507. package/dist/services/message-listener-run-preview-store.d.ts.map +1 -0
  508. package/dist/services/message-listener-run-preview-store.js +152 -0
  509. package/dist/services/message-listener-run-preview-store.js.map +1 -0
  510. package/dist/services/message-listener-store.d.ts +26 -0
  511. package/dist/services/message-listener-store.d.ts.map +1 -0
  512. package/dist/services/message-listener-store.js +138 -0
  513. package/dist/services/message-listener-store.js.map +1 -0
  514. package/dist/services/message-listener.d.ts +112 -0
  515. package/dist/services/message-listener.d.ts.map +1 -0
  516. package/dist/services/message-listener.js +391 -0
  517. package/dist/services/message-listener.js.map +1 -0
  518. package/dist/services/overload-alert-migration.d.ts +15 -0
  519. package/dist/services/overload-alert-migration.d.ts.map +1 -0
  520. package/dist/services/overload-alert-migration.js +115 -0
  521. package/dist/services/overload-alert-migration.js.map +1 -0
  522. package/dist/services/send-policy.d.ts +38 -0
  523. package/dist/services/send-policy.d.ts.map +1 -1
  524. package/dist/services/send-policy.js +34 -0
  525. package/dist/services/send-policy.js.map +1 -1
  526. package/dist/services/session-store.d.ts +12 -1
  527. package/dist/services/session-store.d.ts.map +1 -1
  528. package/dist/services/session-store.js +44 -2
  529. package/dist/services/session-store.js.map +1 -1
  530. package/dist/services/skill-registry-store.d.ts.map +1 -1
  531. package/dist/services/skill-registry-store.js +87 -12
  532. package/dist/services/skill-registry-store.js.map +1 -1
  533. package/dist/services/substitute-mode-normalize.d.ts +3 -0
  534. package/dist/services/substitute-mode-normalize.d.ts.map +1 -1
  535. package/dist/services/substitute-mode-normalize.js +8 -0
  536. package/dist/services/substitute-mode-normalize.js.map +1 -1
  537. package/dist/services/substitute-mode-store.d.ts.map +1 -1
  538. package/dist/services/substitute-mode-store.js +8 -1
  539. package/dist/services/substitute-mode-store.js.map +1 -1
  540. package/dist/services/transcript-resolver.d.ts +6 -1
  541. package/dist/services/transcript-resolver.d.ts.map +1 -1
  542. package/dist/services/transcript-resolver.js +145 -29
  543. package/dist/services/transcript-resolver.js.map +1 -1
  544. package/dist/services/trigger-types.d.ts +16 -0
  545. package/dist/services/trigger-types.d.ts.map +1 -1
  546. package/dist/services/trigger-types.js +6 -0
  547. package/dist/services/trigger-types.js.map +1 -1
  548. package/dist/setup/bot-config-editor.js +2 -2
  549. package/dist/setup/bot-config-editor.js.map +1 -1
  550. package/dist/setup/ensure-zmx.d.ts +31 -0
  551. package/dist/setup/ensure-zmx.d.ts.map +1 -0
  552. package/dist/setup/ensure-zmx.js +161 -0
  553. package/dist/setup/ensure-zmx.js.map +1 -0
  554. package/dist/setup/index.d.ts +1 -1
  555. package/dist/setup/index.js +1 -1
  556. package/dist/setup/open-platform-automation.d.ts +9 -0
  557. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  558. package/dist/setup/open-platform-automation.js +15 -2
  559. package/dist/setup/open-platform-automation.js.map +1 -1
  560. package/dist/setup/setup-args.d.ts +1 -1
  561. package/dist/setup/setup-args.d.ts.map +1 -1
  562. package/dist/setup/setup-args.js +1 -1
  563. package/dist/skills/definitions.d.ts.map +1 -1
  564. package/dist/skills/definitions.js +32 -0
  565. package/dist/skills/definitions.js.map +1 -1
  566. package/dist/skills/injection-mode.d.ts +6 -2
  567. package/dist/skills/injection-mode.d.ts.map +1 -1
  568. package/dist/skills/injection-mode.js +10 -5
  569. package/dist/skills/injection-mode.js.map +1 -1
  570. package/dist/types.d.ts +79 -3
  571. package/dist/types.d.ts.map +1 -1
  572. package/dist/utils/child-env.d.ts +1 -1
  573. package/dist/utils/child-env.d.ts.map +1 -1
  574. package/dist/utils/child-env.js +4 -0
  575. package/dist/utils/child-env.js.map +1 -1
  576. package/dist/utils/effort-confirm-dialog.d.ts +40 -0
  577. package/dist/utils/effort-confirm-dialog.d.ts.map +1 -0
  578. package/dist/utils/effort-confirm-dialog.js +74 -0
  579. package/dist/utils/effort-confirm-dialog.js.map +1 -0
  580. package/dist/utils/pending-input-queue.d.ts +56 -0
  581. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  582. package/dist/utils/pending-input-queue.js +80 -0
  583. package/dist/utils/pending-input-queue.js.map +1 -1
  584. package/dist/utils/render-dimensions.d.ts +8 -0
  585. package/dist/utils/render-dimensions.d.ts.map +1 -1
  586. package/dist/utils/render-dimensions.js +10 -0
  587. package/dist/utils/render-dimensions.js.map +1 -1
  588. package/dist/utils/stuck-key-guard.d.ts +3 -2
  589. package/dist/utils/stuck-key-guard.d.ts.map +1 -1
  590. package/dist/utils/stuck-key-guard.js +3 -3
  591. package/dist/utils/stuck-key-guard.js.map +1 -1
  592. package/dist/utils/terminal-renderer.d.ts +6 -0
  593. package/dist/utils/terminal-renderer.d.ts.map +1 -1
  594. package/dist/utils/terminal-renderer.js +15 -0
  595. package/dist/utils/terminal-renderer.js.map +1 -1
  596. package/dist/utils/tui-input-delivery.d.ts +32 -0
  597. package/dist/utils/tui-input-delivery.d.ts.map +1 -0
  598. package/dist/utils/tui-input-delivery.js +53 -0
  599. package/dist/utils/tui-input-delivery.js.map +1 -0
  600. package/dist/utils/xml.d.ts +19 -0
  601. package/dist/utils/xml.d.ts.map +1 -0
  602. package/dist/utils/xml.js +26 -0
  603. package/dist/utils/xml.js.map +1 -0
  604. package/dist/worker.js +1852 -374
  605. package/dist/worker.js.map +1 -1
  606. package/dist/workflows/definition.d.ts +8 -8
  607. package/dist/workflows/events/payloads.d.ts +8 -8
  608. package/dist/workflows/events/schema.d.ts +160 -160
  609. package/dist/workflows/v3/session-relay-client.js +1 -1
  610. package/dist/workflows/v3/session-relay-client.js.map +1 -1
  611. package/dist/workflows/v3/worker-fence.d.ts.map +1 -1
  612. package/dist/workflows/v3/worker-fence.js +15 -10
  613. package/dist/workflows/v3/worker-fence.js.map +1 -1
  614. package/package.json +1 -1
  615. package/dist/dashboard-web/chunks/bot-defaults-page-UKA7K4JV.js +0 -10
  616. package/dist/dashboard-web/chunks/chunk-DFLNXQNT.js +0 -1
  617. package/dist/dashboard-web/chunks/connectors-page-A77YAB5Y.js +0 -1
  618. package/dist/dashboard-web/chunks/groups-page-RUZNVXQB.js +0 -8
  619. package/dist/dashboard-web/chunks/insights-page-RF7U7RTA.js +0 -22
  620. package/dist/dashboard-web/chunks/roles-page-BUMKD7Y4.js +0 -1
  621. package/dist/dashboard-web/chunks/sessions-page-6HLSEAB7.js +0 -2
  622. package/dist/dashboard-web/chunks/settings-page-MJDZHQ4X.js +0 -2
@@ -0,0 +1,10 @@
1
+ import{b as At}from"./chunk-IHNG6KE6.js";import{c as O}from"./chunk-VA6QWSGQ.js";import{a as mt,b as nt,c as ct,g as Pt,h as Rt,j as Bt,k as Mt,q as gt}from"./chunk-5CJMHTT4.js";import{B as xt,C as Nt,a as ut,t as Tt,y as st}from"./chunk-DLZK52JU.js";import{a as It}from"./chunk-SYC6D5XU.js";import{a as Yt,d as wt}from"./chunk-5THX4DI2.js";import{c as pt}from"./chunk-7SZRL6FY.js";var s=pt(Yt(),1);var $t=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],lt={options:$t,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function bt(a,e){return typeof a?.cliId=="string"&&a.cliId?a.cliId:e}function ht(a){let e=null;for(let o of ut.sessions.values())o.larkAppId!==a||!o.cliId||(!e||Number(o.lastMessageAt??0)>Number(e.lastMessageAt??0))&&(e=o);return e?.cliId??""}function yt(a,e){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||bt(a,e)||"claude-code"}function vt(a,e){return a.find(o=>o.id===e)}function Ot(a,e){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?e.ttadkModelSuggestions:[]}function Lt(){let a=0;return{begin(){let e=++a;return{commit:()=>e===a}}}}async function Ft(){try{let a=await fetch("/api/bots"),e=await a.json().catch(()=>({}));if(!a.ok){let o=e?.error?`HTTP ${a.status}: ${e.error}${e.path?` (${e.path})`:""}`:`HTTP ${a.status}`;return{bots:[],error:o}}return!e||!Array.isArray(e.bots)?{bots:[],error:"unexpected response shape (no `bots` array)"}:{bots:e.bots,error:null}}catch(a){return{bots:[],error:a?.message??String(a)}}}async function Ut(a,e){try{let o=await fetch(`/api/bots/${encodeURIComponent(a)}/substitute-targets/resolve`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({target:e})}),d=await o.json().catch(()=>({}));return o.ok?{ok:!0,resolution:d?.resolution??{}}:{ok:!1,error:d?.error?`HTTP ${o.status}: ${d.error}`:`HTTP ${o.status}`}}catch(o){return{ok:!1,error:o?.message??String(o)}}}async function jt(){try{let a=await fetch("/api/cli-options"),e=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(e?.options))return lt;let o=e.options.filter(n=>n&&typeof n.id=="string"&&typeof n.label=="string"),d=typeof e.ttadkModelDefault=="string"&&e.ttadkModelDefault.trim()?e.ttadkModelDefault.trim():lt.ttadkModelDefault,r=Array.isArray(e.ttadkModelSuggestions)?e.ttadkModelSuggestions.filter(n=>typeof n=="string"):[];return{options:o.length?o:$t,ttadkModelDefault:d,ttadkModelSuggestions:r}}catch{return lt}}function Gt(a){if(!a)return"\u2014";let e=new Date(a);return Number.isNaN(e.getTime())?"\u2014":e.toLocaleString()}var t=pt(wt(),1),it=["common","sessions","security","cards","advanced"];function te(a){let e=O(),o=(0,s.useRef)([]),d={common:e("botDefaults.tabCommon"),sessions:e("botDefaults.tabSessions"),security:e("botDefaults.tabSecurity"),cards:e("botDefaults.tabCards"),advanced:e("botDefaults.tabAdvanced")};function r(n){let c=(n+it.length)%it.length,l=it[c];a.onChange(l),o.current[c]?.focus()}return(0,t.jsxs)("nav",{className:"bd-tab-bar","aria-label":e("botDefaults.tabNavigation"),children:[(0,t.jsx)("div",{className:"bd-tabs",role:"tablist",children:it.map((n,c)=>(0,t.jsx)("button",{ref:l=>{o.current[c]=l},id:`bd-tab-${n}`,type:"button",role:"tab",className:`bd-tab${a.active===n?" active":""}`,"aria-selected":a.active===n,"aria-controls":`bd-panel-${n}`,tabIndex:a.active===n?0:-1,"data-bd-tab":n,onClick:()=>a.onChange(n),onKeyDown:l=>{l.key==="ArrowRight"?(l.preventDefault(),r(c+1)):l.key==="ArrowLeft"?(l.preventDefault(),r(c-1)):l.key==="Home"?(l.preventDefault(),r(0)):l.key==="End"&&(l.preventDefault(),r(it.length-1))},children:d[n]},n))}),(0,t.jsx)("small",{className:"bd-tab-hint",children:e("botDefaults.tabHint")})]})}var ee=1,Et=14;function rt(a){let e=(0,s.useRef)(null);return(0,s.useEffect)(()=>{let o=e.current;if(!o||typeof window>"u")return;let d=l=>{for(let b of l)b.style.gridColumn="",b.style.gridRowStart="",b.style.gridRowEnd=""},r=()=>{let l=Array.from(o.children).filter(k=>k instanceof HTMLElement);if(!l.length)return;let b=o.clientWidth;if(b<=0)return;let p=(o.closest(".bd-detail")?.clientWidth??b)>=1024?2:1;if(p<2){d(l);return}let u=ee+Et,g=new Array(p).fill(0);for(let k of l){let C=Math.max(1,Math.ceil((k.getBoundingClientRect().height+Et)/u));if(k.classList.contains("bd-tile-wide")){let v=Math.max(...g);k.style.gridColumn="1 / -1",k.style.gridRowStart=String(v+1),k.style.gridRowEnd=String(v+1+C),g.fill(v+C);continue}let h=0;for(let v=1;v<p;v++)g[v]<g[h]&&(h=v);let S=g[h];k.style.gridColumn=String(h+1),k.style.gridRowStart=String(S+1),k.style.gridRowEnd=String(S+1+C),g[h]=S+C}},n=window.requestAnimationFrame(r),c=typeof ResizeObserver<"u"?new ResizeObserver(()=>r()):null;if(c){c.observe(o);for(let l of Array.from(o.children))c.observe(l)}return window.addEventListener("resize",r),()=>{window.cancelAnimationFrame(n),c?.disconnect(),window.removeEventListener("resize",r)}}),(0,t.jsx)("div",{ref:e,className:a.className?`bd-tab-grid ${a.className}`:"bd-tab-grid",children:a.children})}function St(a,e=""){let o=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${e?` ${e}`:""}${o}`}function j(a){return(0,t.jsx)("span",{className:St(a.status),...a.attr??{},children:a.status?.text??""})}function ae(a){let e=typeof a.children=="string"?a.children:void 0;return(0,t.jsx)(Bt,{className:"bd-info-tip",label:e,children:a.children})}function A(a){return(0,t.jsxs)("span",{className:"bd-field-title",children:[(0,t.jsx)("span",{className:"bd-field-title-text",children:a.children}),a.help?(0,t.jsx)(ae,{children:a.help}):null]})}function Z(a){let e=O();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(gt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:mt(a.options,a.value),value:a.value,options:a.options,searchable:a.searchable,searchPlaceholder:a.searchable?e("common.dropdownSearch"):void 0,searchEmptyLabel:a.searchable?e("common.dropdownSearchEmpty"):void 0,onChange:a.onChange}),(0,t.jsx)("input",{type:"hidden","data-input":a.dataInput,value:a.value,readOnly:!0})]})}function Y(a){return(0,t.jsxs)("label",{className:"toggle-row",children:[(0,t.jsx)("input",{type:"checkbox","data-action":a.dataAction,checked:a.checked,disabled:a.disabled,onChange:e=>a.onChange(e.currentTarget.checked)}),(0,t.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,t.jsx)("span",{className:"toggle-tx",children:(0,t.jsx)("strong",{children:(0,t.jsx)(A,{help:a.help,children:a.title})})})]})}async function H(a,e,o){let d=await fetch(e,{method:a,headers:{"content-type":"application/json"},body:o===void 0?void 0:JSON.stringify(o)}),r=await d.json().catch(()=>({}));return{ok:d.ok&&r?.ok!==!1,status:d.status,body:r}}function F(a){let e=typeof a.body?.reason=="string"?a.body.reason:"",o=typeof a.body?.manualCommand=="string"?a.body.manualCommand:"";return e&&o?`${e}\uFF08${o}\uFF09`:String(e||a.body?.error||a.status)}function L(a){return a?.message??String(a)}function zt(a){let e=a.trim();return e?/^[1-9]\d*$/.test(e)?Number(e):"invalid":null}function Ht(a,e){let o=a.trim();return o===""?e:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var Ct=["email","openId","userId","unionId"];function Wt(a){let e=a.split(/[\r\n,,;;]+/).map(o=>o.trim()).filter(Boolean);return[...new Set(e)]}function ot(a){return(a??[]).join(`
2
+ `)}function oe(a){return Ct.find(e=>a?.[e]?.trim())??"email"}function se(a){let e=a.idValue.trim();if(!e)return null;let o={...a.persisted};if(a.persisted[a.idField]!==e||a.originalIdField!=null&&a.originalIdField!==a.idField)for(let n of Ct)delete o[n];o[a.idField]=e;let r=a.name.trim();return r?o.name=r:delete o.name,o}function ne(a,e){return a==null?e("botDefaults.brandStateDefault"):a.trim()===""?e("botDefaults.brandStateOff"):e("botDefaults.brandStateCustom")}function le(a,e){return a==null?e("botDefaults.quotaStateOff"):e("botDefaults.quotaStateOn",{count:a})}function ie(a,e){return a==null?e("botDefaults.maxLiveWorkersStateDefault"):e("botDefaults.maxLiveWorkersStateOn",{count:a})}function re(a,e){return{...a,usageDisplay:e.usageDisplay,disableStreamingCard:e.disableStreamingCard,silentTurnReactions:e.silentTurnReactions,codexAppCleanInput:e.codexAppCleanInput,writableTerminalLinkInCard:e.writableTerminalLinkInCard,privateCard:e.privateCard,botToBotSameDir:e.botToBotSameDir,autoStartOnGroupJoin:e.autoStartOnGroupJoin,autoStartOnGroupJoinPrompt:e.autoStartOnGroupJoinPrompt,autoStartOnNewTopic:e.autoStartOnNewTopic,regularGroupReplyMode:e.regularGroupReplyMode,regularGroupMentionMode:e.regularGroupMentionMode,docSubscribeDefaultMode:e.docSubscribeDefaultMode}}function de(){let a=O(),e=(0,s.useRef)(!0),o=(0,s.useRef)(Lt()),[d,r]=(0,s.useState)([]),[n,c]=(0,s.useState)(lt),[l,b]=(0,s.useState)(null),[i,f]=(0,s.useState)(!0),[p,u]=(0,s.useState)(!1),[g,k]=(0,s.useState)(""),[C,h]=(0,s.useState)(null),[S,v]=(0,s.useState)(0),[,D]=(0,s.useState)(0),[N,P]=(0,s.useState)(!1),[m,_]=(0,s.useState)("common"),G=(0,s.useCallback)(async(B=!1)=>{B&&v(Q=>Q+1);let W=o.current.begin();f(!0);try{let[Q,T]=await Promise.all([Ft(),jt()]);if(!e.current||!W.commit())return;r(Q.bots),b(Q.error),c(T)}finally{e.current&&W.commit()&&f(!1)}},[]);(0,s.useEffect)(()=>{e.current=!0,G(),Nt().then(()=>{e.current&&D(W=>W+1)});let B=ut.onBotsChanged(()=>{e.current&&G()});return()=>{e.current=!1,B()}},[G]);let E=(0,s.useMemo)(()=>{let B=g.trim().toLowerCase();return d.filter(W=>!B||(W.botName??"").toLowerCase().includes(B)||(W.larkAppId??"").toLowerCase().includes(B))},[d,g]);(0,s.useEffect)(()=>{if(!(l||i)){if(E.length===0){C!==null&&h(null);return}(!C||!E.some(B=>B.larkAppId===C))&&h(E[0].larkAppId)}},[E,l,i,C]);let $=C?E.find(B=>B.larkAppId===C)??null:null,z=(0,s.useCallback)((B,W)=>{r(Q=>Q.map(T=>T.larkAppId!==B?T:typeof W=="function"?W(T):{...T,...W}))},[]),V=async()=>{u(!0);try{await G(!0)}finally{e.current&&u(!1)}},K;return i?K=(0,t.jsx)(ct,{label:a("common.loading")}):l?K=(0,t.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",l,(0,t.jsx)("br",{}),"\u5E38\u89C1\u539F\u56E0\uFF1Adashboard / daemon \u8FDB\u7A0B\u8FD8\u5728\u8DD1\u65E7\u4EE3\u7801\uFF0C\u6267\u884C ",(0,t.jsx)("code",{children:"botmux restart"})," \u540E\u5237\u65B0\u3002"]}):E.length===0?K=(0,t.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):$?K=(0,t.jsx)(ce,{bot:$,cliState:n,patchBot:z,activeTab:m,onTabChange:_},`${$.larkAppId}:${S}`):K=null,(0,t.jsxs)("section",{className:"page bot-defaults-page",children:[(0,t.jsxs)("div",{className:"page-heading",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"eyebrow",children:a("nav.botDefaults")}),(0,t.jsx)("h1",{children:a("botDefaults.title")})]}),(0,t.jsxs)("div",{className:"page-heading-actions",children:[(0,t.jsx)(Rt,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:p,disabled:p,onClick:()=>{V()}}),Tt.authed?(0,t.jsx)(Pt,{className:"page-primary-action add-bot-btn",disabled:N,onClick:()=>{P(!0),At().finally(()=>P(!1))},children:a("botOnboarding.add")}):null]})]}),(0,t.jsxs)("div",{className:"bd-layout",children:[(0,t.jsxs)("aside",{id:"bd-roster",className:"bd-roster",children:[(0,t.jsx)("form",{id:"bd-filters",className:"filters dashboard-toolbar",onSubmit:B=>B.preventDefault(),children:(0,t.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:g,onChange:B=>k(B.currentTarget.value)})}),(0,t.jsxs)("div",{className:"bd-roster-meta",children:[(0,t.jsx)("span",{children:a("botDefaults.rosterCount",{count:E.length})}),g.trim()&&E.length!==d.length?(0,t.jsx)("span",{children:a("botDefaults.rosterFiltered",{total:d.length})}):null]}),(0,t.jsx)("div",{className:"bd-roster-list",children:!l&&E.map(B=>(0,t.jsx)(ue,{bot:B,selected:B.larkAppId===C,onSelect:()=>h(B.larkAppId)},B.larkAppId))})]}),(0,t.jsx)("div",{id:"bd-list",className:"bd-detail",children:K})]})]})}function ue(a){let{bot:e}=a,o=e.botName??e.larkAppId,d=bt(e,ht(e.larkAppId));return(0,t.jsxs)("div",{className:`bd-roster-item${a.selected?" on":""}`,"data-appid":e.larkAppId,role:"button",tabIndex:0,onClick:a.onSelect,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),a.onSelect())},children:[(0,t.jsx)(nt,{html:st({name:o,larkAppId:e.larkAppId,size:"sm"})}),(0,t.jsxs)("div",{className:"bd-roster-tx",children:[(0,t.jsx)("b",{children:(0,t.jsx)(Mt,{text:o,showPopover:!1,textClassName:"bd-roster-name"})}),(0,t.jsx)("span",{children:d||e.larkAppId.slice(0,14)})]}),e.defaultOncall?.enabled?(0,t.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function ce(a){let e=O(),{bot:o,cliState:d,patchBot:r}=a,n=o.botName??o.larkAppId,c=bt(o,ht(o.larkAppId)),l=(0,s.useCallback)(async i=>{let f=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/card-prefs`,i);return f.ok&&r(o.larkAppId,p=>re(p,f.body)),f},[o.larkAppId,r]);if(o.error)return(0,t.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,t.jsxs)("header",{className:"bd-profile-head",children:[(0,t.jsx)(nt,{html:st({name:n,larkAppId:o.larkAppId})}),(0,t.jsxs)("div",{className:"bd-profile-id",children:[(0,t.jsx)("strong",{children:n}),(0,t.jsx)("code",{children:o.larkAppId})]})]}),(0,t.jsxs)("p",{className:"hint-warn-inline",children:["\u67E5\u8BE2\u5931\u8D25\uFF1A",o.error]})]});let b=o.defaultOncall??{enabled:!1,workingDir:"",since:0};return(0,t.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,t.jsxs)("div",{className:"bd-profile-chrome",children:[(0,t.jsxs)("header",{className:"bd-profile-head",children:[(0,t.jsx)(pe,{bot:o,name:n,patchBot:r}),(0,t.jsx)("div",{className:"bd-profile-main",children:(0,t.jsx)(me,{bot:o,cli:c,patchBot:r,meta:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("small",{className:"bd-meta-ok",children:["\u25CF ",e("botDefaults.metaOnline")]}),(b.since??0)>0?(0,t.jsxs)("small",{"data-oncall-since":!0,children:[e("botDefaults.lastEnabled"),": ",Gt(b.since??0)]}):null,(o.autoboundChatCount??0)>0?(0,t.jsx)("small",{children:e("botDefaults.autobound",{count:o.autoboundChatCount??0})}):null]})})})]}),(0,t.jsx)(te,{active:a.activeTab,onChange:a.onTabChange})]}),(0,t.jsxs)("div",{className:"bd-body bd-tab-panels",children:[(0,t.jsx)("div",{id:"bd-panel-common",role:"tabpanel","aria-labelledby":"bd-tab-common",className:"bd-tab-panel",hidden:a.activeTab!=="common",children:(0,t.jsxs)(rt,{children:[(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(ge,{bot:o,sessionFallback:c,cliState:d,patchBot:r})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(he,{bot:o,patchBot:r,putCardPref:l})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(xe,{bot:o,patchBot:r})})]})}),(0,t.jsx)("div",{id:"bd-panel-sessions",role:"tabpanel","aria-labelledby":"bd-tab-sessions",className:"bd-tab-panel",hidden:a.activeTab!=="sessions",children:(0,t.jsxs)(rt,{children:[(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Be,{bot:o,patchBot:r,putCardPref:l})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Me,{bot:o,patchBot:r})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Pe,{bot:o,putCardPref:l})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Ae,{bot:o,patchBot:r})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)($e,{bot:o,patchBot:r})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Re,{bot:o,patchBot:r})})]})}),(0,t.jsx)("div",{id:"bd-panel-security",role:"tabpanel","aria-labelledby":"bd-tab-security",className:"bd-tab-panel",hidden:a.activeTab!=="security",children:(0,t.jsxs)(rt,{children:[o.cliId!=="riff"?(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(ve,{bot:o,patchBot:r})}):null,o.cliId!=="riff"&&o.sandbox===!0?(0,t.jsx)("section",{className:"bd-tile bd-tile-wide",children:(0,t.jsx)(Se,{bot:o,patchBot:r})}):null,(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(We,{bot:o,patchBot:r})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Oe,{bot:o,patchBot:r})})]})}),(0,t.jsx)("div",{id:"bd-panel-cards",role:"tabpanel","aria-labelledby":"bd-tab-cards",className:"bd-tab-panel",hidden:a.activeTab!=="cards",children:(0,t.jsxs)(rt,{children:[(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Ie,{bot:o,putCardPref:l})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(He,{bot:o,patchBot:r})})]})}),(0,t.jsx)("div",{id:"bd-panel-advanced",role:"tabpanel","aria-labelledby":"bd-tab-advanced",className:"bd-tab-panel",hidden:a.activeTab!=="advanced",children:(0,t.jsxs)(rt,{children:[o.cliId!=="riff"?(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Te,{bot:o,patchBot:r})}):null,o.cliId==="codex-app"?(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(we,{bot:o,putCardPref:l})}):null,(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(be,{bot:o,patchBot:r})})]})})]})]})}function be(a){let e=O();return(0,t.jsxs)("section",{className:"bd-section bd-runtime-env",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionRuntimeEnv")}),(0,t.jsx)(Le,{bot:a.bot,patchBot:a.patchBot}),(0,t.jsx)(Fe,{bot:a.bot,patchBot:a.patchBot})]})}var ft=512;async function fe(a){let e=await createImageBitmap(a);try{let o=Math.min(e.width,e.height);if(!o)throw new Error("empty image");let d=document.createElement("canvas");d.width=ft,d.height=ft;let r=d.getContext("2d");if(!r)throw new Error("canvas unavailable");let n=(e.width-o)/2,c=(e.height-o)/2;return r.drawImage(e,n,c,o,o,0,0,ft,ft),d.toDataURL("image/png")}finally{e.close()}}function pe(a){let e=O(),{bot:o,name:d,patchBot:r}=a,n=(0,s.useRef)(null),[c,l]=(0,s.useState)(!1),[b,i]=(0,s.useState)(null),[f,p]=(0,s.useState)(!1),[u,g]=(0,s.useState)(!1),k=(0,s.useRef)(null);function C(v,D){let P=["no_session","session_expired","no_access","unsupported_brand"].includes(v)?e(`botDefaults.avatarWarn.${v}`):D||v;return e("botDefaults.avatarFailed",{error:P})}let h=(0,s.useCallback)(async v=>{l(!0),i({text:`\u23F3 ${e("botDefaults.avatarUploading")}`,ok:!0});try{let D=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/avatar`,{imageBase64:v});if(D.ok&&D.body.ok){let N=typeof D.body.avatarUrl=="string"?D.body.avatarUrl:"";N&&xt(o.larkAppId,d,N),r(o.larkAppId,P=>({...P})),k.current=null,p(!1),i({text:`\u2713 ${e("botDefaults.avatarOkFeishu")}`,ok:!0})}else{let N=String(D.body?.error??""),P=typeof D.body?.message=="string"?D.body.message:void 0;i({text:`\u2717 ${C(N,P??F(D))}`});let m=N==="no_session"||N==="session_expired";p(m),m||(k.current=null)}}catch(D){i({text:`\u2717 ${e("botDefaults.avatarFailed",{error:L(D)})}`})}finally{l(!1)}},[o.larkAppId,d,r,e]);async function S(v){if(!v||c)return;l(!0);let D;try{D=await fe(v)}catch{l(!1),i({text:`\u2717 ${e("botDefaults.avatarBadImage")}`});return}k.current=D,await h(D)}return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"bd-profile-avatar bd-avatar-editable","data-avatar-control":!0,children:[(0,t.jsxs)("button",{type:"button",className:"bd-avatar-btn","data-action":"edit-bot-avatar",title:e("botDefaults.avatarTitle"),"aria-label":e("botDefaults.avatarTitle"),disabled:c,onClick:()=>n.current?.click(),children:[(0,t.jsx)(nt,{html:st({name:d,larkAppId:o.larkAppId,dot:"ok"})}),(0,t.jsx)("span",{className:"bd-avatar-edit-badge","aria-hidden":"true",children:c?"\u23F3":"\u270E"})]}),(0,t.jsx)("input",{ref:n,type:"file",accept:"image/*",hidden:!0,"data-input":"botAvatarFile",onChange:v=>{let D=v.currentTarget.files?.[0];v.currentTarget.value="",S(D)}}),u?(0,t.jsx)(Xt,{onClose:()=>g(!1),onSuccess:()=>{p(!1),g(!1),k.current&&h(k.current)}}):null]}),b?(0,t.jsxs)("small",{className:St(b,"bd-avatar-status"),"data-avatar-status":!0,children:[b.text,f?(0,t.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login-avatar",onClick:()=>g(!0),children:e("feishuLogin.entry")}):null]}):null]})}function me(a){let e=O(),{bot:o,cli:d,patchBot:r}=a,n=o.botName??o.larkAppId,[c,l]=(0,s.useState)(!1),[b,i]=(0,s.useState)(n),[f,p]=(0,s.useState)(!1),[u,g]=(0,s.useState)(null),[k,C]=(0,s.useState)(!1),[h,S]=(0,s.useState)(!1);(0,s.useEffect)(()=>{c||i(n)},[c,n]);function v(P){l(P),P&&(i(n),g(null),C(!1))}function D(P,m){let G=["no_session","session_expired","no_access","unsupported_brand"].includes(P)?e(`botDefaults.renameWarn.${P}`):m||P;return e("botDefaults.renameLocalOnly",{reason:G})}let N=(0,s.useCallback)(async()=>{let P=b.trim();if(!P){g({text:`\u2717 ${e("botDefaults.renameEmpty")}`});return}p(!0),g({text:`\u23F3 ${e("botDefaults.renaming")}`,ok:!0});try{let m=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/rename`,{name:P});if(m.ok&&m.body.ok){let _=typeof m.body.botName=="string"&&m.body.botName?m.body.botName:P;r(o.larkAppId,G=>({...G,botName:_,larkBotName:m.body.mode==="feishu"?P:G.larkBotName,displayName:m.body.mode==="feishu"?null:P})),v(!1),m.body.mode==="feishu"?(g({text:`\u2713 ${e("botDefaults.renameOkFeishu")}`,ok:!0}),C(!1)):(g({text:`\u26A0 ${D(String(m.body.warning??""),m.body.message)}`}),C(m.body.warning==="no_session"||m.body.warning==="session_expired"))}else g({text:`\u2717 ${e("botDefaults.renameFailed",{error:F(m)})}`})}catch(m){g({text:`\u2717 ${e("botDefaults.renameFailed",{error:L(m)})}`})}finally{p(!1)}},[o.larkAppId,b,r,e]);return(0,t.jsxs)("div",{className:"bd-profile-id",children:[c?(0,t.jsxs)("span",{className:"bd-name-editor","data-name-editor":!0,children:[(0,t.jsx)("input",{type:"text",className:"bd-name-input","data-input":"botRename",maxLength:64,value:b,disabled:f,autoFocus:!0,onChange:P=>i(P.currentTarget.value),onKeyDown:P=>{P.key==="Enter"?(P.preventDefault(),N()):P.key==="Escape"&&v(!1)}}),(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:f,onClick:()=>{N()},children:e("botDefaults.renameSave")}),(0,t.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:f,onClick:()=>v(!1),children:e("botDefaults.renameCancel")})]}):(0,t.jsxs)("div",{className:"bd-profile-title-row","data-name-row":!0,children:[(0,t.jsxs)("div",{className:"bd-profile-title-content",children:[(0,t.jsx)("strong",{"data-bot-name":!0,children:n}),d?(0,t.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:d}):null,a.meta?(0,t.jsx)("span",{className:"bd-profile-meta bd-meta",children:a.meta}):null]}),(0,t.jsx)("button",{type:"button",className:"bd-name-edit","data-action":"edit-bot-name",title:e("botDefaults.renameTitle"),"aria-label":e("botDefaults.renameTitle"),onClick:()=>v(!0),children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M11.5 2.5l2 2L6 12l-2.5.5L4 10z"})})})]}),(0,t.jsx)("code",{children:o.larkAppId}),(0,t.jsx)("small",{className:St(u,"bd-name-status"),"data-name-status":!0,children:u?.text??""}),(0,t.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login",hidden:!k,onClick:()=>S(!0),children:e("feishuLogin.entry")}),h?(0,t.jsx)(Xt,{onClose:()=>S(!1),onSuccess:()=>{C(!1),S(!1),N()}}):null]})}function Xt(a){let e=O(),{onClose:o,onSuccess:d}=a,r=(0,s.useRef)(null),n=(0,s.useRef)(null),[c,l]=(0,s.useState)(e("feishuLogin.starting")),[b,i]=(0,s.useState)(null),[f,p]=(0,s.useState)(!1),u=(0,s.useCallback)(()=>{r.current!==null&&(window.clearInterval(r.current),r.current=null)},[]),g=(0,s.useCallback)(h=>h?h.status==="awaiting_scan"&&h.qrDataUrl?(i(h.qrDataUrl),l(h.message||e("feishuLogin.scanHint")),p(!1),"active"):h.status==="starting"?(l(h.message||e("feishuLogin.starting")),i(null),p(!1),"active"):h.status==="success"?(u(),i(null),p(!1),l(e("feishuLogin.success")),n.current=window.setTimeout(()=>d(),900),"done"):(u(),i(null),l(e("feishuLogin.failed",{reason:h.message||h.reason||""})),p(!0),"done"):"active",[d,u,e]),k=(0,s.useCallback)(async()=>{try{let S=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));g(S.login)}catch{}},[g]),C=(0,s.useCallback)(async()=>{u(),l(e("feishuLogin.starting")),i(null),p(!1);let h="active";try{let v=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));h=g(v.login)}catch(S){l(e("feishuLogin.failed",{reason:L(S)})),p(!0);return}h==="active"&&r.current===null&&(r.current=window.setInterval(()=>{k()},1500))},[k,g,u,e]);return(0,s.useEffect)(()=>(C(),()=>{u(),n.current!==null&&window.clearTimeout(n.current)}),[C,u]),(0,t.jsx)("div",{className:"feishu-login-overlay",onClick:h=>{h.currentTarget===h.target&&o()},children:(0,t.jsxs)("div",{className:"feishu-login-modal",role:"dialog","aria-modal":"true",children:[(0,t.jsx)("button",{type:"button",className:"feishu-login-close","data-close":!0,"aria-label":e("feishuLogin.close"),onClick:o,children:"x"}),(0,t.jsx)("h3",{className:"feishu-login-title",children:e("feishuLogin.title")}),(0,t.jsx)("p",{className:"feishu-login-hint","data-hint":!0,children:c}),(0,t.jsx)("div",{className:"feishu-login-qr","data-qr":!0,children:b?(0,t.jsx)("img",{className:"qr-image",src:b,alt:e("feishuLogin.qrAlt")}):null}),(0,t.jsx)("div",{className:"feishu-login-actions",children:(0,t.jsx)("button",{type:"button",className:"primary","data-retry":!0,hidden:!f,onClick:()=>{C()},children:e("feishuLogin.retry")})})]})})}function ge(a){let e=O(),{bot:o,cliState:d,patchBot:r}=a,n=yt(o,a.sessionFallback),[c,l]=(0,s.useState)(n),[b,i]=(0,s.useState)(typeof o.model=="string"?o.model:""),[f,p]=(0,s.useState)(null),[u,g]=(0,s.useState)(!1),[k,C]=(0,s.useState)(qt(o)),[h,S]=(0,s.useState)(null),[v,D]=(0,s.useState)(!1);(0,s.useEffect)(()=>{l(yt(o,a.sessionFallback)),i(typeof o.model=="string"?o.model:""),C(qt(o))},[o.agentSelectionKey,o.cliId,o.larkAppId,o.model,o.skillInjection,o.skillInjectionDefault,a.sessionFallback]);let N=vt(d.options,c),P=Ot(N,d),m=N?.gateway==="ttadk"&&N.acceptsModel===!1,_=m?e("botOnboarding.modelTtadkCocoPlaceholder"):N?.gateway==="ttadk"?e("botOnboarding.modelTtadkPlaceholder").replace("{model}",d.ttadkModelDefault):e("botDefaults.agentModelPlaceholder");function G(T){l(T);let w=vt(d.options,T),y=w?.gateway==="ttadk",x=y&&w.acceptsModel!==!1;i(y&&!x?"":x?I=>I.trim()?I:d.ttadkModelDefault:I=>I.trim()===d.ttadkModelDefault?"":I)}async function E(){p(null),g(!0);try{let T=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:c,model:b});T.ok&&T.body.ok?(p(T.body.availabilityWarning?{text:`\u26A0\uFE0F ${T.body.availabilityWarning}`}:{text:`\u2713 ${e("botDefaults.agentSaved")}`,ok:!0}),r(o.larkAppId,{cliId:T.body.cliId,wrapperCli:T.body.wrapperCli??null,model:T.body.model??"",agentSelectionKey:T.body.selectionKey??c})):p({text:`\u2717 ${F(T)}`})}catch(T){p({text:`\u2717 ${L(T)}`})}finally{g(!1)}}async function $(){if(o.cliId==="riff")return!0;try{let T=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:"riff",model:""});return T.ok&&T.body.ok?(r(o.larkAppId,{cliId:T.body.cliId,wrapperCli:T.body.wrapperCli??null,model:T.body.model??"",agentSelectionKey:T.body.selectionKey??"riff"}),!0):(p({text:`\u2717 ${F(T)}`}),!1)}catch(T){return p({text:`\u2717 ${L(T)}`}),!1}}async function z(T){C(T),S(null),D(!0);try{let w=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/skill-injection`,{skillInjection:T});w.ok&&w.body.ok?(S({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}),r(o.larkAppId,{skillInjection:w.body.skillInjection??null})):S({text:`\u2717 ${F(w)}`})}catch(w){S({text:`\u2717 ${L(w)}`})}finally{D(!1)}}let V=o.skillInjectionSupport==="dynamic"?"dynamic":o.skillInjectionSupport==="global"?"global":"none",K=[...d.options].sort((T,w)=>T.label.localeCompare(w.label,"en",{sensitivity:"base"})).map(T=>({value:T.id,label:T.available===!1?e("botDefaults.agentMissingOption",{label:T.label,command:T.command??T.id}):`${T.label}\uFF08${T.id}\uFF09`})),B=[{value:"dynamic",label:e("botDefaults.skillInjectionDynamic")}],W=[{value:"dynamic",label:e("botDefaults.skillInjectionDynamicUnsupported"),disabled:!0},{value:"prompt",label:e("botDefaults.skillInjectionPrompt")},{value:"global",label:e("botDefaults.skillInjectionGlobal")},{value:"off",label:e("botDefaults.skillInjectionOff")}],Q=c==="riff";return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionAgent")}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)("span",{children:e("botDefaults.agentCli")}),(0,t.jsx)(Z,{dataInput:"agentCliId",ariaLabel:e("botDefaults.agentCli"),value:c,disabled:u,options:K,searchable:!0,onChange:G}),N?.available===!1?(0,t.jsx)("small",{className:"hint-warn",children:e("botDefaults.agentMissingHint",{command:N.command??c})}):null]})}),!Q&&(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)(A,{help:e("botDefaults.agentHelp"),children:e("botDefaults.agentModel")}),(0,t.jsx)("input",{type:"text","data-input":"agentModel",list:`agent-model-suggestions-${o.larkAppId}`,placeholder:_,value:b,disabled:u||m,onChange:T=>i(T.currentTarget.value)}),(0,t.jsx)("datalist",{id:`agent-model-suggestions-${o.larkAppId}`,children:P.map(T=>(0,t.jsx)("option",{value:T},T))})]})}),Q&&(0,t.jsx)(Ee,{bot:o,patchBot:r,persistCliSelection:$}),!Q&&V==="dynamic"?(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.skillInjectionHelpDynamic"),children:e("botDefaults.skillInjection")}),(0,t.jsx)(Z,{dataInput:"skillInjection",ariaLabel:e("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:B,onChange:()=>{}})]})}):!Q&&V==="global"?(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.skillInjectionHelp"),children:e("botDefaults.skillInjection")}),(0,t.jsx)(Z,{dataInput:"skillInjection",ariaLabel:e("botDefaults.skillInjection"),value:k,disabled:v,options:W,onChange:T=>{z(T)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:h,attr:{"data-skill-injection-status":""}})})]}):null,!Q&&(0,t.jsxs)("div",{className:"actions bd-section-actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:u,onClick:()=>{E()},children:e("botDefaults.agentSave")}),(0,t.jsx)(j,{status:f,attr:{"data-agent-status":""}})]})]})}function qt(a){let e=a.skillInjection==="global"||a.skillInjection==="prompt"||a.skillInjection==="off"?a.skillInjection:"",o=a.skillInjectionDefault==="global"||a.skillInjectionDefault==="off"?a.skillInjectionDefault:"prompt";return e||o}function he(a){let e=O(),{bot:o,patchBot:d}=a,r=_t(o),[n,c]=(0,s.useState)(r.mode),[l,b]=(0,s.useState)(r.workingDir),[i,f]=(0,s.useState)(o.defaultWorkingDirAutoWorktree===!0),[p,u]=(0,s.useState)(null),[g,k]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let S=_t(o);c(S.mode),b(S.workingDir),f(o.defaultWorkingDirAutoWorktree===!0)},[o.defaultOncall?.enabled,o.defaultOncall?.workingDir,o.defaultWorkingDir,o.defaultWorkingDirAutoWorktree]);async function C(){u(null);let S=l.trim();if(n!=="off"&&!S){u({text:e("botDefaults.required")});return}let v=n==="default"&&i;k(!0);try{let D=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/working-dir-mode`,{mode:n,workingDir:S,autoWorktree:v});if(D.ok&&D.body.ok){let N=D.body.resolvedPath?` \u2192 ${D.body.resolvedPath}`:"";u({text:`\u2713 ${e("botDefaults.workingDirSaved")}${N}`,ok:!0}),d(o.larkAppId,{defaultOncall:D.body.defaultOncall??o.defaultOncall,defaultWorkingDir:D.body.defaultWorkingDir??null,defaultWorkingDirAutoWorktree:D.body.defaultWorkingDirAutoWorktree===!0})}else u({text:`\u2717 ${F(D)}`})}catch(D){u({text:`\u2717 ${L(D)}`})}finally{k(!1)}}let h=[{value:"off",label:e("botDefaults.workingDirModeOff")},{value:"default",label:e("botDefaults.workingDirModeDefault")},{value:"oncall",label:e("botDefaults.workingDirModeOncall")}];return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionWorkingDir")}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.workingDirModeHelp"),children:e("botDefaults.workingDirMode")}),(0,t.jsx)(Z,{dataInput:"workingDirMode",ariaLabel:e("botDefaults.workingDirMode"),value:n,disabled:g,options:h,onChange:S=>c(S)})]})}),(0,t.jsx)("div",{className:"bd-row","data-wd-dir-row":!0,hidden:n==="off",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.workingDirField")}),(0,t.jsx)("input",{type:"text","data-input":"workingDir",placeholder:"e.g. /root/iserver/botmux",value:l,disabled:g,onChange:S=>b(S.currentTarget.value)})]})}),(0,t.jsxs)("label",{className:"toggle-row","data-wd-worktree-row":!0,hidden:n!=="default",children:[(0,t.jsx)("input",{type:"checkbox","data-input":"autoWorktree",checked:i,disabled:g,onChange:S=>f(S.currentTarget.checked)}),(0,t.jsx)("span",{className:"switch","aria-hidden":"true"}),(0,t.jsx)("span",{className:"toggle-tx",children:(0,t.jsx)("strong",{children:(0,t.jsx)(A,{help:e("botDefaults.autoWorktreeHelp"),children:e("botDefaults.autoWorktree")})})})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-working-dir",disabled:g,onClick:()=>{C()},children:e("botDefaults.save")}),(0,t.jsx)(j,{status:p,attr:{"data-status":""}})]}),(0,t.jsx)(ye,{bot:o,putCardPref:a.putCardPref})]})}function _t(a){let e=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:e.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||e.workingDir||""}}function ye(a){let e=O(),{bot:o,putCardPref:d}=a,[r,n]=(0,s.useState)(o.autoStartOnGroupJoin===!0),[c,l]=(0,s.useState)(o.autoStartOnNewTopic===!0),[b,i]=(0,s.useState)(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:""),[f,p]=(0,s.useState)(null),[u,g]=(0,s.useState)(null);(0,s.useEffect)(()=>{n(o.autoStartOnGroupJoin===!0),l(o.autoStartOnNewTopic===!0),i(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:"")},[o.autoStartOnGroupJoin,o.autoStartOnGroupJoinPrompt,o.autoStartOnNewTopic]);async function k(C,h){g(h),p(null);try{let S=await d(C);p(S.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(S)}`})}catch(S){p({text:`\u2717 ${L(S)}`})}finally{g(null)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:e("botDefaults.sectionAutoStart")}),(0,t.jsx)(Y,{checked:r,disabled:u==="join",dataAction:"toggle-auto-join",title:e("botDefaults.autoStartJoin"),help:e("botDefaults.autoStartJoinHelp"),onChange:C=>{n(C),k({autoStartOnGroupJoin:C},"join")}}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.autoStartJoinPrompt")}),(0,t.jsx)("textarea",{"data-input":"autoJoinPrompt",rows:3,placeholder:e("botDefaults.autoStartJoinPromptPlaceholder"),value:b,onChange:C=>i(C.currentTarget.value)})]})}),(0,t.jsx)(Y,{checked:c,disabled:u==="topic",dataAction:"toggle-auto-topic",title:e("botDefaults.autoStartTopic"),help:e("botDefaults.autoStartTopicHelp"),onChange:C=>{l(C),k({autoStartOnNewTopic:C},"topic")}}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-auto-join-prompt",disabled:u==="prompt",onClick:()=>{k({autoStartOnGroupJoinPrompt:b},"prompt")},children:e("botDefaults.autoStartJoinPromptSave")}),(0,t.jsx)(j,{status:f,attr:{"data-auto-start-status":""}})]})]})}function ve(a){let e=O(),{bot:o,patchBot:d}=a,[r,n]=(0,s.useState)(o.sandbox===!0),[c,l]=(0,s.useState)(null),[b,i]=(0,s.useState)(!1);(0,s.useEffect)(()=>n(o.sandbox===!0),[o.sandbox]);async function f(u){n(u),l(null),i(!0);try{let g=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox`,{enabled:u});g.ok&&g.body.ok?(l({text:`\u2713 ${e("botDefaults.sandboxSaved")}`,ok:!0}),d(o.larkAppId,{sandbox:g.body.sandbox===!0})):(l({text:`\u2717 ${F(g)}`}),n(!u))}catch(g){l({text:`\u2717 ${L(g)}`}),n(!u)}finally{i(!1)}}let p=o.readIsolationSupported===!0;return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSandbox")}),(0,t.jsx)(Y,{checked:r,disabled:b,dataAction:"toggle-sandbox",title:e("botDefaults.sandboxToggle"),help:e("botDefaults.sandboxHelp"),onChange:u=>{f(u)}}),(0,t.jsx)("p",{className:"bd-section-note","data-read-iso-capability":p?"yes":"no",children:p?`\uFF0B ${e("botDefaults.sandboxReadIsoOn")}`:e("botDefaults.sandboxReadIsoOff")}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:c,attr:{"data-sandbox-status":""}})})]})}var Jt={readWrite:0,readOnly:1,deny:2};function Vt(a,e,o){let d=f=>f==="~"||f.startsWith("~/")?o.replace(/\/+$/,"")+f.slice(1):f,r=f=>d(f).replace(/\/+$/,"")||"/",n=r(e),c=(f,p)=>{let u=r(f),g=r(p);return u===g||g.startsWith(u==="/"?"/":u+"/")},l=f=>r(f)==="/"?0:r(f).split("/").filter(Boolean).length,b,i=(f,p)=>{if(!c(p,n))return;let u=l(p);(!b||u>b.ruleDepth||u===b.ruleDepth&&Jt[f]>Jt[b.access])&&(b={access:f,ruleDepth:u,rule:p})};for(let f of a.readWrite)i("readWrite",f);for(let f of a.readOnly)i("readOnly",f);for(let f of a.deny)i("deny",f);return b?{access:b.access,rule:b.rule}:{access:"none"}}function Zt(){return{readWrite:[],readOnly:[],deny:[]}}function dt(a){return a?{readWrite:[...a.readWrite??[]],readOnly:[...a.readOnly??[]],deny:[...a.deny??[]]}:Zt()}function De(a,e){let o=d=>[...d].sort().join(`
3
+ `);return o(a.readWrite)===o(e.readWrite)&&o(a.readOnly)===o(e.readOnly)&&o(a.deny)===o(e.deny)}function Dt(a){let e=[];for(let o of a.readWrite)e.push(`rw ${o}`);for(let o of a.readOnly)e.push(`ro ${o}`);for(let o of a.deny)e.push(`deny ${o}`);return e.join(`
4
+ `)}function ke(a){let e=Zt();for(let o of a.split(`
5
+ `)){let d=o.trim();if(!d||d.startsWith("#"))continue;let r=/^(\S+)\s+(.+)$/.exec(d);if(!r)continue;let n=r[1].toLowerCase(),c=r[2].trim();n==="rw"||n==="readwrite"||n==="rw:"?e.readWrite.push(c):n==="ro"||n==="readonly"||n==="ro:"?e.readOnly.push(c):(n==="deny"||n==="-"||n==="deny:")&&e.deny.push(c)}return e}function Se(a){let e=O(),{bot:o,patchBot:d}=a,[r,n]=(0,s.useState)(()=>dt(o.sandboxPaths)),[c,l]=(0,s.useState)(()=>Dt(dt(o.sandboxPaths))),[b,i]=(0,s.useState)(!1),[f,p]=(0,s.useState)(null),[u,g]=(0,s.useState)(!1),[k,C]=(0,s.useState)(""),[h,S]=(0,s.useState)({}),[v,D]=(0,s.useState)(new Set),[N,P]=(0,s.useState)([]),[m,_]=(0,s.useState)("~"),G=(0,s.useMemo)(()=>dt(o.sandboxPaths),[o.sandboxPaths]);(0,s.useEffect)(()=>{n(dt(o.sandboxPaths)),l(Dt(dt(o.sandboxPaths)))},[o.sandboxPaths]);let E=!De(r,G),$=(0,s.useCallback)(async w=>{try{let y=w?`?path=${encodeURIComponent(w)}`:"",I=await(await fetch(`/api/fs/list${y}`)).json();if(!I.ok)return;w?S(R=>({...R,[w]:I.entries.map(M=>({name:M.name,path:M.path}))})):(P(I.entries.map(R=>({name:R.name,path:R.path}))),typeof I.home=="string"&&I.home.startsWith("/")&&_(I.home))}catch{}},[]);(0,s.useEffect)(()=>{!b&&N.length===0&&$("")},[b,N.length,$]);let z=(0,s.useCallback)(w=>{let y=w.replace(/\/+$/,"")||"/";if(r.readWrite.some(x=>(x.replace(/\/+$/,"")||"/")===y))return"readWrite";if(r.readOnly.some(x=>(x.replace(/\/+$/,"")||"/")===y))return"readOnly";if(r.deny.some(x=>(x.replace(/\/+$/,"")||"/")===y))return"deny"},[r]),V=(0,s.useCallback)(w=>{p(null);let y=w.replace(/\/+$/,"")||"/",x=z(w),I=x===void 0?"readWrite":x==="readWrite"?"readOnly":x==="readOnly"?"deny":void 0;n(R=>{let M=tt=>tt.filter(q=>(q.replace(/\/+$/,"")||"/")!==y),U={readWrite:M(R.readWrite),readOnly:M(R.readOnly),deny:M(R.deny)};return I&&U[I].push(w),l(Dt(U)),U})},[z]);function K(w){l(w),n(ke(w)),p(null)}async function B(){g(!0),p(null);try{let w=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox-paths`,r);w.ok&&w.body.ok?(p({text:`\u2713 ${e("botDefaults.sbxPathsSaved")}`,ok:!0}),d(o.larkAppId,{sandboxPaths:w.body.sandboxPaths??{readWrite:[],readOnly:[],deny:[]}})):p({text:`\u2717 ${F(w)}`})}catch(w){p({text:`\u2717 ${L(w)}`})}finally{g(!1)}}let W=w=>e(w==="readWrite"?"botDefaults.sbxRw":w==="readOnly"?"botDefaults.sbxRo":w==="deny"?"botDefaults.sbxDeny":"botDefaults.sbxNone");function Q(w){let{name:y,path:x,depth:I}=w,R=v.has(x),M=z(x),U=Vt(r,x,m),tt=h[x];return(0,t.jsxs)("div",{className:"bd-sbx-node",children:[(0,t.jsxs)("div",{className:"bd-sbx-row",style:{paddingLeft:I*16},children:[(0,t.jsx)("span",{className:"bd-sbx-twisty",onClick:()=>{D(q=>{let J=new Set(q);return J.has(x)?J.delete(x):J.add(x),J}),tt||$(x)},children:R?"\u25BE":"\u25B8"}),(0,t.jsx)("span",{className:"bd-sbx-name",title:x,children:y}),(0,t.jsx)("button",{type:"button",className:`bd-sbx-state bd-sbx-state-${M??"inherit"}`,"data-action":"cycle-sandbox-path","data-path":x,title:M?void 0:`${e("botDefaults.sbxInherit")}: ${W(U.access)}`,onClick:()=>V(x),children:M?W(M):`\u21B3 ${W(U.access)}`})]}),R&&(0,t.jsxs)("div",{className:"bd-sbx-kids",children:[tt?.map(q=>(0,t.jsx)(Q,{name:q.name,path:q.path,depth:I+1},q.path)),tt&&tt.length===0&&(0,t.jsx)("div",{className:"bd-sbx-empty",style:{paddingLeft:(I+1)*16+20},children:e("botDefaults.sbxNoSubdirs")})]})]})}let T=k.trim()?Vt(r,k.trim(),m):null;return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSandboxPaths")}),(0,t.jsx)("p",{className:"bd-section-note",children:e("botDefaults.sbxPathsHelp")}),(0,t.jsx)("div",{className:"actions",style:{gap:8,flexWrap:"wrap"},children:(0,t.jsx)("button",{type:"button",className:"bd-btn",onClick:()=>i(w=>!w),children:e(b?"botDefaults.sbxPathsTreeMode":"botDefaults.sbxPathsTextMode")})}),b?(0,t.jsx)("textarea",{className:"bd-sbx-text","data-field":"sandbox-paths-text",rows:8,value:c,spellCheck:!1,placeholder:`rw ~/my-data
6
+ ro ~/reference-repos
7
+ deny ~/my-data/secrets`,onChange:w=>K(w.target.value)}):(0,t.jsx)("div",{className:"bd-sbx-tree","data-field":"sandbox-paths-tree",children:N.map(w=>(0,t.jsx)(Q,{name:w.name,path:w.path,depth:0},w.path))}),(0,t.jsxs)("div",{className:"bd-sbx-tester",children:[(0,t.jsx)("input",{className:"bd-sbx-test-input","data-field":"sandbox-path-test",placeholder:e("botDefaults.sbxTestPlaceholder"),value:k,onChange:w=>C(w.target.value)}),T&&(0,t.jsxs)("span",{className:`bd-sbx-test-out bd-sbx-state-${T.access}`,"data-test-access":T.access,children:[W(T.access),T.rule?` \u2190 ${T.rule}`:""]})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"bd-btn bd-btn-primary","data-action":"save-sandbox-paths",disabled:u||!E,onClick:()=>{B()},children:e("botDefaults.sbxPathsSave")}),(0,t.jsx)(j,{status:f,attr:{"data-sandbox-paths-status":""}})]})]})}var Ce=[{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 Te(a){let e=O(),{bot:o,patchBot:d}=a,[r,n]=(0,s.useState)(typeof o.backendType=="string"?o.backendType:""),[c,l]=(0,s.useState)(null),[b,i]=(0,s.useState)(!1);(0,s.useEffect)(()=>n(typeof o.backendType=="string"?o.backendType:""),[o.backendType]);let f=(0,s.useMemo)(()=>Ce.map(u=>({value:u.value,label:e(u.labelKey)})),[e]);async function p(u){let g=r;n(u),l(null),i(!0);try{let k=await H("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/backend-type`,{backendType:u});k.ok&&k.body.ok?(l({text:`\u2713 ${e("botDefaults.backendSaved")}`,ok:!0}),d(o.larkAppId,{backendType:typeof k.body.backendType=="string"?k.body.backendType:null})):(l({text:`\u2717 ${F(k)}`}),n(g))}catch(k){l({text:`\u2717 ${L(k)}`}),n(g)}finally{i(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionBackend")}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.backendHelp"),children:e("botDefaults.backendLabel")}),(0,t.jsx)(Z,{dataInput:"backendType",ariaLabel:e("botDefaults.backendLabel"),value:r,disabled:b,options:f,onChange:u=>{p(u)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:c,attr:{"data-backend-status":""}})})]})]})}function xe(a){let e=O(),{bot:o,patchBot:d}=a,[r,n]=(0,s.useState)(typeof o.teamRole=="string"),[c,l]=(0,s.useState)(typeof o.teamRole=="string"?o.teamRole:""),[b,i]=(0,s.useState)("every"),[f,p]=(0,s.useState)(null),[u,g]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let h=!0,S=`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`;return typeof o.teamRole=="string"?(n(!0),l(o.teamRole),()=>{h=!1}):(p(null),n(!1),l(""),(async()=>{try{let v=await fetch(S),D=await v.json().catch(()=>({}));if(!h)return;if(v.ok&&D.ok){let N=D.role??"";l(N),i(D.injectMode==="once"?"once":"every"),n(!0),d(o.larkAppId,{teamRole:N})}else p({text:`\u2717 ${e("botDefaults.roleLoadErr")}: ${D.error??v.status}`})}catch(v){h&&p({text:`\u2717 ${e("botDefaults.roleLoadErr")}: ${L(v)}`})}})(),()=>{h=!1})},[o.larkAppId,o.teamRole,d,e]),(0,s.useEffect)(()=>{let h=!0;return typeof o.teamRole!="string"?()=>{h=!1}:((async()=>{try{let S=await fetch(`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`),v=await S.json().catch(()=>({}));h&&S.ok&&v.ok&&i(v.injectMode==="once"?"once":"every")}catch{}})(),()=>{h=!1})},[o.larkAppId]);async function k(h,S,v=b){if(r){p(null),g(!0);try{let D=await H("PUT",`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`,{role:h,injectMode:v});if(D.ok&&D.body.ok){let N=h.trim();l(N),(D.body.injectMode==="once"||D.body.injectMode==="every")&&i(D.body.injectMode),d(o.larkAppId,{teamRole:N}),p({text:`\u2713 ${e(S?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else p({text:`\u2717 ${F(D)}`})}catch(D){p({text:`\u2717 ${L(D)}`})}finally{g(!1)}}}let C=[{value:"every",label:e("roles.injectModeEvery")},{value:"once",label:e("roles.injectModeOnce")}];return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)(A,{help:e("botDefaults.roleHelp"),children:e("botDefaults.sectionRole")})}),(0,t.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:e("botDefaults.rolePlaceholder"),disabled:!r||u,value:c,onChange:h=>l(h.currentTarget.value)}),(0,t.jsxs)("div",{className:"bd-role-inject",children:[(0,t.jsx)("span",{className:"bd-subsection-title",children:(0,t.jsx)(A,{help:e("roles.injectModeHint"),children:e("roles.injectModeLabel")})}),(0,t.jsx)(gt,{id:`bd-role-inject-${o.larkAppId}`,className:"bd-role-inject-menu",ariaLabel:e("roles.injectModeLabel"),disabled:!r||u,label:mt(C,b),value:b,options:C,onChange:h=>{let S=h==="once"?"once":"every";i(S),k(c,c.trim()==="",S)}})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!r||u,onClick:()=>{k(c,c.trim()==="")},children:e("botDefaults.roleSave")}),(0,t.jsx)(j,{status:f,attr:{"data-role-status":""}})]}),(0,t.jsx)(Ne,{appId:o.larkAppId})]})}function Ne(a){let e=O(),[o,d]=(0,s.useState)({loaded:!1,loading:!0,items:[]});(0,s.useEffect)(()=>{let c=!0;return d({loaded:!1,loading:!0,items:[]}),(async()=>{try{let l=await fetch("/api/role-profiles"),b=await l.json().catch(()=>({}));if(!c)return;if(!l.ok)throw new Error(b?.error??String(l.status));let f=(Array.isArray(b.profiles)?b.profiles:[]).filter(p=>(p.botEntries??[]).some(u=>u?.larkAppId===a.appId&&u?.hasEntry)).map(p=>({profileId:String(p.profileId)}));d({loaded:!0,loading:!1,items:f})}catch(l){c&&d({loaded:!0,loading:!1,error:L(l),items:[]})}})(),()=>{c=!1}},[a.appId]);async function r(c){let l=o.items.find(b=>b.profileId===c);if(!(!l||l.loaded||l.loading)){d(b=>({...b,items:b.items.map(i=>i.profileId===c?{...i,loading:!0}:i)}));try{let b=await fetch(`/api/role-profiles/${encodeURIComponent(c)}/${encodeURIComponent(a.appId)}`),i=await b.json().catch(()=>({}));if(!b.ok)throw new Error(i?.error??String(b.status));d(f=>({...f,items:f.items.map(p=>p.profileId===c?{...p,loading:!1,loaded:!0,content:i?.hasEntry?String(i.content??""):""}:p)}))}catch(b){d(i=>({...i,items:i.items.map(f=>f.profileId===c?{...f,loading:!1,error:L(b)}:f)}))}}}let n;return o.loading?n=(0,t.jsx)(ct,{label:e("common.loading"),compact:!0}):o.error?n=(0,t.jsx)("p",{className:"hint-warn-inline",children:e("botDefaults.profileRolesLoadFailed",{error:o.error})}):o.items.length===0?n=(0,t.jsx)("p",{className:"empty",children:e("botDefaults.profileRolesEmpty")}):n=o.items.map(c=>(0,t.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":c.profileId,onToggle:l=>{l.currentTarget.open&&r(c.profileId)},children:[(0,t.jsx)("summary",{children:(0,t.jsx)("span",{className:"bd-profile-role-id",children:c.profileId})}),(0,t.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":c.profileId,children:c.loading?(0,t.jsx)(ct,{label:e("common.loading"),compact:!0}):c.error?(0,t.jsx)("p",{className:"hint-warn-inline",children:e("botDefaults.profileRoleDetailLoadFailed",{error:c.error})}):c.loaded?(0,t.jsx)("pre",{children:c.content??""}):(0,t.jsx)("p",{className:"empty",children:e("botDefaults.profileRoleClickToLoad")})})]},c.profileId)),(0,t.jsxs)("div",{className:"bd-profile-roles","data-profile-roles":!0,children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(A,{help:e("botDefaults.profileRolesHelp"),children:e("botDefaults.profileRoles")})}),(0,t.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:n})]})}function Ie(a){let e=O(),{bot:o,putCardPref:d}=a,[r,n]=(0,s.useState)(o.usageDisplay??"streaming"),[c,l]=(0,s.useState)(o.disableStreamingCard===!0),[b,i]=(0,s.useState)(o.silentTurnReactions===!0),[f,p]=(0,s.useState)(o.writableTerminalLinkInCard===!0),[u,g]=(0,s.useState)(o.privateCard===!0),[k,C]=(0,s.useState)(null),[h,S]=(0,s.useState)(null);(0,s.useEffect)(()=>{n(o.usageDisplay??"streaming"),l(o.disableStreamingCard===!0),i(o.silentTurnReactions===!0),p(o.writableTerminalLinkInCard===!0),g(o.privateCard===!0)},[o.disableStreamingCard,o.privateCard,o.usageDisplay,o.silentTurnReactions,o.writableTerminalLinkInCard]);async function v(N,P,m){S(P),C(null);try{let _=await d(N);_.ok?C({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}):(m?.(),C({text:`\u2717 ${F(_)}`}))}catch(_){m?.(),C({text:`\u2717 ${L(_)}`})}finally{S(null)}}let D=[{value:"streaming",label:e("botDefaults.usageDisplayStreaming")},{value:"footer",label:e("botDefaults.usageDisplayFooter")},{value:"off",label:e("botDefaults.usageDisplayOff")}];return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionCard")}),o.usageSupported===!0&&(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.usageDisplayHelp"),children:e("botDefaults.usageDisplay")}),(0,t.jsx)(Z,{dataInput:"usageDisplay",ariaLabel:e("botDefaults.usageDisplay"),value:r,disabled:h==="usage",options:D,onChange:N=>{let P=r;n(N),v({usageDisplay:N},"usage",()=>n(P))}})]})}),(0,t.jsxs)("div",{className:"bd-toggle-grid bd-card-behavior-grid",children:[(0,t.jsx)(Y,{checked:c,disabled:h==="streaming",dataAction:"toggle-disable-streaming",title:e("botDefaults.disableStreaming"),help:e("botDefaults.disableStreamingHelp"),onChange:N=>{l(N),v({disableStreamingCard:N},"streaming")}}),(0,t.jsx)(Y,{checked:b,disabled:!c||h==="silent",dataAction:"toggle-silent-reactions",title:e("botDefaults.silentTurnReactions"),help:e("botDefaults.silentTurnReactionsHelp"),onChange:N=>{i(N),v({silentTurnReactions:N},"silent")}}),(0,t.jsx)(Y,{checked:f,disabled:c||h==="writable",dataAction:"toggle-writable-link",title:e("botDefaults.writableLink"),help:e("botDefaults.writableLinkHelp"),onChange:N=>{p(N),v({writableTerminalLinkInCard:N},"writable")}}),(0,t.jsx)(Y,{checked:u,disabled:h==="private",dataAction:"toggle-private-card",title:e("botDefaults.privateCard"),help:e("botDefaults.privateCardHelp"),onChange:N=>{g(N),v({privateCard:N},"private")}})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("small",{"data-card-pref-moot":!0,className:"hint-warn-inline",hidden:!c,children:e("botDefaults.writableLinkMoot")}),(0,t.jsx)(j,{status:k,attr:{"data-card-pref-status":""}})]})]})}function we(a){let e=O(),[o,d]=(0,s.useState)(a.bot.codexAppCleanInput===!0),[r,n]=(0,s.useState)(null),[c,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(a.bot.codexAppCleanInput===!0),[a.bot.codexAppCleanInput]);async function b(i){let f=o;d(i),l(!0),n(null);try{let p=await a.putCardPref({codexAppCleanInput:i});p.ok?n({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}):(d(f),n({text:`\u2717 ${F(p)}`}))}catch(p){d(f),n({text:`\u2717 ${L(p)}`})}finally{l(!1)}}return(0,t.jsxs)("section",{className:"bd-section","data-codex-app-display":!0,children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionCodexAppDisplay")}),(0,t.jsx)(Y,{checked:o,disabled:c,dataAction:"toggle-codex-app-clean-input",title:e("botDefaults.codexAppCleanInput"),help:e("botDefaults.codexAppCleanInputHelp"),onChange:i=>{b(i)}}),(0,t.jsx)("small",{className:"bd-section-note",children:e("botDefaults.codexAppCleanInputCompat")}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:r,attr:{"data-codex-app-clean-input-status":""}})})]})}function Pe(a){let e=O(),[o,d]=(0,s.useState)(a.bot.botToBotSameDir!==!1),[r,n]=(0,s.useState)(null),[c,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(a.bot.botToBotSameDir!==!1),[a.bot.botToBotSameDir]);async function b(i){d(i),l(!0),n(null);try{let f=await a.putCardPref({botToBotSameDir:i});n(f.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(f)}`})}catch(f){n({text:`\u2717 ${L(f)}`})}finally{l(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionCrossBot")}),(0,t.jsx)(Y,{checked:o,disabled:c,dataAction:"toggle-cross-bot-samedir",title:e("botDefaults.botToBotSameDir"),help:e("botDefaults.botToBotSameDirHelp"),onChange:i=>{b(i)}}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:r,attr:{"data-crossbot-status":""}})})]})}function Re(a){let e=O(),o=kt(a.bot),[d,r]=(0,s.useState)(String(o.limit)),[n,c]=(0,s.useState)(String(o.sinceHours)),[l,b]=(0,s.useState)(null),[i,f]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let u=kt(a.bot);r(String(u.limit)),c(String(u.sinceHours))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours]);async function p(){b(null);let u=Ht(d,50),g=Ht(n,24);if(u==null||g==null){b({text:`\u2717 ${e("botDefaults.summaryNumberInvalid")}`});return}f(!0);try{let k=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:u,sinceHours:g});if(k.ok&&k.body.ok){let C=k.body.summaryRange??{limit:u,sinceHours:g},h=kt({...a.bot,summaryRange:C});r(String(h.limit)),c(String(h.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:C}),b({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else b({text:`\u2717 ${F(k)}`})}catch(k){b({text:`\u2717 ${L(k)}`})}finally{f(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)(A,{help:e("botDefaults.summaryLimitHelp"),children:e("botDefaults.sectionSummaryTrigger")})}),(0,t.jsxs)("div",{className:"bd-row bd-summary-limits",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.summaryLimit")}),(0,t.jsx)("input",{type:"number",min:0,step:1,"data-input":"summaryLimit",value:d,disabled:i,onChange:u=>r(u.currentTarget.value)})]}),(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.summarySinceHours")}),(0,t.jsx)("input",{type:"number",min:0,step:1,"data-input":"summarySinceHours",value:n,disabled:i,onChange:u=>c(u.currentTarget.value)})]})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-trigger",disabled:i,onClick:()=>{p()},children:e("botDefaults.summarySave")}),(0,t.jsx)(j,{status:l,attr:{"data-summary-trigger-status":""}})]})]})}function kt(a){let e=a.summaryRange??{limit:50,sinceHours:24};return{limit:Number.isInteger(e.limit)&&Number(e.limit)>=0?Number(e.limit):50,sinceHours:Number.isInteger(e.sinceHours)&&Number(e.sinceHours)>=0?Number(e.sinceHours):24}}function Be(a){let e=O(),[o,d]=(0,s.useState)(a.bot.p2pMode==="thread"?"thread":"chat"),[r,n]=(0,s.useState)(Kt(a.bot)),[c,l]=(0,s.useState)(Qt(a.bot)),[b,i]=(0,s.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[f,p]=(0,s.useState)(null),[u,g]=(0,s.useState)(null),[k,C]=(0,s.useState)(null),[h,S]=(0,s.useState)(null),[v,D]=(0,s.useState)(null);(0,s.useEffect)(()=>{d(a.bot.p2pMode==="thread"?"thread":"chat"),n(Kt(a.bot)),l(Qt(a.bot)),i(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function N($){let z=$==="chat"?"chat":"thread";d(z),p("p2p"),g(null);try{let V=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:z});V.ok&&V.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:V.body.p2pMode==="thread"?"thread":"chat"}),g({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})):g({text:`\u2717 ${F(V)}`})}catch(V){g({text:`\u2717 ${L(V)}`})}finally{p(null)}}async function P($,z,V){p($),V(null);try{let K=await a.putCardPref(z);V(K.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${F(K)}`})}catch(K){V({text:`\u2717 ${L(K)}`})}finally{p(null)}}let m=[{value:"thread",label:e("botDefaults.p2pThread")},{value:"chat",label:e("botDefaults.p2pChat")}],_=[{value:"chat",label:e("botDefaults.regularGroupModeChat")},{value:"chat-topic",label:e("botDefaults.regularGroupModeChatTopic")},{value:"new-topic",label:e("botDefaults.regularGroupModeNewTopic")},{value:"shared",label:e("botDefaults.regularGroupModeShared")}],G=[{value:"always",label:e("botDefaults.mentionModeAlways")},{value:"topic",label:e("botDefaults.mentionModeTopic")},{value:"never",label:e("botDefaults.mentionModeNever")},{value:"ambient",label:e("botDefaults.mentionModeAmbient")}],E=[{value:"mention-only",label:e("botDefaults.docSubscribeModeMention")},{value:"all",label:e("botDefaults.docSubscribeModeAll")}];return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSessionMode")}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.p2pHelp"),children:e("botDefaults.p2pMode")}),(0,t.jsx)(Z,{dataInput:"p2pMode",ariaLabel:e("botDefaults.p2pMode"),value:o,disabled:f==="p2p",options:m,onChange:$=>{N($)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:u,attr:{"data-p2p-status":""}})})]}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.regularGroupModeHelp"),children:e("botDefaults.regularGroupMode")}),(0,t.jsx)(Z,{dataInput:"regularGroupMode",ariaLabel:e("botDefaults.regularGroupMode"),value:r,disabled:f==="regular",options:_,onChange:$=>{n($),P("regular",{regularGroupReplyMode:$},C)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:k,attr:{"data-regular-group-status":""}})})]}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.mentionModeHelp"),children:e("botDefaults.mentionMode")}),(0,t.jsx)(Z,{dataInput:"regularGroupMentionMode",ariaLabel:e("botDefaults.mentionMode"),value:c,disabled:f==="mention",options:G,onChange:$=>{l($),P("mention",{regularGroupMentionMode:$},S)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:h,attr:{"data-mention-mode-status":""}})})]}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.docSubscribeModeHelp"),children:e("botDefaults.docSubscribeMode")}),(0,t.jsx)(Z,{dataInput:"docSubscribeDefaultMode",ariaLabel:e("botDefaults.docSubscribeMode"),value:b,disabled:f==="doc",options:E,onChange:$=>{i($),P("doc",{docSubscribeDefaultMode:$},D)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)(j,{status:v,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function Me(a){let e=O(),o=a.bot.substituteMode??null,[d,r]=(0,s.useState)(o?.enabled===!0);function n(y){switch(y){case"cross_app_open_id":return e("botDefaults.substituteReasonCrossAppOpenId");case"not_visible":return e("botDefaults.substituteReasonNotVisible");case"resolve_failed":return e("botDefaults.substituteReasonResolveFailed");case"unresolvable":return e("botDefaults.substituteReasonUnresolvable");default:return e("botDefaults.substituteUnresolved")}}let[c,l]=(0,s.useState)(o?.disclosure==="none"?"none":"prefix"),[b,i]=(0,s.useState)(o?.replyMode==="quote"?"quote":"thread"),[f,p]=(0,s.useState)(o?.disableControlCard!==!0),[u,g]=(0,s.useState)(()=>ot(o?.chats)),[k,C]=(0,s.useState)(()=>ot(o?.excludedChats)),[h,S]=(0,s.useState)(o?.topicGroups!==!1),[v,D]=(0,s.useState)(o?.topicActiveSessionTrigger!==!1),[N,P]=(0,s.useState)(null),[m,_]=(0,s.useState)(!1),G=(0,s.useRef)(0),E=(0,s.useRef)(!1);function $(y){let x=oe(y);return{key:++G.current,idField:x,idValue:y?.[x]??"",name:y?.name??"",persisted:y?{...y}:{},originalIdField:y?x:void 0,resolution:y?.name||y?.avatarUrl?{ok:!0,name:y.name,avatarUrl:y.avatarUrl}:void 0}}let z=(0,s.useRef)(new Map);async function V(y){let x=(z.current.get(y)??0)+1;z.current.set(y,x);let I=()=>z.current.get(y)===x;B(R=>R.map(M=>M.key===y?{...M,resolving:!0}:M));try{let R=K.find(q=>q.key===y);if(!R)return;let M=R.idValue.trim();if(!M){B(q=>q.map(J=>J.key===y?{...J,resolving:!1,resolution:void 0}:J));return}let U={[R.idField]:M};R.name.trim()&&(U.name=R.name.trim());let tt=await Ut(a.bot.larkAppId,U);if(!I())return;B(q=>q.map(J=>{if(J.key!==y)return J;if(!tt.ok)return{...J,resolving:!1,resolution:{ok:!1}};let et=tt.resolution;if(et?.ok===!0){if(!et.openId)return{...J,resolving:!1,resolution:void 0};let X={...J.persisted};return X.openId=et.openId,et.name&&(X.name=et.name),et.avatarUrl&&(X.avatarUrl=et.avatarUrl),{...J,name:et.name??J.name,persisted:X,resolving:!1,resolution:{ok:!0,name:et.name,avatarUrl:et.avatarUrl}}}return{...J,resolving:!1,resolution:{ok:!1,reason:et?.reason}}}))}catch{if(!I())return;B(R=>R.map(M=>M.key===y?{...M,resolving:!1,resolution:{ok:!1}}:M))}}let[K,B]=(0,s.useState)(()=>{let y=o?.targets??[];return y.length?y.map(x=>$(x)):[$()]});(0,s.useEffect)(()=>{if(E.current){E.current=!1;return}let y=a.bot.substituteMode??null;r(y?.enabled===!0),l(y?.disclosure==="none"?"none":"prefix"),i(y?.replyMode==="quote"?"quote":"thread"),p(y?.disableControlCard!==!0),g(ot(y?.chats)),C(ot(y?.excludedChats)),S(y?.topicGroups!==!1),D(y?.topicActiveSessionTrigger!==!1);let x=y?.targets??[];B(x.length?x.map(I=>$(I)):[$()])},[a.bot.larkAppId,a.bot.substituteMode]);async function W(y){_(!0),P(null);try{let x=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/substitute-mode`,y);if(x.ok&&x.body.ok){let I=x.body.substituteMode&&typeof x.body.substituteMode=="object"?x.body.substituteMode:null,R=Array.isArray(x.body?.resolution)?x.body.resolution:[],M=R.filter(U=>U?.ok===!1).map(U=>String(U.input??"").trim()).filter(Boolean);if(r(I?.enabled===!0),l(I?.disclosure==="none"?"none":"prefix"),i(I?.replyMode==="quote"?"quote":"thread"),p(I?.disableControlCard!==!0),g(ot(I?.chats)),C(ot(I?.excludedChats)),S(I?.topicGroups!==!1),D(I?.topicActiveSessionTrigger!==!1),R.length)E.current=!0,B(U=>{let tt=[...R];return U.map(q=>{let J=q.idValue.trim(),et=tt.findIndex(at=>String(at.input??"").trim()===J);if(et<0)return q;let X=tt.splice(et,1)[0];if(X?.ok===!0){let at={...q.persisted};return X.openId&&(at.openId=X.openId),q.idField==="email"&&(at.email=J),X.name&&(at.name=X.name),X.avatarUrl&&(at.avatarUrl=X.avatarUrl),{...q,name:X.name??q.name,persisted:at,resolution:{ok:!0,name:X.name,avatarUrl:X.avatarUrl}}}return{...q,resolution:{ok:!1,reason:X?.reason}}})});else{let U=I?.targets??[];B(U.length?U.map(tt=>$(tt)):[$()])}a.patchBot(a.bot.larkAppId,{substituteMode:I}),P(M.length?{text:`\u2717 ${e("botDefaults.substituteTargetsInvalid")}: ${M.join(", ")}`}:{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else{let I=Array.isArray(x.body?.resolution)?x.body.resolution.filter(R=>R?.ok===!1).map(R=>String(R.input??"").trim()).filter(Boolean):[];P({text:I.length?`\u2717 ${e("botDefaults.substituteTargetsInvalid")}: ${I.join(", ")}`:`\u2717 ${F(x)}`})}}catch(x){P({text:`\u2717 ${L(x)}`})}finally{_(!1)}}function Q(){let y=[],x=!1;for(let I of K){let R=se(I);if(!R){x||=!!I.name.trim();continue}y.push(R)}if(x||d&&y.length===0){P({text:`\u2717 ${e("botDefaults.substituteTargetsInvalid")}`});return}W({enabled:d,targets:y,disclosure:c,chats:Wt(u),excludedChats:Wt(k),replyMode:b,disableControlCard:!f,topicGroups:h,topicActiveSessionTrigger:v})}let T=[{value:"prefix",label:e("botDefaults.substituteDisclosurePrefix")},{value:"none",label:e("botDefaults.substituteDisclosureNone")}],w=[{value:"thread",label:e("botDefaults.substituteReplyModeThread")},{value:"quote",label:e("botDefaults.substituteReplyModeQuote")}];return(0,t.jsxs)("section",{className:"bd-section bd-substitute-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSubstitute")}),(0,t.jsx)(Y,{checked:d,disabled:m,dataAction:"toggle-substitute-mode",title:e("botDefaults.substituteEnabled"),help:e("botDefaults.substituteHelp"),onChange:r}),(0,t.jsx)(Y,{checked:h,disabled:m,dataAction:"toggle-substitute-topic-groups",title:e("botDefaults.substituteTopicGroups"),help:e("botDefaults.substituteTopicGroupsHelp"),onChange:S}),(0,t.jsx)(Y,{checked:v,disabled:m||!h,dataAction:"toggle-substitute-topic-active",title:e("botDefaults.substituteTopicActive"),help:e("botDefaults.substituteTopicActiveHelp"),onChange:D}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{children:e("botDefaults.substituteDisclosure")}),(0,t.jsx)(Z,{dataInput:"substituteDisclosure",ariaLabel:e("botDefaults.substituteDisclosure"),value:c,disabled:m,options:T,onChange:y=>l(y)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(A,{help:e("botDefaults.substituteReplyModeHelp"),children:e("botDefaults.substituteReplyMode")}),(0,t.jsx)(Z,{dataInput:"substituteReplyMode",ariaLabel:e("botDefaults.substituteReplyMode"),value:b,disabled:m,options:w,onChange:y=>i(y)})]})}),(0,t.jsx)(Y,{checked:f,disabled:m,dataAction:"toggle-substitute-control-card",title:e("botDefaults.substituteControlCard"),help:e("botDefaults.substituteControlCardHelp"),onChange:p}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)(A,{help:e("botDefaults.substituteChatsHelp"),children:e("botDefaults.substituteChats")}),(0,t.jsx)("textarea",{"data-input":"substituteChats",rows:3,placeholder:e("botDefaults.substituteChatsPlaceholder"),value:u,disabled:m,onChange:y=>g(y.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)(A,{help:e("botDefaults.substituteExcludedChatsHelp"),children:e("botDefaults.substituteExcludedChats")}),(0,t.jsx)("textarea",{"data-input":"substituteExcludedChats",rows:3,placeholder:e("botDefaults.substituteExcludedChatsPlaceholder"),value:k,disabled:m,onChange:y=>C(y.currentTarget.value)})]})}),(0,t.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,t.jsx)(A,{help:e("botDefaults.substituteTargetsHelp"),children:e("botDefaults.substituteTargets")}),(0,t.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[K.map((y,x)=>(0,t.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,t.jsx)(Z,{dataInput:`substituteTargetType-${y.key}`,className:"bd-substitute-target-type",ariaLabel:`${e("botDefaults.substituteTargetType")} ${x+1}`,value:y.idField,disabled:m,options:Ct.map(I=>({value:I,label:e(`botDefaults.substituteTarget${I[0].toUpperCase()}${I.slice(1)}`)})),onChange:I=>{B(R=>R.map(M=>M.key===y.key?{...M,idField:I,idValue:M.persisted[I]??"",resolution:void 0}:M))}}),(0,t.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${y.key}`,"aria-label":`${e("botDefaults.substituteTargetType")} ${x+1}`,placeholder:e("botDefaults.substituteTargetIdPlaceholder"),value:y.idValue,disabled:m,onChange:I=>{let R=I.currentTarget.value;B(M=>M.map(U=>U.key===y.key?{...U,idValue:R,resolution:void 0}:U))},onBlur:()=>{y.idValue.trim()&&V(y.key)}}),(0,t.jsx)("div",{className:"bd-substitute-target-name",children:y.resolving?(0,t.jsx)("span",{className:"bd-substitute-target-resolving",children:e("botDefaults.substituteResolving")}):y.resolution?.ok===!0&&(y.name||y.resolution.avatarUrl)?(0,t.jsxs)(t.Fragment,{children:[y.resolution.avatarUrl?(0,t.jsx)(nt,{html:st({name:y.resolution.name,avatarUrl:y.resolution.avatarUrl,size:"sm"})}):null,(0,t.jsx)("span",{className:"bd-substitute-target-name-chip","data-chip":`substituteTargetName-${y.key}`,"aria-label":`${e("botDefaults.substituteTargetName")} ${x+1}`,children:y.name})]}):y.resolution?.ok===!1?(0,t.jsx)("span",{className:"bd-substitute-target-resolution-badge",children:n(y.resolution.reason)}):(0,t.jsx)("input",{type:"text","data-input":`substituteTargetName-${y.key}`,"aria-label":`${e("botDefaults.substituteTargetName")} ${x+1}`,placeholder:e("botDefaults.substituteTargetNamePlaceholder"),value:y.name,disabled:m,onChange:I=>{let R=I.currentTarget.value;B(M=>M.map(U=>U.key===y.key?{...U,name:R}:U))}})}),(0,t.jsx)("button",{type:"button",className:"bd-substitute-target-remove","data-action":"remove-substitute-target",title:e("botDefaults.substituteTargetRemove"),"aria-label":e("botDefaults.substituteTargetRemove"),disabled:m,onClick:()=>{B(I=>{let R=I.filter(M=>M.key!==y.key);return R.length?R:[$()]})},children:(0,t.jsx)("span",{"aria-hidden":"true",children:"\xD7"})})]},y.key)),(0,t.jsx)("button",{type:"button",className:"bd-substitute-target-add","data-action":"add-substitute-target",title:e("botDefaults.substituteTargetAdd"),"aria-label":e("botDefaults.substituteTargetAdd"),disabled:m,onClick:()=>B(y=>[...y,$()]),children:(0,t.jsx)("span",{"aria-hidden":"true",children:"+"})})]})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-substitute-mode",disabled:m,onClick:Q,children:e("botDefaults.substituteSave")}),(0,t.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:m,onClick:()=>{W({enabled:!1,targets:[]})},children:e("botDefaults.substituteOff")}),(0,t.jsx)(j,{status:N,attr:{"data-substitute-status":""}})]})]})}function Kt(a){return a.regularGroupReplyMode==="chat"||a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"?a.regularGroupReplyMode:"chat-topic"}function Qt(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function Ae(a){let e=O(),o=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null,d=Number.isFinite(a.bot.logicalSessionCount)?Number(a.bot.logicalSessionCount):0,r=Number.isFinite(a.bot.residentSessionCount)?Number(a.bot.residentSessionCount):0,n=Number.isFinite(a.bot.dormantSessionCount)?Number(a.bot.dormantSessionCount):0,[c,l]=(0,s.useState)(o),b=c??30,[i,f]=(0,s.useState)(o==null?"":String(o)),[p,u]=(0,s.useState)(null),[g,k]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let S=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;l(S),f(S==null?"":String(S))},[a.bot.maxLiveWorkers]);async function C(S){u(null),k(!0);try{let v=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:S});if(v.ok&&v.body.ok){let D=typeof v.body.maxLiveWorkers=="number"?v.body.maxLiveWorkers:null;l(D),f(D==null?"":String(D)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:D}),u({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else u({text:`\u2717 ${F(v)}`})}catch(v){u({text:`\u2717 ${L(v)}`})}finally{k(!1)}}function h(){let S=zt(i);if(S==="invalid"){u({text:`\u2717 ${e("botDefaults.maxLiveWorkersInvalid")}`});return}C(S)}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionSessionCap")}),(0,t.jsxs)("div",{className:"bd-row bd-quota",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)(A,{help:e("botDefaults.maxLiveWorkersHelp"),children:e("botDefaults.maxLiveWorkers")}),(0,t.jsx)("input",{type:"number",min:1,step:1,"data-input":"maxLiveWorkers",placeholder:e("botDefaults.maxLiveWorkersPlaceholder"),value:i,disabled:g,onChange:S=>f(S.currentTarget.value)})]}),(0,t.jsx)("small",{"data-session-cap-state":!0,children:ie(c,e)}),(0,t.jsx)("small",{className:"bd-help bd-session-residency",children:e("botDefaults.maxLiveWorkersUsage",{resident:r,cap:b,dormant:n,logical:d})})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:g,onClick:h,children:e("botDefaults.maxLiveWorkersSave")}),(0,t.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:g,onClick:()=>{f(""),C(null)},children:e("botDefaults.maxLiveWorkersOff")}),(0,t.jsx)(j,{status:p,attr:{"data-session-cap-status":""}})]})]})}function $e(a){let e=O(),[o,d]=(0,s.useState)(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[r,n]=(0,s.useState)(null),[c,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[a.bot.startupCommands]);async function b(){n(null),l(!0);try{let i=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:o});if(i.ok&&i.body.ok){let f=typeof i.body.startupCommands=="string"?i.body.startupCommands:"";d(f),a.patchBot(a.bot.larkAppId,{startupCommands:f}),n({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else n({text:`\u2717 ${F(i)}`})}catch(i){n({text:`\u2717 ${L(i)}`})}finally{l(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)(A,{help:e("botDefaults.startupCommandsHelp"),children:e("botDefaults.sectionStartupCommands")})}),(0,t.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:e("botDefaults.startupCommandsPlaceholder"),value:o,disabled:c,onChange:i=>d(i.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:c,onClick:()=>{b()},children:e("botDefaults.startupCommandsSave")}),(0,t.jsx)(j,{status:r,attr:{"data-startup-commands-status":""}})]})]})}function Oe(a){let e=O(),[o,d]=(0,s.useState)(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:""),[r,n]=(0,s.useState)(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:""),[c,l]=(0,s.useState)(null),[b,i]=(0,s.useState)(null);(0,s.useEffect)(()=>{d(typeof a.bot.customPassthroughCommands=="string"?a.bot.customPassthroughCommands:"")},[a.bot.customPassthroughCommands]),(0,s.useEffect)(()=>{n(typeof a.bot.canTalkDaemonCommands=="string"?a.bot.canTalkDaemonCommands:"")},[a.bot.canTalkDaemonCommands]);async function f(){l(null),i("passthrough");try{let u=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/custom-passthrough`,{customPassthroughCommands:o});if(u.ok&&u.body.ok){let g=typeof u.body.customPassthroughCommands=="string"?u.body.customPassthroughCommands:"";d(g),a.patchBot(a.bot.larkAppId,{customPassthroughCommands:g}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${F(u)}`})}catch(u){l({text:`\u2717 ${L(u)}`})}finally{i(null)}}async function p(){l(null),i("cantalk");try{let u=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/cantalk-daemon-commands`,{canTalkDaemonCommands:r});if(u.ok&&u.body.ok){let g=typeof u.body.canTalkDaemonCommands=="string"?u.body.canTalkDaemonCommands:"";n(g),a.patchBot(a.bot.larkAppId,{canTalkDaemonCommands:g}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${F(u)}`})}catch(u){l({text:`\u2717 ${L(u)}`})}finally{i(null)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)(A,{help:e("botDefaults.sectionSlashCommandsHelp"),children:e("botDefaults.sectionSlashCommands")})}),(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(A,{help:e("botDefaults.customPassthroughHelp"),children:e("botDefaults.customPassthrough")})}),(0,t.jsx)("textarea",{"data-input":"customPassthroughCommands",rows:2,placeholder:e("botDefaults.customPassthroughPlaceholder"),value:o,disabled:b==="passthrough",onChange:u=>d(u.currentTarget.value)}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-custom-passthrough",disabled:b==="passthrough",onClick:()=>{f()},children:e("botDefaults.customPassthroughSave")})})]}),(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(A,{help:e("botDefaults.canTalkDaemonHelp"),children:e("botDefaults.canTalkDaemon")})}),(0,t.jsx)("textarea",{"data-input":"canTalkDaemonCommands",rows:2,placeholder:e("botDefaults.canTalkDaemonPlaceholder"),value:r,disabled:b==="cantalk",onChange:u=>n(u.currentTarget.value)}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-cantalk-daemon",disabled:b==="cantalk",onClick:()=>{p()},children:e("botDefaults.canTalkDaemonSave")})})]}),(0,t.jsx)(j,{status:c,attr:{"data-slash-commands-status":""}})]})}function Le(a){let e=O(),[o,d]=(0,s.useState)(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[r,n]=(0,s.useState)(null),[c,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[a.bot.launchShell]);async function b(){n(null),l(!0);try{let i=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:o});if(i.ok&&i.body.ok){let f=typeof i.body.launchShell=="string"?i.body.launchShell:"";d(f),a.patchBot(a.bot.larkAppId,{launchShell:f}),n({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else n({text:`\u2717 ${F(i)}`})}catch(i){n({text:`\u2717 ${L(i)}`})}finally{l(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(A,{help:e("botDefaults.launchShellHelp"),children:e("botDefaults.sectionLaunchShell")})}),(0,t.jsx)("input",{type:"text","data-input":"launchShell",placeholder:e("botDefaults.launchShellPlaceholder"),value:o,disabled:c,onChange:i=>d(i.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:c,onClick:()=>{b()},children:e("botDefaults.launchShellSave")}),(0,t.jsx)(j,{status:r,attr:{"data-launch-shell-status":""}})]})]})}function Fe(a){let e=O(),[o,d]=(0,s.useState)(typeof a.bot.env=="string"?a.bot.env:""),[r,n]=(0,s.useState)(null),[c,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>d(typeof a.bot.env=="string"?a.bot.env:""),[a.bot.env]);async function b(){n(null),l(!0);try{let i=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:o});if(i.ok&&i.body.ok){let f=typeof i.body.env=="string"?i.body.env:"";d(f),a.patchBot(a.bot.larkAppId,{env:f}),n({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else n({text:`\u2717 ${F(i)}`})}catch(i){n({text:`\u2717 ${L(i)}`})}finally{l(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(A,{help:e("botDefaults.envHelp"),children:e("botDefaults.sectionEnv")})}),(0,t.jsx)("textarea",{"data-input":"env",rows:5,placeholder:e("botDefaults.envPlaceholder"),value:o,disabled:c,onChange:i=>d(i.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:c,onClick:()=>{b()},children:e("botDefaults.envSave")}),(0,t.jsx)(j,{status:r,attr:{"data-env-status":""}})]})]})}var Ue=["gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-5.4","gpt-5.4-pro"],je=["","low","medium","high","xhigh"],Ge=["boe","cn"];function Ee(a){let e=O(),o=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{},[d,r]=(0,s.useState)(typeof o.baseUrl=="string"?o.baseUrl:""),[n,c]=(0,s.useState)(o.sandboxCluster==="cn"?"cn":"boe"),[l,b]=(0,s.useState)(typeof o.model=="string"?o.model:""),[i,f]=(0,s.useState)(typeof o.reasoningEffort=="string"?o.reasoningEffort:""),[p,u]=(0,s.useState)(typeof o.jwtEnv=="string"?o.jwtEnv:""),[g,k]=(0,s.useState)(typeof o.systemPrompt=="string"?o.systemPrompt:""),[C,h]=(0,s.useState)(Array.isArray(o.setupCommands)?o.setupCommands.join(`
8
+ `):""),[S,v]=(0,s.useState)(null),[D,N]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let m=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{};r(typeof m.baseUrl=="string"?m.baseUrl:""),c(m.sandboxCluster==="cn"?"cn":"boe"),b(typeof m.model=="string"?m.model:""),f(typeof m.reasoningEffort=="string"?m.reasoningEffort:""),u(typeof m.jwtEnv=="string"?m.jwtEnv:""),k(typeof m.systemPrompt=="string"?m.systemPrompt:""),h(Array.isArray(m.setupCommands)?m.setupCommands.join(`
9
+ `):"")},[a.bot.riff]);async function P(){v(null),N(!0);try{let m={};d.trim()&&(m.baseUrl=d.trim()),m.sandboxCluster=n,l.trim()&&(m.model=l.trim()),i&&(m.reasoningEffort=i),p.trim()&&(m.jwtEnv=p.trim()),g.trim()&&(m.systemPrompt=g.trim()),C.trim()&&(m.setupCommands=C.split(`
10
+ `).map(E=>E.trim()).filter(Boolean));let _=Object.keys(m).length?JSON.stringify(m):"",G=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/riff`,{riff:_});if(G.ok&&G.body.ok){let E=typeof G.body.riff=="string"&&G.body.riff?JSON.parse(G.body.riff):null;if(a.patchBot(a.bot.larkAppId,{riff:E}),a.persistCliSelection&&!await a.persistCliSelection()){v({text:`\u2717 ${e("botDefaults.riffCliPersistFailed")}`});return}v({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else v({text:`\u2717 ${F(G)}`})}catch(m){v({text:`\u2717 ${L(m)}`})}finally{N(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(A,{help:e("botDefaults.riffHelp"),children:e("botDefaults.sectionRiff")})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.riffBaseUrl")}),(0,t.jsx)("input",{type:"text","data-input":"riff-base-url",placeholder:e("botDefaults.riffBaseUrlPlaceholder"),value:d,disabled:D,onChange:m=>r(m.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)("span",{children:(0,t.jsx)(A,{help:e("botDefaults.riffSandboxClusterHelp"),children:e("botDefaults.riffSandboxCluster")})}),(0,t.jsx)(Z,{dataInput:"riff-sandbox-cluster",ariaLabel:e("botDefaults.riffSandboxCluster"),value:n,disabled:D,options:Ge.map(m=>({value:m,label:m.toUpperCase()})),onChange:m=>c(m)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:(0,t.jsx)(A,{help:e("botDefaults.riffModelHelp"),children:e("botDefaults.riffModel")})}),(0,t.jsx)("input",{type:"text","data-input":"riff-model",list:`riff-model-suggestions-${a.bot.larkAppId}`,placeholder:e("botDefaults.riffModelPlaceholder"),value:l,disabled:D,onChange:m=>b(m.currentTarget.value)}),(0,t.jsx)("datalist",{id:`riff-model-suggestions-${a.bot.larkAppId}`,children:Ue.map(m=>(0,t.jsx)("option",{value:m},m))})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)("span",{children:(0,t.jsx)(A,{help:e("botDefaults.riffReasoningEffortHelp"),children:e("botDefaults.riffReasoningEffort")})}),(0,t.jsx)(Z,{dataInput:"riff-reasoning-effort",ariaLabel:e("botDefaults.riffReasoningEffort"),value:i,disabled:D,options:je.map(m=>({value:m,label:m===""?e("botDefaults.riffReasoningEffortDefault"):m})),onChange:m=>f(m)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:(0,t.jsx)(A,{help:e("botDefaults.riffJwtEnvHelp"),children:e("botDefaults.riffJwtEnv")})}),(0,t.jsx)("input",{type:"text","data-input":"riff-jwt-env",placeholder:e("botDefaults.riffJwtEnvPlaceholder"),value:p,disabled:D,onChange:m=>u(m.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.riffSystemPrompt")}),(0,t.jsx)("textarea",{"data-input":"riff-system-prompt",placeholder:e("botDefaults.riffSystemPromptPlaceholder"),value:g,disabled:D,onChange:m=>k(m.currentTarget.value),rows:4})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.riffSetupCommands")}),(0,t.jsx)("textarea",{"data-input":"riff-setup-commands",placeholder:e("botDefaults.riffSetupCommandsPlaceholder"),value:C,disabled:D,onChange:m=>h(m.currentTarget.value),rows:3})]})}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-riff",disabled:D,onClick:()=>{P()},children:e("botDefaults.riffSave")}),(0,t.jsx)(j,{status:S,attr:{"data-riff-status":""}})]})]})}function He(a){let e=O(),o=a.bot.brandLabel??null,[d,r]=(0,s.useState)(o),[n,c]=(0,s.useState)(o??""),[l,b]=(0,s.useState)(null),[i,f]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let u=a.bot.brandLabel??null;r(u),c(u??"")},[a.bot.brandLabel]);async function p(u){b(null),f(!0);try{let g=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/brand-label`,{brandLabel:u});if(g.ok&&g.body.ok){let k=g.body.brandLabel??null;r(k),c(k??""),a.patchBot(a.bot.larkAppId,{brandLabel:k}),b({text:"\u2713",ok:!0})}else b({text:`\u2717 ${F(g)}`})}catch(g){b({text:`\u2717 ${L(g)}`})}finally{f(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionBrand")}),(0,t.jsxs)("div",{className:"bd-row bd-brand",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)(A,{help:e("botDefaults.brandLabelHelp"),children:e("botDefaults.brandLabel")}),(0,t.jsx)("input",{type:"text","data-input":"brandLabel",placeholder:e("botDefaults.brandLabelPlaceholder"),value:n,disabled:i,onChange:u=>c(u.currentTarget.value)})]}),(0,t.jsx)("small",{"data-brand-state":!0,children:ne(d,e)})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-brand",disabled:i,onClick:()=>{p(n)},children:e("botDefaults.brandSave")}),(0,t.jsx)("button",{type:"button","data-action":"reset-brand",disabled:i,onClick:()=>{p(null)},children:e("botDefaults.brandReset")}),(0,t.jsx)(j,{status:l,attr:{"data-brand-status":""}})]})]})}function We(a){let e=O(),[o,d]=(0,s.useState)(a.bot.autoGrantRequestCards!==!1),[r,n]=(0,s.useState)(a.bot.restrictGrantCommands===!0),[c,l]=(0,s.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null),[b,i]=(0,s.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?String(a.bot.messageQuotaDefaultLimit):""),[f,p]=(0,s.useState)(null),[u,g]=(0,s.useState)(null);(0,s.useEffect)(()=>{d(a.bot.autoGrantRequestCards!==!1),n(a.bot.restrictGrantCommands===!0);let h=typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null;l(h),i(h==null?"":String(h))},[a.bot.autoGrantRequestCards,a.bot.messageQuotaDefaultLimit,a.bot.restrictGrantCommands]);async function k(h,S){g(S),p(null);try{let v=await H("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/grant-prefs`,h);if(v.ok&&v.body.ok){let D=typeof v.body.messageQuotaDefaultLimit=="number"?v.body.messageQuotaDefaultLimit:null;d(v.body.autoGrantRequestCards!==!1),n(v.body.restrictGrantCommands===!0),l(D),"messageQuotaDefaultLimit"in h&&i(D==null?"":String(D)),a.patchBot(a.bot.larkAppId,{autoGrantRequestCards:v.body.autoGrantRequestCards!==!1,restrictGrantCommands:v.body.restrictGrantCommands===!0,messageQuotaDefaultLimit:D}),p({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else p({text:`\u2717 ${F(v)}`})}catch(v){p({text:`\u2717 ${L(v)}`})}finally{g(null)}}function C(){let h=zt(b);if(h==="invalid"){p({text:`\u2717 ${e("botDefaults.quotaInvalid")}`});return}k({messageQuotaDefaultLimit:h},"quota")}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionGrant")}),(0,t.jsxs)("div",{className:"bd-toggle-grid bd-grant-toggle-grid",children:[(0,t.jsx)(Y,{checked:o,disabled:u==="autoGrant",dataAction:"toggle-auto-grant-card",title:e("botDefaults.autoGrantCard"),help:e("botDefaults.autoGrantCardHelp"),onChange:h=>{d(h),k({autoGrantRequestCards:h},"autoGrant")}}),(0,t.jsx)(Y,{checked:r,disabled:u==="restrict",dataAction:"toggle-restrict-grant",title:e("botDefaults.restrictGrant"),help:e("botDefaults.restrictGrantHelp"),onChange:h=>{n(h),k({restrictGrantCommands:h},"restrict")}})]}),(0,t.jsxs)("div",{className:"bd-row bd-quota",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)(A,{help:e("botDefaults.quotaHelp"),children:e("botDefaults.quotaDefault")}),(0,t.jsx)("input",{type:"number",min:1,step:1,"data-input":"quotaLimit",placeholder:e("botDefaults.quotaPlaceholder"),value:b,disabled:u==="quota",onChange:h=>i(h.currentTarget.value)})]}),(0,t.jsx)("small",{"data-quota-state":!0,children:le(c,e)})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-quota",disabled:u==="quota",onClick:C,children:e("botDefaults.quotaSave")}),(0,t.jsx)(j,{status:f,attr:{"data-grant-status":""}})]})]})}function Ye(a){return It(a,(0,t.jsx)(de,{}))}export{it as BOT_DEFAULTS_TABS,rt as BdTabGrid,ge as BotAgentSection,de as BotDefaultsPage,te as BotDefaultsTabs,Ie as CardBehaviorSection,we as CodexAppDisplaySection,se as buildSubstituteTarget,Vt as effectiveAccess,Ye as renderBotDefaultsPage};
@@ -1 +1 @@
1
- import{a as S,b as B,d as x}from"./chunk-5THX4DI2.js";import{c as g}from"./chunk-7SZRL6FY.js";var i=g(S(),1),E=g(B(),1),t=g(x(),1);function k(e,o){return e.find(a=>a.value===o)?.label??o}function H(e){let o=e.as??"span";return(0,t.jsx)(o,{style:{display:"contents"},dangerouslySetInnerHTML:{__html:e.html}})}function O(e){let o=["page-loading",e.compact?"page-loading-compact":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:o,role:"status","aria-live":"polite",children:[(0,t.jsx)("i",{className:"page-loading-spin","aria-hidden":"true"}),(0,t.jsx)("span",{children:e.label})]})}function J(e){return(0,t.jsxs)("div",{className:"sect-head overview-panel-head",children:[(0,t.jsx)("h2",{children:e.title}),e.count?(0,t.jsx)("span",{className:"sect-head-count",children:e.count}):null,e.hint?(0,t.jsx)("span",{className:"sect-head-hint",children:e.hint}):null,e.children]})}function X(e){return(0,t.jsx)("a",{className:"sect-head-action",href:e.href,children:e.children})}function D(e){return(0,t.jsx)("div",{className:"sect-head-controls",children:e.children})}function T(e){return e.kind==="plus"?(0,t.jsx)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M8 3.25v9.5M3.25 8h9.5"})}):(0,t.jsxs)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M13.1 6.55A5.35 5.35 0 1 0 13 10.1"}),(0,t.jsx)("path",{d:"M13.15 2.95v3.7H9.45"})]})}function A(e){let{children:o,className:a,type:l="button",...u}=e;return(0,t.jsxs)("button",{...u,type:l,className:["ui-create-action",a].filter(Boolean).join(" "),children:[(0,t.jsx)(T,{kind:"plus"}),(0,t.jsx)("span",{className:"ui-create-action-label",children:o})]})}function j(e){let{label:o,busy:a=!1,className:l,type:u="button",...d}=e;return(0,t.jsx)("button",{...d,type:u,className:["ui-refresh-button",a?"is-loading":"",l].filter(Boolean).join(" "),title:o,"aria-label":o,"aria-busy":a||void 0,children:(0,t.jsx)(T,{kind:"refresh"})})}function M(e,o){return e?.closest("dialog[open]")??o}function C(e){let o=(0,i.useRef)(null),a=(0,i.useRef)(null),[l,u]=(0,i.useState)(!1),[d,b]=(0,i.useState)(null),s=(0,i.useCallback)(()=>{let m=o.current;if(!m||typeof window>"u")return;let h=m.getBoundingClientRect(),r=Math.min(360,Math.max(160,window.innerWidth-48)),c=24+r/2,v=window.innerWidth-24-r/2,w=h.left+h.width/2,y=Math.min(Math.max(w,c),Math.max(c,v)),N=h.top<80;b({left:y,top:N?h.bottom+8:h.top-8,placement:N?"bottom":"top"})},[]),f=(0,i.useCallback)(()=>{a.current&&(clearTimeout(a.current),a.current=null),s(),u(!0)},[s]),n=(0,i.useCallback)(()=>{a.current&&clearTimeout(a.current),a.current=setTimeout(()=>u(!1),160)},[]);(0,i.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),(0,i.useEffect)(()=>{if(l)return s(),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0)}},[l,s]);let p=l&&d&&typeof document<"u"?(0,E.createPortal)((0,t.jsx)("span",{className:`ui-info-pop ui-info-pop-floating ui-info-pop-${d.placement}`,role:"tooltip",style:{left:d.left,top:d.top},onMouseEnter:f,onMouseLeave:n,children:e.children}),M(o.current,document.body)):null;return(0,t.jsxs)("span",{ref:o,className:["ui-info-tip",e.className].filter(Boolean).join(" "),tabIndex:e.focusable===!1?void 0:0,"aria-label":e.label,onClick:e.preventClick===!1?void 0:m=>m.preventDefault(),onMouseEnter:f,onMouseLeave:n,onFocus:f,onBlur:n,children:[e.trigger??(0,t.jsx)("span",{className:"ui-info-mark","aria-hidden":"true",children:"?"}),p]})}function z(e){let o=(0,i.useRef)(null),[a,l]=(0,i.useState)(!1),[u,d]=(0,i.useState)(!1),[b,s]=(0,i.useState)(null),f=(0,i.useCallback)(()=>{let r=o.current;if(!r)return!1;let v=(r.querySelector(".ui-overflow-scroll")??r).scrollWidth>r.clientWidth+1;return d(v),v||l(!1),v},[]),n=(0,i.useCallback)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=r.getBoundingClientRect(),v=Math.min(460,Math.max(220,window.innerWidth-48)),w=24+v/2,y=window.innerWidth-24-v/2,N=c.left+c.width/2,R=Math.min(Math.max(N,w),Math.max(w,y)),L=c.top<84;s({left:R,top:L?c.bottom+8:c.top-8,placement:L?"bottom":"top"})},[]),p=(0,i.useCallback)(()=>{if(!(!e.text.trim()||!f())){if(e.showPopover===!1){l(!1);return}n(),l(!0)}},[f,e.showPopover,e.text,n]),m=(0,i.useCallback)(()=>l(!1),[]);(0,i.useEffect)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=window.requestAnimationFrame(f),v=typeof ResizeObserver<"u"?new ResizeObserver(()=>f()):null;return v?.observe(r),window.addEventListener("resize",f),()=>{window.cancelAnimationFrame(c),v?.disconnect(),window.removeEventListener("resize",f)}},[f,e.text]),(0,i.useEffect)(()=>{if(a)return n(),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0)}},[a,n]);let h=e.showPopover!==!1&&a&&b&&typeof document<"u"?(0,E.createPortal)((0,t.jsx)("span",{className:["ui-info-pop","ui-info-pop-floating",`ui-info-pop-${b.placement}`,"ui-overflow-popover",e.popoverClassName].filter(Boolean).join(" "),role:"tooltip",style:{left:b.left,top:b.top},children:e.text}),M(o.current,document.body)):null;return(0,t.jsxs)("span",{ref:o,className:["ui-overflow-text",u?"is-overflowing":"",e.className].filter(Boolean).join(" "),style:e.durationMs?{"--ui-overflow-duration":`${e.durationMs}ms`}:void 0,onMouseEnter:p,onMouseLeave:m,children:[(0,t.jsx)("span",{className:["ui-overflow-scroll",e.textClassName].filter(Boolean).join(" "),children:e.children??e.text}),h]})}function I(e){return(0,t.jsxs)("span",{className:["ui-field-title",e.className].filter(Boolean).join(" "),children:[(0,t.jsx)("span",{className:"ui-field-title-text",children:e.children}),e.help?(0,t.jsx)(C,{label:e.helpLabel,children:e.help}):null]})}function W(e){return(0,t.jsx)("ul",{className:["overview-list",e.className].filter(Boolean).join(" "),id:e.id,children:e.children})}function q(e){let{kind:o,className:a,children:l,...u}=e,d=o?`overview-list-item-${o}`:"";return(0,t.jsx)("li",{...u,className:["overview-list-item",d,a].filter(Boolean).join(" "),children:l})}function F(e){return(0,t.jsx)("div",{className:"overview-list-main",children:e.children})}function K(e){return(0,t.jsx)("div",{className:"overview-list-tail",children:e.children})}function P(e){let o=(0,i.useRef)(null),a=(0,i.useRef)(null),[l,u]=(0,i.useState)(""),d=n=>{o.current?.removeAttribute("open"),n!==e.value&&e.onChange(n)},b=l.trim().toLowerCase(),s=e.searchable&&b?e.options.filter(n=>n.value.toLowerCase().includes(b)||typeof n.label=="string"&&n.label.toLowerCase().includes(b)):e.options;(0,i.useEffect)(()=>{if(typeof document>"u")return;let n=()=>{o.current?.open&&(o.current.open=!1)},p=h=>{let r=o.current;if(!r?.open)return;let c=h.target;c instanceof Node&&r.contains(c)||n()},m=h=>{h.key==="Escape"&&n()};return document.addEventListener("pointerdown",p,!0),document.addEventListener("keydown",m),()=>{document.removeEventListener("pointerdown",p,!0),document.removeEventListener("keydown",m)}},[]),(0,i.useEffect)(()=>{e.disabled&&o.current?.open&&(o.current.open=!1)},[e.disabled]);let f=["sect-sort-menu",e.disabled?"is-disabled":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("details",{id:e.id,className:f,ref:o,hidden:e.hidden,style:e.style,onToggle:n=>{!e.searchable||!n.currentTarget.open||(u(""),a.current?.focus())},children:[(0,t.jsx)("summary",{"aria-label":e.ariaLabel,"aria-disabled":e.disabled?!0:void 0,tabIndex:e.disabled?-1:void 0,onClick:n=>{e.disabled&&n.preventDefault()},onKeyDown:n=>{e.disabled&&(n.key==="Enter"||n.key===" ")&&n.preventDefault()},children:(0,t.jsx)("span",{className:"sect-sort-value",children:e.label})}),(0,t.jsxs)("div",{className:"sect-sort-pop",children:[e.searchable?(0,t.jsx)("input",{ref:a,className:"sect-sort-search",type:"search",placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,autoComplete:"off",spellCheck:!1,value:l,onChange:n=>u(n.currentTarget.value),onKeyDown:n=>{if(n.key!=="Enter")return;n.preventDefault();let p=s.find(m=>!m.disabled);p&&d(p.value)}}):null,s.map(n=>(0,t.jsx)("button",{type:"button",disabled:n.disabled,"aria-current":e.value===n.value?"true":void 0,onClick:()=>d(n.value),children:n.label},n.value)),e.searchable&&s.length===0?(0,t.jsx)("p",{className:"sect-sort-empty",children:e.searchEmptyLabel}):null]})]})}function $(e){return(0,t.jsx)(P,{...e})}export{k as a,H as b,O as c,J as d,X as e,D as f,A as g,j as h,C as i,z as j,I as k,W as l,q as m,F as n,K as o,P as p,$ as q};
1
+ import{a as S,b as B,d as R}from"./chunk-5THX4DI2.js";import{c as g}from"./chunk-7SZRL6FY.js";var a=g(S(),1),E=g(B(),1),t=g(R(),1);function k(e,o){return e.find(i=>i.value===o)?.label??o}function H(e){let o=e.as??"span";return(0,t.jsx)(o,{style:{display:"contents"},dangerouslySetInnerHTML:{__html:e.html}})}function O(e){let o=["page-loading",e.compact?"page-loading-compact":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:o,role:"status","aria-live":"polite",children:[(0,t.jsx)("i",{className:"page-loading-spin","aria-hidden":"true"}),(0,t.jsx)("span",{children:e.label})]})}function J(e){return(0,t.jsxs)("div",{className:"sect-head overview-panel-head",children:[(0,t.jsx)("h2",{children:e.title}),e.count?(0,t.jsx)("span",{className:"sect-head-count",children:e.count}):null,e.hint?(0,t.jsx)("span",{className:"sect-head-hint",children:e.hint}):null,e.children]})}function X(e){return(0,t.jsx)("a",{className:"sect-head-action",href:e.href,children:e.children})}function D(e){return(0,t.jsx)("div",{className:"sect-head-controls",children:e.children})}function x(e){return e.kind==="plus"?(0,t.jsx)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M8 3.25v9.5M3.25 8h9.5"})}):(0,t.jsxs)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M13.1 6.55A5.35 5.35 0 1 0 13 10.1"}),(0,t.jsx)("path",{d:"M13.15 2.95v3.7H9.45"})]})}function A(e){let{children:o,className:i,type:l="button",...u}=e;return(0,t.jsxs)("button",{...u,type:l,className:["ui-create-action",i].filter(Boolean).join(" "),children:[(0,t.jsx)(x,{kind:"plus"}),(0,t.jsx)("span",{className:"ui-create-action-label",children:o})]})}function j(e){let{label:o,busy:i=!1,className:l,type:u="button",...d}=e;return(0,t.jsx)("button",{...d,type:u,className:["ui-refresh-button",i?"is-loading":"",l].filter(Boolean).join(" "),title:o,"aria-label":o,"aria-busy":i||void 0,children:(0,t.jsx)(x,{kind:"refresh"})})}function T(e,o){return e?.closest("dialog[open]")??o}function C(e){let o=(0,a.useRef)(null),i=(0,a.useRef)(null),[l,u]=(0,a.useState)(!1),[d,b]=(0,a.useState)(null),s=(0,a.useCallback)(()=>{let m=o.current;if(!m||typeof window>"u")return;let h=m.getBoundingClientRect(),r=Math.min(360,Math.max(160,window.innerWidth-48)),c=24+r/2,v=window.innerWidth-24-r/2,w=h.left+h.width/2,y=Math.min(Math.max(w,c),Math.max(c,v)),N=h.top<80;b({left:y,top:N?h.bottom+8:h.top-8,placement:N?"bottom":"top"})},[]),f=(0,a.useCallback)(()=>{i.current&&(clearTimeout(i.current),i.current=null),s(),u(!0)},[s]),n=(0,a.useCallback)(()=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>u(!1),160)},[]);(0,a.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]),(0,a.useEffect)(()=>{if(l)return s(),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0)}},[l,s]);let p=l&&d&&typeof document<"u"?(0,E.createPortal)((0,t.jsx)("span",{className:`ui-info-pop ui-info-pop-floating ui-info-pop-${d.placement}`,role:"tooltip",style:{left:d.left,top:d.top},onMouseEnter:f,onMouseLeave:n,children:e.children}),T(o.current,document.body)):null;return(0,t.jsxs)("span",{ref:o,className:["ui-info-tip",e.className].filter(Boolean).join(" "),tabIndex:e.focusable===!1?void 0:0,"aria-label":e.label,onClick:e.preventClick===!1?void 0:m=>m.preventDefault(),onMouseEnter:f,onMouseLeave:n,onFocus:f,onBlur:n,children:[e.trigger??(0,t.jsx)("span",{className:"ui-info-mark","aria-hidden":"true",children:"?"}),p]})}function z(e){let o=(0,a.useRef)(null),[i,l]=(0,a.useState)(!1),[u,d]=(0,a.useState)(!1),[b,s]=(0,a.useState)(null),f=(0,a.useCallback)(()=>{let r=o.current;if(!r)return!1;let v=(r.querySelector(".ui-overflow-scroll")??r).scrollWidth>r.clientWidth+1;return d(v),v||l(!1),v},[]),n=(0,a.useCallback)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=r.getBoundingClientRect(),v=Math.min(460,Math.max(220,window.innerWidth-48)),w=24+v/2,y=window.innerWidth-24-v/2,N=c.left+c.width/2,M=Math.min(Math.max(N,w),Math.max(w,y)),L=c.top<84;s({left:M,top:L?c.bottom+8:c.top-8,placement:L?"bottom":"top"})},[]),p=(0,a.useCallback)(()=>{if(!(!e.text.trim()||!f())){if(e.showPopover===!1){l(!1);return}n(),l(!0)}},[f,e.showPopover,e.text,n]),m=(0,a.useCallback)(()=>l(!1),[]);(0,a.useEffect)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=window.requestAnimationFrame(f),v=typeof ResizeObserver<"u"?new ResizeObserver(()=>f()):null;return v?.observe(r),window.addEventListener("resize",f),()=>{window.cancelAnimationFrame(c),v?.disconnect(),window.removeEventListener("resize",f)}},[f,e.text]),(0,a.useEffect)(()=>{if(i)return n(),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0)}},[i,n]);let h=e.showPopover!==!1&&i&&b&&typeof document<"u"?(0,E.createPortal)((0,t.jsx)("span",{className:["ui-info-pop","ui-info-pop-floating",`ui-info-pop-${b.placement}`,"ui-overflow-popover",e.popoverClassName].filter(Boolean).join(" "),role:"tooltip",style:{left:b.left,top:b.top},children:e.text}),T(o.current,document.body)):null;return(0,t.jsxs)("span",{ref:o,className:["ui-overflow-text",u?"is-overflowing":"",e.className].filter(Boolean).join(" "),style:e.durationMs?{"--ui-overflow-duration":`${e.durationMs}ms`}:void 0,onMouseEnter:p,onMouseLeave:m,children:[(0,t.jsx)("span",{className:["ui-overflow-scroll",e.textClassName].filter(Boolean).join(" "),children:e.children??e.text}),h]})}function I(e){return(0,t.jsxs)("span",{className:["ui-field-title",e.className].filter(Boolean).join(" "),children:[(0,t.jsx)("span",{className:"ui-field-title-text",children:e.children}),e.help?(0,t.jsx)(C,{label:e.helpLabel,children:e.help}):null]})}function W(e){return(0,t.jsx)("ul",{className:["overview-list",e.className].filter(Boolean).join(" "),id:e.id,children:e.children})}function q(e){let{kind:o,className:i,children:l,...u}=e,d=o?`overview-list-item-${o}`:"";return(0,t.jsx)("li",{...u,className:["overview-list-item",d,i].filter(Boolean).join(" "),children:l})}function F(e){return(0,t.jsx)("div",{className:"overview-list-main",children:e.children})}function K(e){return(0,t.jsx)("div",{className:"overview-list-tail",children:e.children})}function P(e){let o=(0,a.useRef)(null),i=(0,a.useRef)(null),[l,u]=(0,a.useState)(""),d=n=>{o.current?.removeAttribute("open"),n!==e.value&&e.onChange(n)},b=l.trim().toLowerCase(),s=e.searchable&&b?e.options.filter(n=>n.value.toLowerCase().includes(b)||typeof n.label=="string"&&n.label.toLowerCase().includes(b)):e.options;(0,a.useEffect)(()=>{if(typeof document>"u")return;let n=()=>{o.current?.open&&(o.current.open=!1)},p=h=>{let r=o.current;if(!r?.open)return;let c=h.target;c instanceof Node&&r.contains(c)||n()},m=h=>{h.key==="Escape"&&n()};return document.addEventListener("pointerdown",p,!0),document.addEventListener("keydown",m),()=>{document.removeEventListener("pointerdown",p,!0),document.removeEventListener("keydown",m)}},[]),(0,a.useEffect)(()=>{e.disabled&&o.current?.open&&(o.current.open=!1)},[e.disabled]);let f=["sect-sort-menu",e.disabled?"is-disabled":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("details",{id:e.id,className:f,ref:o,hidden:e.hidden,style:e.style,onToggle:n=>{!e.searchable||!n.currentTarget.open||(u(""),i.current?.focus())},children:[(0,t.jsx)("summary",{"aria-label":e.ariaLabel,"aria-disabled":e.disabled?!0:void 0,tabIndex:e.disabled?-1:void 0,onClick:n=>{e.disabled&&n.preventDefault()},onKeyDown:n=>{e.disabled&&(n.key==="Enter"||n.key===" ")&&n.preventDefault()},children:(0,t.jsx)("span",{className:"sect-sort-value",children:e.label})}),(0,t.jsxs)("div",{className:"sect-sort-pop",children:[e.searchable?(0,t.jsx)("input",{ref:i,className:"sect-sort-search",type:"search",placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,autoComplete:"off",spellCheck:!1,value:l,onChange:n=>u(n.currentTarget.value),onKeyDown:n=>{if(n.key!=="Enter")return;n.preventDefault();let p=s.find(m=>!m.disabled);p&&d(p.value)}}):null,s.map(n=>(0,t.jsx)("button",{type:"button",disabled:n.disabled,"aria-current":e.value===n.value?"true":void 0,onClick:()=>d(n.value),children:n.label},n.value)),e.searchable&&s.length===0?(0,t.jsx)("p",{className:"sect-sort-empty",children:e.searchEmptyLabel}):null]})]})}function $(e){return(0,t.jsx)(P,{...e})}export{k as a,H as b,O as c,J as d,X as e,D as f,A as g,j as h,T as i,C as j,z as k,I as l,W as m,q as n,F as o,K as p,P as q,$ as r};