@cat-factory/orchestration 0.136.0 → 0.137.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/engine-collaborators.d.ts +49 -0
- package/dist/container/engine-collaborators.d.ts.map +1 -0
- package/dist/container/engine-collaborators.js +93 -0
- package/dist/container/engine-collaborators.js.map +1 -0
- package/dist/container/engine-dependent-modules.d.ts +30 -0
- package/dist/container/engine-dependent-modules.d.ts.map +1 -0
- package/dist/container/engine-dependent-modules.js +54 -0
- package/dist/container/engine-dependent-modules.js.map +1 -0
- package/dist/container.d.ts +21 -3
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +31 -102
- package/dist/container.js.map +1 -1
- package/dist/modules/execution/ExecutionService.d.ts +27 -370
- package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionService.js +51 -139
- package/dist/modules/execution/ExecutionService.js.map +1 -1
- package/dist/modules/execution/ExecutionServiceDependencies.d.ts +381 -0
- package/dist/modules/execution/ExecutionServiceDependencies.d.ts.map +1 -0
- package/dist/modules/execution/ExecutionServiceDependencies.js +2 -0
- package/dist/modules/execution/ExecutionServiceDependencies.js.map +1 -0
- package/dist/modules/execution/PrVerificationReportController.d.ts +106 -0
- package/dist/modules/execution/PrVerificationReportController.d.ts.map +1 -0
- package/dist/modules/execution/PrVerificationReportController.js +134 -0
- package/dist/modules/execution/PrVerificationReportController.js.map +1 -0
- package/dist/modules/execution/RunDispatcher.d.ts +4 -0
- package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcher.js +13 -0
- package/dist/modules/execution/RunDispatcher.js.map +1 -1
- package/dist/modules/execution/gate-window-controllers.d.ts +209 -0
- package/dist/modules/execution/gate-window-controllers.d.ts.map +1 -0
- package/dist/modules/execution/gate-window-controllers.js +212 -0
- package/dist/modules/execution/gate-window-controllers.js.map +1 -0
- package/dist/modules/execution/prReport.logic.d.ts +25 -0
- package/dist/modules/execution/prReport.logic.d.ts.map +1 -0
- package/dist/modules/execution/prReport.logic.js +436 -0
- package/dist/modules/execution/prReport.logic.js.map +1 -0
- package/dist/modules/execution/prReportText.logic.d.ts +46 -0
- package/dist/modules/execution/prReportText.logic.d.ts.map +1 -0
- package/dist/modules/execution/prReportText.logic.js +188 -0
- package/dist/modules/execution/prReportText.logic.js.map +1 -0
- package/dist/modules/settings/WorkspaceSettingsService.d.ts.map +1 -1
- package/dist/modules/settings/WorkspaceSettingsService.js +1 -0
- package/dist/modules/settings/WorkspaceSettingsService.js.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The human-gate window controllers the engine composes: the Tester / Ralph / human-test /
|
|
3
|
+
* visual-confirmation gates, the shared review gate, the implementation-fork decision gate and
|
|
4
|
+
* the PR-review gate.
|
|
5
|
+
*
|
|
6
|
+
* Extracted verbatim from the {@link ExecutionService} constructor (which had grown past the
|
|
7
|
+
* per-function line budget — docs/initiatives/lint-complexity-size-ratchet.md) following the
|
|
8
|
+
* established `RunDispatcher` controller pattern: the factory takes ONE deps object of already-
|
|
9
|
+
* built collaborators plus BOUND call-backs for the engine methods the controllers reach back
|
|
10
|
+
* into (`resolveRiskPolicy` / `dispatchIterationCap` / `clockNow`), so every closure still
|
|
11
|
+
* resolves through the live engine instance exactly as before. Behaviour-neutral.
|
|
12
|
+
*/
|
|
13
|
+
import { TesterController } from './TesterController.js';
|
|
14
|
+
import { RalphController } from './RalphController.js';
|
|
15
|
+
import { HumanTestController } from './HumanTestController.js';
|
|
16
|
+
import { VisualConfirmationController } from './VisualConfirmationController.js';
|
|
17
|
+
import { ReviewGateController } from './ReviewGateController.js';
|
|
18
|
+
import { ForkDecisionController } from './ForkDecisionController.js';
|
|
19
|
+
import { PrReviewController } from './PrReviewController.js';
|
|
20
|
+
import { InitiativeInterviewController } from './InitiativeInterviewController.js';
|
|
21
|
+
import { DocInterviewController } from './DocInterviewController.js';
|
|
22
|
+
import { buildBrainstormKind, buildClarityKind, buildRequirementsKind } from './review-kinds.js';
|
|
23
|
+
import { ARCHITECTURE_BRAINSTORM_AGENT_KIND, REQUIREMENTS_BRAINSTORM_AGENT_KIND, } from './ci.logic.js';
|
|
24
|
+
/**
|
|
25
|
+
* Build the human-gate window controllers over one shared deps bundle (see the module doc).
|
|
26
|
+
*/
|
|
27
|
+
export function buildGateWindowControllers(deps) {
|
|
28
|
+
const { blockRepository, executionRepository, workRunner, agentExecutor, notificationService, contextBuilder, stateMachine, stepGraph, idGenerator, clock, clockNow, resolveRiskPolicy, dispatchIterationCap, testerQualityReviewer, environmentProvisioning, environmentTeardown, branchUpdater, resolveBinaryArtifactStore, forkChatService, } = deps;
|
|
29
|
+
const testerController = new TesterController({
|
|
30
|
+
blockRepository,
|
|
31
|
+
notificationService,
|
|
32
|
+
agentExecutor,
|
|
33
|
+
contextBuilder,
|
|
34
|
+
resolveRiskPolicy,
|
|
35
|
+
stateMachine,
|
|
36
|
+
// The test quality-control companion's inline reviewer (when wired); absent → QC
|
|
37
|
+
// pass-through. Stamps its verdicts with the engine clock.
|
|
38
|
+
...(testerQualityReviewer ? { qualityReviewer: testerQualityReviewer } : {}),
|
|
39
|
+
clockNow,
|
|
40
|
+
});
|
|
41
|
+
const ralphController = new RalphController({
|
|
42
|
+
blockRepository,
|
|
43
|
+
notificationService,
|
|
44
|
+
agentExecutor,
|
|
45
|
+
contextBuilder,
|
|
46
|
+
stateMachine,
|
|
47
|
+
clockNow,
|
|
48
|
+
});
|
|
49
|
+
const humanTestController = new HumanTestController({
|
|
50
|
+
blockRepository,
|
|
51
|
+
executionRepository,
|
|
52
|
+
workRunner,
|
|
53
|
+
agentExecutor,
|
|
54
|
+
contextBuilder,
|
|
55
|
+
notificationService,
|
|
56
|
+
// The human-test gate READS the env the upstream `deployer` step provisioned (it no longer
|
|
57
|
+
// stands up its own) — resolved by the block's OWN service frame, exactly as the tester
|
|
58
|
+
// context resolves it, so the gate and the tester(s) share the one provisioned env. Left
|
|
59
|
+
// undefined when no provider is wired (the gate degrades to manual mode).
|
|
60
|
+
...(environmentProvisioning
|
|
61
|
+
? {
|
|
62
|
+
readEnvironment: async (ws, block) => {
|
|
63
|
+
const frame = await contextBuilder.resolveServiceFrame(ws, block.id);
|
|
64
|
+
const handle = await environmentProvisioning.getHandleForBlock(ws, block.id, frame?.id);
|
|
65
|
+
// Reconcile against the LIVE provider status when the stored record isn't yet
|
|
66
|
+
// `ready`: the deployer records an async provider's env as `provisioning`, and nothing
|
|
67
|
+
// re-polls that row once the deployer step completes, so a slow-but-now-ready env
|
|
68
|
+
// would otherwise read stale and wrongly degrade the gate to manual mode. One refresh
|
|
69
|
+
// reconciles it; an env still genuinely provisioning / failed degrades as before.
|
|
70
|
+
// Best-effort — keep the stored handle if the status read throws.
|
|
71
|
+
if (handle && handle.status !== 'ready') {
|
|
72
|
+
try {
|
|
73
|
+
return await environmentProvisioning.refreshStatus(ws, handle.id);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return handle;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return handle;
|
|
80
|
+
},
|
|
81
|
+
}
|
|
82
|
+
: {}),
|
|
83
|
+
...(environmentTeardown
|
|
84
|
+
? {
|
|
85
|
+
teardownEnvironment: async (ws, id) => {
|
|
86
|
+
await environmentTeardown.teardown(ws, id);
|
|
87
|
+
},
|
|
88
|
+
}
|
|
89
|
+
: {}),
|
|
90
|
+
...(branchUpdater ? { branchUpdater } : {}),
|
|
91
|
+
resolveRiskPolicy,
|
|
92
|
+
stateMachine,
|
|
93
|
+
stepGraph,
|
|
94
|
+
clockNow,
|
|
95
|
+
});
|
|
96
|
+
const visualConfirmationController = new VisualConfirmationController({
|
|
97
|
+
blockRepository,
|
|
98
|
+
executionRepository,
|
|
99
|
+
workRunner,
|
|
100
|
+
agentExecutor,
|
|
101
|
+
contextBuilder,
|
|
102
|
+
notificationService,
|
|
103
|
+
...(resolveBinaryArtifactStore ? { resolveBinaryArtifactStore } : {}),
|
|
104
|
+
resolveRiskPolicy,
|
|
105
|
+
stateMachine,
|
|
106
|
+
stepGraph,
|
|
107
|
+
clockNow,
|
|
108
|
+
});
|
|
109
|
+
const reviewGate = new ReviewGateController({
|
|
110
|
+
blockRepository,
|
|
111
|
+
executionRepository,
|
|
112
|
+
workRunner,
|
|
113
|
+
stateMachine,
|
|
114
|
+
stepGraph,
|
|
115
|
+
resolveRiskPolicy,
|
|
116
|
+
dispatchIterationCap,
|
|
117
|
+
});
|
|
118
|
+
const forkDecisionController = new ForkDecisionController({
|
|
119
|
+
blockRepository,
|
|
120
|
+
executionRepository,
|
|
121
|
+
workRunner,
|
|
122
|
+
stateMachine,
|
|
123
|
+
stepGraph,
|
|
124
|
+
idGenerator,
|
|
125
|
+
clock,
|
|
126
|
+
notificationService,
|
|
127
|
+
...(forkChatService ? { forkChatService } : {}),
|
|
128
|
+
resolveEffectiveDescription: (ws, block) => contextBuilder.resolveEffectiveDescription(ws, block),
|
|
129
|
+
});
|
|
130
|
+
const prReviewController = new PrReviewController({
|
|
131
|
+
executionRepository,
|
|
132
|
+
workRunner,
|
|
133
|
+
stateMachine,
|
|
134
|
+
stepGraph,
|
|
135
|
+
idGenerator,
|
|
136
|
+
clock,
|
|
137
|
+
notificationService,
|
|
138
|
+
});
|
|
139
|
+
return {
|
|
140
|
+
testerController,
|
|
141
|
+
ralphController,
|
|
142
|
+
humanTestController,
|
|
143
|
+
visualConfirmationController,
|
|
144
|
+
reviewGate,
|
|
145
|
+
forkDecisionController,
|
|
146
|
+
prReviewController,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Build the review-gate SUBJECTS (requirements / clarity / the two brainstorm stages) plus the
|
|
151
|
+
* two interactive interview gates (initiative planning, document interview). Extracted verbatim
|
|
152
|
+
* from the {@link ExecutionService} constructor for the per-function line budget — each
|
|
153
|
+
* subject's differentiators still live in `review-kinds.ts`, not on the engine.
|
|
154
|
+
*/
|
|
155
|
+
export function buildReviewSubjects(deps) {
|
|
156
|
+
const { blockRepository, executionRepository, workRunner, stateMachine, stepGraph, executionEventPublisher, requirementReviewService, clarityReviewService, brainstormServices, issueWriteback, initiativeService, initiativeInterviewService, docInterviewService, } = deps;
|
|
157
|
+
// The review-gate subjects (requirements / clarity / the two brainstorm stages), built by
|
|
158
|
+
// the factories in review-kinds.ts over one shared closure of collaborators — each subject's
|
|
159
|
+
// differentiators live there, not on the engine.
|
|
160
|
+
const reviewKindDeps = {
|
|
161
|
+
events: executionEventPublisher,
|
|
162
|
+
blockRepository,
|
|
163
|
+
executionRepository,
|
|
164
|
+
requirementReviewService,
|
|
165
|
+
clarityReviewService,
|
|
166
|
+
brainstormServices,
|
|
167
|
+
issueWriteback,
|
|
168
|
+
};
|
|
169
|
+
const requirementsKind = buildRequirementsKind(reviewKindDeps);
|
|
170
|
+
const clarityKind = buildClarityKind(reviewKindDeps);
|
|
171
|
+
const requirementsBrainstormKind = buildBrainstormKind('requirements', REQUIREMENTS_BRAINSTORM_AGENT_KIND, reviewKindDeps);
|
|
172
|
+
const architectureBrainstormKind = buildBrainstormKind('architecture', ARCHITECTURE_BRAINSTORM_AGENT_KIND, reviewKindDeps);
|
|
173
|
+
// The interactive-planning interviewer gate — wired whenever the initiative store is
|
|
174
|
+
// present (the entity is where its state lives). The interviewer LLM is optional: without
|
|
175
|
+
// it (or without a model) the gate passes through, so planning still runs off the raw
|
|
176
|
+
// block description. Absent initiative store → the `initiative-interviewer` step passes
|
|
177
|
+
// through in RunDispatcher (an initiative pipeline can't run without the store anyway).
|
|
178
|
+
const initiativeInterviewController = initiativeService
|
|
179
|
+
? new InitiativeInterviewController({
|
|
180
|
+
blockRepository,
|
|
181
|
+
executionRepository,
|
|
182
|
+
workRunner,
|
|
183
|
+
stateMachine,
|
|
184
|
+
stepGraph,
|
|
185
|
+
interviewService: initiativeInterviewService,
|
|
186
|
+
initiativeService,
|
|
187
|
+
})
|
|
188
|
+
: undefined;
|
|
189
|
+
// The interactive document-interview gate (WS5) — wired whenever the interview service is
|
|
190
|
+
// present. Without it (or without a model) the gate passes through, so document pipelines
|
|
191
|
+
// still run off the raw outline. Self-contained persistence lives in the service.
|
|
192
|
+
const docInterviewController = docInterviewService
|
|
193
|
+
? new DocInterviewController({
|
|
194
|
+
blockRepository,
|
|
195
|
+
executionRepository,
|
|
196
|
+
workRunner,
|
|
197
|
+
stateMachine,
|
|
198
|
+
stepGraph,
|
|
199
|
+
events: executionEventPublisher,
|
|
200
|
+
docInterviewService,
|
|
201
|
+
})
|
|
202
|
+
: undefined;
|
|
203
|
+
return {
|
|
204
|
+
requirementsKind,
|
|
205
|
+
clarityKind,
|
|
206
|
+
requirementsBrainstormKind,
|
|
207
|
+
architectureBrainstormKind,
|
|
208
|
+
initiativeInterviewController,
|
|
209
|
+
docInterviewController,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=gate-window-controllers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-window-controllers.js","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Block, ExecutionInstance, PrReportIssue, PrVerificationReport } from '@cat-factory/kernel';
|
|
2
|
+
/** The non-run inputs the composer needs beyond the instance itself. */
|
|
3
|
+
export interface PrReportInputs {
|
|
4
|
+
block: Block;
|
|
5
|
+
/** Tracker issues linked to the task (one `listByBlock` read — never a per-issue loop). */
|
|
6
|
+
issues: PrReportIssue[];
|
|
7
|
+
/** `owner/name` of the repo the run targeted, when resolved. */
|
|
8
|
+
repo?: string | null;
|
|
9
|
+
/** The VCS provider that repo lives on (neutral vocabulary — never assumed GitHub). */
|
|
10
|
+
provider?: 'github' | 'gitlab' | null;
|
|
11
|
+
/** Deep link into the run's observability panel; null when no public app URL is configured. */
|
|
12
|
+
runUrl: string | null;
|
|
13
|
+
/** Epoch ms stamped as the report's `generatedAt`. */
|
|
14
|
+
now: number;
|
|
15
|
+
}
|
|
16
|
+
/** Compose the report from a run's in-memory state plus the few resolved inputs. */
|
|
17
|
+
export declare function composePrVerificationReport(instance: ExecutionInstance, inputs: PrReportInputs): PrVerificationReport;
|
|
18
|
+
/**
|
|
19
|
+
* Render the report as the managed PR-body section: human-readable markdown followed by a
|
|
20
|
+
* fenced JSON block carrying the exact {@link PrVerificationReport} shape, so external
|
|
21
|
+
* tooling can ingest it without scraping prose. The caller splices the result into the PR
|
|
22
|
+
* body between the kernel's markers — this function emits the section CONTENTS only.
|
|
23
|
+
*/
|
|
24
|
+
export declare function renderPrVerificationReport(report: PrVerificationReport): string;
|
|
25
|
+
//# sourceMappingURL=prReport.logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prReport.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/prReport.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EAMjB,aAAa,EACb,oBAAoB,EAErB,MAAM,qBAAqB,CAAA;AAuD5B,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,2FAA2F;IAC3F,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAA;IACrC,+FAA+F;IAC/F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAA;CACZ;AAmOD,oFAAoF;AACpF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,cAAc,GACrB,oBAAoB,CAiCtB;AAoJD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAsC/E"}
|