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,84 @@
1
+ /**
2
+ * Settings write applier — single source of truth for what
3
+ * `PUT /api/settings` (`dashboard.ts:460-498`) used to do inline.
4
+ *
5
+ * Lives in `src/dashboard/` so both:
6
+ * - the existing browser-facing `PUT /api/settings` route
7
+ * - the new HMAC-gated `PUT /__daemon/settings-write` route
8
+ * share the same validation + persistence path. Behaviour is byte-equivalent
9
+ * to the original inline implementation; the only change is that all IO is
10
+ * funnelled through `deps`, so tests don't touch `~/.botmux`.
11
+ */
12
+ import type { DashboardGlobalConfig, GlobalConfig, MaintenanceConfig } from '../global-config.js';
13
+ /**
14
+ * Snapshot returned by `resolveDashboardSettings` — mirrors the existing
15
+ * `ResolvedDashboardSettings` interface in `dashboard.ts:69-80`. We redeclare
16
+ * it locally rather than reaching across that boundary because the applier
17
+ * doesn't know how the host computes the snapshot (it just calls a closure).
18
+ */
19
+ export interface ResolvedDashboardSettingsView {
20
+ publicReadOnly: boolean;
21
+ openTerminalInFeishu: boolean;
22
+ maintenance: MaintenanceConfig;
23
+ localDevInstall: boolean;
24
+ }
25
+ export type ParseMaintenanceResult = {
26
+ ok: true;
27
+ patch: MaintenanceConfig;
28
+ } | {
29
+ ok: false;
30
+ error: string;
31
+ };
32
+ /** All IO this helper needs — injected so tests use mocks, production wires real impls. */
33
+ export interface SettingsWriteApplierDeps {
34
+ /** Snapshot of `~/.botmux/config.json`. Used to look up the persisted autoUpdate state when the incoming patch doesn't change it. */
35
+ readGlobalConfig: () => GlobalConfig;
36
+ /** Atomic write of dashboard-level fields (publicReadOnly / openTerminalInFeishu). */
37
+ mergeDashboardConfig: (patch: DashboardGlobalConfig) => DashboardGlobalConfig;
38
+ /** Atomic write of global-level fields (repoPickerMode). */
39
+ mergeGlobalConfig: (patch: Partial<GlobalConfig>) => void;
40
+ /** Atomic write of maintenance-level fields (autoUpdate / autoRestart). */
41
+ mergeMaintenanceConfig: (patch: MaintenanceConfig) => MaintenanceConfig;
42
+ /** Set global UI locale (null = clear). Fans out to daemons via IPC. */
43
+ setGlobalLocale: (locale: 'zh' | 'en' | null) => void;
44
+ /** Type-strict body validator for the maintenance segment. */
45
+ parseMaintenancePatch: (body: unknown) => ParseMaintenanceResult;
46
+ /** True iff the current install is a source-checkout (auto-update unavailable). */
47
+ isLocalDevInstall: () => boolean;
48
+ /** Returns the post-merge view the response body echoes back to the caller. */
49
+ resolveDashboardSettings: () => ResolvedDashboardSettingsView;
50
+ /** Validate locale string. */
51
+ isLocale: (v: unknown) => v is 'zh' | 'en';
52
+ /** Fan out locale reload to all online daemons. */
53
+ reloadLocaleOnAllDaemons?: () => Promise<void>;
54
+ }
55
+ /** Production deps wiring — call once per dashboard process. */
56
+ export declare function defaultSettingsWriteApplierDeps(resolveDashboardSettings: () => ResolvedDashboardSettingsView, reloadLocaleOnAllDaemons?: () => Promise<void>): SettingsWriteApplierDeps;
57
+ export type ApplySettingsWriteResult = {
58
+ ok: true;
59
+ settings: ResolvedDashboardSettingsView;
60
+ } | {
61
+ ok: false;
62
+ error: ApplySettingsWriteError;
63
+ };
64
+ /**
65
+ * Discrete error codes — every one of these MUST match the strings the old
66
+ * inline `PUT /api/settings` route returned, so callers (browser SPA, tests,
67
+ * PR2 Route B) see the same wire vocabulary they had before.
68
+ */
69
+ export type ApplySettingsWriteError = 'invalid_publicReadOnly' | 'invalid_openTerminalInFeishu' | 'invalid_repoPickerMode' | 'invalid_whiteboard' | 'invalid_whiteboard_enabled' | 'invalid_lang' | 'invalid_maintenance' | 'local_dev_no_autoupdate' | 'autoupdate_required' | 'empty_patch' | string;
70
+ /**
71
+ * Apply a parsed (object) settings patch. Returns success with the post-merge
72
+ * snapshot, or an error code string on validation failure.
73
+ *
74
+ * Behaviour mirrors `dashboard.ts:460-498` exactly:
75
+ * - Validates `publicReadOnly` / `openTerminalInFeishu` are booleans.
76
+ * - Validates `repoPickerMode` is 'all' | 'repos'.
77
+ * - Validates `lang` is a valid locale or null.
78
+ * - Defers maintenance validation to `parseMaintenancePatch` (returns its error verbatim).
79
+ * - Forbids enabling `autoUpdate` on a local-dev install.
80
+ * - Forbids enabling `autoRestart` unless `autoUpdate` is (or is being) enabled.
81
+ * - Returns `empty_patch` when no fields changed.
82
+ */
83
+ export declare function applySettingsWrite(body: unknown, deps: SettingsWriteApplierDeps): Promise<ApplySettingsWriteResult>;
84
+ //# sourceMappingURL=settings-write-applier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-write-applier.d.ts","sourceRoot":"","sources":["../../src/dashboard/settings-write-applier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAY7B;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC,2FAA2F;AAC3F,MAAM,WAAW,wBAAwB;IACvC,qIAAqI;IACrI,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,sFAAsF;IACtF,oBAAoB,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,qBAAqB,CAAC;IAC9E,4DAA4D;IAC5D,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC1D,2EAA2E;IAC3E,sBAAsB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;IACxE,wEAAwE;IACxE,eAAe,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,8DAA8D;IAC9D,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,sBAAsB,CAAC;IACjE,mFAAmF;IACnF,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,+EAA+E;IAC/E,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;IAC9D,8BAA8B;IAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC;IAC3C,mDAAmD;IACnD,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,gEAAgE;AAChE,wBAAgB,+BAA+B,CAC7C,wBAAwB,EAAE,MAAM,6BAA6B,EAC7D,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC7C,wBAAwB,CAa1B;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,6BAA6B,CAAA;CAAE,GACrD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,8BAA8B,GAC9B,wBAAwB,GACxB,oBAAoB,GACpB,4BAA4B,GAC5B,cAAc,GACd,qBAAqB,GACrB,yBAAyB,GACzB,qBAAqB,GACrB,aAAa,GACb,MAAM,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAgFnC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Settings write applier — single source of truth for what
3
+ * `PUT /api/settings` (`dashboard.ts:460-498`) used to do inline.
4
+ *
5
+ * Lives in `src/dashboard/` so both:
6
+ * - the existing browser-facing `PUT /api/settings` route
7
+ * - the new HMAC-gated `PUT /__daemon/settings-write` route
8
+ * share the same validation + persistence path. Behaviour is byte-equivalent
9
+ * to the original inline implementation; the only change is that all IO is
10
+ * funnelled through `deps`, so tests don't touch `~/.botmux`.
11
+ */
12
+ import { mergeDashboardConfig, mergeGlobalConfig, mergeMaintenanceConfig, parseMaintenancePatch, readGlobalConfig, setGlobalLocale, } from '../global-config.js';
13
+ import { isLocale } from '../i18n/types.js';
14
+ import { isLocalDevInstall } from '../utils/install-info.js';
15
+ /** Production deps wiring — call once per dashboard process. */
16
+ export function defaultSettingsWriteApplierDeps(resolveDashboardSettings, reloadLocaleOnAllDaemons) {
17
+ return {
18
+ readGlobalConfig,
19
+ mergeDashboardConfig,
20
+ mergeGlobalConfig,
21
+ mergeMaintenanceConfig,
22
+ setGlobalLocale,
23
+ parseMaintenancePatch,
24
+ isLocalDevInstall,
25
+ resolveDashboardSettings,
26
+ isLocale,
27
+ reloadLocaleOnAllDaemons,
28
+ };
29
+ }
30
+ /**
31
+ * Apply a parsed (object) settings patch. Returns success with the post-merge
32
+ * snapshot, or an error code string on validation failure.
33
+ *
34
+ * Behaviour mirrors `dashboard.ts:460-498` exactly:
35
+ * - Validates `publicReadOnly` / `openTerminalInFeishu` are booleans.
36
+ * - Validates `repoPickerMode` is 'all' | 'repos'.
37
+ * - Validates `lang` is a valid locale or null.
38
+ * - Defers maintenance validation to `parseMaintenancePatch` (returns its error verbatim).
39
+ * - Forbids enabling `autoUpdate` on a local-dev install.
40
+ * - Forbids enabling `autoRestart` unless `autoUpdate` is (or is being) enabled.
41
+ * - Returns `empty_patch` when no fields changed.
42
+ */
43
+ export async function applySettingsWrite(body, deps) {
44
+ const obj = body && typeof body === 'object' && !Array.isArray(body)
45
+ ? body
46
+ : {};
47
+ const patch = {};
48
+ if ('publicReadOnly' in obj) {
49
+ if (typeof obj.publicReadOnly !== 'boolean') {
50
+ return { ok: false, error: 'invalid_publicReadOnly' };
51
+ }
52
+ patch.publicReadOnly = obj.publicReadOnly;
53
+ }
54
+ if ('openTerminalInFeishu' in obj) {
55
+ if (typeof obj.openTerminalInFeishu !== 'boolean') {
56
+ return { ok: false, error: 'invalid_openTerminalInFeishu' };
57
+ }
58
+ patch.openTerminalInFeishu = obj.openTerminalInFeishu;
59
+ }
60
+ let touched = false;
61
+ if (Object.keys(patch).length > 0) {
62
+ deps.mergeDashboardConfig(patch);
63
+ touched = true;
64
+ }
65
+ if ('repoPickerMode' in obj) {
66
+ const v = obj.repoPickerMode;
67
+ if (v !== 'all' && v !== 'repos') {
68
+ return { ok: false, error: 'invalid_repoPickerMode' };
69
+ }
70
+ deps.mergeGlobalConfig({ repoPickerMode: v });
71
+ touched = true;
72
+ }
73
+ if ('whiteboard' in obj) {
74
+ const raw = obj.whiteboard;
75
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
76
+ return { ok: false, error: 'invalid_whiteboard' };
77
+ }
78
+ const wb = raw;
79
+ if (typeof wb.enabled !== 'boolean') {
80
+ return { ok: false, error: 'invalid_whiteboard_enabled' };
81
+ }
82
+ deps.mergeGlobalConfig({ whiteboard: { enabled: wb.enabled } });
83
+ touched = true;
84
+ }
85
+ if ('maintenance' in obj) {
86
+ const r = deps.parseMaintenancePatch(obj.maintenance);
87
+ if (!r.ok)
88
+ return { ok: false, error: r.error };
89
+ // Auto-update is npm-global only; refuse enabling it on a source checkout.
90
+ if (r.patch.autoUpdate?.enabled && deps.isLocalDevInstall()) {
91
+ return { ok: false, error: 'local_dev_no_autoupdate' };
92
+ }
93
+ // Auto-restart only applies an auto-update — it's meaningless without it.
94
+ if (r.patch.autoRestart?.enabled) {
95
+ const autoUpdateOn = r.patch.autoUpdate?.enabled
96
+ ?? deps.readGlobalConfig().maintenance?.autoUpdate?.enabled
97
+ ?? false;
98
+ if (!autoUpdateOn)
99
+ return { ok: false, error: 'autoupdate_required' };
100
+ }
101
+ deps.mergeMaintenanceConfig(r.patch);
102
+ touched = true;
103
+ }
104
+ if ('lang' in obj) {
105
+ const v = obj.lang;
106
+ if (v !== null && !deps.isLocale(v)) {
107
+ return { ok: false, error: 'invalid_lang' };
108
+ }
109
+ deps.setGlobalLocale(v === null ? null : v);
110
+ if (deps.reloadLocaleOnAllDaemons) {
111
+ await deps.reloadLocaleOnAllDaemons();
112
+ }
113
+ touched = true;
114
+ }
115
+ if (!touched)
116
+ return { ok: false, error: 'empty_patch' };
117
+ return { ok: true, settings: deps.resolveDashboardSettings() };
118
+ }
119
+ //# sourceMappingURL=settings-write-applier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-write-applier.js","sourceRoot":"","sources":["../../src/dashboard/settings-write-applier.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-api.d.ts","sourceRoot":"","sources":["../../src/dashboard/workflow-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAcjC,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACxD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;CACxF,CAAC;AAEF,wBAAgB,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAGhF;AAmBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,eAAe,EACrB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,OAAO,CAAC,CAmYlB"}
1
+ {"version":3,"file":"workflow-api.d.ts","sourceRoot":"","sources":["../../src/dashboard/workflow-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAuBjC,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACxD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;CACxF,CAAC;AAEF,wBAAgB,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAGhF;AAgCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,eAAe,EACrB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,OAAO,CAAC,CAgSlB"}
@@ -1,10 +1,23 @@
1
1
  import { createReadStream, promises as fs } from 'node:fs';
2
2
  import { isValidWorkflowId, listWorkflowDefinitions as defaultListWorkflowDefinitions, loadCatalogDefinition as defaultLoadCatalogDefinition, } from '../workflows/catalog.js';
3
3
  import { listRuns, readRunSnapshot, readEventWindow, isValidRunId, isValidPathSegment, isPathInsideDir, attemptTerminalLogPath, attemptPtyLogPath, scrubSnapshotForUnauthed, TERMINAL_RUN_STATUSES, } from '../workflows/ops-projection.js';
4
+ import { getRunSnapshot as getRunSnapshotHelper, listWorkflowRuns, runApproveReject, runCancel, } from './workflows-action-helpers.js';
4
5
  export function jsonRes(res, status, body) {
5
6
  res.writeHead(status, { 'content-type': 'application/json' });
6
7
  res.end(JSON.stringify(body));
7
8
  }
9
+ /** Render a HandlerResult through res. Tolerates string bodies (helper may return raw upstream text). */
10
+ function writeHandlerResult(res, result) {
11
+ const headers = { 'content-type': 'application/json', ...(result.headers ?? {}) };
12
+ res.writeHead(result.status, headers);
13
+ res.end(typeof result.body === 'string' ? result.body : JSON.stringify(result.body));
14
+ }
15
+ async function readBodyString(req) {
16
+ const chunks = [];
17
+ for await (const c of req)
18
+ chunks.push(c);
19
+ return Buffer.concat(chunks).toString('utf8');
20
+ }
8
21
  async function readJsonBody(req) {
9
22
  const chunks = [];
10
23
  for await (const c of req)
@@ -126,36 +139,32 @@ export async function handleWorkflowApi(req, res, url, deps, authed = false) {
126
139
  res.end(await upstream.text());
127
140
  return true;
128
141
  }
142
+ // Shared deps for the workflow-runs action helpers — these handlers and the
143
+ // PR2 C6 HMAC-gated `/__daemon/workflows-runs/*` route both go through the
144
+ // same helpers so response shapes / error codes stay identical.
145
+ const wfActionDeps = {
146
+ runsDir: deps.runsDir,
147
+ proxyToDaemon: deps.proxyToDaemon,
148
+ listRuns,
149
+ readRunSnapshot,
150
+ scrubSnapshotForUnauthed,
151
+ TERMINAL_RUN_STATUSES,
152
+ isValidRunId,
153
+ };
129
154
  if (req.method === 'GET' && url.pathname === '/api/workflows/runs') {
130
155
  const all = url.searchParams.get('all') === '1';
131
156
  const statusParam = url.searchParams.get('status');
132
157
  const statuses = statusParam
133
158
  ? new Set(statusParam.split(',').map(s => s.trim()).filter(Boolean))
134
159
  : undefined;
135
- try {
136
- const rows = await listRuns(deps.runsDir, {
137
- all,
138
- statuses,
139
- includeBinding: true,
140
- });
141
- jsonRes(res, 200, { runs: rows });
142
- }
143
- catch (e) {
144
- jsonRes(res, 500, { error: 'listRuns_failed', message: e?.message ?? String(e) });
145
- }
160
+ const result = await listWorkflowRuns({ all, statuses }, wfActionDeps);
161
+ writeHandlerResult(res, result);
146
162
  return true;
147
163
  }
148
164
  if (req.method === 'GET' && (m = url.pathname.match(/^\/api\/workflows\/runs\/([^/]+)\/snapshot$/))) {
149
165
  const runId = decodeURIComponent(m[1]);
150
- const snap = await readRunSnapshot(deps.runsDir, runId);
151
- if (!snap)
152
- jsonRes(res, 404, { error: 'unknown_run' });
153
- // Public-read endpoint — but `io.log.text` carries the last 64 KiB of
154
- // `terminal.log` (subagent worker stdout/stderr), which can contain
155
- // env-var dumps, API key error responses, etc. Strip when unauth'd;
156
- // a logged-in dashboard still gets the full view.
157
- else
158
- jsonRes(res, 200, authed ? snap : scrubSnapshotForUnauthed(snap));
166
+ const result = await getRunSnapshotHelper(runId, authed, wfActionDeps);
167
+ writeHandlerResult(res, result);
159
168
  return true;
160
169
  }
161
170
  if (req.method === 'GET' && (m = url.pathname.match(/^\/api\/workflows\/runs\/([^/]+)\/events$/))) {
@@ -230,63 +239,16 @@ export async function handleWorkflowApi(req, res, url, deps, authed = false) {
230
239
  return true;
231
240
  }
232
241
  // approve / reject share the same shape: { comment? } body, route to the
233
- // owner daemon via chat-binding, daemon picks the unique dangling
234
- // human-gate wait and calls resolveWait(). See `resolveDashboardWait` in
235
- // daemon.ts for the error matrix.
242
+ // owner daemon via chat-binding. See
243
+ // `dashboard/workflows-action-helpers.ts:runApproveReject` for the
244
+ // alreadyTerminal / needs_lark_or_cli / proxy branches.
236
245
  m = url.pathname.match(/^\/api\/workflows\/runs\/([^/]+)\/(approve|reject)$/);
237
246
  if (req.method === 'POST' && m) {
238
247
  const runId = decodeURIComponent(m[1]);
239
248
  const action = m[2];
240
- if (!isValidRunId(runId)) {
241
- jsonRes(res, 400, { ok: false, error: 'bad_run_id' });
242
- return true;
243
- }
244
- let body;
245
- try {
246
- body = await readJsonBody(req);
247
- }
248
- catch {
249
- jsonRes(res, 400, { ok: false, error: 'bad_json' });
250
- return true;
251
- }
252
- const comment = typeof body.comment === 'string' && body.comment.trim()
253
- ? body.comment.trim()
254
- : undefined;
255
- const snap = await readRunSnapshot(deps.runsDir, runId);
256
- if (!snap) {
257
- jsonRes(res, 404, { ok: false, error: 'unknown_run' });
258
- return true;
259
- }
260
- if (TERMINAL_RUN_STATUSES.has(snap.run.status)) {
261
- jsonRes(res, 200, {
262
- ok: true,
263
- runId,
264
- resolution: action === 'approve' ? 'approved' : 'rejected',
265
- activityId: '',
266
- attemptId: '',
267
- resolvedAt: snap.updatedAt,
268
- lastSeq: snap.lastSeq,
269
- alreadyTerminal: true,
270
- });
271
- return true;
272
- }
273
- const owner = snap.chatBinding?.larkAppId;
274
- if (!owner) {
275
- jsonRes(res, 409, {
276
- ok: false,
277
- error: 'needs_lark_or_cli',
278
- hint: `This run has no chat-binding owner; dashboard approval requires ` +
279
- `the owning daemon. Use the Lark approval card for now.`,
280
- });
281
- return true;
282
- }
283
- const upstream = await deps.proxyToDaemon(owner, `/api/workflows/runs/${encodeURIComponent(runId)}/${action}`, {
284
- method: 'POST',
285
- headers: { 'content-type': 'application/json' },
286
- body: JSON.stringify({ comment }),
287
- });
288
- res.writeHead(upstream.status, { 'content-type': 'application/json' });
289
- res.end(await upstream.text());
249
+ const bodyRaw = await readBodyString(req);
250
+ const result = await runApproveReject(runId, action, bodyRaw, wfActionDeps);
251
+ writeHandlerResult(res, result);
290
252
  return true;
291
253
  }
292
254
  m = url.pathname.match(/^\/api\/workflows\/runs\/([^/]+)\/attempts\/([^/]+)\/([^/]+)\/resume(\/end)?$/);
@@ -340,52 +302,9 @@ export async function handleWorkflowApi(req, res, url, deps, authed = false) {
340
302
  }
341
303
  if (req.method === 'POST' && (m = url.pathname.match(/^\/api\/workflows\/runs\/([^/]+)\/cancel$/))) {
342
304
  const runId = decodeURIComponent(m[1]);
343
- if (!isValidRunId(runId)) {
344
- jsonRes(res, 400, { ok: false, error: 'bad_run_id' });
345
- return true;
346
- }
347
- let body;
348
- try {
349
- body = await readJsonBody(req);
350
- }
351
- catch {
352
- jsonRes(res, 400, { ok: false, error: 'bad_json' });
353
- return true;
354
- }
355
- const reason = typeof body.reason === 'string' && body.reason.trim()
356
- ? body.reason.trim()
357
- : 'cancelled via dashboard';
358
- const snap = await readRunSnapshot(deps.runsDir, runId);
359
- if (!snap) {
360
- jsonRes(res, 404, { ok: false, error: 'unknown_run' });
361
- return true;
362
- }
363
- if (TERMINAL_RUN_STATUSES.has(snap.run.status)) {
364
- jsonRes(res, 200, {
365
- ok: true,
366
- runId,
367
- status: snap.run.status,
368
- alreadyTerminal: true,
369
- lastSeq: snap.lastSeq,
370
- });
371
- return true;
372
- }
373
- const owner = snap.chatBinding?.larkAppId;
374
- if (!owner) {
375
- jsonRes(res, 409, {
376
- ok: false,
377
- error: 'needs_cli_cancel',
378
- hint: `This run has no chat-binding owner; use 'botmux workflow cancel ${runId}' instead.`,
379
- });
380
- return true;
381
- }
382
- const upstream = await deps.proxyToDaemon(owner, `/api/workflows/runs/${encodeURIComponent(runId)}/cancel`, {
383
- method: 'POST',
384
- headers: { 'content-type': 'application/json' },
385
- body: JSON.stringify({ reason }),
386
- });
387
- res.writeHead(upstream.status, { 'content-type': 'application/json' });
388
- res.end(await upstream.text());
305
+ const bodyRaw = await readBodyString(req);
306
+ const result = await runCancel(runId, bodyRaw, wfActionDeps);
307
+ writeHandlerResult(res, result);
389
308
  return true;
390
309
  }
391
310
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-api.js","sourceRoot":"","sources":["../../src/dashboard/workflow-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-api.js","sourceRoot":"","sources":["../../src/dashboard/workflow-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAG3D,OAAO,EACL,iBAAiB,EACjB,uBAAuB,IAAI,8BAA8B,EACzD,qBAAqB,IAAI,4BAA4B,GAGtD,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,GAEtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,IAAI,oBAAoB,EACtC,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GAGV,MAAM,+BAA+B,CAAC;AAkBvC,MAAM,UAAU,OAAO,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa;IACxE,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,yGAAyG;AACzG,SAAS,kBAAkB,CAAC,GAAmB,EAAE,MAAqB;IACpE,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IAClF,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,GAAG,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAoB;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG;QAAE,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,YAAY,CAAc,GAAoB;IAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG;QAAE,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAO,CAAC;IACxC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAY;IAEZ,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,CAAC,GAAG,GAAgD,CAAC;IAC3D,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACvE,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAoB,EACpB,GAAmB,EACnB,GAAQ,EACR,IAAqB,EACrB,SAAkB,KAAK;IAEvB,IAAI,CAA0B,CAAC;IAE/B,8EAA8E;IAC9E,oEAAoE;IACpE,8EAA8E;IAC9E,oEAAoE;IACpE,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,IAAI,8BAA8B,CAAC;IACvF,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,IAAI,4BAA4B,CAAC;IAElF,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,4BAA4B,EAAE,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;gBAChB,KAAK,EAAE,yBAAyB;gBAChC,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,GAAG,CAAC,MAAM,KAAK,KAAK;QACpB,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,EACpE,CAAC;QACD,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;gBAChB,KAAK,EAAE,wBAAwB;gBAC/B,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,GAAG,CAAC,MAAM,KAAK,MAAM;QACrB,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,EACzE,CAAC;QACD,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAiD,CAAC;QACtD,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,YAAY,CAA8C,GAAG,CAAC,CAAC;QAC9E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;gBAChB,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EACF,0EAA0E;oBAC1E,yEAAyE;oBACzE,6DAA6D;aAChE,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IACE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAC/B,IAAI,CAAC,MAAM,KAAK,IAAI;gBACpB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1B,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,WAAW,CAAC,SAAS,EACrB,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAC1D;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;SAC3D,CACF,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACvE,GAAG,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,YAAY,GAAwC;QACxD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,QAAQ;QACR,eAAe;QACf,wBAAwB;QACxB,qBAAqB;QACrB,YAAY;KACb,CAAC;IAEF,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,qBAAqB,EAAE,CAAC;QACnE,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpE,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;QACvE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACvE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,EAAE,CAAC;QAClG,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,IAAY,EAAsB,EAAE;YAClD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,SAAS,CAAC;YACjC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5C,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE;YACxD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;YAC9B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC;YAC5B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;;YACpD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,0DAA0D;IAC1D,wEAAwE;IACxE,qEAAqE;IACrE,qDAAqD;IACrD,+BAA+B;IAC/B,4EAA4E;IAC5E,4EAA4E;IAC5E,mEAAmE;IACnE,2EAA2E;IAC3E,EAAE;IACF,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,+CAA+C;IAC/C,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CACpB,kFAAkF,CACnF,CAAC;IACF,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;YACpB,CAAC,kBAAkB,CAAC,UAAU,CAAC;YAC/B,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAC9B,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,yEAAyE;QACzE,qEAAqE;QACrE,+CAA+C;QAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,MAAM,GAAmB,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,KAAK,KAAK;YAC9B,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC;YAC/D,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YAC5C,wEAAwE;YACxE,mEAAmE;YACnE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE;YAC3C,KAAK;YACL,UAAU;YACV,SAAS;YACT,cAAc,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;YACjD,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG;SACnD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yEAAyE;IACzE,qCAAqC;IACrC,mEAAmE;IACnE,wDAAwD;IACxD,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC9E,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAyB,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5E,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CACpB,+EAA+E,CAChF,CAAC;IACF,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;QAC5B,IACE,CAAC,YAAY,CAAC,KAAK,CAAC;YACpB,CAAC,kBAAkB,CAAC,UAAU,CAAC;YAC/B,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAC9B,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,GAAyB,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,YAAY,CAAuB,GAAG,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;gBAChB,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,2FAA2F;aAClG,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,KAAK,EACL,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAChD,aAAa,kBAAkB,CAAC,UAAU,CAAC,EAAE;YAC7C,IAAI,kBAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAChE;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EACJ,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;oBACnD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;oBACpB,CAAC,CAAC,SAAS;aAChB,CAAC;SACH,CACF,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACvE,GAAG,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,EAAE,CAAC;QACnG,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC7D,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACpD,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAChD,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,KAAK,UAAU,wBAAwB,CACrC,GAAmB,EACnB,OAAe,EACf,IAMC;IAED,IAAI,IAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;YAChB,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;SACrC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAC1E,MAAM,SAAS,GAAG,aAAa;QAC7B,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;IAE5B,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,aAAa;YAC3B,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,2BAA2B;QAC/B,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC;QACtC,eAAe,EAAE,UAAU;QAC3B,oBAAoB,EAAE,MAAM,CAAC,UAAU,CAAC;QACxC,uBAAuB,EAAE,MAAM,CAAC,YAAY,CAAC;QAC7C,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;KAC5C,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,MAAM;aAC/E,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACrC,OAAO,CAAC,qBAAqB,CAAC,GAAG,yBAAyB,QAAQ,GAAG,CAAC;IACxE,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE5B,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAkB;IAC1C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Workflow card model (PR1) — pure projection of workflow run rows and run
3
+ * snapshots into list / detail DTOs. Self-contained: no imports from
4
+ * `src/workflows/`, only `card-model-types.ts` shared types.
5
+ *
6
+ * v1 scope: cancel / approve / reject. Attempt-level resume is NOT exposed.
7
+ */
8
+ import type { ButtonState, PaginationMeta, StatusDot } from './card-model-types.js';
9
+ /** Mirrors `src/workflows/events/replay.ts:44-50 RunStatus` — redeclared locally. */
10
+ export type WorkflowRunStatus = 'pending' | 'running' | 'waiting' | 'succeeded' | 'failed' | 'cancelled';
11
+ export type WorkflowChipStatus = WorkflowRunStatus | 'all';
12
+ /** Outgoing message routing context attached to each run. */
13
+ export interface ChatBinding {
14
+ chatId: string;
15
+ larkAppId: string;
16
+ rootMessageId?: string;
17
+ }
18
+ /** Minimum row shape — adapter converts ops-projection RunRow into this. */
19
+ export interface WorkflowRunInput {
20
+ runId: string;
21
+ workflowId?: string;
22
+ status: WorkflowRunStatus;
23
+ /** ms epoch — first activity timestamp. */
24
+ startedAt?: number;
25
+ /** ms epoch — last activity timestamp. */
26
+ updatedAt?: number;
27
+ /** ms epoch — terminal-state timestamp. */
28
+ finishedAt?: number;
29
+ nodesDone?: number;
30
+ nodesTotal?: number;
31
+ chatBinding?: ChatBinding;
32
+ }
33
+ export interface WorkflowRunDetailInput extends WorkflowRunInput {
34
+ nodes?: ReadonlyArray<{
35
+ nodeId: string;
36
+ name?: string;
37
+ status?: string;
38
+ }>;
39
+ }
40
+ /** One progress bar item with a 1-based index for display. */
41
+ export interface NodeProgressItem {
42
+ index: number;
43
+ nodeId: string;
44
+ name?: string;
45
+ status?: string;
46
+ }
47
+ /** Status-dot alias for clarity at call sites. */
48
+ export type RunStatusDot = StatusDot;
49
+ /** Action availability for v1's three write paths (Cancel / Approve / Reject). */
50
+ export interface WorkflowActionAvailability {
51
+ cancel: ButtonState;
52
+ approve: ButtonState;
53
+ reject: ButtonState;
54
+ }
55
+ export interface WorkflowRunRowDto {
56
+ runId: string;
57
+ workflowId?: string;
58
+ status: WorkflowRunStatus;
59
+ dot: RunStatusDot;
60
+ /** '第 N/M 步' when both totals exist; '' otherwise. */
61
+ progressLabel: string;
62
+ startedAtMs?: number;
63
+ chatBinding?: ChatBinding;
64
+ actions: WorkflowActionAvailability;
65
+ raw: WorkflowRunInput;
66
+ }
67
+ export interface WorkflowRunDetailDto {
68
+ runId: string;
69
+ workflowId?: string;
70
+ status: WorkflowRunStatus;
71
+ dot: RunStatusDot;
72
+ startedAtMs?: number;
73
+ updatedAtMs?: number;
74
+ finishedAtMs?: number;
75
+ elapsedMs: number;
76
+ elapsedLabel: string;
77
+ progressLabel: string;
78
+ nodes: NodeProgressItem[];
79
+ chatBinding?: ChatBinding;
80
+ actions: WorkflowActionAvailability;
81
+ raw: WorkflowRunDetailInput;
82
+ }
83
+ export interface WorkflowChipCounts {
84
+ all: number;
85
+ pending: number;
86
+ running: number;
87
+ waiting: number;
88
+ succeeded: number;
89
+ failed: number;
90
+ cancelled: number;
91
+ }
92
+ export interface WorkflowFilterQuery {
93
+ search?: string;
94
+ status?: WorkflowChipStatus;
95
+ page?: number;
96
+ pageSize?: number;
97
+ }
98
+ export interface WorkflowListPage {
99
+ rows: WorkflowRunRowDto[];
100
+ meta: PaginationMeta;
101
+ chipCounts: WorkflowChipCounts;
102
+ }
103
+ export interface ProjectRunCtx {
104
+ nowMs: number;
105
+ }
106
+ /** Map a RunStatus to its UI dot (tone + pulse + i18n label key). Pure, deterministic. */
107
+ export declare function statusToDot(status: WorkflowRunStatus | string): RunStatusDot;
108
+ /** Format an elapsed-ms span into a short label, e.g. '12s' / '3m 4s' / '1h 2m' / '2d 3h'. */
109
+ export declare function formatElapsedMs(elapsedMs: number): string;
110
+ /**
111
+ * Compute Cancel/Approve/Reject button availability.
112
+ * v1: Approve+Reject only when status==='waiting'; Cancel when non-terminal.
113
+ */
114
+ export declare function computeActionAvailability(status: WorkflowRunStatus): WorkflowActionAvailability;
115
+ /** Build one list-row DTO from a run input. */
116
+ export declare function projectRunRowDto(input: WorkflowRunInput): WorkflowRunRowDto;
117
+ /** Build the detail DTO including elapsedMs and a 1-based NodeProgressItem list. */
118
+ export declare function projectRunDetailDto(input: WorkflowRunDetailInput, ctx: ProjectRunCtx): WorkflowRunDetailDto;
119
+ /**
120
+ * Pipeline: search → chipCounts → status filter → paginate → row mapping.
121
+ *
122
+ * `chipCounts` is computed AFTER the search filter but BEFORE the status
123
+ * chip filter, so users get accurate counts per status under their current
124
+ * search context.
125
+ */
126
+ export declare function filterAndPaginateRuns(runs: ReadonlyArray<WorkflowRunInput>, query: WorkflowFilterQuery): WorkflowListPage;
127
+ //# sourceMappingURL=workflow-card-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-card-model.d.ts","sourceRoot":"","sources":["../../src/dashboard/workflow-card-model.ts"],"names":[],"mappings":"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"}