@cat-factory/orchestration 0.240.0 → 0.241.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/container/dependencies.d.ts +24 -1
- package/dist/container/dependencies.d.ts.map +1 -1
- package/dist/container/module-shapes.d.ts +8 -0
- package/dist/container/module-shapes.d.ts.map +1 -1
- package/dist/container/modules.d.ts.map +1 -1
- package/dist/container/modules.js +9 -2
- package/dist/container/modules.js.map +1 -1
- package/dist/container/runtime.d.ts +1 -0
- package/dist/container/runtime.d.ts.map +1 -1
- package/dist/container/runtime.js +7 -1
- package/dist/container/runtime.js.map +1 -1
- package/dist/container.d.ts +9 -1
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +2 -1
- package/dist/container.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/artifacts/artifactRetention.d.ts +11 -4
- package/dist/modules/artifacts/artifactRetention.d.ts.map +1 -1
- package/dist/modules/artifacts/artifactRetention.js +11 -4
- package/dist/modules/artifacts/artifactRetention.js.map +1 -1
- package/dist/modules/execution/AgentDispatchController.d.ts.map +1 -1
- package/dist/modules/execution/AgentDispatchController.js +11 -17
- package/dist/modules/execution/AgentDispatchController.js.map +1 -1
- package/dist/modules/execution/CompanionController.d.ts.map +1 -1
- package/dist/modules/execution/CompanionController.js +5 -22
- package/dist/modules/execution/CompanionController.js.map +1 -1
- package/dist/modules/execution/DeployerStepController.d.ts.map +1 -1
- package/dist/modules/execution/DeployerStepController.js +2 -4
- package/dist/modules/execution/DeployerStepController.js.map +1 -1
- package/dist/modules/execution/FollowUpGateController.js +3 -3
- package/dist/modules/execution/FollowUpGateController.js.map +1 -1
- package/dist/modules/execution/ForkDecisionController.d.ts.map +1 -1
- package/dist/modules/execution/ForkDecisionController.js +1 -2
- package/dist/modules/execution/ForkDecisionController.js.map +1 -1
- package/dist/modules/execution/GateHelperDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/GateHelperDispatcher.js +1 -2
- package/dist/modules/execution/GateHelperDispatcher.js.map +1 -1
- package/dist/modules/execution/GateStepController.d.ts.map +1 -1
- package/dist/modules/execution/GateStepController.js +1 -2
- package/dist/modules/execution/GateStepController.js.map +1 -1
- package/dist/modules/execution/HumanTestController.d.ts.map +1 -1
- package/dist/modules/execution/HumanTestController.js +7 -32
- package/dist/modules/execution/HumanTestController.js.map +1 -1
- package/dist/modules/execution/InterviewGateController.d.ts.map +1 -1
- package/dist/modules/execution/InterviewGateController.js +2 -21
- package/dist/modules/execution/InterviewGateController.js.map +1 -1
- package/dist/modules/execution/JudgeStepController.d.ts.map +1 -1
- package/dist/modules/execution/JudgeStepController.js +1 -2
- package/dist/modules/execution/JudgeStepController.js.map +1 -1
- package/dist/modules/execution/OneShotStepController.d.ts.map +1 -1
- package/dist/modules/execution/OneShotStepController.js +1 -2
- package/dist/modules/execution/OneShotStepController.js.map +1 -1
- package/dist/modules/execution/PollRunningController.d.ts.map +1 -1
- package/dist/modules/execution/PollRunningController.js +2 -4
- package/dist/modules/execution/PollRunningController.js.map +1 -1
- package/dist/modules/execution/RalphController.d.ts.map +1 -1
- package/dist/modules/execution/RalphController.js +5 -9
- package/dist/modules/execution/RalphController.js.map +1 -1
- package/dist/modules/execution/ReviewGateController.d.ts.map +1 -1
- package/dist/modules/execution/ReviewGateController.js +2 -20
- package/dist/modules/execution/ReviewGateController.js.map +1 -1
- package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcher.js +11 -54
- package/dist/modules/execution/RunDispatcher.js.map +1 -1
- package/dist/modules/execution/RunStateMachine.d.ts +49 -0
- package/dist/modules/execution/RunStateMachine.d.ts.map +1 -1
- package/dist/modules/execution/RunStateMachine.js +84 -0
- package/dist/modules/execution/RunStateMachine.js.map +1 -1
- package/dist/modules/execution/TesterController.d.ts.map +1 -1
- package/dist/modules/execution/TesterController.js +9 -21
- package/dist/modules/execution/TesterController.js.map +1 -1
- package/dist/modules/execution/VisualConfirmationController.d.ts.map +1 -1
- package/dist/modules/execution/VisualConfirmationController.js +6 -30
- package/dist/modules/execution/VisualConfirmationController.js.map +1 -1
- package/dist/modules/execution/step-fold.logic.d.ts +24 -0
- package/dist/modules/execution/step-fold.logic.d.ts.map +1 -1
- package/dist/modules/execution/step-fold.logic.js +29 -0
- package/dist/modules/execution/step-fold.logic.js.map +1 -1
- package/dist/modules/execution/stepPreamble.d.ts.map +1 -1
- package/dist/modules/execution/stepPreamble.js +2 -4
- package/dist/modules/execution/stepPreamble.js.map +1 -1
- package/dist/modules/notifications/NotificationService.d.ts.map +1 -1
- package/dist/modules/notifications/NotificationService.js +15 -9
- package/dist/modules/notifications/NotificationService.js.map +1 -1
- package/dist/modules/notifications/NotificationSettingsService.d.ts +28 -0
- package/dist/modules/notifications/NotificationSettingsService.d.ts.map +1 -0
- package/dist/modules/notifications/NotificationSettingsService.js +50 -0
- package/dist/modules/notifications/NotificationSettingsService.js.map +1 -0
- package/package.json +11 -11
|
@@ -25,8 +25,7 @@ export async function runStepPreamble(deps, workspaceId, instance, step) {
|
|
|
25
25
|
if (!(await deps.currentStepIsNonMetered(workspaceId, instance, step))) {
|
|
26
26
|
if (instance.status !== 'paused') {
|
|
27
27
|
instance.status = 'paused';
|
|
28
|
-
await deps.stateMachine.
|
|
29
|
-
await deps.stateMachine.emitInstance(workspaceId, instance);
|
|
28
|
+
await deps.stateMachine.persistAndEmit(workspaceId, instance);
|
|
30
29
|
// Surface the pause in the inbox (F3): a `paused` run is invisible to the sweeper and
|
|
31
30
|
// has no auto-resume, so without this card the paused board badge is its only signal.
|
|
32
31
|
await deps.stateMachine.raiseBudgetPaused(workspaceId);
|
|
@@ -47,8 +46,7 @@ export async function runStepPreamble(deps, workspaceId, instance, step) {
|
|
|
47
46
|
const pendingId = step.decision?.id ?? step.approval?.id;
|
|
48
47
|
if (pendingId) {
|
|
49
48
|
instance.status = 'blocked';
|
|
50
|
-
await deps.stateMachine.
|
|
51
|
-
await deps.stateMachine.emitInstance(workspaceId, instance);
|
|
49
|
+
await deps.stateMachine.persistAndEmit(workspaceId, instance);
|
|
52
50
|
return { kind: 'stop', result: { kind: 'awaiting_decision', decisionId: pendingId } };
|
|
53
51
|
}
|
|
54
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepPreamble.js","sourceRoot":"","sources":["../../../src/modules/execution/stepPreamble.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AA2D9E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAsB,EACtB,WAAmB,EACnB,QAA2B,EAC3B,IAAkB;IAElB,4FAA4F;IAC5F,6FAA6F;IAC7F,2FAA2F;IAC3F,2FAA2F;IAC3F,4FAA4F;IAC5F,yFAAyF;IACzF,wFAAwF;IACxF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACzD,IACE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE;QACzC,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW;KAC7B,CAAC,EACF,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAA;gBAC1B,MAAM,IAAI,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"stepPreamble.js","sourceRoot":"","sources":["../../../src/modules/execution/stepPreamble.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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,EAEnB,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,CA6BvB;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;;;;OAIG;IACG,gBAAgB,CACpB,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,CAW1F;IAED,4CAA4C;IACtC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAEvE;IAED,mFAAmF;YACrE,OAAO;CAYtB"}
|
|
@@ -72,7 +72,7 @@ export class NotificationService {
|
|
|
72
72
|
await this.notifications.upsert(workspaceId, notification);
|
|
73
73
|
}
|
|
74
74
|
if (!existing || this.contentChanged(existing, notification)) {
|
|
75
|
-
await this.deliver(workspaceId, persisted);
|
|
75
|
+
await this.deliver(workspaceId, persisted, 'raised');
|
|
76
76
|
}
|
|
77
77
|
return persisted;
|
|
78
78
|
}
|
|
@@ -122,10 +122,13 @@ export class NotificationService {
|
|
|
122
122
|
// it and this revert can't lose an escalation.
|
|
123
123
|
const reopened = { ...claimed, status: 'open', resolvedAt: null };
|
|
124
124
|
await this.notifications.upsert(workspaceId, reopened);
|
|
125
|
-
|
|
125
|
+
// `refreshed`, not `raised`: the human is at the screen they just acted from, and the card
|
|
126
|
+
// was already alerted on when it was raised. Re-interrupting the whole board because a
|
|
127
|
+
// merge call 500ed states a new decision that nobody has to make.
|
|
128
|
+
await this.deliver(workspaceId, reopened, 'refreshed');
|
|
126
129
|
throw err;
|
|
127
130
|
}
|
|
128
|
-
await this.deliver(workspaceId, claimed);
|
|
131
|
+
await this.deliver(workspaceId, claimed, 'settled');
|
|
129
132
|
return claimed;
|
|
130
133
|
}
|
|
131
134
|
/** Resolve a notification (the human acted on it or dismissed it). Idempotent. */
|
|
@@ -140,7 +143,7 @@ export class NotificationService {
|
|
|
140
143
|
resolvedAt: this.clock.now(),
|
|
141
144
|
};
|
|
142
145
|
await this.notifications.upsert(workspaceId, resolved);
|
|
143
|
-
await this.deliver(workspaceId, resolved);
|
|
146
|
+
await this.deliver(workspaceId, resolved, 'settled');
|
|
144
147
|
return resolved;
|
|
145
148
|
}
|
|
146
149
|
/** All open notifications for the workspace (for the inbox + snapshot). */
|
|
@@ -182,7 +185,7 @@ export class NotificationService {
|
|
|
182
185
|
resolvedAt: this.clock.now(),
|
|
183
186
|
};
|
|
184
187
|
await this.notifications.upsert(workspaceId, resolved);
|
|
185
|
-
await this.deliver(workspaceId, resolved);
|
|
188
|
+
await this.deliver(workspaceId, resolved, 'settled');
|
|
186
189
|
return resolved;
|
|
187
190
|
}
|
|
188
191
|
/**
|
|
@@ -211,7 +214,7 @@ export class NotificationService {
|
|
|
211
214
|
resolvedAt: this.clock.now(),
|
|
212
215
|
};
|
|
213
216
|
await this.notifications.upsert(workspaceId, resolved);
|
|
214
|
-
await this.deliver(workspaceId, resolved);
|
|
217
|
+
await this.deliver(workspaceId, resolved, 'settled');
|
|
215
218
|
}
|
|
216
219
|
}
|
|
217
220
|
/**
|
|
@@ -228,7 +231,10 @@ export class NotificationService {
|
|
|
228
231
|
// escalated row is then re-delivered so the inbox re-renders it red in real time.
|
|
229
232
|
const escalated = await this.notifications.escalateStaleOpen(workspaceId, now - thresholdMs);
|
|
230
233
|
for (const n of escalated) {
|
|
231
|
-
|
|
234
|
+
// `refreshed`: the colour change is for the boards already holding the card, not a second
|
|
235
|
+
// ask. It is also what keeps this loop free of per-card routing and email reads: an alert
|
|
236
|
+
// transport and the routing gate both stand down before touching a store.
|
|
237
|
+
await this.deliver(workspaceId, n, 'refreshed');
|
|
232
238
|
}
|
|
233
239
|
return escalated.length;
|
|
234
240
|
}
|
|
@@ -237,11 +243,11 @@ export class NotificationService {
|
|
|
237
243
|
return this.notifications.get(workspaceId, id);
|
|
238
244
|
}
|
|
239
245
|
/** Best-effort delivery to the channel — a failure must never break the caller. */
|
|
240
|
-
async deliver(workspaceId, notification) {
|
|
246
|
+
async deliver(workspaceId, notification, reason) {
|
|
241
247
|
if (!this.channel)
|
|
242
248
|
return;
|
|
243
249
|
try {
|
|
244
|
-
await this.channel.deliver(workspaceId, notification);
|
|
250
|
+
await this.channel.deliver(workspaceId, notification, reason);
|
|
245
251
|
}
|
|
246
252
|
catch {
|
|
247
253
|
// The row is persisted; delivery is an optimisation. Swallow channel errors.
|
|
@@ -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,28 @@
|
|
|
1
|
+
import { type NotificationSettings } from '@cat-factory/contracts';
|
|
2
|
+
import type { Clock, NotificationDeliveryChannel, NotificationRouter, NotificationRoutingMatrix, NotificationSettingsRepository, NotificationType } from '@cat-factory/kernel';
|
|
3
|
+
export interface NotificationSettingsServiceDependencies {
|
|
4
|
+
notificationSettingsRepository: NotificationSettingsRepository;
|
|
5
|
+
clock: Clock;
|
|
6
|
+
}
|
|
7
|
+
export declare class NotificationSettingsService implements NotificationRouter {
|
|
8
|
+
private readonly deps;
|
|
9
|
+
constructor(deps: NotificationSettingsServiceDependencies);
|
|
10
|
+
/** A workspace's settings; the empty matrix (everything on its default) when unconfigured. */
|
|
11
|
+
get(workspaceId: string): Promise<NotificationSettings>;
|
|
12
|
+
/** Replace a workspace's routing overrides (a full replace, like the Slack routing write). */
|
|
13
|
+
update(workspaceId: string, matrix: NotificationRoutingMatrix): Promise<NotificationSettings>;
|
|
14
|
+
/**
|
|
15
|
+
* The routing decision, for one delivery. One point read per notification per routed
|
|
16
|
+
* channel: notifications are raised at human scale (a run parks, a gate gives up), so
|
|
17
|
+
* this is not on any hot path, and a cached copy would answer with a mute the operator
|
|
18
|
+
* had already lifted.
|
|
19
|
+
*/
|
|
20
|
+
isRouted(workspaceId: string, type: NotificationType, channel: NotificationDeliveryChannel): Promise<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Decode a stored matrix. The cell-by-cell tolerance (a retired type costs its own override
|
|
23
|
+
* and nothing else) lives in `@cat-factory/contracts` beside the resolution it feeds, so the
|
|
24
|
+
* settings UI decoding the same row reaches the same answer.
|
|
25
|
+
*/
|
|
26
|
+
private parseMatrix;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=NotificationSettingsService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/notifications/NotificationSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EACV,KAAK,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EACjB,MAAM,qBAAqB,CAAA;AAW5B,MAAM,WAAW,uCAAuC;IACtD,8BAA8B,EAAE,8BAA8B,CAAA;IAC9D,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,2BAA4B,YAAW,kBAAkB;IACxD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,uCAAuC,EAAI;IAE9E,8FAA8F;IACxF,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAI5D;IAED,8FAA8F;IACxF,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAQ/B;IAED;;;;;OAKG;IACG,QAAQ,CACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,OAAO,CAAC,CAGlB;IAED;;;;OAIG;IACH,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { decodeNotificationRoutingMatrix, isNotificationRouted, } from '@cat-factory/contracts';
|
|
2
|
+
export class NotificationSettingsService {
|
|
3
|
+
deps;
|
|
4
|
+
constructor(deps) {
|
|
5
|
+
this.deps = deps;
|
|
6
|
+
}
|
|
7
|
+
/** A workspace's settings; the empty matrix (everything on its default) when unconfigured. */
|
|
8
|
+
async get(workspaceId) {
|
|
9
|
+
const record = await this.deps.notificationSettingsRepository.getByWorkspace(workspaceId);
|
|
10
|
+
if (!record)
|
|
11
|
+
return { matrix: {}, updatedAt: 0 };
|
|
12
|
+
return { matrix: this.parseMatrix(record.matrixJson), updatedAt: record.updatedAt };
|
|
13
|
+
}
|
|
14
|
+
/** Replace a workspace's routing overrides (a full replace, like the Slack routing write). */
|
|
15
|
+
async update(workspaceId, matrix) {
|
|
16
|
+
const updatedAt = this.deps.clock.now();
|
|
17
|
+
await this.deps.notificationSettingsRepository.upsert({
|
|
18
|
+
workspaceId,
|
|
19
|
+
matrixJson: JSON.stringify(matrix),
|
|
20
|
+
updatedAt,
|
|
21
|
+
});
|
|
22
|
+
return { matrix, updatedAt };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The routing decision, for one delivery. One point read per notification per routed
|
|
26
|
+
* channel: notifications are raised at human scale (a run parks, a gate gives up), so
|
|
27
|
+
* this is not on any hot path, and a cached copy would answer with a mute the operator
|
|
28
|
+
* had already lifted.
|
|
29
|
+
*/
|
|
30
|
+
async isRouted(workspaceId, type, channel) {
|
|
31
|
+
const { matrix } = await this.get(workspaceId);
|
|
32
|
+
return isNotificationRouted(matrix, type, channel);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Decode a stored matrix. The cell-by-cell tolerance (a retired type costs its own override
|
|
36
|
+
* and nothing else) lives in `@cat-factory/contracts` beside the resolution it feeds, so the
|
|
37
|
+
* settings UI decoding the same row reaches the same answer.
|
|
38
|
+
*/
|
|
39
|
+
parseMatrix(matrixJson) {
|
|
40
|
+
try {
|
|
41
|
+
return decodeNotificationRoutingMatrix(JSON.parse(matrixJson));
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// A corrupt row is, for routing, the same state as an unconfigured one: every cell falls
|
|
45
|
+
// back to its shipped default. Throwing here would run on the delivery path.
|
|
46
|
+
return {};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=NotificationSettingsService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationSettingsService.js","sourceRoot":"","sources":["../../../src/modules/notifications/NotificationSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,GAErB,MAAM,wBAAwB,CAAA;AAwB/B,MAAM,OAAO,2BAA2B;IACT,IAAI;IAAjC,YAA6B,IAA6C;oBAA7C,IAAI;IAA4C,CAAC;IAE9E,8FAA8F;IAC9F,KAAK,CAAC,GAAG,CAAC,WAAmB;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QACzF,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;QAChD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;IACrF,CAAC;IAED,8FAA8F;IAC9F,KAAK,CAAC,MAAM,CACV,WAAmB,EACnB,MAAiC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QACvC,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC;YACpD,WAAW;YACX,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAClC,SAAS;SACV,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,WAAmB,EACnB,IAAsB,EACtB,OAAoC;QAEpC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC9C,OAAO,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,UAAkB;QACpC,IAAI,CAAC;YACH,OAAO,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,yFAAyF;YACzF,6EAA6E;YAC7E,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/orchestration",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.241.0",
|
|
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": "^7.0.51",
|
|
28
|
-
"@cat-factory/agents": "0.
|
|
29
|
-
"@cat-factory/caching": "0.18.
|
|
30
|
-
"@cat-factory/contracts": "0.
|
|
31
|
-
"@cat-factory/integrations": "0.
|
|
32
|
-
"@cat-factory/kernel": "0.
|
|
33
|
-
"@cat-factory/prompt-fragments": "1.0.
|
|
34
|
-
"@cat-factory/sandbox": "0.11.
|
|
35
|
-
"@cat-factory/spend": "0.15.
|
|
36
|
-
"@cat-factory/workspaces": "0.26.
|
|
28
|
+
"@cat-factory/agents": "0.118.0",
|
|
29
|
+
"@cat-factory/caching": "0.18.14",
|
|
30
|
+
"@cat-factory/contracts": "0.275.0",
|
|
31
|
+
"@cat-factory/integrations": "0.151.0",
|
|
32
|
+
"@cat-factory/kernel": "0.273.0",
|
|
33
|
+
"@cat-factory/prompt-fragments": "1.0.23",
|
|
34
|
+
"@cat-factory/sandbox": "0.11.100",
|
|
35
|
+
"@cat-factory/spend": "0.15.41",
|
|
36
|
+
"@cat-factory/workspaces": "0.26.13"
|
|
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.310"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsc -b tsconfig.build.json",
|