@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.
Files changed (44) hide show
  1. package/dist/container/engine-collaborators.d.ts +49 -0
  2. package/dist/container/engine-collaborators.d.ts.map +1 -0
  3. package/dist/container/engine-collaborators.js +93 -0
  4. package/dist/container/engine-collaborators.js.map +1 -0
  5. package/dist/container/engine-dependent-modules.d.ts +30 -0
  6. package/dist/container/engine-dependent-modules.d.ts.map +1 -0
  7. package/dist/container/engine-dependent-modules.js +54 -0
  8. package/dist/container/engine-dependent-modules.js.map +1 -0
  9. package/dist/container.d.ts +21 -3
  10. package/dist/container.d.ts.map +1 -1
  11. package/dist/container.js +31 -102
  12. package/dist/container.js.map +1 -1
  13. package/dist/modules/execution/ExecutionService.d.ts +27 -370
  14. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  15. package/dist/modules/execution/ExecutionService.js +51 -139
  16. package/dist/modules/execution/ExecutionService.js.map +1 -1
  17. package/dist/modules/execution/ExecutionServiceDependencies.d.ts +381 -0
  18. package/dist/modules/execution/ExecutionServiceDependencies.d.ts.map +1 -0
  19. package/dist/modules/execution/ExecutionServiceDependencies.js +2 -0
  20. package/dist/modules/execution/ExecutionServiceDependencies.js.map +1 -0
  21. package/dist/modules/execution/PrVerificationReportController.d.ts +106 -0
  22. package/dist/modules/execution/PrVerificationReportController.d.ts.map +1 -0
  23. package/dist/modules/execution/PrVerificationReportController.js +134 -0
  24. package/dist/modules/execution/PrVerificationReportController.js.map +1 -0
  25. package/dist/modules/execution/RunDispatcher.d.ts +4 -0
  26. package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
  27. package/dist/modules/execution/RunDispatcher.js +13 -0
  28. package/dist/modules/execution/RunDispatcher.js.map +1 -1
  29. package/dist/modules/execution/gate-window-controllers.d.ts +209 -0
  30. package/dist/modules/execution/gate-window-controllers.d.ts.map +1 -0
  31. package/dist/modules/execution/gate-window-controllers.js +212 -0
  32. package/dist/modules/execution/gate-window-controllers.js.map +1 -0
  33. package/dist/modules/execution/prReport.logic.d.ts +25 -0
  34. package/dist/modules/execution/prReport.logic.d.ts.map +1 -0
  35. package/dist/modules/execution/prReport.logic.js +436 -0
  36. package/dist/modules/execution/prReport.logic.js.map +1 -0
  37. package/dist/modules/execution/prReportText.logic.d.ts +46 -0
  38. package/dist/modules/execution/prReportText.logic.d.ts.map +1 -0
  39. package/dist/modules/execution/prReportText.logic.js +188 -0
  40. package/dist/modules/execution/prReportText.logic.js.map +1 -0
  41. package/dist/modules/settings/WorkspaceSettingsService.d.ts.map +1 -1
  42. package/dist/modules/settings/WorkspaceSettingsService.js +1 -0
  43. package/dist/modules/settings/WorkspaceSettingsService.js.map +1 -1
  44. 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"}