botmux 2.88.0 → 2.89.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 (178) hide show
  1. package/dist/bot-registry.d.ts +2 -0
  2. package/dist/bot-registry.d.ts.map +1 -1
  3. package/dist/bot-registry.js +4 -0
  4. package/dist/bot-registry.js.map +1 -1
  5. package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
  6. package/dist/cli/dashboard-endpoint.js +9 -3
  7. package/dist/cli/dashboard-endpoint.js.map +1 -1
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +11 -3
  10. package/dist/cli.js.map +1 -1
  11. package/dist/core/command-handler.d.ts.map +1 -1
  12. package/dist/core/command-handler.js +9 -1
  13. package/dist/core/command-handler.js.map +1 -1
  14. package/dist/core/dashboard-command/groups.d.ts +20 -0
  15. package/dist/core/dashboard-command/groups.d.ts.map +1 -0
  16. package/dist/core/dashboard-command/groups.js +52 -0
  17. package/dist/core/dashboard-command/groups.js.map +1 -0
  18. package/dist/core/dashboard-command/index.d.ts +30 -0
  19. package/dist/core/dashboard-command/index.d.ts.map +1 -0
  20. package/dist/core/dashboard-command/index.js +81 -0
  21. package/dist/core/dashboard-command/index.js.map +1 -0
  22. package/dist/core/dashboard-command/overview.d.ts +29 -0
  23. package/dist/core/dashboard-command/overview.d.ts.map +1 -0
  24. package/dist/core/dashboard-command/overview.js +61 -0
  25. package/dist/core/dashboard-command/overview.js.map +1 -0
  26. package/dist/core/dashboard-command/owner-gate.d.ts +41 -0
  27. package/dist/core/dashboard-command/owner-gate.d.ts.map +1 -0
  28. package/dist/core/dashboard-command/owner-gate.js +40 -0
  29. package/dist/core/dashboard-command/owner-gate.js.map +1 -0
  30. package/dist/core/dashboard-command/schedules.d.ts +20 -0
  31. package/dist/core/dashboard-command/schedules.d.ts.map +1 -0
  32. package/dist/core/dashboard-command/schedules.js +47 -0
  33. package/dist/core/dashboard-command/schedules.js.map +1 -0
  34. package/dist/core/dashboard-command/sessions.d.ts +22 -0
  35. package/dist/core/dashboard-command/sessions.d.ts.map +1 -0
  36. package/dist/core/dashboard-command/sessions.js +43 -0
  37. package/dist/core/dashboard-command/sessions.js.map +1 -0
  38. package/dist/core/dashboard-command/settings.d.ts +21 -0
  39. package/dist/core/dashboard-command/settings.d.ts.map +1 -0
  40. package/dist/core/dashboard-command/settings.js +55 -0
  41. package/dist/core/dashboard-command/settings.js.map +1 -0
  42. package/dist/core/dashboard-command/stub.d.ts +16 -0
  43. package/dist/core/dashboard-command/stub.d.ts.map +1 -0
  44. package/dist/core/dashboard-command/stub.js +28 -0
  45. package/dist/core/dashboard-command/stub.js.map +1 -0
  46. package/dist/core/dashboard-command/workflows.d.ts +20 -0
  47. package/dist/core/dashboard-command/workflows.d.ts.map +1 -0
  48. package/dist/core/dashboard-command/workflows.js +45 -0
  49. package/dist/core/dashboard-command/workflows.js.map +1 -0
  50. package/dist/core/passthrough-commands.d.ts.map +1 -1
  51. package/dist/core/passthrough-commands.js +1 -1
  52. package/dist/core/passthrough-commands.js.map +1 -1
  53. package/dist/core/session-create.d.ts +0 -1
  54. package/dist/core/session-create.d.ts.map +1 -1
  55. package/dist/core/session-create.js +0 -3
  56. package/dist/core/session-create.js.map +1 -1
  57. package/dist/core/session-manager.d.ts.map +1 -1
  58. package/dist/core/session-manager.js +3 -2
  59. package/dist/core/session-manager.js.map +1 -1
  60. package/dist/daemon-internal-client-wrapper.d.ts +41 -0
  61. package/dist/daemon-internal-client-wrapper.d.ts.map +1 -0
  62. package/dist/daemon-internal-client-wrapper.js +65 -0
  63. package/dist/daemon-internal-client-wrapper.js.map +1 -0
  64. package/dist/dashboard/aggregator.d.ts +12 -0
  65. package/dist/dashboard/aggregator.d.ts.map +1 -1
  66. package/dist/dashboard/aggregator.js +16 -0
  67. package/dist/dashboard/aggregator.js.map +1 -1
  68. package/dist/dashboard/auth.d.ts +7 -0
  69. package/dist/dashboard/auth.d.ts.map +1 -1
  70. package/dist/dashboard/auth.js +21 -0
  71. package/dist/dashboard/auth.js.map +1 -1
  72. package/dist/dashboard/card-model-types.d.ts +50 -0
  73. package/dist/dashboard/card-model-types.d.ts.map +1 -0
  74. package/dist/dashboard/card-model-types.js +9 -0
  75. package/dist/dashboard/card-model-types.js.map +1 -0
  76. package/dist/dashboard/daemon-internal-api.d.ts +90 -0
  77. package/dist/dashboard/daemon-internal-api.d.ts.map +1 -0
  78. package/dist/dashboard/daemon-internal-api.js +534 -0
  79. package/dist/dashboard/daemon-internal-api.js.map +1 -0
  80. package/dist/dashboard/daemon-internal-auth.d.ts +124 -0
  81. package/dist/dashboard/daemon-internal-auth.d.ts.map +1 -0
  82. package/dist/dashboard/daemon-internal-auth.js +188 -0
  83. package/dist/dashboard/daemon-internal-auth.js.map +1 -0
  84. package/dist/dashboard/daemon-internal-client.d.ts +67 -0
  85. package/dist/dashboard/daemon-internal-client.d.ts.map +1 -0
  86. package/dist/dashboard/daemon-internal-client.js +157 -0
  87. package/dist/dashboard/daemon-internal-client.js.map +1 -0
  88. package/dist/dashboard/dashboard-admins.d.ts +8 -0
  89. package/dist/dashboard/dashboard-admins.d.ts.map +1 -0
  90. package/dist/dashboard/dashboard-admins.js +15 -0
  91. package/dist/dashboard/dashboard-admins.js.map +1 -0
  92. package/dist/dashboard/federation-spoke-api.d.ts +3 -0
  93. package/dist/dashboard/federation-spoke-api.d.ts.map +1 -1
  94. package/dist/dashboard/federation-spoke-api.js +11 -8
  95. package/dist/dashboard/federation-spoke-api.js.map +1 -1
  96. package/dist/dashboard/groups-action-helpers.d.ts +69 -0
  97. package/dist/dashboard/groups-action-helpers.d.ts.map +1 -0
  98. package/dist/dashboard/groups-action-helpers.js +141 -0
  99. package/dist/dashboard/groups-action-helpers.js.map +1 -0
  100. package/dist/dashboard/groups-card-model.d.ts +120 -0
  101. package/dist/dashboard/groups-card-model.d.ts.map +1 -0
  102. package/dist/dashboard/groups-card-model.js +175 -0
  103. package/dist/dashboard/groups-card-model.js.map +1 -0
  104. package/dist/dashboard/schedule-card-model.d.ts +172 -0
  105. package/dist/dashboard/schedule-card-model.d.ts.map +1 -0
  106. package/dist/dashboard/schedule-card-model.js +290 -0
  107. package/dist/dashboard/schedule-card-model.js.map +1 -0
  108. package/dist/dashboard/session-card-model.d.ts +83 -0
  109. package/dist/dashboard/session-card-model.d.ts.map +1 -0
  110. package/dist/dashboard/session-card-model.js +196 -0
  111. package/dist/dashboard/session-card-model.js.map +1 -0
  112. package/dist/dashboard/settings-card-model.d.ts +73 -0
  113. package/dist/dashboard/settings-card-model.d.ts.map +1 -0
  114. package/dist/dashboard/settings-card-model.js +94 -0
  115. package/dist/dashboard/settings-card-model.js.map +1 -0
  116. package/dist/dashboard/settings-owner-resolver.d.ts +32 -0
  117. package/dist/dashboard/settings-owner-resolver.d.ts.map +1 -0
  118. package/dist/dashboard/settings-owner-resolver.js +43 -0
  119. package/dist/dashboard/settings-owner-resolver.js.map +1 -0
  120. package/dist/dashboard/settings-write-applier.d.ts +84 -0
  121. package/dist/dashboard/settings-write-applier.d.ts.map +1 -0
  122. package/dist/dashboard/settings-write-applier.js +119 -0
  123. package/dist/dashboard/settings-write-applier.js.map +1 -0
  124. package/dist/dashboard/workflow-api.d.ts.map +1 -1
  125. package/dist/dashboard/workflow-api.js +38 -119
  126. package/dist/dashboard/workflow-api.js.map +1 -1
  127. package/dist/dashboard/workflow-card-model.d.ts +127 -0
  128. package/dist/dashboard/workflow-card-model.d.ts.map +1 -0
  129. package/dist/dashboard/workflow-card-model.js +186 -0
  130. package/dist/dashboard/workflow-card-model.js.map +1 -0
  131. package/dist/dashboard/workflows-action-helpers.d.ts +105 -0
  132. package/dist/dashboard/workflows-action-helpers.d.ts.map +1 -0
  133. package/dist/dashboard/workflows-action-helpers.js +196 -0
  134. package/dist/dashboard/workflows-action-helpers.js.map +1 -0
  135. package/dist/dashboard.js +196 -271
  136. package/dist/dashboard.js.map +1 -1
  137. package/dist/i18n/en.d.ts.map +1 -1
  138. package/dist/i18n/en.js +266 -0
  139. package/dist/i18n/en.js.map +1 -1
  140. package/dist/i18n/zh.d.ts.map +1 -1
  141. package/dist/i18n/zh.js +266 -0
  142. package/dist/i18n/zh.js.map +1 -1
  143. package/dist/im/lark/card-builder.d.ts +2 -0
  144. package/dist/im/lark/card-builder.d.ts.map +1 -1
  145. package/dist/im/lark/card-builder.js +2 -1
  146. package/dist/im/lark/card-builder.js.map +1 -1
  147. package/dist/im/lark/card-handler.d.ts +54 -2
  148. package/dist/im/lark/card-handler.d.ts.map +1 -1
  149. package/dist/im/lark/card-handler.js +127 -1
  150. package/dist/im/lark/card-handler.js.map +1 -1
  151. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  152. package/dist/im/lark/event-dispatcher.js +22 -0
  153. package/dist/im/lark/event-dispatcher.js.map +1 -1
  154. package/dist/im/lark/groups-card.d.ts +90 -0
  155. package/dist/im/lark/groups-card.d.ts.map +1 -0
  156. package/dist/im/lark/groups-card.js +832 -0
  157. package/dist/im/lark/groups-card.js.map +1 -0
  158. package/dist/im/lark/overview-card.d.ts +101 -0
  159. package/dist/im/lark/overview-card.d.ts.map +1 -0
  160. package/dist/im/lark/overview-card.js +475 -0
  161. package/dist/im/lark/overview-card.js.map +1 -0
  162. package/dist/im/lark/schedules-card.d.ts +96 -0
  163. package/dist/im/lark/schedules-card.d.ts.map +1 -0
  164. package/dist/im/lark/schedules-card.js +892 -0
  165. package/dist/im/lark/schedules-card.js.map +1 -0
  166. package/dist/im/lark/sessions-card.d.ts +117 -0
  167. package/dist/im/lark/sessions-card.d.ts.map +1 -0
  168. package/dist/im/lark/sessions-card.js +870 -0
  169. package/dist/im/lark/sessions-card.js.map +1 -0
  170. package/dist/im/lark/settings-card.d.ts +125 -0
  171. package/dist/im/lark/settings-card.d.ts.map +1 -0
  172. package/dist/im/lark/settings-card.js +433 -0
  173. package/dist/im/lark/settings-card.js.map +1 -0
  174. package/dist/im/lark/workflows-card.d.ts +102 -0
  175. package/dist/im/lark/workflows-card.d.ts.map +1 -0
  176. package/dist/im/lark/workflows-card.js +737 -0
  177. package/dist/im/lark/workflows-card.js.map +1 -0
  178. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups-card.js","sourceRoot":"","sources":["../../../src/im/lark/groups-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Dashboard overview card.
3
+ *
4
+ * Sources from the shared overview endpoint and presents the same navigation
5
+ * order as the Web Dashboard: sessions, workflows, groups, schedules, settings.
6
+ * Drilldown buttons rebuild the target Feishu card in-place rather than using
7
+ * external links, preserving invoker-lock and callback state.
8
+ *
9
+ * Non-200 Route B responses become error toasts, never empty cards. Successful
10
+ * callbacks return card-only so Lark replaces the card in a single pass.
11
+ */
12
+ import type { DaemonClient } from '../../dashboard/daemon-internal-client.js';
13
+ import type { DashboardSettingsInput } from '../../dashboard/settings-card-model.js';
14
+ import type { ScheduleCardTaskInput } from '../../dashboard/schedule-card-model.js';
15
+ import type { SessionRow } from '../../core/dashboard-rows.js';
16
+ import { type Locale } from '../../i18n/index.js';
17
+ import type { CardActionData } from './card-handler.js';
18
+ export declare const OVERVIEW_ACTION_REFRESH: "dash_overview_refresh";
19
+ export declare const OVERVIEW_ACTION_GOTO_SESSIONS: "dash_overview_goto_sessions";
20
+ export declare const OVERVIEW_ACTION_GOTO_SCHEDULES: "dash_overview_goto_schedules";
21
+ export declare const OVERVIEW_ACTION_GOTO_SETTINGS: "dash_overview_goto_settings";
22
+ export declare const OVERVIEW_ACTION_GOTO_GROUPS: "dash_overview_goto_groups";
23
+ export declare const OVERVIEW_ACTION_GOTO_WORKFLOWS: "dash_overview_goto_workflows";
24
+ /** Sessions count buckets the summary line surfaces. */
25
+ export interface SessionCounts {
26
+ active: number;
27
+ idle: number;
28
+ closed: number;
29
+ }
30
+ /** Schedules count buckets the summary line surfaces. */
31
+ export interface ScheduleCounts {
32
+ enabled: number;
33
+ paused: number;
34
+ /** Schedules whose last run errored — counted regardless of enabled state,
35
+ * to match the schedules list-card's ⚠️ semantics (see countSchedules
36
+ * docblock + `schedule-card-model.ts`). */
37
+ errors: number;
38
+ }
39
+ /** Count session rows into (active / idle / closed) buckets. */
40
+ export declare function countSessions(rows: ReadonlyArray<SessionRow>): SessionCounts;
41
+ /**
42
+ * Count schedule rows into (enabled / paused / errors-in-last-run) buckets.
43
+ *
44
+ * `errors` counts every task whose last run failed, regardless of `enabled`.
45
+ * This matches the schedules list-card semantics: `schedule-card-model.ts`
46
+ * sets `errorIndicator = task.lastStatus === 'error'` independent of the
47
+ * paused/enabled state, and `schedules-card.ts` paints the ⚠️ glyph
48
+ * on any such row. Keeping the same definition prevents an undercount where
49
+ * overview reads "上次错误 0" while drilling into schedules surfaces a
50
+ * paused task with ⚠️.
51
+ */
52
+ export declare function countSchedules(tasks: ReadonlyArray<ScheduleCardTaskInput>): ScheduleCounts;
53
+ /**
54
+ * Build the read-only settings summary line. Local helper — deliberately
55
+ * separate from `settings-card.ts:successResult` (which projects through
56
+ * `composeSections` and renders an interactive segmented card). The two
57
+ * share input shape but never share output text, so a future change to one
58
+ * cannot drift the other.
59
+ */
60
+ export declare function buildSettingsSummary(settings: DashboardSettingsInput, locale: Locale): string;
61
+ export interface BuildOverviewCardOpts {
62
+ invokerOpenId: string;
63
+ locale: Locale;
64
+ }
65
+ export interface OverviewSnapshotInput {
66
+ sessions: ReadonlyArray<SessionRow>;
67
+ schedules: ReadonlyArray<ScheduleCardTaskInput>;
68
+ settings: DashboardSettingsInput;
69
+ }
70
+ /** Build the overview card JSON. Pure (counts + projects + renders). */
71
+ export declare function buildOverviewCard(snapshot: OverviewSnapshotInput, opts: BuildOverviewCardOpts): string;
72
+ /** ─── Handler ─────────────────────────────────────────────────────────── */
73
+ export interface OverviewCardHandlerDeps {
74
+ getOwnerOpenId?: (larkAppId: string) => string | undefined;
75
+ getDashboardAdminOpenIds?: (larkAppId: string) => ReadonlyArray<string> | undefined;
76
+ createClient: (larkAppId: string) => DaemonClient;
77
+ locale?: Locale;
78
+ /** Override `Date.now()` so tests are deterministic. */
79
+ nowMs?: () => number;
80
+ }
81
+ export interface OverviewCardHandlerResult {
82
+ toast?: {
83
+ type: 'info' | 'success' | 'error';
84
+ content: string;
85
+ };
86
+ card?: {
87
+ type: 'raw';
88
+ data: Record<string, unknown>;
89
+ };
90
+ }
91
+ /**
92
+ * Dispatch a `dash_overview_*` action callback. Uses the same fail-closed
93
+ * identity pipeline as other dashboard cards; success returns `{ card }` only.
94
+ *
95
+ * Goto callbacks rebuild the TARGET module's card by re-fetching its own
96
+ * dedicated endpoint (sessions-list / schedules-list / settings-snapshot)
97
+ * — they intentionally do NOT mutate state. The user lands on the target
98
+ * card in the SAME callback response (no `multi_url` cross-card jump).
99
+ */
100
+ export declare function handleOverviewCardAction(data: CardActionData, larkAppId: string, deps: OverviewCardHandlerDeps): Promise<OverviewCardHandlerResult>;
101
+ //# sourceMappingURL=overview-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview-card.d.ts","sourceRoot":"","sources":["../../../src/im/lark/overview-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,475 @@
1
+ /**
2
+ * Dashboard overview card.
3
+ *
4
+ * Sources from the shared overview endpoint and presents the same navigation
5
+ * order as the Web Dashboard: sessions, workflows, groups, schedules, settings.
6
+ * Drilldown buttons rebuild the target Feishu card in-place rather than using
7
+ * external links, preserving invoker-lock and callback state.
8
+ *
9
+ * Non-200 Route B responses become error toasts, never empty cards. Successful
10
+ * callbacks return card-only so Lark replaces the card in a single pass.
11
+ */
12
+ import { isDashboardAdmin } from '../../dashboard/dashboard-admins.js';
13
+ import { t } from '../../i18n/index.js';
14
+ import { buildSessionsCard } from './sessions-card.js';
15
+ import { buildSchedulesCard } from './schedules-card.js';
16
+ import { buildSettingsCard } from './settings-card.js';
17
+ import { buildGroupsCard } from './groups-card.js';
18
+ import { buildWorkflowsCard } from './workflows-card.js';
19
+ import { composeSections } from '../../dashboard/settings-card-model.js';
20
+ export const OVERVIEW_ACTION_REFRESH = 'dash_overview_refresh';
21
+ export const OVERVIEW_ACTION_GOTO_SESSIONS = 'dash_overview_goto_sessions';
22
+ export const OVERVIEW_ACTION_GOTO_SCHEDULES = 'dash_overview_goto_schedules';
23
+ export const OVERVIEW_ACTION_GOTO_SETTINGS = 'dash_overview_goto_settings';
24
+ export const OVERVIEW_ACTION_GOTO_GROUPS = 'dash_overview_goto_groups';
25
+ export const OVERVIEW_ACTION_GOTO_WORKFLOWS = 'dash_overview_goto_workflows';
26
+ /** Status set treated as "active" (working / analyzing / starting / limited). */
27
+ const ACTIVE_STATUSES = new Set([
28
+ 'working',
29
+ 'analyzing',
30
+ 'starting',
31
+ 'limited',
32
+ ]);
33
+ /** Count session rows into (active / idle / closed) buckets. */
34
+ export function countSessions(rows) {
35
+ let active = 0;
36
+ let idle = 0;
37
+ let closed = 0;
38
+ for (const r of rows) {
39
+ if (r.status === 'closed')
40
+ closed += 1;
41
+ else if (r.status === 'idle')
42
+ idle += 1;
43
+ else if (ACTIVE_STATUSES.has(r.status))
44
+ active += 1;
45
+ else
46
+ idle += 1; // unknown → idle bucket (matches list-card neutral default)
47
+ }
48
+ return { active, idle, closed };
49
+ }
50
+ /**
51
+ * Count schedule rows into (enabled / paused / errors-in-last-run) buckets.
52
+ *
53
+ * `errors` counts every task whose last run failed, regardless of `enabled`.
54
+ * This matches the schedules list-card semantics: `schedule-card-model.ts`
55
+ * sets `errorIndicator = task.lastStatus === 'error'` independent of the
56
+ * paused/enabled state, and `schedules-card.ts` paints the ⚠️ glyph
57
+ * on any such row. Keeping the same definition prevents an undercount where
58
+ * overview reads "上次错误 0" while drilling into schedules surfaces a
59
+ * paused task with ⚠️.
60
+ */
61
+ export function countSchedules(tasks) {
62
+ let enabled = 0;
63
+ let paused = 0;
64
+ let errors = 0;
65
+ for (const t of tasks) {
66
+ if (t.enabled)
67
+ enabled += 1;
68
+ else
69
+ paused += 1;
70
+ if (t.lastStatus === 'error')
71
+ errors += 1;
72
+ }
73
+ return { enabled, paused, errors };
74
+ }
75
+ /**
76
+ * Build the read-only settings summary line. Local helper — deliberately
77
+ * separate from `settings-card.ts:successResult` (which projects through
78
+ * `composeSections` and renders an interactive segmented card). The two
79
+ * share input shape but never share output text, so a future change to one
80
+ * cannot drift the other.
81
+ */
82
+ export function buildSettingsSummary(settings, locale) {
83
+ const publicReadOnlyLabel = t(settings.publicReadOnly === true
84
+ ? 'card.dashboard.overview.settings.publicReadOnly.on'
85
+ : 'card.dashboard.overview.settings.publicReadOnly.off', undefined, locale);
86
+ const openTerminalLabel = t(settings.openTerminalInFeishu === true
87
+ ? 'card.dashboard.overview.settings.openTerminal.feishu'
88
+ : 'card.dashboard.overview.settings.openTerminal.browser', undefined, locale);
89
+ let autoUpdateLabel;
90
+ if (settings.localDevInstall === true) {
91
+ autoUpdateLabel = t('card.dashboard.overview.settings.autoUpdate.localDev', undefined, locale);
92
+ }
93
+ else if (settings.maintenance?.autoUpdate?.enabled !== true) {
94
+ autoUpdateLabel = t('card.dashboard.overview.settings.autoUpdate.off', undefined, locale);
95
+ }
96
+ else {
97
+ const time = formatTime(settings.maintenance?.autoUpdate?.time);
98
+ if (settings.maintenance?.autoRestart?.enabled === true) {
99
+ autoUpdateLabel = t('card.dashboard.overview.settings.autoUpdate.onWithRestart', { time }, locale);
100
+ }
101
+ else {
102
+ autoUpdateLabel = t('card.dashboard.overview.settings.autoUpdate.on', { time }, locale);
103
+ }
104
+ }
105
+ return t('card.dashboard.overview.settings_summary', { publicReadOnlyLabel, openTerminalLabel, autoUpdateLabel }, locale);
106
+ }
107
+ function formatTime(time) {
108
+ if (typeof time !== 'string')
109
+ return '04:00';
110
+ const trimmed = time.trim();
111
+ if (!/^([01]\d|2[0-3]):[0-5]\d$/.test(trimmed))
112
+ return '04:00';
113
+ return trimmed;
114
+ }
115
+ /**
116
+ * Sanitize user/filesystem-supplied text for inclusion in lark_md. See
117
+ * sessions-card.ts:escapeLarkMd for the escaping order rationale.
118
+ */
119
+ function escapeLarkMd(text) {
120
+ return text
121
+ .replace(/&/g, '&amp;')
122
+ .replace(/</g, '&lt;')
123
+ .replace(/>/g, '&gt;')
124
+ .replace(/([*_~`])/g, '\\$1');
125
+ }
126
+ /** Build the overview card JSON. Pure (counts + projects + renders). */
127
+ export function buildOverviewCard(snapshot, opts) {
128
+ const sessionCounts = countSessions(snapshot.sessions);
129
+ const scheduleCounts = countSchedules(snapshot.schedules);
130
+ const settingsSummary = buildSettingsSummary(snapshot.settings, opts.locale);
131
+ const elements = [];
132
+ // ─── Sessions section ────────────────────────────────────────────────
133
+ elements.push({
134
+ tag: 'div',
135
+ text: {
136
+ tag: 'lark_md',
137
+ content: `**${t('card.dashboard.overview.sessions_section', undefined, opts.locale)}**` +
138
+ `\n<font color="grey">${escapeLarkMd(t('card.dashboard.overview.sessions_summary', {
139
+ active: String(sessionCounts.active),
140
+ idle: String(sessionCounts.idle),
141
+ closed: String(sessionCounts.closed),
142
+ }, opts.locale))}</font>`,
143
+ },
144
+ });
145
+ elements.push({
146
+ tag: 'action',
147
+ actions: [{
148
+ tag: 'button',
149
+ text: {
150
+ tag: 'plain_text',
151
+ content: t('card.dashboard.overview.goto_sessions', undefined, opts.locale),
152
+ },
153
+ type: 'default',
154
+ value: {
155
+ action: OVERVIEW_ACTION_GOTO_SESSIONS,
156
+ invoker_open_id: opts.invokerOpenId,
157
+ },
158
+ }],
159
+ });
160
+ elements.push({ tag: 'hr' });
161
+ // ─── Workflows section ───────────────────────────────────────────────
162
+ elements.push({
163
+ tag: 'div',
164
+ text: {
165
+ tag: 'lark_md',
166
+ content: `**${t('card.dashboard.overview.workflows_section', undefined, opts.locale)}**`,
167
+ },
168
+ });
169
+ elements.push({
170
+ tag: 'action',
171
+ actions: [{
172
+ tag: 'button',
173
+ text: {
174
+ tag: 'plain_text',
175
+ content: t('card.dashboard.overview.goto_workflows', undefined, opts.locale),
176
+ },
177
+ type: 'default',
178
+ value: {
179
+ action: OVERVIEW_ACTION_GOTO_WORKFLOWS,
180
+ invoker_open_id: opts.invokerOpenId,
181
+ },
182
+ }],
183
+ });
184
+ elements.push({ tag: 'hr' });
185
+ // ─── Groups section ──────────────────────────────────────────────────
186
+ // overview-snapshot doesn't carry groups counts yet (would require a
187
+ // server-side aggregator); the entry button is enough for navigation.
188
+ elements.push({
189
+ tag: 'div',
190
+ text: {
191
+ tag: 'lark_md',
192
+ content: `**${t('card.dashboard.overview.groups_section', undefined, opts.locale)}**`,
193
+ },
194
+ });
195
+ elements.push({
196
+ tag: 'action',
197
+ actions: [{
198
+ tag: 'button',
199
+ text: {
200
+ tag: 'plain_text',
201
+ content: t('card.dashboard.overview.goto_groups', undefined, opts.locale),
202
+ },
203
+ type: 'default',
204
+ value: {
205
+ action: OVERVIEW_ACTION_GOTO_GROUPS,
206
+ invoker_open_id: opts.invokerOpenId,
207
+ },
208
+ }],
209
+ });
210
+ elements.push({ tag: 'hr' });
211
+ // ─── Schedules section ───────────────────────────────────────────────
212
+ elements.push({
213
+ tag: 'div',
214
+ text: {
215
+ tag: 'lark_md',
216
+ content: `**${t('card.dashboard.overview.schedules_section', undefined, opts.locale)}**` +
217
+ `\n<font color="grey">${escapeLarkMd(t('card.dashboard.overview.schedules_summary', {
218
+ enabled: String(scheduleCounts.enabled),
219
+ paused: String(scheduleCounts.paused),
220
+ errors: String(scheduleCounts.errors),
221
+ }, opts.locale))}</font>`,
222
+ },
223
+ });
224
+ elements.push({
225
+ tag: 'action',
226
+ actions: [{
227
+ tag: 'button',
228
+ text: {
229
+ tag: 'plain_text',
230
+ content: t('card.dashboard.overview.goto_schedules', undefined, opts.locale),
231
+ },
232
+ type: 'default',
233
+ value: {
234
+ action: OVERVIEW_ACTION_GOTO_SCHEDULES,
235
+ invoker_open_id: opts.invokerOpenId,
236
+ },
237
+ }],
238
+ });
239
+ elements.push({ tag: 'hr' });
240
+ // ─── Settings section ────────────────────────────────────────────────
241
+ elements.push({
242
+ tag: 'div',
243
+ text: {
244
+ tag: 'lark_md',
245
+ content: `**${t('card.dashboard.overview.settings_section', undefined, opts.locale)}**` +
246
+ `\n<font color="grey">${escapeLarkMd(settingsSummary)}</font>`,
247
+ },
248
+ });
249
+ elements.push({
250
+ tag: 'action',
251
+ actions: [{
252
+ tag: 'button',
253
+ text: {
254
+ tag: 'plain_text',
255
+ content: t('card.dashboard.overview.goto_settings', undefined, opts.locale),
256
+ },
257
+ type: 'default',
258
+ value: {
259
+ action: OVERVIEW_ACTION_GOTO_SETTINGS,
260
+ invoker_open_id: opts.invokerOpenId,
261
+ },
262
+ }],
263
+ });
264
+ elements.push({ tag: 'hr' });
265
+ // ─── Footer: refresh + shared security note ──────────────────────────
266
+ elements.push({
267
+ tag: 'action',
268
+ actions: [{
269
+ tag: 'button',
270
+ text: {
271
+ tag: 'plain_text',
272
+ content: t('card.dashboard.overview.refresh', undefined, opts.locale),
273
+ },
274
+ type: 'default',
275
+ value: {
276
+ action: OVERVIEW_ACTION_REFRESH,
277
+ invoker_open_id: opts.invokerOpenId,
278
+ },
279
+ }],
280
+ });
281
+ elements.push({
282
+ tag: 'note',
283
+ elements: [
284
+ { tag: 'lark_md', content: t('card.dashboard.settings.footer.security', undefined, opts.locale) },
285
+ ],
286
+ });
287
+ return JSON.stringify({
288
+ config: { wide_screen_mode: true },
289
+ header: {
290
+ title: { tag: 'plain_text', content: t('card.dashboard.overview.title', undefined, opts.locale) },
291
+ template: 'blue',
292
+ },
293
+ elements,
294
+ });
295
+ }
296
+ function ackToast(textKey, locale) {
297
+ return { toast: { type: 'info', content: t(textKey, undefined, locale) } };
298
+ }
299
+ function errorToast(textKey, params, locale) {
300
+ return { toast: { type: 'error', content: t(textKey, params, locale) } };
301
+ }
302
+ /**
303
+ * Dispatch a `dash_overview_*` action callback. Uses the same fail-closed
304
+ * identity pipeline as other dashboard cards; success returns `{ card }` only.
305
+ *
306
+ * Goto callbacks rebuild the TARGET module's card by re-fetching its own
307
+ * dedicated endpoint (sessions-list / schedules-list / settings-snapshot)
308
+ * — they intentionally do NOT mutate state. The user lands on the target
309
+ * card in the SAME callback response (no `multi_url` cross-card jump).
310
+ */
311
+ export async function handleOverviewCardAction(data, larkAppId, deps) {
312
+ const locale = deps.locale ?? 'zh';
313
+ const value = (data.action?.value ?? {});
314
+ const operatorOpenId = data.operator?.open_id;
315
+ const action = value.action;
316
+ // ─── 1) Invoker lock — fail-closed ──────────────────────────────────
317
+ const invokerOpenId = value.invoker_open_id;
318
+ if (typeof invokerOpenId !== 'string' || !invokerOpenId) {
319
+ return ackToast('card.dashboard.settings.not_invoker', locale);
320
+ }
321
+ if (typeof operatorOpenId !== 'string' || !operatorOpenId) {
322
+ return ackToast('card.dashboard.settings.not_invoker', locale);
323
+ }
324
+ if (invokerOpenId !== operatorOpenId) {
325
+ return ackToast('card.dashboard.settings.not_invoker', locale);
326
+ }
327
+ // ─── 2) Per-bot admin gate ──────────────────────────────────────────
328
+ if (!isDashboardAdmin(larkAppId, operatorOpenId, deps)) {
329
+ return ackToast('card.dashboard.settings.owner_only', locale);
330
+ }
331
+ // ─── 3) Dispatch by action ──────────────────────────────────────────
332
+ const client = deps.createClient(larkAppId);
333
+ const nowMs = deps.nowMs ? deps.nowMs() : Date.now();
334
+ if (action === OVERVIEW_ACTION_REFRESH) {
335
+ return rebuildOverview(client, operatorOpenId, locale);
336
+ }
337
+ if (action === OVERVIEW_ACTION_GOTO_SESSIONS) {
338
+ // Re-use the same Route B endpoint that sessions-card refresh hits so
339
+ // the cards stay byte-identical no matter which entrypoint reached them.
340
+ let r;
341
+ try {
342
+ r = await client.request({ method: 'GET', path: '/__daemon/sessions-list?scope=global' });
343
+ }
344
+ catch (e) {
345
+ return errorToast('card.dashboard.sessions.list_failed', { reason: e.message }, locale);
346
+ }
347
+ if (r.status !== 200) {
348
+ const reason = String(r.body?.error ?? `http_${r.status}`);
349
+ return errorToast('card.dashboard.sessions.list_failed', { reason }, locale);
350
+ }
351
+ const rows = (r.body?.sessions) ?? [];
352
+ // Drilldown subcard — `origin: 'overview'` keeps the back affordance,
353
+ // `scope: 'global'` keeps the global dashboard semantics across
354
+ // refresh/page/detail/action round-trips.
355
+ const cardJson = buildSessionsCard(rows, { invokerOpenId: operatorOpenId, locale, page: 1, origin: 'overview', scope: 'global' }, nowMs);
356
+ return { card: { type: 'raw', data: JSON.parse(cardJson) } };
357
+ }
358
+ if (action === OVERVIEW_ACTION_GOTO_SCHEDULES) {
359
+ let r;
360
+ try {
361
+ // `/dashboard` is a global tool panel — schedules from any bot must
362
+ // surface here, not just the caller's own.
363
+ r = await client.request({ method: 'GET', path: '/__daemon/schedules-list?scope=global' });
364
+ }
365
+ catch (e) {
366
+ return errorToast('card.dashboard.schedules.list_failed', { reason: e.message }, locale);
367
+ }
368
+ if (r.status !== 200) {
369
+ const reason = String(r.body?.error ?? `http_${r.status}`);
370
+ return errorToast('card.dashboard.schedules.list_failed', { reason }, locale);
371
+ }
372
+ const tasks = (r.body?.schedules) ?? [];
373
+ // See sessions branch above for drilldown opts. `scope: 'global'` threads
374
+ // global view semantics through refresh/page/detail/back/pause/resume.
375
+ const cardJson = buildSchedulesCard(tasks, { invokerOpenId: operatorOpenId, locale, page: 1, origin: 'overview', scope: 'global' }, nowMs);
376
+ return { card: { type: 'raw', data: JSON.parse(cardJson) } };
377
+ }
378
+ if (action === OVERVIEW_ACTION_GOTO_SETTINGS) {
379
+ let r;
380
+ try {
381
+ r = await client.request({ method: 'GET', path: '/__daemon/settings-snapshot' });
382
+ }
383
+ catch (e) {
384
+ return errorToast('card.dashboard.settings.snapshot_failed', { reason: e.message }, locale);
385
+ }
386
+ if (r.status !== 200) {
387
+ const reason = String(r.body?.error ?? `http_${r.status}`);
388
+ return errorToast('card.dashboard.settings.snapshot_failed', { reason }, locale);
389
+ }
390
+ const settings = r.body?.settings;
391
+ if (!settings || typeof settings !== 'object') {
392
+ return errorToast('card.dashboard.settings.snapshot_failed', { reason: 'malformed_body' }, locale);
393
+ }
394
+ const dto = composeSections(settings, { canWrite: true });
395
+ // Drilldown settings — origin=overview so toggle/set_time/refresh
396
+ // rebuilds keep the「🔙 返回总览」 button. Standalone settings command
397
+ // (cli-handler) calls buildSettingsCard without `origin`.
398
+ const cardJson = buildSettingsCard(dto, { invokerOpenId: operatorOpenId, locale, canWrite: true, origin: 'overview' });
399
+ return { card: { type: 'raw', data: JSON.parse(cardJson) } };
400
+ }
401
+ if (action === OVERVIEW_ACTION_GOTO_GROUPS) {
402
+ let r;
403
+ try {
404
+ r = await client.request({ method: 'GET', path: '/__daemon/groups-matrix?scope=global' });
405
+ }
406
+ catch (e) {
407
+ return errorToast('card.dashboard.groups.list_failed', { reason: e.message }, locale);
408
+ }
409
+ if (r.status !== 200) {
410
+ const reason = String(r.body?.error ?? `http_${r.status}`);
411
+ return errorToast('card.dashboard.groups.list_failed', { reason }, locale);
412
+ }
413
+ const body = r.body ?? {};
414
+ const matrix = { chats: body.chats ?? [], bots: body.bots ?? [] };
415
+ // Drilldown subcard — `origin` preserves return-to-overview;
416
+ // `scope: 'global'` keeps full matrix semantics.
417
+ const cardJson = buildGroupsCard(matrix, {
418
+ invokerOpenId: operatorOpenId,
419
+ locale,
420
+ page: 1,
421
+ origin: 'overview',
422
+ scope: 'global',
423
+ });
424
+ return { card: { type: 'raw', data: JSON.parse(cardJson) } };
425
+ }
426
+ if (action === OVERVIEW_ACTION_GOTO_WORKFLOWS) {
427
+ let r;
428
+ try {
429
+ // ?all=1 includes terminal runs; scope=global keeps `/dashboard`
430
+ // semantics across Overview drilldown and subsequent callbacks.
431
+ r = await client.request({
432
+ method: 'GET',
433
+ path: '/__daemon/workflows-runs-snapshot?all=1&scope=global',
434
+ });
435
+ }
436
+ catch (e) {
437
+ return errorToast('card.dashboard.workflows.list_failed', { reason: e.message }, locale);
438
+ }
439
+ if (r.status !== 200) {
440
+ const reason = String(r.body?.error ?? `http_${r.status}`);
441
+ return errorToast('card.dashboard.workflows.list_failed', { reason }, locale);
442
+ }
443
+ const runs = (r.body?.runs) ?? [];
444
+ const cardJson = buildWorkflowsCard(runs, { invokerOpenId: operatorOpenId, locale, page: 1, origin: 'overview', scope: 'global' }, nowMs);
445
+ return { card: { type: 'raw', data: JSON.parse(cardJson) } };
446
+ }
447
+ return ackToast('card.dashboard.settings.invalid_action', locale);
448
+ }
449
+ /** Fetch `overview-snapshot` and rebuild the overview card JSON. */
450
+ async function rebuildOverview(client, invokerOpenId, locale) {
451
+ let r;
452
+ try {
453
+ // `/dashboard` is global: overview-snapshot widens list modules under
454
+ // `?scope=global` so first-open, refresh, and drilldown stay consistent.
455
+ r = await client.request({ method: 'GET', path: '/__daemon/overview-snapshot?scope=global' });
456
+ }
457
+ catch (e) {
458
+ return errorToast('card.dashboard.overview.overview_failed', { reason: e.message }, locale);
459
+ }
460
+ if (r.status !== 200) {
461
+ const reason = String(r.body?.error ?? `http_${r.status}`);
462
+ return errorToast('card.dashboard.overview.overview_failed', { reason }, locale);
463
+ }
464
+ const body = r.body;
465
+ if (!body || typeof body !== 'object' || !body.settings) {
466
+ return errorToast('card.dashboard.overview.overview_failed', { reason: 'malformed_body' }, locale);
467
+ }
468
+ const cardJson = buildOverviewCard({
469
+ sessions: body.sessions ?? [],
470
+ schedules: body.schedules ?? [],
471
+ settings: body.settings,
472
+ }, { invokerOpenId, locale });
473
+ return { card: { type: 'raw', data: JSON.parse(cardJson) } };
474
+ }
475
+ //# sourceMappingURL=overview-card.js.map