@cat-factory/orchestration 0.172.1 → 0.174.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.d.ts.map +1 -1
- package/dist/container.js +10 -1
- package/dist/container.js.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.js +48 -2
- package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
- package/dist/modules/execution/ExecutionService.d.ts +2 -0
- package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionService.js +17 -7
- package/dist/modules/execution/ExecutionService.js.map +1 -1
- package/dist/modules/execution/PrReviewController.d.ts +39 -0
- package/dist/modules/execution/PrReviewController.d.ts.map +1 -1
- package/dist/modules/execution/PrReviewController.js +98 -0
- package/dist/modules/execution/PrReviewController.js.map +1 -1
- package/dist/modules/execution/RunAdmission.d.ts.map +1 -1
- package/dist/modules/execution/RunAdmission.js +10 -4
- package/dist/modules/execution/RunAdmission.js.map +1 -1
- package/dist/modules/execution/RunDispatcher.d.ts +2 -0
- package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcher.js +11 -0
- package/dist/modules/execution/RunDispatcher.js.map +1 -1
- package/dist/modules/execution/RunRepoOpsController.d.ts.map +1 -1
- package/dist/modules/execution/RunRepoOpsController.js +10 -2
- package/dist/modules/execution/RunRepoOpsController.js.map +1 -1
- package/dist/modules/execution/prReview.logic.d.ts.map +1 -1
- package/dist/modules/execution/prReview.logic.js +8 -0
- package/dist/modules/execution/prReview.logic.js.map +1 -1
- package/dist/modules/execution/prReviewSlices.logic.d.ts +71 -0
- package/dist/modules/execution/prReviewSlices.logic.d.ts.map +1 -0
- package/dist/modules/execution/prReviewSlices.logic.js +181 -0
- package/dist/modules/execution/prReviewSlices.logic.js.map +1 -0
- package/dist/modules/execution/stepGating.logic.d.ts +25 -1
- package/dist/modules/execution/stepGating.logic.d.ts.map +1 -1
- package/dist/modules/execution/stepGating.logic.js +30 -0
- package/dist/modules/execution/stepGating.logic.js.map +1 -1
- package/dist/modules/pipelines/PipelineService.d.ts +14 -1
- package/dist/modules/pipelines/PipelineService.d.ts.map +1 -1
- package/dist/modules/pipelines/PipelineService.js +21 -2
- package/dist/modules/pipelines/PipelineService.js.map +1 -1
- package/dist/modules/pipelines/pipelineShape.d.ts +48 -16
- package/dist/modules/pipelines/pipelineShape.d.ts.map +1 -1
- package/dist/modules/pipelines/pipelineShape.js +34 -19
- package/dist/modules/pipelines/pipelineShape.js.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { PipelineStep, PrReviewSliceReview } from '@cat-factory/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* Parse the harness payload into slice reviews, dropping unusable entries.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately lenient per ENTRY rather than all-or-nothing: one malformed slice must not discard
|
|
6
|
+
* the seven good reports beside it, since discarding them is exactly the data loss this channel
|
|
7
|
+
* exists to prevent.
|
|
8
|
+
*/
|
|
9
|
+
export declare function coerceSliceReviews(raw: unknown): PrReviewSliceReview[];
|
|
10
|
+
/**
|
|
11
|
+
* Fold the harness's live per-slice reviews onto a `pr-reviewer` step, returning whether anything
|
|
12
|
+
* changed.
|
|
13
|
+
*
|
|
14
|
+
* Only applies to a step that already carries `prReview` (the reviewer seeds it at dispatch): the
|
|
15
|
+
* channel is review-specific, and a subagent-fanning coder step must not grow review state. Absent
|
|
16
|
+
* or unparseable payloads leave the step untouched.
|
|
17
|
+
*
|
|
18
|
+
* NEVER shrinks the set. The harness republishes everything it has captured, but a poll can be
|
|
19
|
+
* served by a RESTARTED container (a resume, an eviction retry) whose tracker only knows the slices
|
|
20
|
+
* IT dispatched — forwarding that verbatim would erase the previous attempt's reports, which are
|
|
21
|
+
* the whole point. So completed reports already on the step survive a set that no longer mentions
|
|
22
|
+
* them.
|
|
23
|
+
*/
|
|
24
|
+
export declare function applySliceReviews(step: PipelineStep, raw: unknown): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Merge freshly-reported slice reviews over what the step already holds, keyed by label.
|
|
27
|
+
*
|
|
28
|
+
* Monotonic in two directions, both of which matter across a resume: a slice already `completed`
|
|
29
|
+
* with a report is never demoted to `in_progress` (the resumed container re-dispatches it as new
|
|
30
|
+
* before its own subagent returns), and a slice the step knows about but this attempt never
|
|
31
|
+
* mentioned is kept rather than dropped.
|
|
32
|
+
*/
|
|
33
|
+
export declare function mergeSliceReviews(existing: PrReviewSliceReview[], incoming: PrReviewSliceReview[]): PrReviewSliceReview[];
|
|
34
|
+
/**
|
|
35
|
+
* What the captured slice reports become once the reviewer's terminal output is recorded.
|
|
36
|
+
*
|
|
37
|
+
* They exist to make a review recoverable BEFORE that output, so an aggregation that CONSUMED them
|
|
38
|
+
* drops them: eight ~24KB prose reports on the run row is a quarter-megabyte of redundant text per
|
|
39
|
+
* review, and their content is in the findings by then.
|
|
40
|
+
*
|
|
41
|
+
* "Consumed" is the load-bearing word, and it is why this is a function rather than a `[]`. A
|
|
42
|
+
* reviewer that returned neither slices nor findings aggregated NOTHING — a crashed-out reply, an
|
|
43
|
+
* unusable output, a resumed run that died again — and clearing there would destroy the only record
|
|
44
|
+
* of the finished slices while recording the run as a clean PR. That is the exact loss this channel
|
|
45
|
+
* exists to prevent, wearing a pass as a disguise. So the reports survive precisely that case,
|
|
46
|
+
* leaving the review resumable.
|
|
47
|
+
*
|
|
48
|
+
* A genuinely clean PR still names its slices, so it takes the drop as before.
|
|
49
|
+
*/
|
|
50
|
+
export declare function sliceReviewsAfterAggregation(existing: readonly PrReviewSliceReview[] | undefined, aggregation: {
|
|
51
|
+
slices: readonly unknown[];
|
|
52
|
+
findings: readonly unknown[];
|
|
53
|
+
}): PrReviewSliceReview[];
|
|
54
|
+
/**
|
|
55
|
+
* Work out which slices a manual resume still has to review, from the step's OWN observations.
|
|
56
|
+
*
|
|
57
|
+
* `planned` is the reviewer's live task list (`step.subtasks.items`), and it is the only place a
|
|
58
|
+
* slice that was planned but never DISPATCHED is named at all — the slice reviews can describe
|
|
59
|
+
* nothing but subagents that actually started. So the resume set is every planned slice with no
|
|
60
|
+
* completed review, plus any dispatched-but-unfinished slice the plan does not mention (a reviewer
|
|
61
|
+
* that regrouped mid-run, or never wrote a parent plan).
|
|
62
|
+
*
|
|
63
|
+
* Deduplicated on the same trimmed/lowercased key the labels are paired by, and ordered plan-first
|
|
64
|
+
* so the resumed reviewer is handed the slices in the order the previous attempt meant to take
|
|
65
|
+
* them. Returns labels in their original casing, which is what the prompt names them by.
|
|
66
|
+
*/
|
|
67
|
+
export declare function planResumeSlices(reviews: readonly PrReviewSliceReview[], planned: readonly {
|
|
68
|
+
label: string;
|
|
69
|
+
status: string;
|
|
70
|
+
}[]): string[];
|
|
71
|
+
//# sourceMappingURL=prReviewSlices.logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prReviewSlices.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/prReviewSlices.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AA2B5E;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,EAAE,CAoBtE;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAQ3E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,QAAQ,EAAE,mBAAmB,EAAE,GAC9B,mBAAmB,EAAE,CAWvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,EACpD,WAAW,EAAE;IAAE,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GACxE,mBAAmB,EAAE,CAGvB;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,OAAO,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GACpD,MAAM,EAAE,CAeV"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { parsePrReviewSliceReview } from '@cat-factory/contracts';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Per-slice PR-review capture: fold the harness's live slice reviews onto the `pr-reviewer` step.
|
|
4
|
+
//
|
|
5
|
+
// WHY THIS FILE EXISTS. A PR review fans its slices out across parallel subagents and emits
|
|
6
|
+
// `slices`/`findings` only in its TERMINAL structured output. Everything in between was previously
|
|
7
|
+
// unpersisted, so a review that died mid-run (or whose aggregation pass wedged, the motivating
|
|
8
|
+
// incident) threw away every finished slice and could only be re-run from zero. The harness now
|
|
9
|
+
// captures each slice's subagent report as it lands; this module makes it durable on the step, which
|
|
10
|
+
// is the prerequisite for resuming a stuck review for only the slices that never finished.
|
|
11
|
+
//
|
|
12
|
+
// Pure: no engine state, no IO. The fold is idempotent (the harness republishes the WHOLE set on
|
|
13
|
+
// every poll, latest-wins), which is what lets a dropped poll response cost nothing.
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/** Lenient parse of one harness-reported slice review; `null` when unusable. */
|
|
16
|
+
function coerceSliceReview(raw) {
|
|
17
|
+
const parsed = parsePrReviewSliceReview(raw);
|
|
18
|
+
if (!parsed)
|
|
19
|
+
return null;
|
|
20
|
+
// A label is the only field a resume can key on: an unlabelled slice can be neither paired with
|
|
21
|
+
// the reviewer's plan nor named in the prior-review context, so it is noise.
|
|
22
|
+
if (!parsed.label.trim())
|
|
23
|
+
return null;
|
|
24
|
+
return parsed;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parse the harness payload into slice reviews, dropping unusable entries.
|
|
28
|
+
*
|
|
29
|
+
* Deliberately lenient per ENTRY rather than all-or-nothing: one malformed slice must not discard
|
|
30
|
+
* the seven good reports beside it, since discarding them is exactly the data loss this channel
|
|
31
|
+
* exists to prevent.
|
|
32
|
+
*/
|
|
33
|
+
export function coerceSliceReviews(raw) {
|
|
34
|
+
if (!Array.isArray(raw))
|
|
35
|
+
return [];
|
|
36
|
+
const reviews = [];
|
|
37
|
+
for (const entry of raw) {
|
|
38
|
+
const review = coerceSliceReview(entry);
|
|
39
|
+
if (!review)
|
|
40
|
+
continue;
|
|
41
|
+
// The reviewer can dispatch the same slice label twice (a retried subagent). Keep the
|
|
42
|
+
// completed one whichever order they arrive in: a later in-flight duplicate must not demote a
|
|
43
|
+
// slice that already reported, or a resume would re-review work it already holds.
|
|
44
|
+
const key = review.label.trim();
|
|
45
|
+
const existing = reviews.findIndex((r) => r.label.trim() === key);
|
|
46
|
+
if (existing >= 0) {
|
|
47
|
+
if (reviews[existing].status !== 'completed' && review.status === 'completed') {
|
|
48
|
+
reviews[existing] = review;
|
|
49
|
+
}
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
reviews.push(review);
|
|
53
|
+
}
|
|
54
|
+
return reviews;
|
|
55
|
+
}
|
|
56
|
+
/** Whether two slice-review sets are equivalent, so an unchanged republish writes nothing. */
|
|
57
|
+
function sameSliceReviews(a, b) {
|
|
58
|
+
if (a.length !== b.length)
|
|
59
|
+
return false;
|
|
60
|
+
return a.every((left, i) => {
|
|
61
|
+
const right = b[i];
|
|
62
|
+
return (left.label === right.label &&
|
|
63
|
+
left.status === right.status &&
|
|
64
|
+
(left.report ?? null) === (right.report ?? null));
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Fold the harness's live per-slice reviews onto a `pr-reviewer` step, returning whether anything
|
|
69
|
+
* changed.
|
|
70
|
+
*
|
|
71
|
+
* Only applies to a step that already carries `prReview` (the reviewer seeds it at dispatch): the
|
|
72
|
+
* channel is review-specific, and a subagent-fanning coder step must not grow review state. Absent
|
|
73
|
+
* or unparseable payloads leave the step untouched.
|
|
74
|
+
*
|
|
75
|
+
* NEVER shrinks the set. The harness republishes everything it has captured, but a poll can be
|
|
76
|
+
* served by a RESTARTED container (a resume, an eviction retry) whose tracker only knows the slices
|
|
77
|
+
* IT dispatched — forwarding that verbatim would erase the previous attempt's reports, which are
|
|
78
|
+
* the whole point. So completed reports already on the step survive a set that no longer mentions
|
|
79
|
+
* them.
|
|
80
|
+
*/
|
|
81
|
+
export function applySliceReviews(step, raw) {
|
|
82
|
+
if (!step.prReview)
|
|
83
|
+
return false;
|
|
84
|
+
const incoming = coerceSliceReviews(raw);
|
|
85
|
+
if (incoming.length === 0)
|
|
86
|
+
return false;
|
|
87
|
+
const merged = mergeSliceReviews(step.prReview.sliceReviews ?? [], incoming);
|
|
88
|
+
if (sameSliceReviews(step.prReview.sliceReviews ?? [], merged))
|
|
89
|
+
return false;
|
|
90
|
+
step.prReview = { ...step.prReview, sliceReviews: merged };
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Merge freshly-reported slice reviews over what the step already holds, keyed by label.
|
|
95
|
+
*
|
|
96
|
+
* Monotonic in two directions, both of which matter across a resume: a slice already `completed`
|
|
97
|
+
* with a report is never demoted to `in_progress` (the resumed container re-dispatches it as new
|
|
98
|
+
* before its own subagent returns), and a slice the step knows about but this attempt never
|
|
99
|
+
* mentioned is kept rather than dropped.
|
|
100
|
+
*/
|
|
101
|
+
export function mergeSliceReviews(existing, incoming) {
|
|
102
|
+
const byLabel = new Map();
|
|
103
|
+
for (const review of existing)
|
|
104
|
+
byLabel.set(review.label.trim(), review);
|
|
105
|
+
for (const review of incoming) {
|
|
106
|
+
const key = review.label.trim();
|
|
107
|
+
const prior = byLabel.get(key);
|
|
108
|
+
// A completed report is terminal for that slice; only an upgrade to completed replaces it.
|
|
109
|
+
if (prior?.status === 'completed' && review.status !== 'completed')
|
|
110
|
+
continue;
|
|
111
|
+
byLabel.set(key, review);
|
|
112
|
+
}
|
|
113
|
+
return [...byLabel.values()];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* What the captured slice reports become once the reviewer's terminal output is recorded.
|
|
117
|
+
*
|
|
118
|
+
* They exist to make a review recoverable BEFORE that output, so an aggregation that CONSUMED them
|
|
119
|
+
* drops them: eight ~24KB prose reports on the run row is a quarter-megabyte of redundant text per
|
|
120
|
+
* review, and their content is in the findings by then.
|
|
121
|
+
*
|
|
122
|
+
* "Consumed" is the load-bearing word, and it is why this is a function rather than a `[]`. A
|
|
123
|
+
* reviewer that returned neither slices nor findings aggregated NOTHING — a crashed-out reply, an
|
|
124
|
+
* unusable output, a resumed run that died again — and clearing there would destroy the only record
|
|
125
|
+
* of the finished slices while recording the run as a clean PR. That is the exact loss this channel
|
|
126
|
+
* exists to prevent, wearing a pass as a disguise. So the reports survive precisely that case,
|
|
127
|
+
* leaving the review resumable.
|
|
128
|
+
*
|
|
129
|
+
* A genuinely clean PR still names its slices, so it takes the drop as before.
|
|
130
|
+
*/
|
|
131
|
+
export function sliceReviewsAfterAggregation(existing, aggregation) {
|
|
132
|
+
const aggregated = aggregation.slices.length > 0 || aggregation.findings.length > 0;
|
|
133
|
+
return aggregated ? [] : [...(existing ?? [])];
|
|
134
|
+
}
|
|
135
|
+
// ---------------------------------------------------------------------------
|
|
136
|
+
// Resume planning: what a manual resume of a wedged review still has to review.
|
|
137
|
+
// ---------------------------------------------------------------------------
|
|
138
|
+
/** Comparison key for a slice label — the harness pairs progress to slices the same way. */
|
|
139
|
+
function sliceKey(label) {
|
|
140
|
+
return label.trim().toLowerCase();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Whether a task-list entry is the reviewer's final AGGREGATION step rather than a slice. The
|
|
144
|
+
* `pr-reviewer` prompt fixes this wording ("aggregate findings") for that entry, and a resume
|
|
145
|
+
* always re-aggregates anyway, so it must never be listed as a slice to review.
|
|
146
|
+
*/
|
|
147
|
+
function isAggregationEntry(key) {
|
|
148
|
+
return key.startsWith('aggregate');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Work out which slices a manual resume still has to review, from the step's OWN observations.
|
|
152
|
+
*
|
|
153
|
+
* `planned` is the reviewer's live task list (`step.subtasks.items`), and it is the only place a
|
|
154
|
+
* slice that was planned but never DISPATCHED is named at all — the slice reviews can describe
|
|
155
|
+
* nothing but subagents that actually started. So the resume set is every planned slice with no
|
|
156
|
+
* completed review, plus any dispatched-but-unfinished slice the plan does not mention (a reviewer
|
|
157
|
+
* that regrouped mid-run, or never wrote a parent plan).
|
|
158
|
+
*
|
|
159
|
+
* Deduplicated on the same trimmed/lowercased key the labels are paired by, and ordered plan-first
|
|
160
|
+
* so the resumed reviewer is handed the slices in the order the previous attempt meant to take
|
|
161
|
+
* them. Returns labels in their original casing, which is what the prompt names them by.
|
|
162
|
+
*/
|
|
163
|
+
export function planResumeSlices(reviews, planned) {
|
|
164
|
+
const completed = new Set(reviews.filter((r) => r.status === 'completed').map((r) => sliceKey(r.label)));
|
|
165
|
+
const pending = [];
|
|
166
|
+
const seen = new Set();
|
|
167
|
+
const push = (label) => {
|
|
168
|
+
const key = sliceKey(label);
|
|
169
|
+
if (!key || isAggregationEntry(key) || completed.has(key) || seen.has(key))
|
|
170
|
+
return;
|
|
171
|
+
seen.add(key);
|
|
172
|
+
pending.push(label.trim());
|
|
173
|
+
};
|
|
174
|
+
for (const item of planned)
|
|
175
|
+
push(item.label);
|
|
176
|
+
for (const review of reviews)
|
|
177
|
+
if (review.status !== 'completed')
|
|
178
|
+
push(review.label);
|
|
179
|
+
return pending;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=prReviewSlices.logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prReviewSlices.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/prReviewSlices.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StepGating, TaskEstimate } from '@cat-factory/kernel';
|
|
1
|
+
import type { PipelineStep, StepGating, TaskEstimate } from '@cat-factory/kernel';
|
|
2
2
|
/**
|
|
3
3
|
* Decide whether a gated pipeline step should run, given the task estimate and the step's
|
|
4
4
|
* gating config. Mirrors the consensus-gating decision (OR across axes) but yields a plain
|
|
@@ -12,4 +12,28 @@ import type { StepGating, TaskEstimate } from '@cat-factory/kernel';
|
|
|
12
12
|
* to thoroughness).
|
|
13
13
|
*/
|
|
14
14
|
export declare function shouldRunGatedStep(estimate: TaskEstimate | null | undefined, gating: StepGating | null | undefined): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Whether `step` is a COMPANION whose producer was skipped, and must therefore be skipped too.
|
|
17
|
+
*
|
|
18
|
+
* A companion reviews the step immediately before it (`assertValidCompanionPlacement` guarantees
|
|
19
|
+
* that adjacency over the enabled subset). Once a PRODUCER can itself be estimate-gated, a
|
|
20
|
+
* companion can arrive with nothing to review: skipping `architect` on a light task would leave
|
|
21
|
+
* `architect-companion` grading whichever step happens to precede it — silently rating the wrong
|
|
22
|
+
* artifact rather than failing.
|
|
23
|
+
*
|
|
24
|
+
* Deliberately a LOCAL rule evaluated at the companion's own turn rather than a lookahead that
|
|
25
|
+
* skips two steps at once:
|
|
26
|
+
*
|
|
27
|
+
* - it reads PERSISTED state (`prior.skipped`), so it survives a durable-driver replay — an
|
|
28
|
+
* in-memory "I intend to skip the next one too" would not;
|
|
29
|
+
* - it composes with the companion's OWN gate (either reason skips it, and the reasons don't
|
|
30
|
+
* have to agree);
|
|
31
|
+
* - it needs no knowledge of which producer the companion targets, because adjacency is already
|
|
32
|
+
* an invariant the shape validation enforces.
|
|
33
|
+
*
|
|
34
|
+
* `steps`/`index` are the run's step list and this step's position in it. Index 0 can never be a
|
|
35
|
+
* companion (it would have no producer, which the shape validation rejects), so a missing
|
|
36
|
+
* predecessor yields `false` rather than a skip.
|
|
37
|
+
*/
|
|
38
|
+
export declare function producerWasSkipped(steps: readonly PipelineStep[], index: number): boolean;
|
|
15
39
|
//# sourceMappingURL=stepGating.logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepGating.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/stepGating.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"stepGating.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/stepGating.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGjF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GACpC,OAAO,CAYT;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIzF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isCompanionKind } from '@cat-factory/agents';
|
|
1
2
|
/**
|
|
2
3
|
* Decide whether a gated pipeline step should run, given the task estimate and the step's
|
|
3
4
|
* gating config. Mirrors the consensus-gating decision (OR across axes) but yields a plain
|
|
@@ -26,4 +27,33 @@ export function shouldRunGatedStep(estimate, gating) {
|
|
|
26
27
|
}
|
|
27
28
|
return false;
|
|
28
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Whether `step` is a COMPANION whose producer was skipped, and must therefore be skipped too.
|
|
32
|
+
*
|
|
33
|
+
* A companion reviews the step immediately before it (`assertValidCompanionPlacement` guarantees
|
|
34
|
+
* that adjacency over the enabled subset). Once a PRODUCER can itself be estimate-gated, a
|
|
35
|
+
* companion can arrive with nothing to review: skipping `architect` on a light task would leave
|
|
36
|
+
* `architect-companion` grading whichever step happens to precede it — silently rating the wrong
|
|
37
|
+
* artifact rather than failing.
|
|
38
|
+
*
|
|
39
|
+
* Deliberately a LOCAL rule evaluated at the companion's own turn rather than a lookahead that
|
|
40
|
+
* skips two steps at once:
|
|
41
|
+
*
|
|
42
|
+
* - it reads PERSISTED state (`prior.skipped`), so it survives a durable-driver replay — an
|
|
43
|
+
* in-memory "I intend to skip the next one too" would not;
|
|
44
|
+
* - it composes with the companion's OWN gate (either reason skips it, and the reasons don't
|
|
45
|
+
* have to agree);
|
|
46
|
+
* - it needs no knowledge of which producer the companion targets, because adjacency is already
|
|
47
|
+
* an invariant the shape validation enforces.
|
|
48
|
+
*
|
|
49
|
+
* `steps`/`index` are the run's step list and this step's position in it. Index 0 can never be a
|
|
50
|
+
* companion (it would have no producer, which the shape validation rejects), so a missing
|
|
51
|
+
* predecessor yields `false` rather than a skip.
|
|
52
|
+
*/
|
|
53
|
+
export function producerWasSkipped(steps, index) {
|
|
54
|
+
const step = steps[index];
|
|
55
|
+
if (!step || !isCompanionKind(step.agentKind))
|
|
56
|
+
return false;
|
|
57
|
+
return steps[index - 1]?.skipped === true;
|
|
58
|
+
}
|
|
29
59
|
//# sourceMappingURL=stepGating.logic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepGating.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/stepGating.logic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stepGating.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/stepGating.logic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAyC,EACzC,MAAqC;IAErC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAC,KAAK,KAAK,CAAA;IACnE,MAAM,IAAI,GAAwC;QAChD,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC3C,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;QAC/B,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC;KACpC,CAAA;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QACtC,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,IAAI,SAAS;YAAE,OAAO,IAAI,CAAA;IAChE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B,EAAE,KAAa;IAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3D,OAAO,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;AAC3C,CAAC"}
|
|
@@ -3,6 +3,7 @@ import type { Pipeline } from '@cat-factory/kernel';
|
|
|
3
3
|
import type { PipelineRegistry } from '@cat-factory/kernel';
|
|
4
4
|
import type { ObservabilityConnectionRepository, PipelineRepository, PipelineScheduleRepository, WorkspaceRepository } from '@cat-factory/kernel';
|
|
5
5
|
import type { IdGenerator } from '@cat-factory/kernel';
|
|
6
|
+
import type { AgentKindRegistry } from '@cat-factory/agents';
|
|
6
7
|
export interface PipelineServiceDependencies {
|
|
7
8
|
workspaceRepository: WorkspaceRepository;
|
|
8
9
|
pipelineRepository: PipelineRepository;
|
|
@@ -13,6 +14,17 @@ export interface PipelineServiceDependencies {
|
|
|
13
14
|
* the built-in catalog only.
|
|
14
15
|
*/
|
|
15
16
|
pipelineRegistry?: PipelineRegistry;
|
|
17
|
+
/**
|
|
18
|
+
* The app-owned agent-kind registry, so a save honours a DEPLOYMENT-registered kind's own
|
|
19
|
+
* `gatable` flag — the same answer the run-start guard reaches. Optional so the service stays
|
|
20
|
+
* constructible standalone in unit tests; absent ⇒ built-in gatability only.
|
|
21
|
+
*
|
|
22
|
+
* `createCore` passes the instance `resolveCoreRuntime` RESOLVED (the facade's, else the default),
|
|
23
|
+
* which is the same one `RunAdmission` gets. Passing `CoreDependencies.agentKindRegistry` straight
|
|
24
|
+
* through instead would hand this `undefined` on every facade that doesn't inject one, and the two
|
|
25
|
+
* boundaries would then be answering "may this step be gated?" from different registries.
|
|
26
|
+
*/
|
|
27
|
+
agentKindRegistry?: AgentKindRegistry;
|
|
16
28
|
/**
|
|
17
29
|
* Resolves whether the workspace has any observability integration enabled (today: a
|
|
18
30
|
* Datadog connection). When absent (no observability persistence wired at all), the
|
|
@@ -35,7 +47,8 @@ export declare class PipelineService {
|
|
|
35
47
|
private readonly observabilityConnectionRepository?;
|
|
36
48
|
private readonly pipelineScheduleRepository?;
|
|
37
49
|
private readonly pipelineRegistry?;
|
|
38
|
-
|
|
50
|
+
private readonly agentKindRegistry?;
|
|
51
|
+
constructor({ workspaceRepository, pipelineRepository, idGenerator, observabilityConnectionRepository, pipelineScheduleRepository, pipelineRegistry, agentKindRegistry, }: PipelineServiceDependencies);
|
|
39
52
|
/**
|
|
40
53
|
* The post-release-health gate is only meaningful with an observability integration, so
|
|
41
54
|
* reject a chain that includes an ENABLED post-release-health step unless the workspace
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PipelineService.d.ts","sourceRoot":"","sources":["../../../src/modules/pipelines/PipelineService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAQ3D,OAAO,KAAK,EACV,iCAAiC,EACjC,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"PipelineService.d.ts","sourceRoot":"","sources":["../../../src/modules/pipelines/PipelineService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAQ3D,OAAO,KAAK,EACV,iCAAiC,EACjC,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAc5D,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,WAAW,EAAE,WAAW,CAAA;IACxB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;;OAIG;IACH,iCAAiC,CAAC,EAAE,iCAAiC,CAAA;IACrE;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,0BAA0B,CAAA;CACxD;AA0BD,wDAAwD;AACxD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAmC;IACtF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAA4B;IACxE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IAEtD,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,iCAAiC,EACjC,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,GAClB,EAAE,2BAA2B,EAQ7B;IAED;;;;;OAKG;YACW,mCAAmC;IAiBjD,OAAO,CAAC,gBAAgB;IAIlB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGnD;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAoC/E;IAED;;;;OAIG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiD/F;IAED;;;;OAIG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA+G3F;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiC/D;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3D;IAED;;;;;OAKG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAc/F;CACF"}
|
|
@@ -38,13 +38,15 @@ export class PipelineService {
|
|
|
38
38
|
observabilityConnectionRepository;
|
|
39
39
|
pipelineScheduleRepository;
|
|
40
40
|
pipelineRegistry;
|
|
41
|
-
|
|
41
|
+
agentKindRegistry;
|
|
42
|
+
constructor({ workspaceRepository, pipelineRepository, idGenerator, observabilityConnectionRepository, pipelineScheduleRepository, pipelineRegistry, agentKindRegistry, }) {
|
|
42
43
|
this.workspaceRepository = workspaceRepository;
|
|
43
44
|
this.pipelineRepository = pipelineRepository;
|
|
44
45
|
this.idGenerator = idGenerator;
|
|
45
46
|
this.observabilityConnectionRepository = observabilityConnectionRepository;
|
|
46
47
|
this.pipelineScheduleRepository = pipelineScheduleRepository;
|
|
47
48
|
this.pipelineRegistry = pipelineRegistry;
|
|
49
|
+
this.agentKindRegistry = agentKindRegistry;
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* The post-release-health gate is only meaningful with an observability integration, so
|
|
@@ -74,9 +76,11 @@ export class PipelineService {
|
|
|
74
76
|
validatePipelineShape({
|
|
75
77
|
agentKinds: input.agentKinds,
|
|
76
78
|
enabled: input.enabled,
|
|
79
|
+
gates: input.gates,
|
|
77
80
|
gating: input.gating,
|
|
78
81
|
testerQuality: input.testerQuality,
|
|
79
82
|
stepOptions: input.stepOptions,
|
|
83
|
+
agentKindRegistry: this.agentKindRegistry,
|
|
80
84
|
});
|
|
81
85
|
// Launch-constraint validation (no origin — a save, not a launch): a `bug-intake` step
|
|
82
86
|
// requires a recurring pipeline. `availability` absent ⇒ `'both'` (unrestricted). Evaluated
|
|
@@ -117,9 +121,11 @@ export class PipelineService {
|
|
|
117
121
|
validatePipelineShape({
|
|
118
122
|
agentKinds: source.agentKinds,
|
|
119
123
|
enabled: source.enabled,
|
|
124
|
+
gates: source.gates,
|
|
120
125
|
gating: source.gating,
|
|
121
126
|
testerQuality: source.testerQuality,
|
|
122
127
|
stepOptions: source.stepOptions,
|
|
128
|
+
agentKindRegistry: this.agentKindRegistry,
|
|
123
129
|
});
|
|
124
130
|
// Same launch-constraint guarantee create/update give: a clone preserves the source's
|
|
125
131
|
// agentKinds + availability, so re-check that the pair is launchable (e.g. a bug-intake step
|
|
@@ -169,12 +175,25 @@ export class PipelineService {
|
|
|
169
175
|
// while leaving its companion on would orphan the companion, and adding gating (step or
|
|
170
176
|
// tester-QC) without an estimator is illegal — so validate whenever the chain, enable
|
|
171
177
|
// flags, gating, OR tester-QC change, not just on a chain replacement.
|
|
178
|
+
//
|
|
179
|
+
// `input.gates` is a trigger too: a human approval gate and an estimate gate on the SAME step
|
|
180
|
+
// is illegal, so adding the approval gate to an already-estimate-gated step invalidates the
|
|
181
|
+
// shape while touching neither the chain nor `gating`.
|
|
172
182
|
if (input.agentKinds ||
|
|
173
183
|
input.enabled ||
|
|
184
|
+
input.gates ||
|
|
174
185
|
input.gating ||
|
|
175
186
|
input.testerQuality ||
|
|
176
187
|
input.stepOptions) {
|
|
177
|
-
validatePipelineShape({
|
|
188
|
+
validatePipelineShape({
|
|
189
|
+
agentKinds,
|
|
190
|
+
enabled,
|
|
191
|
+
gates,
|
|
192
|
+
gating,
|
|
193
|
+
testerQuality,
|
|
194
|
+
stepOptions,
|
|
195
|
+
agentKindRegistry: this.agentKindRegistry,
|
|
196
|
+
});
|
|
178
197
|
await this.assertObservabilityGatedStepAllowed(workspaceId, agentKinds, enabled);
|
|
179
198
|
}
|
|
180
199
|
// Re-check the launch constraint when the chain, the enable mask, or the availability
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PipelineService.js","sourceRoot":"","sources":["../../../src/modules/pipelines/PipelineService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PipelineService.js","sourceRoot":"","sources":["../../../src/modules/pipelines/PipelineService.ts"],"names":[],"mappings":"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"}
|