botmux 2.110.0 → 2.111.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 (221) hide show
  1. package/dist/adapters/backend/tmux-backend.d.ts +25 -5
  2. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  3. package/dist/adapters/backend/tmux-backend.js +59 -93
  4. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  5. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  6. package/dist/adapters/backend/tmux-pipe-backend.js +5 -0
  7. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  8. package/dist/adapters/backend/zellij-backend.d.ts +30 -0
  9. package/dist/adapters/backend/zellij-backend.d.ts.map +1 -1
  10. package/dist/adapters/backend/zellij-backend.js +80 -13
  11. package/dist/adapters/backend/zellij-backend.js.map +1 -1
  12. package/dist/adapters/backend/zellij-socket-probe.d.ts +18 -0
  13. package/dist/adapters/backend/zellij-socket-probe.d.ts.map +1 -0
  14. package/dist/adapters/backend/zellij-socket-probe.js +146 -0
  15. package/dist/adapters/backend/zellij-socket-probe.js.map +1 -0
  16. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  17. package/dist/adapters/cli/claude-code.js +5 -0
  18. package/dist/adapters/cli/claude-code.js.map +1 -1
  19. package/dist/adapters/cli/codex-app-turn.d.ts +43 -0
  20. package/dist/adapters/cli/codex-app-turn.d.ts.map +1 -0
  21. package/dist/adapters/cli/codex-app-turn.js +110 -0
  22. package/dist/adapters/cli/codex-app-turn.js.map +1 -0
  23. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  24. package/dist/adapters/cli/codex-app.js +6 -0
  25. package/dist/adapters/cli/codex-app.js.map +1 -1
  26. package/dist/adapters/cli/codex.d.ts.map +1 -1
  27. package/dist/adapters/cli/codex.js +1 -0
  28. package/dist/adapters/cli/codex.js.map +1 -1
  29. package/dist/adapters/cli/runner-input.d.ts +3 -2
  30. package/dist/adapters/cli/runner-input.d.ts.map +1 -1
  31. package/dist/adapters/cli/runner-input.js +7 -4
  32. package/dist/adapters/cli/runner-input.js.map +1 -1
  33. package/dist/adapters/cli/types.d.ts +16 -0
  34. package/dist/adapters/cli/types.d.ts.map +1 -1
  35. package/dist/bot-registry.d.ts +5 -0
  36. package/dist/bot-registry.d.ts.map +1 -1
  37. package/dist/bot-registry.js +1 -0
  38. package/dist/bot-registry.js.map +1 -1
  39. package/dist/codex-app-runner.js +75 -12
  40. package/dist/codex-app-runner.js.map +1 -1
  41. package/dist/core/command-handler.d.ts +11 -0
  42. package/dist/core/command-handler.d.ts.map +1 -1
  43. package/dist/core/command-handler.js +101 -7
  44. package/dist/core/command-handler.js.map +1 -1
  45. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  46. package/dist/core/dashboard-ipc-server.js +69 -11
  47. package/dist/core/dashboard-ipc-server.js.map +1 -1
  48. package/dist/core/doc-comment-prompt.d.ts +57 -0
  49. package/dist/core/doc-comment-prompt.d.ts.map +1 -1
  50. package/dist/core/doc-comment-prompt.js +147 -2
  51. package/dist/core/doc-comment-prompt.js.map +1 -1
  52. package/dist/core/inflight-input-tracker.d.ts +2 -0
  53. package/dist/core/inflight-input-tracker.d.ts.map +1 -1
  54. package/dist/core/inflight-input-tracker.js.map +1 -1
  55. package/dist/core/passthrough-commands.d.ts.map +1 -1
  56. package/dist/core/passthrough-commands.js +1 -1
  57. package/dist/core/passthrough-commands.js.map +1 -1
  58. package/dist/core/persistent-backend.d.ts +4 -0
  59. package/dist/core/persistent-backend.d.ts.map +1 -1
  60. package/dist/core/persistent-backend.js +6 -0
  61. package/dist/core/persistent-backend.js.map +1 -1
  62. package/dist/core/plugins/cli-generation.d.ts +3 -0
  63. package/dist/core/plugins/cli-generation.d.ts.map +1 -1
  64. package/dist/core/plugins/cli-generation.js +1 -0
  65. package/dist/core/plugins/cli-generation.js.map +1 -1
  66. package/dist/core/session-board.d.ts +2 -1
  67. package/dist/core/session-board.d.ts.map +1 -1
  68. package/dist/core/session-board.js +3 -2
  69. package/dist/core/session-board.js.map +1 -1
  70. package/dist/core/session-create.d.ts +38 -0
  71. package/dist/core/session-create.d.ts.map +1 -1
  72. package/dist/core/session-create.js +43 -9
  73. package/dist/core/session-create.js.map +1 -1
  74. package/dist/core/session-manager.d.ts +65 -2
  75. package/dist/core/session-manager.d.ts.map +1 -1
  76. package/dist/core/session-manager.js +285 -68
  77. package/dist/core/session-manager.js.map +1 -1
  78. package/dist/core/session-rename.d.ts +25 -0
  79. package/dist/core/session-rename.d.ts.map +1 -0
  80. package/dist/core/session-rename.js +43 -0
  81. package/dist/core/session-rename.js.map +1 -0
  82. package/dist/core/session-title.d.ts +11 -0
  83. package/dist/core/session-title.d.ts.map +1 -0
  84. package/dist/core/session-title.js +17 -0
  85. package/dist/core/session-title.js.map +1 -0
  86. package/dist/core/trigger-session.d.ts +11 -0
  87. package/dist/core/trigger-session.d.ts.map +1 -1
  88. package/dist/core/trigger-session.js +61 -20
  89. package/dist/core/trigger-session.js.map +1 -1
  90. package/dist/core/types.d.ts +16 -1
  91. package/dist/core/types.d.ts.map +1 -1
  92. package/dist/core/types.js.map +1 -1
  93. package/dist/core/worker-pool.d.ts +6 -2
  94. package/dist/core/worker-pool.d.ts.map +1 -1
  95. package/dist/core/worker-pool.js +48 -15
  96. package/dist/core/worker-pool.js.map +1 -1
  97. package/dist/core/zellij-adopt-discovery.d.ts +17 -0
  98. package/dist/core/zellij-adopt-discovery.d.ts.map +1 -1
  99. package/dist/core/zellij-adopt-discovery.js +24 -4
  100. package/dist/core/zellij-adopt-discovery.js.map +1 -1
  101. package/dist/core/zellij-session-discovery.d.ts +3 -0
  102. package/dist/core/zellij-session-discovery.d.ts.map +1 -1
  103. package/dist/core/zellij-session-discovery.js +1 -0
  104. package/dist/core/zellij-session-discovery.js.map +1 -1
  105. package/dist/daemon.d.ts +3 -0
  106. package/dist/daemon.d.ts.map +1 -1
  107. package/dist/daemon.js +181 -81
  108. package/dist/daemon.js.map +1 -1
  109. package/dist/dashboard/bot-payload.d.ts +1 -0
  110. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  111. package/dist/dashboard/bot-payload.js +1 -0
  112. package/dist/dashboard/bot-payload.js.map +1 -1
  113. package/dist/dashboard/federated-group-core.d.ts +29 -8
  114. package/dist/dashboard/federated-group-core.d.ts.map +1 -1
  115. package/dist/dashboard/federated-group-core.js +68 -6
  116. package/dist/dashboard/federated-group-core.js.map +1 -1
  117. package/dist/dashboard/federation-api.d.ts +10 -9
  118. package/dist/dashboard/federation-api.d.ts.map +1 -1
  119. package/dist/dashboard/federation-api.js +82 -3
  120. package/dist/dashboard/federation-api.js.map +1 -1
  121. package/dist/dashboard/federation-spoke-api.d.ts +8 -9
  122. package/dist/dashboard/federation-spoke-api.d.ts.map +1 -1
  123. package/dist/dashboard/federation-spoke-api.js +7 -2
  124. package/dist/dashboard/federation-spoke-api.js.map +1 -1
  125. package/dist/dashboard/team-group.d.ts +21 -0
  126. package/dist/dashboard/team-group.d.ts.map +1 -1
  127. package/dist/dashboard/team-group.js +16 -0
  128. package/dist/dashboard/team-group.js.map +1 -1
  129. package/dist/dashboard/web/bot-defaults-page.d.ts +10 -0
  130. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  131. package/dist/dashboard/web/bot-defaults-page.js +33 -1
  132. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  133. package/dist/dashboard/web/bot-defaults.d.ts +1 -0
  134. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  135. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  136. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  137. package/dist/dashboard/web/i18n.js +8 -0
  138. package/dist/dashboard/web/i18n.js.map +1 -1
  139. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  140. package/dist/dashboard/web/sessions.js +5 -1
  141. package/dist/dashboard/web/sessions.js.map +1 -1
  142. package/dist/dashboard/web/ui.d.ts.map +1 -1
  143. package/dist/dashboard/web/ui.js +2 -4
  144. package/dist/dashboard/web/ui.js.map +1 -1
  145. package/dist/dashboard-web/app.js +1 -1
  146. package/dist/dashboard-web/chunks/bot-defaults-page-7T7DPOV6.js +4 -0
  147. package/dist/dashboard-web/chunks/{chunk-SHZ5PUYF.js → chunk-IGXYYRYJ.js} +1 -1
  148. package/dist/dashboard-web/chunks/{chunk-GF7DU2B5.js → chunk-ISOD7VDX.js} +1 -1
  149. package/dist/dashboard-web/chunks/{chunk-TORH53FI.js → chunk-OEJIT66L.js} +1 -1
  150. package/dist/dashboard-web/chunks/{chunk-7UY333A5.js → chunk-PNK3HQBI.js} +2 -2
  151. package/dist/dashboard-web/chunks/{chunk-IAES47WV.js → chunk-YQFXGRSD.js} +1 -1
  152. package/dist/dashboard-web/chunks/{connectors-page-N6GKR6JL.js → connectors-page-UQ4QBE45.js} +1 -1
  153. package/dist/dashboard-web/chunks/{groups-page-IK3GXSQU.js → groups-page-5AJPPJH2.js} +1 -1
  154. package/dist/dashboard-web/chunks/{insights-page-T2PDFPGO.js → insights-page-R3DFECX4.js} +1 -1
  155. package/dist/dashboard-web/chunks/{legacy-workflow-page-YQPLKH74.js → legacy-workflow-page-QMC7OZXH.js} +1 -1
  156. package/dist/dashboard-web/chunks/{monitor-room-7EL3LVJS.js → monitor-room-NLMKJLDY.js} +1 -1
  157. package/dist/dashboard-web/chunks/{monitoring-page-BCADF56L.js → monitoring-page-EHSOX4GV.js} +1 -1
  158. package/dist/dashboard-web/chunks/{office-page-KP7BDLAE.js → office-page-OXJKFJ4R.js} +1 -1
  159. package/dist/dashboard-web/chunks/{overview-page-6GWDHDTI.js → overview-page-GJHIVXJF.js} +1 -1
  160. package/dist/dashboard-web/chunks/{roles-page-2OFR2IBG.js → roles-page-6ZODQISW.js} +1 -1
  161. package/dist/dashboard-web/chunks/{schedules-page-TAWMTSNL.js → schedules-page-DAGMHVCH.js} +1 -1
  162. package/dist/dashboard-web/chunks/{sessions-page-42QZHPPP.js → sessions-page-NNZIDHZM.js} +1 -1
  163. package/dist/dashboard-web/chunks/{settings-page-OVKXUXSV.js → settings-page-LJIXX5LQ.js} +1 -1
  164. package/dist/dashboard-web/chunks/{skills-page-Y2EC3NBI.js → skills-page-J7EVUHXP.js} +1 -1
  165. package/dist/dashboard-web/chunks/{team-federation-page-QYMJUH5F.js → team-federation-page-YM5JBIII.js} +1 -1
  166. package/dist/dashboard-web/chunks/{v3-page-FZJCW5QG.js → v3-page-YLYVHGKD.js} +1 -1
  167. package/dist/dashboard-web/chunks/{whiteboards-page-FBHBBCAL.js → whiteboards-page-75N2U6W4.js} +1 -1
  168. package/dist/dashboard.js +46 -7
  169. package/dist/dashboard.js.map +1 -1
  170. package/dist/i18n/en.d.ts.map +1 -1
  171. package/dist/i18n/en.js +8 -0
  172. package/dist/i18n/en.js.map +1 -1
  173. package/dist/i18n/zh.d.ts.map +1 -1
  174. package/dist/i18n/zh.js +8 -0
  175. package/dist/i18n/zh.js.map +1 -1
  176. package/dist/im/lark/card-handler.d.ts.map +1 -1
  177. package/dist/im/lark/card-handler.js +96 -32
  178. package/dist/im/lark/card-handler.js.map +1 -1
  179. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  180. package/dist/im/lark/event-dispatcher.js +16 -5
  181. package/dist/im/lark/event-dispatcher.js.map +1 -1
  182. package/dist/services/bot-config-store.d.ts.map +1 -1
  183. package/dist/services/bot-config-store.js +1 -0
  184. package/dist/services/bot-config-store.js.map +1 -1
  185. package/dist/services/card-prefs-store.d.ts +4 -0
  186. package/dist/services/card-prefs-store.d.ts.map +1 -1
  187. package/dist/services/card-prefs-store.js +8 -0
  188. package/dist/services/card-prefs-store.js.map +1 -1
  189. package/dist/services/default-worktree.d.ts.map +1 -1
  190. package/dist/services/default-worktree.js +4 -1
  191. package/dist/services/default-worktree.js.map +1 -1
  192. package/dist/services/group-creator.d.ts +19 -0
  193. package/dist/services/group-creator.d.ts.map +1 -1
  194. package/dist/services/group-creator.js +62 -28
  195. package/dist/services/group-creator.js.map +1 -1
  196. package/dist/services/groups-store.d.ts +7 -5
  197. package/dist/services/groups-store.d.ts.map +1 -1
  198. package/dist/services/groups-store.js +10 -8
  199. package/dist/services/groups-store.js.map +1 -1
  200. package/dist/setup/ensure-tmux.d.ts +17 -0
  201. package/dist/setup/ensure-tmux.d.ts.map +1 -1
  202. package/dist/setup/ensure-tmux.js +72 -1
  203. package/dist/setup/ensure-tmux.js.map +1 -1
  204. package/dist/types.d.ts +56 -6
  205. package/dist/types.d.ts.map +1 -1
  206. package/dist/utils/child-env.d.ts +27 -0
  207. package/dist/utils/child-env.d.ts.map +1 -1
  208. package/dist/utils/child-env.js +59 -0
  209. package/dist/utils/child-env.js.map +1 -1
  210. package/dist/utils/codex-app-context.d.ts +9 -0
  211. package/dist/utils/codex-app-context.d.ts.map +1 -0
  212. package/dist/utils/codex-app-context.js +47 -0
  213. package/dist/utils/codex-app-context.js.map +1 -0
  214. package/dist/utils/pending-input-queue.d.ts +2 -0
  215. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  216. package/dist/utils/pending-input-queue.js +6 -0
  217. package/dist/utils/pending-input-queue.js.map +1 -1
  218. package/dist/worker.js +197 -38
  219. package/dist/worker.js.map +1 -1
  220. package/package.json +1 -1
  221. package/dist/dashboard-web/chunks/bot-defaults-page-QXZ2VFJJ.js +0 -4
@@ -1 +1 @@
1
- import{a as ye,b as we}from"./chunks/chunk-IAES47WV.js";import{a as fe}from"./chunks/chunk-BD3PZGH2.js";import{a as q,c as be}from"./chunks/chunk-SHZ5PUYF.js";import{i as ve}from"./chunks/chunk-SRIE4MLQ.js";import{C as pe,D as K,a as I,b as le,e as ce,p as g,q as f,r as de,s as ue,x as he,z as me}from"./chunks/chunk-7UY333A5.js";import{a as Ve,c as je,d as ge}from"./chunks/chunk-5THX4DI2.js";import{c as $}from"./chunks/chunk-7SZRL6FY.js";var Ue=$(je(),1),p=$(Ve(),1);var X="botmux:close-theme-menu",qe={palette:'<circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><path d="M12 2a10 10 0 0 0 0 20h1.7a2.3 2.3 0 0 0 1.6-4c-.5-.5-.2-1.3.5-1.3H17a5 5 0 0 0 5-5 9.7 9.7 0 0 0-10-9.7z"/>',monitor:'<rect width="20" height="14" x="2" y="3" rx="2"/><line x1="8" x2="16" y1="21" y2="21"/><line x1="12" x2="12" y1="17" y2="21"/>',sun:'<circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/>',moon:'<path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/>',cpu:'<path d="M12 20v2"/><path d="M12 2v2"/><path d="M17 20v2"/><path d="M17 2v2"/><path d="M2 12h2"/><path d="M2 17h2"/><path d="M2 7h2"/><path d="M20 12h2"/><path d="M20 17h2"/><path d="M20 7h2"/><path d="M7 20v2"/><path d="M7 2v2"/><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="8" y="8" width="8" height="8" rx="1"/>',zap:'<path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/>',chevron:'<path d="m6 9 6 6 6-6"/>'},Me=[{labelKey:"theme.base",options:[{value:"system",labelKey:"status.system",icon:"monitor"},{value:"light",labelKey:"status.light",icon:"sun"},{value:"dark",labelKey:"status.dark",icon:"moon"}]},{labelKey:"theme.skins",options:[{value:"cyber",labelKey:"skin.cyber",icon:"cpu"},{value:"fallout",labelKey:"skin.fallout",icon:"zap"}]}],xe=Me.flatMap(e=>e.options),y=!1,O=null,H=null,Ge=70,Xe=120;function G(e){return`<svg class="tm-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${qe[e]??""}</svg>`}function Je(e){return e.replace(/[&<>"]/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[n])}function Ee(){let e=document.getElementById("theme-menu"),n=document.getElementById("theme-menu-btn"),o=document.getElementById("theme-menu-pop");if(!e||!n||!o||e.dataset.themeMenuInit==="1")return;e.dataset.themeMenuInit="1",o.innerHTML=Me.map(s=>`<div class="tm-group" data-label-key="${s.labelKey}"></div>`+s.options.map(u=>`<button type="button" class="tm-item" role="option" data-value="${u.value}"><span class="tm-ic">${G(u.icon)}</span><span class="tm-label" data-label-key="${u.labelKey}"></span></button>`).join("")).join("");let r=()=>{if(!y)return;let s=n.getBoundingClientRect(),u=12,c=Math.min(Math.max(o.offsetWidth||216,216),Math.max(0,window.innerWidth-u*2)),L=u+c/2,v=window.innerWidth-u-c/2,b=s.left+s.width/2,E=Math.min(Math.max(b,L),Math.max(L,v)),j=Math.max(180,window.innerHeight-s.bottom-20);o.style.setProperty("--theme-menu-pop-left",`${Math.round(E)}px`),o.style.setProperty("--theme-menu-pop-top",`${Math.round(s.bottom+8)}px`),o.style.setProperty("--theme-menu-pop-max-height",`${Math.round(j)}px`)},a=s=>{O!=null&&(window.clearTimeout(O),O=null),H!=null&&(window.clearTimeout(H),H=null),y=s,n.setAttribute("aria-expanded",String(y)),document.body.classList.toggle("theme-menu-open",y),y?(o.hidden=!1,r(),window.requestAnimationFrame(()=>e.classList.add("open"))):(e.classList.remove("open"),H=window.setTimeout(()=>{H=null,y||(o.hidden=!0)},Xe))},d=()=>a(!0),l=()=>{O==null&&(O=window.setTimeout(()=>a(!1),Ge))},h=s=>{s.pointerType!=="touch"&&d()},i=s=>{s.pointerType!=="touch"&&l()};e.addEventListener("pointerenter",h),e.addEventListener("pointerleave",i),o.addEventListener("pointerenter",h),o.addEventListener("pointerleave",i),n.addEventListener("click",s=>{s.stopPropagation(),a(!y)}),n.addEventListener("focus",()=>{n.matches(":focus-visible")&&d()}),e.addEventListener("focusout",s=>{let u=s.relatedTarget;(!(u instanceof Node)||!e.contains(u))&&l()}),o.addEventListener("click",s=>{let u=s.target.closest(".tm-item");u&&(g.setTheme(u.dataset.value??"system"),a(!1))}),document.addEventListener("click",s=>{y&&!e.contains(s.target)&&a(!1)}),document.addEventListener("pointermove",s=>{if(!y||s.pointerType==="touch")return;let u=s.target;u instanceof Node&&e.contains(u)||l()}),document.addEventListener("keydown",s=>{s.key==="Escape"&&y&&a(!1)}),window.addEventListener("resize",r),window.addEventListener("scroll",r,!0),window.addEventListener(X,()=>{y&&a(!1)}),J()}function J(){let e=document.getElementById("theme-menu-btn");if(!e)return;let n=xe.find(o=>o.value===g.theme)??xe[0];e.innerHTML=`<span class="tm-ic">${G("palette")}</span><span class="tm-current">${Je(f(n.labelKey))}</span><span class="tm-chev">${G("chevron")}</span>`,document.querySelectorAll("#theme-menu-pop [data-label-key]").forEach(o=>{o.textContent=f(o.dataset.labelKey??"")}),document.querySelectorAll("#theme-menu-pop .tm-item").forEach(o=>{o.classList.toggle("active",o.dataset.value===g.theme)})}function m(e,n,o,r,a=!1){return{id:e,routePrefix:n,rerenderOnUiChange:a,load:async()=>(await o())[r]}}var Ye=[{id:"plugins",routePrefix:"#/plugins",rerenderOnUiChange:!1,load:async()=>{let e=await import("./chunks/plugin-page-7FW2LPJH.js");return n=>e.renderPluginPage(n)}},m("legacy-workflow","#/legacy-workflow",()=>import("./chunks/legacy-workflow-page-YQPLKH74.js"),"renderLegacyWorkflowPage"),m("workflows","#/workflows",()=>import("./chunks/v3-page-FZJCW5QG.js"),"renderV3RunsPage"),m("groups","#/groups",()=>import("./chunks/groups-page-IK3GXSQU.js"),"renderGroupsPage"),m("settings","#/settings",()=>import("./chunks/settings-page-OVKXUXSV.js"),"renderSettingsPage"),m("bot-defaults","#/bot-defaults",()=>import("./chunks/bot-defaults-page-QXZ2VFJJ.js"),"renderBotDefaultsPage"),m("skills","#/skills",()=>import("./chunks/skills-page-Y2EC3NBI.js"),"renderSkillsPage"),m("connectors-logs","#/connectors/logs",()=>import("./chunks/connectors-page-N6GKR6JL.js"),"renderConnectorsLogsPage"),m("webhook-logs","#/webhook-logs",()=>import("./chunks/connectors-page-N6GKR6JL.js"),"renderConnectorsLogsPage"),m("connectors","#/connectors",()=>import("./chunks/connectors-page-N6GKR6JL.js"),"renderConnectorsPage"),m("team-manage","#/team/manage",()=>import("./chunks/team-federation-page-QYMJUH5F.js"),"renderTeamManagePage"),m("team","#/team",()=>import("./chunks/team-federation-page-QYMJUH5F.js"),"renderTeamFederationPage"),m("roles-profile","#/roles/profile",()=>import("./chunks/roles-page-2OFR2IBG.js"),"renderRoleProfilesPage"),m("roles","#/roles",()=>import("./chunks/roles-page-2OFR2IBG.js"),"renderRolesPage"),m("schedules","#/schedules",()=>import("./chunks/schedules-page-TAWMTSNL.js"),"renderSchedulesPage"),m("whiteboards","#/whiteboards",()=>import("./chunks/whiteboards-page-FBHBBCAL.js"),"renderWhiteboardsPage"),m("monitoring","#/monitoring",()=>import("./chunks/monitoring-page-BCADF56L.js"),"renderMonitoringPage"),m("sessions","#/sessions",()=>import("./chunks/sessions-page-42QZHPPP.js"),"renderSessionsPage"),m("monitor-room","#/monitor-room",()=>import("./chunks/monitor-room-7EL3LVJS.js"),"renderMonitorRoomPage",!0),m("office","#/office",()=>import("./chunks/office-page-KP7BDLAE.js"),"renderOfficePage"),m("insights","#/insights",()=>import("./chunks/insights-page-T2PDFPGO.js"),"renderInsightsPage")];function Te(e){return Ye.find(n=>n.exact?e===n.routePrefix:e.startsWith(n.routePrefix))}async function Le(){let e=await import("./chunks/overview-page-6GWDHDTI.js");return n=>e.renderOverviewPage(n)}function Se(){return{seq:0,pageDispose:null,rerenderOnUiChange:!0}}function ke(e){let n=++e.seq;return e.pageDispose&&(e.pageDispose(),e.pageDispose=null),n}function Ne(e,n){return n===e.seq}async function Re(e,n,o,r,a={}){let d=await r();if(!Ne(e,n))return!1;let l=d(o);return Ne(e,n)?(e.pageDispose=typeof l=="function"?l:null,e.rerenderOnUiChange=a.rerenderOnUiChange??!0,!0):(typeof l=="function"&&l(),!1)}var Qe=new Set(["auto","scroll","overlay"]),U=28,x=3,N=6,Oe=!1,Ce=null,He=new WeakMap,M=new Map,Pe=null,De=null,Y=0,Q=0,P=null;function Ze(e){return e.closest("dialog[open]")??document.body}function et(e){let n=He.get(e);if(n?.isConnected)return n;let o=document.createElement("div");return o.className="floating-scrollbar-layer",o.setAttribute("aria-hidden","true"),e.appendChild(o),He.set(e,o),o}function tt(e){return Qe.has(e)}function Z(e,n){let o=getComputedStyle(e),r=n==="y"?o.overflowY:o.overflowX;return tt(r)?n==="y"?e.scrollHeight-e.clientHeight>1:e.scrollWidth-e.clientWidth>1:!1}function nt(e){if(!e.isConnected||e.closest("[hidden]"))return!1;let n=e.getBoundingClientRect();return n.width>0&&n.height>0&&n.bottom>0&&n.right>0&&n.top<window.innerHeight&&n.left<window.innerWidth}function ot(e){return[e,...Array.from(e.querySelectorAll("*"))].filter(o=>nt(o)&&(Z(o,"x")||Z(o,"y")))}function W(e){e.hideTimer!==void 0&&window.clearTimeout(e.hideTimer),e.track.remove()}function rt(e,n){let o=M.get(e);o||(o={},M.set(e,o));let r=o[n],a=Ze(e),d=et(a);if(r?.track.parentElement===d)return r;r&&W(r);let l=document.createElement("div"),h=document.createElement("div");l.className=`floating-scrollbar floating-scrollbar-${n}`,h.className="floating-scrollbar-thumb",l.appendChild(h),d.appendChild(l);let i={target:e,axis:n,track:l,thumb:h,hideTimer:void 0};return o[n]=i,i}function ee(e,n=!1){e.track.classList.add("is-visible"),e.hideTimer!==void 0&&window.clearTimeout(e.hideTimer),e.hideTimer=n?void 0:window.setTimeout(()=>{e.track.classList.remove("is-visible","is-active"),e.hideTimer=void 0},900)}function at(e){let{target:n,axis:o,track:r,thumb:a}=e,d=n.getBoundingClientRect();if(o==="y"){let L=Math.max(0,d.top+x),v=Math.min(window.innerHeight,d.bottom-x),b=Math.max(0,v-L);if(b<U||n.scrollHeight<=n.clientHeight){r.hidden=!0;return}let E=Math.max(U,Math.round(b*n.clientHeight/n.scrollHeight)),j=Math.max(1,n.scrollHeight-n.clientHeight),Fe=Math.round((b-E)*n.scrollTop/j);r.hidden=!1,r.style.left=`${Math.min(window.innerWidth-N-x,Math.max(x,d.right-N-x))}px`,r.style.top=`${L}px`,r.style.width=`${N}px`,r.style.height=`${b}px`,a.style.width="100%",a.style.height=`${E}px`,a.style.transform=`translate3d(0, ${Fe}px, 0)`;return}let l=Math.max(0,d.left+x),h=Math.min(window.innerWidth,d.right-x),i=Math.max(0,h-l);if(i<U||n.scrollWidth<=n.clientWidth){r.hidden=!0;return}let s=Math.max(U,Math.round(i*n.clientWidth/n.scrollWidth)),u=Math.max(1,n.scrollWidth-n.clientWidth),c=Math.round((i-s)*n.scrollLeft/u);r.hidden=!1,r.style.left=`${l}px`,r.style.top=`${Math.min(window.innerHeight-N-x,Math.max(x,d.bottom-N-x))}px`,r.style.width=`${i}px`,r.style.height=`${N}px`,a.style.width=`${s}px`,a.style.height="100%",a.style.transform=`translate3d(${c}px, 0, 0)`}function S(){Y||(Y=window.requestAnimationFrame(()=>{Y=0,st()}))}function it(){Q||(Q=window.setTimeout(()=>{Q=0,S()},120))}function st(){let e=Ce;if(!e)return;let n=new Set(ot(e));for(let[o,r]of M)n.has(o)||(r.x&&W(r.x),r.y&&W(r.y),M.delete(o));for(let o of n){let r=o===P;for(let a of["x","y"]){let d=M.get(o);if(!Z(o,a)){let h=d?.[a];h&&(W(h),delete d?.[a]);continue}let l=rt(o,a);at(l),r&&ee(l,!0)}}}function lt(e){if(!(e instanceof HTMLElement))return;let n=M.get(e);if(n)for(let o of Object.values(n))o&&(o.track.classList.add("is-active"),ee(o))}function ct(e){for(let n=e;n;n=n.parentElement)if(n instanceof HTMLElement&&M.has(n))return n;return null}function Ae(e){if(P===e)return;let n=P?M.get(P):void 0;if(P=e,n)for(let r of Object.values(n))r?.track.classList.remove("is-visible");let o=e?M.get(e):void 0;if(o)for(let r of Object.values(o))r&&ee(r,!0)}function Be(e){Oe||(Oe=!0,Ce=e,document.documentElement.classList.add("floating-scrollbars-on"),Pe=typeof ResizeObserver>"u"?null:new ResizeObserver(S),Pe?.observe(e),De=new MutationObserver(n=>{for(let o of n){let r=o.target;if(!(r instanceof Element&&r.closest(".floating-scrollbar-layer"))){it();return}}}),De.observe(e,{attributes:!0,attributeFilter:["class","style","hidden","open"],childList:!0,subtree:!0}),document.addEventListener("scroll",n=>{lt(n.target),S()},!0),window.addEventListener("resize",S),window.addEventListener("hashchange",S),document.addEventListener("pointermove",n=>{Ae(ct(document.elementFromPoint(n.clientX,n.clientY)))}),document.addEventListener("pointerleave",()=>Ae(null)),S())}var t=$(ge(),1),dt=["roles","role-profiles","bot-defaults","skills","plugins","team","connectors","insights","whiteboards"],D=[{id:"overview",href:"#/",labelKey:"nav.overview",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"1.5",y:"1.5",width:"5.4",height:"5.4",rx:"1.5"}),(0,t.jsx)("rect",{x:"9.1",y:"1.5",width:"5.4",height:"5.4",rx:"1.5"}),(0,t.jsx)("rect",{x:"1.5",y:"9.1",width:"5.4",height:"5.4",rx:"1.5"}),(0,t.jsx)("rect",{x:"9.1",y:"9.1",width:"5.4",height:"5.4",rx:"1.5"})]})},{id:"sessions",href:"#/sessions",labelKey:"nav.sessions",icon:(0,t.jsx)("path",{d:"M2 3.5h12v7H6l-3 3v-3H2z"})},{id:"groups",href:"#/groups",labelKey:"nav.groups",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"5.6",cy:"5.8",r:"2.4"}),(0,t.jsx)("circle",{cx:"11",cy:"6.8",r:"1.9"}),(0,t.jsx)("path",{d:"M1.8 13.2c.5-2.4 2-3.6 3.8-3.6s3.3 1.2 3.8 3.6M9.8 12.6c.4-1.7 1.5-2.6 2.8-2.6 1 0 1.9.5 2.4 1.6"})]})},{id:"roles",href:"#/roles",labelKey:"nav.roles",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M8 1.8l5.2 2v3.4c0 3.4-2.2 5.9-5.2 7-3-1.1-5.2-3.6-5.2-7V3.8z"}),(0,t.jsx)("path",{d:"M5.8 8l1.6 1.6 2.8-3"})]})},{id:"monitoring",href:"#/monitoring",labelKey:"nav.monitoring",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M2 9.2h2.3l1.3-4.8 2.5 8.4 1.8-5.1h4.1"}),(0,t.jsx)("path",{d:"M2 2.5h12v11H2z"})]})},{id:"insights",href:"#/insights",labelKey:"nav.insights",manage:!0,icon:(0,t.jsx)(t.Fragment,{children:(0,t.jsx)("path",{d:"M2 2v12h12M5 11V7M8.5 11V4.5M12 11V8.5"})})},{id:"workflows",href:"#/workflows",labelKey:"nav.workflows",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"3.4",cy:"3.6",r:"1.9"}),(0,t.jsx)("circle",{cx:"3.4",cy:"12.4",r:"1.9"}),(0,t.jsx)("circle",{cx:"12.6",cy:"8",r:"1.9"}),(0,t.jsx)("path",{d:"M5.2 4.4l5.6 2.8M5.2 11.6l5.6-2.8"})]})},{id:"schedules",href:"#/schedules",labelKey:"nav.schedules",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"6.2"}),(0,t.jsx)("path",{d:"M8 4.5V8l2.4 1.6"})]})},{id:"whiteboards",href:"#/whiteboards",labelKey:"nav.whiteboards",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"2.2",y:"2.2",width:"11.6",height:"11.6",rx:"2"}),(0,t.jsx)("path",{d:"M4.8 5.2h6.4M4.8 8h6.4M4.8 10.8h4"})]})},{id:"office",href:"#/office",labelKey:"nav.office",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"3",y:"4",width:"10",height:"7",rx:"2"}),(0,t.jsx)("circle",{cx:"6",cy:"7.5",r:"1"}),(0,t.jsx)("circle",{cx:"10",cy:"7.5",r:"1"}),(0,t.jsx)("path",{d:"M8 4V2M4.5 11v2M11.5 11v2"})]})},{id:"bot-defaults",href:"#/bot-defaults",labelKey:"nav.botDefaults",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"2.5",y:"5",width:"11",height:"8",rx:"2"}),(0,t.jsx)("circle",{cx:"5.8",cy:"9",r:"1"}),(0,t.jsx)("circle",{cx:"10.2",cy:"9",r:"1"}),(0,t.jsx)("path",{d:"M8 5V2.5M5.5 13v1.2M10.5 13v1.2"})]})},{id:"skills",href:"#/skills",labelKey:"nav.skills",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M3 2.5h10v3H3zM3 7h10v6.5H3z"}),(0,t.jsx)("path",{d:"M5.4 9.2h5.2M5.4 11.2h3.8"})]})},{id:"plugins",href:"#/plugins",label:"\u63D2\u4EF6",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M6.4 1.8h3.2v3h2.8v3.2H9.6v2.8H6.4V8H3.6V4.8h2.8z"}),(0,t.jsx)("path",{d:"M2.2 11.8h11.6v2.4H2.2z"})]})},{id:"team",href:"#/team",labelKey:"nav.team",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"6.2"}),(0,t.jsx)("path",{d:"M1.8 8h12.4M8 1.8c-2 1.8-2 10.6 0 12.4 2-1.8 2-10.6 0-12.4z"})]})},{id:"connectors",href:"#/connectors",labelKey:"nav.connectors",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M5.5 6.5v-3a2.5 2.5 0 0 1 5 0v3"}),(0,t.jsx)("rect",{x:"3.5",y:"6.5",width:"9",height:"7",rx:"2"})]})},{id:"settings",href:"#/settings",labelKey:"nav.settings",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M8 1.75 9.35 2.05 10 3.28l1.38.3 1.04-.96.96.96-.96 1.04.3 1.38 1.23.65L14.25 8l-.3 1.35-1.23.65-.3 1.38.96 1.04-.96.96-1.04-.96-1.38.3-.65 1.23L8 14.25l-1.35-.3L6 12.72l-1.38-.3-1.04.96-.96-.96.96-1.04-.3-1.38-1.23-.65L1.75 8l.3-1.35 1.23-.65.3-1.38-.96-1.04.96-.96 1.04.96 1.38-.3.65-1.23z"}),(0,t.jsx)("circle",{cx:"8",cy:"8",r:"2"})]})}],A=[],R=!0,ie=!1,We=location.hash||"#/",k=null,C=!1,B=null,_=null,F=null,ze=null,T=Se(),_e="botmux.ownerAvatar.v1",ut=new Set(["working","analyzing","active","starting"]),se="botmux:auth-expired";function te(e){return(0,t.jsx)("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:e})}function $e(e){return e.labelKey?f(e.labelKey):e.label??""}function ht(e,n){let o=n||"#/";return e.id==="plugins"&&A.some(r=>r.href===o||o.startsWith(`${r.href}?`)||o.startsWith(`${r.href}/`))?!1:e.id==="workflows"&&(o==="#/legacy-workflow"||o.startsWith("#/legacy-workflow?")||o.startsWith("#/legacy-workflow/"))||e.id==="sessions"&&(o==="#/monitor-room"||o.startsWith("#/monitor-room?")||o.startsWith("#/monitor-room/"))||e.id==="connectors"&&(o==="#/webhook-logs"||o.startsWith("#/webhook-logs?")||o.startsWith("#/webhook-logs/"))?!0:e.href===o||e.href!=="#/"&&(o.startsWith(`${e.href}?`)||o.startsWith(`${e.href}/`))}function mt(){if(A.length===0)return D;let e=D.findIndex(n=>n.id==="plugins");return e<0?[...D,...A]:[...D.slice(0,e+1),...A,...D.slice(e+1)]}function pt(e){let n=[];return ht(e,We)&&n.push("active"),e.id==="settings"&&C&&n.push("nav-has-update"),n.length?n.join(" "):void 0}function Ie(){let e=B?`v${B}`:"";return _==="codex"?f("update.navRuntimeBadgeTitle",{version:e}):f("update.navBadgeTitle",{version:e})}function ft(e){F=e}function ne(){if(F)return F;let e=document.getElementById("root");if(!e)throw new Error("dashboard root is not mounted");return F=e,e}function gt(){return(0,p.useEffect)(()=>{Ee()},[]),(0,p.useEffect)(()=>{J()}),(0,t.jsxs)("div",{className:"theme-menu",id:"theme-menu",children:[(0,t.jsx)("button",{type:"button",className:"theme-menu-btn",id:"theme-menu-btn","aria-haspopup":"listbox","aria-expanded":"false","aria-label":"Theme",children:(0,t.jsx)("span",{className:"tm-ic",children:(0,t.jsxs)("svg",{className:"tm-svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,t.jsx)("circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor"}),(0,t.jsx)("path",{d:"M12 2a10 10 0 0 0 0 20h1.7a2.3 2.3 0 0 0 1.6-4c-.5-.5-.2-1.3.5-1.3H17a5 5 0 0 0 5-5 9.7 9.7 0 0 0-10-9.7z"})]})})}),(0,t.jsx)("div",{className:"theme-menu-pop",id:"theme-menu-pop",role:"listbox",hidden:!0})]})}function vt(){let e=[...I.sessions.values()],n=e.filter(i=>i.status!=="closed"),o=n.map(i=>({s:i,reason:pe(i)})).filter(i=>!!i.reason).sort((i,s)=>K(i.s)-K(s.s)),r=new Set(o.map(i=>String(i.s.sessionId??""))),a=n.filter(i=>ut.has(String(i.status))&&!r.has(String(i.sessionId??""))).length,d=o[0]??null,l=we(e).filter(i=>i.online||i.active.length>0).length,h=Math.max(0,n.length-o.length-a);return{working:a,attention:o.length,idle:h,onlineBots:l,attentionNotice:d?{count:o.length,time:ue(K(d.s)),bot:me(d.s),reason:d.reason}:null}}function z(e){return(0,t.jsxs)("div",{className:`topbar-status-row${e.hot?" topbar-status-row-hot":""}`,children:[(0,t.jsx)("span",{children:e.label}),(0,t.jsx)("b",{className:e.value>0?"status-count-on":void 0,children:e.value})]})}function bt(e){let{attention:n,idle:o,working:r}=e.summary,a=r+n+o,d=a===0?"conic-gradient(var(--border) 0 360deg)":(()=>{let l=r/a*360,h=l+n/a*360;return`conic-gradient(var(--accent) 0 ${l}deg, var(--warning) ${l}deg ${h}deg, var(--success) ${h}deg 360deg)`})();return(0,t.jsxs)("div",{className:"topbar-status-donut-wrap","aria-hidden":"true",children:[(0,t.jsx)("div",{className:"topbar-status-donut",style:{background:d}}),(0,t.jsxs)("div",{className:"topbar-status-donut-center",children:[(0,t.jsx)("b",{children:a}),(0,t.jsx)("span",{children:f("overview.openSessions")})]})]})}function oe(){window.dispatchEvent(new Event(X))}function yt(e){let{autoOpen:n=!1,summary:o}=e,[r,a]=(0,p.useState)(!1),[d,l]=(0,p.useState)(!1),[h,i]=(0,p.useState)(!1),s=(0,p.useRef)(null),u=n&&!d,c=r||u;return(0,p.useEffect)(()=>{n||l(!1)},[n]),(0,p.useEffect)(()=>{if(!c)return;let v=b=>{let E=b.target;E instanceof Node&&s.current?.contains(E)||(a(!1),l(!0))};return document.addEventListener("pointerdown",v),()=>document.removeEventListener("pointerdown",v)},[c]),(0,t.jsxs)("div",{ref:s,className:`topbar-status-menu${u?" topbar-status-auto-open":""}${r?" is-open":""}${h?" suppress-hover":""}`,onPointerEnter:oe,onPointerLeave:()=>i(!1),onFocusCapture:oe,onBlur:v=>{let b=v.relatedTarget;(!(b instanceof Node)||!v.currentTarget.contains(b))&&a(!1)},onKeyDown:v=>{v.key==="Escape"&&(a(!1),l(!0),i(!0),v.currentTarget.querySelector("#status")?.focus())},children:[(0,t.jsx)("button",{type:"button",id:"status",className:"connection-status","aria-haspopup":"true","aria-expanded":c,onClick:()=>{if(oe(),c){a(!1),l(!0),i(!0);return}i(!1),a(!0)},children:f("overview.sessionOverview")}),(0,t.jsxs)("div",{className:"topbar-status-pop",children:[o.attentionNotice?(0,t.jsxs)("a",{className:"topbar-attention-notice",href:"#/sessions",children:[(0,t.jsx)("span",{className:"topbar-attention-dot","aria-hidden":"true"}),(0,t.jsxs)("span",{className:"topbar-attention-copy",children:[(0,t.jsx)("b",{children:f("strip.pending",{count:o.attentionNotice.count})}),(0,t.jsx)("small",{children:f("strip.longestCompact",{time:o.attentionNotice.time,bot:o.attentionNotice.bot,reason:o.attentionNotice.reason})})]}),(0,t.jsx)("span",{className:"topbar-attention-action",children:f("strip.handle")})]}):null,(0,t.jsxs)("div",{className:"topbar-status-list",children:[(0,t.jsx)(z,{label:f("overview.workingSessions"),value:o.working}),(0,t.jsx)(z,{label:f("overview.idleSessions"),value:o.idle}),(0,t.jsx)(z,{label:f("overview.attention"),value:o.attention,hot:o.attention>0}),(0,t.jsx)(z,{label:f("overview.onlineBots"),value:o.onlineBots})]}),(0,t.jsx)(bt,{summary:o})]})]})}function wt(e){return e.open?(0,t.jsx)("div",{id:"auth-expired-overlay",className:"auth-expired-overlay",role:"presentation",onClick:n=>{n.target===n.currentTarget&&e.onClose()},children:(0,t.jsxs)("div",{className:"auth-expired-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"auth-expired-title",children:[(0,t.jsx)("h2",{id:"auth-expired-title",children:"\u8BBF\u95EE\u94FE\u63A5\u5DF2\u5931\u6548"}),(0,t.jsx)("p",{children:"\u5F53\u524D\u94FE\u63A5/\u8BBF\u95EE\u5DF2\u5931\u6548\uFF0C\u8BF7\u4F7F\u7528\u6700\u65B0\u6388\u6743\u94FE\u63A5\u91CD\u65B0\u8FDB\u5165\uFF08\u8FD0\u884C botmux dashboard \u83B7\u53D6\uFF09\u3002"}),(0,t.jsx)("button",{id:"auth-expired-dismiss",type:"button",className:"primary",onClick:e.onClose,children:"\u77E5\u9053\u4E86"})]})}):null}function xt(){let e=vt(),[n,o]=(0,p.useState)(!1),[r,a]=(0,p.useState)(!1),[d,l]=(0,p.useState)(!1),h=(0,p.useRef)(e.attention),i=(0,p.useRef)(null),s=()=>{i.current!==null&&(window.clearTimeout(i.current),i.current=null)};(0,p.useEffect)(()=>{let c=()=>o(!0);return window.addEventListener(q,c),()=>window.removeEventListener(q,c)},[]),(0,p.useEffect)(()=>{let c=()=>a(!0);return window.addEventListener(se,c),V&&a(!0),()=>window.removeEventListener(se,c)},[]),(0,p.useEffect)(()=>()=>s(),[]),(0,p.useEffect)(()=>{let c=h.current;if(h.current=e.attention,e.attention===0){s(),l(!1);return}c!==0||document.body.classList.contains("theme-menu-open")||(l(!0),s(),i.current=window.setTimeout(()=>{i.current=null,l(!1)},4e3))},[e.attention]);let u=()=>{V=!1,a(!1)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"aurora","aria-hidden":"true",children:[(0,t.jsx)("i",{className:"a1"}),(0,t.jsx)("i",{className:"a2"}),(0,t.jsx)("i",{className:"a3"})]}),(0,t.jsxs)("div",{className:"app-shell",children:[(0,t.jsxs)("header",{className:"topbar",children:[(0,t.jsx)("div",{className:"topbar-left",children:(0,t.jsxs)("a",{className:"brand",href:"#/",children:[(0,t.jsx)("span",{className:"brand-mark","aria-hidden":"true",children:(0,t.jsx)("img",{className:"brand-logo-img",src:"/assets/brand-logo.png",alt:"",decoding:"sync",loading:"eager",fetchPriority:"high"})}),(0,t.jsx)("strong",{className:"brand-wordmark",children:"Botmux"}),(0,t.jsx)("span",{className:"brand-product",children:"Dashboard"})]})}),(0,t.jsxs)("div",{className:"topbar-actions",children:[(0,t.jsx)(yt,{summary:e,autoOpen:d}),(0,t.jsxs)("div",{className:"topbar-tool-group",children:[(0,t.jsx)("button",{type:"button",className:"topbar-locale-toggle","aria-label":g.locale==="zh"?"Switch to English":"\u5207\u6362\u5230\u4E2D\u6587",title:g.locale==="zh"?"Switch to English":"\u5207\u6362\u5230\u4E2D\u6587",onClick:()=>Mt(g.locale==="zh"?"en":"zh"),children:g.locale==="zh"?"CN":"EN"}),(0,t.jsx)(gt,{}),(0,t.jsxs)("a",{className:"topbar-docs-link",href:"https://bytedance.aiforce.cloud/app/app_4k9smq6rdxher/",target:"_blank",rel:"noopener noreferrer",title:f("nav.docs"),"aria-label":f("nav.docs"),children:[te((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"2.2",y:"2.2",width:"11.6",height:"11.6",rx:"2"}),(0,t.jsx)("path",{d:"M4.8 5.2h6.4M4.8 8h6.4M4.8 10.8h4"})]})),(0,t.jsx)("span",{children:f("nav.docs")})]})]}),(0,t.jsxs)("span",{className:"topbar-owner",title:k?.name,"aria-label":k?.name??"Owner",children:[(0,t.jsx)("span",{className:"topbar-owner-placeholder","aria-hidden":"true",children:te((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"8",cy:"6",r:"2.4"}),(0,t.jsx)("path",{d:"M3.7 13c.7-2.5 2.2-3.7 4.3-3.7s3.6 1.2 4.3 3.7"})]}))}),k?.avatarUrl?(0,t.jsx)("img",{className:"topbar-owner-img",src:k.avatarUrl,alt:"",decoding:"async",referrerPolicy:"no-referrer",onError:c=>{c.currentTarget.remove()}}):null]})]})]}),(0,t.jsxs)("div",{className:"chrome-body",children:[(0,t.jsx)("aside",{className:"sidebar",children:(0,t.jsx)("nav",{className:"sidebar-nav","aria-label":"Dashboard",children:mt().filter(c=>R||!c.manage).map(c=>(0,t.jsxs)("a",{href:c.href,"data-route":c.id,className:[pt(c),c.plugin?"sidebar-plugin-item":""].filter(Boolean).join(" ")||void 0,title:c.plugin?$e(c):void 0,children:[te(c.icon),(0,t.jsx)("span",{className:"sidebar-nav-label",children:$e(c)}),c.id==="settings"&&C?(0,t.jsx)(ve,{className:"nav-update-tip",label:Ie(),trigger:(0,t.jsx)("span",{className:"nav-update-dot","aria-hidden":"true"}),preventClick:!1,focusable:!1,children:Ie()}):null]},c.id))})}),(0,t.jsxs)("div",{className:"workspace",children:[(0,t.jsx)("dialog",{id:"create-session-modal",className:"create-session-modal"}),(0,t.jsx)(be,{open:n,onClose:()=>o(!1)}),(0,t.jsx)("main",{id:"root",ref:ft})]})]})]}),(0,t.jsx)(wt,{open:r,onClose:u})]})}function w(){ze?.render((0,t.jsx)(xt,{}))}function Mt(e){g.setLocale(e),St(e)}var V=!1;function Et(){V||(V=!0,window.dispatchEvent(new Event(se)))}var re;function Tt(){let e=document.getElementById("readonly-toast");e||(e=document.createElement("div"),e.id="readonly-toast",e.style.cssText="position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:9999;background:var(--fg,#1f2329);color:var(--bg,#fff);padding:10px 18px;border-radius:var(--radius-lg);font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.25)",document.body.appendChild(e)),e.textContent="\u5F53\u524D\u662F\u53EA\u8BFB\u8BBF\u95EE\uFF0C\u6B64\u64CD\u4F5C\u9700\u8981\u6388\u6743\u94FE\u63A5\uFF08\u8FD0\u884C botmux dashboard \u83B7\u53D6\uFF09",e.style.display="block",re&&window.clearTimeout(re),re=window.setTimeout(()=>{e.style.display="none"},4e3)}var Lt=window.fetch.bind(window);window.fetch=async function(...n){let o=await Lt(...n);if(o.status===401){let r=(n[1]?.method??"GET").toUpperCase();(r==="GET"||r==="HEAD")&&!ie?Et():Tt()}return o};async function Nt(){try{let e=await fetch("/api/settings");if(e.ok){let n=await e.json();R=!!n.authed,g.authed=R,ie=!!(n.settings&&n.settings.publicReadOnly),g.publicReadOnly=ie;let o=ce(n.lang);o&&g.setLocale(o)}}catch{}}async function Ke(){try{let e=await fetch("/api/plugins/dashboard");if(!e.ok)return;let n=await e.json();A=(Array.isArray(n?.plugins)?n.plugins:[]).filter(r=>r.pinned===!0&&typeof r.route=="string").map(r=>({id:`plugin:${r.pluginId}:${r.id}`,href:r.route,label:r.displayName||r.pluginId,manage:!0,plugin:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M5.2 2.2h5.6v3.1l1.7 1.7-1.4 1.4-1-1v6.4H5.9V7.4l-1 1L3.5 7l1.7-1.7z"}),(0,t.jsx)("path",{d:"M8 13.8v1"})]})})),w()}catch{}}async function St(e){if(R)try{await fetch("/api/settings",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({lang:e})})}catch{}}async function kt(){if(R)try{let e=await fetch("/api/update/status");if(!e.ok)return;let n=await e.json(),o=Array.isArray(n.cliUpdates)?n.cliUpdates.find(r=>r?.updateAvailable===!0&&r?.latest):null;n.behind===!0&&n.latest?(C=!0,_="botmux",B=String(n.latest)):o?(C=!0,_="codex",B=String(o.latest)):(C=!1,_=null,B=null),w()}catch{}}function Rt(e){e.innerHTML='<section class="auth-required" style="max-width:520px;margin:64px auto;text-align:center;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px 36px;box-shadow:0 8px 28px rgba(0,0,0,.12)"><h2 style="margin:0 0 12px;font-size:20px;color:var(--fg)">\u6B64\u9875\u9700\u8981\u6388\u6743\u94FE\u63A5</h2><p style="margin:0 0 24px;line-height:1.7;color:var(--muted);font-size:14px">\u4F60\u5F53\u524D\u662F\u53EA\u8BFB\u8BBF\u95EE\uFF0C\u7BA1\u7406\u9875\uFF08\u7FA4\u89D2\u8272 / Profiles / Bot \u914D\u7F6E / \u56E2\u961F / Webhook\uFF09\u9700\u8981\u6388\u6743\u94FE\u63A5\u3002\u8FD0\u884C <code>botmux dashboard</code> \u83B7\u53D6\u6700\u65B0\u94FE\u63A5\u540E\u5373\u53EF\u7BA1\u7406\u3002</p><a href="#/" style="display:inline-block;padding:8px 22px;background:var(--accent);color:var(--on-accent);border-radius:var(--radius-lg);text-decoration:none;font-size:14px">\u8FD4\u56DE\u603B\u89C8</a></section>'}async function ae(){let e=ke(T),n=location.hash||"#/";if(We=n,w(),!R&&dt.some(o=>n.startsWith("#/"+o))){Rt(ne()),T.rerenderOnUiChange=!0;return}if(n.startsWith("#/v3")){window.location.replace(`#/workflows${n.slice(4)}`);return}else if(/^#\/workflows(?:\/|-)catalog(?:[/?].*)?$/.test(n)){window.location.replace("#/workflows");return}if(n.startsWith("#/role-profiles")){window.location.replace(`#/roles/profile${n.slice(15)}`);return}try{let o=Te(n);await Re(T,e,ne(),o?o.load:Le,{rerenderOnUiChange:o?o.rerenderOnUiChange:!1})}catch(o){if(e!==T.seq)return;ne().innerHTML=`<section class="page"><div class="empty">Dashboard route failed: ${de(String(o))}</div></section>`,T.pageDispose=null,T.rerenderOnUiChange=!0}}function Ot(){try{let e=JSON.parse(window.localStorage.getItem(_e)??"null");if(e?.avatarUrl)return{avatarUrl:String(e.avatarUrl),name:e.name?String(e.name):void 0}}catch{}return null}function Ht(){k=Ot(),w(),fetch("/api/owner-profile").then(e=>e.ok?e.json():null).then(e=>{if(!(!e?.ok||!e.avatarUrl)){k={avatarUrl:String(e.avatarUrl),name:e.name?String(e.name):void 0};try{window.localStorage.setItem(_e,JSON.stringify({avatarUrl:e.avatarUrl,name:e.name??""}))}catch{}w()}}).catch(()=>{})}(async()=>{g.init();let e=document.getElementById("app-root");if(!e)throw new Error("missing dashboard app root");Be(e),ze=(0,Ue.createRoot)(e),w(),g.on(()=>{w(),T.rerenderOnUiChange&&ae()}),I.on(()=>{w()}),await Nt(),w(),window.addEventListener(fe,()=>{Ke()}),Ke(),kt(),Ht();try{await le()}catch(n){console.error("botmux dashboard bootstrap failed",n),I.setOnline(!1)}he().then(w),ye().then(w),window.addEventListener("hashchange",()=>{ae()}),ae()})();export{Et as showAuthExpiredOverlay,Tt as showReadOnlyToast};
1
+ import{a as ye,b as we}from"./chunks/chunk-YQFXGRSD.js";import{a as fe}from"./chunks/chunk-BD3PZGH2.js";import{a as q,c as be}from"./chunks/chunk-IGXYYRYJ.js";import{i as ve}from"./chunks/chunk-SRIE4MLQ.js";import{C as pe,D as K,a as I,b as le,e as ce,p as g,q as f,r as de,s as ue,x as he,z as me}from"./chunks/chunk-PNK3HQBI.js";import{a as Ve,c as je,d as ge}from"./chunks/chunk-5THX4DI2.js";import{c as $}from"./chunks/chunk-7SZRL6FY.js";var Ue=$(je(),1),p=$(Ve(),1);var X="botmux:close-theme-menu",qe={palette:'<circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><path d="M12 2a10 10 0 0 0 0 20h1.7a2.3 2.3 0 0 0 1.6-4c-.5-.5-.2-1.3.5-1.3H17a5 5 0 0 0 5-5 9.7 9.7 0 0 0-10-9.7z"/>',monitor:'<rect width="20" height="14" x="2" y="3" rx="2"/><line x1="8" x2="16" y1="21" y2="21"/><line x1="12" x2="12" y1="17" y2="21"/>',sun:'<circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/>',moon:'<path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/>',cpu:'<path d="M12 20v2"/><path d="M12 2v2"/><path d="M17 20v2"/><path d="M17 2v2"/><path d="M2 12h2"/><path d="M2 17h2"/><path d="M2 7h2"/><path d="M20 12h2"/><path d="M20 17h2"/><path d="M20 7h2"/><path d="M7 20v2"/><path d="M7 2v2"/><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="8" y="8" width="8" height="8" rx="1"/>',zap:'<path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/>',chevron:'<path d="m6 9 6 6 6-6"/>'},Me=[{labelKey:"theme.base",options:[{value:"system",labelKey:"status.system",icon:"monitor"},{value:"light",labelKey:"status.light",icon:"sun"},{value:"dark",labelKey:"status.dark",icon:"moon"}]},{labelKey:"theme.skins",options:[{value:"cyber",labelKey:"skin.cyber",icon:"cpu"},{value:"fallout",labelKey:"skin.fallout",icon:"zap"}]}],xe=Me.flatMap(e=>e.options),y=!1,O=null,H=null,Ge=70,Xe=120;function G(e){return`<svg class="tm-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${qe[e]??""}</svg>`}function Je(e){return e.replace(/[&<>"]/g,n=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[n])}function Ee(){let e=document.getElementById("theme-menu"),n=document.getElementById("theme-menu-btn"),o=document.getElementById("theme-menu-pop");if(!e||!n||!o||e.dataset.themeMenuInit==="1")return;e.dataset.themeMenuInit="1",o.innerHTML=Me.map(s=>`<div class="tm-group" data-label-key="${s.labelKey}"></div>`+s.options.map(u=>`<button type="button" class="tm-item" role="option" data-value="${u.value}"><span class="tm-ic">${G(u.icon)}</span><span class="tm-label" data-label-key="${u.labelKey}"></span></button>`).join("")).join("");let r=()=>{if(!y)return;let s=n.getBoundingClientRect(),u=12,c=Math.min(Math.max(o.offsetWidth||216,216),Math.max(0,window.innerWidth-u*2)),L=u+c/2,v=window.innerWidth-u-c/2,b=s.left+s.width/2,E=Math.min(Math.max(b,L),Math.max(L,v)),j=Math.max(180,window.innerHeight-s.bottom-20);o.style.setProperty("--theme-menu-pop-left",`${Math.round(E)}px`),o.style.setProperty("--theme-menu-pop-top",`${Math.round(s.bottom+8)}px`),o.style.setProperty("--theme-menu-pop-max-height",`${Math.round(j)}px`)},a=s=>{O!=null&&(window.clearTimeout(O),O=null),H!=null&&(window.clearTimeout(H),H=null),y=s,n.setAttribute("aria-expanded",String(y)),document.body.classList.toggle("theme-menu-open",y),y?(o.hidden=!1,r(),window.requestAnimationFrame(()=>e.classList.add("open"))):(e.classList.remove("open"),H=window.setTimeout(()=>{H=null,y||(o.hidden=!0)},Xe))},d=()=>a(!0),l=()=>{O==null&&(O=window.setTimeout(()=>a(!1),Ge))},h=s=>{s.pointerType!=="touch"&&d()},i=s=>{s.pointerType!=="touch"&&l()};e.addEventListener("pointerenter",h),e.addEventListener("pointerleave",i),o.addEventListener("pointerenter",h),o.addEventListener("pointerleave",i),n.addEventListener("click",s=>{s.stopPropagation(),a(!y)}),n.addEventListener("focus",()=>{n.matches(":focus-visible")&&d()}),e.addEventListener("focusout",s=>{let u=s.relatedTarget;(!(u instanceof Node)||!e.contains(u))&&l()}),o.addEventListener("click",s=>{let u=s.target.closest(".tm-item");u&&(g.setTheme(u.dataset.value??"system"),a(!1))}),document.addEventListener("click",s=>{y&&!e.contains(s.target)&&a(!1)}),document.addEventListener("pointermove",s=>{if(!y||s.pointerType==="touch")return;let u=s.target;u instanceof Node&&e.contains(u)||l()}),document.addEventListener("keydown",s=>{s.key==="Escape"&&y&&a(!1)}),window.addEventListener("resize",r),window.addEventListener("scroll",r,!0),window.addEventListener(X,()=>{y&&a(!1)}),J()}function J(){let e=document.getElementById("theme-menu-btn");if(!e)return;let n=xe.find(o=>o.value===g.theme)??xe[0];e.innerHTML=`<span class="tm-ic">${G("palette")}</span><span class="tm-current">${Je(f(n.labelKey))}</span><span class="tm-chev">${G("chevron")}</span>`,document.querySelectorAll("#theme-menu-pop [data-label-key]").forEach(o=>{o.textContent=f(o.dataset.labelKey??"")}),document.querySelectorAll("#theme-menu-pop .tm-item").forEach(o=>{o.classList.toggle("active",o.dataset.value===g.theme)})}function m(e,n,o,r,a=!1){return{id:e,routePrefix:n,rerenderOnUiChange:a,load:async()=>(await o())[r]}}var Ye=[{id:"plugins",routePrefix:"#/plugins",rerenderOnUiChange:!1,load:async()=>{let e=await import("./chunks/plugin-page-7FW2LPJH.js");return n=>e.renderPluginPage(n)}},m("legacy-workflow","#/legacy-workflow",()=>import("./chunks/legacy-workflow-page-QMC7OZXH.js"),"renderLegacyWorkflowPage"),m("workflows","#/workflows",()=>import("./chunks/v3-page-YLYVHGKD.js"),"renderV3RunsPage"),m("groups","#/groups",()=>import("./chunks/groups-page-5AJPPJH2.js"),"renderGroupsPage"),m("settings","#/settings",()=>import("./chunks/settings-page-LJIXX5LQ.js"),"renderSettingsPage"),m("bot-defaults","#/bot-defaults",()=>import("./chunks/bot-defaults-page-7T7DPOV6.js"),"renderBotDefaultsPage"),m("skills","#/skills",()=>import("./chunks/skills-page-J7EVUHXP.js"),"renderSkillsPage"),m("connectors-logs","#/connectors/logs",()=>import("./chunks/connectors-page-UQ4QBE45.js"),"renderConnectorsLogsPage"),m("webhook-logs","#/webhook-logs",()=>import("./chunks/connectors-page-UQ4QBE45.js"),"renderConnectorsLogsPage"),m("connectors","#/connectors",()=>import("./chunks/connectors-page-UQ4QBE45.js"),"renderConnectorsPage"),m("team-manage","#/team/manage",()=>import("./chunks/team-federation-page-YM5JBIII.js"),"renderTeamManagePage"),m("team","#/team",()=>import("./chunks/team-federation-page-YM5JBIII.js"),"renderTeamFederationPage"),m("roles-profile","#/roles/profile",()=>import("./chunks/roles-page-6ZODQISW.js"),"renderRoleProfilesPage"),m("roles","#/roles",()=>import("./chunks/roles-page-6ZODQISW.js"),"renderRolesPage"),m("schedules","#/schedules",()=>import("./chunks/schedules-page-DAGMHVCH.js"),"renderSchedulesPage"),m("whiteboards","#/whiteboards",()=>import("./chunks/whiteboards-page-75N2U6W4.js"),"renderWhiteboardsPage"),m("monitoring","#/monitoring",()=>import("./chunks/monitoring-page-EHSOX4GV.js"),"renderMonitoringPage"),m("sessions","#/sessions",()=>import("./chunks/sessions-page-NNZIDHZM.js"),"renderSessionsPage"),m("monitor-room","#/monitor-room",()=>import("./chunks/monitor-room-NLMKJLDY.js"),"renderMonitorRoomPage",!0),m("office","#/office",()=>import("./chunks/office-page-OXJKFJ4R.js"),"renderOfficePage"),m("insights","#/insights",()=>import("./chunks/insights-page-R3DFECX4.js"),"renderInsightsPage")];function Te(e){return Ye.find(n=>n.exact?e===n.routePrefix:e.startsWith(n.routePrefix))}async function Le(){let e=await import("./chunks/overview-page-GJHIVXJF.js");return n=>e.renderOverviewPage(n)}function Se(){return{seq:0,pageDispose:null,rerenderOnUiChange:!0}}function ke(e){let n=++e.seq;return e.pageDispose&&(e.pageDispose(),e.pageDispose=null),n}function Ne(e,n){return n===e.seq}async function Re(e,n,o,r,a={}){let d=await r();if(!Ne(e,n))return!1;let l=d(o);return Ne(e,n)?(e.pageDispose=typeof l=="function"?l:null,e.rerenderOnUiChange=a.rerenderOnUiChange??!0,!0):(typeof l=="function"&&l(),!1)}var Qe=new Set(["auto","scroll","overlay"]),U=28,x=3,N=6,Oe=!1,Ce=null,He=new WeakMap,M=new Map,Pe=null,De=null,Y=0,Q=0,P=null;function Ze(e){return e.closest("dialog[open]")??document.body}function et(e){let n=He.get(e);if(n?.isConnected)return n;let o=document.createElement("div");return o.className="floating-scrollbar-layer",o.setAttribute("aria-hidden","true"),e.appendChild(o),He.set(e,o),o}function tt(e){return Qe.has(e)}function Z(e,n){let o=getComputedStyle(e),r=n==="y"?o.overflowY:o.overflowX;return tt(r)?n==="y"?e.scrollHeight-e.clientHeight>1:e.scrollWidth-e.clientWidth>1:!1}function nt(e){if(!e.isConnected||e.closest("[hidden]"))return!1;let n=e.getBoundingClientRect();return n.width>0&&n.height>0&&n.bottom>0&&n.right>0&&n.top<window.innerHeight&&n.left<window.innerWidth}function ot(e){return[e,...Array.from(e.querySelectorAll("*"))].filter(o=>nt(o)&&(Z(o,"x")||Z(o,"y")))}function W(e){e.hideTimer!==void 0&&window.clearTimeout(e.hideTimer),e.track.remove()}function rt(e,n){let o=M.get(e);o||(o={},M.set(e,o));let r=o[n],a=Ze(e),d=et(a);if(r?.track.parentElement===d)return r;r&&W(r);let l=document.createElement("div"),h=document.createElement("div");l.className=`floating-scrollbar floating-scrollbar-${n}`,h.className="floating-scrollbar-thumb",l.appendChild(h),d.appendChild(l);let i={target:e,axis:n,track:l,thumb:h,hideTimer:void 0};return o[n]=i,i}function ee(e,n=!1){e.track.classList.add("is-visible"),e.hideTimer!==void 0&&window.clearTimeout(e.hideTimer),e.hideTimer=n?void 0:window.setTimeout(()=>{e.track.classList.remove("is-visible","is-active"),e.hideTimer=void 0},900)}function at(e){let{target:n,axis:o,track:r,thumb:a}=e,d=n.getBoundingClientRect();if(o==="y"){let L=Math.max(0,d.top+x),v=Math.min(window.innerHeight,d.bottom-x),b=Math.max(0,v-L);if(b<U||n.scrollHeight<=n.clientHeight){r.hidden=!0;return}let E=Math.max(U,Math.round(b*n.clientHeight/n.scrollHeight)),j=Math.max(1,n.scrollHeight-n.clientHeight),Fe=Math.round((b-E)*n.scrollTop/j);r.hidden=!1,r.style.left=`${Math.min(window.innerWidth-N-x,Math.max(x,d.right-N-x))}px`,r.style.top=`${L}px`,r.style.width=`${N}px`,r.style.height=`${b}px`,a.style.width="100%",a.style.height=`${E}px`,a.style.transform=`translate3d(0, ${Fe}px, 0)`;return}let l=Math.max(0,d.left+x),h=Math.min(window.innerWidth,d.right-x),i=Math.max(0,h-l);if(i<U||n.scrollWidth<=n.clientWidth){r.hidden=!0;return}let s=Math.max(U,Math.round(i*n.clientWidth/n.scrollWidth)),u=Math.max(1,n.scrollWidth-n.clientWidth),c=Math.round((i-s)*n.scrollLeft/u);r.hidden=!1,r.style.left=`${l}px`,r.style.top=`${Math.min(window.innerHeight-N-x,Math.max(x,d.bottom-N-x))}px`,r.style.width=`${i}px`,r.style.height=`${N}px`,a.style.width=`${s}px`,a.style.height="100%",a.style.transform=`translate3d(${c}px, 0, 0)`}function S(){Y||(Y=window.requestAnimationFrame(()=>{Y=0,st()}))}function it(){Q||(Q=window.setTimeout(()=>{Q=0,S()},120))}function st(){let e=Ce;if(!e)return;let n=new Set(ot(e));for(let[o,r]of M)n.has(o)||(r.x&&W(r.x),r.y&&W(r.y),M.delete(o));for(let o of n){let r=o===P;for(let a of["x","y"]){let d=M.get(o);if(!Z(o,a)){let h=d?.[a];h&&(W(h),delete d?.[a]);continue}let l=rt(o,a);at(l),r&&ee(l,!0)}}}function lt(e){if(!(e instanceof HTMLElement))return;let n=M.get(e);if(n)for(let o of Object.values(n))o&&(o.track.classList.add("is-active"),ee(o))}function ct(e){for(let n=e;n;n=n.parentElement)if(n instanceof HTMLElement&&M.has(n))return n;return null}function Ae(e){if(P===e)return;let n=P?M.get(P):void 0;if(P=e,n)for(let r of Object.values(n))r?.track.classList.remove("is-visible");let o=e?M.get(e):void 0;if(o)for(let r of Object.values(o))r&&ee(r,!0)}function Be(e){Oe||(Oe=!0,Ce=e,document.documentElement.classList.add("floating-scrollbars-on"),Pe=typeof ResizeObserver>"u"?null:new ResizeObserver(S),Pe?.observe(e),De=new MutationObserver(n=>{for(let o of n){let r=o.target;if(!(r instanceof Element&&r.closest(".floating-scrollbar-layer"))){it();return}}}),De.observe(e,{attributes:!0,attributeFilter:["class","style","hidden","open"],childList:!0,subtree:!0}),document.addEventListener("scroll",n=>{lt(n.target),S()},!0),window.addEventListener("resize",S),window.addEventListener("hashchange",S),document.addEventListener("pointermove",n=>{Ae(ct(document.elementFromPoint(n.clientX,n.clientY)))}),document.addEventListener("pointerleave",()=>Ae(null)),S())}var t=$(ge(),1),dt=["roles","role-profiles","bot-defaults","skills","plugins","team","connectors","insights","whiteboards"],D=[{id:"overview",href:"#/",labelKey:"nav.overview",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"1.5",y:"1.5",width:"5.4",height:"5.4",rx:"1.5"}),(0,t.jsx)("rect",{x:"9.1",y:"1.5",width:"5.4",height:"5.4",rx:"1.5"}),(0,t.jsx)("rect",{x:"1.5",y:"9.1",width:"5.4",height:"5.4",rx:"1.5"}),(0,t.jsx)("rect",{x:"9.1",y:"9.1",width:"5.4",height:"5.4",rx:"1.5"})]})},{id:"sessions",href:"#/sessions",labelKey:"nav.sessions",icon:(0,t.jsx)("path",{d:"M2 3.5h12v7H6l-3 3v-3H2z"})},{id:"groups",href:"#/groups",labelKey:"nav.groups",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"5.6",cy:"5.8",r:"2.4"}),(0,t.jsx)("circle",{cx:"11",cy:"6.8",r:"1.9"}),(0,t.jsx)("path",{d:"M1.8 13.2c.5-2.4 2-3.6 3.8-3.6s3.3 1.2 3.8 3.6M9.8 12.6c.4-1.7 1.5-2.6 2.8-2.6 1 0 1.9.5 2.4 1.6"})]})},{id:"roles",href:"#/roles",labelKey:"nav.roles",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M8 1.8l5.2 2v3.4c0 3.4-2.2 5.9-5.2 7-3-1.1-5.2-3.6-5.2-7V3.8z"}),(0,t.jsx)("path",{d:"M5.8 8l1.6 1.6 2.8-3"})]})},{id:"monitoring",href:"#/monitoring",labelKey:"nav.monitoring",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M2 9.2h2.3l1.3-4.8 2.5 8.4 1.8-5.1h4.1"}),(0,t.jsx)("path",{d:"M2 2.5h12v11H2z"})]})},{id:"insights",href:"#/insights",labelKey:"nav.insights",manage:!0,icon:(0,t.jsx)(t.Fragment,{children:(0,t.jsx)("path",{d:"M2 2v12h12M5 11V7M8.5 11V4.5M12 11V8.5"})})},{id:"workflows",href:"#/workflows",labelKey:"nav.workflows",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"3.4",cy:"3.6",r:"1.9"}),(0,t.jsx)("circle",{cx:"3.4",cy:"12.4",r:"1.9"}),(0,t.jsx)("circle",{cx:"12.6",cy:"8",r:"1.9"}),(0,t.jsx)("path",{d:"M5.2 4.4l5.6 2.8M5.2 11.6l5.6-2.8"})]})},{id:"schedules",href:"#/schedules",labelKey:"nav.schedules",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"6.2"}),(0,t.jsx)("path",{d:"M8 4.5V8l2.4 1.6"})]})},{id:"whiteboards",href:"#/whiteboards",labelKey:"nav.whiteboards",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"2.2",y:"2.2",width:"11.6",height:"11.6",rx:"2"}),(0,t.jsx)("path",{d:"M4.8 5.2h6.4M4.8 8h6.4M4.8 10.8h4"})]})},{id:"office",href:"#/office",labelKey:"nav.office",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"3",y:"4",width:"10",height:"7",rx:"2"}),(0,t.jsx)("circle",{cx:"6",cy:"7.5",r:"1"}),(0,t.jsx)("circle",{cx:"10",cy:"7.5",r:"1"}),(0,t.jsx)("path",{d:"M8 4V2M4.5 11v2M11.5 11v2"})]})},{id:"bot-defaults",href:"#/bot-defaults",labelKey:"nav.botDefaults",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"2.5",y:"5",width:"11",height:"8",rx:"2"}),(0,t.jsx)("circle",{cx:"5.8",cy:"9",r:"1"}),(0,t.jsx)("circle",{cx:"10.2",cy:"9",r:"1"}),(0,t.jsx)("path",{d:"M8 5V2.5M5.5 13v1.2M10.5 13v1.2"})]})},{id:"skills",href:"#/skills",labelKey:"nav.skills",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M3 2.5h10v3H3zM3 7h10v6.5H3z"}),(0,t.jsx)("path",{d:"M5.4 9.2h5.2M5.4 11.2h3.8"})]})},{id:"plugins",href:"#/plugins",label:"\u63D2\u4EF6",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M6.4 1.8h3.2v3h2.8v3.2H9.6v2.8H6.4V8H3.6V4.8h2.8z"}),(0,t.jsx)("path",{d:"M2.2 11.8h11.6v2.4H2.2z"})]})},{id:"team",href:"#/team",labelKey:"nav.team",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"8",cy:"8",r:"6.2"}),(0,t.jsx)("path",{d:"M1.8 8h12.4M8 1.8c-2 1.8-2 10.6 0 12.4 2-1.8 2-10.6 0-12.4z"})]})},{id:"connectors",href:"#/connectors",labelKey:"nav.connectors",manage:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M5.5 6.5v-3a2.5 2.5 0 0 1 5 0v3"}),(0,t.jsx)("rect",{x:"3.5",y:"6.5",width:"9",height:"7",rx:"2"})]})},{id:"settings",href:"#/settings",labelKey:"nav.settings",icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M8 1.75 9.35 2.05 10 3.28l1.38.3 1.04-.96.96.96-.96 1.04.3 1.38 1.23.65L14.25 8l-.3 1.35-1.23.65-.3 1.38.96 1.04-.96.96-1.04-.96-1.38.3-.65 1.23L8 14.25l-1.35-.3L6 12.72l-1.38-.3-1.04.96-.96-.96.96-1.04-.3-1.38-1.23-.65L1.75 8l.3-1.35 1.23-.65.3-1.38-.96-1.04.96-.96 1.04.96 1.38-.3.65-1.23z"}),(0,t.jsx)("circle",{cx:"8",cy:"8",r:"2"})]})}],A=[],R=!0,ie=!1,We=location.hash||"#/",k=null,C=!1,B=null,_=null,F=null,ze=null,T=Se(),_e="botmux.ownerAvatar.v1",ut=new Set(["working","analyzing","active","starting"]),se="botmux:auth-expired";function te(e){return(0,t.jsx)("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:e})}function $e(e){return e.labelKey?f(e.labelKey):e.label??""}function ht(e,n){let o=n||"#/";return e.id==="plugins"&&A.some(r=>r.href===o||o.startsWith(`${r.href}?`)||o.startsWith(`${r.href}/`))?!1:e.id==="workflows"&&(o==="#/legacy-workflow"||o.startsWith("#/legacy-workflow?")||o.startsWith("#/legacy-workflow/"))||e.id==="sessions"&&(o==="#/monitor-room"||o.startsWith("#/monitor-room?")||o.startsWith("#/monitor-room/"))||e.id==="connectors"&&(o==="#/webhook-logs"||o.startsWith("#/webhook-logs?")||o.startsWith("#/webhook-logs/"))?!0:e.href===o||e.href!=="#/"&&(o.startsWith(`${e.href}?`)||o.startsWith(`${e.href}/`))}function mt(){if(A.length===0)return D;let e=D.findIndex(n=>n.id==="plugins");return e<0?[...D,...A]:[...D.slice(0,e+1),...A,...D.slice(e+1)]}function pt(e){let n=[];return ht(e,We)&&n.push("active"),e.id==="settings"&&C&&n.push("nav-has-update"),n.length?n.join(" "):void 0}function Ie(){let e=B?`v${B}`:"";return _==="codex"?f("update.navRuntimeBadgeTitle",{version:e}):f("update.navBadgeTitle",{version:e})}function ft(e){F=e}function ne(){if(F)return F;let e=document.getElementById("root");if(!e)throw new Error("dashboard root is not mounted");return F=e,e}function gt(){return(0,p.useEffect)(()=>{Ee()},[]),(0,p.useEffect)(()=>{J()}),(0,t.jsxs)("div",{className:"theme-menu",id:"theme-menu",children:[(0,t.jsx)("button",{type:"button",className:"theme-menu-btn",id:"theme-menu-btn","aria-haspopup":"listbox","aria-expanded":"false","aria-label":"Theme",children:(0,t.jsx)("span",{className:"tm-ic",children:(0,t.jsxs)("svg",{className:"tm-svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,t.jsx)("circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor"}),(0,t.jsx)("circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor"}),(0,t.jsx)("path",{d:"M12 2a10 10 0 0 0 0 20h1.7a2.3 2.3 0 0 0 1.6-4c-.5-.5-.2-1.3.5-1.3H17a5 5 0 0 0 5-5 9.7 9.7 0 0 0-10-9.7z"})]})})}),(0,t.jsx)("div",{className:"theme-menu-pop",id:"theme-menu-pop",role:"listbox",hidden:!0})]})}function vt(){let e=[...I.sessions.values()],n=e.filter(i=>i.status!=="closed"),o=n.map(i=>({s:i,reason:pe(i)})).filter(i=>!!i.reason).sort((i,s)=>K(i.s)-K(s.s)),r=new Set(o.map(i=>String(i.s.sessionId??""))),a=n.filter(i=>ut.has(String(i.status))&&!r.has(String(i.sessionId??""))).length,d=o[0]??null,l=we(e).filter(i=>i.online||i.active.length>0).length,h=Math.max(0,n.length-o.length-a);return{working:a,attention:o.length,idle:h,onlineBots:l,attentionNotice:d?{count:o.length,time:ue(K(d.s)),bot:me(d.s),reason:d.reason}:null}}function z(e){return(0,t.jsxs)("div",{className:`topbar-status-row${e.hot?" topbar-status-row-hot":""}`,children:[(0,t.jsx)("span",{children:e.label}),(0,t.jsx)("b",{className:e.value>0?"status-count-on":void 0,children:e.value})]})}function bt(e){let{attention:n,idle:o,working:r}=e.summary,a=r+n+o,d=a===0?"conic-gradient(var(--border) 0 360deg)":(()=>{let l=r/a*360,h=l+n/a*360;return`conic-gradient(var(--accent) 0 ${l}deg, var(--warning) ${l}deg ${h}deg, var(--success) ${h}deg 360deg)`})();return(0,t.jsxs)("div",{className:"topbar-status-donut-wrap","aria-hidden":"true",children:[(0,t.jsx)("div",{className:"topbar-status-donut",style:{background:d}}),(0,t.jsxs)("div",{className:"topbar-status-donut-center",children:[(0,t.jsx)("b",{children:a}),(0,t.jsx)("span",{children:f("overview.openSessions")})]})]})}function oe(){window.dispatchEvent(new Event(X))}function yt(e){let{autoOpen:n=!1,summary:o}=e,[r,a]=(0,p.useState)(!1),[d,l]=(0,p.useState)(!1),[h,i]=(0,p.useState)(!1),s=(0,p.useRef)(null),u=n&&!d,c=r||u;return(0,p.useEffect)(()=>{n||l(!1)},[n]),(0,p.useEffect)(()=>{if(!c)return;let v=b=>{let E=b.target;E instanceof Node&&s.current?.contains(E)||(a(!1),l(!0))};return document.addEventListener("pointerdown",v),()=>document.removeEventListener("pointerdown",v)},[c]),(0,t.jsxs)("div",{ref:s,className:`topbar-status-menu${u?" topbar-status-auto-open":""}${r?" is-open":""}${h?" suppress-hover":""}`,onPointerEnter:oe,onPointerLeave:()=>i(!1),onFocusCapture:oe,onBlur:v=>{let b=v.relatedTarget;(!(b instanceof Node)||!v.currentTarget.contains(b))&&a(!1)},onKeyDown:v=>{v.key==="Escape"&&(a(!1),l(!0),i(!0),v.currentTarget.querySelector("#status")?.focus())},children:[(0,t.jsx)("button",{type:"button",id:"status",className:"connection-status","aria-haspopup":"true","aria-expanded":c,onClick:()=>{if(oe(),c){a(!1),l(!0),i(!0);return}i(!1),a(!0)},children:f("overview.sessionOverview")}),(0,t.jsxs)("div",{className:"topbar-status-pop",children:[o.attentionNotice?(0,t.jsxs)("a",{className:"topbar-attention-notice",href:"#/sessions",children:[(0,t.jsx)("span",{className:"topbar-attention-dot","aria-hidden":"true"}),(0,t.jsxs)("span",{className:"topbar-attention-copy",children:[(0,t.jsx)("b",{children:f("strip.pending",{count:o.attentionNotice.count})}),(0,t.jsx)("small",{children:f("strip.longestCompact",{time:o.attentionNotice.time,bot:o.attentionNotice.bot,reason:o.attentionNotice.reason})})]}),(0,t.jsx)("span",{className:"topbar-attention-action",children:f("strip.handle")})]}):null,(0,t.jsxs)("div",{className:"topbar-status-list",children:[(0,t.jsx)(z,{label:f("overview.workingSessions"),value:o.working}),(0,t.jsx)(z,{label:f("overview.idleSessions"),value:o.idle}),(0,t.jsx)(z,{label:f("overview.attention"),value:o.attention,hot:o.attention>0}),(0,t.jsx)(z,{label:f("overview.onlineBots"),value:o.onlineBots})]}),(0,t.jsx)(bt,{summary:o})]})]})}function wt(e){return e.open?(0,t.jsx)("div",{id:"auth-expired-overlay",className:"auth-expired-overlay",role:"presentation",onClick:n=>{n.target===n.currentTarget&&e.onClose()},children:(0,t.jsxs)("div",{className:"auth-expired-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"auth-expired-title",children:[(0,t.jsx)("h2",{id:"auth-expired-title",children:"\u8BBF\u95EE\u94FE\u63A5\u5DF2\u5931\u6548"}),(0,t.jsx)("p",{children:"\u5F53\u524D\u94FE\u63A5/\u8BBF\u95EE\u5DF2\u5931\u6548\uFF0C\u8BF7\u4F7F\u7528\u6700\u65B0\u6388\u6743\u94FE\u63A5\u91CD\u65B0\u8FDB\u5165\uFF08\u8FD0\u884C botmux dashboard \u83B7\u53D6\uFF09\u3002"}),(0,t.jsx)("button",{id:"auth-expired-dismiss",type:"button",className:"primary",onClick:e.onClose,children:"\u77E5\u9053\u4E86"})]})}):null}function xt(){let e=vt(),[n,o]=(0,p.useState)(!1),[r,a]=(0,p.useState)(!1),[d,l]=(0,p.useState)(!1),h=(0,p.useRef)(e.attention),i=(0,p.useRef)(null),s=()=>{i.current!==null&&(window.clearTimeout(i.current),i.current=null)};(0,p.useEffect)(()=>{let c=()=>o(!0);return window.addEventListener(q,c),()=>window.removeEventListener(q,c)},[]),(0,p.useEffect)(()=>{let c=()=>a(!0);return window.addEventListener(se,c),V&&a(!0),()=>window.removeEventListener(se,c)},[]),(0,p.useEffect)(()=>()=>s(),[]),(0,p.useEffect)(()=>{let c=h.current;if(h.current=e.attention,e.attention===0){s(),l(!1);return}c!==0||document.body.classList.contains("theme-menu-open")||(l(!0),s(),i.current=window.setTimeout(()=>{i.current=null,l(!1)},4e3))},[e.attention]);let u=()=>{V=!1,a(!1)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"aurora","aria-hidden":"true",children:[(0,t.jsx)("i",{className:"a1"}),(0,t.jsx)("i",{className:"a2"}),(0,t.jsx)("i",{className:"a3"})]}),(0,t.jsxs)("div",{className:"app-shell",children:[(0,t.jsxs)("header",{className:"topbar",children:[(0,t.jsx)("div",{className:"topbar-left",children:(0,t.jsxs)("a",{className:"brand",href:"#/",children:[(0,t.jsx)("span",{className:"brand-mark","aria-hidden":"true",children:(0,t.jsx)("img",{className:"brand-logo-img",src:"/assets/brand-logo.png",alt:"",decoding:"sync",loading:"eager",fetchPriority:"high"})}),(0,t.jsx)("strong",{className:"brand-wordmark",children:"Botmux"}),(0,t.jsx)("span",{className:"brand-product",children:"Dashboard"})]})}),(0,t.jsxs)("div",{className:"topbar-actions",children:[(0,t.jsx)(yt,{summary:e,autoOpen:d}),(0,t.jsxs)("div",{className:"topbar-tool-group",children:[(0,t.jsx)("button",{type:"button",className:"topbar-locale-toggle","aria-label":g.locale==="zh"?"Switch to English":"\u5207\u6362\u5230\u4E2D\u6587",title:g.locale==="zh"?"Switch to English":"\u5207\u6362\u5230\u4E2D\u6587",onClick:()=>Mt(g.locale==="zh"?"en":"zh"),children:g.locale==="zh"?"CN":"EN"}),(0,t.jsx)(gt,{}),(0,t.jsxs)("a",{className:"topbar-docs-link",href:"https://bytedance.aiforce.cloud/app/app_4k9smq6rdxher/",target:"_blank",rel:"noopener noreferrer",title:f("nav.docs"),"aria-label":f("nav.docs"),children:[te((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("rect",{x:"2.2",y:"2.2",width:"11.6",height:"11.6",rx:"2"}),(0,t.jsx)("path",{d:"M4.8 5.2h6.4M4.8 8h6.4M4.8 10.8h4"})]})),(0,t.jsx)("span",{children:f("nav.docs")})]})]}),(0,t.jsxs)("span",{className:"topbar-owner",title:k?.name,"aria-label":k?.name??"Owner",children:[(0,t.jsx)("span",{className:"topbar-owner-placeholder","aria-hidden":"true",children:te((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("circle",{cx:"8",cy:"6",r:"2.4"}),(0,t.jsx)("path",{d:"M3.7 13c.7-2.5 2.2-3.7 4.3-3.7s3.6 1.2 4.3 3.7"})]}))}),k?.avatarUrl?(0,t.jsx)("img",{className:"topbar-owner-img",src:k.avatarUrl,alt:"",decoding:"async",referrerPolicy:"no-referrer",onError:c=>{c.currentTarget.remove()}}):null]})]})]}),(0,t.jsxs)("div",{className:"chrome-body",children:[(0,t.jsx)("aside",{className:"sidebar",children:(0,t.jsx)("nav",{className:"sidebar-nav","aria-label":"Dashboard",children:mt().filter(c=>R||!c.manage).map(c=>(0,t.jsxs)("a",{href:c.href,"data-route":c.id,className:[pt(c),c.plugin?"sidebar-plugin-item":""].filter(Boolean).join(" ")||void 0,title:c.plugin?$e(c):void 0,children:[te(c.icon),(0,t.jsx)("span",{className:"sidebar-nav-label",children:$e(c)}),c.id==="settings"&&C?(0,t.jsx)(ve,{className:"nav-update-tip",label:Ie(),trigger:(0,t.jsx)("span",{className:"nav-update-dot","aria-hidden":"true"}),preventClick:!1,focusable:!1,children:Ie()}):null]},c.id))})}),(0,t.jsxs)("div",{className:"workspace",children:[(0,t.jsx)("dialog",{id:"create-session-modal",className:"create-session-modal"}),(0,t.jsx)(be,{open:n,onClose:()=>o(!1)}),(0,t.jsx)("main",{id:"root",ref:ft})]})]})]}),(0,t.jsx)(wt,{open:r,onClose:u})]})}function w(){ze?.render((0,t.jsx)(xt,{}))}function Mt(e){g.setLocale(e),St(e)}var V=!1;function Et(){V||(V=!0,window.dispatchEvent(new Event(se)))}var re;function Tt(){let e=document.getElementById("readonly-toast");e||(e=document.createElement("div"),e.id="readonly-toast",e.style.cssText="position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:9999;background:var(--fg,#1f2329);color:var(--bg,#fff);padding:10px 18px;border-radius:var(--radius-lg);font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.25)",document.body.appendChild(e)),e.textContent="\u5F53\u524D\u662F\u53EA\u8BFB\u8BBF\u95EE\uFF0C\u6B64\u64CD\u4F5C\u9700\u8981\u6388\u6743\u94FE\u63A5\uFF08\u8FD0\u884C botmux dashboard \u83B7\u53D6\uFF09",e.style.display="block",re&&window.clearTimeout(re),re=window.setTimeout(()=>{e.style.display="none"},4e3)}var Lt=window.fetch.bind(window);window.fetch=async function(...n){let o=await Lt(...n);if(o.status===401){let r=(n[1]?.method??"GET").toUpperCase();(r==="GET"||r==="HEAD")&&!ie?Et():Tt()}return o};async function Nt(){try{let e=await fetch("/api/settings");if(e.ok){let n=await e.json();R=!!n.authed,g.authed=R,ie=!!(n.settings&&n.settings.publicReadOnly),g.publicReadOnly=ie;let o=ce(n.lang);o&&g.setLocale(o)}}catch{}}async function Ke(){try{let e=await fetch("/api/plugins/dashboard");if(!e.ok)return;let n=await e.json();A=(Array.isArray(n?.plugins)?n.plugins:[]).filter(r=>r.pinned===!0&&typeof r.route=="string").map(r=>({id:`plugin:${r.pluginId}:${r.id}`,href:r.route,label:r.displayName||r.pluginId,manage:!0,plugin:!0,icon:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("path",{d:"M5.2 2.2h5.6v3.1l1.7 1.7-1.4 1.4-1-1v6.4H5.9V7.4l-1 1L3.5 7l1.7-1.7z"}),(0,t.jsx)("path",{d:"M8 13.8v1"})]})})),w()}catch{}}async function St(e){if(R)try{await fetch("/api/settings",{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({lang:e})})}catch{}}async function kt(){if(R)try{let e=await fetch("/api/update/status");if(!e.ok)return;let n=await e.json(),o=Array.isArray(n.cliUpdates)?n.cliUpdates.find(r=>r?.updateAvailable===!0&&r?.latest):null;n.behind===!0&&n.latest?(C=!0,_="botmux",B=String(n.latest)):o?(C=!0,_="codex",B=String(o.latest)):(C=!1,_=null,B=null),w()}catch{}}function Rt(e){e.innerHTML='<section class="auth-required" style="max-width:520px;margin:64px auto;text-align:center;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px 36px;box-shadow:0 8px 28px rgba(0,0,0,.12)"><h2 style="margin:0 0 12px;font-size:20px;color:var(--fg)">\u6B64\u9875\u9700\u8981\u6388\u6743\u94FE\u63A5</h2><p style="margin:0 0 24px;line-height:1.7;color:var(--muted);font-size:14px">\u4F60\u5F53\u524D\u662F\u53EA\u8BFB\u8BBF\u95EE\uFF0C\u7BA1\u7406\u9875\uFF08\u7FA4\u89D2\u8272 / Profiles / Bot \u914D\u7F6E / \u56E2\u961F / Webhook\uFF09\u9700\u8981\u6388\u6743\u94FE\u63A5\u3002\u8FD0\u884C <code>botmux dashboard</code> \u83B7\u53D6\u6700\u65B0\u94FE\u63A5\u540E\u5373\u53EF\u7BA1\u7406\u3002</p><a href="#/" style="display:inline-block;padding:8px 22px;background:var(--accent);color:var(--on-accent);border-radius:var(--radius-lg);text-decoration:none;font-size:14px">\u8FD4\u56DE\u603B\u89C8</a></section>'}async function ae(){let e=ke(T),n=location.hash||"#/";if(We=n,w(),!R&&dt.some(o=>n.startsWith("#/"+o))){Rt(ne()),T.rerenderOnUiChange=!0;return}if(n.startsWith("#/v3")){window.location.replace(`#/workflows${n.slice(4)}`);return}else if(/^#\/workflows(?:\/|-)catalog(?:[/?].*)?$/.test(n)){window.location.replace("#/workflows");return}if(n.startsWith("#/role-profiles")){window.location.replace(`#/roles/profile${n.slice(15)}`);return}try{let o=Te(n);await Re(T,e,ne(),o?o.load:Le,{rerenderOnUiChange:o?o.rerenderOnUiChange:!1})}catch(o){if(e!==T.seq)return;ne().innerHTML=`<section class="page"><div class="empty">Dashboard route failed: ${de(String(o))}</div></section>`,T.pageDispose=null,T.rerenderOnUiChange=!0}}function Ot(){try{let e=JSON.parse(window.localStorage.getItem(_e)??"null");if(e?.avatarUrl)return{avatarUrl:String(e.avatarUrl),name:e.name?String(e.name):void 0}}catch{}return null}function Ht(){k=Ot(),w(),fetch("/api/owner-profile").then(e=>e.ok?e.json():null).then(e=>{if(!(!e?.ok||!e.avatarUrl)){k={avatarUrl:String(e.avatarUrl),name:e.name?String(e.name):void 0};try{window.localStorage.setItem(_e,JSON.stringify({avatarUrl:e.avatarUrl,name:e.name??""}))}catch{}w()}}).catch(()=>{})}(async()=>{g.init();let e=document.getElementById("app-root");if(!e)throw new Error("missing dashboard app root");Be(e),ze=(0,Ue.createRoot)(e),w(),g.on(()=>{w(),T.rerenderOnUiChange&&ae()}),I.on(()=>{w()}),await Nt(),w(),window.addEventListener(fe,()=>{Ke()}),Ke(),kt(),Ht();try{await le()}catch(n){console.error("botmux dashboard bootstrap failed",n),I.setOnline(!1)}he().then(w),ye().then(w),window.addEventListener("hashchange",()=>{ae()}),ae()})();export{Et as showAuthExpiredOverlay,Tt as showReadOnlyToast};
@@ -0,0 +1,4 @@
1
+ import{b as mt}from"./chunk-IGXYYRYJ.js";import{b as A}from"./chunk-OEJIT66L.js";import{a as dt,b as Q,c as V,g as ct,h as bt,i as ft,p as pt}from"./chunk-SRIE4MLQ.js";import{a as nt,p as lt,u as K,x as it}from"./chunk-PNK3HQBI.js";import{a as rt}from"./chunk-SYC6D5XU.js";import{a as Tt,d as ut}from"./chunk-5THX4DI2.js";import{c as Y}from"./chunk-7SZRL6FY.js";var s=Y(Tt(),1);var gt=[{id:"claude-code",label:"Claude"},{id:"codex",label:"Codex"},{id:"traex",label:"traex"}],q={options:gt,ttadkModelDefault:"glm-5.1",ttadkModelSuggestions:[]};function _(a,e){return typeof a?.cliId=="string"&&a.cliId?a.cliId:e}function Z(a){let e=null;for(let o of nt.sessions.values())o.larkAppId!==a||!o.cliId||(!e||Number(o.lastMessageAt??0)>Number(e.lastMessageAt??0))&&(e=o);return e?.cliId??""}function X(a,e){let o=typeof a.agentSelectionKey=="string"&&a.agentSelectionKey?a.agentSelectionKey:"";return o||_(a,e)||"claude-code"}function tt(a,e){return a.find(o=>o.id===e)}function yt(a,e){return a?.gateway==="ttadk"&&a.acceptsModel!==!1?e.ttadkModelSuggestions:[]}async function vt(){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 ht(){try{let a=await fetch("/api/cli-options"),e=await a.json().catch(()=>({}));if(!a.ok||!Array.isArray(e?.options))return q;let o=e.options.filter(l=>l&&typeof l.id=="string"&&typeof l.label=="string"),u=typeof e.ttadkModelDefault=="string"&&e.ttadkModelDefault.trim()?e.ttadkModelDefault.trim():q.ttadkModelDefault,i=Array.isArray(e.ttadkModelSuggestions)?e.ttadkModelSuggestions.filter(l=>typeof l=="string"):[];return{options:o.length?o:gt,ttadkModelDefault:u,ttadkModelSuggestions:i}}catch{return q}}function kt(a){if(!a)return"\u2014";let e=new Date(a);return Number.isNaN(e.getTime())?"\u2014":e.toLocaleString()}var t=Y(ut(),1);function xt(a,e=""){let o=a?` ${a.ok?"hint-ok":"hint-warn-inline"}`:"";return`oncall-status${e?` ${e}`:""}${o}`}function $(a){return(0,t.jsx)("span",{className:xt(a.status),...a.attr??{},children:a.status?.text??""})}function Bt(a){let e=typeof a.children=="string"?a.children:void 0;return(0,t.jsx)(ft,{className:"bd-info-tip",label:e,children:a.children})}function P(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)(Bt,{children:a.help}):null]})}function U(a){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(pt,{id:`bd-menu-${a.dataInput}`,className:["bd-field-menu",a.className].filter(Boolean).join(" "),ariaLabel:a.ariaLabel,disabled:a.disabled,label:dt(a.options,a.value),value:a.value,options:a.options,onChange:a.onChange}),(0,t.jsx)("input",{type:"hidden","data-input":a.dataInput,value:a.value,readOnly:!0})]})}function j(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)(P,{help:a.help,children:a.title})})})]})}async function O(a,e,o){let u=await fetch(e,{method:a,headers:{"content-type":"application/json"},body:o===void 0?void 0:JSON.stringify(o)}),i=await u.json().catch(()=>({}));return{ok:u.ok&&i?.ok!==!1,status:u.status,body:i}}function L(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 R(a){return a?.message??String(a)}function wt(a){let e=a.trim();return e?/^[1-9]\d*$/.test(e)?Number(e):"invalid":null}function Dt(a,e){let o=a.trim();return o===""?e:/^(0|[1-9]\d*)$/.test(o)?Number(o):null}var at=["email","openId","userId","unionId"];function Pt(a){return at.find(e=>a?.[e]?.trim())??"email"}function Rt(a){let e=a.idValue.trim();if(!e)return null;let o={...a.persisted};if(a.persisted[a.idField]!==e||a.originalIdField!=null&&a.originalIdField!==a.idField)for(let l of at)delete o[l];o[a.idField]=e;let i=a.name.trim();return i?o.name=i:delete o.name,o}function Mt(a,e){return a==null?e("botDefaults.brandStateDefault"):a.trim()===""?e("botDefaults.brandStateOff"):e("botDefaults.brandStateCustom")}function At(a,e){return a==null?e("botDefaults.quotaStateOff"):e("botDefaults.quotaStateOn",{count:a})}function $t(a,e){return a==null?e("botDefaults.maxLiveWorkersStateDefault"):e("botDefaults.maxLiveWorkersStateOn",{count:a})}function Lt(a,e){return{...a,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 Ot(){let a=A(),e=(0,s.useRef)(!0),[o,u]=(0,s.useState)([]),[i,l]=(0,s.useState)(q),[r,d]=(0,s.useState)(null),[f,n]=(0,s.useState)(!0),[p,m]=(0,s.useState)(!1),[c,b]=(0,s.useState)(""),[D,k]=(0,s.useState)(null),[v,h]=(0,s.useState)(0),[,x]=(0,s.useState)(0),[y,N]=(0,s.useState)(!1),S=(0,s.useCallback)(async(T=!1)=>{T&&h(B=>B+1),n(!0);try{let[B,F]=await Promise.all([vt(),ht()]);if(!e.current)return;u(B.bots),d(B.error),l(F)}finally{e.current&&n(!1)}},[]);(0,s.useEffect)(()=>(e.current=!0,S(),it().then(()=>{e.current&&x(T=>T+1)}),()=>{e.current=!1}),[S]);let C=(0,s.useMemo)(()=>{let T=c.trim().toLowerCase();return o.filter(B=>!T||(B.botName??"").toLowerCase().includes(T)||(B.larkAppId??"").toLowerCase().includes(T))},[o,c]);(0,s.useEffect)(()=>{if(!(r||f)){if(C.length===0){D!==null&&k(null);return}(!D||!C.some(T=>T.larkAppId===D))&&k(C[0].larkAppId)}},[C,r,f,D]);let M=D?C.find(T=>T.larkAppId===D)??null:null,g=(0,s.useCallback)((T,B)=>{u(F=>F.map(H=>H.larkAppId!==T?H:typeof B=="function"?B(H):{...H,...B}))},[]),G=async()=>{m(!0);try{await S(!0)}finally{e.current&&m(!1)}},w;return f?w=(0,t.jsx)(V,{label:a("common.loading")}):r?w=(0,t.jsxs)("p",{className:"hint-warn",children:["\u65E0\u6CD5\u52A0\u8F7D bot \u5217\u8868\uFF1A",r,(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"]}):C.length===0?w=(0,t.jsx)("p",{className:"empty",children:a("botDefaults.empty")}):M?w=(0,t.jsx)(Gt,{bot:M,cliState:i,patchBot:g},`${M.larkAppId}:${v}`):w=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)(bt,{id:"bd-refresh",label:a("botDefaults.refresh"),busy:p,disabled:p,onClick:()=>{G()}}),lt.authed?(0,t.jsx)(ct,{className:"page-primary-action add-bot-btn",disabled:y,onClick:()=>{N(!0),mt().finally(()=>N(!1))},children:a("botOnboarding.add")}):null]})]}),(0,t.jsxs)("div",{className:"bd-layout",children:[(0,t.jsxs)("aside",{id:"bd-roster",className:"bd-roster",children:[(0,t.jsx)("form",{id:"bd-filters",className:"filters dashboard-toolbar",onSubmit:T=>T.preventDefault(),children:(0,t.jsx)("input",{type:"search",name:"q",placeholder:a("botDefaults.search"),value:c,onChange:T=>b(T.currentTarget.value)})}),(0,t.jsx)("div",{className:"bd-roster-list",children:!r&&C.map(T=>(0,t.jsx)(Ft,{bot:T,selected:T.larkAppId===D,onSelect:()=>k(T.larkAppId)},T.larkAppId))})]}),(0,t.jsx)("div",{id:"bd-list",className:"bd-detail",children:w})]})]})}function Ft(a){let{bot:e}=a,o=e.botName??e.larkAppId,u=_(e,Z(e.larkAppId));return(0,t.jsxs)("div",{className:`bd-roster-item${a.selected?" on":""}`,"data-appid":e.larkAppId,role:"button",tabIndex:0,onClick:a.onSelect,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),a.onSelect())},children:[(0,t.jsx)(Q,{html:K({name:o,larkAppId:e.larkAppId,size:"sm"})}),(0,t.jsxs)("div",{className:"bd-roster-tx",children:[(0,t.jsx)("b",{children:o}),(0,t.jsx)("span",{children:u||e.larkAppId.slice(0,14)})]}),e.defaultOncall?.enabled?(0,t.jsx)("span",{className:"bd-roster-flag",children:"oncall"}):null]})}function Gt(a){let e=A(),{bot:o,cliState:u,patchBot:i}=a,l=o.botName??o.larkAppId,r=_(o,Z(o.larkAppId)),d=(0,s.useCallback)(async n=>{let p=await O("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/card-prefs`,n);return p.ok&&i(o.larkAppId,m=>Lt(m,p.body)),p},[o.larkAppId,i]);if(o.error)return(0,t.jsxs)("article",{className:"bd-card bd-profile","data-appid":o.larkAppId,children:[(0,t.jsxs)("header",{className:"bd-profile-head",children:[(0,t.jsx)(Q,{html:K({name:l,larkAppId:o.larkAppId})}),(0,t.jsxs)("div",{className:"bd-profile-id",children:[(0,t.jsx)("strong",{children:l}),(0,t.jsx)("code",{children:o.larkAppId})]})]}),(0,t.jsxs)("p",{className:"hint-warn-inline",children:["\u67E5\u8BE2\u5931\u8D25\uFF1A",o.error]})]});let f=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)("header",{className:"bd-profile-head",children:[(0,t.jsx)("div",{className:"bd-profile-avatar",children:(0,t.jsx)(Q,{html:K({name:l,larkAppId:o.larkAppId,dot:"ok"})})}),(0,t.jsx)("div",{className:"bd-profile-main",children:(0,t.jsx)(Ht,{bot:o,cli:r,patchBot:i,meta:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("small",{className:"bd-meta-ok",children:["\u25CF ",e("botDefaults.metaOnline")]}),(0,t.jsxs)("small",{"data-oncall-since":!0,children:[e("botDefaults.lastEnabled"),": ",kt(f.since??0)]}),(0,t.jsx)("small",{children:e("botDefaults.autobound",{count:o.autoboundChatCount??0})})]})})})]}),(0,t.jsxs)("div",{className:"bd-body bd-grid",children:[(0,t.jsxs)("div",{className:"bd-column",children:[(0,t.jsxs)("section",{className:"bd-tile",children:[(0,t.jsx)(Wt,{bot:o,sessionFallback:r,cliState:u,patchBot:i}),(0,t.jsx)(Et,{bot:o,patchBot:i,putCardPref:d}),o.cliId!=="riff"&&(0,t.jsx)(qt,{bot:o,patchBot:i}),o.cliId!=="riff"&&(0,t.jsx)(Qt,{bot:o,patchBot:i})]}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(jt,{bot:o,patchBot:i})}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(ue,{bot:o,patchBot:i})})]}),(0,t.jsxs)("div",{className:"bd-column",children:[(0,t.jsxs)("section",{className:"bd-tile",children:[(0,t.jsx)(te,{bot:o,patchBot:i,putCardPref:d}),(0,t.jsx)(ee,{bot:o,patchBot:i}),(0,t.jsx)(Zt,{bot:o,putCardPref:d}),(0,t.jsx)(ae,{bot:o,patchBot:i})]}),(0,t.jsxs)("section",{className:"bd-tile",children:[(0,t.jsx)(zt,{bot:o,putCardPref:d}),(0,t.jsx)(Yt,{bot:o,putCardPref:d}),(0,t.jsx)(Xt,{bot:o,patchBot:i}),(0,t.jsx)(re,{bot:o,patchBot:i})]}),(0,t.jsx)("section",{className:"bd-tile",children:(0,t.jsx)(Vt,{bot:o,patchBot:i})})]})]})]})}function jt(a){let e=A();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)(oe,{bot:a.bot,patchBot:a.patchBot}),(0,t.jsx)(se,{bot:a.bot,patchBot:a.patchBot}),(0,t.jsx)(ne,{bot:a.bot,patchBot:a.patchBot})]})}function Ht(a){let e=A(),{bot:o,cli:u,patchBot:i}=a,l=o.botName??o.larkAppId,[r,d]=(0,s.useState)(!1),[f,n]=(0,s.useState)(l),[p,m]=(0,s.useState)(!1),[c,b]=(0,s.useState)(null),[D,k]=(0,s.useState)(!1),[v,h]=(0,s.useState)(!1);(0,s.useEffect)(()=>{r||n(l)},[r,l]);function x(S){d(S),S&&(n(l),b(null),k(!1))}function y(S,C){let g=["no_session","session_expired","no_access","unsupported_brand"].includes(S)?e(`botDefaults.renameWarn.${S}`):C||S;return e("botDefaults.renameLocalOnly",{reason:g})}let N=(0,s.useCallback)(async()=>{let S=f.trim();if(!S){b({text:`\u2717 ${e("botDefaults.renameEmpty")}`});return}m(!0),b({text:`\u23F3 ${e("botDefaults.renaming")}`,ok:!0});try{let C=await O("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/rename`,{name:S});if(C.ok&&C.body.ok){let M=typeof C.body.botName=="string"&&C.body.botName?C.body.botName:S;i(o.larkAppId,g=>({...g,botName:M,larkBotName:C.body.mode==="feishu"?S:g.larkBotName,displayName:C.body.mode==="feishu"?null:S})),x(!1),C.body.mode==="feishu"?(b({text:`\u2713 ${e("botDefaults.renameOkFeishu")}`,ok:!0}),k(!1)):(b({text:`\u26A0 ${y(String(C.body.warning??""),C.body.message)}`}),k(C.body.warning==="no_session"||C.body.warning==="session_expired"))}else b({text:`\u2717 ${e("botDefaults.renameFailed",{error:L(C)})}`})}catch(C){b({text:`\u2717 ${e("botDefaults.renameFailed",{error:R(C)})}`})}finally{m(!1)}},[o.larkAppId,f,i,e]);return(0,t.jsxs)("div",{className:"bd-profile-id",children:[r?(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:f,disabled:p,autoFocus:!0,onChange:S=>n(S.currentTarget.value),onKeyDown:S=>{S.key==="Enter"?(S.preventDefault(),N()):S.key==="Escape"&&x(!1)}}),(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-bot-name",disabled:p,onClick:()=>{N()},children:e("botDefaults.renameSave")}),(0,t.jsx)("button",{type:"button","data-action":"cancel-bot-name",disabled:p,onClick:()=>x(!1),children:e("botDefaults.renameCancel")})]}):(0,t.jsxs)("div",{className:"bd-profile-title-row","data-name-row":!0,children:[(0,t.jsxs)("div",{className:"bd-profile-title-content",children:[(0,t.jsx)("strong",{"data-bot-name":!0,children:l}),u?(0,t.jsx)("span",{className:"mate-role bd-profile-cli-tag",children:u}):null,a.meta?(0,t.jsx)("span",{className:"bd-profile-meta bd-meta",children:a.meta}):null]}),(0,t.jsx)("button",{type:"button",className:"bd-name-edit","data-action":"edit-bot-name",title:e("botDefaults.renameTitle"),"aria-label":e("botDefaults.renameTitle"),onClick:()=>x(!0),children:e("botDefaults.renameAction")})]}),(0,t.jsx)("code",{children:o.larkAppId}),(0,t.jsx)("small",{className:xt(c,"bd-name-status"),"data-name-status":!0,children:c?.text??""}),(0,t.jsx)("button",{type:"button",className:"bd-feishu-login","data-action":"feishu-login",hidden:!D,onClick:()=>h(!0),children:e("feishuLogin.entry")}),v?(0,t.jsx)(Ut,{onClose:()=>h(!1),onSuccess:()=>{k(!1),h(!1),N()}}):null]})}function Ut(a){let e=A(),{onClose:o,onSuccess:u}=a,i=(0,s.useRef)(null),l=(0,s.useRef)(null),[r,d]=(0,s.useState)(e("feishuLogin.starting")),[f,n]=(0,s.useState)(null),[p,m]=(0,s.useState)(!1),c=(0,s.useCallback)(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]),b=(0,s.useCallback)(v=>v?v.status==="awaiting_scan"&&v.qrDataUrl?(n(v.qrDataUrl),d(v.message||e("feishuLogin.scanHint")),m(!1),"active"):v.status==="starting"?(d(v.message||e("feishuLogin.starting")),n(null),m(!1),"active"):v.status==="success"?(c(),n(null),m(!1),d(e("feishuLogin.success")),l.current=window.setTimeout(()=>u(),900),"done"):(c(),n(null),d(e("feishuLogin.failed",{reason:v.message||v.reason||""})),m(!0),"done"):"active",[u,c,e]),D=(0,s.useCallback)(async()=>{try{let h=await(await fetch("/api/feishu-login/status")).json().catch(()=>({}));b(h.login)}catch{}},[b]),k=(0,s.useCallback)(async()=>{c(),d(e("feishuLogin.starting")),n(null),m(!1);let v="active";try{let x=await(await fetch("/api/feishu-login/start",{method:"POST"})).json().catch(()=>({}));v=b(x.login)}catch(h){d(e("feishuLogin.failed",{reason:R(h)})),m(!0);return}v==="active"&&i.current===null&&(i.current=window.setInterval(()=>{D()},1500))},[D,b,c,e]);return(0,s.useEffect)(()=>(k(),()=>{c(),l.current!==null&&window.clearTimeout(l.current)}),[k,c]),(0,t.jsx)("div",{className:"feishu-login-overlay",onClick:v=>{v.currentTarget===v.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:r}),(0,t.jsx)("div",{className:"feishu-login-qr","data-qr":!0,children:f?(0,t.jsx)("img",{className:"qr-image",src:f,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:!p,onClick:()=>{k()},children:e("feishuLogin.retry")})})]})})}function Wt(a){let e=A(),{bot:o,cliState:u,patchBot:i}=a,l=X(o,a.sessionFallback),[r,d]=(0,s.useState)(l),[f,n]=(0,s.useState)(typeof o.model=="string"?o.model:""),[p,m]=(0,s.useState)(null),[c,b]=(0,s.useState)(!1),[D,k]=(0,s.useState)(St(o)),[v,h]=(0,s.useState)(null),[x,y]=(0,s.useState)(!1);(0,s.useEffect)(()=>{d(X(o,a.sessionFallback)),n(typeof o.model=="string"?o.model:""),k(St(o))},[o.agentSelectionKey,o.cliId,o.larkAppId,o.model,o.skillInjection,o.skillInjectionDefault,a.sessionFallback]);let N=tt(u.options,r),S=yt(N,u),C=N?.gateway==="ttadk"&&N.acceptsModel===!1,M=C?e("botOnboarding.modelTtadkCocoPlaceholder"):N?.gateway==="ttadk"?e("botOnboarding.modelTtadkPlaceholder").replace("{model}",u.ttadkModelDefault):e("botDefaults.agentModelPlaceholder");function g(I){d(I);let W=tt(u.options,I),ot=W?.gateway==="ttadk",st=ot&&W.acceptsModel!==!1;n(ot&&!st?"":st?J=>J.trim()?J:u.ttadkModelDefault:J=>J.trim()===u.ttadkModelDefault?"":J)}async function G(){m(null),b(!0);try{let I=await O("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:r,model:f});I.ok&&I.body.ok?(m(I.body.availabilityWarning?{text:`\u26A0\uFE0F ${I.body.availabilityWarning}`}:{text:`\u2713 ${e("botDefaults.agentSaved")}`,ok:!0}),i(o.larkAppId,{cliId:I.body.cliId,wrapperCli:I.body.wrapperCli??null,model:I.body.model??"",agentSelectionKey:I.body.selectionKey??r})):m({text:`\u2717 ${L(I)}`})}catch(I){m({text:`\u2717 ${R(I)}`})}finally{b(!1)}}async function w(){if(o.cliId==="riff")return!0;try{let I=await O("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/agent`,{cliId:"riff",model:""});return I.ok&&I.body.ok?(i(o.larkAppId,{cliId:I.body.cliId,wrapperCli:I.body.wrapperCli??null,model:I.body.model??"",agentSelectionKey:I.body.selectionKey??"riff"}),!0):(m({text:`\u2717 ${L(I)}`}),!1)}catch(I){return m({text:`\u2717 ${R(I)}`}),!1}}async function T(I){k(I),h(null),y(!0);try{let W=await O("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/skill-injection`,{skillInjection:I});W.ok&&W.body.ok?(h({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}),i(o.larkAppId,{skillInjection:W.body.skillInjection??null})):h({text:`\u2717 ${L(W)}`})}catch(W){h({text:`\u2717 ${R(W)}`})}finally{y(!1)}}let B=o.skillInjectionSupport==="dynamic"?"dynamic":o.skillInjectionSupport==="global"?"global":"none",F=u.options.map(I=>({value:I.id,label:I.available===!1?e("botDefaults.agentMissingOption",{label:I.label,command:I.command??I.id}):`${I.label}\uFF08${I.id}\uFF09`})),H=[{value:"dynamic",label:e("botDefaults.skillInjectionDynamic")}],z=[{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")}],E=r==="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)(U,{dataInput:"agentCliId",ariaLabel:e("botDefaults.agentCli"),value:r,disabled:c,options:F,onChange:g}),N?.available===!1?(0,t.jsx)("small",{className:"hint-warn",children:e("botDefaults.agentMissingHint",{command:N.command??r})}):null]})}),!E&&(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)(P,{help:e("botDefaults.agentHelp"),children:e("botDefaults.agentModel")}),(0,t.jsx)("input",{type:"text","data-input":"agentModel",list:`agent-model-suggestions-${o.larkAppId}`,placeholder:M,value:f,disabled:c||C,onChange:I=>n(I.currentTarget.value)}),(0,t.jsx)("datalist",{id:`agent-model-suggestions-${o.larkAppId}`,children:S.map(I=>(0,t.jsx)("option",{value:I},I))})]})}),E&&(0,t.jsx)(ie,{bot:o,patchBot:i,persistCliSelection:w}),!E&&B==="dynamic"?(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(P,{help:e("botDefaults.skillInjectionHelpDynamic"),children:e("botDefaults.skillInjection")}),(0,t.jsx)(U,{dataInput:"skillInjection",ariaLabel:e("botDefaults.skillInjection"),value:"dynamic",disabled:!0,options:H,onChange:()=>{}})]})}):!E&&B==="global"?(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(P,{help:e("botDefaults.skillInjectionHelp"),children:e("botDefaults.skillInjection")}),(0,t.jsx)(U,{dataInput:"skillInjection",ariaLabel:e("botDefaults.skillInjection"),value:D,disabled:x,options:z,onChange:I=>{T(I)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:v,attr:{"data-skill-injection-status":""}})})]}):null,!E&&(0,t.jsxs)("div",{className:"actions bd-section-actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-agent",disabled:c,onClick:()=>{G()},children:e("botDefaults.agentSave")}),(0,t.jsx)($,{status:p,attr:{"data-agent-status":""}})]})]})}function St(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 Et(a){let e=A(),{bot:o,patchBot:u}=a,i=Ct(o),[l,r]=(0,s.useState)(i.mode),[d,f]=(0,s.useState)(i.workingDir),[n,p]=(0,s.useState)(o.defaultWorkingDirAutoWorktree===!0),[m,c]=(0,s.useState)(null),[b,D]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let h=Ct(o);r(h.mode),f(h.workingDir),p(o.defaultWorkingDirAutoWorktree===!0)},[o.defaultOncall?.enabled,o.defaultOncall?.workingDir,o.defaultWorkingDir,o.defaultWorkingDirAutoWorktree]);async function k(){c(null);let h=d.trim();if(l!=="off"&&!h){c({text:e("botDefaults.required")});return}let x=l==="default"&&n;D(!0);try{let y=await O("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/working-dir-mode`,{mode:l,workingDir:h,autoWorktree:x});if(y.ok&&y.body.ok){let N=y.body.resolvedPath?` \u2192 ${y.body.resolvedPath}`:"";c({text:`\u2713 ${e("botDefaults.workingDirSaved")}${N}`,ok:!0}),u(o.larkAppId,{defaultOncall:y.body.defaultOncall??o.defaultOncall,defaultWorkingDir:y.body.defaultWorkingDir??null,defaultWorkingDirAutoWorktree:y.body.defaultWorkingDirAutoWorktree===!0})}else c({text:`\u2717 ${L(y)}`})}catch(y){c({text:`\u2717 ${R(y)}`})}finally{D(!1)}}let v=[{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)(P,{help:e("botDefaults.workingDirModeHelp"),children:e("botDefaults.workingDirMode")}),(0,t.jsx)(U,{dataInput:"workingDirMode",ariaLabel:e("botDefaults.workingDirMode"),value:l,disabled:b,options:v,onChange:h=>r(h)})]})}),(0,t.jsx)("div",{className:"bd-row","data-wd-dir-row":!0,hidden:l==="off",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.workingDirField")}),(0,t.jsx)("input",{type:"text","data-input":"workingDir",placeholder:"e.g. /root/iserver/botmux",value:d,disabled:b,onChange:h=>f(h.currentTarget.value)})]})}),(0,t.jsxs)("label",{className:"toggle-row","data-wd-worktree-row":!0,hidden:l!=="default",children:[(0,t.jsx)("input",{type:"checkbox","data-input":"autoWorktree",checked:n,disabled:b,onChange:h=>p(h.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)(P,{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:b,onClick:()=>{k()},children:e("botDefaults.save")}),(0,t.jsx)($,{status:m,attr:{"data-status":""}})]}),(0,t.jsx)(Jt,{bot:o,putCardPref:a.putCardPref})]})}function Ct(a){let e=a.defaultOncall??{enabled:!1,workingDir:""};return{mode:e.enabled?"oncall":a.defaultWorkingDir?"default":"off",workingDir:a.defaultWorkingDir||e.workingDir||""}}function Jt(a){let e=A(),{bot:o,putCardPref:u}=a,[i,l]=(0,s.useState)(o.autoStartOnGroupJoin===!0),[r,d]=(0,s.useState)(o.autoStartOnNewTopic===!0),[f,n]=(0,s.useState)(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:""),[p,m]=(0,s.useState)(null),[c,b]=(0,s.useState)(null);(0,s.useEffect)(()=>{l(o.autoStartOnGroupJoin===!0),d(o.autoStartOnNewTopic===!0),n(typeof o.autoStartOnGroupJoinPrompt=="string"?o.autoStartOnGroupJoinPrompt:"")},[o.autoStartOnGroupJoin,o.autoStartOnGroupJoinPrompt,o.autoStartOnNewTopic]);async function D(k,v){b(v),m(null);try{let h=await u(k);m(h.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${L(h)}`})}catch(h){m({text:`\u2717 ${R(h)}`})}finally{b(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)(j,{checked:i,disabled:c==="join",dataAction:"toggle-auto-join",title:e("botDefaults.autoStartJoin"),help:e("botDefaults.autoStartJoinHelp"),onChange:k=>{l(k),D({autoStartOnGroupJoin:k},"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:f,onChange:k=>n(k.currentTarget.value)})]})}),(0,t.jsx)(j,{checked:r,disabled:c==="topic",dataAction:"toggle-auto-topic",title:e("botDefaults.autoStartTopic"),help:e("botDefaults.autoStartTopicHelp"),onChange:k=>{d(k),D({autoStartOnNewTopic:k},"topic")}}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-auto-join-prompt",disabled:c==="prompt",onClick:()=>{D({autoStartOnGroupJoinPrompt:f},"prompt")},children:e("botDefaults.autoStartJoinPromptSave")}),(0,t.jsx)($,{status:p,attr:{"data-auto-start-status":""}})]})]})}function qt(a){let e=A(),{bot:o,patchBot:u}=a,[i,l]=(0,s.useState)(o.sandbox===!0),[r,d]=(0,s.useState)(null),[f,n]=(0,s.useState)(!1);(0,s.useEffect)(()=>l(o.sandbox===!0),[o.sandbox]);async function p(c){l(c),d(null),n(!0);try{let b=await O("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/sandbox`,{enabled:c});b.ok&&b.body.ok?(d({text:`\u2713 ${e("botDefaults.sandboxSaved")}`,ok:!0}),u(o.larkAppId,{sandbox:b.body.sandbox===!0})):(d({text:`\u2717 ${L(b)}`}),l(!c))}catch(b){d({text:`\u2717 ${R(b)}`}),l(!c)}finally{n(!1)}}let m=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)(j,{checked:i,disabled:f,dataAction:"toggle-sandbox",title:e("botDefaults.sandboxToggle"),help:e("botDefaults.sandboxHelp"),onChange:c=>{p(c)}}),(0,t.jsx)("p",{className:"bd-section-note","data-read-iso-capability":m?"yes":"no",children:m?`\uFF0B ${e("botDefaults.sandboxReadIsoOn")}`:e("botDefaults.sandboxReadIsoOff")}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:r,attr:{"data-sandbox-status":""}})})]})}var Kt=[{value:"",labelKey:"botDefaults.backendAuto"},{value:"tmux",labelKey:"botDefaults.backendTmux"},{value:"herdr",labelKey:"botDefaults.backendHerdr"},{value:"zellij",labelKey:"botDefaults.backendZellij"},{value:"pty",labelKey:"botDefaults.backendPty"}];function Qt(a){let e=A(),{bot:o,patchBot:u}=a,[i,l]=(0,s.useState)(typeof o.backendType=="string"?o.backendType:""),[r,d]=(0,s.useState)(null),[f,n]=(0,s.useState)(!1);(0,s.useEffect)(()=>l(typeof o.backendType=="string"?o.backendType:""),[o.backendType]);let p=(0,s.useMemo)(()=>Kt.map(c=>({value:c.value,label:e(c.labelKey)})),[e]);async function m(c){let b=i;l(c),d(null),n(!0);try{let D=await O("PUT",`/api/bots/${encodeURIComponent(o.larkAppId)}/backend-type`,{backendType:c});D.ok&&D.body.ok?(d({text:`\u2713 ${e("botDefaults.backendSaved")}`,ok:!0}),u(o.larkAppId,{backendType:typeof D.body.backendType=="string"?D.body.backendType:null})):(d({text:`\u2717 ${L(D)}`}),l(b))}catch(D){d({text:`\u2717 ${R(D)}`}),l(b)}finally{n(!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)(P,{help:e("botDefaults.backendHelp"),children:e("botDefaults.backendLabel")}),(0,t.jsx)(U,{dataInput:"backendType",ariaLabel:e("botDefaults.backendLabel"),value:i,disabled:f,options:p,onChange:c=>{m(c)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:r,attr:{"data-backend-status":""}})})]})]})}function Vt(a){let e=A(),{bot:o,patchBot:u}=a,[i,l]=(0,s.useState)(typeof o.teamRole=="string"),[r,d]=(0,s.useState)(typeof o.teamRole=="string"?o.teamRole:""),[f,n]=(0,s.useState)(null),[p,m]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let b=!0,D=`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`;return typeof o.teamRole=="string"?(l(!0),d(o.teamRole),()=>{b=!1}):(n(null),l(!1),d(""),(async()=>{try{let k=await fetch(D),v=await k.json().catch(()=>({}));if(!b)return;if(k.ok&&v.ok){let h=v.role??"";d(h),l(!0),u(o.larkAppId,{teamRole:h})}else n({text:`\u2717 ${e("botDefaults.roleLoadErr")}: ${v.error??k.status}`})}catch(k){b&&n({text:`\u2717 ${e("botDefaults.roleLoadErr")}: ${R(k)}`})}})(),()=>{b=!1})},[o.larkAppId,o.teamRole,u,e]);async function c(b,D){if(i){n(null),m(!0);try{let k=await O("PUT",`/api/team/local-bots/${encodeURIComponent(o.larkAppId)}/role`,{role:b});if(k.ok&&k.body.ok){let v=b.trim();d(v),u(o.larkAppId,{teamRole:v}),n({text:`\u2713 ${e(D?"botDefaults.roleDeleted":"botDefaults.roleSaved")}`,ok:!0})}else n({text:`\u2717 ${L(k)}`})}catch(k){n({text:`\u2717 ${R(k)}`})}finally{m(!1)}}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)(P,{help:e("botDefaults.roleHelp"),children:e("botDefaults.sectionRole")})}),(0,t.jsx)("textarea",{"data-input":"teamRole",rows:6,placeholder:e("botDefaults.rolePlaceholder"),disabled:!i||p,value:r,onChange:b=>d(b.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-role",disabled:!i||p,onClick:()=>{c(r,r.trim()==="")},children:e("botDefaults.roleSave")}),(0,t.jsx)($,{status:f,attr:{"data-role-status":""}})]}),(0,t.jsx)(_t,{appId:o.larkAppId})]})}function _t(a){let e=A(),[o,u]=(0,s.useState)({loaded:!1,loading:!0,items:[]});(0,s.useEffect)(()=>{let r=!0;return u({loaded:!1,loading:!0,items:[]}),(async()=>{try{let d=await fetch("/api/role-profiles"),f=await d.json().catch(()=>({}));if(!r)return;if(!d.ok)throw new Error(f?.error??String(d.status));let p=(Array.isArray(f.profiles)?f.profiles:[]).filter(m=>(m.botEntries??[]).some(c=>c?.larkAppId===a.appId&&c?.hasEntry)).map(m=>({profileId:String(m.profileId)}));u({loaded:!0,loading:!1,items:p})}catch(d){r&&u({loaded:!0,loading:!1,error:R(d),items:[]})}})(),()=>{r=!1}},[a.appId]);async function i(r){let d=o.items.find(f=>f.profileId===r);if(!(!d||d.loaded||d.loading)){u(f=>({...f,items:f.items.map(n=>n.profileId===r?{...n,loading:!0}:n)}));try{let f=await fetch(`/api/role-profiles/${encodeURIComponent(r)}/${encodeURIComponent(a.appId)}`),n=await f.json().catch(()=>({}));if(!f.ok)throw new Error(n?.error??String(f.status));u(p=>({...p,items:p.items.map(m=>m.profileId===r?{...m,loading:!1,loaded:!0,content:n?.hasEntry?String(n.content??""):""}:m)}))}catch(f){u(n=>({...n,items:n.items.map(p=>p.profileId===r?{...p,loading:!1,error:R(f)}:p)}))}}}let l;return o.loading?l=(0,t.jsx)(V,{label:e("common.loading"),compact:!0}):o.error?l=(0,t.jsx)("p",{className:"hint-warn-inline",children:e("botDefaults.profileRolesLoadFailed",{error:o.error})}):o.items.length===0?l=(0,t.jsx)("p",{className:"empty",children:e("botDefaults.profileRolesEmpty")}):l=o.items.map(r=>(0,t.jsxs)("details",{className:"bd-profile-role-entry","data-profile-id":r.profileId,onToggle:d=>{d.currentTarget.open&&i(r.profileId)},children:[(0,t.jsx)("summary",{children:(0,t.jsx)("span",{className:"bd-profile-role-id",children:r.profileId})}),(0,t.jsx)("div",{className:"bd-profile-role-content","data-profile-role-body":r.profileId,children:r.loading?(0,t.jsx)(V,{label:e("common.loading"),compact:!0}):r.error?(0,t.jsx)("p",{className:"hint-warn-inline",children:e("botDefaults.profileRoleDetailLoadFailed",{error:r.error})}):r.loaded?(0,t.jsx)("pre",{children:r.content??""}):(0,t.jsx)("p",{className:"empty",children:e("botDefaults.profileRoleClickToLoad")})})]},r.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)(P,{help:e("botDefaults.profileRolesHelp"),children:e("botDefaults.profileRoles")})}),(0,t.jsx)("div",{className:"bd-profile-role-list","data-profile-role-list":!0,children:l})]})}function zt(a){let e=A(),{bot:o,putCardPref:u}=a,[i,l]=(0,s.useState)(o.disableStreamingCard===!0),[r,d]=(0,s.useState)(o.silentTurnReactions===!0),[f,n]=(0,s.useState)(o.writableTerminalLinkInCard===!0),[p,m]=(0,s.useState)(o.privateCard===!0),[c,b]=(0,s.useState)(null),[D,k]=(0,s.useState)(null);(0,s.useEffect)(()=>{l(o.disableStreamingCard===!0),d(o.silentTurnReactions===!0),n(o.writableTerminalLinkInCard===!0),m(o.privateCard===!0)},[o.disableStreamingCard,o.privateCard,o.silentTurnReactions,o.writableTerminalLinkInCard]);async function v(h,x){k(x),b(null);try{let y=await u(h);b(y.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${L(y)}`})}catch(y){b({text:`\u2717 ${R(y)}`})}finally{k(null)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:e("botDefaults.sectionCard")}),(0,t.jsxs)("div",{className:"bd-toggle-grid bd-card-behavior-grid",children:[(0,t.jsx)(j,{checked:i,disabled:D==="streaming",dataAction:"toggle-disable-streaming",title:e("botDefaults.disableStreaming"),help:e("botDefaults.disableStreamingHelp"),onChange:h=>{l(h),v({disableStreamingCard:h},"streaming")}}),(0,t.jsx)(j,{checked:r,disabled:!i||D==="silent",dataAction:"toggle-silent-reactions",title:e("botDefaults.silentTurnReactions"),help:e("botDefaults.silentTurnReactionsHelp"),onChange:h=>{d(h),v({silentTurnReactions:h},"silent")}}),(0,t.jsx)(j,{checked:f,disabled:i||D==="writable",dataAction:"toggle-writable-link",title:e("botDefaults.writableLink"),help:e("botDefaults.writableLinkHelp"),onChange:h=>{n(h),v({writableTerminalLinkInCard:h},"writable")}}),(0,t.jsx)(j,{checked:p,disabled:D==="private",dataAction:"toggle-private-card",title:e("botDefaults.privateCard"),help:e("botDefaults.privateCardHelp"),onChange:h=>{m(h),v({privateCard:h},"private")}})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("small",{"data-card-pref-moot":!0,className:"hint-warn-inline",hidden:!i,children:e("botDefaults.writableLinkMoot")}),(0,t.jsx)($,{status:c,attr:{"data-card-pref-status":""}})]})]})}function Yt(a){let e=A(),[o,u]=(0,s.useState)(a.bot.codexAppCleanInput===!0),[i,l]=(0,s.useState)(null),[r,d]=(0,s.useState)(!1);(0,s.useEffect)(()=>u(a.bot.codexAppCleanInput===!0),[a.bot.codexAppCleanInput]);async function f(n){let p=o;u(n),d(!0),l(null);try{let m=await a.putCardPref({codexAppCleanInput:n});m.ok?l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}):(u(p),l({text:`\u2717 ${L(m)}`}))}catch(m){u(p),l({text:`\u2717 ${R(m)}`})}finally{d(!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)(j,{checked:o,disabled:r,dataAction:"toggle-codex-app-clean-input",title:e("botDefaults.codexAppCleanInput"),help:e("botDefaults.codexAppCleanInputHelp"),onChange:n=>{f(n)}}),(0,t.jsx)("small",{className:"bd-section-note",children:e("botDefaults.codexAppCleanInputCompat")}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:i,attr:{"data-codex-app-clean-input-status":""}})})]})}function Zt(a){let e=A(),[o,u]=(0,s.useState)(a.bot.botToBotSameDir!==!1),[i,l]=(0,s.useState)(null),[r,d]=(0,s.useState)(!1);(0,s.useEffect)(()=>u(a.bot.botToBotSameDir!==!1),[a.bot.botToBotSameDir]);async function f(n){u(n),d(!0),l(null);try{let p=await a.putCardPref({botToBotSameDir:n});l(p.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${L(p)}`})}catch(p){l({text:`\u2717 ${R(p)}`})}finally{d(!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)(j,{checked:o,disabled:r,dataAction:"toggle-cross-bot-samedir",title:e("botDefaults.botToBotSameDir"),help:e("botDefaults.botToBotSameDirHelp"),onChange:n=>{f(n)}}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:i,attr:{"data-crossbot-status":""}})})]})}function Xt(a){let e=A(),o=et(a.bot),[u,i]=(0,s.useState)(String(o.limit)),[l,r]=(0,s.useState)(String(o.sinceHours)),[d,f]=(0,s.useState)(null),[n,p]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let c=et(a.bot);i(String(c.limit)),r(String(c.sinceHours))},[a.bot.summaryRange?.limit,a.bot.summaryRange?.sinceHours]);async function m(){f(null);let c=Dt(u,50),b=Dt(l,24);if(c==null||b==null){f({text:`\u2717 ${e("botDefaults.summaryNumberInvalid")}`});return}p(!0);try{let D=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/summary-range`,{limit:c,sinceHours:b});if(D.ok&&D.body.ok){let k=D.body.summaryRange??{limit:c,sinceHours:b},v=et({...a.bot,summaryRange:k});i(String(v.limit)),r(String(v.sinceHours)),a.patchBot(a.bot.larkAppId,{summaryRange:k}),f({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else f({text:`\u2717 ${L(D)}`})}catch(D){f({text:`\u2717 ${R(D)}`})}finally{p(!1)}}return(0,t.jsxs)("section",{className:"bd-section",children:[(0,t.jsx)("h3",{className:"bd-section-title",children:(0,t.jsx)(P,{help:e("botDefaults.summaryLimitHelp"),children:e("botDefaults.sectionSummaryTrigger")})}),(0,t.jsxs)("div",{className:"bd-row bd-summary-limits",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.summaryLimit")}),(0,t.jsx)("input",{type:"number",min:0,step:1,"data-input":"summaryLimit",value:u,disabled:n,onChange:c=>i(c.currentTarget.value)})]}),(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.summarySinceHours")}),(0,t.jsx)("input",{type:"number",min:0,step:1,"data-input":"summarySinceHours",value:l,disabled:n,onChange:c=>r(c.currentTarget.value)})]})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-summary-trigger",disabled:n,onClick:()=>{m()},children:e("botDefaults.summarySave")}),(0,t.jsx)($,{status:d,attr:{"data-summary-trigger-status":""}})]})]})}function et(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 te(a){let e=A(),[o,u]=(0,s.useState)(a.bot.p2pMode==="chat"?"chat":"thread"),[i,l]=(0,s.useState)(Nt(a.bot)),[r,d]=(0,s.useState)(It(a.bot)),[f,n]=(0,s.useState)(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only"),[p,m]=(0,s.useState)(null),[c,b]=(0,s.useState)(null),[D,k]=(0,s.useState)(null),[v,h]=(0,s.useState)(null),[x,y]=(0,s.useState)(null);(0,s.useEffect)(()=>{u(a.bot.p2pMode==="chat"?"chat":"thread"),l(Nt(a.bot)),d(It(a.bot)),n(a.bot.docSubscribeDefaultMode==="all"?"all":"mention-only")},[a.bot.docSubscribeDefaultMode,a.bot.p2pMode,a.bot.regularGroupMentionMode,a.bot.regularGroupReplyMode]);async function N(w){let T=w==="chat"?"chat":"thread";u(T),m("p2p"),b(null);try{let B=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/p2p-mode`,{p2pMode:T});B.ok&&B.body.ok?(a.patchBot(a.bot.larkAppId,{p2pMode:B.body.p2pMode==="chat"?"chat":"thread"}),b({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})):b({text:`\u2717 ${L(B)}`})}catch(B){b({text:`\u2717 ${R(B)}`})}finally{m(null)}}async function S(w,T,B){m(w),B(null);try{let F=await a.putCardPref(T);B(F.ok?{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0}:{text:`\u2717 ${L(F)}`})}catch(F){B({text:`\u2717 ${R(F)}`})}finally{m(null)}}let C=[{value:"thread",label:e("botDefaults.p2pThread")},{value:"chat",label:e("botDefaults.p2pChat")}],M=[{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")}],G=[{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)(P,{help:e("botDefaults.p2pHelp"),children:e("botDefaults.p2pMode")}),(0,t.jsx)(U,{dataInput:"p2pMode",ariaLabel:e("botDefaults.p2pMode"),value:o,disabled:p==="p2p",options:C,onChange:w=>{N(w)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:c,attr:{"data-p2p-status":""}})})]}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(P,{help:e("botDefaults.regularGroupModeHelp"),children:e("botDefaults.regularGroupMode")}),(0,t.jsx)(U,{dataInput:"regularGroupMode",ariaLabel:e("botDefaults.regularGroupMode"),value:i,disabled:p==="regular",options:M,onChange:w=>{l(w),S("regular",{regularGroupReplyMode:w},k)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:D,attr:{"data-regular-group-status":""}})})]}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(P,{help:e("botDefaults.mentionModeHelp"),children:e("botDefaults.mentionMode")}),(0,t.jsx)(U,{dataInput:"regularGroupMentionMode",ariaLabel:e("botDefaults.mentionMode"),value:r,disabled:p==="mention",options:g,onChange:w=>{d(w),S("mention",{regularGroupMentionMode:w},h)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:v,attr:{"data-mention-mode-status":""}})})]}),(0,t.jsxs)("div",{className:"bd-row",children:[(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(P,{help:e("botDefaults.docSubscribeModeHelp"),children:e("botDefaults.docSubscribeMode")}),(0,t.jsx)(U,{dataInput:"docSubscribeDefaultMode",ariaLabel:e("botDefaults.docSubscribeMode"),value:f,disabled:p==="doc",options:G,onChange:w=>{n(w),S("doc",{docSubscribeDefaultMode:w},y)}})]}),(0,t.jsx)("div",{className:"actions",children:(0,t.jsx)($,{status:x,attr:{"data-doc-subscribe-mode-status":""}})})]})]})}function ee(a){let e=A(),o=a.bot.substituteMode??null,[u,i]=(0,s.useState)(o?.enabled===!0),[l,r]=(0,s.useState)(o?.disclosure==="none"?"none":"prefix"),[d,f]=(0,s.useState)(null),[n,p]=(0,s.useState)(!1),m=(0,s.useRef)(0),c=(0,s.useRef)(!1);function b(y){let N=Pt(y);return{key:++m.current,idField:N,idValue:y?.[N]??"",name:y?.name??"",persisted:y?{...y}:{},originalIdField:y?N:void 0}}let[D,k]=(0,s.useState)(()=>{let y=o?.targets??[];return y.length?y.map(N=>b(N)):[b()]});(0,s.useEffect)(()=>{if(c.current){c.current=!1;return}let y=a.bot.substituteMode??null;i(y?.enabled===!0),r(y?.disclosure==="none"?"none":"prefix");let N=y?.targets??[];k(N.length?N.map(S=>b(S)):[b()])},[a.bot.larkAppId,a.bot.substituteMode]);async function v(y){p(!0),f(null);try{let N=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/substitute-mode`,y);if(N.ok&&N.body.ok){let S=N.body.substituteMode&&typeof N.body.substituteMode=="object"?N.body.substituteMode:null,C=Array.isArray(N.body?.resolution)?N.body.resolution:[],M=C.filter(g=>g?.ok===!1).map(g=>String(g.input??"").trim()).filter(Boolean);if(i(S?.enabled===!0),r(S?.disclosure==="none"?"none":"prefix"),C.length)c.current=!0,k(g=>{let G=[...C];return g.map(w=>{let T=w.idValue.trim(),B=G.findIndex(z=>String(z.input??"").trim()===T);if(B<0)return w;let F=G.splice(B,1)[0];if(F?.ok!==!0)return w;let H={...w.persisted};return F.openId&&(H.openId=F.openId),w.idField==="email"&&(H.email=T),F.name&&(H.name=F.name),{...w,name:F.name??w.name,persisted:H}})});else{let g=S?.targets??[];k(g.length?g.map(G=>b(G)):[b()])}a.patchBot(a.bot.larkAppId,{substituteMode:S}),f(M.length?{text:`\u2717 ${e("botDefaults.substituteTargetsInvalid")}: ${M.join(", ")}`}:{text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else{let S=Array.isArray(N.body?.resolution)?N.body.resolution.filter(C=>C?.ok===!1).map(C=>String(C.input??"").trim()).filter(Boolean):[];f({text:S.length?`\u2717 ${e("botDefaults.substituteTargetsInvalid")}: ${S.join(", ")}`:`\u2717 ${L(N)}`})}}catch(N){f({text:`\u2717 ${R(N)}`})}finally{p(!1)}}function h(){let y=[],N=!1;for(let S of D){let C=Rt(S);if(!C){N||=!!S.name.trim();continue}y.push(C)}if(N||u&&y.length===0){f({text:`\u2717 ${e("botDefaults.substituteTargetsInvalid")}`});return}v({enabled:u,targets:y,disclosure:l})}let x=[{value:"prefix",label:e("botDefaults.substituteDisclosurePrefix")},{value:"none",label:e("botDefaults.substituteDisclosureNone")}];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)(j,{checked:u,disabled:n,dataAction:"toggle-substitute-mode",title:e("botDefaults.substituteEnabled"),help:e("botDefaults.substituteHelp"),onChange:i}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("div",{className:"bd-field",children:[(0,t.jsx)(P,{children:e("botDefaults.substituteDisclosure")}),(0,t.jsx)(U,{dataInput:"substituteDisclosure",ariaLabel:e("botDefaults.substituteDisclosure"),value:l,disabled:n,options:x,onChange:y=>r(y)})]})}),(0,t.jsxs)("div",{className:"bd-row bd-substitute-targets",children:[(0,t.jsx)(P,{help:e("botDefaults.substituteTargetsHelp"),children:e("botDefaults.substituteTargets")}),(0,t.jsxs)("div",{className:"bd-substitute-target-list","data-input":"substituteTargets",children:[D.map((y,N)=>(0,t.jsxs)("div",{className:"bd-substitute-target-row",children:[(0,t.jsx)(U,{dataInput:`substituteTargetType-${y.key}`,className:"bd-substitute-target-type",ariaLabel:`${e("botDefaults.substituteTargetType")} ${N+1}`,value:y.idField,disabled:n,options:at.map(S=>({value:S,label:e(`botDefaults.substituteTarget${S[0].toUpperCase()}${S.slice(1)}`)})),onChange:S=>{k(C=>C.map(M=>M.key===y.key?{...M,idField:S,idValue:M.persisted[S]??""}:M))}}),(0,t.jsx)("input",{className:"bd-substitute-target-id",type:"text","data-input":`substituteTargetId-${y.key}`,"aria-label":`${e("botDefaults.substituteTargetType")} ${N+1}`,placeholder:e("botDefaults.substituteTargetIdPlaceholder"),value:y.idValue,disabled:n,onChange:S=>{let C=S.currentTarget.value;k(M=>M.map(g=>g.key===y.key?{...g,idValue:C}:g))}}),(0,t.jsx)("input",{className:"bd-substitute-target-name",type:"text","data-input":`substituteTargetName-${y.key}`,"aria-label":`${e("botDefaults.substituteTargetName")} ${N+1}`,placeholder:e("botDefaults.substituteTargetNamePlaceholder"),value:y.name,disabled:n,onChange:S=>{let C=S.currentTarget.value;k(M=>M.map(g=>g.key===y.key?{...g,name:C}:g))}}),(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:n,onClick:()=>{k(S=>{let C=S.filter(M=>M.key!==y.key);return C.length?C:[b()]})},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:n,onClick:()=>k(y=>[...y,b()]),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:n,onClick:h,children:e("botDefaults.substituteSave")}),(0,t.jsx)("button",{type:"button","data-action":"off-substitute-mode",disabled:n,onClick:()=>{v({enabled:!1,targets:[]})},children:e("botDefaults.substituteOff")}),(0,t.jsx)($,{status:d,attr:{"data-substitute-status":""}})]})]})}function Nt(a){return a.regularGroupReplyMode==="new-topic"||a.regularGroupReplyMode==="shared"||a.regularGroupReplyMode==="chat-topic"?a.regularGroupReplyMode:"chat"}function It(a){return a.regularGroupMentionMode==="topic"||a.regularGroupMentionMode==="never"||a.regularGroupMentionMode==="ambient"?a.regularGroupMentionMode:"always"}function ae(a){let e=A(),o=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null,u=Number.isFinite(a.bot.logicalSessionCount)?Number(a.bot.logicalSessionCount):0,i=Number.isFinite(a.bot.residentSessionCount)?Number(a.bot.residentSessionCount):0,l=Number.isFinite(a.bot.dormantSessionCount)?Number(a.bot.dormantSessionCount):0,[r,d]=(0,s.useState)(o),f=r??30,[n,p]=(0,s.useState)(o==null?"":String(o)),[m,c]=(0,s.useState)(null),[b,D]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let h=typeof a.bot.maxLiveWorkers=="number"?a.bot.maxLiveWorkers:null;d(h),p(h==null?"":String(h))},[a.bot.maxLiveWorkers]);async function k(h){c(null),D(!0);try{let x=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/max-live-workers`,{maxLiveWorkers:h});if(x.ok&&x.body.ok){let y=typeof x.body.maxLiveWorkers=="number"?x.body.maxLiveWorkers:null;d(y),p(y==null?"":String(y)),a.patchBot(a.bot.larkAppId,{maxLiveWorkers:y}),c({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else c({text:`\u2717 ${L(x)}`})}catch(x){c({text:`\u2717 ${R(x)}`})}finally{D(!1)}}function v(){let h=wt(n);if(h==="invalid"){c({text:`\u2717 ${e("botDefaults.maxLiveWorkersInvalid")}`});return}k(h)}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:e("botDefaults.sectionSessionCap")}),(0,t.jsxs)("div",{className:"bd-row bd-quota",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)(P,{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:n,disabled:b,onChange:h=>p(h.currentTarget.value)})]}),(0,t.jsx)("small",{"data-session-cap-state":!0,children:$t(r,e)}),(0,t.jsx)("small",{className:"bd-help bd-session-residency",children:e("botDefaults.maxLiveWorkersUsage",{resident:i,cap:f,dormant:l,logical:u})})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-session-cap",disabled:b,onClick:v,children:e("botDefaults.maxLiveWorkersSave")}),(0,t.jsx)("button",{type:"button","data-action":"off-session-cap",disabled:b,onClick:()=>{p(""),k(null)},children:e("botDefaults.maxLiveWorkersOff")}),(0,t.jsx)($,{status:m,attr:{"data-session-cap-status":""}})]})]})}function oe(a){let e=A(),[o,u]=(0,s.useState)(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[i,l]=(0,s.useState)(null),[r,d]=(0,s.useState)(!1);(0,s.useEffect)(()=>u(typeof a.bot.startupCommands=="string"?a.bot.startupCommands:""),[a.bot.startupCommands]);async function f(){l(null),d(!0);try{let n=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/startup-commands`,{startupCommands:o});if(n.ok&&n.body.ok){let p=typeof n.body.startupCommands=="string"?n.body.startupCommands:"";u(p),a.patchBot(a.bot.larkAppId,{startupCommands:p}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${L(n)}`})}catch(n){l({text:`\u2717 ${R(n)}`})}finally{d(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(P,{help:e("botDefaults.startupCommandsHelp"),children:e("botDefaults.sectionStartupCommands")})}),(0,t.jsx)("textarea",{"data-input":"startupCommands",rows:3,placeholder:e("botDefaults.startupCommandsPlaceholder"),value:o,disabled:r,onChange:n=>u(n.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-startup-commands",disabled:r,onClick:()=>{f()},children:e("botDefaults.startupCommandsSave")}),(0,t.jsx)($,{status:i,attr:{"data-startup-commands-status":""}})]})]})}function se(a){let e=A(),[o,u]=(0,s.useState)(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[i,l]=(0,s.useState)(null),[r,d]=(0,s.useState)(!1);(0,s.useEffect)(()=>u(typeof a.bot.launchShell=="string"?a.bot.launchShell:""),[a.bot.launchShell]);async function f(){l(null),d(!0);try{let n=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/launch-shell`,{launchShell:o});if(n.ok&&n.body.ok){let p=typeof n.body.launchShell=="string"?n.body.launchShell:"";u(p),a.patchBot(a.bot.larkAppId,{launchShell:p}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${L(n)}`})}catch(n){l({text:`\u2717 ${R(n)}`})}finally{d(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(P,{help:e("botDefaults.launchShellHelp"),children:e("botDefaults.sectionLaunchShell")})}),(0,t.jsx)("input",{type:"text","data-input":"launchShell",placeholder:e("botDefaults.launchShellPlaceholder"),value:o,disabled:r,onChange:n=>u(n.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-launch-shell",disabled:r,onClick:()=>{f()},children:e("botDefaults.launchShellSave")}),(0,t.jsx)($,{status:i,attr:{"data-launch-shell-status":""}})]})]})}function ne(a){let e=A(),[o,u]=(0,s.useState)(typeof a.bot.env=="string"?a.bot.env:""),[i,l]=(0,s.useState)(null),[r,d]=(0,s.useState)(!1);(0,s.useEffect)(()=>u(typeof a.bot.env=="string"?a.bot.env:""),[a.bot.env]);async function f(){l(null),d(!0);try{let n=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/env`,{env:o});if(n.ok&&n.body.ok){let p=typeof n.body.env=="string"?n.body.env:"";u(p),a.patchBot(a.bot.larkAppId,{env:p}),l({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else l({text:`\u2717 ${L(n)}`})}catch(n){l({text:`\u2717 ${R(n)}`})}finally{d(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(P,{help:e("botDefaults.envHelp"),children:e("botDefaults.sectionEnv")})}),(0,t.jsx)("textarea",{"data-input":"env",rows:5,placeholder:e("botDefaults.envPlaceholder"),value:o,disabled:r,onChange:n=>u(n.currentTarget.value)}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-env",disabled:r,onClick:()=>{f()},children:e("botDefaults.envSave")}),(0,t.jsx)($,{status:i,attr:{"data-env-status":""}})]})]})}var le=["aiden","aiden-claude","codex","opencode"];function ie(a){let e=A(),o=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{},[u,i]=(0,s.useState)(typeof o.baseUrl=="string"?o.baseUrl:""),[l,r]=(0,s.useState)(typeof o.agent=="string"?o.agent:""),[d,f]=(0,s.useState)(typeof o.model=="string"?o.model:""),[n,p]=(0,s.useState)(typeof o.jwtEnv=="string"?o.jwtEnv:""),[m,c]=(0,s.useState)(typeof o.sandboxCluster=="string"?o.sandboxCluster:""),[b,D]=(0,s.useState)(o.injectStatusLines!==!1),[k,v]=(0,s.useState)(typeof o.systemPrompt=="string"?o.systemPrompt:""),[h,x]=(0,s.useState)(Array.isArray(o.setupCommands)?o.setupCommands.join(`
2
+ `):""),[y,N]=(0,s.useState)(null),[S,C]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let g=a.bot.riff&&typeof a.bot.riff=="object"?a.bot.riff:{};i(typeof g.baseUrl=="string"?g.baseUrl:""),r(typeof g.agent=="string"?g.agent:""),f(typeof g.model=="string"?g.model:""),p(typeof g.jwtEnv=="string"?g.jwtEnv:""),c(typeof g.sandboxCluster=="string"?g.sandboxCluster:""),D(g.injectStatusLines!==!1),v(typeof g.systemPrompt=="string"?g.systemPrompt:""),x(Array.isArray(g.setupCommands)?g.setupCommands.join(`
3
+ `):"")},[a.bot.riff]);async function M(){N(null),C(!0);try{let g={};u.trim()&&(g.baseUrl=u.trim()),l.trim()&&(g.agent=l.trim()),d.trim()&&(g.model=d.trim()),n.trim()&&(g.jwtEnv=n.trim()),m.trim()&&(g.sandboxCluster=m.trim()),g.injectStatusLines=b,k.trim()&&(g.systemPrompt=k.trim()),h.trim()&&(g.setupCommands=h.split(`
4
+ `).map(T=>T.trim()).filter(Boolean));let G=Object.keys(g).length?JSON.stringify(g):"",w=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/riff`,{riff:G});if(w.ok&&w.body.ok){let T=typeof w.body.riff=="string"&&w.body.riff?JSON.parse(w.body.riff):null;if(a.patchBot(a.bot.larkAppId,{riff:T}),a.persistCliSelection&&!await a.persistCliSelection()){N({text:`\u2717 ${e("botDefaults.riffCliPersistFailed")}`});return}N({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else N({text:`\u2717 ${L(w)}`})}catch(g){N({text:`\u2717 ${R(g)}`})}finally{C(!1)}}return(0,t.jsxs)("div",{className:"bd-subsection",children:[(0,t.jsx)("h4",{className:"bd-subsection-title",children:(0,t.jsx)(P,{help:e("botDefaults.riffHelp"),children:e("botDefaults.sectionRiff")})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.riffBaseUrl")}),(0,t.jsx)("input",{type:"text","data-input":"riff-base-url",placeholder:e("botDefaults.riffBaseUrlPlaceholder"),value:u,disabled:S,onChange:g=>i(g.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:(0,t.jsx)(P,{help:e("botDefaults.riffAgentHelp"),children:e("botDefaults.riffAgent")})}),(0,t.jsx)("input",{type:"text","data-input":"riff-agent",list:`riff-agent-suggestions-${a.bot.larkAppId}`,placeholder:e("botDefaults.riffAgentPlaceholder"),value:l,disabled:S,onChange:g=>r(g.currentTarget.value)}),(0,t.jsx)("datalist",{id:`riff-agent-suggestions-${a.bot.larkAppId}`,children:le.map(g=>(0,t.jsx)("option",{value:g},g))})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:(0,t.jsx)(P,{help:e("botDefaults.riffModelHelp"),children:e("botDefaults.riffModel")})}),(0,t.jsx)("input",{type:"text","data-input":"riff-model",placeholder:e("botDefaults.riffModelPlaceholder"),value:d,disabled:S,onChange:g=>f(g.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:(0,t.jsx)(P,{help:e("botDefaults.riffJwtEnvHelp"),children:e("botDefaults.riffJwtEnv")})}),(0,t.jsx)("input",{type:"text","data-input":"riff-jwt-env",placeholder:e("botDefaults.riffJwtEnvPlaceholder"),value:n,disabled:S,onChange:g=>p(g.currentTarget.value)})]})}),(0,t.jsx)("div",{className:"bd-row",children:(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:e("botDefaults.riffSandboxCluster")}),(0,t.jsx)("input",{type:"text","data-input":"riff-sandbox-cluster",placeholder:e("botDefaults.riffSandboxClusterPlaceholder"),value:m,disabled:S,onChange:g=>c(g.currentTarget.value)})]})}),(0,t.jsxs)("label",{className:"toggle-row",children:[(0,t.jsx)("input",{type:"checkbox","data-input":"riff-inject-status-lines",checked:b,disabled:S,onChange:g=>D(g.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)(P,{help:e("botDefaults.riffInjectStatusLinesHelp"),children:e("botDefaults.riffInjectStatusLines")})})})]}),(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:k,disabled:S,onChange:g=>v(g.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:h,disabled:S,onChange:g=>x(g.currentTarget.value),rows:3})]})}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-riff",disabled:S,onClick:()=>{M()},children:e("botDefaults.riffSave")}),(0,t.jsx)($,{status:y,attr:{"data-riff-status":""}})]})]})}function re(a){let e=A(),o=a.bot.brandLabel??null,[u,i]=(0,s.useState)(o),[l,r]=(0,s.useState)(o??""),[d,f]=(0,s.useState)(null),[n,p]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let c=a.bot.brandLabel??null;i(c),r(c??"")},[a.bot.brandLabel]);async function m(c){f(null),p(!0);try{let b=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/brand-label`,{brandLabel:c});if(b.ok&&b.body.ok){let D=b.body.brandLabel??null;i(D),r(D??""),a.patchBot(a.bot.larkAppId,{brandLabel:D}),f({text:"\u2713",ok:!0})}else f({text:`\u2717 ${L(b)}`})}catch(b){f({text:`\u2717 ${R(b)}`})}finally{p(!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)(P,{help:e("botDefaults.brandLabelHelp"),children:e("botDefaults.brandLabel")}),(0,t.jsx)("input",{type:"text","data-input":"brandLabel",placeholder:e("botDefaults.brandLabelPlaceholder"),value:l,disabled:n,onChange:c=>r(c.currentTarget.value)})]}),(0,t.jsx)("small",{"data-brand-state":!0,children:Mt(u,e)})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-brand",disabled:n,onClick:()=>{m(l)},children:e("botDefaults.brandSave")}),(0,t.jsx)("button",{type:"button","data-action":"reset-brand",disabled:n,onClick:()=>{m(null)},children:e("botDefaults.brandReset")}),(0,t.jsx)($,{status:d,attr:{"data-brand-status":""}})]})]})}function ue(a){let e=A(),[o,u]=(0,s.useState)(a.bot.autoGrantRequestCards!==!1),[i,l]=(0,s.useState)(a.bot.restrictGrantCommands===!0),[r,d]=(0,s.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null),[f,n]=(0,s.useState)(typeof a.bot.messageQuotaDefaultLimit=="number"?String(a.bot.messageQuotaDefaultLimit):""),[p,m]=(0,s.useState)(null),[c,b]=(0,s.useState)(null);(0,s.useEffect)(()=>{u(a.bot.autoGrantRequestCards!==!1),l(a.bot.restrictGrantCommands===!0);let v=typeof a.bot.messageQuotaDefaultLimit=="number"?a.bot.messageQuotaDefaultLimit:null;d(v),n(v==null?"":String(v))},[a.bot.autoGrantRequestCards,a.bot.messageQuotaDefaultLimit,a.bot.restrictGrantCommands]);async function D(v,h){b(h),m(null);try{let x=await O("PUT",`/api/bots/${encodeURIComponent(a.bot.larkAppId)}/grant-prefs`,v);if(x.ok&&x.body.ok){let y=typeof x.body.messageQuotaDefaultLimit=="number"?x.body.messageQuotaDefaultLimit:null;u(x.body.autoGrantRequestCards!==!1),l(x.body.restrictGrantCommands===!0),d(y),"messageQuotaDefaultLimit"in v&&n(y==null?"":String(y)),a.patchBot(a.bot.larkAppId,{autoGrantRequestCards:x.body.autoGrantRequestCards!==!1,restrictGrantCommands:x.body.restrictGrantCommands===!0,messageQuotaDefaultLimit:y}),m({text:`\u2713 ${e("botDefaults.cardPrefSaved")}`,ok:!0})}else m({text:`\u2717 ${L(x)}`})}catch(x){m({text:`\u2717 ${R(x)}`})}finally{b(null)}}function k(){let v=wt(f);if(v==="invalid"){m({text:`\u2717 ${e("botDefaults.quotaInvalid")}`});return}D({messageQuotaDefaultLimit:v},"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)(j,{checked:o,disabled:c==="autoGrant",dataAction:"toggle-auto-grant-card",title:e("botDefaults.autoGrantCard"),help:e("botDefaults.autoGrantCardHelp"),onChange:v=>{u(v),D({autoGrantRequestCards:v},"autoGrant")}}),(0,t.jsx)(j,{checked:i,disabled:c==="restrict",dataAction:"toggle-restrict-grant",title:e("botDefaults.restrictGrant"),help:e("botDefaults.restrictGrantHelp"),onChange:v=>{l(v),D({restrictGrantCommands:v},"restrict")}})]}),(0,t.jsxs)("div",{className:"bd-row bd-quota",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)(P,{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:f,disabled:c==="quota",onChange:v=>n(v.currentTarget.value)})]}),(0,t.jsx)("small",{"data-quota-state":!0,children:At(r,e)})]}),(0,t.jsxs)("div",{className:"actions",children:[(0,t.jsx)("button",{type:"button",className:"primary","data-action":"save-quota",disabled:c==="quota",onClick:k,children:e("botDefaults.quotaSave")}),(0,t.jsx)($,{status:p,attr:{"data-grant-status":""}})]})]})}function ve(a){return rt(a,(0,t.jsx)(Ot,{}))}export{Wt as BotAgentSection,Yt as CodexAppDisplaySection,Rt as buildSubstituteTarget,ve as renderBotDefaultsPage};
@@ -1 +1 @@
1
- import{p as T}from"./chunk-SRIE4MLQ.js";import{q as o}from"./chunk-7UY333A5.js";import{a as Z,d as B}from"./chunk-5THX4DI2.js";import{c as E}from"./chunk-7SZRL6FY.js";var r=E(Z(),1);var e=E(B(),1),nn="botmux:open-bot-onboarding",L={id:"claude-code",label:"Claude"},G="glm-5.1";function x(){return{options:[L],ttadkModelDefault:G,ttadkModelSuggestions:[],suggestedAppName:"botmux-0",webSession:{status:"checking"}}}function Q(){return{appName:"",cliId:L.id,dirMode:"fixed",workingDir:"~",model:""}}function en(n,t){return n||t==="checking"}function q(n){return n instanceof Error?n.message:String(n)}function X(n){return n.status==="completed"||n.status==="failed"||n.status==="needs_owner"}function N(n){return n==="login_failed"||n==="invalid_session"||n==="identity_unavailable"||n==="session_changed"}function tn(n){return n.status==="waiting_for_scan"?n.registrationMode==="compat"?o("botOnboarding.waitingCompat"):o("botOnboarding.waiting",{name:n.appName??""}):n.status==="verifying"?o("botOnboarding.verifying"):n.status==="configuring_permissions"?n.permissionStatusMsg?`${o("botOnboarding.configuringPermissions")} ${n.permissionStatusMsg}`:o("botOnboarding.configuringPermissions"):n.status==="waiting_for_platform_scan"?o("botOnboarding.platformScanHint"):n.status==="needs_owner"?o("botOnboarding.needsOwnerTitle"):n.status==="completed"?o("botOnboarding.completed",{name:n.appName??o("botOnboarding.botFallback")}):n.status==="failed"?n.appId?o("botOnboarding.partialFailureTitle"):n.error==="qr_expired"?o("botOnboarding.qrExpiredTitle"):N(n.error)?o("botOnboarding.authIncompleteTitle"):o("botOnboarding.createFailedTitle"):o("botOnboarding.starting")}async function on(){try{let n=await fetch("/api/cli-options"),t=await n.json();if(n.ok&&Array.isArray(t?.options)){let a=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():G,l=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(p=>typeof p=="string"):[],d=typeof t.suggestedAppName=="string"&&t.suggestedAppName.trim()?t.suggestedAppName.trim():"botmux-0",b=t?.webSession?.identity,c=t?.webSession?.status==="ready"&&typeof b?.userId=="string"&&typeof b?.userName=="string"&&typeof b?.tenantId=="string"&&typeof b?.tenantName=="string"?{status:"ready",source:typeof t.webSession.source=="string"?t.webSession.source:"botmux_cache",identity:{userId:b.userId,userName:b.userName,...typeof b.email=="string"?{email:b.email}:{},tenantId:b.tenantId,tenantName:b.tenantName}}:{status:"scan_required",...typeof t?.webSession?.reason=="string"?{reason:t.webSession.reason}:{}};return{options:t.options,ttadkModelDefault:a,ttadkModelSuggestions:l,suggestedAppName:d,webSession:c}}}catch{}return{...x(),webSession:{status:"scan_required"}}}function K(n,t,a){let l=a.options.find(p=>p.id===t),d=l?.gateway==="ttadk",b=d&&l?.acceptsModel!==!1,c=n.model;return d&&!b?c="":b&&!c.trim()?c=a.ttadkModelDefault:!b&&c.trim()===a.ttadkModelDefault&&(c=""),{...n,cliId:t,model:c}}function an(n,t){let a=t.options.some(l=>l.id===n.cliId)?n.cliId:t.options[0]?.id??L.id;return K({...n},a,t)}async function gn(){window.dispatchEvent(new Event(nn))}function rn(n){let{job:t}=n;if(t.status!=="completed"&&t.status!=="needs_owner"||!t.permission)return null;let a=t.permission;if(a.ok){let d=[o("botOnboarding.permissionOk",{count:a.scopeCount??0})];return a.skippedScopeCount&&a.skippedScopeCount>0&&d.push(o("botOnboarding.permissionSkipped",{count:a.skippedScopeCount})),a.versionId&&d.push(o("botOnboarding.permissionVersion",{version:a.versionId})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:"hint-ok",children:d.join(" ")}),a.scopeWarning?(0,e.jsx)("p",{className:"hint-warn",children:a.scopeWarning}):null]})}let l=t.remainingSteps??[];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("p",{className:"hint-warn",children:[o("botOnboarding.permissionManual"),a.message?`\uFF08${a.message}\uFF09`:""]}),l.length?(0,e.jsx)("ol",{className:"onboarding-steps",children:l.map(d=>(0,e.jsx)("li",{children:(0,e.jsx)("a",{href:d.url,target:"_blank",rel:"noopener",children:d.title})},`${d.title}:${d.url}`))}):null]})}function sn(n){let{job:t}=n;return t.appId?(0,e.jsxs)("p",{className:"onboarding-meta",children:[(0,e.jsx)("b",{children:"App ID:"})," ",(0,e.jsx)("code",{children:t.appId}),t.appName?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsxs)("b",{children:[o("botOnboarding.appNameLabel"),":"]})," ",(0,e.jsx)("code",{children:t.appName})]}):null,t.cliId?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsx)("b",{children:"CLI:"})," ",(0,e.jsx)("code",{children:t.cliId})]}):null,t.workingDir?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsxs)("b",{children:[o("botOnboarding.metaDir"),":"]})," ",(0,e.jsx)("code",{children:t.workingDir})]}):null]}):null}function W(n){return(0,e.jsxs)("div",{className:"qr-card",children:[(0,e.jsx)("img",{className:"qr-image",src:n.dataUrl,alt:n.alt}),n.link?(0,e.jsx)("a",{className:"onboarding-link",href:n.link,target:"_blank",rel:"noopener",children:o("botOnboarding.openLink")}):null]})}function z(n,t){return n.find(a=>a.value===t)?.label??t}function ln(n){let{job:t,ownerError:a}=n.view;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:`onboarding-status status-${t.status}`,children:tn(t)}),t.status==="waiting_for_scan"&&t.qrDataUrl?(0,e.jsx)(W,{dataUrl:t.qrDataUrl,alt:o("botOnboarding.qrAlt"),link:t.qrUrl}):null,t.status==="waiting_for_platform_scan"&&t.platformQrDataUrl?(0,e.jsx)(W,{dataUrl:t.platformQrDataUrl,alt:o("botOnboarding.platformQrAlt")}):null,(0,e.jsx)(sn,{job:t}),(0,e.jsx)(rn,{job:t}),t.status==="needs_owner"?(0,e.jsxs)("form",{className:"onboarding-form",id:"ob-owner-form",onSubmit:l=>{l.preventDefault(),n.onSubmitOwner(t,n.ownerInput,n.ownerIdInput)},children:[(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.ownerLabel")}),(0,e.jsx)("input",{id:"ob-owner",type:"email",placeholder:o("botOnboarding.ownerPlaceholder"),autoComplete:"off",spellCheck:!1,value:n.ownerInput,onChange:l=>n.onOwnerInputChange(l.currentTarget.value)})]}),(0,e.jsx)("p",{className:"hint-warn",children:o("botOnboarding.needsOwnerDescription")}),(0,e.jsxs)("details",{className:"onboarding-technical",children:[(0,e.jsx)("summary",{children:o("botOnboarding.ownerUseId")}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.ownerIdLabel")}),(0,e.jsx)("input",{id:"ob-owner-id",type:"text",placeholder:o("botOnboarding.ownerIdPlaceholder"),autoComplete:"off",spellCheck:!1,value:n.ownerIdInput,onChange:l=>n.onOwnerIdInputChange(l.currentTarget.value)})]})]}),a?(0,e.jsx)("p",{className:"form-error",children:a}):null,(0,e.jsx)("div",{className:"actions onboarding-actions",children:(0,e.jsx)("button",{type:"submit",className:"primary onboarding-submit",children:o("botOnboarding.ownerSubmit")})})]}):null,t.status==="completed"?(0,e.jsx)("p",{className:"hint-ok",children:t.liveStarted?o("botOnboarding.liveOk"):o("botOnboarding.restartHint")}):null,t.status==="failed"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:"hint-warn",children:t.appId?o("botOnboarding.partialFailureDescription"):t.error==="qr_expired"?o("botOnboarding.qrExpiredDescription"):N(t.error)?o("botOnboarding.authIncompleteDescription"):o("botOnboarding.createFailedDescription")}),(0,e.jsxs)("details",{className:"onboarding-technical",children:[(0,e.jsx)("summary",{children:o("botOnboarding.technicalDetails")}),(0,e.jsx)("code",{children:t.message??t.error??"unknown"})]}),(0,e.jsxs)("div",{className:"actions onboarding-actions",children:[(0,e.jsx)("button",{type:"button",onClick:n.onClose,children:o("botOnboarding.close")}),t.appId?null:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("button",{type:"button",onClick:()=>n.onRetry("compat"),children:o("botOnboarding.compatibilityMode")}),(0,e.jsx)("button",{type:"button",className:"primary onboarding-submit",onClick:()=>n.onRetry("web"),children:t.error==="qr_expired"?o("botOnboarding.generateQr"):N(t.error)?o("botOnboarding.scanAgain"):o("botOnboarding.retry")})]})]})]}):null,t.status==="completed"?(0,e.jsx)("div",{className:"actions onboarding-actions",children:(0,e.jsx)("button",{type:"button",onClick:n.onClose,children:o("botOnboarding.close")})}):null]})}function dn(n){let t=n.cliState.options.find(s=>s.id===n.form.cliId),a=t?.gateway==="ttadk"&&t.acceptsModel!==!1,l=t?.gateway==="ttadk"&&t.acceptsModel===!1,d=a?o("botOnboarding.modelTtadkPlaceholder").replace("{model}",n.cliState.ttadkModelDefault):o("botOnboarding.modelPlaceholder"),b=n.form.dirMode==="card"?o("botOnboarding.dirLabelCard"):o("botOnboarding.dirLabelFixed"),c=n.form.dirMode==="card"?o("botOnboarding.dirPlaceholderCard"):o("botOnboarding.dirPlaceholderFixed"),p=n.cliState.options.map(s=>({value:s.id,label:s.available===!1?o("botOnboarding.cliMissingOption",{label:s.label,command:s.command??s.id}):s.label})),h=[{value:"fixed",label:o("botOnboarding.dirModeFixed")},{value:"card",label:o("botOnboarding.dirModeCard")}];return(0,e.jsxs)("form",{id:"onboarding-form",className:"onboarding-form",onSubmit:n.onSubmit,children:[(0,e.jsx)("div",{className:"onboarding-session","aria-live":"polite",children:n.sessionMode==="checking"?(0,e.jsx)("p",{children:o("botOnboarding.sessionChecking")}):n.cliState.webSession.status==="ready"?n.sessionMode==="reuse"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:o("botOnboarding.sessionReady",{user:n.cliState.webSession.identity.userName,tenant:n.cliState.webSession.identity.tenantName})}),n.cliState.webSession.identity.email?(0,e.jsx)("small",{children:n.cliState.webSession.identity.email}):null]}),(0,e.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>n.onSessionModeChange("qr"),children:o("botOnboarding.switchAccount")})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:o("botOnboarding.sessionSwitching")}),(0,e.jsx)("small",{children:o("botOnboarding.sessionSwitchingHint")})]}),(0,e.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>n.onSessionModeChange("reuse"),children:o("botOnboarding.reuseCurrentAccount")})]}):(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:o("botOnboarding.sessionScanRequired")}),(0,e.jsx)("small",{children:o("botOnboarding.sessionScanRequiredHint")})]})}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.appNameLabel")}),(0,e.jsx)("input",{id:"ob-app-name",type:"text",maxLength:64,value:n.form.appName,placeholder:o("botOnboarding.appNamePlaceholder"),autoComplete:"off",spellCheck:!1,onChange:s=>n.onFormChange({...n.form,appName:s.currentTarget.value})}),(0,e.jsx)("small",{className:"onboarding-field-hint",children:o("botOnboarding.appNameHint",{name:n.cliState.suggestedAppName})})]}),(0,e.jsxs)("div",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.cliLabel")}),(0,e.jsx)(T,{id:"ob-cli",className:"onboarding-menu",ariaLabel:o("botOnboarding.cliLabel"),label:z(p,n.form.cliId),value:n.form.cliId,options:p,onChange:s=>{n.onFormChange(K(n.form,s,n.cliState))}}),t?.available===!1?(0,e.jsx)("small",{className:"hint-warn",children:o("botOnboarding.cliMissingHint",{command:t.command??n.form.cliId})}):(0,e.jsx)("small",{className:"onboarding-field-hint",children:n.form.cliId})]}),(0,e.jsxs)("div",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.dirModeLabel")}),(0,e.jsx)(T,{id:"ob-dir-mode",className:"onboarding-menu",ariaLabel:o("botOnboarding.dirModeLabel"),label:z(h,n.form.dirMode),value:n.form.dirMode,options:h,onChange:s=>n.onFormChange({...n.form,dirMode:s})})]}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:b}),(0,e.jsx)("input",{id:"ob-dir",type:"text",value:n.form.workingDir,placeholder:c,autoComplete:"off",spellCheck:!1,onChange:s=>n.onFormChange({...n.form,workingDir:s.currentTarget.value})})]}),l?null:(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.modelLabel")}),(0,e.jsx)("input",{id:"ob-model",type:"text",list:a?"ob-model-suggestions":void 0,placeholder:d,autoComplete:"off",spellCheck:!1,value:n.form.model,onChange:s=>n.onFormChange({...n.form,model:s.currentTarget.value})}),a?(0,e.jsx)("datalist",{id:"ob-model-suggestions",children:n.cliState.ttadkModelSuggestions.map(s=>(0,e.jsx)("option",{value:s},s))}):null]}),n.error?(0,e.jsx)("p",{className:"form-error",children:n.error}):null,(0,e.jsxs)("div",{className:"actions onboarding-actions",children:[(0,e.jsx)("button",{type:"button",id:"ob-cancel",disabled:n.submitting,onClick:n.onClose,children:o("botOnboarding.cancel")}),(0,e.jsx)("button",{type:"submit",className:"primary onboarding-submit",disabled:en(n.submitting,n.sessionMode),children:n.submitting?o("botOnboarding.starting"):n.sessionMode==="reuse"?o("botOnboarding.confirmReuse"):o("botOnboarding.startScan")})]})]})}function un(n){let t=(0,r.useRef)(null),a=(0,r.useRef)(null),l=(0,r.useRef)(0),[d,b]=(0,r.useState)(()=>x()),[c,p]=(0,r.useState)(()=>Q()),[h,s]=(0,r.useState)("checking"),[f,w]=(0,r.useState)({kind:"form"}),[A,I]=(0,r.useState)(!1),[P,M]=(0,r.useState)(""),[J,_]=(0,r.useState)(""),g=(0,r.useCallback)(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]),v=(0,r.useCallback)(()=>{g(),n.onClose()},[n,g]),y=(0,r.useCallback)(i=>{w({kind:"job",job:i}),i.status==="needs_owner"&&(M(""),_("")),X(i)&&g()},[g]),j=(0,r.useCallback)(async i=>{let m=await fetch(`/api/bot-onboarding/${encodeURIComponent(i)}`),u=await m.json();if(!m.ok||!u?.job)throw new Error(u?.error??`http_${m.status}`);y(u.job)},[y]),R=(0,r.useCallback)(i=>{g(),a.current=window.setInterval(()=>{j(i).catch(m=>{g(),w({kind:"job",job:{id:i,status:"failed",message:q(m)}})})},1200)},[j,g]),U=(0,r.useCallback)(()=>{g();let i=l.current+1;l.current=i;let m=x();b(m),p(Q()),s("checking"),w({kind:"form"}),I(!1),M(""),_(""),on().then(u=>{l.current===i&&(b(u),p(k=>an(k,u)),s(u.webSession.status==="ready"?"reuse":"qr"))})},[g]);(0,r.useEffect)(()=>{if(n.open){U();return}g(),l.current+=1},[n.open,U,g]),(0,r.useEffect)(()=>{let i=t.current;if(i)if(n.open&&!i.open)try{i.showModal()}catch{}else!n.open&&i.open&&i.close()},[n.open]),(0,r.useEffect)(()=>()=>g(),[g]);let C=(0,r.useCallback)(async(i,m)=>{g(),I(!0),w({kind:"job",job:{id:"",status:"starting"}});try{let u=m??(h==="reuse"?"reuse":"qr"),k=i==="web"&&u==="reuse"&&d.webSession.status==="ready"?{userId:d.webSession.identity.userId,tenantId:d.webSession.identity.tenantId}:void 0,S=await fetch("/api/bot-onboarding/start",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({appName:i==="web"&&c.appName.trim()||void 0,registrationMode:i,...i==="web"?{sessionMode:u,expectedIdentity:k}:{},cliId:c.cliId,workingDir:c.workingDir.trim(),dirMode:c.dirMode,model:c.model.trim()||void 0})}),O=await S.json();if(S.status===400){w({kind:"form",error:O?.message??O?.error??"invalid_input"});return}if(!S.ok||!O?.job?.id)throw new Error(O?.error??`http_${S.status}`);let F=O.job;y(F),X(F)||R(F.id)}catch(u){w({kind:"job",job:{id:"",status:"failed",message:q(u)}})}finally{I(!1)}},[y,d.webSession,c,h,R,g]),H=(0,r.useCallback)(i=>{i.preventDefault(),C("web")},[C]),$=(0,r.useCallback)(i=>{if(i==="compat"&&!window.confirm(o("botOnboarding.compatibilityConfirm")))return;let m=i==="web"&&f.kind==="job"&&N(f.job.error);m&&s("qr"),C(i,m?"qr":void 0)},[C,f]),V=(0,r.useCallback)(async(i,m,u)=>{let k=[m.trim(),u.trim()].filter(Boolean).join(",");if(!k){w({kind:"job",job:i,ownerError:o("botOnboarding.ownerEmpty")});return}try{let S=await fetch(`/api/bot-onboarding/${encodeURIComponent(i.id)}/owner`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({owner:k})}),O=await S.json();if(!S.ok){w({kind:"job",job:i,ownerError:O?.message??O?.error??o("botOnboarding.ownerInvalid")});return}O?.job&&y(O.job)}catch(S){w({kind:"job",job:i,ownerError:q(S)})}},[y]),Y=(0,r.useMemo)(()=>f.kind==="form"?(0,e.jsx)(dn,{cliState:d,form:c,sessionMode:h,error:f.error,submitting:A,onFormChange:p,onSessionModeChange:s,onSubmit:H,onClose:v}):(0,e.jsx)(ln,{view:f,ownerInput:P,ownerIdInput:J,onOwnerInputChange:M,onOwnerIdInputChange:_,onSubmitOwner:V,onRetry:$,onClose:v}),[d,v,c,J,P,$,h,H,V,A,f]),D=f.kind==="form"||f.kind==="job"&&(f.job.status==="completed"||f.job.status==="failed");return(0,e.jsx)("dialog",{className:"onboarding-dialog",ref:t,onCancel:i=>{D||i.preventDefault()},onClose:()=>{D&&v()},onClick:i=>{D&&i.target===i.currentTarget&&v()},children:(0,e.jsxs)("article",{className:"onboarding-card",children:[(0,e.jsxs)("header",{className:"onboarding-header",children:[(0,e.jsx)("h3",{children:o("botOnboarding.title")}),(0,e.jsx)("p",{children:o("botOnboarding.intro")})]}),Y]})})}export{nn as a,gn as b,un as c};
1
+ import{p as T}from"./chunk-SRIE4MLQ.js";import{q as o}from"./chunk-PNK3HQBI.js";import{a as Z,d as B}from"./chunk-5THX4DI2.js";import{c as E}from"./chunk-7SZRL6FY.js";var r=E(Z(),1);var e=E(B(),1),nn="botmux:open-bot-onboarding",L={id:"claude-code",label:"Claude"},G="glm-5.1";function x(){return{options:[L],ttadkModelDefault:G,ttadkModelSuggestions:[],suggestedAppName:"botmux-0",webSession:{status:"checking"}}}function Q(){return{appName:"",cliId:L.id,dirMode:"fixed",workingDir:"~",model:""}}function en(n,t){return n||t==="checking"}function q(n){return n instanceof Error?n.message:String(n)}function X(n){return n.status==="completed"||n.status==="failed"||n.status==="needs_owner"}function N(n){return n==="login_failed"||n==="invalid_session"||n==="identity_unavailable"||n==="session_changed"}function tn(n){return n.status==="waiting_for_scan"?n.registrationMode==="compat"?o("botOnboarding.waitingCompat"):o("botOnboarding.waiting",{name:n.appName??""}):n.status==="verifying"?o("botOnboarding.verifying"):n.status==="configuring_permissions"?n.permissionStatusMsg?`${o("botOnboarding.configuringPermissions")} ${n.permissionStatusMsg}`:o("botOnboarding.configuringPermissions"):n.status==="waiting_for_platform_scan"?o("botOnboarding.platformScanHint"):n.status==="needs_owner"?o("botOnboarding.needsOwnerTitle"):n.status==="completed"?o("botOnboarding.completed",{name:n.appName??o("botOnboarding.botFallback")}):n.status==="failed"?n.appId?o("botOnboarding.partialFailureTitle"):n.error==="qr_expired"?o("botOnboarding.qrExpiredTitle"):N(n.error)?o("botOnboarding.authIncompleteTitle"):o("botOnboarding.createFailedTitle"):o("botOnboarding.starting")}async function on(){try{let n=await fetch("/api/cli-options"),t=await n.json();if(n.ok&&Array.isArray(t?.options)){let a=typeof t.ttadkModelDefault=="string"&&t.ttadkModelDefault.trim()?t.ttadkModelDefault.trim():G,l=Array.isArray(t.ttadkModelSuggestions)?t.ttadkModelSuggestions.filter(p=>typeof p=="string"):[],d=typeof t.suggestedAppName=="string"&&t.suggestedAppName.trim()?t.suggestedAppName.trim():"botmux-0",b=t?.webSession?.identity,c=t?.webSession?.status==="ready"&&typeof b?.userId=="string"&&typeof b?.userName=="string"&&typeof b?.tenantId=="string"&&typeof b?.tenantName=="string"?{status:"ready",source:typeof t.webSession.source=="string"?t.webSession.source:"botmux_cache",identity:{userId:b.userId,userName:b.userName,...typeof b.email=="string"?{email:b.email}:{},tenantId:b.tenantId,tenantName:b.tenantName}}:{status:"scan_required",...typeof t?.webSession?.reason=="string"?{reason:t.webSession.reason}:{}};return{options:t.options,ttadkModelDefault:a,ttadkModelSuggestions:l,suggestedAppName:d,webSession:c}}}catch{}return{...x(),webSession:{status:"scan_required"}}}function K(n,t,a){let l=a.options.find(p=>p.id===t),d=l?.gateway==="ttadk",b=d&&l?.acceptsModel!==!1,c=n.model;return d&&!b?c="":b&&!c.trim()?c=a.ttadkModelDefault:!b&&c.trim()===a.ttadkModelDefault&&(c=""),{...n,cliId:t,model:c}}function an(n,t){let a=t.options.some(l=>l.id===n.cliId)?n.cliId:t.options[0]?.id??L.id;return K({...n},a,t)}async function gn(){window.dispatchEvent(new Event(nn))}function rn(n){let{job:t}=n;if(t.status!=="completed"&&t.status!=="needs_owner"||!t.permission)return null;let a=t.permission;if(a.ok){let d=[o("botOnboarding.permissionOk",{count:a.scopeCount??0})];return a.skippedScopeCount&&a.skippedScopeCount>0&&d.push(o("botOnboarding.permissionSkipped",{count:a.skippedScopeCount})),a.versionId&&d.push(o("botOnboarding.permissionVersion",{version:a.versionId})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:"hint-ok",children:d.join(" ")}),a.scopeWarning?(0,e.jsx)("p",{className:"hint-warn",children:a.scopeWarning}):null]})}let l=t.remainingSteps??[];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("p",{className:"hint-warn",children:[o("botOnboarding.permissionManual"),a.message?`\uFF08${a.message}\uFF09`:""]}),l.length?(0,e.jsx)("ol",{className:"onboarding-steps",children:l.map(d=>(0,e.jsx)("li",{children:(0,e.jsx)("a",{href:d.url,target:"_blank",rel:"noopener",children:d.title})},`${d.title}:${d.url}`))}):null]})}function sn(n){let{job:t}=n;return t.appId?(0,e.jsxs)("p",{className:"onboarding-meta",children:[(0,e.jsx)("b",{children:"App ID:"})," ",(0,e.jsx)("code",{children:t.appId}),t.appName?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsxs)("b",{children:[o("botOnboarding.appNameLabel"),":"]})," ",(0,e.jsx)("code",{children:t.appName})]}):null,t.cliId?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsx)("b",{children:"CLI:"})," ",(0,e.jsx)("code",{children:t.cliId})]}):null,t.workingDir?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("span",{children:" / "}),(0,e.jsxs)("b",{children:[o("botOnboarding.metaDir"),":"]})," ",(0,e.jsx)("code",{children:t.workingDir})]}):null]}):null}function W(n){return(0,e.jsxs)("div",{className:"qr-card",children:[(0,e.jsx)("img",{className:"qr-image",src:n.dataUrl,alt:n.alt}),n.link?(0,e.jsx)("a",{className:"onboarding-link",href:n.link,target:"_blank",rel:"noopener",children:o("botOnboarding.openLink")}):null]})}function z(n,t){return n.find(a=>a.value===t)?.label??t}function ln(n){let{job:t,ownerError:a}=n.view;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:`onboarding-status status-${t.status}`,children:tn(t)}),t.status==="waiting_for_scan"&&t.qrDataUrl?(0,e.jsx)(W,{dataUrl:t.qrDataUrl,alt:o("botOnboarding.qrAlt"),link:t.qrUrl}):null,t.status==="waiting_for_platform_scan"&&t.platformQrDataUrl?(0,e.jsx)(W,{dataUrl:t.platformQrDataUrl,alt:o("botOnboarding.platformQrAlt")}):null,(0,e.jsx)(sn,{job:t}),(0,e.jsx)(rn,{job:t}),t.status==="needs_owner"?(0,e.jsxs)("form",{className:"onboarding-form",id:"ob-owner-form",onSubmit:l=>{l.preventDefault(),n.onSubmitOwner(t,n.ownerInput,n.ownerIdInput)},children:[(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.ownerLabel")}),(0,e.jsx)("input",{id:"ob-owner",type:"email",placeholder:o("botOnboarding.ownerPlaceholder"),autoComplete:"off",spellCheck:!1,value:n.ownerInput,onChange:l=>n.onOwnerInputChange(l.currentTarget.value)})]}),(0,e.jsx)("p",{className:"hint-warn",children:o("botOnboarding.needsOwnerDescription")}),(0,e.jsxs)("details",{className:"onboarding-technical",children:[(0,e.jsx)("summary",{children:o("botOnboarding.ownerUseId")}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.ownerIdLabel")}),(0,e.jsx)("input",{id:"ob-owner-id",type:"text",placeholder:o("botOnboarding.ownerIdPlaceholder"),autoComplete:"off",spellCheck:!1,value:n.ownerIdInput,onChange:l=>n.onOwnerIdInputChange(l.currentTarget.value)})]})]}),a?(0,e.jsx)("p",{className:"form-error",children:a}):null,(0,e.jsx)("div",{className:"actions onboarding-actions",children:(0,e.jsx)("button",{type:"submit",className:"primary onboarding-submit",children:o("botOnboarding.ownerSubmit")})})]}):null,t.status==="completed"?(0,e.jsx)("p",{className:"hint-ok",children:t.liveStarted?o("botOnboarding.liveOk"):o("botOnboarding.restartHint")}):null,t.status==="failed"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:"hint-warn",children:t.appId?o("botOnboarding.partialFailureDescription"):t.error==="qr_expired"?o("botOnboarding.qrExpiredDescription"):N(t.error)?o("botOnboarding.authIncompleteDescription"):o("botOnboarding.createFailedDescription")}),(0,e.jsxs)("details",{className:"onboarding-technical",children:[(0,e.jsx)("summary",{children:o("botOnboarding.technicalDetails")}),(0,e.jsx)("code",{children:t.message??t.error??"unknown"})]}),(0,e.jsxs)("div",{className:"actions onboarding-actions",children:[(0,e.jsx)("button",{type:"button",onClick:n.onClose,children:o("botOnboarding.close")}),t.appId?null:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("button",{type:"button",onClick:()=>n.onRetry("compat"),children:o("botOnboarding.compatibilityMode")}),(0,e.jsx)("button",{type:"button",className:"primary onboarding-submit",onClick:()=>n.onRetry("web"),children:t.error==="qr_expired"?o("botOnboarding.generateQr"):N(t.error)?o("botOnboarding.scanAgain"):o("botOnboarding.retry")})]})]})]}):null,t.status==="completed"?(0,e.jsx)("div",{className:"actions onboarding-actions",children:(0,e.jsx)("button",{type:"button",onClick:n.onClose,children:o("botOnboarding.close")})}):null]})}function dn(n){let t=n.cliState.options.find(s=>s.id===n.form.cliId),a=t?.gateway==="ttadk"&&t.acceptsModel!==!1,l=t?.gateway==="ttadk"&&t.acceptsModel===!1,d=a?o("botOnboarding.modelTtadkPlaceholder").replace("{model}",n.cliState.ttadkModelDefault):o("botOnboarding.modelPlaceholder"),b=n.form.dirMode==="card"?o("botOnboarding.dirLabelCard"):o("botOnboarding.dirLabelFixed"),c=n.form.dirMode==="card"?o("botOnboarding.dirPlaceholderCard"):o("botOnboarding.dirPlaceholderFixed"),p=n.cliState.options.map(s=>({value:s.id,label:s.available===!1?o("botOnboarding.cliMissingOption",{label:s.label,command:s.command??s.id}):s.label})),h=[{value:"fixed",label:o("botOnboarding.dirModeFixed")},{value:"card",label:o("botOnboarding.dirModeCard")}];return(0,e.jsxs)("form",{id:"onboarding-form",className:"onboarding-form",onSubmit:n.onSubmit,children:[(0,e.jsx)("div",{className:"onboarding-session","aria-live":"polite",children:n.sessionMode==="checking"?(0,e.jsx)("p",{children:o("botOnboarding.sessionChecking")}):n.cliState.webSession.status==="ready"?n.sessionMode==="reuse"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:o("botOnboarding.sessionReady",{user:n.cliState.webSession.identity.userName,tenant:n.cliState.webSession.identity.tenantName})}),n.cliState.webSession.identity.email?(0,e.jsx)("small",{children:n.cliState.webSession.identity.email}):null]}),(0,e.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>n.onSessionModeChange("qr"),children:o("botOnboarding.switchAccount")})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:o("botOnboarding.sessionSwitching")}),(0,e.jsx)("small",{children:o("botOnboarding.sessionSwitchingHint")})]}),(0,e.jsx)("button",{type:"button",className:"onboarding-session-action",onClick:()=>n.onSessionModeChange("reuse"),children:o("botOnboarding.reuseCurrentAccount")})]}):(0,e.jsxs)("div",{children:[(0,e.jsx)("strong",{children:o("botOnboarding.sessionScanRequired")}),(0,e.jsx)("small",{children:o("botOnboarding.sessionScanRequiredHint")})]})}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.appNameLabel")}),(0,e.jsx)("input",{id:"ob-app-name",type:"text",maxLength:64,value:n.form.appName,placeholder:o("botOnboarding.appNamePlaceholder"),autoComplete:"off",spellCheck:!1,onChange:s=>n.onFormChange({...n.form,appName:s.currentTarget.value})}),(0,e.jsx)("small",{className:"onboarding-field-hint",children:o("botOnboarding.appNameHint",{name:n.cliState.suggestedAppName})})]}),(0,e.jsxs)("div",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.cliLabel")}),(0,e.jsx)(T,{id:"ob-cli",className:"onboarding-menu",ariaLabel:o("botOnboarding.cliLabel"),label:z(p,n.form.cliId),value:n.form.cliId,options:p,onChange:s=>{n.onFormChange(K(n.form,s,n.cliState))}}),t?.available===!1?(0,e.jsx)("small",{className:"hint-warn",children:o("botOnboarding.cliMissingHint",{command:t.command??n.form.cliId})}):(0,e.jsx)("small",{className:"onboarding-field-hint",children:n.form.cliId})]}),(0,e.jsxs)("div",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.dirModeLabel")}),(0,e.jsx)(T,{id:"ob-dir-mode",className:"onboarding-menu",ariaLabel:o("botOnboarding.dirModeLabel"),label:z(h,n.form.dirMode),value:n.form.dirMode,options:h,onChange:s=>n.onFormChange({...n.form,dirMode:s})})]}),(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:b}),(0,e.jsx)("input",{id:"ob-dir",type:"text",value:n.form.workingDir,placeholder:c,autoComplete:"off",spellCheck:!1,onChange:s=>n.onFormChange({...n.form,workingDir:s.currentTarget.value})})]}),l?null:(0,e.jsxs)("label",{className:"onboarding-field",children:[(0,e.jsx)("span",{children:o("botOnboarding.modelLabel")}),(0,e.jsx)("input",{id:"ob-model",type:"text",list:a?"ob-model-suggestions":void 0,placeholder:d,autoComplete:"off",spellCheck:!1,value:n.form.model,onChange:s=>n.onFormChange({...n.form,model:s.currentTarget.value})}),a?(0,e.jsx)("datalist",{id:"ob-model-suggestions",children:n.cliState.ttadkModelSuggestions.map(s=>(0,e.jsx)("option",{value:s},s))}):null]}),n.error?(0,e.jsx)("p",{className:"form-error",children:n.error}):null,(0,e.jsxs)("div",{className:"actions onboarding-actions",children:[(0,e.jsx)("button",{type:"button",id:"ob-cancel",disabled:n.submitting,onClick:n.onClose,children:o("botOnboarding.cancel")}),(0,e.jsx)("button",{type:"submit",className:"primary onboarding-submit",disabled:en(n.submitting,n.sessionMode),children:n.submitting?o("botOnboarding.starting"):n.sessionMode==="reuse"?o("botOnboarding.confirmReuse"):o("botOnboarding.startScan")})]})]})}function un(n){let t=(0,r.useRef)(null),a=(0,r.useRef)(null),l=(0,r.useRef)(0),[d,b]=(0,r.useState)(()=>x()),[c,p]=(0,r.useState)(()=>Q()),[h,s]=(0,r.useState)("checking"),[f,w]=(0,r.useState)({kind:"form"}),[A,I]=(0,r.useState)(!1),[P,M]=(0,r.useState)(""),[J,_]=(0,r.useState)(""),g=(0,r.useCallback)(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]),v=(0,r.useCallback)(()=>{g(),n.onClose()},[n,g]),y=(0,r.useCallback)(i=>{w({kind:"job",job:i}),i.status==="needs_owner"&&(M(""),_("")),X(i)&&g()},[g]),j=(0,r.useCallback)(async i=>{let m=await fetch(`/api/bot-onboarding/${encodeURIComponent(i)}`),u=await m.json();if(!m.ok||!u?.job)throw new Error(u?.error??`http_${m.status}`);y(u.job)},[y]),R=(0,r.useCallback)(i=>{g(),a.current=window.setInterval(()=>{j(i).catch(m=>{g(),w({kind:"job",job:{id:i,status:"failed",message:q(m)}})})},1200)},[j,g]),U=(0,r.useCallback)(()=>{g();let i=l.current+1;l.current=i;let m=x();b(m),p(Q()),s("checking"),w({kind:"form"}),I(!1),M(""),_(""),on().then(u=>{l.current===i&&(b(u),p(k=>an(k,u)),s(u.webSession.status==="ready"?"reuse":"qr"))})},[g]);(0,r.useEffect)(()=>{if(n.open){U();return}g(),l.current+=1},[n.open,U,g]),(0,r.useEffect)(()=>{let i=t.current;if(i)if(n.open&&!i.open)try{i.showModal()}catch{}else!n.open&&i.open&&i.close()},[n.open]),(0,r.useEffect)(()=>()=>g(),[g]);let C=(0,r.useCallback)(async(i,m)=>{g(),I(!0),w({kind:"job",job:{id:"",status:"starting"}});try{let u=m??(h==="reuse"?"reuse":"qr"),k=i==="web"&&u==="reuse"&&d.webSession.status==="ready"?{userId:d.webSession.identity.userId,tenantId:d.webSession.identity.tenantId}:void 0,S=await fetch("/api/bot-onboarding/start",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({appName:i==="web"&&c.appName.trim()||void 0,registrationMode:i,...i==="web"?{sessionMode:u,expectedIdentity:k}:{},cliId:c.cliId,workingDir:c.workingDir.trim(),dirMode:c.dirMode,model:c.model.trim()||void 0})}),O=await S.json();if(S.status===400){w({kind:"form",error:O?.message??O?.error??"invalid_input"});return}if(!S.ok||!O?.job?.id)throw new Error(O?.error??`http_${S.status}`);let F=O.job;y(F),X(F)||R(F.id)}catch(u){w({kind:"job",job:{id:"",status:"failed",message:q(u)}})}finally{I(!1)}},[y,d.webSession,c,h,R,g]),H=(0,r.useCallback)(i=>{i.preventDefault(),C("web")},[C]),$=(0,r.useCallback)(i=>{if(i==="compat"&&!window.confirm(o("botOnboarding.compatibilityConfirm")))return;let m=i==="web"&&f.kind==="job"&&N(f.job.error);m&&s("qr"),C(i,m?"qr":void 0)},[C,f]),V=(0,r.useCallback)(async(i,m,u)=>{let k=[m.trim(),u.trim()].filter(Boolean).join(",");if(!k){w({kind:"job",job:i,ownerError:o("botOnboarding.ownerEmpty")});return}try{let S=await fetch(`/api/bot-onboarding/${encodeURIComponent(i.id)}/owner`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({owner:k})}),O=await S.json();if(!S.ok){w({kind:"job",job:i,ownerError:O?.message??O?.error??o("botOnboarding.ownerInvalid")});return}O?.job&&y(O.job)}catch(S){w({kind:"job",job:i,ownerError:q(S)})}},[y]),Y=(0,r.useMemo)(()=>f.kind==="form"?(0,e.jsx)(dn,{cliState:d,form:c,sessionMode:h,error:f.error,submitting:A,onFormChange:p,onSessionModeChange:s,onSubmit:H,onClose:v}):(0,e.jsx)(ln,{view:f,ownerInput:P,ownerIdInput:J,onOwnerInputChange:M,onOwnerIdInputChange:_,onSubmitOwner:V,onRetry:$,onClose:v}),[d,v,c,J,P,$,h,H,V,A,f]),D=f.kind==="form"||f.kind==="job"&&(f.job.status==="completed"||f.job.status==="failed");return(0,e.jsx)("dialog",{className:"onboarding-dialog",ref:t,onCancel:i=>{D||i.preventDefault()},onClose:()=>{D&&v()},onClick:i=>{D&&i.target===i.currentTarget&&v()},children:(0,e.jsxs)("article",{className:"onboarding-card",children:[(0,e.jsxs)("header",{className:"onboarding-header",children:[(0,e.jsx)("h3",{children:o("botOnboarding.title")}),(0,e.jsx)("p",{children:o("botOnboarding.intro")})]}),Y]})})}export{nn as a,gn as b,un as c};
@@ -1 +1 @@
1
- import{b as i}from"./chunk-TORH53FI.js";import{d as c}from"./chunk-5THX4DI2.js";import{c as t}from"./chunk-7SZRL6FY.js";var e=t(c(),1);function v(a){let o=i(),r=a.active==="legacy",l=a.active==="v3";return(0,e.jsxs)("nav",{className:"wf-subnav workflow-version-switch dashboard-toolbar",role:"tablist","aria-label":o("nav.workflows"),children:[(0,e.jsx)("a",{href:a.legacyHref??"#/legacy-workflow",className:r?"active":"",role:"tab","aria-selected":r,children:o("workflow.version.legacy")}),(0,e.jsx)("a",{href:a.v3Href??"#/workflows",className:l?"active":"",role:"tab","aria-selected":l,children:o("workflow.version.v3")})]})}export{v as a};
1
+ import{b as i}from"./chunk-OEJIT66L.js";import{d as c}from"./chunk-5THX4DI2.js";import{c as t}from"./chunk-7SZRL6FY.js";var e=t(c(),1);function v(a){let o=i(),r=a.active==="legacy",l=a.active==="v3";return(0,e.jsxs)("nav",{className:"wf-subnav workflow-version-switch dashboard-toolbar",role:"tablist","aria-label":o("nav.workflows"),children:[(0,e.jsx)("a",{href:a.legacyHref??"#/legacy-workflow",className:r?"active":"",role:"tab","aria-selected":r,children:o("workflow.version.legacy")}),(0,e.jsx)("a",{href:a.v3Href??"#/workflows",className:l?"active":"",role:"tab","aria-selected":l,children:o("workflow.version.v3")})]})}export{v as a};
@@ -1 +1 @@
1
- import{a as n,p as s,q as i}from"./chunk-7UY333A5.js";import{a as l}from"./chunk-5THX4DI2.js";import{c as S}from"./chunk-7SZRL6FY.js";var e=S(l(),1);function f(o){return n.on(o)}function m(o){let u=(0,e.useRef)(o),r=(0,e.useRef)(null);u.current=o;let a=()=>{let t=n.getSnapshot();if(r.current&&r.current.version===t.version)return r.current.value;let c=u.current(t);return r.current={version:t.version,value:c},c};return(0,e.useSyncExternalStore)(f,a,a)}function h(o){return s.on(o)}function p(){return s.locale}function v(){return(0,e.useSyncExternalStore)(h,p,p)}function T(){return v(),i}export{m as a,T as b};
1
+ import{a as n,p as s,q as i}from"./chunk-PNK3HQBI.js";import{a as l}from"./chunk-5THX4DI2.js";import{c as S}from"./chunk-7SZRL6FY.js";var e=S(l(),1);function f(o){return n.on(o)}function m(o){let u=(0,e.useRef)(o),r=(0,e.useRef)(null);u.current=o;let a=()=>{let t=n.getSnapshot();if(r.current&&r.current.version===t.version)return r.current.value;let c=u.current(t);return r.current={version:t.version,value:c},c};return(0,e.useSyncExternalStore)(f,a,a)}function h(o){return s.on(o)}function p(){return s.locale}function v(){return(0,e.useSyncExternalStore)(h,p,p)}function T(){return v(),i}export{m as a,T as b};