@cat-factory/orchestration 0.25.1 → 0.27.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 (48) hide show
  1. package/dist/container.d.ts +34 -0
  2. package/dist/container.d.ts.map +1 -1
  3. package/dist/container.js +64 -0
  4. package/dist/container.js.map +1 -1
  5. package/dist/index.d.ts +3 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/modules/brainstorm/BrainstormService.d.ts +57 -0
  10. package/dist/modules/brainstorm/BrainstormService.d.ts.map +1 -0
  11. package/dist/modules/brainstorm/BrainstormService.js +117 -0
  12. package/dist/modules/brainstorm/BrainstormService.js.map +1 -0
  13. package/dist/modules/brainstorm/brainstorm.logic.d.ts +38 -0
  14. package/dist/modules/brainstorm/brainstorm.logic.d.ts.map +1 -0
  15. package/dist/modules/brainstorm/brainstorm.logic.js +106 -0
  16. package/dist/modules/brainstorm/brainstorm.logic.js.map +1 -0
  17. package/dist/modules/execution/AgentContextBuilder.d.ts +18 -1
  18. package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
  19. package/dist/modules/execution/AgentContextBuilder.js +45 -7
  20. package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
  21. package/dist/modules/execution/ExecutionService.d.ts +125 -3
  22. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  23. package/dist/modules/execution/ExecutionService.js +388 -4
  24. package/dist/modules/execution/ExecutionService.js.map +1 -1
  25. package/dist/modules/execution/ci.logic.d.ts +12 -0
  26. package/dist/modules/execution/ci.logic.d.ts.map +1 -1
  27. package/dist/modules/execution/ci.logic.js +12 -0
  28. package/dist/modules/execution/ci.logic.js.map +1 -1
  29. package/dist/modules/execution/followUp.logic.d.ts +23 -0
  30. package/dist/modules/execution/followUp.logic.d.ts.map +1 -0
  31. package/dist/modules/execution/followUp.logic.js +69 -0
  32. package/dist/modules/execution/followUp.logic.js.map +1 -0
  33. package/dist/modules/execution/tester-infra.logic.d.ts +18 -5
  34. package/dist/modules/execution/tester-infra.logic.d.ts.map +1 -1
  35. package/dist/modules/execution/tester-infra.logic.js +17 -8
  36. package/dist/modules/execution/tester-infra.logic.js.map +1 -1
  37. package/dist/modules/notifications/NotificationService.d.ts +8 -7
  38. package/dist/modules/notifications/NotificationService.d.ts.map +1 -1
  39. package/dist/modules/notifications/NotificationService.js +20 -17
  40. package/dist/modules/notifications/NotificationService.js.map +1 -1
  41. package/dist/modules/requirements/RequirementReviewService.d.ts +8 -0
  42. package/dist/modules/requirements/RequirementReviewService.d.ts.map +1 -1
  43. package/dist/modules/requirements/RequirementReviewService.js +11 -1
  44. package/dist/modules/requirements/RequirementReviewService.js.map +1 -1
  45. package/dist/modules/settings/WorkspaceSettingsService.d.ts.map +1 -1
  46. package/dist/modules/settings/WorkspaceSettingsService.js +2 -0
  47. package/dist/modules/settings/WorkspaceSettingsService.js.map +1 -1
  48. package/package.json +9 -9
@@ -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,7 +7,8 @@ import { reviewableArtifactOutput } from './artifact-review.logic.js';
7
7
  import { resolveIndividualVendors, } from './individualVendors.logic.js';
8
8
  import { assertFound, ConflictError, getErrorMessage, isModelUsable, NotFoundError, parseLocalModelId, resolveModelRef, sameSubtasks, subscriptionOptionFor, ValidationError, } from '@cat-factory/kernel';
9
9
  import { DEFAULT_MERGE_PRESET } from '@cat-factory/kernel';
10
- import { CONFLICTS_AGENT_KIND, 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';
10
+ import { CONFLICTS_AGENT_KIND, MERGER_AGENT_KIND, REQUIREMENTS_REVIEW_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, REQUIREMENTS_BRAINSTORM_AGENT_KIND, ARCHITECTURE_BRAINSTORM_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
+ import { DEFAULT_FOLLOW_UP_MAX_LOOPS, FOLLOW_UP_PRODUCER_KIND, followUpsToSendBack, hasPendingFollowUps, renderFollowUpRework, shouldLoopCoder, } from './followUp.logic.js';
11
12
  import { AgentContextBuilder } from './AgentContextBuilder.js';
12
13
  import { CompanionController } from './CompanionController.js';
13
14
  import { inferTechnicalLabel } from './technical.logic.js';
@@ -83,6 +84,7 @@ export class ExecutionService {
83
84
  requirementReviewService;
84
85
  kaizenScheduler;
85
86
  clarityReviewService;
87
+ brainstormServices;
86
88
  environmentProvisioning;
87
89
  environmentTeardown;
88
90
  branchUpdater;
@@ -102,6 +104,9 @@ export class ExecutionService {
102
104
  requirementsKind;
103
105
  /** The clarity (bug-report triage) subject for {@link reviewGate}. */
104
106
  clarityKind;
107
+ /** The two brainstorm (structured-dialogue) subjects for {@link reviewGate}, by stage. */
108
+ requirementsBrainstormKind;
109
+ architectureBrainstormKind;
105
110
  blueprintReconciler;
106
111
  notificationService;
107
112
  workspaceSettingsService;
@@ -121,6 +126,12 @@ export class ExecutionService {
121
126
  * without a checkout. Absent (tests / GitHub not connected) → pre/post-ops are skipped.
122
127
  */
123
128
  resolveRunRepoContext;
129
+ /** Local-mode floor for the Tester environment (default `ephemeral`). See deps doc. */
130
+ resolveTesterFallbackDefault;
131
+ /** Whether the workspace requires its env provider for the Tester (local-mode opt-in). */
132
+ resolveRequireEnvironmentProvider;
133
+ /** Start-time assertion that a container-agent backend is configured (local-mode pool). */
134
+ assertAgentBackendConfigured;
124
135
  /** Lazily-built polling-gate registry, keyed by `agentKind`. See {@link gateFor}. */
125
136
  gateRegistryCache;
126
137
  /**
@@ -128,7 +139,7 @@ export class ExecutionService {
128
139
  * {@link stepResolverFor} and {@link StepCompletionResolver}.
129
140
  */
130
141
  stepResolverCache;
131
- constructor({ workspaceRepository, blockRepository, pipelineRepository, executionRepository, accountRepository, idGenerator, clock, agentExecutor, workRunner, executionEventPublisher, boardService, spendService, documentRepository, taskRepository, requirementReviewRepository, requirementReviewService, kaizenScheduler, clarityReviewRepository, clarityReviewService, fragmentResolver, environmentProvisioning, environmentTeardown, branchUpdater, blueprintReconciler, notificationService, workspaceSettingsService, llmObservability, pullRequestMerger, mergePresetRepository, ticketTrackerProvider, issueWriteback, subscriptionActivationRepository, resolveWorkspaceModelDefault, resolveProviderCapabilities, localTestInfraSupported, resolveRunRepoContext, runInitiatorScope, }) {
142
+ constructor({ workspaceRepository, blockRepository, pipelineRepository, executionRepository, accountRepository, idGenerator, clock, agentExecutor, workRunner, executionEventPublisher, boardService, spendService, documentRepository, taskRepository, requirementReviewRepository, requirementReviewService, kaizenScheduler, clarityReviewRepository, clarityReviewService, brainstormServices, brainstormSessionRepository, fragmentResolver, environmentProvisioning, environmentTeardown, branchUpdater, blueprintReconciler, notificationService, workspaceSettingsService, llmObservability, pullRequestMerger, mergePresetRepository, ticketTrackerProvider, issueWriteback, subscriptionActivationRepository, resolveWorkspaceModelDefault, resolveProviderCapabilities, localTestInfraSupported, resolveRunRepoContext, resolveTesterFallbackDefault, resolveRequireEnvironmentProvider, assertAgentBackendConfigured, runInitiatorScope, }) {
132
143
  this.runInitiatorScope = runInitiatorScope ?? ((_initiatedBy, fn) => fn());
133
144
  this.workspaceRepository = workspaceRepository;
134
145
  this.blockRepository = blockRepository;
@@ -145,6 +156,7 @@ export class ExecutionService {
145
156
  this.requirementReviewService = requirementReviewService;
146
157
  this.kaizenScheduler = kaizenScheduler;
147
158
  this.clarityReviewService = clarityReviewService;
159
+ this.brainstormServices = brainstormServices;
148
160
  this.environmentProvisioning = environmentProvisioning;
149
161
  this.environmentTeardown = environmentTeardown;
150
162
  this.branchUpdater = branchUpdater;
@@ -156,8 +168,10 @@ export class ExecutionService {
156
168
  tasks: taskRepository,
157
169
  requirementReviews: requirementReviewRepository,
158
170
  clarityReviews: clarityReviewRepository,
171
+ brainstormSessions: brainstormSessionRepository,
159
172
  environmentProvisioning,
160
173
  fragmentResolver,
174
+ resolveTesterFallbackDefault,
161
175
  });
162
176
  this.mergeResolver = new MergeResolver({
163
177
  blockRepository,
@@ -254,6 +268,8 @@ export class ExecutionService {
254
268
  });
255
269
  this.requirementsKind = this.buildRequirementsKind();
256
270
  this.clarityKind = this.buildClarityKind();
271
+ this.requirementsBrainstormKind = this.buildBrainstormKind('requirements', REQUIREMENTS_BRAINSTORM_AGENT_KIND);
272
+ this.architectureBrainstormKind = this.buildBrainstormKind('architecture', ARCHITECTURE_BRAINSTORM_AGENT_KIND);
257
273
  this.blueprintReconciler = blueprintReconciler;
258
274
  this.notificationService = notificationService;
259
275
  this.workspaceSettingsService = workspaceSettingsService;
@@ -267,6 +283,9 @@ export class ExecutionService {
267
283
  this.resolveProviderCapabilities = resolveProviderCapabilities;
268
284
  this.localTestInfraSupported = localTestInfraSupported ?? true;
269
285
  this.resolveRunRepoContext = resolveRunRepoContext;
286
+ this.resolveTesterFallbackDefault = resolveTesterFallbackDefault;
287
+ this.resolveRequireEnvironmentProvider = resolveRequireEnvironmentProvider;
288
+ this.assertAgentBackendConfigured = assertAgentBackendConfigured;
270
289
  }
271
290
  requireWorkspace(workspaceId) {
272
291
  return requireWorkspace(this.workspaceRepository, workspaceId);
@@ -322,13 +341,15 @@ export class ExecutionService {
322
341
  // which the task inherits unless it pins its own `tester.environment` (the same
323
342
  // resolution the agent-context materialisation applies, so the gate and the run agree).
324
343
  const service = await this.contextBuilder.resolveServiceConfig(workspaceId, block);
325
- const environment = resolveTesterEnvironment(block.agentConfig?.['tester.environment'], service?.defaultTestEnvironment);
344
+ const fallbackDefault = await this.resolveTesterFallbackDefault?.(workspaceId);
345
+ const environment = resolveTesterEnvironment(block.agentConfig?.['tester.environment'], service?.defaultTestEnvironment, fallbackDefault);
326
346
  const decision = decideTesterInfra({
327
347
  localTestInfraSupported: this.localTestInfraSupported,
328
348
  environment,
329
349
  noInfraDependencies: service?.noInfraDependencies === true,
330
350
  hasComposePath: !!service?.testComposePath,
331
351
  hasEnvironmentProvider: this.environmentProvisioning !== undefined,
352
+ requireEnvironmentProvider: (await this.resolveRequireEnvironmentProvider?.(workspaceId)) === true,
332
353
  });
333
354
  if (decision.ok)
334
355
  return;
@@ -454,6 +475,10 @@ export class ExecutionService {
454
475
  if (pipeline.agentKinds.includes(TESTER_AGENT_KIND)) {
455
476
  await this.assertTesterInfraConfigured(workspaceId, block);
456
477
  }
478
+ // Block the start when the workspace delegates container agents to a runner pool that
479
+ // isn't registered (local mode opt-in). No-op on Cloudflare/Node (fixed backend) and
480
+ // when delegation is off; a missing local pool still also fails loudly at dispatch.
481
+ await this.assertAgentBackendConfigured?.(workspaceId);
457
482
  // Block the start when a step's canonical model has no usable provider (no direct
458
483
  // key, no subscription, no Cloudflare) — before any side effects.
459
484
  await this.assertProvidersConfiguredForPipeline(workspaceId, block, pipeline, initiatedBy);
@@ -520,6 +545,19 @@ export class ExecutionService {
520
545
  },
521
546
  }
522
547
  : {}),
548
+ // The Follow-up companion is on by default for a `coder` step; the pipeline's
549
+ // per-step `followUps[i] === false` toggle disables it. Seeded empty here; the
550
+ // harness streams items in as the Coder surfaces them (see pollAgentJob).
551
+ ...(kind === FOLLOW_UP_PRODUCER_KIND && pipeline.followUps?.[i] !== false
552
+ ? {
553
+ followUps: {
554
+ enabled: true,
555
+ items: [],
556
+ loops: 0,
557
+ maxLoops: DEFAULT_FOLLOW_UP_MAX_LOOPS,
558
+ },
559
+ }
560
+ : {}),
523
561
  };
524
562
  });
525
563
  if (steps.length === 0) {
@@ -709,7 +747,9 @@ export class ExecutionService {
709
747
  // request) — instead of immediately re-parking. Every other parked step (and a requirements
710
748
  // gate with nothing pending) re-parks on its durable decision id.
711
749
  const reentrantRequirements = (step.agentKind === REQUIREMENTS_REVIEW_AGENT_KIND ||
712
- step.agentKind === CLARITY_REVIEW_AGENT_KIND) &&
750
+ step.agentKind === CLARITY_REVIEW_AGENT_KIND ||
751
+ step.agentKind === REQUIREMENTS_BRAINSTORM_AGENT_KIND ||
752
+ step.agentKind === ARCHITECTURE_BRAINSTORM_AGENT_KIND) &&
713
753
  (!!step.pendingIncorporation || !!step.pendingRecommendation);
714
754
  // The human-testing gate is likewise re-entrant: a human action (confirm / request a
715
755
  // fix / pull main / recreate) records a `pendingAction` on the parked step and wakes
@@ -771,6 +811,15 @@ export class ExecutionService {
771
811
  if (step.agentKind === CLARITY_REVIEW_AGENT_KIND) {
772
812
  return this.reviewGate.evaluate(this.clarityKind, workspaceId, instance, step, block, isFinalStep);
773
813
  }
814
+ // The two brainstorm (structured-dialogue) gates run the inline option-generator and park
815
+ // for the dedicated brainstorm window, driving the same iterative loop as the requirements
816
+ // gate. NOT container/prose agents. Pass-through when the brainstorm module isn't wired.
817
+ if (step.agentKind === REQUIREMENTS_BRAINSTORM_AGENT_KIND) {
818
+ return this.reviewGate.evaluate(this.requirementsBrainstormKind, workspaceId, instance, step, block, isFinalStep);
819
+ }
820
+ if (step.agentKind === ARCHITECTURE_BRAINSTORM_AGENT_KIND) {
821
+ return this.reviewGate.evaluate(this.architectureBrainstormKind, workspaceId, instance, step, block, isFinalStep);
822
+ }
774
823
  // A `human-test` gate spins up an ephemeral environment and PARKS for a human to
775
824
  // validate the change in a live URL before the run continues — NOT a container/prose
776
825
  // agent and NOT a programmatic polling gate (the human is the verdict). It also drives
@@ -993,6 +1042,10 @@ export class ExecutionService {
993
1042
  update.subtasks.total > 0 ? update.subtasks.completed / update.subtasks.total : 0;
994
1043
  changed = true;
995
1044
  }
1045
+ // Append any forward-looking items the Coder streamed since the last poll so the
1046
+ // Follow-up companion lights up + accrues items LIVE while the container still runs.
1047
+ if (this.appendStreamedFollowUps(step, update.followUps))
1048
+ changed = true;
996
1049
  // Refresh the env projection so its status transitions (provisioning→ready→
997
1050
  // expired/torn_down) and any error stay live in the run details during the run.
998
1051
  if (await this.attachEnvironmentProjection(workspaceId, instance.blockId, step)) {
@@ -1145,6 +1198,10 @@ export class ExecutionService {
1145
1198
  if (!block)
1146
1199
  return { kind: 'noop' };
1147
1200
  const isFinalStep = instance.currentStep === instance.steps.length - 1;
1201
+ // Capture any final burst of follow-up items the harness drained on the SAME poll that
1202
+ // observed completion (the tailer is flushed before the job is marked done), so the
1203
+ // completion gate below sees the last items — notably a question that must hold the run.
1204
+ this.appendStreamedFollowUps(step, update.followUps);
1148
1205
  // Clear the handle before recording so a replay re-attaches to nothing.
1149
1206
  step.jobId = undefined;
1150
1207
  return this.recordStepResult(workspaceId, instance, step, isFinalStep, update.result);
@@ -1493,6 +1550,16 @@ export class ExecutionService {
1493
1550
  const reviewable = reviewableArtifactOutput(result);
1494
1551
  if (reviewable !== undefined)
1495
1552
  step.output = reviewable;
1553
+ // Follow-up companion gate: the future-looking Coder surfaced forward-looking items.
1554
+ // Hold the pipeline until every item is decided (an undecided follow-up or an unanswered
1555
+ // question parks the run), then loop the Coder for the items the human queued / answered
1556
+ // (within the loop budget) before the following steps may start. Runs BEFORE the approval
1557
+ // gate so the Coder's follow-ups settle first. A no-op when nothing was surfaced.
1558
+ if (step.followUps?.enabled) {
1559
+ const gated = await this.evaluateFollowUpGate(workspaceId, instance, step);
1560
+ if (gated)
1561
+ return gated;
1562
+ }
1496
1563
  // Human approval gate: a step the pipeline marked `requiresApproval` pauses
1497
1564
  // here once its proposal is ready, so a human can review (and edit) it before
1498
1565
  // the next step runs. We reuse the durable decision wait — returning
@@ -2145,6 +2212,257 @@ export class ExecutionService {
2145
2212
  return;
2146
2213
  await svc.clearWaitingDecision(workspaceId, instance.blockId);
2147
2214
  }
2215
+ // ---- Follow-up companion (future-looking Coder) -------------------------
2216
+ // The Coder streams forward-looking items (loose ends / side-tasks / questions) which
2217
+ // accrue on its `step.followUps` live (see pollAgentJob). At the Coder's completion the
2218
+ // run parks while any item is undecided, then loops the Coder for the items the human
2219
+ // queued / answered (within the loop budget) before the following steps may start.
2220
+ /**
2221
+ * Append the items the harness streamed since the last poll onto the Coder step's
2222
+ * follow-up state as fresh `pending` items. A no-op when the companion is off or nothing
2223
+ * was streamed. Returns whether anything was added (so the poller persists + emits).
2224
+ */
2225
+ appendStreamedFollowUps(step, streamed) {
2226
+ if (!step.followUps?.enabled || !streamed || streamed.length === 0)
2227
+ return false;
2228
+ const now = this.clock.now();
2229
+ for (const s of streamed) {
2230
+ const title = (s.title ?? '').trim();
2231
+ if (!title)
2232
+ continue;
2233
+ step.followUps.items.push({
2234
+ id: this.idGenerator.next('fu'),
2235
+ kind: s.kind === 'question' ? 'question' : 'follow_up',
2236
+ title,
2237
+ detail: s.detail ?? '',
2238
+ ...(s.suggestedAction ? { suggestedAction: s.suggestedAction } : {}),
2239
+ status: 'pending',
2240
+ createdAt: now,
2241
+ updatedAt: now,
2242
+ });
2243
+ }
2244
+ return true;
2245
+ }
2246
+ /**
2247
+ * The Follow-up companion gate, evaluated when the Coder step completes: park the run on
2248
+ * a durable decision while any item is undecided; else loop the Coder for the queued /
2249
+ * answered items (within the budget); else fall through (return undefined) so the normal
2250
+ * advance/finish logic runs. Returns an {@link AdvanceResult} only when it parks or loops.
2251
+ */
2252
+ async evaluateFollowUpGate(workspaceId, instance, step) {
2253
+ const state = step.followUps;
2254
+ if (!state?.enabled)
2255
+ return undefined;
2256
+ if (hasPendingFollowUps(state)) {
2257
+ await this.raiseFollowUpPending(workspaceId, instance, state);
2258
+ return this.parkStepOnDecision(workspaceId, instance, step);
2259
+ }
2260
+ if (shouldLoopCoder(state)) {
2261
+ this.loopCoderForFollowUps(instance, step);
2262
+ await this.updateBlockProgress(workspaceId, instance, 'in_progress');
2263
+ await this.executionRepository.upsert(workspaceId, instance);
2264
+ await this.emitInstance(workspaceId, instance);
2265
+ return { kind: 'continue' };
2266
+ }
2267
+ return undefined;
2268
+ }
2269
+ /**
2270
+ * Reset the Coder step and fold the human's queued follow-ups / answered questions into
2271
+ * its rework so the next pass extends the prior work. Marks those items `sentToCoder` so
2272
+ * a later completion doesn't re-loop them, and counts the loop against the budget. Shared
2273
+ * by the at-completion path ({@link evaluateFollowUpGate}) and the parked-resume path.
2274
+ */
2275
+ loopCoderForFollowUps(instance, step) {
2276
+ const state = step.followUps;
2277
+ const sending = followUpsToSendBack(state);
2278
+ const feedback = renderFollowUpRework(sending);
2279
+ for (const item of sending) {
2280
+ item.sentToCoder = true;
2281
+ item.updatedAt = this.clock.now();
2282
+ }
2283
+ state.loops = (state.loops ?? 0) + 1;
2284
+ // Reset the step for a fresh dispatch; `step.followUps` is intentionally preserved
2285
+ // (resetStepForRerun doesn't touch it) so the surfaced items survive the loop.
2286
+ this.resetStepForRerun(step);
2287
+ step.rework = { previousProposal: '', feedback };
2288
+ this.startStep(step);
2289
+ if (instance.status === 'blocked')
2290
+ instance.status = 'running';
2291
+ }
2292
+ /** Raise the "follow-ups need decisions" inbox card when the Coder parks on undecided items. */
2293
+ async raiseFollowUpPending(workspaceId, instance, state) {
2294
+ if (!this.notificationService)
2295
+ return;
2296
+ const block = await this.blockRepository.get(workspaceId, instance.blockId);
2297
+ if (!block)
2298
+ return;
2299
+ const pending = state.items.filter((i) => i.status === 'pending').length;
2300
+ await this.notificationService.raise(workspaceId, {
2301
+ type: 'followup_pending',
2302
+ blockId: block.id,
2303
+ executionId: instance.id,
2304
+ title: `"${block.title}" surfaced ${pending} follow-up${pending === 1 ? '' : 's'} to decide`,
2305
+ body: 'The Coder flagged forward-looking follow-ups / questions. Open the task to file ' +
2306
+ 'each as an issue, send it back to the Coder, answer it, or dismiss it — the ' +
2307
+ 'pipeline continues once every item is decided.',
2308
+ payload: { pipelineName: instance.pipelineName, findingCount: pending },
2309
+ });
2310
+ }
2311
+ /**
2312
+ * The run's "active" follow-up companion step for a read with no item context (the GET /
2313
+ * the inbox-card open). A pipeline may carry MORE THAN ONE follow-up-enabled Coder step,
2314
+ * so this must not blindly pick the first: prefer the step the run is currently on (a Coder
2315
+ * parked on its follow-up gate), else the latest enabled step that has surfaced items, else
2316
+ * the first enabled one.
2317
+ */
2318
+ activeFollowUpStep(instance) {
2319
+ const current = instance.steps[instance.currentStep];
2320
+ if (current?.followUps?.enabled)
2321
+ return { step: current, index: instance.currentStep };
2322
+ for (let i = instance.steps.length - 1; i >= 0; i--) {
2323
+ const s = instance.steps[i];
2324
+ if (s.followUps?.enabled && s.followUps.items.length > 0)
2325
+ return { step: s, index: i };
2326
+ }
2327
+ const index = instance.steps.findIndex((s) => s.followUps?.enabled);
2328
+ return index >= 0 ? { step: instance.steps[index], index } : undefined;
2329
+ }
2330
+ /** Read a run's live follow-up companion state (the active Coder step's items), or null. */
2331
+ async getFollowUps(workspaceId, executionId) {
2332
+ const instance = await this.executionRepository.get(workspaceId, executionId);
2333
+ if (!instance)
2334
+ throw new NotFoundError('Execution', executionId);
2335
+ return this.activeFollowUpStep(instance)?.step.followUps ?? null;
2336
+ }
2337
+ /**
2338
+ * Locate the run + the Coder step that OWNS the addressed item + the item, throwing 404
2339
+ * when absent. Routes by item id (not "the first enabled step") so a pipeline carrying more
2340
+ * than one follow-up-enabled Coder step decides each item on the step that surfaced it —
2341
+ * otherwise a later Coder's items 404 and its gate can never be cleared.
2342
+ */
2343
+ async loadFollowUpItem(workspaceId, executionId, itemId) {
2344
+ const instance = await this.executionRepository.get(workspaceId, executionId);
2345
+ if (!instance)
2346
+ throw new NotFoundError('Execution', executionId);
2347
+ const index = instance.steps.findIndex((s) => s.followUps?.enabled && s.followUps.items.some((i) => i.id === itemId));
2348
+ if (index < 0)
2349
+ throw new NotFoundError('Follow-up item', itemId);
2350
+ const step = instance.steps[index];
2351
+ const item = step.followUps.items.find((i) => i.id === itemId);
2352
+ return { instance, step, index, item };
2353
+ }
2354
+ /** File a `follow_up` item as a tracker issue (GitHub / Jira), recording the ticket ref. */
2355
+ async fileFollowUp(workspaceId, executionId, itemId) {
2356
+ const { instance, step, index, item } = await this.loadFollowUpItem(workspaceId, executionId, itemId);
2357
+ if (item.kind !== 'follow_up') {
2358
+ throw new ConflictError('Only follow-up items can be filed as issues');
2359
+ }
2360
+ if (!this.ticketTrackerProvider) {
2361
+ throw new ConflictError('No issue tracker is configured for this workspace');
2362
+ }
2363
+ const frameId = (await this.contextBuilder.resolveServiceFrameId(workspaceId, instance.blockId)) ??
2364
+ instance.blockId;
2365
+ const body = [
2366
+ item.detail,
2367
+ item.suggestedAction ? `\n\nSuggested approach: ${item.suggestedAction}` : '',
2368
+ ]
2369
+ .join('')
2370
+ .trim();
2371
+ const ticket = await this.ticketTrackerProvider.createTicket({
2372
+ workspaceId,
2373
+ frameId,
2374
+ title: item.title,
2375
+ body: body || item.title,
2376
+ });
2377
+ if (!ticket) {
2378
+ throw new ConflictError('No issue tracker is configured for this workspace');
2379
+ }
2380
+ item.status = 'filed';
2381
+ item.ticketExternalId = ticket.externalId;
2382
+ item.ticketUrl = ticket.url;
2383
+ item.updatedAt = this.clock.now();
2384
+ await this.driveFollowUpsAfterDecision(workspaceId, instance, step, index);
2385
+ return step.followUps;
2386
+ }
2387
+ /** Queue a `follow_up` item to send back to the Coder on its next pass. */
2388
+ async queueFollowUp(workspaceId, executionId, itemId) {
2389
+ const { instance, step, index, item } = await this.loadFollowUpItem(workspaceId, executionId, itemId);
2390
+ if (item.kind !== 'follow_up') {
2391
+ throw new ConflictError('Only follow-up items can be sent back to the Coder');
2392
+ }
2393
+ item.status = 'queued';
2394
+ item.sentToCoder = false;
2395
+ item.updatedAt = this.clock.now();
2396
+ await this.driveFollowUpsAfterDecision(workspaceId, instance, step, index);
2397
+ return step.followUps;
2398
+ }
2399
+ /** Answer a `question` item; the answer is folded into the Coder's next pass. */
2400
+ async answerFollowUp(workspaceId, executionId, itemId, answer) {
2401
+ const { instance, step, index, item } = await this.loadFollowUpItem(workspaceId, executionId, itemId);
2402
+ if (item.kind !== 'question') {
2403
+ throw new ConflictError('Only question items can be answered');
2404
+ }
2405
+ item.status = 'answered';
2406
+ item.answer = answer;
2407
+ item.sentToCoder = false;
2408
+ item.updatedAt = this.clock.now();
2409
+ await this.driveFollowUpsAfterDecision(workspaceId, instance, step, index);
2410
+ return step.followUps;
2411
+ }
2412
+ /** Dismiss a follow-up / question item without acting on it. */
2413
+ async dismissFollowUp(workspaceId, executionId, itemId) {
2414
+ const { instance, step, index, item } = await this.loadFollowUpItem(workspaceId, executionId, itemId);
2415
+ item.status = 'dismissed';
2416
+ item.updatedAt = this.clock.now();
2417
+ await this.driveFollowUpsAfterDecision(workspaceId, instance, step, index);
2418
+ return step.followUps;
2419
+ }
2420
+ /**
2421
+ * Persist an item decision and, when the run is PARKED on this step's follow-up gate and
2422
+ * every item is now decided, drive it forward: loop the Coder for the queued / answered
2423
+ * items (within the budget), else advance past the gate. When the run is not parked (the
2424
+ * Coder is still running, or it already moved on) this only persists + emits the change.
2425
+ */
2426
+ async driveFollowUpsAfterDecision(workspaceId, instance, step, index) {
2427
+ const parkedHere = instance.status === 'blocked' &&
2428
+ step.approval?.status === 'pending' &&
2429
+ instance.currentStep === index;
2430
+ if (!parkedHere || hasPendingFollowUps(step.followUps)) {
2431
+ // Still collecting decisions (or the run isn't parked on this gate): just record it.
2432
+ await this.executionRepository.upsert(workspaceId, instance);
2433
+ await this.emitInstance(workspaceId, instance);
2434
+ return;
2435
+ }
2436
+ // Every item is decided and the run is parked here: clear the waiting card and either
2437
+ // loop the Coder for the send-back items or advance past the gate.
2438
+ await this.clearWaitingNotification(workspaceId, instance);
2439
+ if (shouldLoopCoder(step.followUps)) {
2440
+ const decisionId = step.approval.id;
2441
+ this.loopCoderForFollowUps(instance, step);
2442
+ await this.updateBlockProgress(workspaceId, instance, 'in_progress');
2443
+ await this.executionRepository.upsert(workspaceId, instance);
2444
+ await this.workRunner.signalDecision(workspaceId, instance.id, decisionId, 'approved');
2445
+ await this.emitInstance(workspaceId, instance);
2446
+ return;
2447
+ }
2448
+ // The follow-up gate is settled and we won't loop. If this step ALSO carries a human
2449
+ // approval gate, hand off to it now instead of advancing — the follow-up park reused
2450
+ // `step.approval`, so advancing here would silently SKIP the approval. Keep the same
2451
+ // parked decision id (the durable driver is already waiting on it), refresh the proposal
2452
+ // to the step output, and re-raise the standard "waiting for input" card (we just cleared
2453
+ // the follow-up one). The human then resolves it through the normal approve / request-
2454
+ // changes path. The follow-up gate already ran BEFORE the approval gate in
2455
+ // recordStepResult, so this preserves that exact ordering across the park.
2456
+ const isFinalStep = index === instance.steps.length - 1;
2457
+ if (step.requiresApproval && !isFinalStep && step.approval?.status === 'pending') {
2458
+ step.approval = { ...step.approval, proposal: step.output ?? '' };
2459
+ await this.executionRepository.upsert(workspaceId, instance);
2460
+ await this.ensureWaitingNotification(workspaceId, instance);
2461
+ await this.emitInstance(workspaceId, instance);
2462
+ return;
2463
+ }
2464
+ await this.advancePastResolvedGate(workspaceId, instance, index);
2465
+ }
2148
2466
  /** Provision inputs (`{{input.*}}`) derived from the block under deployment. */
2149
2467
  deployInputs(block) {
2150
2468
  const inputs = {
@@ -2286,12 +2604,19 @@ export class ExecutionService {
2286
2604
  if (step.agentKind === CLARITY_REVIEW_AGENT_KIND) {
2287
2605
  throw new ConflictError('Resolve the clarity review through its review window, not the approval gate');
2288
2606
  }
2607
+ if (step.agentKind === REQUIREMENTS_BRAINSTORM_AGENT_KIND ||
2608
+ step.agentKind === ARCHITECTURE_BRAINSTORM_AGENT_KIND) {
2609
+ throw new ConflictError('Resolve the brainstorm through its brainstorm window, not the approval gate');
2610
+ }
2289
2611
  if (step.agentKind === HUMAN_TEST_AGENT_KIND) {
2290
2612
  throw new ConflictError('Resolve the human-testing gate through its window (confirm / request a fix), not the approval gate');
2291
2613
  }
2292
2614
  if (step.companion?.exceeded) {
2293
2615
  throw new ConflictError('Resolve this companion review through its iteration-cap prompt, not the approval gate');
2294
2616
  }
2617
+ if (step.followUps?.enabled && step.followUps.items.some((i) => i.status === 'pending')) {
2618
+ throw new ConflictError('Resolve the follow-up companion through its window (file / send back / answer / dismiss), not the approval gate');
2619
+ }
2295
2620
  }
2296
2621
  /**
2297
2622
  * The requirements subject for {@link reviewGate}: closures over the requirements reviewer
@@ -2369,6 +2694,65 @@ export class ExecutionService {
2369
2694
  emit: (ws, review) => this.events.clarityReviewChanged?.(ws, review) ?? Promise.resolve(),
2370
2695
  };
2371
2696
  }
2697
+ /**
2698
+ * A brainstorm (structured-dialogue) subject for {@link reviewGate}, parameterised by stage.
2699
+ * Otherwise identical to the requirements kind — the service handles its own upstream context
2700
+ * (the architecture stage seeds from the refined requirements). The brainstorm services
2701
+ * resolve their model exactly like the requirements reviewer, so the cap knobs are reused.
2702
+ */
2703
+ buildBrainstormKind(stage, agentKind) {
2704
+ const require = () => {
2705
+ const svc = this.brainstormServices?.[stage];
2706
+ if (!svc?.enabled)
2707
+ throw new ConflictError('The brainstorm agent is not configured');
2708
+ return svc;
2709
+ };
2710
+ return {
2711
+ agentKind,
2712
+ entityName: 'Brainstorm session',
2713
+ enabled: () => !!this.brainstormServices?.[stage]?.enabled,
2714
+ getForBlock: (ws, blockId) => require().getForBlock(ws, blockId),
2715
+ review: (ws, block, preset) => require().review(ws, block.id, {
2716
+ maxIterations: preset.maxRequirementIterations,
2717
+ concernThreshold: preset.maxRequirementConcernAllowed,
2718
+ }),
2719
+ reReview: (ws, reviewId, preset) => require().reReview(ws, reviewId, { concernThreshold: preset.maxRequirementConcernAllowed }),
2720
+ incorporate: async (ws, _blockId, reviewId, feedback) => {
2721
+ await require().incorporate(ws, reviewId, { feedback });
2722
+ },
2723
+ markIncorporated: (ws, reviewId) => require().markIncorporated(ws, reviewId),
2724
+ markReReviewing: (ws, reviewId) => require().markReReviewing(ws, reviewId),
2725
+ markIncorporating: (ws, reviewId) => require().markIncorporating(ws, reviewId),
2726
+ grantExtraRound: (ws, reviewId) => require().grantExtraRound(ws, reviewId),
2727
+ emit: (ws, session) => this.events.brainstormSessionChanged?.(ws, session) ?? Promise.resolve(),
2728
+ };
2729
+ }
2730
+ /** Pick the brainstorm kind for a stage (the dedicated window drives both via the same loop). */
2731
+ brainstormKindFor(stage) {
2732
+ return stage === 'architecture'
2733
+ ? this.architectureBrainstormKind
2734
+ : this.requirementsBrainstormKind;
2735
+ }
2736
+ /** Run a fresh brainstorm pass over a block + stage (off-path inspector / window surface). */
2737
+ reviewBrainstorm(workspaceId, blockId, stage) {
2738
+ return this.reviewGate.review(this.brainstormKindFor(stage), workspaceId, blockId);
2739
+ }
2740
+ /** Incorporate the human's picks ASYNCHRONOUSLY (the brainstorm mirror of {@link incorporateRequirements}). */
2741
+ incorporateBrainstorm(workspaceId, blockId, stage, feedback) {
2742
+ return this.reviewGate.incorporate(this.brainstormKindFor(stage), workspaceId, blockId, feedback);
2743
+ }
2744
+ /** Re-run the brainstorm against the converged direction (one more pass). */
2745
+ reReviewBrainstorm(workspaceId, blockId, stage) {
2746
+ return this.reviewGate.reReview(this.brainstormKindFor(stage), workspaceId, blockId);
2747
+ }
2748
+ /** Proceed: settle the brainstorm (last converged direction wins downstream) and advance. */
2749
+ proceedBrainstorm(workspaceId, blockId, stage) {
2750
+ return this.reviewGate.proceed(this.brainstormKindFor(stage), workspaceId, blockId);
2751
+ }
2752
+ /** Resolve a brainstorm that hit its iteration cap (extra-round / proceed / stop-reset). */
2753
+ resolveBrainstormExceeded(workspaceId, blockId, stage, choice) {
2754
+ return this.reviewGate.resolveExceeded(this.brainstormKindFor(stage), workspaceId, blockId, choice);
2755
+ }
2372
2756
  /**
2373
2757
  * Run a fresh reviewer pass over a block's collected requirements, snapshotting the
2374
2758
  * task's merge-preset knobs (iteration budget + tolerated severity) onto the review.