botmux 2.98.4-canary.2 → 2.99.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 (205) hide show
  1. package/README.en.md +2 -2
  2. package/README.md +2 -2
  3. package/dist/adapters/cli/genius.d.ts +4 -0
  4. package/dist/adapters/cli/genius.d.ts.map +1 -0
  5. package/dist/adapters/cli/genius.js +216 -0
  6. package/dist/adapters/cli/genius.js.map +1 -0
  7. package/dist/adapters/cli/registry.d.ts +2 -1
  8. package/dist/adapters/cli/registry.d.ts.map +1 -1
  9. package/dist/adapters/cli/registry.js +3 -1
  10. package/dist/adapters/cli/registry.js.map +1 -1
  11. package/dist/adapters/cli/types.d.ts +1 -1
  12. package/dist/adapters/cli/types.d.ts.map +1 -1
  13. package/dist/core/dashboard-rows.d.ts +1 -1
  14. package/dist/core/dashboard-rows.d.ts.map +1 -1
  15. package/dist/core/dashboard-rows.js +2 -1
  16. package/dist/core/dashboard-rows.js.map +1 -1
  17. package/dist/dashboard/session-card-model.d.ts +2 -2
  18. package/dist/dashboard/session-card-model.d.ts.map +1 -1
  19. package/dist/dashboard/session-card-model.js +5 -2
  20. package/dist/dashboard/session-card-model.js.map +1 -1
  21. package/dist/dashboard/web/app.d.ts.map +1 -1
  22. package/dist/dashboard/web/app.js +28 -63
  23. package/dist/dashboard/web/app.js.map +1 -1
  24. package/dist/dashboard/web/bot-defaults-page.d.ts +3 -0
  25. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -0
  26. package/dist/dashboard/web/bot-defaults-page.js +23 -0
  27. package/dist/dashboard/web/bot-defaults-page.js.map +1 -0
  28. package/dist/dashboard/web/bot-defaults.d.ts +2 -1
  29. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  30. package/dist/dashboard/web/bot-defaults.js +30 -30
  31. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  32. package/dist/dashboard/web/connectors-page.d.ts +14 -0
  33. package/dist/dashboard/web/connectors-page.d.ts.map +1 -0
  34. package/dist/dashboard/web/connectors-page.js +303 -0
  35. package/dist/dashboard/web/connectors-page.js.map +1 -0
  36. package/dist/dashboard/web/connectors.d.ts +1 -12
  37. package/dist/dashboard/web/connectors.d.ts.map +1 -1
  38. package/dist/dashboard/web/connectors.js +1 -325
  39. package/dist/dashboard/web/connectors.js.map +1 -1
  40. package/dist/dashboard/web/dashboard-routes.d.ts +14 -0
  41. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -0
  42. package/dist/dashboard/web/dashboard-routes.js +176 -0
  43. package/dist/dashboard/web/dashboard-routes.js.map +1 -0
  44. package/dist/dashboard/web/groups-page.d.ts +3 -0
  45. package/dist/dashboard/web/groups-page.d.ts.map +1 -0
  46. package/dist/dashboard/web/groups-page.js +26 -0
  47. package/dist/dashboard/web/groups-page.js.map +1 -0
  48. package/dist/dashboard/web/groups.d.ts +1 -1
  49. package/dist/dashboard/web/groups.d.ts.map +1 -1
  50. package/dist/dashboard/web/groups.js +113 -52
  51. package/dist/dashboard/web/groups.js.map +1 -1
  52. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  53. package/dist/dashboard/web/i18n.js +18 -0
  54. package/dist/dashboard/web/i18n.js.map +1 -1
  55. package/dist/dashboard/web/insights-page.d.ts +3 -0
  56. package/dist/dashboard/web/insights-page.d.ts.map +1 -0
  57. package/dist/dashboard/web/insights-page.js +26 -0
  58. package/dist/dashboard/web/insights-page.js.map +1 -0
  59. package/dist/dashboard/web/insights.d.ts +18 -1
  60. package/dist/dashboard/web/insights.d.ts.map +1 -1
  61. package/dist/dashboard/web/insights.js +25 -61
  62. package/dist/dashboard/web/insights.js.map +1 -1
  63. package/dist/dashboard/web/office-page.d.ts +3 -0
  64. package/dist/dashboard/web/office-page.d.ts.map +1 -0
  65. package/dist/dashboard/web/office-page.js +149 -0
  66. package/dist/dashboard/web/office-page.js.map +1 -0
  67. package/dist/dashboard/web/office.d.ts +1 -1
  68. package/dist/dashboard/web/office.d.ts.map +1 -1
  69. package/dist/dashboard/web/office.js +1 -139
  70. package/dist/dashboard/web/office.js.map +1 -1
  71. package/dist/dashboard/web/overview-page.d.ts +3 -0
  72. package/dist/dashboard/web/overview-page.d.ts.map +1 -0
  73. package/dist/dashboard/web/overview-page.js +149 -0
  74. package/dist/dashboard/web/overview-page.js.map +1 -0
  75. package/dist/dashboard/web/overview.d.ts +2 -2
  76. package/dist/dashboard/web/overview.d.ts.map +1 -1
  77. package/dist/dashboard/web/overview.js +14 -3
  78. package/dist/dashboard/web/overview.js.map +1 -1
  79. package/dist/dashboard/web/react-hooks.d.ts +8 -0
  80. package/dist/dashboard/web/react-hooks.d.ts.map +1 -0
  81. package/dist/dashboard/web/react-hooks.js +43 -0
  82. package/dist/dashboard/web/react-hooks.js.map +1 -0
  83. package/dist/dashboard/web/react-mount.d.ts +4 -0
  84. package/dist/dashboard/web/react-mount.d.ts.map +1 -0
  85. package/dist/dashboard/web/react-mount.js +7 -0
  86. package/dist/dashboard/web/react-mount.js.map +1 -0
  87. package/dist/dashboard/web/roles-page.d.ts +4 -0
  88. package/dist/dashboard/web/roles-page.d.ts.map +1 -0
  89. package/dist/dashboard/web/roles-page.js +26 -0
  90. package/dist/dashboard/web/roles-page.js.map +1 -0
  91. package/dist/dashboard/web/roles.d.ts +1 -2
  92. package/dist/dashboard/web/roles.d.ts.map +1 -1
  93. package/dist/dashboard/web/roles.js +189 -135
  94. package/dist/dashboard/web/roles.js.map +1 -1
  95. package/dist/dashboard/web/route-lifecycle.d.ts +14 -0
  96. package/dist/dashboard/web/route-lifecycle.d.ts.map +1 -0
  97. package/dist/dashboard/web/route-lifecycle.js +29 -0
  98. package/dist/dashboard/web/route-lifecycle.js.map +1 -0
  99. package/dist/dashboard/web/schedules-page.d.ts +14 -0
  100. package/dist/dashboard/web/schedules-page.d.ts.map +1 -0
  101. package/dist/dashboard/web/schedules-page.js +84 -0
  102. package/dist/dashboard/web/schedules-page.js.map +1 -0
  103. package/dist/dashboard/web/schedules.d.ts +1 -1
  104. package/dist/dashboard/web/schedules.d.ts.map +1 -1
  105. package/dist/dashboard/web/schedules.js +1 -115
  106. package/dist/dashboard/web/schedules.js.map +1 -1
  107. package/dist/dashboard/web/sessions-page.d.ts +3 -0
  108. package/dist/dashboard/web/sessions-page.d.ts.map +1 -0
  109. package/dist/dashboard/web/sessions-page.js +28 -0
  110. package/dist/dashboard/web/sessions-page.js.map +1 -0
  111. package/dist/dashboard/web/sessions.d.ts +4 -1
  112. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  113. package/dist/dashboard/web/sessions.js +43 -10
  114. package/dist/dashboard/web/sessions.js.map +1 -1
  115. package/dist/dashboard/web/settings-page.d.ts +3 -0
  116. package/dist/dashboard/web/settings-page.d.ts.map +1 -0
  117. package/dist/dashboard/web/settings-page.js +387 -0
  118. package/dist/dashboard/web/settings-page.js.map +1 -0
  119. package/dist/dashboard/web/settings.d.ts +1 -1
  120. package/dist/dashboard/web/settings.d.ts.map +1 -1
  121. package/dist/dashboard/web/settings.js +1 -534
  122. package/dist/dashboard/web/settings.js.map +1 -1
  123. package/dist/dashboard/web/skills-page.d.ts +33 -0
  124. package/dist/dashboard/web/skills-page.d.ts.map +1 -0
  125. package/dist/dashboard/web/skills-page.js +515 -0
  126. package/dist/dashboard/web/skills-page.js.map +1 -0
  127. package/dist/dashboard/web/skills.d.ts +1 -1
  128. package/dist/dashboard/web/skills.d.ts.map +1 -1
  129. package/dist/dashboard/web/skills.js +1 -711
  130. package/dist/dashboard/web/skills.js.map +1 -1
  131. package/dist/dashboard/web/store.d.ts +9 -0
  132. package/dist/dashboard/web/store.d.ts.map +1 -1
  133. package/dist/dashboard/web/store.js +19 -2
  134. package/dist/dashboard/web/store.js.map +1 -1
  135. package/dist/dashboard/web/team-federation-page.d.ts +4 -0
  136. package/dist/dashboard/web/team-federation-page.d.ts.map +1 -0
  137. package/dist/dashboard/web/team-federation-page.js +47 -0
  138. package/dist/dashboard/web/team-federation-page.js.map +1 -0
  139. package/dist/dashboard/web/team-federation.d.ts +2 -2
  140. package/dist/dashboard/web/team-federation.d.ts.map +1 -1
  141. package/dist/dashboard/web/team-federation.js +104 -97
  142. package/dist/dashboard/web/team-federation.js.map +1 -1
  143. package/dist/dashboard/web/v3-page.d.ts +3 -0
  144. package/dist/dashboard/web/v3-page.d.ts.map +1 -0
  145. package/dist/dashboard/web/v3-page.js +27 -0
  146. package/dist/dashboard/web/v3-page.js.map +1 -0
  147. package/dist/dashboard/web/v3.d.ts +2 -1
  148. package/dist/dashboard/web/v3.d.ts.map +1 -1
  149. package/dist/dashboard/web/v3.js +18 -43
  150. package/dist/dashboard/web/v3.js.map +1 -1
  151. package/dist/dashboard/web/whiteboards-page.d.ts +3 -0
  152. package/dist/dashboard/web/whiteboards-page.d.ts.map +1 -0
  153. package/dist/dashboard/web/whiteboards-page.js +203 -0
  154. package/dist/dashboard/web/whiteboards-page.js.map +1 -0
  155. package/dist/dashboard/web/whiteboards.d.ts +1 -1
  156. package/dist/dashboard/web/whiteboards.d.ts.map +1 -1
  157. package/dist/dashboard/web/whiteboards.js +1 -275
  158. package/dist/dashboard/web/whiteboards.js.map +1 -1
  159. package/dist/dashboard-web/app.js +36 -2550
  160. package/dist/dashboard-web/chunks/bot-defaults-page-3EV7K6LJ.js +358 -0
  161. package/dist/dashboard-web/chunks/chunk-5E3MJJL4.js +1 -0
  162. package/dist/dashboard-web/chunks/chunk-76J7PNZI.js +1 -0
  163. package/dist/dashboard-web/chunks/chunk-7SZRL6FY.js +1 -0
  164. package/dist/dashboard-web/chunks/chunk-JTSE5VP6.js +54 -0
  165. package/dist/dashboard-web/chunks/chunk-JXLHRRJD.js +31 -0
  166. package/dist/dashboard-web/chunks/chunk-NASYW5FD.js +1 -0
  167. package/dist/dashboard-web/chunks/connectors-XPZKEHF6.js +1 -0
  168. package/dist/dashboard-web/chunks/groups-page-C54PVKYP.js +207 -0
  169. package/dist/dashboard-web/chunks/insights-page-BBQYR7WY.js +309 -0
  170. package/dist/dashboard-web/chunks/office-page-6DXYOG55.js +1 -0
  171. package/dist/dashboard-web/chunks/overview-page-5PJCAMID.js +1 -0
  172. package/dist/dashboard-web/chunks/roles-page-APUDLPVM.js +98 -0
  173. package/dist/dashboard-web/chunks/schedules-WG2UKHSO.js +1 -0
  174. package/dist/dashboard-web/chunks/sessions-page-F3U5NFPD.js +238 -0
  175. package/dist/dashboard-web/chunks/settings-page-OSBZNCXL.js +2 -0
  176. package/dist/dashboard-web/chunks/skills-page-Y3VUAOYG.js +2 -0
  177. package/dist/dashboard-web/chunks/team-federation-page-CRH3WZPH.js +10 -0
  178. package/dist/dashboard-web/chunks/v3-page-FVPUL665.js +149 -0
  179. package/dist/dashboard-web/chunks/whiteboards-page-HLCTYSSV.js +1 -0
  180. package/dist/dashboard-web/chunks/workflows-UB7OPYGI.js +184 -0
  181. package/dist/dashboard-web/index.html +1 -1
  182. package/dist/dashboard-web/style.css +82 -1
  183. package/dist/dashboard.js +5 -6
  184. package/dist/dashboard.js.map +1 -1
  185. package/dist/i18n/en.d.ts.map +1 -1
  186. package/dist/i18n/en.js +1 -0
  187. package/dist/i18n/en.js.map +1 -1
  188. package/dist/i18n/zh.d.ts.map +1 -1
  189. package/dist/i18n/zh.js +1 -0
  190. package/dist/i18n/zh.js.map +1 -1
  191. package/dist/im/lark/card-builder.d.ts.map +1 -1
  192. package/dist/im/lark/card-builder.js +1 -0
  193. package/dist/im/lark/card-builder.js.map +1 -1
  194. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  195. package/dist/im/lark/event-dispatcher.js +7 -0
  196. package/dist/im/lark/event-dispatcher.js.map +1 -1
  197. package/dist/im/lark/sessions-card.d.ts.map +1 -1
  198. package/dist/im/lark/sessions-card.js +4 -1
  199. package/dist/im/lark/sessions-card.js.map +1 -1
  200. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  201. package/dist/setup/bot-config-editor.js +16 -14
  202. package/dist/setup/bot-config-editor.js.map +1 -1
  203. package/dist/worker.js +1 -1
  204. package/dist/worker.js.map +1 -1
  205. package/package.json +8 -2
@@ -1,25 +1,12 @@
1
1
  // Dashboard SPA entry: hash router + bootstrap + online indicator.
2
2
  import { bootstrap, store } from './store.js';
3
- import { renderOverviewPage } from './overview.js';
4
- import { renderSessionsPage } from './sessions.js';
5
- import { renderSchedulesPage } from './schedules.js';
6
- import { renderGroupsPage } from './groups.js';
7
- import { renderBotDefaultsPage } from './bot-defaults.js';
8
- import { renderSkillsPage } from './skills.js';
9
- import { renderRoleProfilesPage, renderRolesPage } from './roles.js';
10
- import { renderTeamFederationPage, renderTeamManagePage } from './team-federation.js';
11
- import { renderConnectorsPage } from './connectors.js';
12
- import { renderSettingsPage } from './settings.js';
13
- import { renderV3RunsPage } from './v3.js';
14
- import { renderWorkflowsPage } from './workflows.js';
15
- import { renderOfficePage } from './office.js';
16
- import { renderWhiteboardsPage } from './whiteboards.js';
17
- import { renderInsightsPage } from './insights.js';
18
3
  import { wireBotOnboardingButton } from './bot-onboarding.js';
19
4
  import { attentionReason, attentionWaitSince, botDisplayName, escapeHtml, loadNameMaps, relTime, t, ui } from './ui.js';
20
5
  import { initThemeMenu, paintThemeMenu } from './theme-menu.js';
21
6
  import { normalizeDashboardLocale } from './i18n.js';
22
7
  import { readStoredSidebarMode, writeStoredSidebarMode } from './preferences.js';
8
+ import { findDashboardRoute, loadOverviewPage } from './dashboard-routes.js';
9
+ import { beginDashboardRoute, createDashboardRouteState, loadAndRenderDashboardRoute, } from './route-lifecycle.js';
23
10
  const root = document.getElementById('root');
24
11
  // Resolved once at bootstrap from GET /api/settings:
25
12
  // - `isAuthed` → gates the management nav + route guards
@@ -239,7 +226,7 @@ function renderAuthRequiredPage(host) {
239
226
  }
240
227
  // Pages that own a polling loop / cleanup return a disposer; we run it
241
228
  // on the next route switch so timers don't leak across navigations.
242
- let pageDispose = null;
229
+ const routeState = createDashboardRouteState();
243
230
  function highlightNav(hash) {
244
231
  for (const a of document.querySelectorAll('.sidebar-nav a')) {
245
232
  const href = a.getAttribute('href') ?? '#/';
@@ -248,17 +235,15 @@ function highlightNav(hash) {
248
235
  a.classList.toggle('active', isActive);
249
236
  }
250
237
  }
251
- function route() {
252
- if (pageDispose) {
253
- pageDispose();
254
- pageDispose = null;
255
- }
238
+ async function route() {
239
+ const seq = beginDashboardRoute(routeState);
256
240
  const hash = location.hash || '#/';
257
241
  // Read-only hard-guard: a tokenless visitor hitting a management route gets a
258
242
  // friendly notice instead of a page that fires a 401 (which used to pop a
259
243
  // stuck "link expired" overlay).
260
244
  if (!isAuthed && MANAGE_ROUTES.some(r => hash.startsWith('#/' + r))) {
261
245
  renderAuthRequiredPage(root);
246
+ routeState.rerenderOnUiChange = true;
262
247
  highlightNav(hash);
263
248
  return;
264
249
  }
@@ -268,10 +253,7 @@ function route() {
268
253
  // upkeep so old bookmarks/pasted links don't 404:
269
254
  // - `#/v3[/<id>]` → `#/workflows[/<id>]` (v3 promoted)
270
255
  // - `#/workflows/catalog`, `#/workflows-catalog` → `#/workflows` (v2 catalog gone)
271
- if (hash.startsWith('#/legacy-workflow')) {
272
- pageDispose = renderWorkflowsPage(root);
273
- }
274
- else if (hash.startsWith('#/v3')) {
256
+ if (hash.startsWith('#/v3')) {
275
257
  window.location.replace(`#/workflows${hash.slice('#/v3'.length)}`);
276
258
  return;
277
259
  }
@@ -282,43 +264,25 @@ function route() {
282
264
  window.location.replace('#/workflows');
283
265
  return;
284
266
  }
285
- else if (hash.startsWith('#/workflows'))
286
- pageDispose = renderV3RunsPage(root);
287
- else if (hash.startsWith('#/groups'))
288
- renderGroupsPage(root);
289
- else if (hash.startsWith('#/settings'))
290
- void renderSettingsPage(root);
291
- else if (hash.startsWith('#/bot-defaults'))
292
- renderBotDefaultsPage(root);
293
- else if (hash.startsWith('#/skills'))
294
- void renderSkillsPage(root);
295
- else if (hash.startsWith('#/connectors'))
296
- renderConnectorsPage(root);
297
- else if (hash.startsWith('#/team/manage'))
298
- renderTeamManagePage(root);
299
- else if (hash.startsWith('#/team'))
300
- renderTeamFederationPage(root);
301
- else if (hash.startsWith('#/role-profiles')) {
267
+ if (hash.startsWith('#/role-profiles')) {
302
268
  window.location.replace(`#/roles/profile${hash.slice('#/role-profiles'.length)}`);
303
269
  return;
304
270
  }
305
- else if (hash.startsWith('#/roles/profile'))
306
- renderRoleProfilesPage(root);
307
- else if (hash.startsWith('#/roles'))
308
- renderRolesPage(root);
309
- else if (hash.startsWith('#/schedules'))
310
- renderSchedulesPage(root);
311
- else if (hash.startsWith('#/whiteboards'))
312
- void renderWhiteboardsPage(root);
313
- else if (hash.startsWith('#/sessions'))
314
- renderSessionsPage(root);
315
- else if (hash.startsWith('#/office'))
316
- pageDispose = renderOfficePage(root) ?? null;
317
- else if (hash.startsWith('#/insights'))
318
- pageDispose = renderInsightsPage(root);
319
- else
320
- void renderOverviewPage(root);
321
- highlightNav(hash);
271
+ try {
272
+ const matched = findDashboardRoute(hash);
273
+ await loadAndRenderDashboardRoute(routeState, seq, root, matched ? matched.load : loadOverviewPage, { rerenderOnUiChange: matched ? matched.rerenderOnUiChange : false });
274
+ }
275
+ catch (err) {
276
+ if (seq !== routeState.seq)
277
+ return;
278
+ root.innerHTML = `<section class="page"><div class="empty">Dashboard route failed: ${escapeHtml(String(err))}</div></section>`;
279
+ routeState.pageDispose = null;
280
+ routeState.rerenderOnUiChange = true;
281
+ }
282
+ finally {
283
+ if (seq === routeState.seq)
284
+ highlightNav(hash);
285
+ }
322
286
  }
323
287
  const statusEl = document.getElementById('status');
324
288
  function paintStatus() {
@@ -398,7 +362,7 @@ function wireSidebarToggle() {
398
362
  apply();
399
363
  });
400
364
  }
401
- // esbuild's IIFE bundle does not support top-level await use an async IIFE.
365
+ // Keep bootstrap sequencing explicit even though the dashboard bundle is ESM.
402
366
  void (async () => {
403
367
  ui.init();
404
368
  wireChromeControls();
@@ -406,7 +370,8 @@ void (async () => {
406
370
  ui.on(() => {
407
371
  paintChrome();
408
372
  paintAttentionStrip();
409
- route();
373
+ if (routeState.rerenderOnUiChange)
374
+ void route();
410
375
  });
411
376
  paintChrome();
412
377
  paintAttentionStrip();
@@ -423,7 +388,7 @@ void (async () => {
423
388
  console.error('botmux dashboard bootstrap failed', err);
424
389
  store.setOnline(false);
425
390
  }
426
- window.addEventListener('hashchange', route);
427
- route();
391
+ window.addEventListener('hashchange', () => void route());
392
+ void route();
428
393
  })();
429
394
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/dashboard/web/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/dashboard/web/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type PageDisposer } from './react-mount.js';
2
+ export declare function renderBotDefaultsPage(root: HTMLElement): PageDisposer;
3
+ //# sourceMappingURL=bot-defaults-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-defaults-page.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/bot-defaults-page.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsCrE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAErE"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from 'react';
3
+ import { mountReactPage } from './react-mount.js';
4
+ import { useT } from './react-hooks.js';
5
+ import { wireBotDefaultsPage } from './bot-defaults.js';
6
+ // Render-once scaffold: React owns the route shell, while wireBotDefaultsPage
7
+ // owns the roster/detail subtree with delegated events and targeted DOM
8
+ // updates. Keep this component free of useState/useStoreSelector until those
9
+ // controller sections are migrated to React components.
10
+ function BotDefaultsPage() {
11
+ const tr = useT();
12
+ const rootRef = useRef(null);
13
+ useEffect(() => {
14
+ if (!rootRef.current)
15
+ return undefined;
16
+ return wireBotDefaultsPage(rootRef.current);
17
+ }, []);
18
+ return (_jsxs("section", { className: "page", ref: rootRef, children: [_jsx("div", { className: "page-heading", children: _jsxs("div", { children: [_jsx("p", { className: "eyebrow", children: tr('nav.botDefaults') }), _jsx("h1", { children: tr('botDefaults.title') }), _jsx("p", { children: tr('botDefaults.subtitle') })] }) }), _jsxs("form", { id: "bd-filters", className: "filters sessions-filters", children: [_jsx("input", { type: "search", name: "q", placeholder: tr('botDefaults.search') }), _jsx("button", { type: "button", id: "bd-refresh", children: tr('botDefaults.refresh') })] }), _jsxs("div", { className: "bd-layout", children: [_jsx("aside", { id: "bd-roster", className: "bd-roster" }), _jsx("div", { id: "bd-list", className: "bd-detail" })] })] }));
19
+ }
20
+ export function renderBotDefaultsPage(root) {
21
+ return mountReactPage(root, _jsx(BotDefaultsPage, {}));
22
+ }
23
+ //# sourceMappingURL=bot-defaults-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-defaults-page.js","sourceRoot":"","sources":["../../../src/dashboard/web/bot-defaults-page.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,8EAA8E;AAC9E,wEAAwE;AACxE,6EAA6E;AAC7E,wDAAwD;AACxD,SAAS,eAAe;IACtB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACvC,OAAO,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,mBAAS,SAAS,EAAC,MAAM,EAAC,GAAG,EAAE,OAAO,aACpC,cAAK,SAAS,EAAC,cAAc,YAC3B,0BACE,YAAG,SAAS,EAAC,SAAS,YAAE,EAAE,CAAC,iBAAiB,CAAC,GAAK,EAClD,uBAAK,EAAE,CAAC,mBAAmB,CAAC,GAAM,EAClC,sBAAI,EAAE,CAAC,sBAAsB,CAAC,GAAK,IAC/B,GACF,EACN,gBAAM,EAAE,EAAC,YAAY,EAAC,SAAS,EAAC,0BAA0B,aACxD,gBAAO,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,GAAG,EAAC,WAAW,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAI,EACvE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAC,YAAY,YAAE,EAAE,CAAC,qBAAqB,CAAC,GAAU,IACrE,EACP,eAAK,SAAS,EAAC,WAAW,aACxB,gBAAO,EAAE,EAAC,WAAW,EAAC,SAAS,EAAC,WAAW,GAAG,EAC9C,cAAK,EAAE,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,GAAG,IACtC,IACE,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAiB;IACrD,OAAO,cAAc,CAAC,IAAI,EAAE,KAAC,eAAe,KAAG,CAAC,CAAC;AACnD,CAAC"}
@@ -1,4 +1,5 @@
1
+ import type { PageDisposer } from './react-mount.js';
1
2
  export declare function displayCliId(bot: any, sessionFallback: string): string;
2
3
  export declare function renderBotAgentSection(b: any, sessionFallback: string): string;
3
- export declare function renderBotDefaultsPage(root: HTMLElement): Promise<void>;
4
+ export declare function wireBotDefaultsPage(root: HTMLElement): PageDisposer;
4
5
  //# sourceMappingURL=bot-defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bot-defaults.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/bot-defaults.ts"],"names":[],"mappings":"AA2BA,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAEtE;AAiED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAyDD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,WAAW,iBA89C5D"}
1
+ {"version":3,"file":"bot-defaults.d.ts","sourceRoot":"","sources":["../../../src/dashboard/web/bot-defaults.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqBrD,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAEtE;AAiED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAiC7E;AAqCD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAm/CnE"}
@@ -102,25 +102,6 @@ export function renderBotAgentSection(b, sessionFallback) {
102
102
  </div>
103
103
  </section>`;
104
104
  }
105
- function pageHtml() {
106
- return `<section class="page">
107
- <div class="page-heading">
108
- <div>
109
- <p class="eyebrow">${t('nav.botDefaults')}</p>
110
- <h1>${t('botDefaults.title')}</h1>
111
- <p>${t('botDefaults.subtitle')}</p>
112
- </div>
113
- </div>
114
- <form id="bd-filters" class="filters sessions-filters">
115
- <input type="search" name="q" placeholder="${t('botDefaults.search')}" />
116
- <button type="button" id="bd-refresh">${t('botDefaults.refresh')}</button>
117
- </form>
118
- <div class="bd-layout">
119
- <aside id="bd-roster" class="bd-roster"></aside>
120
- <div id="bd-list" class="bd-detail"></div>
121
- </div>
122
- </section>`;
123
- }
124
105
  async function loadBots() {
125
106
  try {
126
107
  const r = await fetch('/api/bots');
@@ -157,35 +138,44 @@ function fmtSince(since) {
157
138
  return '—';
158
139
  return d.toLocaleString();
159
140
  }
160
- export async function renderBotDefaultsPage(root) {
161
- root.innerHTML = pageHtml();
141
+ export function wireBotDefaultsPage(root) {
162
142
  const listEl = root.querySelector('#bd-list');
163
143
  const rosterEl = root.querySelector('#bd-roster');
164
144
  const form = root.querySelector('#bd-filters');
165
145
  const refreshBtn = root.querySelector('#bd-refresh');
146
+ let disposed = false;
147
+ let readyToRender = false;
166
148
  refreshBtn.onclick = async () => {
167
149
  refreshBtn.disabled = true;
168
150
  try {
169
151
  botProfileRoleCache.clear();
170
152
  await Promise.all([loadBots(), loadCliOptions()]);
171
- rerender();
153
+ safeRerender();
172
154
  }
173
155
  finally {
174
- refreshBtn.disabled = false;
156
+ if (!disposed)
157
+ refreshBtn.disabled = false;
175
158
  }
176
159
  };
177
160
  // 帮助文字默认折叠成一行;点说明文字本身展开/收起(preventDefault 拦掉
178
161
  // label 默认行为,避免一点说明就把开关也切了)。只绑一次,委托不随 rerender 重建。
179
- listEl.addEventListener('click', e => {
162
+ const listClickHandler = (e) => {
180
163
  const sm = e.target.closest('.toggle-tx small, small.bd-help');
181
164
  if (sm) {
182
165
  e.preventDefault();
183
166
  sm.classList.toggle('open');
184
167
  }
185
- });
168
+ };
169
+ listEl.addEventListener('click', listClickHandler);
186
170
  // /api/bots 要逐 daemon 探活,慢——先亮 loading 占住右侧详情区。
187
171
  listEl.innerHTML = loadingHtml();
188
- await Promise.all([loadBots(), loadCliOptions()]);
172
+ void (async () => {
173
+ await Promise.all([loadBots(), loadCliOptions()]);
174
+ readyToRender = true;
175
+ safeRerender();
176
+ await loadNameMaps(); // 头像表就绪后重绘,让 /api/bots 这边也出真实头像
177
+ safeRerender();
178
+ })();
189
179
  function rerender() {
190
180
  const f = new FormData(form);
191
181
  const q = (f.get('q') ?? '').toLowerCase();
@@ -210,7 +200,7 @@ export async function renderBotDefaultsPage(root) {
210
200
  rosterEl.querySelectorAll('.bd-roster-item').forEach(el => {
211
201
  el.onclick = () => {
212
202
  selectedAppId = el.dataset.appid;
213
- rerender();
203
+ safeRerender();
214
204
  };
215
205
  });
216
206
  const sel = filtered.find((b) => b.larkAppId === selectedAppId);
@@ -1690,8 +1680,18 @@ export async function renderBotDefaultsPage(root) {
1690
1680
  }
1691
1681
  });
1692
1682
  }
1693
- rerender();
1694
- void loadNameMaps().then(rerender); // 头像表就绪后重绘,让 /api/bots 这边也出真实头像
1695
- form.addEventListener('input', rerender);
1683
+ function safeRerender() {
1684
+ if (!disposed && readyToRender)
1685
+ rerender();
1686
+ }
1687
+ form.addEventListener('input', safeRerender);
1688
+ return () => {
1689
+ disposed = true;
1690
+ refreshBtn.onclick = null;
1691
+ form.removeEventListener('input', safeRerender);
1692
+ listEl.removeEventListener('click', listClickHandler);
1693
+ rosterEl.replaceChildren();
1694
+ listEl.replaceChildren();
1695
+ };
1696
1696
  }
1697
1697
  //# sourceMappingURL=bot-defaults.js.map