@cat-factory/orchestration 0.105.5 → 0.106.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 (32) hide show
  1. package/dist/container.d.ts.map +1 -1
  2. package/dist/container.js +25 -0
  3. package/dist/container.js.map +1 -1
  4. package/dist/modules/execution/AgentContextBuilder.d.ts +9 -0
  5. package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
  6. package/dist/modules/execution/AgentContextBuilder.js +15 -0
  7. package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
  8. package/dist/modules/execution/ExecutionService.d.ts +12 -2
  9. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  10. package/dist/modules/execution/ExecutionService.js +16 -2
  11. package/dist/modules/execution/ExecutionService.js.map +1 -1
  12. package/dist/modules/execution/ForkChatService.d.ts +40 -0
  13. package/dist/modules/execution/ForkChatService.d.ts.map +1 -0
  14. package/dist/modules/execution/ForkChatService.js +74 -0
  15. package/dist/modules/execution/ForkChatService.js.map +1 -0
  16. package/dist/modules/execution/ForkDecisionController.d.ts +35 -1
  17. package/dist/modules/execution/ForkDecisionController.d.ts.map +1 -1
  18. package/dist/modules/execution/ForkDecisionController.js +107 -1
  19. package/dist/modules/execution/ForkDecisionController.js.map +1 -1
  20. package/dist/modules/execution/RunDispatcher.d.ts +3 -1
  21. package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
  22. package/dist/modules/execution/RunDispatcher.js +20 -14
  23. package/dist/modules/execution/RunDispatcher.js.map +1 -1
  24. package/dist/modules/execution/forkDecision.logic.d.ts +12 -3
  25. package/dist/modules/execution/forkDecision.logic.d.ts.map +1 -1
  26. package/dist/modules/execution/forkDecision.logic.js +17 -2
  27. package/dist/modules/execution/forkDecision.logic.js.map +1 -1
  28. package/dist/modules/execution/job.logic.d.ts +28 -0
  29. package/dist/modules/execution/job.logic.d.ts.map +1 -1
  30. package/dist/modules/execution/job.logic.js +33 -0
  31. package/dist/modules/execution/job.logic.js.map +1 -1
  32. package/package.json +11 -11
@@ -0,0 +1,74 @@
1
+ import { generateText } from 'ai';
2
+ import { inlineModelRef, resolveScopedModelProvider, ValidationError } from '@cat-factory/kernel';
3
+ import { catFactoryObservability, FORK_CHAT_AGENT_KIND, FORK_CHAT_SYSTEM_PROMPT, renderForkChatPrompt, } from '@cat-factory/agents';
4
+ import { scopeForBlockRun } from '../../inlineScope.js';
5
+ export class ForkChatService {
6
+ deps;
7
+ constructor(deps) {
8
+ this.deps = deps;
9
+ }
10
+ /** Whether the inline chat responder is available (a provider AND a routing default are wired). */
11
+ get enabled() {
12
+ return (!!this.deps.modelProviderResolver || !!this.deps.modelProvider) && !!this.deps.modelRef;
13
+ }
14
+ /**
15
+ * Answer one human turn about the surfaced forks. Runs the inline responder over the fixed
16
+ * proposal grounding + the thread and returns the assistant reply plus the model that produced
17
+ * it. Throws {@link ValidationError} on an unresolved model or an empty/failed generation, so
18
+ * the driver can record a graceful fallback instead of wedging the parked run.
19
+ */
20
+ async respond(workspaceId, block, grounding) {
21
+ const { modelProvider, ref } = await this.resolveModel(workspaceId, block);
22
+ let text;
23
+ try {
24
+ const model = modelProvider.resolve(ref);
25
+ const result = await generateText({
26
+ model,
27
+ system: FORK_CHAT_SYSTEM_PROMPT,
28
+ prompt: renderForkChatPrompt(grounding),
29
+ temperature: 0.3,
30
+ maxOutputTokens: 1200,
31
+ providerOptions: catFactoryObservability({
32
+ agentKind: FORK_CHAT_AGENT_KIND,
33
+ workspaceId,
34
+ }),
35
+ });
36
+ text = result.text;
37
+ }
38
+ catch (e) {
39
+ throw new ValidationError(`The fork-decision chat responder (${ref.provider}:${ref.model}) failed: ${e instanceof Error ? e.message : String(e)}`);
40
+ }
41
+ const reply = text.trim();
42
+ // An empty visible reply means the model answered only into its private reasoning channel
43
+ // (seen on some reasoning models) — fail loudly so the driver records the canned fallback
44
+ // rather than appending an empty assistant bubble.
45
+ if (!reply) {
46
+ throw new ValidationError(`The fork-decision chat responder (${ref.provider}:${ref.model}) returned an empty reply`);
47
+ }
48
+ return { text: reply, model: `${ref.provider}:${ref.model}` };
49
+ }
50
+ async resolveModel(workspaceId, block) {
51
+ const scope = await scopeForBlockRun(workspaceId, block, this.deps.resolveRunContext);
52
+ const modelProvider = await resolveScopedModelProvider(scope, this.deps);
53
+ const ref = await this.modelFor(workspaceId, block);
54
+ if (!modelProvider || !ref) {
55
+ throw new ValidationError('No model is configured for the fork-decision chat');
56
+ }
57
+ return { modelProvider, ref };
58
+ }
59
+ /** Block pin > workspace per-kind default > routing default (subscription refs degrade inline). */
60
+ async modelFor(workspaceId, block) {
61
+ const fallback = this.deps.modelRef;
62
+ const runsInline = this.deps.runsInline;
63
+ const resolve = (ref) => inlineModelRef(ref, fallback ?? ref, runsInline ? { runsInline } : {});
64
+ const fromBlock = this.deps.resolveBlockModel?.(block.modelId);
65
+ if (fromBlock)
66
+ return resolve(fromBlock);
67
+ const defaultId = await this.deps.resolveWorkspaceModelDefault?.(workspaceId, FORK_CHAT_AGENT_KIND, block.modelPresetId);
68
+ const fromDefault = this.deps.resolveBlockModel?.(defaultId);
69
+ if (fromDefault)
70
+ return resolve(fromDefault);
71
+ return fallback;
72
+ }
73
+ }
74
+ //# sourceMappingURL=ForkChatService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ForkChatService.js","sourceRoot":"","sources":["../../../src/modules/execution/ForkChatService.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import type { BlockRepository, ChooseForkInput, Clock, ExecutionInstance, ExecutionRepository, ForkDecisionStepState, ForkProposal, IdGenerator, PipelineStep, WorkRunner } from '@cat-factory/kernel';
1
+ import type { Block, BlockRepository, ChooseForkInput, Clock, ExecutionInstance, ExecutionRepository, ForkChatRequestInput, ForkDecisionStepState, ForkProposal, IdGenerator, PipelineStep, WorkRunner } from '@cat-factory/kernel';
2
2
  import type { NotificationService } from '../notifications/NotificationService.js';
3
3
  import type { AdvanceResult } from './advance.js';
4
+ import type { ForkChatService } from './ForkChatService.js';
4
5
  import type { RunStateMachine } from './RunStateMachine.js';
5
6
  import type { StepGraph } from './StepGraph.js';
6
7
  /** What the fork-decision controller needs beyond the shared run state-machine spine. */
@@ -16,6 +17,18 @@ export interface ForkDecisionControllerDeps {
16
17
  clock: Clock;
17
18
  /** Optional inbox channel; when unwired the `fork_decision_pending` card is skipped. */
18
19
  notificationService?: NotificationService;
20
+ /**
21
+ * Inline grounded-chat responder. When unwired (no model) the chat degrades gracefully — a
22
+ * human chat turn is answered with a canned "chat unavailable" reply — so pick / custom still
23
+ * work. See {@link ForkDecisionController.answerChat}.
24
+ */
25
+ forkChatService?: ForkChatService;
26
+ /**
27
+ * Resolve the EFFECTIVE task description an agent step runs against (reworked requirements →
28
+ * clarified report → raw description) so the chat grounds on the same brief every agent sees.
29
+ * Injected from {@link AgentContextBuilder.resolveEffectiveDescription}.
30
+ */
31
+ resolveEffectiveDescription?: (workspaceId: string, block: Block) => Promise<string>;
19
32
  }
20
33
  /**
21
34
  * Drives the human-facing half of the implementation-fork decision phase on the Coder step:
@@ -54,6 +67,27 @@ export declare class ForkDecisionController {
54
67
  * the non-idempotent settle (clear card / progress / signal / emit) runs once after it wins.
55
68
  */
56
69
  choose(workspaceId: string, executionId: string, input: ChooseForkInput): Promise<ForkDecisionStepState>;
70
+ /**
71
+ * Send a human chat message about the surfaced forks. Records the message on the parked coder
72
+ * step, flags the step `answering` + sets the `pendingForkChat` re-entry marker, and wakes the
73
+ * durable driver — which computes the grounded reply INLINE off the HTTP request (see
74
+ * {@link answerChat}) and re-parks. Returns immediately with the `answering` state; the
75
+ * assistant reply arrives via the `execution` event. Mirrors {@link ReviewGateController.incorporate}'s
76
+ * async offload: the CAS records the intent + re-arms the run, then the settle (emit + signal)
77
+ * runs once after it wins.
78
+ */
79
+ chat(workspaceId: string, executionId: string, input: ForkChatRequestInput): Promise<ForkDecisionStepState>;
80
+ /**
81
+ * Compute the grounded reply to the pending chat turn INSIDE the durable driver (the LLM work
82
+ * that used to sit in the HTTP request the user is no longer waiting on), append it to the
83
+ * thread, and re-park the step `awaiting_choice` (a fresh approval id). Called from the fork
84
+ * step handler on re-entry when `step.pendingForkChat` is set. Degrades gracefully: with no
85
+ * chat responder wired, or on a responder failure, a canned "chat unavailable" assistant turn
86
+ * is appended and the run re-parks — pick / custom stay available.
87
+ */
88
+ answerChat(workspaceId: string, instance: ExecutionInstance, step: PipelineStep, block: Block): Promise<AdvanceResult>;
89
+ /** Run the inline responder for one turn, or the canned fallback when it is unwired / fails. */
90
+ private computeChatReply;
57
91
  /** The active fork-decision state for a run's GET, or null when no coder step carries one. */
58
92
  getActive(workspaceId: string, executionId: string): Promise<ForkDecisionStepState | null>;
59
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ForkDecisionController.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/ForkDecisionController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,KAAK,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAOjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,yFAAyF;AACzF,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,UAAU,EAAE,UAAU,CAAA;IACtB,2EAA2E;IAC3E,YAAY,EAAE,eAAe,CAAA;IAC7B,0DAA0D;IAC1D,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,0BAA0B,EAAI;IAEjE;;;;;;;;;;;;OAYG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,OAAO,CAAC,aAAa,CAAC,CA4CxB;IAED;;;;;;OAMG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAmDhC;IAED,8FAA8F;IACxF,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAI/F;IAED;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAUtB,mFAAmF;YACrE,wBAAwB;CAoBvC"}
1
+ {"version":3,"file":"ForkDecisionController.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/ForkDecisionController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,eAAe,EACf,eAAe,EACf,KAAK,EACL,iBAAiB,EACjB,mBAAmB,EAEnB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAQ3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAU/C,yFAAyF;AACzF,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,UAAU,EAAE,UAAU,CAAA;IACtB,2EAA2E;IAC3E,YAAY,EAAE,eAAe,CAAA;IAC7B,0DAA0D;IAC1D,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACrF;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,0BAA0B,EAAI;IAEjE;;;;;;;;;;;;OAYG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,OAAO,CAAC,aAAa,CAAC,CA4CxB;IAED;;;;;;OAMG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAmDhC;IAED;;;;;;;;OAQG;IACG,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CA2ChC;IAED;;;;;;;OAOG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,aAAa,CAAC,CAaxB;IAED,gGAAgG;YAClF,gBAAgB;IAqC9B,8FAA8F;IACxF,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAI/F;IAED;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAUtB,mFAAmF;YACrE,wBAAwB;CAoBvC"}
@@ -1,5 +1,10 @@
1
1
  import { ConflictError, ValidationError } from '@cat-factory/kernel';
2
- import { DEFAULT_FORK_MAX_CHAT_TURNS, FORK_DECISION_PRODUCER_KIND, mintForks, usableForks, } from './forkDecision.logic.js';
2
+ import { DEFAULT_FORK_MAX_CHAT_TURNS, forkChatBudgetSpent, FORK_DECISION_PRODUCER_KIND, mintForks, usableForks, } from './forkDecision.logic.js';
3
+ /** Max chars stored per chat message (mirrors the `forkChatMessageSchema` `maxLength`). */
4
+ const FORK_CHAT_MESSAGE_MAX = 4000;
5
+ /** The canned assistant turn used when the inline chat responder is unwired or fails. */
6
+ const CHAT_UNAVAILABLE_REPLY = 'Chat is not available for this task right now. Pick one of the proposed approaches, or enter ' +
7
+ 'your own approach, to continue.';
3
8
  /**
4
9
  * Drives the human-facing half of the implementation-fork decision phase on the Coder step:
5
10
  * records the proposer's structured output onto `step.forkDecision` and parks the run (or
@@ -124,6 +129,107 @@ export class ForkDecisionController {
124
129
  await this.deps.workRunner.signalDecision(workspaceId, instance.id, approvalId, 'approved');
125
130
  return state;
126
131
  }
132
+ /**
133
+ * Send a human chat message about the surfaced forks. Records the message on the parked coder
134
+ * step, flags the step `answering` + sets the `pendingForkChat` re-entry marker, and wakes the
135
+ * durable driver — which computes the grounded reply INLINE off the HTTP request (see
136
+ * {@link answerChat}) and re-parks. Returns immediately with the `answering` state; the
137
+ * assistant reply arrives via the `execution` event. Mirrors {@link ReviewGateController.incorporate}'s
138
+ * async offload: the CAS records the intent + re-arms the run, then the settle (emit + signal)
139
+ * runs once after it wins.
140
+ */
141
+ async chat(workspaceId, executionId, input) {
142
+ const text = input.text.trim();
143
+ if (!text)
144
+ throw new ValidationError('A chat message is required');
145
+ const messageId = this.deps.idGenerator.next('fchat');
146
+ let approvalId = '';
147
+ let state;
148
+ const instance = await this.deps.stateMachine.mutateInstance(workspaceId, executionId, (inst) => {
149
+ const step = inst.steps.find((s) => s.agentKind === FORK_DECISION_PRODUCER_KIND &&
150
+ s.state === 'waiting_decision' &&
151
+ s.approval?.status === 'pending' &&
152
+ s.forkDecision?.status === 'awaiting_choice');
153
+ if (!step?.approval || !step.forkDecision) {
154
+ throw new ConflictError('The run is no longer awaiting an implementation-fork choice');
155
+ }
156
+ if (forkChatBudgetSpent(step.forkDecision)) {
157
+ throw new ConflictError('This fork chat has reached its turn limit — pick an approach or enter your own');
158
+ }
159
+ approvalId = step.approval.id;
160
+ const chat = [
161
+ ...(step.forkDecision.chat ?? []),
162
+ { id: messageId, role: 'human', text, createdAt: this.deps.clock.now() },
163
+ ];
164
+ step.forkDecision = { ...step.forkDecision, status: 'answering', chat };
165
+ // Re-arm BEFORE signalling: the park left the run `blocked`, and `advanceInstance`
166
+ // no-ops unless it is `running`/`paused`, so a woken driver would otherwise return
167
+ // without re-entering the fork handler to compute the reply.
168
+ step.pendingForkChat = { messageId };
169
+ if (inst.status === 'blocked')
170
+ inst.status = 'running';
171
+ state = step.forkDecision;
172
+ });
173
+ await this.deps.stateMachine.emitInstance(workspaceId, instance);
174
+ await this.deps.workRunner.signalDecision(workspaceId, instance.id, approvalId, 'fork-chat');
175
+ return state;
176
+ }
177
+ /**
178
+ * Compute the grounded reply to the pending chat turn INSIDE the durable driver (the LLM work
179
+ * that used to sit in the HTTP request the user is no longer waiting on), append it to the
180
+ * thread, and re-park the step `awaiting_choice` (a fresh approval id). Called from the fork
181
+ * step handler on re-entry when `step.pendingForkChat` is set. Degrades gracefully: with no
182
+ * chat responder wired, or on a responder failure, a canned "chat unavailable" assistant turn
183
+ * is appended and the run re-parks — pick / custom stay available.
184
+ */
185
+ async answerChat(workspaceId, instance, step, block) {
186
+ // Clear the re-entry marker up front so a replay/retry can't answer the same turn twice.
187
+ step.pendingForkChat = null;
188
+ const fd = step.forkDecision;
189
+ if (!fd)
190
+ return this.deps.stateMachine.parkStepOnDecision(workspaceId, instance, step);
191
+ const reply = await this.computeChatReply(workspaceId, block, fd);
192
+ step.forkDecision = {
193
+ ...fd,
194
+ status: 'awaiting_choice',
195
+ chat: [...(fd.chat ?? []), reply],
196
+ };
197
+ return this.deps.stateMachine.parkStepOnDecision(workspaceId, instance, step);
198
+ }
199
+ /** Run the inline responder for one turn, or the canned fallback when it is unwired / fails. */
200
+ async computeChatReply(workspaceId, block, fd) {
201
+ const canned = () => ({
202
+ id: this.deps.idGenerator.next('fchat'),
203
+ role: 'assistant',
204
+ text: CHAT_UNAVAILABLE_REPLY,
205
+ createdAt: this.deps.clock.now(),
206
+ });
207
+ const svc = this.deps.forkChatService;
208
+ if (!svc?.enabled)
209
+ return canned();
210
+ try {
211
+ const description = (await this.deps.resolveEffectiveDescription?.(workspaceId, block)) ??
212
+ block.description ??
213
+ '';
214
+ const { text } = await svc.respond(workspaceId, block, {
215
+ description,
216
+ seamSummary: fd.seamSummary ?? null,
217
+ forks: fd.forks ?? [],
218
+ chat: fd.chat ?? [],
219
+ });
220
+ return {
221
+ id: this.deps.idGenerator.next('fchat'),
222
+ role: 'assistant',
223
+ text: text.slice(0, FORK_CHAT_MESSAGE_MAX),
224
+ createdAt: this.deps.clock.now(),
225
+ };
226
+ }
227
+ catch {
228
+ // A model/resolution failure must never wedge the parked run: fall back to the canned turn
229
+ // so the human can still pick a fork or enter a custom approach.
230
+ return canned();
231
+ }
232
+ }
127
233
  /** The active fork-decision state for a run's GET, or null when no coder step carries one. */
128
234
  async getActive(workspaceId, executionId) {
129
235
  const instance = await this.deps.executionRepository.get(workspaceId, executionId);
@@ -1 +1 @@
1
- {"version":3,"file":"ForkDecisionController.js","sourceRoot":"","sources":["../../../src/modules/execution/ForkDecisionController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ForkDecisionController.js","sourceRoot":"","sources":["../../../src/modules/execution/ForkDecisionController.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentExecutor, AgentRunContext, AgentRunResult, Block, BlockRepository, BrainstormSession, ClarityReview, Clock, ExecutionEventPublisher, ExecutionInstance, ExecutionRepository, FollowUpsStepState, ForkDecisionStepState, ChooseForkInput, GateDefinition, IdGenerator, IssueWritebackProvider, PipelineStep, ProviderCapabilities, ProvisionContext, RequirementConcernLevel, StepGating, RequirementReview, ResolveRunRepoContext, RunInitiatorScope, TicketTrackerProvider, WorkRunner } from '@cat-factory/kernel';
1
+ import type { AgentExecutor, AgentRunContext, AgentRunResult, Block, BlockRepository, BrainstormSession, ClarityReview, Clock, ExecutionEventPublisher, ExecutionInstance, ExecutionRepository, FollowUpsStepState, ForkDecisionStepState, ChooseForkInput, ForkChatRequestInput, GateDefinition, IdGenerator, IssueWritebackProvider, PipelineStep, ProviderCapabilities, ProvisionContext, RequirementConcernLevel, StepGating, RequirementReview, ResolveRunRepoContext, RunInitiatorScope, TicketTrackerProvider, WorkRunner } from '@cat-factory/kernel';
2
2
  import type { AgentKindRegistry } from '@cat-factory/agents';
3
3
  import type { BugIntakeService, EnvironmentProvisioningService } from '@cat-factory/integrations';
4
4
  import { AgentContextBuilder } from './AgentContextBuilder.js';
@@ -682,6 +682,8 @@ export declare class RunDispatcher {
682
682
  getForkDecision(workspaceId: string, executionId: string): Promise<ForkDecisionStepState | null>;
683
683
  /** Resolve the human's implementation-fork choice, re-running the Coder with it folded in. */
684
684
  chooseFork(workspaceId: string, executionId: string, input: ChooseForkInput): Promise<ForkDecisionStepState>;
685
+ /** Send a grounded chat message about the surfaced forks (the reply arrives via the stream). */
686
+ forkChat(workspaceId: string, executionId: string, input: ForkChatRequestInput): Promise<ForkDecisionStepState>;
685
687
  /**
686
688
  * Locate the run + the Coder step that OWNS the addressed item + the item, throwing 404
687
689
  * when absent. Routes by item id (not "the first enabled step") so a pipeline carrying more
@@ -1 +1 @@
1
- {"version":3,"file":"RunDispatcher.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/RunDispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunDispatcher.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/RunDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,eAAe,EACf,cAAc,EAEd,KAAK,EACL,eAAe,EAEf,iBAAiB,EACjB,aAAa,EACb,KAAK,EAEL,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EAElB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EAEpB,cAAc,EAEd,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAGhB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EAErB,iBAAiB,EAMjB,qBAAqB,EACrB,UAAU,EACX,MAAM,qBAAqB,CAAA;AAuC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAEV,gBAAgB,EAChB,8BAA8B,EAG/B,MAAM,2BAA2B,CAAA;AA0ClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAOpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhE;;;;GAIG;AACH,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,wBAAwB,EAAE,MAAM,CAAA;IAChC,4BAA4B,EAAE,uBAAuB,CAAA;IACrD,yBAAyB,EAAE,MAAM,CAAA;IACjC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CACjC,CAAA;AA0ED,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,aAAa,EAAE,aAAa,CAAA;IAC5B,wFAAwF;IACxF,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;IAChC,cAAc,EAAE,mBAAmB,CAAA;IACnC,aAAa,EAAE,aAAa,CAAA;IAC5B,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,4BAA4B,EAAE,4BAA4B,CAAA;IAC1D,UAAU,EAAE,oBAAoB,CAAA;IAChC,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAC/C,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAA;IACtC,0BAA0B,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAA;IACzD,0BAA0B,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAA;IACzD;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAA;IACzD,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,uBAAuB,CAAC,EAAE,8BAA8B,CAAA;IACxD,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,cAAc,CAAC,EAAE,sBAAsB,CAAA;IACvC,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,2BAA2B,CAAC,EAAE,CAC5B,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,KACxB,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAClC,2FAA2F;IAC3F,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACrF,6FAA6F;IAC7F,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAA;CAClF;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA8B;IAC3E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAwB;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA+B;IAC1E,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA+B;IAC1E,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+C;IACpF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAgC;IACzE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAuB;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAuB;IAC9D,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAGX;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAGF;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiE;IAElG,qFAAqF;IACrF,OAAO,CAAC,iBAAiB,CAAC,CAA6B;IACvD,4EAA4E;IAC5E,OAAO,CAAC,iBAAiB,CAAC,CAAqC;IAC/D,8FAA8F;IAC9F,OAAO,CAAC,gBAAgB,CAAC,CAAe;IACxC,mEAAmE;IACnE,OAAO,CAAC,8BAA8B,CAAC,CAA6B;IAEpE,YAAY,IAAI,EAAE,iBAAiB,EAuClC;IAED;;;;;;;;;;OAUG;YACW,mBAAmB;IASjC;;;;;;;;OAQG;YACW,eAAe;IAsG7B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAsBjC;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAahC;;;;;;OAMG;IACG,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO5E;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC,CA8BlB;IAED;;;;;;;OAOG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAEnF;YAEa,iBAAiB;IA0S/B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;;;;;;OASG;YACW,wBAAwB;IAwCtC;;;;;;;OAOG;YACW,oBAAoB;IASlC;;;;;;;OAOG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAE/E;YAEa,aAAa;IAqB3B;;;;;;;;;;OAUG;IACG,yBAAyB,CAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAIxB;YAEa,8BAA8B;IAoD5C;;;;;;;;OAQG;YACW,2BAA2B;IAoDzC;;;;;;OAMG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,aAAa,CAAC,CAsBxB;IACD;;;;;OAKG;YACW,gBAAgB;IAkP9B;;;;;;;;;;;;;;;;;;OAkBG;YACW,eAAe;IA0B7B;;;;;;;OAOG;YACW,qBAAqB;IAuHnC;;;;;;;;;;;;;;OAcG;YACW,oBAAoB;IAuDlC;;;;;OAKG;YACW,mBAAmB;IAkDjC;;;;;;;OAOG;YACW,qBAAqB;IAwBnC;;;;;;OAMG;YACW,eAAe;IAiI7B;;;;;;;;;;;OAWG;YACW,qBAAqB;IA2BnC;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;;;OAMG;IACG,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGvF;IAED;;;;;OAKG;YACW,oBAAoB;IA2DlC;;;;OAIG;YACW,0BAA0B;IAWxC;;;;OAIG;YACW,gBAAgB;IAyB9B;;;;;OAKG;YACW,UAAU;IAkCxB;;;;;;;;;OASG;YACW,YAAY;IA4C1B;;;;;;;;;;;;OAYG;YACW,4BAA4B;IAkC1C;;;;;;;;;;OAUG;YACW,sBAAsB;IAmEpC;;;;;;;;;OASG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAGrD;IAED;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IA8BjC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;;;;;;;;;OAWG;YACW,gBAAgB;IAmB9B;;;;;;OAMG;YACW,mBAAmB;IAkBjC;;;;;;;;OAQG;YACW,cAAc;IAQ5B;;;;;;OAMG;YACW,oBAAoB;IAuClC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAGxC;IAED;;;;;;;;;;;;;;;;OAgBG;YACW,mBAAmB;IAiBjC;;;;;;;;OAQG;IACH;;;;OAIG;IACH,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAOnE;IAED;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAgOhC;;;;;OAKG;YACW,iCAAiC;IAe/C;;;;OAIG;IACH,OAAO,CAAC,+BAA+B;IAiEvC,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,yBAAyB;IAgKjC,yFAAyF;IACzF,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAazB,gFAAgF;IAChF,OAAO,CAAC,eAAe;IAevB;;;;;;;;OAQG;YACW,YAAY;IA8H1B;;;;;OAKG;YACW,kBAAkB;IA8EhC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;;;;OAKG;YACW,oBAAoB;IAqBlC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiB7B,gGAAgG;YAClF,oBAAoB;IAsBlC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAa1B,4FAA4F;IACtF,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAI/F;IASD;;;;;;;OAOG;YACW,uBAAuB;IAsCrC,uEAAuE;IACvE,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAE/F;IAED,8FAA8F;IAC9F,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAEhC;IAED,gGAAgG;IAChG,QAAQ,CACN,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CAEhC;IAED;;;;;OAKG;YACW,gBAAgB;IAqB9B,4FAA4F;IACtF,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,CAsC7B;IAED,2EAA2E;IACrE,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,CAS7B;IAED,iFAAiF;IAC3E,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,CAU7B;IAED,gEAAgE;IAC1D,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,CAK7B;IAED;;;;;;;;;;;;OAYG;YACW,qBAAqB;IAyEnC,gFAAgF;IAChF,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQjD;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAe5C;IAED;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAY9F;IAED;;;;;;;OAOG;YACW,eAAe;IAsB7B;;;;;OAKG;YACW,UAAU;CAWzB"}
@@ -11,7 +11,7 @@ import { renderReproDigest } from './reproTest.logic.js';
11
11
  import { frameOf, validInvolvedServiceFrames } from './frame.logic.js';
12
12
  import { ANALYSIS_AGENT_KIND, ARCHITECTURE_BRAINSTORM_AGENT_KIND, BLUEPRINTS_AGENT_KIND, BUG_INVESTIGATOR_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, CONFLICTS_AGENT_KIND, HUMAN_TEST_AGENT_KIND, isTesterKind, MERGER_AGENT_KIND, REPRO_TEST_AGENT_KIND, REQUIREMENTS_BRAINSTORM_AGENT_KIND, REQUIREMENTS_REVIEW_AGENT_KIND, SPEC_WRITER_AGENT_KIND, TESTER_AGENT_KIND, TRACKER_AGENT_KIND, UI_TESTER_AGENT_KIND, VISUAL_CONFIRM_AGENT_KIND, } from './ci.logic.js';
13
13
  import { followUpsToSendBack, hasPendingFollowUps, renderFollowUpRework, shouldLoopCoder, } from './followUp.logic.js';
14
- import { agentFailureKindFromCause, classifyAgentFailure, isContainerEvictionError, isTransientEviction, MAX_EVICTION_RECOVERIES, MAX_TRANSIENT_EVICTION_RECOVERIES, } from './job.logic.js';
14
+ import { agentFailureKindFromCause, classifyAgentFailure, classifyDispatchFailure, isContainerEvictionError, isTransientEviction, MAX_EVICTION_RECOVERIES, MAX_TRANSIENT_EVICTION_RECOVERIES, } from './job.logic.js';
15
15
  import { AgentContextBuilder } from './AgentContextBuilder.js';
16
16
  import { CompanionController } from './CompanionController.js';
17
17
  import { HumanTestController } from './HumanTestController.js';
@@ -257,22 +257,17 @@ export class RunDispatcher {
257
257
  handle = await executor.startJob(context);
258
258
  }
259
259
  catch (error) {
260
- // The container/runner never accepted the job (a dispatch HTTP error, a
261
- // missing backend, a capacity blip). Surface the EXACT provider/runtime
262
- // response and classify it as a `dispatch` failure ("container failed to
263
- // start") so the run details say the container never started not a generic
264
- // "run failed". A dispatch-time eviction still routes to the evicted framing.
260
+ // Classify the throw (see {@link classifyDispatchFailure}). A genuine container
261
+ // accept failure (HTTP/network/capacity) is framed as `dispatch` ("container failed
262
+ // to start") with the EXACT provider response as detail; a dispatch-time eviction
263
+ // routes to `evicted`. But a job is BUILT before any container is contacted, so a
264
+ // precondition (e.g. `github_not_connected` no connected repo) is a `preflight`
265
+ // rejection that surfaces its own actionable message + machine-readable reason
266
+ // instead of the misleading container framing.
265
267
  step.container = { status: 'errored' };
266
268
  await this.runStateMachine.casPersist(workspaceId, instance);
267
269
  await this.runStateMachine.emitInstance(workspaceId, instance);
268
- const message = getErrorMessage(error);
269
- const evicted = isContainerEvictionError(message);
270
- return {
271
- kind: 'job_failed',
272
- error: evicted ? message : 'The container failed to start.',
273
- failureKind: evicted ? 'evicted' : 'dispatch',
274
- detail: message,
275
- };
270
+ return { kind: 'job_failed', ...classifyDispatchFailure(error) };
276
271
  }
277
272
  step.jobId = handle.jobId;
278
273
  // Record the model at dispatch — the poll site can't resolve it later.
@@ -2837,6 +2832,13 @@ export class RunDispatcher {
2837
2832
  */
2838
2833
  async handleForkDecisionPhase(ctx) {
2839
2834
  const { workspaceId, instance, step, block } = ctx;
2835
+ // Re-entry: the human sent a chat turn about the surfaced forks (`pendingForkChat` set by
2836
+ // {@link ForkDecisionController.chat}). Compute the grounded reply INLINE in the durable driver
2837
+ // (off the HTTP request), append it, and re-park — never re-dispatch the proposer. This is the
2838
+ // resume path the `reentrantForkDecision` guard in `stepInstance` falls through for.
2839
+ if (step.pendingForkChat) {
2840
+ return this.forkDecisionController.answerChat(workspaceId, instance, step, block);
2841
+ }
2840
2842
  if (!step.forkDecision) {
2841
2843
  const tri = resolveForkTriState(block.agentConfig);
2842
2844
  let propose = tri === 'always';
@@ -2873,6 +2875,10 @@ export class RunDispatcher {
2873
2875
  chooseFork(workspaceId, executionId, input) {
2874
2876
  return this.forkDecisionController.choose(workspaceId, executionId, input);
2875
2877
  }
2878
+ /** Send a grounded chat message about the surfaced forks (the reply arrives via the stream). */
2879
+ forkChat(workspaceId, executionId, input) {
2880
+ return this.forkDecisionController.chat(workspaceId, executionId, input);
2881
+ }
2876
2882
  /**
2877
2883
  * Locate the run + the Coder step that OWNS the addressed item + the item, throwing 404
2878
2884
  * when absent. Routes by item id (not "the first enabled step") so a pipeline carrying more