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":"sessions-card.js","sourceRoot":"","sources":["../../../src/im/lark/sessions-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Settings dashboard card.
3
+ *
4
+ * Consumes the settings DTO and emits a Feishu interactive card. The handler
5
+ * chain is:
6
+ *
7
+ * 1. invoker lock: `action.value.invoker_open_id === operator.open_id`.
8
+ * 2. per-bot admin gate: `operator.open_id` MUST be one of this bot's
9
+ * resolved `allowedUsers`, matching `/botconfig`. Each callback is
10
+ * scoped to the bot that received it; an admin of bot A cannot use
11
+ * bot B's `/dashboard *`.
12
+ * 3. noop short-circuit: `dash_settings_noop` (current-value button in the
13
+ * segmented control) returns a toast WITHOUT calling the Route B client.
14
+ * Fail-safe for clients that don't suppress `disabled` callbacks.
15
+ * 4. Sync handler:
16
+ * - await the Route B PUT/GET (resolves the admin's union_id via
17
+ * `resolveUserUnionId` first, since the server-side write API
18
+ * still requires `ownerUnionId` in the body),
19
+ * - return ONLY `{ card }` (no toast) on the success path so the
20
+ * event-dispatcher passes the rebuilt card body back to Lark in
21
+ * the SAME callback response. Toast + card together makes the
22
+ * Lark client render the toast and the card replacement in two
23
+ * separate passes, flashing the OLD card state during the gap;
24
+ * card-only avoids that. Errors/permission denials/noop still
25
+ * return a plain toast (they have no card to render).
26
+ *
27
+ * Write actions are never retried; toggling a setting twice is a real-world
28
+ * effect.
29
+ *
30
+ * Sender identity (`unionId`) NEVER lands on `action.value`. The only field
31
+ * the callback echoes from the original render is `invoker_open_id`, which
32
+ * is the invoking admin's open_id (not the sender's union_id).
33
+ */
34
+ import { type SettingsCardDTO } from '../../dashboard/settings-card-model.js';
35
+ import type { DaemonClient } from '../../dashboard/daemon-internal-client.js';
36
+ import { type Locale } from '../../i18n/index.js';
37
+ import type { CardActionData } from './card-handler.js';
38
+ export declare const SETTINGS_ACTION_TOGGLE: "dash_settings_toggle";
39
+ export declare const SETTINGS_ACTION_SET_TIME: "dash_settings_set_time";
40
+ export declare const SETTINGS_ACTION_REFRESH: "dash_settings_refresh";
41
+ /** Current-value segmented-control buttons send noop as a fail-safe. */
42
+ export declare const SETTINGS_ACTION_NOOP: "dash_settings_noop";
43
+ /** Builder opts intentionally exclude sender union identity. */
44
+ export interface BuildSettingsCardOpts {
45
+ invokerOpenId: string;
46
+ locale: Locale;
47
+ canWrite: boolean;
48
+ /** Overview drilldown nav state. `'overview'` → footer renders
49
+ * "🔙 返回总览" AND every action.value carries `origin=overview` so
50
+ * toggle/set_time/refresh rebuilds keep the return affordance.
51
+ * Settings is single-layer (no pages) → no `pageSize`. */
52
+ origin?: 'overview';
53
+ }
54
+ /** Build a Feishu interactive card JSON string from the settings DTO. */
55
+ export declare function buildSettingsCard(dto: SettingsCardDTO, opts: BuildSettingsCardOpts): string;
56
+ /** ─── Handler ─────────────────────────────────────────────────────────── */
57
+ export interface SettingsCardHandlerDeps {
58
+ /** Legacy owner test seam; prefer `getDashboardAdminOpenIds` for new tests. */
59
+ getOwnerOpenId?: (larkAppId: string) => string | undefined;
60
+ getDashboardAdminOpenIds?: (larkAppId: string) => ReadonlyArray<string> | undefined;
61
+ /** Override the union_id resolver. Production omits; tests skip Lark contact API. */
62
+ resolveUserUnionId?: (larkAppId: string, openId: string) => Promise<{
63
+ unionId?: string;
64
+ }>;
65
+ /** Factory returning a Route B client for the given larkAppId. */
66
+ createClient: (larkAppId: string) => DaemonClient;
67
+ /** Override locale resolution; production uses the caller-supplied locale. */
68
+ locale?: Locale;
69
+ }
70
+ /**
71
+ * Lark card-callback result envelope. event-dispatcher pass-through expects
72
+ * either `{ toast }`, `{ card }`, or both — see `event-dispatcher.ts:390-395`.
73
+ *
74
+ * The handler awaits GET/PUT inline. On the success path it returns ONLY
75
+ * `{ card }` (no toast). Why card-only:
76
+ * - Lark's client renders toast and card replacement as two separate passes;
77
+ * users briefly see the old card state between them.
78
+ * - Card-only collapses that to a single pass — the card body itself
79
+ * (`✓ 已开启` / `✓ 已关闭`) is the feedback signal; users learn the
80
+ * write succeeded from the new state, not from a toast.
81
+ * Error / permission denial / noop still return `{ toast }` (no card to
82
+ * render anyway). Round-trip Route B PUT + card rebuild fits in ~30-80ms;
83
+ * well inside the `event-dispatcher` 2.5s handler timeout
84
+ * (`event-dispatcher.ts:365`).
85
+ */
86
+ export interface SettingsCardHandlerResult {
87
+ /** Optional — success path now returns ONLY a `card` to avoid the
88
+ * toast + card two-pass render that flashes the OLD state. Errors,
89
+ * permission denials, and noop still return a toast. */
90
+ toast?: {
91
+ type: 'info' | 'success' | 'error';
92
+ content: string;
93
+ };
94
+ card?: {
95
+ type: 'raw';
96
+ data: Record<string, unknown>;
97
+ };
98
+ }
99
+ export type PatchBuildResult = {
100
+ ok: true;
101
+ value: unknown;
102
+ } | {
103
+ ok: false;
104
+ error: 'invalid_field' | 'invalid_value' | 'invalid_time' | 'invalid_action';
105
+ };
106
+ /**
107
+ * Build the dashboard settings patch from an action callback. Pure — caller
108
+ * decides whether to PUT.
109
+ *
110
+ * Whitelisting: `next_value` MUST be the literal string
111
+ * `'true'` or `'false'`. Anything else (`'yes'`, `'TRUE'`, undefined, an
112
+ * object) returns `invalid_value` so an upstream callback drift cannot
113
+ * silently flip a toggle.
114
+ *
115
+ * Time validation: HH:MM regex, no silent fallback to 04:00.
116
+ */
117
+ export declare function buildPatchFromAction(action: string, value: Record<string, string>, formValue: Record<string, unknown>): PatchBuildResult;
118
+ /**
119
+ * Dispatch a `dash_settings_*` action callback. Awaits the Route B
120
+ * GET/PUT inline. Success path returns `{ card }` (card-only — see the
121
+ * module docstring for why we drop the toast). Errors / permission
122
+ * denials / noop return a plain `{ toast }`.
123
+ */
124
+ export declare function handleSettingsCardAction(data: CardActionData, larkAppId: string, deps: SettingsCardHandlerDeps): Promise<SettingsCardHandlerResult>;
125
+ //# sourceMappingURL=settings-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-card.d.ts","sourceRoot":"","sources":["../../../src/im/lark/settings-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,KAAK,MAAM,EAAK,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,sBAAsB,EAAG,sBAA+B,CAAC;AACtE,eAAO,MAAM,wBAAwB,EAAG,wBAAiC,CAAC;AAC1E,eAAO,MAAM,uBAAuB,EAAG,uBAAgC,CAAC;AACxE,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,EAAG,oBAA6B,CAAC;AAclE,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB;;;+DAG2D;IAC3D,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAwF3F;AAqJD,8EAA8E;AAE9E,MAAM,WAAW,uBAAuB;IACtC,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpF,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1F,kEAAkE;IAClE,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,CAAC;IAClD,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,yBAAyB;IACxC;;6DAEyD;IACzD,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACvD;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,eAAe,GAAG,eAAe,GAAG,cAAc,GAAG,gBAAgB,CAAA;CAAE,CAAC;AAEhG;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,gBAAgB,CA2BlB;AA2CD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CA2FpC"}
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Settings dashboard card.
3
+ *
4
+ * Consumes the settings DTO and emits a Feishu interactive card. The handler
5
+ * chain is:
6
+ *
7
+ * 1. invoker lock: `action.value.invoker_open_id === operator.open_id`.
8
+ * 2. per-bot admin gate: `operator.open_id` MUST be one of this bot's
9
+ * resolved `allowedUsers`, matching `/botconfig`. Each callback is
10
+ * scoped to the bot that received it; an admin of bot A cannot use
11
+ * bot B's `/dashboard *`.
12
+ * 3. noop short-circuit: `dash_settings_noop` (current-value button in the
13
+ * segmented control) returns a toast WITHOUT calling the Route B client.
14
+ * Fail-safe for clients that don't suppress `disabled` callbacks.
15
+ * 4. Sync handler:
16
+ * - await the Route B PUT/GET (resolves the admin's union_id via
17
+ * `resolveUserUnionId` first, since the server-side write API
18
+ * still requires `ownerUnionId` in the body),
19
+ * - return ONLY `{ card }` (no toast) on the success path so the
20
+ * event-dispatcher passes the rebuilt card body back to Lark in
21
+ * the SAME callback response. Toast + card together makes the
22
+ * Lark client render the toast and the card replacement in two
23
+ * separate passes, flashing the OLD card state during the gap;
24
+ * card-only avoids that. Errors/permission denials/noop still
25
+ * return a plain toast (they have no card to render).
26
+ *
27
+ * Write actions are never retried; toggling a setting twice is a real-world
28
+ * effect.
29
+ *
30
+ * Sender identity (`unionId`) NEVER lands on `action.value`. The only field
31
+ * the callback echoes from the original render is `invoker_open_id`, which
32
+ * is the invoking admin's open_id (not the sender's union_id).
33
+ */
34
+ import { isDashboardAdmin } from '../../dashboard/dashboard-admins.js';
35
+ import { composeSections } from '../../dashboard/settings-card-model.js';
36
+ import { t } from '../../i18n/index.js';
37
+ import { resolveUserUnionId as defaultResolveUserUnionId } from './client.js';
38
+ export const SETTINGS_ACTION_TOGGLE = 'dash_settings_toggle';
39
+ export const SETTINGS_ACTION_SET_TIME = 'dash_settings_set_time';
40
+ export const SETTINGS_ACTION_REFRESH = 'dash_settings_refresh';
41
+ /** Current-value segmented-control buttons send noop as a fail-safe. */
42
+ export const SETTINGS_ACTION_NOOP = 'dash_settings_noop';
43
+ /** Action emitted by "🔙 返回总览" on overview-origin settings cards. Same
44
+ * string as overview-card's OVERVIEW_ACTION_REFRESH (kept in sync; we don't
45
+ * import to avoid a circular dep). */
46
+ const BACK_TO_OVERVIEW_ACTION = 'dash_overview_refresh';
47
+ const TIME_REGEX = /^([01]\d|2[0-3]):[0-5]\d$/;
48
+ const TOGGLE_FIELDS = new Set([
49
+ 'publicReadOnly',
50
+ 'openTerminalInFeishu',
51
+ 'autoUpdate',
52
+ 'autoRestart',
53
+ ]);
54
+ /** Build a Feishu interactive card JSON string from the settings DTO. */
55
+ export function buildSettingsCard(dto, opts) {
56
+ const elements = [];
57
+ // Nav state — threaded into every action.value so the rebuild path keeps
58
+ // 「🔙 返回总览」 affordance across toggle/set_time/refresh round-trips.
59
+ // Empty values omitted → standalone cards stay byte-identical.
60
+ const navFields = {};
61
+ if (opts.origin === 'overview')
62
+ navFields.origin = 'overview';
63
+ // Header summary was dropped per user feedback: segmented controls already
64
+ // make each toggle's state self-evident; a top-level summary becomes a second
65
+ // explanation system that drifts as configuration grows. Section-internal
66
+ // warnings (localDev, autoUpdate dependency) stay where the user reads them.
67
+ if (dto.readOnlyHintKey) {
68
+ elements.push({
69
+ tag: 'div',
70
+ text: { tag: 'lark_md', content: `⚠️ ${t(dto.readOnlyHintKey, undefined, opts.locale)}` },
71
+ });
72
+ }
73
+ for (const section of dto.sections) {
74
+ elements.push({ tag: 'hr' });
75
+ elements.push({
76
+ tag: 'div',
77
+ text: { tag: 'lark_md', content: `**${t(section.titleKey, undefined, opts.locale)}**` },
78
+ });
79
+ for (const toggle of section.toggles) {
80
+ elements.push(...buildSegmentedRow(toggle, opts, navFields));
81
+ }
82
+ if (section.hintKey) {
83
+ elements.push({
84
+ tag: 'note',
85
+ elements: [
86
+ { tag: 'lark_md', content: `ℹ️ ${t(section.hintKey, undefined, opts.locale)}` },
87
+ ],
88
+ });
89
+ }
90
+ }
91
+ elements.push({ tag: 'hr' });
92
+ // Refresh button — read-only, GET-only path. When the card was opened via
93
+ // overview drilldown, append "🔙 返回总览" beside it; standalone settings
94
+ // command omits the back button (no parent card to return to).
95
+ const footerActions = [
96
+ {
97
+ tag: 'button',
98
+ text: { tag: 'plain_text', content: t('card.dashboard.settings.refresh', undefined, opts.locale) },
99
+ type: 'default',
100
+ value: {
101
+ action: SETTINGS_ACTION_REFRESH,
102
+ invoker_open_id: opts.invokerOpenId,
103
+ ...navFields,
104
+ },
105
+ },
106
+ ];
107
+ if (opts.origin === 'overview') {
108
+ footerActions.push({
109
+ tag: 'button',
110
+ text: { tag: 'plain_text', content: t('card.dashboard.overview.back_button', undefined, opts.locale) },
111
+ type: 'default',
112
+ value: {
113
+ action: BACK_TO_OVERVIEW_ACTION,
114
+ invoker_open_id: opts.invokerOpenId,
115
+ },
116
+ });
117
+ }
118
+ elements.push({ tag: 'action', actions: footerActions });
119
+ // Footer security note: the card is admin-private and refreshable.
120
+ elements.push({
121
+ tag: 'note',
122
+ elements: [
123
+ { tag: 'lark_md', content: t('card.dashboard.settings.footer.security', undefined, opts.locale) },
124
+ ],
125
+ });
126
+ return JSON.stringify({
127
+ config: { wide_screen_mode: true },
128
+ header: {
129
+ title: { tag: 'plain_text', content: t('card.dashboard.settings.title', undefined, opts.locale) },
130
+ template: 'blue',
131
+ },
132
+ elements,
133
+ });
134
+ }
135
+ /**
136
+ * Build a segmented control row for one toggle:
137
+ * - Current value button: `type: primary` + `disabled: true` + `✓ 已开启/已关闭`
138
+ * + carries `dash_settings_noop` action (belt-and-suspenders short-circuit).
139
+ * - Target value button: `type: default` + clickable + `dash_settings_toggle` action.
140
+ * - When the whole toggle is disabled (state.enabled=false): both buttons
141
+ * carry NO action, current still primary, target still default for clear
142
+ * visual; per-toggle `state.reasonKey` is surfaced as a note.
143
+ * - autoUpdate also renders a read-only "更新时间:HH:MM" line, AND when
144
+ * writable a form to update the time (carries the existing set_time
145
+ * action). The display line is present whether the toggle is disabled
146
+ * or not, so users always see the scheduled time.
147
+ */
148
+ function buildSegmentedRow(toggle, opts, navFields) {
149
+ const labelLine = {
150
+ tag: 'div',
151
+ text: {
152
+ tag: 'lark_md',
153
+ content: `${toggle.enabled ? '🟢' : '⚪'} **${t(toggle.labelKey, undefined, opts.locale)}**` +
154
+ `\n<font color="grey">${t(toggle.hintKey, undefined, opts.locale)}</font>`,
155
+ },
156
+ };
157
+ const enabled = toggle.enabled;
158
+ const writable = toggle.state.enabled;
159
+ const onText = t(enabled ? 'card.dashboard.settings.segment.on_current' : 'card.dashboard.settings.segment.on', undefined, opts.locale);
160
+ const offText = t(!enabled ? 'card.dashboard.settings.segment.off_current' : 'card.dashboard.settings.segment.off', undefined, opts.locale);
161
+ // ON button — primary+current when ON, default+target when OFF
162
+ const onBtn = {
163
+ tag: 'button',
164
+ text: { tag: 'plain_text', content: onText },
165
+ type: enabled ? 'primary' : 'default',
166
+ };
167
+ if (enabled || !writable) {
168
+ // Current value (always primary) — `disabled` lets the client suppress the
169
+ // callback, and the noop action is the fallback if it doesn't.
170
+ onBtn.disabled = true;
171
+ if (writable) {
172
+ onBtn.value = { action: SETTINGS_ACTION_NOOP, invoker_open_id: opts.invokerOpenId, field: toggle.key, ...navFields };
173
+ }
174
+ }
175
+ else {
176
+ onBtn.value = {
177
+ action: SETTINGS_ACTION_TOGGLE,
178
+ invoker_open_id: opts.invokerOpenId,
179
+ field: toggle.key,
180
+ next_value: 'true',
181
+ ...navFields,
182
+ };
183
+ }
184
+ // OFF button — primary+current when OFF, default+target when ON
185
+ const offBtn = {
186
+ tag: 'button',
187
+ text: { tag: 'plain_text', content: offText },
188
+ type: !enabled ? 'primary' : 'default',
189
+ };
190
+ if (!enabled || !writable) {
191
+ offBtn.disabled = true;
192
+ if (writable) {
193
+ offBtn.value = { action: SETTINGS_ACTION_NOOP, invoker_open_id: opts.invokerOpenId, field: toggle.key, ...navFields };
194
+ }
195
+ }
196
+ else {
197
+ offBtn.value = {
198
+ action: SETTINGS_ACTION_TOGGLE,
199
+ invoker_open_id: opts.invokerOpenId,
200
+ field: toggle.key,
201
+ next_value: 'false',
202
+ ...navFields,
203
+ };
204
+ }
205
+ const row = [
206
+ labelLine,
207
+ { tag: 'action', actions: [onBtn, offBtn] },
208
+ ];
209
+ // Surface only this toggle's precise disabled reason; do not fall back to a
210
+ // generic key that would hide the actionable dependency.
211
+ if (!writable && toggle.state.reasonKey) {
212
+ row.push({
213
+ tag: 'note',
214
+ elements: [{ tag: 'lark_md', content: t(toggle.state.reasonKey, undefined, opts.locale) }],
215
+ });
216
+ }
217
+ // autoUpdate always shows the schedule time (read-only when toggle blocked,
218
+ // editable form when writable).
219
+ if (toggle.time) {
220
+ row.push({
221
+ tag: 'div',
222
+ text: {
223
+ tag: 'lark_md',
224
+ content: `<font color="grey">${t('card.dashboard.settings.maintenance.time_display', { time: toggle.time.value }, opts.locale)}</font>`,
225
+ },
226
+ });
227
+ if (writable) {
228
+ row.push({
229
+ tag: 'form',
230
+ name: `settings_time_${toggle.key}`,
231
+ elements: [
232
+ {
233
+ tag: 'input',
234
+ name: 'time',
235
+ placeholder: { tag: 'plain_text', content: 'HH:MM' },
236
+ default_value: toggle.time.value,
237
+ },
238
+ {
239
+ tag: 'action',
240
+ actions: [
241
+ {
242
+ tag: 'button',
243
+ text: { tag: 'plain_text', content: t('card.dashboard.settings.save_time', undefined, opts.locale) },
244
+ type: 'primary',
245
+ form_action_type: 'submit',
246
+ value: {
247
+ action: SETTINGS_ACTION_SET_TIME,
248
+ invoker_open_id: opts.invokerOpenId,
249
+ field: toggle.key,
250
+ ...navFields,
251
+ },
252
+ },
253
+ ],
254
+ },
255
+ ],
256
+ });
257
+ }
258
+ }
259
+ return row;
260
+ }
261
+ async function resolveVerifiedOperatorUnionId(data, larkAppId, operatorOpenId, deps) {
262
+ const verified = data.operator?.union_id;
263
+ if (typeof verified === 'string') {
264
+ return verified.startsWith('on_') ? verified : undefined;
265
+ }
266
+ const resolveUnion = deps.resolveUserUnionId ?? defaultResolveUserUnionId;
267
+ try {
268
+ const r = await resolveUnion(larkAppId, operatorOpenId);
269
+ return typeof r.unionId === 'string' && r.unionId.startsWith('on_') ? r.unionId : undefined;
270
+ }
271
+ catch {
272
+ return undefined;
273
+ }
274
+ }
275
+ /**
276
+ * Build the dashboard settings patch from an action callback. Pure — caller
277
+ * decides whether to PUT.
278
+ *
279
+ * Whitelisting: `next_value` MUST be the literal string
280
+ * `'true'` or `'false'`. Anything else (`'yes'`, `'TRUE'`, undefined, an
281
+ * object) returns `invalid_value` so an upstream callback drift cannot
282
+ * silently flip a toggle.
283
+ *
284
+ * Time validation: HH:MM regex, no silent fallback to 04:00.
285
+ */
286
+ export function buildPatchFromAction(action, value, formValue) {
287
+ switch (action) {
288
+ case SETTINGS_ACTION_TOGGLE: {
289
+ const field = value.field;
290
+ if (typeof field !== 'string' || !TOGGLE_FIELDS.has(field)) {
291
+ return { ok: false, error: 'invalid_field' };
292
+ }
293
+ const raw = value.next_value;
294
+ if (raw !== 'true' && raw !== 'false') {
295
+ return { ok: false, error: 'invalid_value' };
296
+ }
297
+ const next = raw === 'true';
298
+ if (field === 'publicReadOnly' || field === 'openTerminalInFeishu') {
299
+ return { ok: true, value: { [field]: next } };
300
+ }
301
+ return { ok: true, value: { maintenance: { [field]: { enabled: next } } } };
302
+ }
303
+ case SETTINGS_ACTION_SET_TIME: {
304
+ const time = formValue.time;
305
+ if (typeof time !== 'string' || !TIME_REGEX.test(time)) {
306
+ return { ok: false, error: 'invalid_time' };
307
+ }
308
+ return { ok: true, value: { maintenance: { autoUpdate: { time } } } };
309
+ }
310
+ default:
311
+ return { ok: false, error: 'invalid_action' };
312
+ }
313
+ }
314
+ function ackToast(textKey, locale) {
315
+ return { toast: { type: 'info', content: t(textKey, undefined, locale) } };
316
+ }
317
+ function errorToast(textKey, params, locale) {
318
+ return { toast: { type: 'error', content: t(textKey, params, locale) } };
319
+ }
320
+ /**
321
+ * Build a `{ card }` envelope from a Route B settings response.
322
+ *
323
+ * Returning toast + card together makes Lark render spinner removal and card
324
+ * replacement as separate passes, causing a stale-frame flash. Return only
325
+ * the card; the new card state is the success signal.
326
+ *
327
+ * If the payload carries no settings (malformed response), fall back to a
328
+ * generic success toast so the user gets *some* feedback. Error paths still
329
+ * use error toasts — those don't have a card to render anyway.
330
+ */
331
+ function successResult(payload, invokerOpenId, locale, fallbackToastKey, origin) {
332
+ const settings = payload?.body?.settings ?? payload?.settings;
333
+ if (!settings || typeof settings !== 'object') {
334
+ return { toast: { type: 'success', content: t(fallbackToastKey, undefined, locale) } };
335
+ }
336
+ const dto = composeSections(settings, { canWrite: true });
337
+ const cardJson = buildSettingsCard(dto, { invokerOpenId, locale, canWrite: true, origin });
338
+ // No `toast` on the success path — the card body itself ("✓ 已开启" /
339
+ // "✓ 已关闭") is the feedback. Returning toast + card together triggers
340
+ // two separate render passes on the Lark client and flashes the OLD card
341
+ // state during the gap.
342
+ return {
343
+ card: { type: 'raw', data: JSON.parse(cardJson) },
344
+ };
345
+ }
346
+ /**
347
+ * Dispatch a `dash_settings_*` action callback. Awaits the Route B
348
+ * GET/PUT inline. Success path returns `{ card }` (card-only — see the
349
+ * module docstring for why we drop the toast). Errors / permission
350
+ * denials / noop return a plain `{ toast }`.
351
+ */
352
+ export async function handleSettingsCardAction(data, larkAppId, deps) {
353
+ const locale = deps.locale ?? 'zh';
354
+ const value = data.action?.value ?? {};
355
+ const formValue = data.action?.form_value ?? {};
356
+ const operatorOpenId = data.operator?.open_id;
357
+ const action = value.action;
358
+ // ─── 1) Invoker lock — fail-closed ──────────────────────────────────
359
+ // Settings card is new — there is no legacy callback shape to keep
360
+ // compatible. Reject any callback whose envelope is missing either side
361
+ // of the invoker assertion, then reject when they disagree.
362
+ const invokerOpenId = value.invoker_open_id;
363
+ if (typeof invokerOpenId !== 'string' || !invokerOpenId) {
364
+ return ackToast('card.dashboard.settings.not_invoker', locale);
365
+ }
366
+ if (typeof operatorOpenId !== 'string' || !operatorOpenId) {
367
+ return ackToast('card.dashboard.settings.not_invoker', locale);
368
+ }
369
+ if (invokerOpenId !== operatorOpenId) {
370
+ return ackToast('card.dashboard.settings.not_invoker', locale);
371
+ }
372
+ // ─── 2) Per-bot admin gate ───────────────────────────────────────────
373
+ // Match `/botconfig`: any resolved allowedUsers entry can act. The
374
+ // invoker lock above still pins this specific card to the admin who
375
+ // received it, and `action.value.*` identity fields are ignored.
376
+ if (!isDashboardAdmin(larkAppId, operatorOpenId, deps)) {
377
+ return ackToast('card.dashboard.settings.owner_only', locale);
378
+ }
379
+ // ─── Nav state (overview drilldown) ─────────────────────────────────
380
+ // Threaded by buildSettingsCard onto every action.value; we parse here
381
+ // so refresh / toggle / set_time rebuilds keep the「🔙 返回总览」 button.
382
+ const navOrigin = value.origin === 'overview' ? 'overview' : undefined;
383
+ // ─── 3) Noop short-circuit ───────────────────────────────────────────
384
+ // The current-value button in the segmented control is rendered with
385
+ // `disabled: true` but ALSO carries `dash_settings_noop` as a fail-safe:
386
+ // if any Lark client doesn't suppress disabled callbacks, we just toast
387
+ // and skip the network entirely. This is the only path that returns a
388
+ // success-typed toast without any side effect.
389
+ if (action === SETTINGS_ACTION_NOOP) {
390
+ return ackToast('card.dashboard.settings.toggle.disabled', locale);
391
+ }
392
+ // ─── 4a) Refresh — read-only path (NO PUT) ───────────────────────────
393
+ // Inline await + return rebuilt card in the SAME response (card-only,
394
+ // see successResult docstring for why we don't return a toast here).
395
+ if (action === SETTINGS_ACTION_REFRESH) {
396
+ try {
397
+ const client = deps.createClient(larkAppId);
398
+ const snap = await client.request({ method: 'GET', path: '/__daemon/settings-snapshot' });
399
+ return successResult(snap, operatorOpenId, locale, 'card.dashboard.settings.refreshed', navOrigin);
400
+ }
401
+ catch (e) {
402
+ return errorToast('card.dashboard.settings.snapshot_failed', { reason: e.message }, locale);
403
+ }
404
+ }
405
+ // ─── 4b) Write path — toggle / set_time ─────────────────────────────
406
+ const patch = buildPatchFromAction(action ?? '', value, formValue);
407
+ if (!patch.ok) {
408
+ return ackToast(`card.dashboard.settings.${patch.error}`, locale);
409
+ }
410
+ // Route B still expects `ownerUnionId` for global settings authorization.
411
+ // Prefer Lark's verified callback field; only fall back to contact lookup
412
+ // when Lark omitted it. Never read identity from action.value.
413
+ const ownerUnionId = await resolveVerifiedOperatorUnionId(data, larkAppId, operatorOpenId, deps);
414
+ if (!ownerUnionId) {
415
+ return ackToast('card.dashboard.settings.owner_only', locale);
416
+ }
417
+ try {
418
+ const client = deps.createClient(larkAppId);
419
+ const r = await client.request({
420
+ method: 'PUT',
421
+ path: '/__daemon/settings-write',
422
+ body: { patch: patch.value, ownerUnionId },
423
+ });
424
+ if (r?.status >= 400) {
425
+ return errorToast('card.dashboard.settings.save_failed', { reason: String(r?.body?.error ?? `HTTP ${r?.status}`) }, locale);
426
+ }
427
+ return successResult(r, operatorOpenId, locale, 'card.dashboard.settings.saved', navOrigin);
428
+ }
429
+ catch (e) {
430
+ return errorToast('card.dashboard.settings.save_failed', { reason: e.message }, locale);
431
+ }
432
+ }
433
+ //# sourceMappingURL=settings-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-card.js","sourceRoot":"","sources":["../../../src/im/lark/settings-card.ts"],"names":[],"mappings":"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"}