@llm4ts/flow 2.41.0 → 2.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Flow.d.ts CHANGED
@@ -4,8 +4,9 @@ import { type Trailer, type CarriedNotes } from "./CarriedNotes.ts";
4
4
  import type { FlowContextShape } from "./FlowContext.ts";
5
5
  import { FlowAborted, FlowLlmError, type FlowError } from "./FlowError.ts";
6
6
  import { type FlowEventsShape } from "./FlowEvents.ts";
7
- import type { Plan, Task } from "./Plan.ts";
7
+ import { type Plan, type Task } from "./Plan.ts";
8
8
  import type { PlainFileStoreShape, PlanStoreShape } from "./Persistence.ts";
9
+ import { type AsideOutcome, type AsideRequest } from "./PlanExecution.ts";
9
10
  import { type JudgmentMode } from "./Judgment.ts";
10
11
  import { type FixPromptOptions, type GateTriageOptions, type ReviewResult, type ReviewCacheLocation, type SettleRule } from "./Review.ts";
11
12
  import type { OracleRules } from "./OracleGuard.ts";
@@ -14,6 +15,25 @@ import type { StallOptions } from "./Stall.ts";
14
15
  export { publishUsage, structuredAndPublish } from "./Usage.ts";
15
16
  export declare const flowReviewer: (context: FlowContextShape) => LlmServiceShape;
16
17
  export declare const completeAndPublish: (service: LlmServiceShape, events: FlowEventsShape, prompt: string) => Effect.Effect<string, FlowLlmError, never>;
18
+ /** What a task run aside replaces in the plan's options (ADR 0034). */
19
+ export interface TaskOverrides {
20
+ /** The gates in the aside worktree; `undefined` runs none. */
21
+ readonly lint?: Effect.Effect<ReviewResult, FlowError> | undefined;
22
+ readonly triage?: GateTriageOptions;
23
+ /** Present to replace the evidence check: the aside coder's tool calls are elsewhere. */
24
+ readonly onTaskReply?: ImplementPlanOptions["onTaskReply"] | undefined;
25
+ /** The coder's system prompt there: its own working directory, its own paths. */
26
+ readonly system?: string;
27
+ }
28
+ /** Tasks beside the held coder (ADR 0034): how many at once, and who runs one. */
29
+ export interface ParallelPlanTasks {
30
+ readonly concurrency: number;
31
+ /**
32
+ * Runs one ready task on another coder: `run` is the task's whole body
33
+ * (coder, review, gates, commit) in the context it is given.
34
+ */
35
+ readonly aside: (request: AsideRequest, run: (context: FlowContextShape, overrides: TaskOverrides) => Effect.Effect<void, FlowError>) => Effect.Effect<AsideOutcome, FlowError>;
36
+ }
17
37
  export interface ImplementPlanOptions {
18
38
  readonly store: PlanStoreShape;
19
39
  readonly planPath: string;
@@ -26,6 +46,11 @@ export interface ImplementPlanOptions {
26
46
  * one Chat is shared across every task in the plan.
27
47
  */
28
48
  readonly chatPerTask?: boolean;
49
+ /**
50
+ * Ready tasks run beside the held coder (ADR 0034), with `chatPerTask`
51
+ * only, and only in a plan whose tasks declare that they may.
52
+ */
53
+ readonly parallel?: ParallelPlanTasks;
29
54
  readonly reviewers?: ReadonlyArray<Reviewer>;
30
55
  readonly commitMessage?: (plan: Plan, task: Task) => string;
31
56
  readonly checkoutBranch?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"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"}
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":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EAET,eAAe,EACf,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EACL,gBAAgB,EAChB,IAAI,EACJ,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EAEX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,gBAAgB,EAAwB,MAAM,WAAW,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EAGN,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAqB,MAAM,eAAe,CAAA;AAClF,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EAOX,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAyB,EAAmB,EAAE,CACzE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAA;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,sCAAsC,CAAC,CAAC,QAAQ,CAAC,EAC3F,OAAwB,EACxB,MAAuB,EACvB,MAAc;IAEd,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3F,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CACnC,CAAA;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,UAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACrF,CAAC,CACH,CAAA;IACH,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACxE,OAAO,QAAQ,CAAC,OAAO,CAAA;AACzB,CAAC,CAAC,CAAA;AAoIF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,EAAE,CAAC,uCAAuC,CAAC,CAAC,QAAQ,CAAC,EAC7F,OAAyB,EACzB,SAAiB,EACjB,KAAa,EACb,OAAqB,SAAS;IAE9B,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IACxC,MAAM,QAAQ,GAAG,KAAK,CACpB,kHAAkH,CACnH,CAAA;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ;SAC3B,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC;SACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAA;IAClD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAChD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACpD,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAA;IAClD,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC,uBAAuB,CAC5B,OAAO,CAAC,MAAM,EACd,gBAAgB,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,iBAAiB;YAC3B,GAAG,EAAE,WAAW;YAChB,KAAK;YACL,QAAQ;YACR,MAAM;YACN,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;YACnC,QAAQ;YACR,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC;YAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE;YACjD,IAAI;SACL,CAAC,CACH,CAAA;QACD,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,SAAS,CAAA;IACxC,OAAO,MAAM,CAAC,KAAK,IAAI,GAAG,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAU,EAAE,IAAU,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAAA;AAEhG,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAE,IAAY,EAAU,EAAE,CACvE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAEnG,uGAAuG;AACvG,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,6FAA6F;IAC7F,4FAA4F;IAC5F,wFAAwF;IACxF,YAAY;CACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ;;;GAGG;AACH,MAAM,SAAS,GAAG,CAChB,OAAyB,EACzB,OAA6B,EAC4B,EAAE,CAC3D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACjE,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAA;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAA;IACjC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IAC5C,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,MAAM;YACN,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,OAAO,CAAC,IAAI;YACjB,KAAK;YACL,GAAG,EAAE,KAAK,CAAC,iBAAiB;SAC7B,CAAC;QACF,KAAK;KACN,CAAA;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,EACrF,OAAyB,EACzB,OAA6B;IAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACjF,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACrC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,WAA6B,CAAA;IACjC,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QACjC,WAAW,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO;YACd,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YACnE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;SACjE,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1C,8FAA8F;IAC9F,MAAM,QAAQ,GACZ,CAAC,GAAqB,EAAE,IAAmB,EAAE,EAAE,CAC/C,CAAC,IAAU,EAAE,SAAe,EAAkC,EAAE;QAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA;QACtD,MAAM,WAAW,GAAG,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAA;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAA;QAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,qEAAqE;YACrE,mEAAmE;YACnE,iEAAiE;YACjE,IAAI,KAAW,CAAA;YACf,IAAI,WAAW,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACjD,KAAK,GAAG,WAAW,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE;oBACjC,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;oBAC/C,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;iBACjE,CAAC,CAAA;YACJ,CAAC;YACD,qEAAqE;YACrE,qEAAqE;YACrE,sEAAsE;YACtE,0DAA0D;YAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;YACjF,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAA;YACpD,4FAA4F;YAC5F,MAAM,YAAY,GAAG,CAAC,KAAa,EAAkC,EAAE,CACrE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;gBAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;gBAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC/C,yEAAyE;oBACzE,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CACzB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACpC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CACnD,CACF,CAAA;gBACH,CAAC;gBACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAA;gBAClE,CAAC;YACH,CAAC,CAAC,CAAA;YACJ,KAAK,CAAC,CAAC,YAAY,CACjB,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CACd,OAAO,CAAC,KAAK,KAAK,SAAS;gBACzB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACvB,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,eAAe,EAAE,CACrE,CACF,CAAA;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;YACvC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,kEAAkE;gBAClE,8DAA8D;gBAC9D,4DAA4D;gBAC5D,kEAAkE;gBAClE,4BAA4B;gBAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CACnC;oBACE,8CAA8C;oBAC9C,gBAAgB,IAAI,CAAC,KAAK,kIAAkI;oBAC5J,oCAAoC;iBACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;gBACD,KAAK,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;gBACjC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;gBAChD,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1C,MAAM,MAAM,GACV,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;wBAC1E,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,CACxB,GAAG,EACH,IAAI,CAAC,KAAK,EACV,YAAY,EACZ,OAAO,CAAC,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAC5E;wBACH,CAAC,CAAC,SAAS,CAAA;oBACf,IAAI,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;wBAC9D,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CACvB,IAAI,CAAC,IAAI,CAAC;4BACR,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,2DAA2D;yBACxF,CAAC,CACH,CAAA;wBACD,OAAM;oBACR,CAAC;oBACD,IAAI,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;wBAC1C,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CACvB,IAAI,CAAC,IAAI,CAAC;4BACR,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,sGAAsG;yBACnI,CAAC,CACH,CAAA;wBACD,OAAM;oBACR,CAAC;oBACD,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;wBAC7B,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,0GAA0G;qBACvI,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;YAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAA;YACxF,MAAM,SAAS,GAAG;gBAChB,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC;gBAC1C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aAChD,CAAA;YACD,MAAM,OAAO,GACX,OAAO,CAAC,KAAK,KAAK,UAAU;gBAC1B,CAAC,CAAC,CAAC,MAAc,EAAoC,EAAE,CACnD,MAAM,CAAC,OAAO,CACZ,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE;oBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC;oBAChC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;iBACjE,CAAC,EACF,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAC/C;gBACL,CAAC,CAAC,SAAS,CAAA;YACf,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC1B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO;oBACrB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC9E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS;wBAC1C,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC7C,GAAG,CAAC,MAAM,KAAK,SAAS;wBACtB,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;iBAC7E,CAAA;YACP,KAAK,CAAC,CAAC,gBAAgB,CAAC;gBACtB,SAAS;gBACT,eAAe,EAAE,YAAY,CAAC,GAAG,CAAC;gBAClC,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO;gBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC5E,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBACvC,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;gBAC3C,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;gBAC3C,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;gBAC7C,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;gBACtE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC1D,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC5E,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAChC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACE,OAAO,EAAE,CAAC,KAAa,EAAE,MAAoB,EAAE,OAAgB,EAAE,EAAE,CACjE,OAAO,CAAC,QAAQ,KAAK,SAAS;4BAC5B,CAAC,CAAC,MAAM,CAAC,IAAI;4BACb,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;qBACrD,CAAC;aACP,CAAC,CAAA;YACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAsB,IAAI,GAAG,EAAE,CAAC,CAAA;gBAChE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAC5B,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC7D,MAAM,EACN,GAAG,CAAC,MAAM,EACV,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CACtB,CAAA;gBACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;wBAC7B,OAAO,EAAE;4BACP,SAAS,IAAI,CAAC,KAAK,4EAA4E;4BAC/F,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gCAC3B,MAAM,MAAM,GACV,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;gCAC7E,OAAO,MAAM,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,CAAA;4BACxD,CAAC,CAAC;yBACH,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YACD,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,oBAAoB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,IACE,QAAQ,KAAK,SAAS;QACtB,QAAQ,CAAC,WAAW,GAAG,CAAC;QACxB,OAAO,CAAC,WAAW,KAAK,IAAI;QAC5B,gBAAgB,CAAC,IAAI,CAAC,EACtB,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,kBAAkB,CAC9B,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,EACrB;YACE,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACpC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAC1D;SACJ,CACF,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,iBAAiB,CAC7B,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CACtB,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -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"}
@@ -320,6 +320,10 @@ declare const TaskStarted_base: Schema.Class<TaskStarted, Schema.TaggedStruct<"T
320
320
  readonly count: Schema.Int;
321
321
  readonly title: Schema.String;
322
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>;
323
327
  readonly lane: Schema.optionalKey<Schema.String>;
324
328
  readonly executor: Schema.optionalKey<Schema.String>;
325
329
  }>, {}>;
@@ -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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"}
@@ -273,6 +273,10 @@ export class TaskStarted extends Schema.TaggedClass()("TaskStarted", {
273
273
  count: Schema.Int,
274
274
  title: Schema.String,
275
275
  satisfies: Schema.optionalKey(Schema.Array(Schema.Int)),
276
+ /** The task runs beside the story's held coder, in its own worktree (ADR 0034). */
277
+ parallel: Schema.optionalKey(Schema.Boolean),
278
+ /** The clone of the extra coder a parallel task holds (ADR 0034). */
279
+ clone: Schema.optionalKey(Schema.Int),
276
280
  lane: Schema.optionalKey(Schema.String),
277
281
  executor: Schema.optionalKey(Schema.String)
278
282
  }) {
@@ -441,7 +445,11 @@ const stamped = (event, lane, executor, workDir, clone) => {
441
445
  count: event.count,
442
446
  title: event.title,
443
447
  ...(event.satisfies === undefined ? {} : { satisfies: event.satisfies }),
444
- ...tags
448
+ ...tags,
449
+ // A parallel task names its own coder, not the lane's (ADR 0034).
450
+ ...(event.parallel === undefined ? {} : { parallel: event.parallel }),
451
+ ...(event.executor === undefined ? {} : { executor: event.executor }),
452
+ ...(event.clone === undefined ? {} : { clone: event.clone })
445
453
  });
446
454
  case "TaskCompleted":
447
455
  return event.lane !== undefined