@cat-factory/orchestration 0.122.0 → 0.123.1
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/notifications/NotificationService.d.ts +17 -1
- package/dist/modules/notifications/NotificationService.d.ts.map +1 -1
- package/dist/modules/notifications/NotificationService.js +34 -1
- package/dist/modules/notifications/NotificationService.js.map +1 -1
- package/dist/modules/observability/platform-health.logic.d.ts +49 -0
- package/dist/modules/observability/platform-health.logic.d.ts.map +1 -0
- package/dist/modules/observability/platform-health.logic.js +83 -0
- package/dist/modules/observability/platform-health.logic.js.map +1 -0
- package/package.json +11 -11
package/dist/index.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ export { SearchQueryObservabilityService, type SearchQueryObservabilityServiceDe
|
|
|
36
36
|
export { PlatformObservabilityService, type PlatformObservabilityServiceDependencies, } from './modules/observability/PlatformObservabilityService.js';
|
|
37
37
|
export { PLATFORM_WINDOWS, buildTrend, summarizeOutcomes, } from './modules/observability/platform-observability.logic.js';
|
|
38
38
|
export { sweepPlatformMetrics, distinctAccountIds, type PlatformMetricsSink, type PlatformMetricsSweepDeps, type PlatformMetricsSweepLogger, } from './modules/observability/platformMetricsSweep.js';
|
|
39
|
+
export { DEFAULT_PLATFORM_ALERT_THRESHOLDS, evaluatePlatformHealth, platformAlertReasons, platformHealthCardContent, type PlatformAlertThresholds, } from './modules/observability/platform-health.logic.js';
|
|
39
40
|
export { classifyCall, isWarningFinishReason, outputHeadroomRatio, transportOverheadRatio, buildLlmMetricsExport, type LlmCallOutcome, } from './modules/observability/observability.logic.js';
|
|
40
41
|
export { BootstrapService, type BootstrapServiceDependencies, type BootstrapPollResult, } from './modules/bootstrap/BootstrapService.js';
|
|
41
42
|
export { EnvConfigRepairService, type EnvConfigRepairServiceDependencies, type EnvConfigRepairPollResult, type StartEnvConfigRepairInput, } from './modules/envConfigRepair/EnvConfigRepairService.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,7 @@ export { SearchQueryObservabilityService, MAX_SEARCH_QUERY_CHARS, } from './modu
|
|
|
39
39
|
export { PlatformObservabilityService, } from './modules/observability/PlatformObservabilityService.js';
|
|
40
40
|
export { PLATFORM_WINDOWS, buildTrend, summarizeOutcomes, } from './modules/observability/platform-observability.logic.js';
|
|
41
41
|
export { sweepPlatformMetrics, distinctAccountIds, } from './modules/observability/platformMetricsSweep.js';
|
|
42
|
+
export { DEFAULT_PLATFORM_ALERT_THRESHOLDS, evaluatePlatformHealth, platformAlertReasons, platformHealthCardContent, } from './modules/observability/platform-health.logic.js';
|
|
42
43
|
export { classifyCall, isWarningFinishReason, outputHeadroomRatio, transportOverheadRatio, buildLlmMetricsExport, } from './modules/observability/observability.logic.js';
|
|
43
44
|
export { BootstrapService, } from './modules/bootstrap/BootstrapService.js';
|
|
44
45
|
export { EnvConfigRepairService, } from './modules/envConfigRepair/EnvConfigRepairService.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Clock, IdGenerator, Notification, NotificationChannel, NotificationRepository, RaiseNotificationInput, ResolveNotificationAction } from '@cat-factory/kernel';
|
|
1
|
+
import type { Clock, IdGenerator, Notification, NotificationChannel, NotificationRepository, NotificationType, RaiseNotificationInput, ResolveNotificationAction } from '@cat-factory/kernel';
|
|
2
2
|
import type { WorkspaceRepository } from '@cat-factory/kernel';
|
|
3
3
|
export interface NotificationServiceDependencies {
|
|
4
4
|
notificationRepository: NotificationRepository;
|
|
@@ -60,6 +60,22 @@ export declare class NotificationService {
|
|
|
60
60
|
resolve(workspaceId: string, id: string, action: ResolveNotificationAction): Promise<Notification>;
|
|
61
61
|
/** All open notifications for the workspace (for the inbox + snapshot). */
|
|
62
62
|
listOpen(workspaceId: string): Promise<Notification[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Batched: the open, block-less card of `type` for each of `workspaceIds` that has one. The
|
|
65
|
+
* platform-health sweep uses this ONCE up front to learn which workspaces already hold a card,
|
|
66
|
+
* so it can skip the `clearByType` point-read for the (steady-state common) healthy workspaces
|
|
67
|
+
* with none — avoiding a per-workspace N+1 across the whole deployment every sweep.
|
|
68
|
+
*/
|
|
69
|
+
listOpenByType(workspaceIds: string[], type: NotificationType): Promise<Map<string, Notification>>;
|
|
70
|
+
/**
|
|
71
|
+
* Auto-resolve the open, block-less card of `type` for a workspace (dismiss it), if one is
|
|
72
|
+
* open. The self-clearing counterpart to a periodic sweep that raises a block-less card while
|
|
73
|
+
* a condition holds (today `platform_health`): when the condition clears the sweep calls this
|
|
74
|
+
* so the stale alert leaves the inbox instead of lingering (and being escalated red for a
|
|
75
|
+
* problem that has since resolved). Idempotent + best-effort: a no-op when no such card is
|
|
76
|
+
* open. Returns the dismissed card, or null when there was nothing to clear.
|
|
77
|
+
*/
|
|
78
|
+
clearByType(workspaceId: string, type: NotificationType): Promise<Notification | null>;
|
|
63
79
|
/**
|
|
64
80
|
* Resolve the auto-raised "waiting for a human decision" cards on a block once its run
|
|
65
81
|
* has advanced past the gate (the human responded, or it auto-passed). Dismisses the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationService.d.ts","sourceRoot":"","sources":["../../../src/modules/notifications/NotificationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,MAAM,WAAW,+BAA+B;IAC9C,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAqB;IAE9C,YAAY,IAAI,EAAE,+BAA+B,EAMhD;IAED;;;;;;;;;;OAUG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"NotificationService.d.ts","sourceRoot":"","sources":["../../../src/modules/notifications/NotificationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,MAAM,WAAW,+BAA+B;IAC9C,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAqB;IAE9C,YAAY,IAAI,EAAE,+BAA+B,EAMhD;IAED;;;;;;;;;;OAUG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0CrF;IAED,yFAAyF;IACzF,OAAO,CAAC,cAAc;IAetB;;;;;;;;;;;OAWG;IACG,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GACxD,OAAO,CAAC,YAAY,CAAC,CA0BvB;IAED,kFAAkF;IAC5E,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,CAAC,CAYvB;IAED,2EAA2E;IACrE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAE3D;IAED;;;;;OAKG;IACG,cAAc,CAClB,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAEpC;IAED;;;;;;;OAOG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAW3F;IAED;;;;;;;;;OASG;IACG,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB9E;IAED;;;;;;;;OAQG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ1F;IAED,4CAA4C;IACtC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAEvE;IAED,mFAAmF;YACrE,OAAO;CAQtB"}
|
|
@@ -35,7 +35,10 @@ export class NotificationService {
|
|
|
35
35
|
async raise(workspaceId, input) {
|
|
36
36
|
const existing = input.blockId
|
|
37
37
|
? await this.notifications.findOpenByBlock(workspaceId, input.blockId, input.type)
|
|
38
|
-
:
|
|
38
|
+
: // A block-LESS card (deployment/workspace-wide, e.g. `platform_health`) de-dupes on
|
|
39
|
+
// (workspace, type): a periodic sweep re-raising it reuses the open row and only
|
|
40
|
+
// re-delivers on a content change, exactly like the block-scoped path above.
|
|
41
|
+
await this.notifications.findOpenByType(workspaceId, input.type);
|
|
39
42
|
const now = this.clock.now();
|
|
40
43
|
const notification = {
|
|
41
44
|
id: existing?.id ?? this.idGenerator.next('ntf'),
|
|
@@ -144,6 +147,36 @@ export class NotificationService {
|
|
|
144
147
|
async listOpen(workspaceId) {
|
|
145
148
|
return this.notifications.listOpen(workspaceId);
|
|
146
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Batched: the open, block-less card of `type` for each of `workspaceIds` that has one. The
|
|
152
|
+
* platform-health sweep uses this ONCE up front to learn which workspaces already hold a card,
|
|
153
|
+
* so it can skip the `clearByType` point-read for the (steady-state common) healthy workspaces
|
|
154
|
+
* with none — avoiding a per-workspace N+1 across the whole deployment every sweep.
|
|
155
|
+
*/
|
|
156
|
+
async listOpenByType(workspaceIds, type) {
|
|
157
|
+
return this.notifications.listOpenByType(workspaceIds, type);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Auto-resolve the open, block-less card of `type` for a workspace (dismiss it), if one is
|
|
161
|
+
* open. The self-clearing counterpart to a periodic sweep that raises a block-less card while
|
|
162
|
+
* a condition holds (today `platform_health`): when the condition clears the sweep calls this
|
|
163
|
+
* so the stale alert leaves the inbox instead of lingering (and being escalated red for a
|
|
164
|
+
* problem that has since resolved). Idempotent + best-effort: a no-op when no such card is
|
|
165
|
+
* open. Returns the dismissed card, or null when there was nothing to clear.
|
|
166
|
+
*/
|
|
167
|
+
async clearByType(workspaceId, type) {
|
|
168
|
+
const existing = await this.notifications.findOpenByType(workspaceId, type);
|
|
169
|
+
if (!existing)
|
|
170
|
+
return null;
|
|
171
|
+
const resolved = {
|
|
172
|
+
...existing,
|
|
173
|
+
status: 'dismissed',
|
|
174
|
+
resolvedAt: this.clock.now(),
|
|
175
|
+
};
|
|
176
|
+
await this.notifications.upsert(workspaceId, resolved);
|
|
177
|
+
await this.deliver(workspaceId, resolved);
|
|
178
|
+
return resolved;
|
|
179
|
+
}
|
|
147
180
|
/**
|
|
148
181
|
* Resolve the auto-raised "waiting for a human decision" cards on a block once its run
|
|
149
182
|
* has advanced past the gate (the human responded, or it auto-passed). Dismisses the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationService.js","sourceRoot":"","sources":["../../../src/modules/notifications/NotificationService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NotificationService.js","sourceRoot":"","sources":["../../../src/modules/notifications/NotificationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { PlatformAlert, PlatformAlertReason, PlatformObservability, PlatformObservabilityWindow } from '@cat-factory/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* The operator-configured ceilings a deployment's aggregate health is checked against. Each
|
|
4
|
+
* maps to one {@link PlatformAlertReason}. Deployment-level config (env-driven defaults today;
|
|
5
|
+
* a settings surface is a later slice), NOT per-workspace.
|
|
6
|
+
*/
|
|
7
|
+
export interface PlatformAlertThresholds {
|
|
8
|
+
/**
|
|
9
|
+
* Minimum number of TERMINAL runs (done + failed) in the window before the failure-rate
|
|
10
|
+
* alert can fire — so a single early failure (1/1 = 100%) on a quiet deployment doesn't page.
|
|
11
|
+
*/
|
|
12
|
+
minRuns: number;
|
|
13
|
+
/** Run failure rate (0..1) at or above which `failure_rate_high` fires. */
|
|
14
|
+
maxFailureRate: number;
|
|
15
|
+
/** p99 wall-clock run duration (ms) at or above which `duration_p99_high` fires. */
|
|
16
|
+
maxP99DurationMs: number;
|
|
17
|
+
/** Live running/blocked/paused/pending depth at or above which `backlog_high` fires. */
|
|
18
|
+
maxBacklog: number;
|
|
19
|
+
}
|
|
20
|
+
/** Conservative defaults: quiet unless the deployment is genuinely unhealthy. */
|
|
21
|
+
export declare const DEFAULT_PLATFORM_ALERT_THRESHOLDS: PlatformAlertThresholds;
|
|
22
|
+
/**
|
|
23
|
+
* Evaluate one account's windowed projection against the thresholds, returning every fired
|
|
24
|
+
* alert (empty when healthy). Each alert carries its observed value + the threshold it crossed
|
|
25
|
+
* — used for the sweep's log line and any future detail surface. The NOTIFICATION card keys its
|
|
26
|
+
* dedup on the reason SET only (see {@link platformAlertReasons}); the fluctuating values here
|
|
27
|
+
* are intentionally not carried on the card (they'd re-toast the inbox every sweep).
|
|
28
|
+
*/
|
|
29
|
+
export declare function evaluatePlatformHealth(snapshot: PlatformObservability, thresholds: PlatformAlertThresholds): PlatformAlert[];
|
|
30
|
+
/**
|
|
31
|
+
* The SORTED set of reason codes from a list of fired alerts — the platform-health card's
|
|
32
|
+
* stable dedup identity. Sorted so the card content is a pure function of WHICH conditions
|
|
33
|
+
* fire (never their order), so the notification service re-delivers only when the firing set
|
|
34
|
+
* changes rather than on every sweep.
|
|
35
|
+
*/
|
|
36
|
+
export declare function platformAlertReasons(alerts: PlatformAlert[]): PlatformAlertReason[];
|
|
37
|
+
/**
|
|
38
|
+
* The stable card title + body for a fired reason set — a pure function of the reasons + window
|
|
39
|
+
* (no live numbers), so a re-raise with the same firing set produces byte-identical content and
|
|
40
|
+
* is de-duplicated. The inbox renders this backend-composed (English) title/body directly, like
|
|
41
|
+
* every other notification type; the machine-readable reason set travels on
|
|
42
|
+
* `payload.platformAlerts` as the dedup identity and the seam for a future localized rendering
|
|
43
|
+
* (the `usePipelineErrorToast` mapping pattern), not yet wired in the SPA.
|
|
44
|
+
*/
|
|
45
|
+
export declare function platformHealthCardContent(reasons: PlatformAlertReason[], window: PlatformObservabilityWindow): {
|
|
46
|
+
title: string;
|
|
47
|
+
body: string;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=platform-health.logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-health.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/observability/platform-health.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,wBAAwB,CAAA;AAc/B;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAA;IACtB,oFAAoF;IACpF,gBAAgB,EAAE,MAAM,CAAA;IACxB,wFAAwF;IACxF,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,iFAAiF;AACjF,eAAO,MAAM,iCAAiC,EAAE,uBAK/C,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,uBAAuB,GAClC,aAAa,EAAE,CAiCjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,CAEnF;AAeD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,MAAM,EAAE,2BAA2B,GAClC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAUjC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/** Conservative defaults: quiet unless the deployment is genuinely unhealthy. */
|
|
2
|
+
export const DEFAULT_PLATFORM_ALERT_THRESHOLDS = {
|
|
3
|
+
minRuns: 5,
|
|
4
|
+
maxFailureRate: 0.5,
|
|
5
|
+
maxP99DurationMs: 60 * 60_000, // 60 minutes
|
|
6
|
+
maxBacklog: 50,
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Evaluate one account's windowed projection against the thresholds, returning every fired
|
|
10
|
+
* alert (empty when healthy). Each alert carries its observed value + the threshold it crossed
|
|
11
|
+
* — used for the sweep's log line and any future detail surface. The NOTIFICATION card keys its
|
|
12
|
+
* dedup on the reason SET only (see {@link platformAlertReasons}); the fluctuating values here
|
|
13
|
+
* are intentionally not carried on the card (they'd re-toast the inbox every sweep).
|
|
14
|
+
*/
|
|
15
|
+
export function evaluatePlatformHealth(snapshot, thresholds) {
|
|
16
|
+
const alerts = [];
|
|
17
|
+
const { outcomes, durations, live } = snapshot;
|
|
18
|
+
// Failure rate over terminal runs — gated by a minimum sample so a tiny window stays quiet.
|
|
19
|
+
const terminal = outcomes.done + outcomes.failed;
|
|
20
|
+
if (terminal >= thresholds.minRuns && outcomes.successRate !== null) {
|
|
21
|
+
const failureRate = 1 - outcomes.successRate;
|
|
22
|
+
if (failureRate >= thresholds.maxFailureRate) {
|
|
23
|
+
alerts.push({
|
|
24
|
+
reason: 'failure_rate_high',
|
|
25
|
+
value: failureRate,
|
|
26
|
+
threshold: thresholds.maxFailureRate,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Slow-run tail: the p99 the average hides. Null (no terminal runs) → nothing to alert on.
|
|
31
|
+
if (durations.p99Ms !== null && durations.p99Ms >= thresholds.maxP99DurationMs) {
|
|
32
|
+
alerts.push({
|
|
33
|
+
reason: 'duration_p99_high',
|
|
34
|
+
value: durations.p99Ms,
|
|
35
|
+
threshold: thresholds.maxP99DurationMs,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
// Live depth right now (a snapshot, not windowed): a growing backlog of unfinished runs.
|
|
39
|
+
const backlog = live.running + live.blocked + live.paused + live.pending;
|
|
40
|
+
if (backlog >= thresholds.maxBacklog) {
|
|
41
|
+
alerts.push({ reason: 'backlog_high', value: backlog, threshold: thresholds.maxBacklog });
|
|
42
|
+
}
|
|
43
|
+
return alerts;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The SORTED set of reason codes from a list of fired alerts — the platform-health card's
|
|
47
|
+
* stable dedup identity. Sorted so the card content is a pure function of WHICH conditions
|
|
48
|
+
* fire (never their order), so the notification service re-delivers only when the firing set
|
|
49
|
+
* changes rather than on every sweep.
|
|
50
|
+
*/
|
|
51
|
+
export function platformAlertReasons(alerts) {
|
|
52
|
+
return alerts.map((a) => a.reason).sort();
|
|
53
|
+
}
|
|
54
|
+
/** Human-readable (English) fragment per reason, used to compose the card body below. */
|
|
55
|
+
const REASON_PHRASE = {
|
|
56
|
+
failure_rate_high: 'an elevated run failure rate',
|
|
57
|
+
duration_p99_high: 'slow run durations (p99)',
|
|
58
|
+
backlog_high: 'a growing backlog of unfinished runs',
|
|
59
|
+
};
|
|
60
|
+
const WINDOW_PHRASE = {
|
|
61
|
+
'1h': 'the last hour',
|
|
62
|
+
'24h': 'the last 24 hours',
|
|
63
|
+
'7d': 'the last 7 days',
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* The stable card title + body for a fired reason set — a pure function of the reasons + window
|
|
67
|
+
* (no live numbers), so a re-raise with the same firing set produces byte-identical content and
|
|
68
|
+
* is de-duplicated. The inbox renders this backend-composed (English) title/body directly, like
|
|
69
|
+
* every other notification type; the machine-readable reason set travels on
|
|
70
|
+
* `payload.platformAlerts` as the dedup identity and the seam for a future localized rendering
|
|
71
|
+
* (the `usePipelineErrorToast` mapping pattern), not yet wired in the SPA.
|
|
72
|
+
*/
|
|
73
|
+
export function platformHealthCardContent(reasons, window) {
|
|
74
|
+
const phrases = reasons.map((r) => REASON_PHRASE[r]);
|
|
75
|
+
const list = phrases.length <= 1
|
|
76
|
+
? (phrases[0] ?? 'a health threshold was crossed')
|
|
77
|
+
: `${phrases.slice(0, -1).join(', ')} and ${phrases[phrases.length - 1]}`;
|
|
78
|
+
return {
|
|
79
|
+
title: 'Platform health alert',
|
|
80
|
+
body: `The deployment shows ${list} over ${WINDOW_PHRASE[window]}. Open the operator dashboard for detail.`,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=platform-health.logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-health.logic.js","sourceRoot":"","sources":["../../../src/modules/observability/platform-health.logic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/orchestration",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.123.1",
|
|
4
4
|
"description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,20 +25,20 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^6.0.224",
|
|
28
|
-
"@cat-factory/agents": "0.62.
|
|
29
|
-
"@cat-factory/caching": "0.10.
|
|
30
|
-
"@cat-factory/contracts": "0.
|
|
31
|
-
"@cat-factory/integrations": "0.
|
|
32
|
-
"@cat-factory/kernel": "0.
|
|
33
|
-
"@cat-factory/prompt-fragments": "0.13.
|
|
34
|
-
"@cat-factory/sandbox": "0.9.
|
|
35
|
-
"@cat-factory/spend": "0.12.
|
|
36
|
-
"@cat-factory/workspaces": "0.16.
|
|
28
|
+
"@cat-factory/agents": "0.62.9",
|
|
29
|
+
"@cat-factory/caching": "0.10.6",
|
|
30
|
+
"@cat-factory/contracts": "0.147.1",
|
|
31
|
+
"@cat-factory/integrations": "0.86.1",
|
|
32
|
+
"@cat-factory/kernel": "0.139.1",
|
|
33
|
+
"@cat-factory/prompt-fragments": "0.13.37",
|
|
34
|
+
"@cat-factory/sandbox": "0.9.100",
|
|
35
|
+
"@cat-factory/spend": "0.12.50",
|
|
36
|
+
"@cat-factory/workspaces": "0.16.3"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"typescript": "7.0.2",
|
|
40
40
|
"vitest": "^4.1.10",
|
|
41
|
-
"@cat-factory/sandbox-fixtures": "0.7.
|
|
41
|
+
"@cat-factory/sandbox-fixtures": "0.7.172"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsc -b tsconfig.build.json",
|