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.
- package/dist/bot-registry.d.ts +2 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +4 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
- package/dist/cli/dashboard-endpoint.js +9 -3
- package/dist/cli/dashboard-endpoint.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +9 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-command/groups.d.ts +20 -0
- package/dist/core/dashboard-command/groups.d.ts.map +1 -0
- package/dist/core/dashboard-command/groups.js +52 -0
- package/dist/core/dashboard-command/groups.js.map +1 -0
- package/dist/core/dashboard-command/index.d.ts +30 -0
- package/dist/core/dashboard-command/index.d.ts.map +1 -0
- package/dist/core/dashboard-command/index.js +81 -0
- package/dist/core/dashboard-command/index.js.map +1 -0
- package/dist/core/dashboard-command/overview.d.ts +29 -0
- package/dist/core/dashboard-command/overview.d.ts.map +1 -0
- package/dist/core/dashboard-command/overview.js +61 -0
- package/dist/core/dashboard-command/overview.js.map +1 -0
- package/dist/core/dashboard-command/owner-gate.d.ts +41 -0
- package/dist/core/dashboard-command/owner-gate.d.ts.map +1 -0
- package/dist/core/dashboard-command/owner-gate.js +40 -0
- package/dist/core/dashboard-command/owner-gate.js.map +1 -0
- package/dist/core/dashboard-command/schedules.d.ts +20 -0
- package/dist/core/dashboard-command/schedules.d.ts.map +1 -0
- package/dist/core/dashboard-command/schedules.js +47 -0
- package/dist/core/dashboard-command/schedules.js.map +1 -0
- package/dist/core/dashboard-command/sessions.d.ts +22 -0
- package/dist/core/dashboard-command/sessions.d.ts.map +1 -0
- package/dist/core/dashboard-command/sessions.js +43 -0
- package/dist/core/dashboard-command/sessions.js.map +1 -0
- package/dist/core/dashboard-command/settings.d.ts +21 -0
- package/dist/core/dashboard-command/settings.d.ts.map +1 -0
- package/dist/core/dashboard-command/settings.js +55 -0
- package/dist/core/dashboard-command/settings.js.map +1 -0
- package/dist/core/dashboard-command/stub.d.ts +16 -0
- package/dist/core/dashboard-command/stub.d.ts.map +1 -0
- package/dist/core/dashboard-command/stub.js +28 -0
- package/dist/core/dashboard-command/stub.js.map +1 -0
- package/dist/core/dashboard-command/workflows.d.ts +20 -0
- package/dist/core/dashboard-command/workflows.d.ts.map +1 -0
- package/dist/core/dashboard-command/workflows.js +45 -0
- package/dist/core/dashboard-command/workflows.js.map +1 -0
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -1
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/session-create.d.ts +0 -1
- package/dist/core/session-create.d.ts.map +1 -1
- package/dist/core/session-create.js +0 -3
- package/dist/core/session-create.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +3 -2
- package/dist/core/session-manager.js.map +1 -1
- package/dist/daemon-internal-client-wrapper.d.ts +41 -0
- package/dist/daemon-internal-client-wrapper.d.ts.map +1 -0
- package/dist/daemon-internal-client-wrapper.js +65 -0
- package/dist/daemon-internal-client-wrapper.js.map +1 -0
- package/dist/dashboard/aggregator.d.ts +12 -0
- package/dist/dashboard/aggregator.d.ts.map +1 -1
- package/dist/dashboard/aggregator.js +16 -0
- package/dist/dashboard/aggregator.js.map +1 -1
- package/dist/dashboard/auth.d.ts +7 -0
- package/dist/dashboard/auth.d.ts.map +1 -1
- package/dist/dashboard/auth.js +21 -0
- package/dist/dashboard/auth.js.map +1 -1
- package/dist/dashboard/card-model-types.d.ts +50 -0
- package/dist/dashboard/card-model-types.d.ts.map +1 -0
- package/dist/dashboard/card-model-types.js +9 -0
- package/dist/dashboard/card-model-types.js.map +1 -0
- package/dist/dashboard/daemon-internal-api.d.ts +90 -0
- package/dist/dashboard/daemon-internal-api.d.ts.map +1 -0
- package/dist/dashboard/daemon-internal-api.js +534 -0
- package/dist/dashboard/daemon-internal-api.js.map +1 -0
- package/dist/dashboard/daemon-internal-auth.d.ts +124 -0
- package/dist/dashboard/daemon-internal-auth.d.ts.map +1 -0
- package/dist/dashboard/daemon-internal-auth.js +188 -0
- package/dist/dashboard/daemon-internal-auth.js.map +1 -0
- package/dist/dashboard/daemon-internal-client.d.ts +67 -0
- package/dist/dashboard/daemon-internal-client.d.ts.map +1 -0
- package/dist/dashboard/daemon-internal-client.js +157 -0
- package/dist/dashboard/daemon-internal-client.js.map +1 -0
- package/dist/dashboard/dashboard-admins.d.ts +8 -0
- package/dist/dashboard/dashboard-admins.d.ts.map +1 -0
- package/dist/dashboard/dashboard-admins.js +15 -0
- package/dist/dashboard/dashboard-admins.js.map +1 -0
- package/dist/dashboard/federation-spoke-api.d.ts +3 -0
- package/dist/dashboard/federation-spoke-api.d.ts.map +1 -1
- package/dist/dashboard/federation-spoke-api.js +11 -8
- package/dist/dashboard/federation-spoke-api.js.map +1 -1
- package/dist/dashboard/groups-action-helpers.d.ts +69 -0
- package/dist/dashboard/groups-action-helpers.d.ts.map +1 -0
- package/dist/dashboard/groups-action-helpers.js +141 -0
- package/dist/dashboard/groups-action-helpers.js.map +1 -0
- package/dist/dashboard/groups-card-model.d.ts +120 -0
- package/dist/dashboard/groups-card-model.d.ts.map +1 -0
- package/dist/dashboard/groups-card-model.js +175 -0
- package/dist/dashboard/groups-card-model.js.map +1 -0
- package/dist/dashboard/schedule-card-model.d.ts +172 -0
- package/dist/dashboard/schedule-card-model.d.ts.map +1 -0
- package/dist/dashboard/schedule-card-model.js +290 -0
- package/dist/dashboard/schedule-card-model.js.map +1 -0
- package/dist/dashboard/session-card-model.d.ts +83 -0
- package/dist/dashboard/session-card-model.d.ts.map +1 -0
- package/dist/dashboard/session-card-model.js +196 -0
- package/dist/dashboard/session-card-model.js.map +1 -0
- package/dist/dashboard/settings-card-model.d.ts +73 -0
- package/dist/dashboard/settings-card-model.d.ts.map +1 -0
- package/dist/dashboard/settings-card-model.js +94 -0
- package/dist/dashboard/settings-card-model.js.map +1 -0
- package/dist/dashboard/settings-owner-resolver.d.ts +32 -0
- package/dist/dashboard/settings-owner-resolver.d.ts.map +1 -0
- package/dist/dashboard/settings-owner-resolver.js +43 -0
- package/dist/dashboard/settings-owner-resolver.js.map +1 -0
- package/dist/dashboard/settings-write-applier.d.ts +84 -0
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -0
- package/dist/dashboard/settings-write-applier.js +119 -0
- package/dist/dashboard/settings-write-applier.js.map +1 -0
- package/dist/dashboard/workflow-api.d.ts.map +1 -1
- package/dist/dashboard/workflow-api.js +38 -119
- package/dist/dashboard/workflow-api.js.map +1 -1
- package/dist/dashboard/workflow-card-model.d.ts +127 -0
- package/dist/dashboard/workflow-card-model.d.ts.map +1 -0
- package/dist/dashboard/workflow-card-model.js +186 -0
- package/dist/dashboard/workflow-card-model.js.map +1 -0
- package/dist/dashboard/workflows-action-helpers.d.ts +105 -0
- package/dist/dashboard/workflows-action-helpers.d.ts.map +1 -0
- package/dist/dashboard/workflows-action-helpers.js +196 -0
- package/dist/dashboard/workflows-action-helpers.js.map +1 -0
- package/dist/dashboard.js +196 -271
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +266 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +266 -0
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +2 -0
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +2 -1
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts +54 -2
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +127 -1
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +22 -0
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/groups-card.d.ts +90 -0
- package/dist/im/lark/groups-card.d.ts.map +1 -0
- package/dist/im/lark/groups-card.js +832 -0
- package/dist/im/lark/groups-card.js.map +1 -0
- package/dist/im/lark/overview-card.d.ts +101 -0
- package/dist/im/lark/overview-card.d.ts.map +1 -0
- package/dist/im/lark/overview-card.js +475 -0
- package/dist/im/lark/overview-card.js.map +1 -0
- package/dist/im/lark/schedules-card.d.ts +96 -0
- package/dist/im/lark/schedules-card.d.ts.map +1 -0
- package/dist/im/lark/schedules-card.js +892 -0
- package/dist/im/lark/schedules-card.js.map +1 -0
- package/dist/im/lark/sessions-card.d.ts +117 -0
- package/dist/im/lark/sessions-card.d.ts.map +1 -0
- package/dist/im/lark/sessions-card.js +870 -0
- package/dist/im/lark/sessions-card.js.map +1 -0
- package/dist/im/lark/settings-card.d.ts +125 -0
- package/dist/im/lark/settings-card.d.ts.map +1 -0
- package/dist/im/lark/settings-card.js +433 -0
- package/dist/im/lark/settings-card.js.map +1 -0
- package/dist/im/lark/workflows-card.d.ts +102 -0
- package/dist/im/lark/workflows-card.d.ts.map +1 -0
- package/dist/im/lark/workflows-card.js +737 -0
- package/dist/im/lark/workflows-card.js.map +1 -0
- 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;
|
|
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
|
-
|
|
136
|
-
|
|
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
|
|
151
|
-
|
|
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
|
|
234
|
-
//
|
|
235
|
-
//
|
|
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
|
-
|
|
241
|
-
|
|
242
|
-
|
|
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
|
-
|
|
344
|
-
|
|
345
|
-
|
|
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":"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"}
|
|
@@ -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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"}
|