@llm4ts/flow 0.15.0 → 0.16.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 (55) hide show
  1. package/dist/BenchReport.d.ts +2 -2
  2. package/dist/BenchReport.d.ts.map +1 -1
  3. package/dist/CostLedger.d.ts +2 -2
  4. package/dist/CostLedger.d.ts.map +1 -1
  5. package/dist/Equiv.d.ts +3 -3
  6. package/dist/Equiv.d.ts.map +1 -1
  7. package/dist/Flow.d.ts +1 -1
  8. package/dist/Flow.d.ts.map +1 -1
  9. package/dist/FlowContext.d.ts +10 -0
  10. package/dist/FlowContext.d.ts.map +1 -1
  11. package/dist/FlowContext.js.map +1 -1
  12. package/dist/FlowError.d.ts +42 -1
  13. package/dist/FlowError.d.ts.map +1 -1
  14. package/dist/FlowError.js +60 -1
  15. package/dist/FlowError.js.map +1 -1
  16. package/dist/GitTool.d.ts +15 -1
  17. package/dist/GitTool.d.ts.map +1 -1
  18. package/dist/GitTool.js +30 -2
  19. package/dist/GitTool.js.map +1 -1
  20. package/dist/Perimeter.d.ts +13 -0
  21. package/dist/Perimeter.d.ts.map +1 -0
  22. package/dist/Perimeter.js +34 -0
  23. package/dist/Perimeter.js.map +1 -0
  24. package/dist/Persistence.d.ts +2 -2
  25. package/dist/Persistence.d.ts.map +1 -1
  26. package/dist/PlanExecution.d.ts +1 -1
  27. package/dist/PlanExecution.d.ts.map +1 -1
  28. package/dist/ProgramJudge.d.ts +1 -1
  29. package/dist/ProgramJudge.d.ts.map +1 -1
  30. package/dist/Replay.d.ts +2 -2
  31. package/dist/Replay.d.ts.map +1 -1
  32. package/dist/Review.d.ts +2 -2
  33. package/dist/Review.d.ts.map +1 -1
  34. package/dist/ReviewCache.d.ts +1 -1
  35. package/dist/ReviewCache.d.ts.map +1 -1
  36. package/dist/Stories.d.ts +109 -0
  37. package/dist/Stories.d.ts.map +1 -0
  38. package/dist/Stories.js +432 -0
  39. package/dist/Stories.js.map +1 -0
  40. package/dist/StoryPlan.d.ts +81 -0
  41. package/dist/StoryPlan.d.ts.map +1 -0
  42. package/dist/StoryPlan.js +242 -0
  43. package/dist/StoryPlan.js.map +1 -0
  44. package/dist/TransientRetry.d.ts +18 -0
  45. package/dist/TransientRetry.d.ts.map +1 -1
  46. package/dist/TransientRetry.js +35 -3
  47. package/dist/TransientRetry.js.map +1 -1
  48. package/package.json +5 -2
  49. package/src/FlowContext.ts +10 -0
  50. package/src/FlowError.ts +74 -1
  51. package/src/GitTool.ts +74 -4
  52. package/src/Perimeter.ts +49 -0
  53. package/src/Stories.ts +670 -0
  54. package/src/StoryPlan.ts +353 -0
  55. package/src/TransientRetry.ts +76 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stories.js","sourceRoot":"","sources":["../src/Stories.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Schema from "effect/Schema";
3
+ import { PlanParseError, StoryPlanInvalid, type PersistenceError } from "./FlowError.ts";
4
+ import type { PlainFileStoreShape } from "./Persistence.ts";
5
+ export declare const StoryPlanVersion = 1;
6
+ declare const Story_base: Schema.Class<Story, Schema.Struct<{
7
+ /** Kebab-case, unique within the plan; names the branch and the worktree. */
8
+ readonly id: Schema.String;
9
+ readonly title: Schema.String;
10
+ readonly description: Schema.String;
11
+ /** Story ids this one waits for; they are merged before this one starts. */
12
+ readonly dependsOn: Schema.withDecodingDefaultKey<Schema.withConstructorDefault<Schema.$Array<Schema.String>>, never>;
13
+ /** Repo-relative path prefixes (files or directories) the story may create or change. */
14
+ readonly owned: Schema.$Array<Schema.String>;
15
+ /** Path prefixes fed as context and forbidden to change. */
16
+ readonly sharedReadOnly: Schema.withDecodingDefaultKey<Schema.withConstructorDefault<Schema.$Array<Schema.String>>, never>;
17
+ /** What dependents may rely on: routes, exports, contracts. */
18
+ readonly provides: Schema.withDecodingDefaultKey<Schema.withConstructorDefault<Schema.$Array<Schema.String>>, never>;
19
+ }>, {}>;
20
+ export declare class Story extends Story_base {
21
+ }
22
+ declare const StoryPlan_base: Schema.Class<StoryPlan, Schema.Struct<{
23
+ readonly epicId: Schema.String;
24
+ /** The epic as the operator phrased it. */
25
+ readonly epic: Schema.String;
26
+ readonly stories: Schema.$Array<typeof Story>;
27
+ }>, {}>;
28
+ export declare class StoryPlan extends StoryPlan_base {
29
+ story(id: string): Story | undefined;
30
+ }
31
+ /** A path prefix in canonical form: no `./`, no trailing slash, forward slashes. */
32
+ export declare const normalizePath: (path: string) => string;
33
+ /** Whether `path` is `prefix` itself or lies under it. */
34
+ export declare const pathWithin: (path: string, prefix: string) => boolean;
35
+ /**
36
+ * Every violation of the plan's invariants, in one pass — an operator fixing
37
+ * a hand-edited plan wants the whole list, not a rerun per finding.
38
+ */
39
+ export declare const storyPlanViolations: (plan: StoryPlan) => ReadonlyArray<string>;
40
+ export declare const validateStoryPlan: (plan: StoryPlan) => Effect.Effect<StoryPlan, StoryPlanInvalid, never>;
41
+ /**
42
+ * Stories grouped by the earliest wave they can run in (all dependencies in
43
+ * earlier waves). Assumes a valid plan; a cycle leaves its members out.
44
+ */
45
+ export declare const topologicalWaves: (plan: StoryPlan) => ReadonlyArray<ReadonlyArray<string>>;
46
+ export interface StoryProgress {
47
+ readonly done: ReadonlySet<string>;
48
+ readonly failed: ReadonlySet<string>;
49
+ readonly skipped: ReadonlySet<string>;
50
+ readonly running: ReadonlySet<string>;
51
+ }
52
+ /** Stories that may start now: not yet touched, every dependency done. Plan order. */
53
+ export declare const readyStories: (plan: StoryPlan, progress: StoryProgress) => ReadonlyArray<Story>;
54
+ /** Every story that transitively depends on `id`, in plan order. */
55
+ export declare const dependentsOf: (plan: StoryPlan, id: string) => ReadonlyArray<string>;
56
+ /** Stable over the story entry's content — a changed entry means a fresh branch. */
57
+ export declare const storyHash: (story: Story) => string;
58
+ export declare const storyPlanFenceInfo = "json storyplan";
59
+ /** The raw JSON of the first ```json storyplan fenced block, if any. */
60
+ export declare const storyPlanBlock: (markdown: string) => string | undefined;
61
+ /**
62
+ * Decodes the story plan embedded in its markdown file. Decoding only —
63
+ * `validateStoryPlan` checks the graph invariants separately, so a parse
64
+ * failure and an invalid plan are told apart.
65
+ */
66
+ export declare const parseStoryPlan: (markdown: string) => Effect.Effect<StoryPlan, PlanParseError, never>;
67
+ /**
68
+ * The operator-facing markdown: a readable summary per story plus the
69
+ * fenced block that is the source of truth. Editing the block and rerunning
70
+ * is the approval and the re-plan path.
71
+ */
72
+ export declare const renderStoryPlan: (plan: StoryPlan) => Effect.Effect<string, PlanParseError, never>;
73
+ export interface StoryPlanStoreShape {
74
+ readonly save: (path: string, plan: StoryPlan) => Effect.Effect<void, PersistenceError | PlanParseError>;
75
+ readonly load: (path: string) => Effect.Effect<StoryPlan | undefined, PersistenceError | PlanParseError>;
76
+ /** An existing file wins over `create`: the operator's edits are the plan. */
77
+ readonly recoverOrCreate: <E, R>(path: string, create: Effect.Effect<StoryPlan, E, R>) => Effect.Effect<StoryPlan, E | PersistenceError | PlanParseError, R>;
78
+ }
79
+ export declare const makeStoryPlanStore: (files: PlainFileStoreShape) => StoryPlanStoreShape;
80
+ export {};
81
+ //# sourceMappingURL=StoryPlan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoryPlan.d.ts","sourceRoot":"","sources":["../src/StoryPlan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,242 @@
1
+ // The epic-level plan of the parallel story executor (ADR 0013): stories
2
+ // with a declared dependency graph and declared file ownership. Dependencies
3
+ // are declared here, up front, never discovered by a running coder.
4
+ import * as Effect from "effect/Effect";
5
+ import * as Schema from "effect/Schema";
6
+ import { PlanParseError, StoryPlanInvalid } from "./FlowError.js";
7
+ import { stableHash } from "./Plan.js";
8
+ export const StoryPlanVersion = 1;
9
+ export class Story extends Schema.Class("Story")({
10
+ /** Kebab-case, unique within the plan; names the branch and the worktree. */
11
+ id: Schema.String,
12
+ title: Schema.String,
13
+ description: Schema.String,
14
+ /** Story ids this one waits for; they are merged before this one starts. */
15
+ dependsOn: Schema.Array(Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed([])), Schema.withDecodingDefaultKey(Effect.succeed([]))),
16
+ /** Repo-relative path prefixes (files or directories) the story may create or change. */
17
+ owned: Schema.Array(Schema.String),
18
+ /** Path prefixes fed as context and forbidden to change. */
19
+ sharedReadOnly: Schema.Array(Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed([])), Schema.withDecodingDefaultKey(Effect.succeed([]))),
20
+ /** What dependents may rely on: routes, exports, contracts. */
21
+ provides: Schema.Array(Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed([])), Schema.withDecodingDefaultKey(Effect.succeed([])))
22
+ }) {
23
+ }
24
+ export class StoryPlan extends Schema.Class("StoryPlan")({
25
+ epicId: Schema.String,
26
+ /** The epic as the operator phrased it. */
27
+ epic: Schema.String,
28
+ stories: Schema.Array(Story)
29
+ }) {
30
+ story(id) {
31
+ return this.stories.find((story) => story.id === id);
32
+ }
33
+ }
34
+ /** A path prefix in canonical form: no `./`, no trailing slash, forward slashes. */
35
+ export const normalizePath = (path) => path
36
+ .trim()
37
+ .replace(/\\/g, "/")
38
+ .replace(/^(\.\/)+/, "")
39
+ .replace(/\/+$/, "");
40
+ /** Whether `path` is `prefix` itself or lies under it. */
41
+ export const pathWithin = (path, prefix) => {
42
+ const target = normalizePath(path);
43
+ const root = normalizePath(prefix);
44
+ return root.length === 0 || target === root || target.startsWith(`${root}/`);
45
+ };
46
+ const overlapping = (left, right) => pathWithin(left, right) || pathWithin(right, left);
47
+ /**
48
+ * Every violation of the plan's invariants, in one pass — an operator fixing
49
+ * a hand-edited plan wants the whole list, not a rerun per finding.
50
+ */
51
+ export const storyPlanViolations = (plan) => {
52
+ const violations = [];
53
+ const ids = new Set();
54
+ for (const story of plan.stories) {
55
+ if (ids.has(story.id)) {
56
+ violations.push(`duplicate story id '${story.id}'`);
57
+ }
58
+ ids.add(story.id);
59
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(story.id)) {
60
+ violations.push(`story id '${story.id}' is not kebab-case`);
61
+ }
62
+ if (story.owned.length === 0) {
63
+ violations.push(`story '${story.id}' owns no paths`);
64
+ }
65
+ for (const dependency of story.dependsOn) {
66
+ if (dependency === story.id) {
67
+ violations.push(`story '${story.id}' depends on itself`);
68
+ }
69
+ else if (!plan.stories.some((candidate) => candidate.id === dependency)) {
70
+ violations.push(`story '${story.id}' depends on unknown story '${dependency}'`);
71
+ }
72
+ }
73
+ for (const owned of story.owned) {
74
+ for (const shared of story.sharedReadOnly) {
75
+ if (overlapping(owned, shared)) {
76
+ violations.push(`story '${story.id}' both owns '${owned}' and declares '${shared}' shared read-only`);
77
+ }
78
+ }
79
+ }
80
+ }
81
+ for (let index = 0; index < plan.stories.length; index += 1) {
82
+ const left = plan.stories[index];
83
+ if (left === undefined) {
84
+ continue;
85
+ }
86
+ for (const right of plan.stories.slice(index + 1)) {
87
+ for (const leftPath of left.owned) {
88
+ for (const rightPath of right.owned) {
89
+ if (overlapping(leftPath, rightPath)) {
90
+ violations.push(`stories '${left.id}' and '${right.id}' both own '${normalizePath(leftPath)}' / '${normalizePath(rightPath)}'`);
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ for (const cycle of cycles(plan)) {
97
+ violations.push(`dependency cycle: ${cycle.join(" -> ")}`);
98
+ }
99
+ return violations;
100
+ };
101
+ const cycles = (plan) => {
102
+ const found = [];
103
+ const state = new Map();
104
+ const visit = (id, trail) => {
105
+ const mark = state.get(id);
106
+ if (mark === "done") {
107
+ return;
108
+ }
109
+ if (mark === "visiting") {
110
+ const start = trail.indexOf(id);
111
+ found.push([...trail.slice(start), id]);
112
+ return;
113
+ }
114
+ state.set(id, "visiting");
115
+ for (const dependency of plan.story(id)?.dependsOn ?? []) {
116
+ // A self-edge is already reported as "depends on itself".
117
+ if (dependency !== id && plan.story(dependency) !== undefined) {
118
+ visit(dependency, [...trail, id]);
119
+ }
120
+ }
121
+ state.set(id, "done");
122
+ };
123
+ for (const story of plan.stories) {
124
+ visit(story.id, []);
125
+ }
126
+ return found;
127
+ };
128
+ export const validateStoryPlan = Effect.fn("@llm4ts/flow/StoryPlan.validate")(function* (plan) {
129
+ const violations = storyPlanViolations(plan);
130
+ return violations.length === 0 ? plan : yield* StoryPlanInvalid.make({ violations });
131
+ });
132
+ /**
133
+ * Stories grouped by the earliest wave they can run in (all dependencies in
134
+ * earlier waves). Assumes a valid plan; a cycle leaves its members out.
135
+ */
136
+ export const topologicalWaves = (plan) => {
137
+ const waves = [];
138
+ const placed = new Set();
139
+ let remaining = plan.stories.map((story) => story.id);
140
+ while (remaining.length > 0) {
141
+ const wave = remaining.filter((id) => (plan.story(id)?.dependsOn ?? []).every((dependency) => placed.has(dependency)));
142
+ if (wave.length === 0) {
143
+ break;
144
+ }
145
+ waves.push(wave);
146
+ for (const id of wave) {
147
+ placed.add(id);
148
+ }
149
+ remaining = remaining.filter((id) => !placed.has(id));
150
+ }
151
+ return waves;
152
+ };
153
+ /** Stories that may start now: not yet touched, every dependency done. Plan order. */
154
+ export const readyStories = (plan, progress) => plan.stories.filter((story) => !progress.done.has(story.id) &&
155
+ !progress.failed.has(story.id) &&
156
+ !progress.skipped.has(story.id) &&
157
+ !progress.running.has(story.id) &&
158
+ story.dependsOn.every((dependency) => progress.done.has(dependency)));
159
+ /** Every story that transitively depends on `id`, in plan order. */
160
+ export const dependentsOf = (plan, id) => {
161
+ const blocked = new Set([id]);
162
+ let grew = true;
163
+ while (grew) {
164
+ grew = false;
165
+ for (const story of plan.stories) {
166
+ if (!blocked.has(story.id) && story.dependsOn.some((dependency) => blocked.has(dependency))) {
167
+ blocked.add(story.id);
168
+ grew = true;
169
+ }
170
+ }
171
+ }
172
+ return plan.stories
173
+ .map((story) => story.id)
174
+ .filter((candidate) => candidate !== id && blocked.has(candidate));
175
+ };
176
+ /** Stable over the story entry's content — a changed entry means a fresh branch. */
177
+ export const storyHash = (story) => stableHash(JSON.stringify({
178
+ id: story.id,
179
+ title: story.title,
180
+ description: story.description,
181
+ dependsOn: [...story.dependsOn],
182
+ owned: [...story.owned].map(normalizePath),
183
+ sharedReadOnly: [...story.sharedReadOnly].map(normalizePath),
184
+ provides: [...story.provides]
185
+ }));
186
+ export const storyPlanFenceInfo = "json storyplan";
187
+ const fencePattern = /```json[ \t]+storyplan[ \t]*\r?\n([\s\S]*?)\r?\n[ \t]*```/;
188
+ /** The raw JSON of the first ```json storyplan fenced block, if any. */
189
+ export const storyPlanBlock = (markdown) => fencePattern.exec(markdown)?.[1];
190
+ /**
191
+ * Decodes the story plan embedded in its markdown file. Decoding only —
192
+ * `validateStoryPlan` checks the graph invariants separately, so a parse
193
+ * failure and an invalid plan are told apart.
194
+ */
195
+ export const parseStoryPlan = Effect.fn("@llm4ts/flow/StoryPlan.parse")(function* (markdown) {
196
+ const block = storyPlanBlock(markdown);
197
+ if (block === undefined) {
198
+ return yield* PlanParseError.make({
199
+ message: "no ```json storyplan fenced block in the story plan markdown"
200
+ });
201
+ }
202
+ return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(StoryPlan))(block).pipe(Effect.mapError((error) => PlanParseError.make({ message: `invalid story plan block: ${String(error)}` })));
203
+ });
204
+ const list = (items) => items.length === 0 ? "none" : items.join(", ");
205
+ /**
206
+ * The operator-facing markdown: a readable summary per story plus the
207
+ * fenced block that is the source of truth. Editing the block and rerunning
208
+ * is the approval and the re-plan path.
209
+ */
210
+ export const renderStoryPlan = Effect.fn("@llm4ts/flow/StoryPlan.render")(function* (plan) {
211
+ const encoded = yield* Schema.encodeEffect(StoryPlan)(plan).pipe(Effect.mapError((error) => PlanParseError.make({ message: `story plan not encodable: ${String(error)}` })));
212
+ const waves = topologicalWaves(plan);
213
+ const lines = [
214
+ `# Epic: ${plan.epicId}`,
215
+ "",
216
+ plan.epic.trim(),
217
+ "",
218
+ "## Waves",
219
+ "",
220
+ ...waves.map((wave, index) => `${index + 1}. ${wave.join(", ")}`),
221
+ "",
222
+ "## Stories",
223
+ ""
224
+ ];
225
+ for (const story of plan.stories) {
226
+ lines.push(`### ${story.id} — ${story.title}`, "", story.description.trim(), "", `- depends on: ${list(story.dependsOn)}`, `- owned: ${list(story.owned)}`, `- shared read-only: ${list(story.sharedReadOnly)}`, `- provides: ${list(story.provides)}`, "");
227
+ }
228
+ lines.push("## Plan block", "", "Edit this block to change the plan; the prose above is regenerated from it.", "", "```" + storyPlanFenceInfo, JSON.stringify(encoded, null, 2), "```", "");
229
+ return lines.join("\n");
230
+ });
231
+ export const makeStoryPlanStore = (files) => {
232
+ const save = (path, plan) => Effect.flatMap(renderStoryPlan(plan), (markdown) => files.writeAtomic(path, markdown));
233
+ const load = (path) => Effect.flatMap(files.read(path), (contents) => contents === undefined ? Effect.succeed(undefined) : parseStoryPlan(contents));
234
+ return {
235
+ save,
236
+ load,
237
+ recoverOrCreate: (path, create) => Effect.flatMap(load(path), (stored) => stored === undefined
238
+ ? Effect.tap(create, (plan) => save(path, plan))
239
+ : Effect.succeed(stored))
240
+ };
241
+ };
242
+ //# sourceMappingURL=StoryPlan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoryPlan.js","sourceRoot":"","sources":["../src/StoryPlan.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,24 @@ export interface TransientRetryOptions {
13
13
  readonly baseDelay?: Duration.Input;
14
14
  readonly flakyRetries?: number;
15
15
  readonly flakyDelay?: Duration.Input;
16
+ /**
17
+ * Re-asks a structured call whose response could not be parsed as the
18
+ * requested JSON, with the parse failure quoted back to the model. The
19
+ * model's output is not deterministic, so a malformed or off-schema reply
20
+ * is usually a one-off; but a schema the model cannot satisfy fails every
21
+ * time, so this budget is small (default 2) and independent of the others.
22
+ */
23
+ readonly parseRetries?: number;
16
24
  }
25
+ /** A structured call whose text came back but did not decode as the requested JSON. */
26
+ export declare const isStructuredParseFailure: (error: LlmError) => boolean;
27
+ /**
28
+ * The prompt for a structured re-ask: the original, plus what went wrong
29
+ * with the previous reply. Quoting the failure is what turns a blind retry
30
+ * into a repair — the common causes (prose around the JSON, a missing
31
+ * required field, a string where a number was asked for) are all things the
32
+ * model fixes on sight.
33
+ */
34
+ export declare const repairPrompt: (prompt: string, error: LlmError) => string;
17
35
  export declare const makeTransientRetry: (underlying: LlmServiceShape, retryOptions?: TransientRetryOptions | undefined) => Effect.Effect<LlmServiceShape, never, FlowEvents>;
18
36
  //# sourceMappingURL=TransientRetry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransientRetry.d.ts","sourceRoot":"","sources":["../src/TransientRetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG1E,OAAO,EAAE,UAAU,EAAQ,MAAM,iBAAiB,CAAA;AAmElD,eAAO,MAAM,aAAa,GAAI,OAAO,QAAQ,KAAG,OAE6C,CAAA;AAK7F,eAAO,MAAM,wBAAwB,GAAI,SAAS,MAAM,KAAG,OACV,CAAA;AAKjD,eAAO,MAAM,iBAAiB,GAAI,OAAO,QAAQ,KAAG,OACuB,CAAA;AAE3E,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,KAAG,OAc7C,CAAA;AAID,eAAO,MAAM,cAAc,GAAI,OAAO,QAAQ,EAAE,SAAS,QAAQ,CAAC,QAAQ,KAAG,QAAQ,CAAC,QAMrF,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAA;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAA;CACrC;AAyID,eAAO,MAAM,kBAAkB,sIA8B7B,CAAA"}
1
+ {"version":3,"file":"TransientRetry.d.ts","sourceRoot":"","sources":["../src/TransientRetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG1E,OAAO,EAAE,UAAU,EAAQ,MAAM,iBAAiB,CAAA;AAmElD,eAAO,MAAM,aAAa,GAAI,OAAO,QAAQ,KAAG,OAE6C,CAAA;AAK7F,eAAO,MAAM,wBAAwB,GAAI,SAAS,MAAM,KAAG,OACV,CAAA;AAKjD,eAAO,MAAM,iBAAiB,GAAI,OAAO,QAAQ,KAAG,OACuB,CAAA;AAE3E,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,KAAG,OAc7C,CAAA;AAID,eAAO,MAAM,cAAc,GAAI,OAAO,QAAQ,EAAE,SAAS,QAAQ,CAAC,QAAQ,KAAG,QAAQ,CAAC,QAMrF,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAA;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAA;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAkBD,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,GAAI,OAAO,QAAQ,KAAG,OAAsC,CAAA;AAIjG;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,OAAO,QAAQ,KAAG,MAY9D,CAAA;AA4JD,eAAO,MAAM,kBAAkB,sIA8B7B,CAAA"}
@@ -96,8 +96,31 @@ const resolveOptions = (options) => ({
96
96
  maxRetries: options.maxRetries ?? 3,
97
97
  baseDelay: Duration.fromInputUnsafe(options.baseDelay ?? "1 second"),
98
98
  flakyRetries: options.flakyRetries ?? 6,
99
- flakyDelay: Duration.fromInputUnsafe(options.flakyDelay ?? "1 second")
99
+ flakyDelay: Duration.fromInputUnsafe(options.flakyDelay ?? "1 second"),
100
+ parseRetries: options.parseRetries ?? 2
100
101
  });
102
+ /** A structured call whose text came back but did not decode as the requested JSON. */
103
+ export const isStructuredParseFailure = (error) => error._tag === "ParseError";
104
+ const repairReasonLimit = 400;
105
+ /**
106
+ * The prompt for a structured re-ask: the original, plus what went wrong
107
+ * with the previous reply. Quoting the failure is what turns a blind retry
108
+ * into a repair — the common causes (prose around the JSON, a missing
109
+ * required field, a string where a number was asked for) are all things the
110
+ * model fixes on sight.
111
+ */
112
+ export const repairPrompt = (prompt, error) => {
113
+ const reason = error.message.trim();
114
+ const shown = reason.length <= repairReasonLimit ? reason : `${reason.slice(0, repairReasonLimit - 3)}...`;
115
+ return [
116
+ prompt,
117
+ "",
118
+ "Your previous reply could not be parsed as the requested JSON:",
119
+ shown,
120
+ "Reply again with ONLY the JSON object — no prose before or after it, no markdown",
121
+ "fences, every required field present, and values of the requested types."
122
+ ].join("\n");
123
+ };
101
124
  const backoff = (baseDelay, attempt) => Duration.times(baseDelay, 2 ** attempt);
102
125
  const retryNotice = (events, what, attempt, maximum, error) => events.publish(Info.make({
103
126
  message: `⟳ ${what} — retry ${attempt + 1}/${maximum}: ${error.message}`
@@ -128,6 +151,15 @@ const retryStream = (stream, what, options, events) => {
128
151
  });
129
152
  return loop(0, 0);
130
153
  };
154
+ /**
155
+ * A structured call under all three budgets: `run(prompt)` is retried for
156
+ * transient and flaky failures as any effect is, and a parse failure re-asks
157
+ * with `repairPrompt` up to `parseRetries` times before it is surfaced.
158
+ */
159
+ const retryStructured = (prompt, run, options, events) => {
160
+ const loop = (current, parseAttempt) => retryEffect(run(current), "structured", options, events).pipe(Effect.catchIf((error) => isStructuredParseFailure(error) && parseAttempt < options.parseRetries, (error) => waitForRetry(events, "structured output (repair retry)", parseAttempt, options.parseRetries, error, options.flakyDelay).pipe(Effect.andThen(Effect.suspend(() => loop(repairPrompt(prompt, error), parseAttempt + 1))))));
161
+ return loop(prompt, 0);
162
+ };
131
163
  export const makeTransientRetry = Effect.fn("@llm4ts/flow/TransientRetry.make")(function* (underlying, retryOptions = {}) {
132
164
  const events = yield* FlowEvents;
133
165
  const options = resolveOptions(retryOptions);
@@ -135,8 +167,8 @@ export const makeTransientRetry = Effect.fn("@llm4ts/flow/TransientRetry.make")(
135
167
  executeStream: (prompt) => retryStream(underlying.executeStream(prompt), "stream", options, events),
136
168
  executeStreamWithHistory: (messages) => retryStream(underlying.executeStreamWithHistory(messages), "stream", options, events),
137
169
  executeWithTools: (prompt, tools) => retryEffect(underlying.executeWithTools(prompt, tools), "tools", options, events),
138
- executeStructured: (prompt, schema, jsonSchema) => retryEffect(underlying.executeStructured(prompt, schema, jsonSchema), "structured", options, events),
139
- executeStructuredWithUsage: (prompt, schema, jsonSchema) => retryEffect(underlying.executeStructuredWithUsage(prompt, schema, jsonSchema), "structured", options, events),
170
+ executeStructured: (prompt, schema, jsonSchema) => retryStructured(prompt, (current) => underlying.executeStructured(current, schema, jsonSchema), options, events),
171
+ executeStructuredWithUsage: (prompt, schema, jsonSchema) => retryStructured(prompt, (current) => underlying.executeStructuredWithUsage(current, schema, jsonSchema), options, events),
140
172
  isAvailable: underlying.isAvailable
141
173
  });
142
174
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TransientRetry.js","sourceRoot":"","sources":["../src/TransientRetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransientRetry.js","sourceRoot":"","sources":["../src/TransientRetry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/flow",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Effect-native LLM workflow, persistence, review, and repository automation",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -43,6 +43,7 @@
43
43
  "./Package": "./dist/Package.js",
44
44
  "./PageSpec": "./dist/PageSpec.js",
45
45
  "./Patterns": "./dist/Patterns.js",
46
+ "./Perimeter": "./dist/Perimeter.js",
46
47
  "./Persistence": "./dist/Persistence.js",
47
48
  "./Plan": "./dist/Plan.js",
48
49
  "./PlanExecution": "./dist/PlanExecution.js",
@@ -56,6 +57,8 @@
56
57
  "./ReviewCache": "./dist/ReviewCache.js",
57
58
  "./Reviewer": "./dist/Reviewer.js",
58
59
  "./SpecChecks": "./dist/SpecChecks.js",
60
+ "./Stories": "./dist/Stories.js",
61
+ "./StoryPlan": "./dist/StoryPlan.js",
59
62
  "./Survey": "./dist/Survey.js",
60
63
  "./TransientRetry": "./dist/TransientRetry.js",
61
64
  "./Usage": "./dist/Usage.js",
@@ -86,7 +89,7 @@
86
89
  "typescript"
87
90
  ],
88
91
  "dependencies": {
89
- "@llm4ts/core": "0.15.0"
92
+ "@llm4ts/core": "0.16.0"
90
93
  },
91
94
  "peerDependencies": {
92
95
  "effect": "4.0.0-beta.102"
@@ -1,6 +1,9 @@
1
1
  import * as Context from "effect/Context"
2
+ import type * as Effect from "effect/Effect"
3
+ import type * as Scope from "effect/Scope"
2
4
  import type { ConnectorCapabilities } from "@llm4ts/core/Models"
3
5
  import type { LlmServiceShape } from "@llm4ts/core/LlmService"
6
+ import type { FlowError } from "./FlowError.ts"
4
7
  import type { FlowEventsShape } from "./FlowEvents.ts"
5
8
  import type { GitToolShape } from "./GitTool.ts"
6
9
  import type { GitHubToolShape } from "./GitHubTool.ts"
@@ -16,6 +19,13 @@ export interface FlowContextShape {
16
19
  readonly userPrompt: string
17
20
  readonly workDir: string
18
21
  readonly workspace: string
22
+ /**
23
+ * The same seats rebound to another directory (a story worktree, ADR
24
+ * 0013): every CLI seat launched there, git rooted there, the run's
25
+ * events and cost tracking shared. Absent when the runner cannot rebind
26
+ * (an embedded context built by hand).
27
+ */
28
+ readonly contextFor?: (workDir: string) => Effect.Effect<FlowContextShape, FlowError, Scope.Scope>
19
29
  }
20
30
 
21
31
  export class FlowContext extends Context.Service<FlowContext, FlowContextShape>()(