@cat-factory/orchestration 0.12.0 → 0.14.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 +3 -1
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +3 -0
- package/dist/container.js.map +1 -1
- package/dist/modules/board/BoardService.d.ts +23 -1
- package/dist/modules/board/BoardService.d.ts.map +1 -1
- package/dist/modules/board/BoardService.js +108 -18
- package/dist/modules/board/BoardService.js.map +1 -1
- package/dist/modules/board/board.logic.d.ts +19 -0
- package/dist/modules/board/board.logic.d.ts.map +1 -1
- package/dist/modules/board/board.logic.js +60 -0
- package/dist/modules/board/board.logic.js.map +1 -1
- package/dist/modules/execution/ExecutionService.d.ts +61 -2
- package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionService.js +209 -4
- package/dist/modules/execution/ExecutionService.js.map +1 -1
- package/dist/modules/execution/HumanTestController.d.ts +147 -0
- package/dist/modules/execution/HumanTestController.d.ts.map +1 -0
- package/dist/modules/execution/HumanTestController.js +493 -0
- package/dist/modules/execution/HumanTestController.js.map +1 -0
- package/dist/modules/execution/ci.logic.d.ts +9 -0
- package/dist/modules/execution/ci.logic.d.ts.map +1 -1
- package/dist/modules/execution/ci.logic.js +9 -0
- package/dist/modules/execution/ci.logic.js.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board.logic.js","sourceRoot":"","sources":["../../../src/modules/board/board.logic.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,+EAA+E;AAC/E,gDAAgD;AAEhD,+DAA+D;AAC/D,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;IAChF,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;AACvE,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,OAAO,CAAC,MAAe,EAAE,WAAmB;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAA;AAC/E,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,SAAS,CAAC,MAAe,EAAE,SAAiB;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAA;AAC/E,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,SAAS,CAAC,MAAe,EAAE,KAAY;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,IAAI,GAAG,GAAsB,KAAK,CAAA;IAClC,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACpC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACzD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe,EAAE,MAAc;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IACxC,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,GAAG,KAAK,CAAA;QACZ,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;gBAChB,IAAI,GAAG,IAAI,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,WAAW,CAAC,UAAsB,EAAE,MAAa;IAC/D,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAA;IACvF,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,KAAK,OAAO,CAAA;IAC5D,OAAO,KAAK,CAAA,CAAC,wBAAwB;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"board.logic.js","sourceRoot":"","sources":["../../../src/modules/board/board.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,8 @@ import type { DocumentRepository } from '@cat-factory/kernel';
|
|
|
17
17
|
import type { TaskRepository } from '@cat-factory/kernel';
|
|
18
18
|
import type { RequirementReviewRepository } from '@cat-factory/kernel';
|
|
19
19
|
import type { ClarityReviewRepository } from '@cat-factory/kernel';
|
|
20
|
-
import type { EnvironmentProvisioningService } from '@cat-factory/integrations';
|
|
20
|
+
import type { EnvironmentProvisioningService, EnvironmentTeardownService } from '@cat-factory/integrations';
|
|
21
|
+
import type { BranchUpdater } from '@cat-factory/kernel';
|
|
21
22
|
import type { BoardService } from '../board/BoardService.js';
|
|
22
23
|
import type { SpendService } from '@cat-factory/spend';
|
|
23
24
|
import type { AdvanceOptions, AdvanceResult } from './advance.js';
|
|
@@ -105,6 +106,19 @@ export interface ExecutionServiceDependencies {
|
|
|
105
106
|
* (no LLM), and downstream steps discover the resulting env via it.
|
|
106
107
|
*/
|
|
107
108
|
environmentProvisioning?: EnvironmentProvisioningService;
|
|
109
|
+
/**
|
|
110
|
+
* Optional: tears down ephemeral environments. Wired alongside
|
|
111
|
+
* {@link environmentProvisioning}; the `human-test` gate uses it to destroy an env on
|
|
112
|
+
* confirm / recreate / on-demand. Absent → the gate's destroy/recreate is a no-op.
|
|
113
|
+
*/
|
|
114
|
+
environmentTeardown?: EnvironmentTeardownService;
|
|
115
|
+
/**
|
|
116
|
+
* Optional: merges the repo default branch into a block's PR branch server-side. Wired
|
|
117
|
+
* when GitHub is configured; the `human-test` gate's "pull latest main" action uses it
|
|
118
|
+
* (a clean merge rebuilds the env; a conflict escalates to the conflict-resolver). Absent
|
|
119
|
+
* → pulling main is unavailable on the gate.
|
|
120
|
+
*/
|
|
121
|
+
branchUpdater?: BranchUpdater;
|
|
108
122
|
/**
|
|
109
123
|
* Optional: when the board-scan module is configured, a `blueprints` step's
|
|
110
124
|
* decomposition tree is reconciled onto the board through this (BoardScanService).
|
|
@@ -235,6 +249,8 @@ export declare class ExecutionService {
|
|
|
235
249
|
private readonly requirementReviewService?;
|
|
236
250
|
private readonly clarityReviewService?;
|
|
237
251
|
private readonly environmentProvisioning?;
|
|
252
|
+
private readonly environmentTeardown?;
|
|
253
|
+
private readonly branchUpdater?;
|
|
238
254
|
/** Assembles the per-step agent context (requirements, docs, env, service frame, fragments). */
|
|
239
255
|
private readonly contextBuilder;
|
|
240
256
|
/** Resolves a `merger` step's assessment into an auto-merge or a `merge_review` notification. */
|
|
@@ -243,6 +259,8 @@ export declare class ExecutionService {
|
|
|
243
259
|
private readonly companionController;
|
|
244
260
|
/** Drives the Tester gate's fix loop: report → greenlight / dispatch fixer / fail. */
|
|
245
261
|
private readonly testerController;
|
|
262
|
+
/** Drives the human-testing gate: provision env → park → confirm / fix / pull-main / recreate. */
|
|
263
|
+
private readonly humanTestController;
|
|
246
264
|
/** Drives both iterative review gates (requirements + clarity); kind-parameterised. */
|
|
247
265
|
private readonly reviewGate;
|
|
248
266
|
/** The requirements subject for {@link reviewGate}. */
|
|
@@ -279,7 +297,7 @@ export declare class ExecutionService {
|
|
|
279
297
|
* {@link stepResolverFor} and {@link StepCompletionResolver}.
|
|
280
298
|
*/
|
|
281
299
|
private stepResolverCache?;
|
|
282
|
-
constructor({ workspaceRepository, blockRepository, pipelineRepository, executionRepository, accountRepository, idGenerator, clock, agentExecutor, workRunner, executionEventPublisher, boardService, spendService, documentRepository, taskRepository, requirementReviewRepository, requirementReviewService, clarityReviewRepository, clarityReviewService, environmentProvisioning, blueprintReconciler, notificationService, workspaceSettingsService, llmObservability, ciStatusProvider, mergeabilityProvider, releaseHealthProvider, incidentEnrichment, pullRequestMerger, mergePresetRepository, ticketTrackerProvider, issueWriteback, subscriptionActivationRepository, resolveWorkspaceModelDefault, resolveProviderCapabilities, localTestInfraSupported, resolveRunRepoContext, runInitiatorScope, }: ExecutionServiceDependencies);
|
|
300
|
+
constructor({ workspaceRepository, blockRepository, pipelineRepository, executionRepository, accountRepository, idGenerator, clock, agentExecutor, workRunner, executionEventPublisher, boardService, spendService, documentRepository, taskRepository, requirementReviewRepository, requirementReviewService, clarityReviewRepository, clarityReviewService, environmentProvisioning, environmentTeardown, branchUpdater, blueprintReconciler, notificationService, workspaceSettingsService, llmObservability, ciStatusProvider, mergeabilityProvider, releaseHealthProvider, incidentEnrichment, pullRequestMerger, mergePresetRepository, ticketTrackerProvider, issueWriteback, subscriptionActivationRepository, resolveWorkspaceModelDefault, resolveProviderCapabilities, localTestInfraSupported, resolveRunRepoContext, runInitiatorScope, }: ExecutionServiceDependencies);
|
|
283
301
|
private requireWorkspace;
|
|
284
302
|
private requireBlock;
|
|
285
303
|
/**
|
|
@@ -347,6 +365,22 @@ export declare class ExecutionService {
|
|
|
347
365
|
* shown as a toast) when the cap is reached. The starting block is excluded from the
|
|
348
366
|
* count (its prior run is about to be replaced).
|
|
349
367
|
*/
|
|
368
|
+
/**
|
|
369
|
+
* Refuse a task start while any of its dependencies is unfinished. A task may only run
|
|
370
|
+
* once every block it `dependsOn` has reached `done` (its PR merged). No-ops for
|
|
371
|
+
* non-task blocks and for tasks with no dependencies. Throws a {@link ConflictError}
|
|
372
|
+
* (→ 409, shown as a toast) naming the unfinished blockers so the human knows why.
|
|
373
|
+
*/
|
|
374
|
+
private assertDependenciesMet;
|
|
375
|
+
/**
|
|
376
|
+
* Augment a workspace's block list (in place) with any dependency blocks referenced by
|
|
377
|
+
* `depIds` that aren't already present — a `dependsOn` edge can point at a task homed in a
|
|
378
|
+
* DIFFERENT workspace (a shared/mounted service). Resolved via the cross-workspace
|
|
379
|
+
* {@link BlockRepository.findById}, so a shared-service blocker is evaluated by its real
|
|
380
|
+
* status instead of being silently treated as satisfied (missing ⇒ done). Returns the same
|
|
381
|
+
* (now-augmented) array for chaining.
|
|
382
|
+
*/
|
|
383
|
+
private augmentWithCrossWorkspaceDeps;
|
|
350
384
|
private assertWithinTaskLimit;
|
|
351
385
|
/**
|
|
352
386
|
* Advance a single run by exactly one step and report what happened. This is
|
|
@@ -780,6 +814,16 @@ export declare class ExecutionService {
|
|
|
780
814
|
proceedClarity(workspaceId: string, blockId: string): Promise<ClarityReview>;
|
|
781
815
|
/** Resolve a clarity review that hit its iteration cap (extra-round / proceed / stop-reset). */
|
|
782
816
|
resolveClarityExceeded(workspaceId: string, blockId: string, choice: ResolveRequirementsExceededChoice): Promise<ClarityReview>;
|
|
817
|
+
/** Confirm the change works: tear the ephemeral env down and advance the run. */
|
|
818
|
+
confirmHumanTest(workspaceId: string, blockId: string): Promise<ExecutionInstance>;
|
|
819
|
+
/** Submit findings and request a fix: dispatch the Tester's `fixer`, then rebuild the env. */
|
|
820
|
+
requestHumanTestFix(workspaceId: string, blockId: string, findings: string): Promise<ExecutionInstance>;
|
|
821
|
+
/** Pull the repo default branch into the PR branch + redeploy (conflict → conflict-resolver). */
|
|
822
|
+
pullMainHumanTest(workspaceId: string, blockId: string): Promise<ExecutionInstance>;
|
|
823
|
+
/** Rebuild the ephemeral environment on demand. */
|
|
824
|
+
recreateHumanTestEnv(workspaceId: string, blockId: string): Promise<ExecutionInstance>;
|
|
825
|
+
/** Destroy the ephemeral environment on demand (the run stays parked). */
|
|
826
|
+
destroyHumanTestEnv(workspaceId: string, blockId: string): Promise<ExecutionInstance>;
|
|
783
827
|
/**
|
|
784
828
|
* Push the run's latest state to subscribed clients, alongside its rolled-up
|
|
785
829
|
* block so the board updates without a refetch. Best-effort: the publisher
|
|
@@ -822,6 +866,21 @@ export declare class ExecutionService {
|
|
|
822
866
|
* merge / review notification.
|
|
823
867
|
*/
|
|
824
868
|
private finalizeMerge;
|
|
869
|
+
/**
|
|
870
|
+
* After a task with `autoStartDependents` merges, start every task that `dependsOn` it
|
|
871
|
+
* and whose remaining dependencies are all now `done`. System-initiated (no human
|
|
872
|
+
* present), so a dependent on an individual-usage model — which needs its owner to
|
|
873
|
+
* unlock a personal credential per run — is SKIPPED rather than started (it would fault
|
|
874
|
+
* at dispatch); the human starts it manually. Each dependent is started independently so
|
|
875
|
+
* one failure (already running, no provider, …) never blocks the rest.
|
|
876
|
+
*/
|
|
877
|
+
private autoStartDependents;
|
|
878
|
+
/**
|
|
879
|
+
* The pipeline id a dependent task should auto-start with: its pinned `pipelineId` when
|
|
880
|
+
* set, else the workspace's first pipeline (mirrors the board's "Run" default). Null
|
|
881
|
+
* when no pipeline exists at all.
|
|
882
|
+
*/
|
|
883
|
+
private resolveDefaultPipelineId;
|
|
825
884
|
/**
|
|
826
885
|
* Resolve the merge threshold preset that governs a task: its explicitly-picked
|
|
827
886
|
* preset, else the workspace default, else the built-in {@link DEFAULT_MERGE_PRESET}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionService.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/ExecutionService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExecutionService.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/ExecutionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,17 +7,18 @@ import { reviewableArtifactOutput } from './artifact-review.logic.js';
|
|
|
7
7
|
import { resolveIndividualVendors, } from './individualVendors.logic.js';
|
|
8
8
|
import { assertFound, ConflictError, getErrorMessage, isModelUsable, NotFoundError, sameSubtasks, ValidationError, } from '@cat-factory/kernel';
|
|
9
9
|
import { DEFAULT_MERGE_PRESET } from '@cat-factory/kernel';
|
|
10
|
-
import { aggregateCi, CI_AGENT_KIND, CI_FIXER_AGENT_KIND, CONFLICTS_AGENT_KIND, CONFLICT_RESOLVER_AGENT_KIND, describeFailingChecks, listFailingChecks, isCiGreen, MERGER_AGENT_KIND, REQUIREMENTS_REVIEW_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, BUG_INVESTIGATOR_AGENT_KIND, TRACKER_AGENT_KIND, ANALYSIS_AGENT_KIND, TESTER_AGENT_KIND, BLUEPRINTS_AGENT_KIND, SPEC_WRITER_AGENT_KIND, } from './ci.logic.js';
|
|
10
|
+
import { aggregateCi, CI_AGENT_KIND, CI_FIXER_AGENT_KIND, CONFLICTS_AGENT_KIND, CONFLICT_RESOLVER_AGENT_KIND, describeFailingChecks, listFailingChecks, isCiGreen, MERGER_AGENT_KIND, REQUIREMENTS_REVIEW_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, BUG_INVESTIGATOR_AGENT_KIND, TRACKER_AGENT_KIND, ANALYSIS_AGENT_KIND, TESTER_AGENT_KIND, HUMAN_TEST_AGENT_KIND, BLUEPRINTS_AGENT_KIND, SPEC_WRITER_AGENT_KIND, } from './ci.logic.js';
|
|
11
11
|
import { POST_RELEASE_HEALTH_AGENT_KIND, ON_CALL_AGENT_KIND, classifyReleaseHealth, describeRegressedSignals, } from './release.logic.js';
|
|
12
12
|
import { AgentContextBuilder } from './AgentContextBuilder.js';
|
|
13
13
|
import { CompanionController } from './CompanionController.js';
|
|
14
14
|
import { MergeResolver } from './MergeResolver.js';
|
|
15
15
|
import { ReviewGateController } from './ReviewGateController.js';
|
|
16
16
|
import { TesterController } from './TesterController.js';
|
|
17
|
+
import { HumanTestController } from './HumanTestController.js';
|
|
17
18
|
import { recordGateAttempt } from './gates.js';
|
|
18
19
|
import { isAsyncAgentExecutor } from '@cat-factory/kernel';
|
|
19
20
|
import { isDeployStep } from '@cat-factory/integrations';
|
|
20
|
-
import { descendantIds, serviceOf } from '../board/board.logic.js';
|
|
21
|
+
import { dependenciesMet, descendantIds, serviceOf, unmetDependencies, } from '../board/board.logic.js';
|
|
21
22
|
import { requireWorkspace } from '@cat-factory/kernel';
|
|
22
23
|
import { planResumedSteps, planRestartFromStep } from './retry.logic.js';
|
|
23
24
|
import { isContainerEvictionError, isTransientEviction, MAX_EVICTION_RECOVERIES, MAX_TRANSIENT_EVICTION_RECOVERIES, } from './job.logic.js';
|
|
@@ -115,6 +116,8 @@ export class ExecutionService {
|
|
|
115
116
|
requirementReviewService;
|
|
116
117
|
clarityReviewService;
|
|
117
118
|
environmentProvisioning;
|
|
119
|
+
environmentTeardown;
|
|
120
|
+
branchUpdater;
|
|
118
121
|
/** Assembles the per-step agent context (requirements, docs, env, service frame, fragments). */
|
|
119
122
|
contextBuilder;
|
|
120
123
|
/** Resolves a `merger` step's assessment into an auto-merge or a `merge_review` notification. */
|
|
@@ -123,6 +126,8 @@ export class ExecutionService {
|
|
|
123
126
|
companionController;
|
|
124
127
|
/** Drives the Tester gate's fix loop: report → greenlight / dispatch fixer / fail. */
|
|
125
128
|
testerController;
|
|
129
|
+
/** Drives the human-testing gate: provision env → park → confirm / fix / pull-main / recreate. */
|
|
130
|
+
humanTestController;
|
|
126
131
|
/** Drives both iterative review gates (requirements + clarity); kind-parameterised. */
|
|
127
132
|
reviewGate;
|
|
128
133
|
/** The requirements subject for {@link reviewGate}. */
|
|
@@ -159,7 +164,7 @@ export class ExecutionService {
|
|
|
159
164
|
* {@link stepResolverFor} and {@link StepCompletionResolver}.
|
|
160
165
|
*/
|
|
161
166
|
stepResolverCache;
|
|
162
|
-
constructor({ workspaceRepository, blockRepository, pipelineRepository, executionRepository, accountRepository, idGenerator, clock, agentExecutor, workRunner, executionEventPublisher, boardService, spendService, documentRepository, taskRepository, requirementReviewRepository, requirementReviewService, clarityReviewRepository, clarityReviewService, environmentProvisioning, blueprintReconciler, notificationService, workspaceSettingsService, llmObservability, ciStatusProvider, mergeabilityProvider, releaseHealthProvider, incidentEnrichment, pullRequestMerger, mergePresetRepository, ticketTrackerProvider, issueWriteback, subscriptionActivationRepository, resolveWorkspaceModelDefault, resolveProviderCapabilities, localTestInfraSupported, resolveRunRepoContext, runInitiatorScope, }) {
|
|
167
|
+
constructor({ workspaceRepository, blockRepository, pipelineRepository, executionRepository, accountRepository, idGenerator, clock, agentExecutor, workRunner, executionEventPublisher, boardService, spendService, documentRepository, taskRepository, requirementReviewRepository, requirementReviewService, clarityReviewRepository, clarityReviewService, environmentProvisioning, environmentTeardown, branchUpdater, blueprintReconciler, notificationService, workspaceSettingsService, llmObservability, ciStatusProvider, mergeabilityProvider, releaseHealthProvider, incidentEnrichment, pullRequestMerger, mergePresetRepository, ticketTrackerProvider, issueWriteback, subscriptionActivationRepository, resolveWorkspaceModelDefault, resolveProviderCapabilities, localTestInfraSupported, resolveRunRepoContext, runInitiatorScope, }) {
|
|
163
168
|
this.runInitiatorScope = runInitiatorScope ?? ((_initiatedBy, fn) => fn());
|
|
164
169
|
this.workspaceRepository = workspaceRepository;
|
|
165
170
|
this.blockRepository = blockRepository;
|
|
@@ -176,6 +181,8 @@ export class ExecutionService {
|
|
|
176
181
|
this.requirementReviewService = requirementReviewService;
|
|
177
182
|
this.clarityReviewService = clarityReviewService;
|
|
178
183
|
this.environmentProvisioning = environmentProvisioning;
|
|
184
|
+
this.environmentTeardown = environmentTeardown;
|
|
185
|
+
this.branchUpdater = branchUpdater;
|
|
179
186
|
this.contextBuilder = new AgentContextBuilder({
|
|
180
187
|
workspaceRepository,
|
|
181
188
|
blockRepository,
|
|
@@ -220,6 +227,47 @@ export class ExecutionService {
|
|
|
220
227
|
persistInstance: (ws, i) => this.executionRepository.upsert(ws, i),
|
|
221
228
|
emitInstance: (ws, i) => this.emitInstance(ws, i),
|
|
222
229
|
});
|
|
230
|
+
this.humanTestController = new HumanTestController({
|
|
231
|
+
blockRepository,
|
|
232
|
+
executionRepository,
|
|
233
|
+
workRunner,
|
|
234
|
+
agentExecutor,
|
|
235
|
+
contextBuilder: this.contextBuilder,
|
|
236
|
+
notificationService,
|
|
237
|
+
// Wrap the env services with the deployer's input/context derivation so the gate's
|
|
238
|
+
// provisioning matches a `deployer` step's. Left undefined when no provider is wired
|
|
239
|
+
// (the gate degrades to manual mode).
|
|
240
|
+
...(environmentProvisioning
|
|
241
|
+
? {
|
|
242
|
+
provisionEnvironment: (ws, block, executionId) => environmentProvisioning.provision({
|
|
243
|
+
workspaceId: ws,
|
|
244
|
+
blockId: block.id,
|
|
245
|
+
executionId,
|
|
246
|
+
inputs: this.deployInputs(block),
|
|
247
|
+
context: this.deployContext(block),
|
|
248
|
+
}),
|
|
249
|
+
refreshEnvironment: (ws, id) => environmentProvisioning.refreshStatus(ws, id),
|
|
250
|
+
}
|
|
251
|
+
: {}),
|
|
252
|
+
...(environmentTeardown
|
|
253
|
+
? {
|
|
254
|
+
teardownEnvironment: async (ws, id) => {
|
|
255
|
+
await environmentTeardown.teardown(ws, id);
|
|
256
|
+
},
|
|
257
|
+
}
|
|
258
|
+
: {}),
|
|
259
|
+
...(branchUpdater ? { branchUpdater } : {}),
|
|
260
|
+
resolveMergePreset: (ws, block) => this.resolveMergePreset(ws, block),
|
|
261
|
+
parkStepOnDecision: (ws, i, s, p) => this.parkStepOnDecision(ws, i, s, p),
|
|
262
|
+
finishStep: (s) => this.finishStep(s),
|
|
263
|
+
startStep: (s) => this.startStep(s),
|
|
264
|
+
updateBlockProgress: (ws, i, st) => this.updateBlockProgress(ws, i, st),
|
|
265
|
+
finalizeBlock: (ws, i, c) => this.finalizeBlock(ws, i, c),
|
|
266
|
+
stopRunContainer: (ws, i) => this.stopRunContainer(ws, i),
|
|
267
|
+
persistInstance: (ws, i) => this.executionRepository.upsert(ws, i),
|
|
268
|
+
emitInstance: (ws, i) => this.emitInstance(ws, i),
|
|
269
|
+
clockNow: () => this.clock.now(),
|
|
270
|
+
});
|
|
223
271
|
this.reviewGate = new ReviewGateController({
|
|
224
272
|
blockRepository,
|
|
225
273
|
executionRepository,
|
|
@@ -394,6 +442,11 @@ export class ExecutionService {
|
|
|
394
442
|
// Enforce the workspace's per-service running-task limit (off by default) — a clear,
|
|
395
443
|
// actionable error before any side effects, so the human knows why the start was refused.
|
|
396
444
|
await this.assertWithinTaskLimit(workspaceId, block);
|
|
445
|
+
// Hard dependency gate: a task cannot start while any block it `dependsOn` is unfinished
|
|
446
|
+
// (not yet `done`/merged). Enforced server-side so it holds for manual starts, recurring
|
|
447
|
+
// fires, auto-start propagation and direct API calls alike — the frontend's runnable
|
|
448
|
+
// check is only a hint. Before any side effects so nothing is torn down on a refusal.
|
|
449
|
+
await this.assertDependenciesMet(workspaceId, block);
|
|
397
450
|
// Mint the activation next: if the credential can't be unlocked, fail before
|
|
398
451
|
// tearing down the block's prior run or creating a new one.
|
|
399
452
|
const executionId = this.idGenerator.next('exec');
|
|
@@ -483,6 +536,42 @@ export class ExecutionService {
|
|
|
483
536
|
* shown as a toast) when the cap is reached. The starting block is excluded from the
|
|
484
537
|
* count (its prior run is about to be replaced).
|
|
485
538
|
*/
|
|
539
|
+
/**
|
|
540
|
+
* Refuse a task start while any of its dependencies is unfinished. A task may only run
|
|
541
|
+
* once every block it `dependsOn` has reached `done` (its PR merged). No-ops for
|
|
542
|
+
* non-task blocks and for tasks with no dependencies. Throws a {@link ConflictError}
|
|
543
|
+
* (→ 409, shown as a toast) naming the unfinished blockers so the human knows why.
|
|
544
|
+
*/
|
|
545
|
+
async assertDependenciesMet(workspaceId, block) {
|
|
546
|
+
if (block.level !== 'task' || block.dependsOn.length === 0)
|
|
547
|
+
return;
|
|
548
|
+
const blocks = await this.augmentWithCrossWorkspaceDeps(await this.blockRepository.listByWorkspace(workspaceId), block.dependsOn);
|
|
549
|
+
if (dependenciesMet(blocks, block.id))
|
|
550
|
+
return;
|
|
551
|
+
const blockers = unmetDependencies(blocks, block.id);
|
|
552
|
+
const names = blockers.map((b) => `"${b.title}"`).join(', ');
|
|
553
|
+
throw new ConflictError(`This task is blocked by ${blockers.length} unfinished dependenc${blockers.length === 1 ? 'y' : 'ies'}${names ? ` (${names})` : ''}. Finish them before starting this task.`);
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Augment a workspace's block list (in place) with any dependency blocks referenced by
|
|
557
|
+
* `depIds` that aren't already present — a `dependsOn` edge can point at a task homed in a
|
|
558
|
+
* DIFFERENT workspace (a shared/mounted service). Resolved via the cross-workspace
|
|
559
|
+
* {@link BlockRepository.findById}, so a shared-service blocker is evaluated by its real
|
|
560
|
+
* status instead of being silently treated as satisfied (missing ⇒ done). Returns the same
|
|
561
|
+
* (now-augmented) array for chaining.
|
|
562
|
+
*/
|
|
563
|
+
async augmentWithCrossWorkspaceDeps(blocks, depIds) {
|
|
564
|
+
const have = new Set(blocks.map((b) => b.id));
|
|
565
|
+
for (const id of depIds) {
|
|
566
|
+
if (have.has(id))
|
|
567
|
+
continue;
|
|
568
|
+
have.add(id);
|
|
569
|
+
const found = await this.blockRepository.findById(id);
|
|
570
|
+
if (found)
|
|
571
|
+
blocks.push(found.block);
|
|
572
|
+
}
|
|
573
|
+
return blocks;
|
|
574
|
+
}
|
|
486
575
|
async assertWithinTaskLimit(workspaceId, block) {
|
|
487
576
|
const settingsService = this.workspaceSettingsService;
|
|
488
577
|
if (!settingsService || block.level !== 'task')
|
|
@@ -598,7 +687,12 @@ export class ExecutionService {
|
|
|
598
687
|
const reentrantRequirements = (step.agentKind === REQUIREMENTS_REVIEW_AGENT_KIND ||
|
|
599
688
|
step.agentKind === CLARITY_REVIEW_AGENT_KIND) &&
|
|
600
689
|
!!step.pendingIncorporation;
|
|
601
|
-
|
|
690
|
+
// The human-testing gate is likewise re-entrant: a human action (confirm / request a
|
|
691
|
+
// fix / pull main / recreate) records a `pendingAction` on the parked step and wakes
|
|
692
|
+
// the driver. Fall through so the gate re-evaluates and acts on it (dispatch a helper,
|
|
693
|
+
// rebuild the env, or advance) instead of immediately re-parking.
|
|
694
|
+
const reentrantHumanTest = step.agentKind === HUMAN_TEST_AGENT_KIND && !!step.humanTest?.pendingAction;
|
|
695
|
+
if (!reentrantRequirements && !reentrantHumanTest) {
|
|
602
696
|
// Parked on either an agent-raised decision or a human approval gate; both
|
|
603
697
|
// are addressed by the same durable event id.
|
|
604
698
|
const pendingId = step.decision?.id ?? step.approval?.id;
|
|
@@ -653,6 +747,15 @@ export class ExecutionService {
|
|
|
653
747
|
if (step.agentKind === CLARITY_REVIEW_AGENT_KIND) {
|
|
654
748
|
return this.reviewGate.evaluate(this.clarityKind, workspaceId, instance, step, block, isFinalStep);
|
|
655
749
|
}
|
|
750
|
+
// A `human-test` gate spins up an ephemeral environment and PARKS for a human to
|
|
751
|
+
// validate the change in a live URL before the run continues — NOT a container/prose
|
|
752
|
+
// agent and NOT a programmatic polling gate (the human is the verdict). It also drives
|
|
753
|
+
// the same helpers the other gates use on demand: the Tester's `fixer` (from findings)
|
|
754
|
+
// and the `conflict-resolver` (after a conflicting pull-main). Degrades to a manual
|
|
755
|
+
// (no-env) mode when no ephemeral-environment provider is wired. See {@link HumanTestController}.
|
|
756
|
+
if (step.agentKind === HUMAN_TEST_AGENT_KIND) {
|
|
757
|
+
return this.humanTestController.evaluate(workspaceId, instance, step, block, isFinalStep);
|
|
758
|
+
}
|
|
656
759
|
// A polling gate step (`ci` / `conflicts`) runs a programmatic precheck and only
|
|
657
760
|
// escalates to a helper container agent (`ci-fixer` / `conflict-resolver`) on a
|
|
658
761
|
// negative verdict — no LLM of its own. Pass-through when the gate's provider is
|
|
@@ -893,6 +996,17 @@ export class ExecutionService {
|
|
|
893
996
|
await this.stopRunContainer(workspaceId, instance);
|
|
894
997
|
return this.testerController.dispatchTester(workspaceId, instance, step, block);
|
|
895
998
|
}
|
|
999
|
+
// A `human-test` gate in its `fixing` / `resolving_conflicts` phase has a helper job
|
|
1000
|
+
// (fixer / conflict-resolver) in flight, NOT the step's own work: when it settles —
|
|
1001
|
+
// done OR failed — record the round's outcome, rebuild the environment against the
|
|
1002
|
+
// (now-updated) branch and re-park the human. We never fail the run here; the human is
|
|
1003
|
+
// in control. Mirrors the Tester→Fixer loop.
|
|
1004
|
+
if (step.agentKind === HUMAN_TEST_AGENT_KIND &&
|
|
1005
|
+
(step.humanTest?.phase === 'fixing' || step.humanTest?.phase === 'resolving_conflicts')) {
|
|
1006
|
+
return this.humanTestController.onHelperComplete(workspaceId, instance, step, {
|
|
1007
|
+
state: update.state === 'failed' ? 'failed' : 'done',
|
|
1008
|
+
});
|
|
1009
|
+
}
|
|
896
1010
|
if (update.state === 'failed') {
|
|
897
1011
|
// A container eviction (the per-run container vanished, its in-memory job is
|
|
898
1012
|
// gone) is usually transient. Recover it by dropping the dead handle and
|
|
@@ -956,6 +1070,12 @@ export class ExecutionService {
|
|
|
956
1070
|
return { kind: 'noop' };
|
|
957
1071
|
}
|
|
958
1072
|
const step = instance.steps[instance.currentStep];
|
|
1073
|
+
// The human-testing gate rides the same `awaiting_gate` poll loop while its ephemeral
|
|
1074
|
+
// environment provisions — re-poll the env status (ready → park the human; still
|
|
1075
|
+
// provisioning → keep polling; failed → degrade to manual mode).
|
|
1076
|
+
if (step?.agentKind === HUMAN_TEST_AGENT_KIND) {
|
|
1077
|
+
return this.humanTestController.pollEnvironment(workspaceId, instance);
|
|
1078
|
+
}
|
|
959
1079
|
const gate = step ? this.gateFor(step.agentKind) : undefined;
|
|
960
1080
|
if (!step || !gate)
|
|
961
1081
|
return { kind: 'continue' };
|
|
@@ -986,6 +1106,11 @@ export class ExecutionService {
|
|
|
986
1106
|
return { kind: 'noop' };
|
|
987
1107
|
}
|
|
988
1108
|
const step = instance.steps[instance.currentStep];
|
|
1109
|
+
// The human-testing gate never times the RUN out while provisioning: instead of failing,
|
|
1110
|
+
// park the human in degraded mode so they can wait, recreate, or test by hand.
|
|
1111
|
+
if (step?.agentKind === HUMAN_TEST_AGENT_KIND) {
|
|
1112
|
+
return this.humanTestController.onProvisionTimeout(workspaceId, instance);
|
|
1113
|
+
}
|
|
989
1114
|
const gate = step ? this.gateFor(step.agentKind) : undefined;
|
|
990
1115
|
const timeoutError = 'Gate precheck did not settle within its polling budget';
|
|
991
1116
|
if (!step || !gate || gate.pollExhaustion !== 'pass') {
|
|
@@ -2137,6 +2262,9 @@ export class ExecutionService {
|
|
|
2137
2262
|
if (step.agentKind === CLARITY_REVIEW_AGENT_KIND) {
|
|
2138
2263
|
throw new ConflictError('Resolve the clarity review through its review window, not the approval gate');
|
|
2139
2264
|
}
|
|
2265
|
+
if (step.agentKind === HUMAN_TEST_AGENT_KIND) {
|
|
2266
|
+
throw new ConflictError('Resolve the human-testing gate through its window (confirm / request a fix), not the approval gate');
|
|
2267
|
+
}
|
|
2140
2268
|
if (step.companion?.exceeded) {
|
|
2141
2269
|
throw new ConflictError('Resolve this companion review through its iteration-cap prompt, not the approval gate');
|
|
2142
2270
|
}
|
|
@@ -2394,6 +2522,29 @@ export class ExecutionService {
|
|
|
2394
2522
|
resolveClarityExceeded(workspaceId, blockId, choice) {
|
|
2395
2523
|
return this.reviewGate.resolveExceeded(this.clarityKind, workspaceId, blockId, choice);
|
|
2396
2524
|
}
|
|
2525
|
+
// ---- human-testing gate actions (driven from the dedicated window) -------
|
|
2526
|
+
// Each mutates the parked gate step and wakes the durable driver, which re-enters the gate
|
|
2527
|
+
// and performs the (env / helper) work; see {@link HumanTestController}.
|
|
2528
|
+
/** Confirm the change works: tear the ephemeral env down and advance the run. */
|
|
2529
|
+
confirmHumanTest(workspaceId, blockId) {
|
|
2530
|
+
return this.humanTestController.confirm(workspaceId, blockId);
|
|
2531
|
+
}
|
|
2532
|
+
/** Submit findings and request a fix: dispatch the Tester's `fixer`, then rebuild the env. */
|
|
2533
|
+
requestHumanTestFix(workspaceId, blockId, findings) {
|
|
2534
|
+
return this.humanTestController.requestFix(workspaceId, blockId, findings);
|
|
2535
|
+
}
|
|
2536
|
+
/** Pull the repo default branch into the PR branch + redeploy (conflict → conflict-resolver). */
|
|
2537
|
+
pullMainHumanTest(workspaceId, blockId) {
|
|
2538
|
+
return this.humanTestController.pullMain(workspaceId, blockId);
|
|
2539
|
+
}
|
|
2540
|
+
/** Rebuild the ephemeral environment on demand. */
|
|
2541
|
+
recreateHumanTestEnv(workspaceId, blockId) {
|
|
2542
|
+
return this.humanTestController.recreateEnvironment(workspaceId, blockId);
|
|
2543
|
+
}
|
|
2544
|
+
/** Destroy the ephemeral environment on demand (the run stays parked). */
|
|
2545
|
+
destroyHumanTestEnv(workspaceId, blockId) {
|
|
2546
|
+
return this.humanTestController.destroyEnvironment(workspaceId, blockId);
|
|
2547
|
+
}
|
|
2397
2548
|
/**
|
|
2398
2549
|
* Push the run's latest state to subscribed clients, alongside its rolled-up
|
|
2399
2550
|
* block so the board updates without a refetch. Best-effort: the publisher
|
|
@@ -2561,8 +2712,62 @@ export class ExecutionService {
|
|
|
2561
2712
|
}
|
|
2562
2713
|
if ((block.level ?? 'frame') === 'task') {
|
|
2563
2714
|
await this.applyModuleAssignment(workspaceId, blockId);
|
|
2715
|
+
// Propagate to dependents: if this task opted into auto-start, launch every task
|
|
2716
|
+
// that depends on it whose other dependencies are now also done. Best-effort — the
|
|
2717
|
+
// merge already happened, so a dependent that fails to start must never roll it back.
|
|
2718
|
+
if (block.autoStartDependents) {
|
|
2719
|
+
await this.autoStartDependents(workspaceId, blockId).catch(() => { });
|
|
2720
|
+
}
|
|
2721
|
+
}
|
|
2722
|
+
}
|
|
2723
|
+
/**
|
|
2724
|
+
* After a task with `autoStartDependents` merges, start every task that `dependsOn` it
|
|
2725
|
+
* and whose remaining dependencies are all now `done`. System-initiated (no human
|
|
2726
|
+
* present), so a dependent on an individual-usage model — which needs its owner to
|
|
2727
|
+
* unlock a personal credential per run — is SKIPPED rather than started (it would fault
|
|
2728
|
+
* at dispatch); the human starts it manually. Each dependent is started independently so
|
|
2729
|
+
* one failure (already running, no provider, …) never blocks the rest.
|
|
2730
|
+
*/
|
|
2731
|
+
async autoStartDependents(workspaceId, mergedBlockId) {
|
|
2732
|
+
const blocks = await this.blockRepository.listByWorkspace(workspaceId);
|
|
2733
|
+
const dependents = blocks.filter((b) => b.level === 'task' && b.dependsOn.includes(mergedBlockId));
|
|
2734
|
+
// A dependent's OTHER blockers may live in another workspace (a shared service); resolve
|
|
2735
|
+
// them so `dependenciesMet` doesn't treat a cross-workspace blocker as missing-⇒-satisfied.
|
|
2736
|
+
await this.augmentWithCrossWorkspaceDeps(blocks, dependents.flatMap((d) => d.dependsOn));
|
|
2737
|
+
for (const dependent of dependents) {
|
|
2738
|
+
// All of the dependent's blockers must now be satisfied (not just the one that merged).
|
|
2739
|
+
if (!dependenciesMet(blocks, dependent.id))
|
|
2740
|
+
continue;
|
|
2741
|
+
// Only auto-start a fresh task — never replace a run already in flight or a finished one.
|
|
2742
|
+
if (dependent.status !== 'planned' && dependent.status !== 'ready')
|
|
2743
|
+
continue;
|
|
2744
|
+
const pipelineId = await this.resolveDefaultPipelineId(workspaceId, dependent);
|
|
2745
|
+
if (!pipelineId)
|
|
2746
|
+
continue;
|
|
2747
|
+
// Skip dependents that would lease an individual-usage credential (can't unlock unattended).
|
|
2748
|
+
const individual = await this.individualVendorsForBlock(workspaceId, dependent.id, pipelineId);
|
|
2749
|
+
if (individual.length > 0)
|
|
2750
|
+
continue;
|
|
2751
|
+
try {
|
|
2752
|
+
await this.start(workspaceId, dependent.id, pipelineId, null);
|
|
2753
|
+
}
|
|
2754
|
+
catch {
|
|
2755
|
+
// Already running, no usable provider, still-unmet dep racing, etc. — leave this
|
|
2756
|
+
// dependent for a manual start; the others still get their chance.
|
|
2757
|
+
}
|
|
2564
2758
|
}
|
|
2565
2759
|
}
|
|
2760
|
+
/**
|
|
2761
|
+
* The pipeline id a dependent task should auto-start with: its pinned `pipelineId` when
|
|
2762
|
+
* set, else the workspace's first pipeline (mirrors the board's "Run" default). Null
|
|
2763
|
+
* when no pipeline exists at all.
|
|
2764
|
+
*/
|
|
2765
|
+
async resolveDefaultPipelineId(workspaceId, block) {
|
|
2766
|
+
if (block.pipelineId)
|
|
2767
|
+
return block.pipelineId;
|
|
2768
|
+
const pipelines = await this.pipelineRepository.listByWorkspace(workspaceId);
|
|
2769
|
+
return pipelines[0]?.id ?? null;
|
|
2770
|
+
}
|
|
2566
2771
|
/**
|
|
2567
2772
|
* Resolve the merge threshold preset that governs a task: its explicitly-picked
|
|
2568
2773
|
* preset, else the workspace default, else the built-in {@link DEFAULT_MERGE_PRESET}.
|