@llm4ts/flow 2.40.1 → 2.42.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 (65) hide show
  1. package/dist/Activity.d.ts +6 -1
  2. package/dist/Activity.d.ts.map +1 -1
  3. package/dist/Activity.js +53 -5
  4. package/dist/Activity.js.map +1 -1
  5. package/dist/BoardSync.d.ts +3 -0
  6. package/dist/BoardSync.d.ts.map +1 -1
  7. package/dist/BoardSync.js +14 -0
  8. package/dist/BoardSync.js.map +1 -1
  9. package/dist/CostReport.d.ts +14 -1
  10. package/dist/CostReport.d.ts.map +1 -1
  11. package/dist/CostReport.js +43 -6
  12. package/dist/CostReport.js.map +1 -1
  13. package/dist/Flow.d.ts +26 -1
  14. package/dist/Flow.d.ts.map +1 -1
  15. package/dist/Flow.js +155 -133
  16. package/dist/Flow.js.map +1 -1
  17. package/dist/FlowContext.d.ts +5 -0
  18. package/dist/FlowContext.d.ts.map +1 -1
  19. package/dist/FlowContext.js.map +1 -1
  20. package/dist/FlowEvents.d.ts +69 -5
  21. package/dist/FlowEvents.d.ts.map +1 -1
  22. package/dist/FlowEvents.js +92 -6
  23. package/dist/FlowEvents.js.map +1 -1
  24. package/dist/Perimeter.d.ts +7 -0
  25. package/dist/Perimeter.d.ts.map +1 -1
  26. package/dist/Perimeter.js +31 -0
  27. package/dist/Perimeter.js.map +1 -1
  28. package/dist/Plan.d.ts +24 -0
  29. package/dist/Plan.d.ts.map +1 -1
  30. package/dist/Plan.js +52 -0
  31. package/dist/Plan.js.map +1 -1
  32. package/dist/PlanExecution.d.ts +39 -2
  33. package/dist/PlanExecution.d.ts.map +1 -1
  34. package/dist/PlanExecution.js +137 -3
  35. package/dist/PlanExecution.js.map +1 -1
  36. package/dist/Roster.d.ts +4 -2
  37. package/dist/Roster.d.ts.map +1 -1
  38. package/dist/Roster.js +50 -28
  39. package/dist/Roster.js.map +1 -1
  40. package/dist/RosterSeats.d.ts +11 -2
  41. package/dist/RosterSeats.d.ts.map +1 -1
  42. package/dist/RosterSeats.js +12 -5
  43. package/dist/RosterSeats.js.map +1 -1
  44. package/dist/Stories.d.ts +7 -0
  45. package/dist/Stories.d.ts.map +1 -1
  46. package/dist/Stories.js +157 -13
  47. package/dist/Stories.js.map +1 -1
  48. package/dist/Transcript.d.ts +4 -0
  49. package/dist/Transcript.d.ts.map +1 -1
  50. package/dist/Transcript.js +4 -0
  51. package/dist/Transcript.js.map +1 -1
  52. package/package.json +2 -2
  53. package/src/Activity.ts +73 -7
  54. package/src/BoardSync.ts +20 -0
  55. package/src/CostReport.ts +51 -6
  56. package/src/Flow.ts +108 -34
  57. package/src/FlowContext.ts +5 -0
  58. package/src/FlowEvents.ts +103 -6
  59. package/src/Perimeter.ts +36 -0
  60. package/src/Plan.ts +71 -0
  61. package/src/PlanExecution.ts +233 -4
  62. package/src/Roster.ts +60 -34
  63. package/src/RosterSeats.ts +31 -7
  64. package/src/Stories.ts +230 -17
  65. package/src/Transcript.ts +6 -0
package/dist/Flow.js CHANGED
@@ -2,14 +2,16 @@ import { join } from "node:path";
2
2
  import * as Clock from "effect/Clock";
3
3
  import * as Effect from "effect/Effect";
4
4
  import * as Ref from "effect/Ref";
5
+ import * as Semaphore from "effect/Semaphore";
5
6
  import { collect } from "@llm4ts/core/Streaming";
6
7
  import { withToolActivity } from "./Activity.js";
7
8
  import { appendNote, findingsIn, trailerIn, findingsRequest, withNotes } from "./CarriedNotes.js";
8
9
  import { makeChat } from "./Chat.js";
9
10
  import { FlowAborted, FlowLlmError } from "./FlowError.js";
10
11
  import { AssistantMessage, Info, JudgmentObserved, publishJudgmentObserved, TokensUsed } from "./FlowEvents.js";
12
+ import { hasParallelTasks } from "./Plan.js";
11
13
  import { ensureBaseline } from "./GateTriage.js";
12
- import { implementTaskLoop, stage } from "./PlanExecution.js";
14
+ import { implementTaskGraph, implementTaskLoop, stage } from "./PlanExecution.js";
13
15
  import { truth } from "@llm4ts/core/judgment/Schemas";
14
16
  import { certaintyOf, decide, judgmentOf } from "./Judgment.js";
15
17
  import { applyTriage, minimalReviewers, reviewAndFixLoop, withOracle } from "./Review.js";
@@ -118,144 +120,164 @@ export const implementPlanFlow = Effect.fn("@llm4ts/flow/Flow.implementPlan")(fu
118
120
  ...(options.stall === undefined ? {} : { stall: options.stall })
119
121
  });
120
122
  }
121
- return yield* implementTaskLoop(options.store, context.events, options.planPath, plan, (task, planSoFar) => Effect.gen(function* () {
122
- // `sharedCoder`'s definedness mirrors `options.chatPerTask !== true`
123
- // above: when it's set, every task reuses it; when it's undefined,
124
- // chatPerTask is active and each task builds its own fresh Chat.
125
- let coder;
126
- if (sharedCoder !== undefined) {
127
- coder = sharedCoder;
128
- }
129
- else {
130
- coder = yield* makeChat(context.coder, {
131
- events: context.events,
132
- agent: "coder",
133
- system: composeSystem(options.system, planSoFar.render),
134
- ...(options.stall === undefined ? {} : { stall: options.stall })
135
- });
136
- }
137
- // `plan.taskPrompt` deliberately reads the frozen `plan` captured at
138
- // the top of this function: a task prompt only needs that task's own
139
- // details. `planSoFar`, threaded through by implementTaskLoop, is the
140
- // single source of truth for completion progress instead.
141
- const notes = options.carry === undefined ? undefined : yield* options.carry.read;
142
- const taskStartedAt = yield* Clock.currentTimeMillis;
143
- /** What the task's reply learned goes to the carried notes, whichever turn did the work. */
144
- const keepFindings = (reply) => Effect.gen(function* () {
145
- const found = findingsIn(reply);
146
- if (options.carry !== undefined && found !== undefined) {
147
- yield* options.carry.write(appendNote(notes, task.title, found));
123
+ const carryLock = yield* Semaphore.make(1);
124
+ /** The task's body in `ctx`: the plan's own context at home, another one aside (ADR 0034). */
125
+ const taskBody = (ctx, over) => (task, planSoFar) => {
126
+ const lint = "lint" in over ? over.lint : options.lint;
127
+ const onTaskReply = "onTaskReply" in over ? over.onTaskReply : options.onTaskReply;
128
+ const system = over.system ?? options.system;
129
+ return Effect.gen(function* () {
130
+ // `sharedCoder`'s definedness mirrors `options.chatPerTask !== true`
131
+ // above: when it's set, every task reuses it; when it's undefined,
132
+ // chatPerTask is active and each task builds its own fresh Chat.
133
+ let coder;
134
+ if (sharedCoder !== undefined && ctx === context) {
135
+ coder = sharedCoder;
148
136
  }
149
- if (options.onTaskReply !== undefined) {
150
- yield* options.onTaskReply(task, reply, trailerIn(found), taskStartedAt);
137
+ else {
138
+ coder = yield* makeChat(ctx.coder, {
139
+ events: ctx.events,
140
+ agent: "coder",
141
+ system: composeSystem(system, planSoFar.render),
142
+ ...(options.stall === undefined ? {} : { stall: options.stall })
143
+ });
151
144
  }
152
- });
153
- yield* keepFindings(yield* coder.ask(options.carry === undefined
154
- ? plan.taskPrompt(task)
155
- : `${withNotes(plan.taskPrompt(task), notes)}\n${findingsRequest}`));
156
- const produced = yield* context.git.diffAll;
157
- if (produced.trim().length === 0) {
158
- // An empty diff is ambiguous: the task may be genuinely satisfied
159
- // already, or the coder may simply have produced nothing. Ask
160
- // explicitly instead of inferring from absence; a task that
161
- // produces no changes and no confirmation fails rather than being
162
- // silently marked complete.
163
- const confirmation = yield* coder.ask([
164
- "Your previous turn produced no file changes.",
165
- `If the task "${task.title}" is already fully satisfied by the current state of the repository, reply with exactly TASK_ALREADY_SATISFIED and nothing else.`,
166
- "Otherwise, implement the task now."
167
- ].join("\n"));
168
- yield* keepFindings(confirmation);
169
- const afterConfirmation = yield* context.git.diffAll;
170
- if (afterConfirmation.trim().length === 0) {
171
- const judged = options.satisfiedProbe !== undefined && options.satisfiedProbe !== "literal"
172
- ? yield* satisfiedByJudgment(context, task.title, confirmation, options.satisfiedProbe === "judgment" ? "act" : options.satisfiedProbe.mode)
173
- : undefined;
174
- if (judged ?? confirmation.includes("TASK_ALREADY_SATISFIED")) {
175
- yield* context.events.publish(Info.make({
176
- message: `task "${task.title}" confirmed already satisfied; skipping review and commit`
177
- }));
178
- return;
145
+ // `plan.taskPrompt` deliberately reads the frozen `plan` captured at
146
+ // the top of this function: a task prompt only needs that task's own
147
+ // details. `planSoFar`, threaded through by implementTaskLoop, is the
148
+ // single source of truth for completion progress instead.
149
+ const notes = options.carry === undefined ? undefined : yield* options.carry.read;
150
+ const taskStartedAt = yield* Clock.currentTimeMillis;
151
+ /** What the task's reply learned goes to the carried notes, whichever turn did the work. */
152
+ const keepFindings = (reply) => Effect.gen(function* () {
153
+ const found = findingsIn(reply);
154
+ const carry = options.carry;
155
+ if (carry !== undefined && found !== undefined) {
156
+ // Tasks may run at once (ADR 0034): append to the notes as they are now.
157
+ yield* carryLock.withPermit(Effect.flatMap(carry.read, (latest) => carry.write(appendNote(latest, task.title, found))));
179
158
  }
180
- if (options.noopTaskPolicy === "complete") {
181
- yield* context.events.publish(Info.make({
182
- message: `task "${task.title}" produced no changes without confirming TASK_ALREADY_SATISFIED; marking complete per noopTaskPolicy`
183
- }));
184
- return;
159
+ if (onTaskReply !== undefined) {
160
+ yield* onTaskReply(task, reply, trailerIn(found), taskStartedAt);
161
+ }
162
+ });
163
+ yield* keepFindings(yield* coder.ask(options.carry === undefined
164
+ ? plan.taskPrompt(task)
165
+ : `${withNotes(plan.taskPrompt(task), notes)}\n${findingsRequest}`));
166
+ const produced = yield* ctx.git.diffAll;
167
+ if (produced.trim().length === 0) {
168
+ // An empty diff is ambiguous: the task may be genuinely satisfied
169
+ // already, or the coder may simply have produced nothing. Ask
170
+ // explicitly instead of inferring from absence; a task that
171
+ // produces no changes and no confirmation fails rather than being
172
+ // silently marked complete.
173
+ const confirmation = yield* coder.ask([
174
+ "Your previous turn produced no file changes.",
175
+ `If the task "${task.title}" is already fully satisfied by the current state of the repository, reply with exactly TASK_ALREADY_SATISFIED and nothing else.`,
176
+ "Otherwise, implement the task now."
177
+ ].join("\n"));
178
+ yield* keepFindings(confirmation);
179
+ const afterConfirmation = yield* ctx.git.diffAll;
180
+ if (afterConfirmation.trim().length === 0) {
181
+ const judged = options.satisfiedProbe !== undefined && options.satisfiedProbe !== "literal"
182
+ ? yield* satisfiedByJudgment(ctx, task.title, confirmation, options.satisfiedProbe === "judgment" ? "act" : options.satisfiedProbe.mode)
183
+ : undefined;
184
+ if (judged ?? confirmation.includes("TASK_ALREADY_SATISFIED")) {
185
+ yield* ctx.events.publish(Info.make({
186
+ message: `task "${task.title}" confirmed already satisfied; skipping review and commit`
187
+ }));
188
+ return;
189
+ }
190
+ if (options.noopTaskPolicy === "complete") {
191
+ yield* ctx.events.publish(Info.make({
192
+ message: `task "${task.title}" produced no changes without confirming TASK_ALREADY_SATISFIED; marking complete per noopTaskPolicy`
193
+ }));
194
+ return;
195
+ }
196
+ return yield* FlowAborted.make({
197
+ message: `task "${task.title}" produced no changes and did not confirm TASK_ALREADY_SATISFIED; failing instead of marking it complete`
198
+ });
185
199
  }
186
- return yield* FlowAborted.make({
187
- message: `task "${task.title}" produced no changes and did not confirm TASK_ALREADY_SATISFIED; failing instead of marking it complete`
188
- });
189
200
  }
190
- }
191
- const triage = yield* triageFor(context, options);
192
- const repoRules = options.repoRules === undefined ? undefined : yield* options.repoRules;
193
- const reviewers = [
194
- ...(options.reviewers ?? minimalReviewers),
195
- ...(repoRules === undefined ? [] : [repoRules])
196
- ];
197
- const fixWith = options.fixer === "separate"
198
- ? (prompt) => Effect.flatMap(makeChat(context.coder, {
199
- events: context.events,
200
- agent: "coder",
201
- system: withContract(fixerBrief),
202
- ...(options.stall === undefined ? {} : { stall: options.stall })
203
- }), (fixer) => fixer.ask(withNotes(prompt, notes)))
204
- : undefined;
205
- const oracle = options.oracle === undefined
206
- ? undefined
207
- : {
208
- diff: context.git.diffAll,
209
- ...(options.oracle.rules === undefined ? {} : { rules: options.oracle.rules }),
210
- ...(options.oracle.testsChange === undefined
211
- ? {}
212
- : { declared: options.oracle.testsChange }),
213
- ...(triage === undefined
214
- ? {}
215
- : { baseCount: Effect.map(triage.baseline, (base) => base?.passedCount) })
216
- };
217
- yield* reviewAndFixLoop({
218
- reviewers,
219
- reviewerService: flowReviewer(context),
220
- coder,
221
- taskTitle: task.title,
222
- currentDiff: context.git.diffAll,
223
- events: context.events,
224
- ...(options.maxRounds === undefined ? {} : { maxRounds: options.maxRounds }),
225
- ...(options.settle === undefined ? {} : { settle: options.settle }),
226
- ...(options.lint === undefined ? {} : { lint: options.lint }),
227
- ...(options.format === undefined ? {} : { format: options.format }),
228
- ...(triage === undefined ? {} : { triage }),
229
- ...(oracle === undefined ? {} : { oracle }),
230
- ...(options.votes === undefined ? {} : { votes: options.votes }),
231
- ...(fixWith === undefined ? {} : { fixWith }),
232
- ...(options.stall === undefined ? {} : { stallOnIdenticalDiff: true }),
233
- ...(options.fix === undefined ? {} : { fix: options.fix }),
234
- ...(options.reviewCache === undefined ? {} : { cache: options.reviewCache }),
235
- ...(options.onReview === undefined
236
- ? {}
201
+ const triage = over.triage ?? (yield* triageFor(ctx, options));
202
+ const repoRules = options.repoRules === undefined ? undefined : yield* options.repoRules;
203
+ const reviewers = [
204
+ ...(options.reviewers ?? minimalReviewers),
205
+ ...(repoRules === undefined ? [] : [repoRules])
206
+ ];
207
+ const fixWith = options.fixer === "separate"
208
+ ? (prompt) => Effect.flatMap(makeChat(ctx.coder, {
209
+ events: ctx.events,
210
+ agent: "coder",
211
+ system: withContract(fixerBrief),
212
+ ...(options.stall === undefined ? {} : { stall: options.stall })
213
+ }), (fixer) => fixer.ask(withNotes(prompt, notes)))
214
+ : undefined;
215
+ const oracle = options.oracle === undefined
216
+ ? undefined
237
217
  : {
238
- onRound: (round, result, settled) => options.onReview === undefined
239
- ? Effect.void
240
- : options.onReview(task, round, result, settled)
241
- })
242
- });
243
- if (options.lint !== undefined) {
244
- const reported = yield* Ref.make(new Set());
245
- const gate = yield* withOracle(yield* applyTriage(yield* options.lint, triage, context.events, reported), oracle, context.events, yield* Ref.make(true));
246
- if (!gate.isClean) {
247
- return yield* FlowAborted.make({
248
- message: [
249
- `task "${task.title}": the lint gate is still failing after review settled; refusing to commit`,
250
- ...gate.issues.map((issue) => {
251
- const detail = issue.description.length === 0 ? "" : `\n${issue.description.slice(-2000)}`;
252
- return `- [${issue.severity}] ${issue.title}${detail}`;
253
- })
254
- ].join("\n")
255
- });
218
+ diff: ctx.git.diffAll,
219
+ ...(options.oracle.rules === undefined ? {} : { rules: options.oracle.rules }),
220
+ ...(options.oracle.testsChange === undefined
221
+ ? {}
222
+ : { declared: options.oracle.testsChange }),
223
+ ...(triage === undefined
224
+ ? {}
225
+ : { baseCount: Effect.map(triage.baseline, (base) => base?.passedCount) })
226
+ };
227
+ yield* reviewAndFixLoop({
228
+ reviewers,
229
+ reviewerService: flowReviewer(ctx),
230
+ coder,
231
+ taskTitle: task.title,
232
+ currentDiff: ctx.git.diffAll,
233
+ events: ctx.events,
234
+ ...(options.maxRounds === undefined ? {} : { maxRounds: options.maxRounds }),
235
+ ...(options.settle === undefined ? {} : { settle: options.settle }),
236
+ ...(lint === undefined ? {} : { lint }),
237
+ ...(options.format === undefined ? {} : { format: options.format }),
238
+ ...(triage === undefined ? {} : { triage }),
239
+ ...(oracle === undefined ? {} : { oracle }),
240
+ ...(options.votes === undefined ? {} : { votes: options.votes }),
241
+ ...(fixWith === undefined ? {} : { fixWith }),
242
+ ...(options.stall === undefined ? {} : { stallOnIdenticalDiff: true }),
243
+ ...(options.fix === undefined ? {} : { fix: options.fix }),
244
+ ...(options.reviewCache === undefined ? {} : { cache: options.reviewCache }),
245
+ ...(options.onReview === undefined
246
+ ? {}
247
+ : {
248
+ onRound: (round, result, settled) => options.onReview === undefined
249
+ ? Effect.void
250
+ : options.onReview(task, round, result, settled)
251
+ })
252
+ });
253
+ if (lint !== undefined) {
254
+ const reported = yield* Ref.make(new Set());
255
+ const gate = yield* withOracle(yield* applyTriage(yield* lint, triage, ctx.events, reported), oracle, ctx.events, yield* Ref.make(true));
256
+ if (!gate.isClean) {
257
+ return yield* FlowAborted.make({
258
+ message: [
259
+ `task "${task.title}": the lint gate is still failing after review settled; refusing to commit`,
260
+ ...gate.issues.map((issue) => {
261
+ const detail = issue.description.length === 0 ? "" : `\n${issue.description.slice(-2000)}`;
262
+ return `- [${issue.severity}] ${issue.title}${detail}`;
263
+ })
264
+ ].join("\n")
265
+ });
266
+ }
256
267
  }
257
- }
258
- yield* context.git.commitAll((options.commitMessage ?? defaultCommitMessage)(plan, task));
259
- }));
268
+ yield* ctx.git.commitAll((options.commitMessage ?? defaultCommitMessage)(plan, task));
269
+ });
270
+ };
271
+ const parallel = options.parallel;
272
+ if (parallel !== undefined &&
273
+ parallel.concurrency > 1 &&
274
+ options.chatPerTask === true &&
275
+ hasParallelTasks(plan)) {
276
+ return yield* implementTaskGraph(options.store, context.events, options.planPath, plan, taskBody(context, {}), {
277
+ concurrency: parallel.concurrency,
278
+ aside: (request) => parallel.aside(request, (ctx, over) => taskBody(ctx, over)(request.node.task, request.planSoFar))
279
+ });
280
+ }
281
+ return yield* implementTaskLoop(options.store, context.events, options.planPath, plan, taskBody(context, {}));
260
282
  });
261
283
  //# sourceMappingURL=Flow.js.map
package/dist/Flow.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Flow.js","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Flow.js","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,11 @@ export interface ContextOptions {
15
15
  readonly prefer?: string;
16
16
  /** Who the context is for, in the roster's events ("story conto-overview"). */
17
17
  readonly label?: string;
18
+ /**
19
+ * Take a coder only if one is free now, else fail `RosterExhausted` at
20
+ * once: a task offered aside never waits for a slot (ADR 0034).
21
+ */
22
+ readonly ifFree?: boolean;
18
23
  }
19
24
  export interface FlowContextShape {
20
25
  readonly reasoning: LlmServiceShape;
@@ -1 +1 @@
1
- {"version":3,"file":"FlowContext.d.ts","sourceRoot":"","sources":["../src/FlowContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAClD;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,CAAA;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,cAAc,KACrB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACnE;;AAED,qBAAa,WAAY,SAAQ,gBAEhC;CAAG"}
1
+ {"version":3,"file":"FlowContext.d.ts","sourceRoot":"","sources":["../src/FlowContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAClD;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,CAAA;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,cAAc,KACrB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACnE;;AAED,qBAAa,WAAY,SAAQ,gBAEhC;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"FlowContext.js","sourceRoot":"","sources":["../src/FlowContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAgEzC,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAiC,CAC/E,0BAA0B,CAC3B;CAAG"}
1
+ {"version":3,"file":"FlowContext.js","sourceRoot":"","sources":["../src/FlowContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAqEzC,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAiC,CAC/E,0BAA0B,CAC3B;CAAG"}
@@ -103,6 +103,8 @@ export declare class Info extends Info_base {
103
103
  declare const ToolUse_base: Schema.Class<ToolUse, Schema.TaggedStruct<"ToolUse", {
104
104
  readonly tool: Schema.String;
105
105
  readonly args: Schema.String;
106
+ /** The tool call this one runs inside, when a harness delegated it to a sub-agent (ADR 0033). */
107
+ readonly parent: Schema.optionalKey<Schema.String>;
106
108
  /** The concurrent unit (a story) this event belongs to; absent for run-wide events. */
107
109
  readonly lane: Schema.optionalKey<Schema.String>;
108
110
  /** The roster executor working that lane, when there is one (ADR 0019). */
@@ -127,6 +129,8 @@ declare const TokensUsed_base: Schema.Class<TokensUsed, Schema.TaggedStruct<"Tok
127
129
  readonly lane: Schema.optionalKey<Schema.String>;
128
130
  /** The roster executor working that lane, when there is one (ADR 0019). */
129
131
  readonly executor: Schema.optionalKey<Schema.String>;
132
+ /** The executor's clone that made the call, when the lane's coder holds a slot (ADR 0033). */
133
+ readonly clone: Schema.optionalKey<Schema.Int>;
130
134
  }>, {}>;
131
135
  export declare class TokensUsed extends TokensUsed_base {
132
136
  }
@@ -287,9 +291,67 @@ declare const StoryJudged_base: Schema.Class<StoryJudged, Schema.TaggedStruct<"S
287
291
  /** The story judge ruled on a story's branch (ADR 0022): one event per judge round. */
288
292
  export declare class StoryJudged extends StoryJudged_base {
289
293
  }
294
+ /**
295
+ * The executor roster's events (ADR 0019, 0022). `label` names who holds the
296
+ * lease — a story's id, or "the run" — so a view can put an executor on its lane.
297
+ */
298
+ /** One task of a story's plan as the task loop announces it (ADR 0033). */
299
+ export declare const PlannedTask: Schema.Struct<{
300
+ readonly title: Schema.String;
301
+ readonly completed: Schema.Boolean;
302
+ /** The acceptance criteria the task's description names (`Satisfies: 1, 3`). */
303
+ readonly satisfies: Schema.optionalKey<Schema.$Array<Schema.Int>>;
304
+ }>;
305
+ declare const TasksPlanned_base: Schema.Class<TasksPlanned, Schema.TaggedStruct<"TasksPlanned", {
306
+ readonly tasks: Schema.$Array<Schema.Struct<{
307
+ readonly title: Schema.String;
308
+ readonly completed: Schema.Boolean;
309
+ /** The acceptance criteria the task's description names (`Satisfies: 1, 3`). */
310
+ readonly satisfies: Schema.optionalKey<Schema.$Array<Schema.Int>>;
311
+ }>>;
312
+ readonly lane: Schema.optionalKey<Schema.String>;
313
+ readonly executor: Schema.optionalKey<Schema.String>;
314
+ }>, {}>;
315
+ /** The task loop's plan, before its first task: every task in order (ADR 0033). */
316
+ export declare class TasksPlanned extends TasksPlanned_base {
317
+ }
318
+ declare const TaskStarted_base: Schema.Class<TaskStarted, Schema.TaggedStruct<"TaskStarted", {
319
+ readonly index: Schema.Int;
320
+ readonly count: Schema.Int;
321
+ readonly title: Schema.String;
322
+ readonly satisfies: Schema.optionalKey<Schema.$Array<Schema.Int>>;
323
+ /** The task runs beside the story's held coder, in its own worktree (ADR 0034). */
324
+ readonly parallel: Schema.optionalKey<Schema.Boolean>;
325
+ /** The clone of the extra coder a parallel task holds (ADR 0034). */
326
+ readonly clone: Schema.optionalKey<Schema.Int>;
327
+ readonly lane: Schema.optionalKey<Schema.String>;
328
+ readonly executor: Schema.optionalKey<Schema.String>;
329
+ }>, {}>;
330
+ /** A task begins: its position in the plan, from 1, and the plan's size (ADR 0033). */
331
+ export declare class TaskStarted extends TaskStarted_base {
332
+ }
333
+ declare const TaskCompleted_base: Schema.Class<TaskCompleted, Schema.TaggedStruct<"TaskCompleted", {
334
+ readonly index: Schema.Int;
335
+ readonly count: Schema.Int;
336
+ readonly title: Schema.String;
337
+ readonly lane: Schema.optionalKey<Schema.String>;
338
+ readonly executor: Schema.optionalKey<Schema.String>;
339
+ }>, {}>;
340
+ /** A task is ticked in the plan (ADR 0033). */
341
+ export declare class TaskCompleted extends TaskCompleted_base {
342
+ }
343
+ declare const StoryStatusChanged_base: Schema.Class<StoryStatusChanged, Schema.TaggedStruct<"StoryStatusChanged", {
344
+ readonly id: Schema.String;
345
+ readonly status: Schema.Literals<readonly ["planned", "active", "waiting", "done", "failed", "skipped"]>;
346
+ }>, {}>;
347
+ /** A story moved on the epic's board (ADR 0033); the statuses are `BoardSync`'s. */
348
+ export declare class StoryStatusChanged extends StoryStatusChanged_base {
349
+ }
290
350
  declare const ExecutorLeased_base: Schema.Class<ExecutorLeased, Schema.TaggedStruct<"ExecutorLeased", {
291
351
  readonly executor: Schema.String;
292
352
  readonly role: Schema.String;
353
+ /** Which of the executor's clones took the slot, from 1 (ADR 0033); absent when borrowed or before 2.41. */
354
+ readonly clone: Schema.optionalKey<Schema.Int>;
293
355
  readonly label: Schema.optionalKey<Schema.String>;
294
356
  /** What the call is for beyond its role: a review lens, a vote. */
295
357
  readonly purpose: Schema.optionalKey<Schema.String>;
@@ -303,15 +365,13 @@ declare const ExecutorLeased_base: Schema.Class<ExecutorLeased, Schema.TaggedStr
303
365
  */
304
366
  readonly because: Schema.optionalKey<Schema.Literals<readonly ["nobody", "held", "out"]>>;
305
367
  }>, {}>;
306
- /**
307
- * The executor roster's events (ADR 0019, 0022). `label` names who holds the
308
- * lease — a story's id, or "the run" — so a view can put an executor on its lane.
309
- */
310
368
  export declare class ExecutorLeased extends ExecutorLeased_base {
311
369
  }
312
370
  declare const ExecutorReleased_base: Schema.Class<ExecutorReleased, Schema.TaggedStruct<"ExecutorReleased", {
313
371
  readonly executor: Schema.String;
314
372
  readonly role: Schema.String;
373
+ /** Which of the executor's clones freed the slot (ADR 0033); absent when borrowed or before 2.41. */
374
+ readonly clone: Schema.optionalKey<Schema.Int>;
315
375
  readonly label: Schema.optionalKey<Schema.String>;
316
376
  }>, {}>;
317
377
  export declare class ExecutorReleased extends ExecutorReleased_base {
@@ -346,8 +406,10 @@ export type RosterEvent = ExecutorLeased | ExecutorReleased | ExecutorExcluded |
346
406
  * the roster used to publish as `Info` — or `undefined` for one it does not
347
407
  * show (a release) and for any other event.
348
408
  */
409
+ /** `codex#2` for a numbered clone, the bare executor otherwise (ADR 0033). */
410
+ export declare const cloneName: (executor: string, clone: number | undefined) => string;
349
411
  export declare const rosterEventMessage: (event: FlowEvent) => string | undefined;
350
- export declare const FlowEvent: Schema.Union<readonly [typeof JudgmentObserved, typeof BlackboardRun, typeof StageStarted, typeof StageCompleted, typeof StageFailed, typeof Aborted, typeof Info, typeof ToolUse, typeof AssistantMessage, typeof TokensUsed, typeof UsageProgress, typeof ReviewFindings, typeof CapabilityUsedEvent, typeof CapabilityDeniedEvent, typeof CapabilityUnenforceable, typeof EvidenceChecked, typeof ReviewFindingDemoted, typeof Declassified, typeof ExecutorLeased, typeof ExecutorReleased, typeof ExecutorExcluded, typeof ExecutorResumed, typeof ExecutorHandedOver, typeof StoryJudged, typeof Timed, typeof Began]>;
412
+ export declare const FlowEvent: Schema.Union<readonly [typeof JudgmentObserved, typeof BlackboardRun, typeof StageStarted, typeof StageCompleted, typeof StageFailed, typeof Aborted, typeof Info, typeof ToolUse, typeof AssistantMessage, typeof TokensUsed, typeof UsageProgress, typeof ReviewFindings, typeof CapabilityUsedEvent, typeof CapabilityDeniedEvent, typeof CapabilityUnenforceable, typeof EvidenceChecked, typeof ReviewFindingDemoted, typeof Declassified, typeof ExecutorLeased, typeof ExecutorReleased, typeof ExecutorExcluded, typeof ExecutorResumed, typeof ExecutorHandedOver, typeof StoryJudged, typeof Timed, typeof Began, typeof TasksPlanned, typeof TaskStarted, typeof TaskCompleted, typeof StoryStatusChanged]>;
351
413
  export type FlowEvent = typeof FlowEvent.Type;
352
414
  export declare const FlowEventsValues: Readonly<{
353
415
  CapabilityUsed: (capability: string, operation: string) => CapabilityUsedEvent;
@@ -364,6 +426,8 @@ export interface Lane {
364
426
  readonly lane: string;
365
427
  /** The executor working it now; read at every publish, so a handover shows. */
366
428
  readonly executor?: Effect.Effect<string | undefined>;
429
+ /** The coder's clone number, read at every publish as `executor` is (ADR 0033). */
430
+ readonly clone?: Effect.Effect<number | undefined>;
367
431
  /** The lane's working directory, dropped from tool arguments (the lane already names it). */
368
432
  readonly workDir?: string;
369
433
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FlowEvents.d.ts","sourceRoot":"","sources":["../src/FlowEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlowEvents.d.ts","sourceRoot":"","sources":["../src/FlowEvents.ts"],"names":[],"mappings":"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"}