@llm4ts/flow 2.32.0 → 2.34.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/Diagnostics.d.ts +28 -0
- package/dist/Diagnostics.d.ts.map +1 -0
- package/dist/Diagnostics.js +103 -0
- package/dist/Diagnostics.js.map +1 -0
- package/dist/FlowError.d.ts +1 -1
- package/dist/FlowError.js +1 -1
- package/dist/FlowError.js.map +1 -1
- package/dist/Pack.d.ts +39 -0
- package/dist/Pack.d.ts.map +1 -1
- package/dist/Pack.js +38 -0
- package/dist/Pack.js.map +1 -1
- package/dist/Port.d.ts +116 -0
- package/dist/Port.d.ts.map +1 -0
- package/dist/Port.js +345 -0
- package/dist/Port.js.map +1 -0
- package/dist/Retro.d.ts.map +1 -1
- package/dist/Retro.js +9 -2
- package/dist/Retro.js.map +1 -1
- package/dist/WorkQueue.d.ts +63 -0
- package/dist/WorkQueue.d.ts.map +1 -0
- package/dist/WorkQueue.js +117 -0
- package/dist/WorkQueue.js.map +1 -0
- package/package.json +5 -2
- package/src/Diagnostics.ts +125 -0
- package/src/FlowError.ts +1 -1
- package/src/Pack.ts +80 -0
- package/src/Port.ts +429 -0
- package/src/Retro.ts +9 -2
- package/src/WorkQueue.ts +194 -0
package/dist/Port.js
ADDED
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
// Porting a code base file by file (ADR 0028): the manifest, its batches, the
|
|
2
|
+
// deterministic target path, the machine-readable PORT STATUS trailer every
|
|
3
|
+
// draft ends with, and the pilot report. Pure; the flows own the seats.
|
|
4
|
+
import { basename, dirname, extname } from "node:path";
|
|
5
|
+
import * as Schema from "effect/Schema";
|
|
6
|
+
import { DraftApprovalMarker } from "./Approval.js";
|
|
7
|
+
export class PortEntry extends Schema.Class("PortEntry")({
|
|
8
|
+
/** Repo-relative source path; also the queue item id. */
|
|
9
|
+
id: Schema.String,
|
|
10
|
+
source: Schema.String,
|
|
11
|
+
target: Schema.String,
|
|
12
|
+
loc: Schema.Int
|
|
13
|
+
}) {
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The target path of a source, from the pack's `target:` template:
|
|
17
|
+
* `{{dir}}` (the source's directory, "" at the root), `{{base}}` (its name
|
|
18
|
+
* without extension), `{{ext}}` (the extension without the dot), `{{path}}`
|
|
19
|
+
* (the whole source path).
|
|
20
|
+
*/
|
|
21
|
+
export const targetPathOf = (template, source) => {
|
|
22
|
+
const dir = dirname(source);
|
|
23
|
+
const ext = extname(source);
|
|
24
|
+
const rendered = template
|
|
25
|
+
.replaceAll("{{dir}}", dir === "." ? "" : dir)
|
|
26
|
+
.replaceAll("{{base}}", basename(source, ext))
|
|
27
|
+
.replaceAll("{{ext}}", ext.replace(/^\./u, ""))
|
|
28
|
+
.replaceAll("{{path}}", source);
|
|
29
|
+
return rendered.replace(/^\/+/u, "").replaceAll("//", "/");
|
|
30
|
+
};
|
|
31
|
+
export const linesOf = (text) => text.length === 0 ? 0 : text.split(/\r?\n/u).filter((line) => line.trim().length > 0).length;
|
|
32
|
+
/** Contiguous batches of the manifest; a batch led by a big file is small (the Bun rule). */
|
|
33
|
+
export const batchesOf = (entries, policy = {}) => {
|
|
34
|
+
const files = Math.max(1, policy.files ?? 100);
|
|
35
|
+
const bigLoc = policy.bigLoc ?? 2_200;
|
|
36
|
+
const small = Math.max(1, policy.small ?? 6);
|
|
37
|
+
const batches = [];
|
|
38
|
+
let index = 0;
|
|
39
|
+
while (index < entries.length) {
|
|
40
|
+
const first = entries[index];
|
|
41
|
+
const size = first !== undefined && first.loc > bigLoc ? small : files;
|
|
42
|
+
batches.push(entries.slice(index, index + size));
|
|
43
|
+
index += size;
|
|
44
|
+
}
|
|
45
|
+
return batches;
|
|
46
|
+
};
|
|
47
|
+
export const PortConfidence = Schema.Literals(["high", "medium", "low"]);
|
|
48
|
+
const statusWindow = 40;
|
|
49
|
+
/**
|
|
50
|
+
* The PORT STATUS trailer of a draft: in any comment syntax, within the last
|
|
51
|
+
* lines of the file, `confidence: high|medium|low`, `todos: <n>`, `notes: …`.
|
|
52
|
+
* All undefined when the draft has no trailer.
|
|
53
|
+
*/
|
|
54
|
+
export const portStatusIn = (text) => {
|
|
55
|
+
const lines = text.split(/\r?\n/u);
|
|
56
|
+
const tail = lines.slice(Math.max(0, lines.length - statusWindow));
|
|
57
|
+
const start = tail.findIndex((line) => /PORT STATUS/u.test(line));
|
|
58
|
+
if (start < 0) {
|
|
59
|
+
return { confidence: undefined, todos: undefined, notes: undefined };
|
|
60
|
+
}
|
|
61
|
+
const block = tail.slice(start).join("\n");
|
|
62
|
+
const confidence = /confidence:\s*(high|medium|low)\b/iu.exec(block)?.[1]?.toLowerCase();
|
|
63
|
+
const todos = /todos?:\s*(\d+)/iu.exec(block)?.[1];
|
|
64
|
+
const notes = /notes?:\s*(.+)$/imu.exec(block)?.[1]?.trim();
|
|
65
|
+
return {
|
|
66
|
+
confidence: confidence === "high" || confidence === "medium" || confidence === "low"
|
|
67
|
+
? confidence
|
|
68
|
+
: undefined,
|
|
69
|
+
todos: todos === undefined ? undefined : Number.parseInt(todos, 10),
|
|
70
|
+
notes: notes === undefined || notes.length === 0 ? undefined : notes.replace(/\s*\*\/\s*$/u, "")
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
/** The instruction every implementer gets: how to end the file. */
|
|
74
|
+
export const portStatusInstruction = (comment) => [
|
|
75
|
+
`End the file with a machine-readable trailer in ${comment} comments, exactly this shape:`,
|
|
76
|
+
`${comment} PORT STATUS`,
|
|
77
|
+
`${comment} source: <the source path>`,
|
|
78
|
+
`${comment} confidence: high | medium | low`,
|
|
79
|
+
`${comment} todos: <number of TODO(port) markers you left>`,
|
|
80
|
+
`${comment} notes: <one line: what you could not translate faithfully, or "none">`,
|
|
81
|
+
"`confidence: low` means the logic is probably wrong and must be re-read against the source."
|
|
82
|
+
].join("\n");
|
|
83
|
+
const minutes = (ms) => `${(ms / 60_000).toFixed(1)} min`;
|
|
84
|
+
/** The pilot report (R7 of the plan): rates measured, totals extrapolated, an approval to continue. */
|
|
85
|
+
export const renderPilotReport = (facts) => {
|
|
86
|
+
const done = facts.outcomes.filter((outcome) => outcome.status === "done");
|
|
87
|
+
const failed = facts.outcomes.filter((outcome) => outcome.status === "failed");
|
|
88
|
+
const count = (level) => done.filter((outcome) => outcome.confidence === level).length;
|
|
89
|
+
const todos = done.reduce((sum, outcome) => sum + (outcome.todos ?? 0), 0);
|
|
90
|
+
const perItemMs = facts.piloted === 0 ? 0 : facts.elapsedMs / facts.piloted;
|
|
91
|
+
const perItemCost = facts.estimatedCostUsd === undefined || facts.piloted === 0
|
|
92
|
+
? undefined
|
|
93
|
+
: facts.estimatedCostUsd / facts.piloted;
|
|
94
|
+
return [
|
|
95
|
+
"# Port pilot",
|
|
96
|
+
"",
|
|
97
|
+
`- piloted: ${facts.piloted} file(s), ${done.length} done, ${failed.length} failed, in ${minutes(facts.elapsedMs)}`,
|
|
98
|
+
`- confidence: ${count("high")} high, ${count("medium")} medium, ${count("low")} low; ${todos} TODO(port) marker(s)`,
|
|
99
|
+
...(perItemCost === undefined
|
|
100
|
+
? []
|
|
101
|
+
: [
|
|
102
|
+
`- cost: ~$${(facts.estimatedCostUsd ?? 0).toFixed(2)} (~$${perItemCost.toFixed(3)} per file)`
|
|
103
|
+
]),
|
|
104
|
+
`- remaining: ${facts.remaining} file(s) → about ${minutes(perItemMs * facts.remaining)} at this rate${perItemCost === undefined ? "" : ` and ~$${(perItemCost * facts.remaining).toFixed(2)}`}`,
|
|
105
|
+
"",
|
|
106
|
+
...(failed.length === 0
|
|
107
|
+
? []
|
|
108
|
+
: [
|
|
109
|
+
"## Failed",
|
|
110
|
+
"",
|
|
111
|
+
...failed.map((outcome) => `- ${outcome.id}: ${outcome.note ?? ""}`),
|
|
112
|
+
""
|
|
113
|
+
]),
|
|
114
|
+
"Read the drafted files beside their sources, then tick the box to let the next run",
|
|
115
|
+
"port the rest; edit `prompts/porting.md` in the pack first if the drafts show a",
|
|
116
|
+
"pattern the rulebook should settle.",
|
|
117
|
+
"",
|
|
118
|
+
DraftApprovalMarker,
|
|
119
|
+
""
|
|
120
|
+
].join("\n");
|
|
121
|
+
};
|
|
122
|
+
/** A whole new file rendered as a unified diff of additions, for reviewers that judge diffs. */
|
|
123
|
+
export const asAddedFileDiff = (path, content) => {
|
|
124
|
+
const lines = content.split(/\r?\n/u);
|
|
125
|
+
return [
|
|
126
|
+
`diff --git a/${path} b/${path}`,
|
|
127
|
+
"new file mode 100644",
|
|
128
|
+
"--- /dev/null",
|
|
129
|
+
`+++ b/${path}`,
|
|
130
|
+
`@@ -0,0 +1,${lines.length} @@`,
|
|
131
|
+
...lines.map((line) => `+${line}`)
|
|
132
|
+
].join("\n");
|
|
133
|
+
};
|
|
134
|
+
// ---- Ledger (port-ledger) --------------------------------------------------------------
|
|
135
|
+
/** One classified unit of a source file, with the line that proves it. */
|
|
136
|
+
export class LedgerRow extends Schema.Class("LedgerRow")({
|
|
137
|
+
file: Schema.String,
|
|
138
|
+
unit: Schema.String,
|
|
139
|
+
class: Schema.String,
|
|
140
|
+
/** `file:line` of the statement the classification rests on. */
|
|
141
|
+
evidence: Schema.String,
|
|
142
|
+
confidence: PortConfidence
|
|
143
|
+
}) {
|
|
144
|
+
}
|
|
145
|
+
const tsvEscape = (value) => value.replaceAll("\t", " ").replaceAll("\n", " ");
|
|
146
|
+
/** The ledger as a TSV with a header: `file unit class evidence confidence`. */
|
|
147
|
+
export const renderLedger = (rows) => [
|
|
148
|
+
"file\tunit\tclass\tevidence\tconfidence",
|
|
149
|
+
...rows.map((row) => [row.file, row.unit, row.class, row.evidence, row.confidence].map(tsvEscape).join("\t"))
|
|
150
|
+
].join("\n") + "\n";
|
|
151
|
+
export const parseLedger = (text) => text
|
|
152
|
+
.split(/\r?\n/u)
|
|
153
|
+
.slice(1)
|
|
154
|
+
.filter((line) => line.trim().length > 0)
|
|
155
|
+
.flatMap((line) => {
|
|
156
|
+
const [file, unit, klass, evidence, confidence] = line.split("\t");
|
|
157
|
+
return file === undefined || unit === undefined || klass === undefined
|
|
158
|
+
? []
|
|
159
|
+
: [
|
|
160
|
+
LedgerRow.make({
|
|
161
|
+
file,
|
|
162
|
+
unit,
|
|
163
|
+
class: klass,
|
|
164
|
+
evidence: evidence ?? "",
|
|
165
|
+
confidence: confidence === "high" || confidence === "medium" || confidence === "low"
|
|
166
|
+
? confidence
|
|
167
|
+
: "low"
|
|
168
|
+
})
|
|
169
|
+
];
|
|
170
|
+
});
|
|
171
|
+
/** The rows of one source file, rendered for its implementer ("trust the table over local guessing"). */
|
|
172
|
+
export const ledgerRowsFor = (rows, file) => {
|
|
173
|
+
const mine = rows.filter((row) => row.file === file);
|
|
174
|
+
return mine.length === 0
|
|
175
|
+
? undefined
|
|
176
|
+
: mine
|
|
177
|
+
.map((row) => `- ${row.unit}: ${row.class} (${row.evidence}; ${row.confidence})`)
|
|
178
|
+
.join("\n");
|
|
179
|
+
};
|
|
180
|
+
/** The units a pack's `## Ledger` regex names in a source file, each once. */
|
|
181
|
+
export const unitsIn = (text, unitRegex) => {
|
|
182
|
+
const pattern = new RegExp(unitRegex, "gmu");
|
|
183
|
+
const units = [];
|
|
184
|
+
for (let match = pattern.exec(text); match !== null; match = pattern.exec(text)) {
|
|
185
|
+
const name = match.slice(1).find((group) => group !== undefined && group.length > 0);
|
|
186
|
+
if (name !== undefined && !units.includes(name))
|
|
187
|
+
units.push(name);
|
|
188
|
+
if (match[0].length === 0)
|
|
189
|
+
pattern.lastIndex += 1;
|
|
190
|
+
}
|
|
191
|
+
return units;
|
|
192
|
+
};
|
|
193
|
+
// ---- Refutes (port-guide, port-ledger) ----------------------------------------------------
|
|
194
|
+
/** A claim stands unless a majority of its refuters reject it (the Bun port's 3-vote refute). */
|
|
195
|
+
export const standsAfterRefutes = (votes) => {
|
|
196
|
+
const rejected = votes.filter((holds) => !holds).length;
|
|
197
|
+
return votes.length === 0 ? true : rejected * 2 < votes.length;
|
|
198
|
+
};
|
|
199
|
+
// ---- Guide audit (port-guide) -------------------------------------------------------------
|
|
200
|
+
export class GuideFinding extends Schema.Class("GuideFinding")({
|
|
201
|
+
dimension: Schema.String,
|
|
202
|
+
finding: Schema.String,
|
|
203
|
+
/** A rulebook line, a sample source line, or a draft line that shows it. */
|
|
204
|
+
evidence: Schema.String,
|
|
205
|
+
/** The rule the rulebook should gain or change, one line. */
|
|
206
|
+
proposedRule: Schema.String
|
|
207
|
+
}) {
|
|
208
|
+
}
|
|
209
|
+
export const defaultAuditDimensions = [
|
|
210
|
+
"error model",
|
|
211
|
+
"ownership and memory",
|
|
212
|
+
"collections and strings",
|
|
213
|
+
"control flow and compile-time constructs",
|
|
214
|
+
"API shape and naming",
|
|
215
|
+
"concurrency and resources",
|
|
216
|
+
"build, test and tooling idioms",
|
|
217
|
+
"what not to translate"
|
|
218
|
+
];
|
|
219
|
+
export const renderGuideAudit = (facts) => [
|
|
220
|
+
`# Rulebook audit — pack ${facts.pack}`,
|
|
221
|
+
"",
|
|
222
|
+
`- sample files: ${facts.sample.join(", ") || "none"}`,
|
|
223
|
+
`- findings kept after the refute: ${facts.kept.length}; dropped: ${facts.dropped.length}`,
|
|
224
|
+
"",
|
|
225
|
+
...(facts.kept.length === 0
|
|
226
|
+
? ["No finding survived: the rulebook stands as written.", ""]
|
|
227
|
+
: [
|
|
228
|
+
"## Proposed rules",
|
|
229
|
+
"",
|
|
230
|
+
"Each is an `append-rule` to `prompts/porting.md`, applied on the next run once approved.",
|
|
231
|
+
"",
|
|
232
|
+
...facts.kept.flatMap((finding) => [
|
|
233
|
+
`### ${finding.dimension}`,
|
|
234
|
+
"",
|
|
235
|
+
`**Finding.** ${finding.finding.trim()}`,
|
|
236
|
+
"",
|
|
237
|
+
`**Evidence.** ${finding.evidence.trim()}`,
|
|
238
|
+
"",
|
|
239
|
+
"```diff",
|
|
240
|
+
`+ - ${finding.proposedRule.trim()}`,
|
|
241
|
+
"```",
|
|
242
|
+
""
|
|
243
|
+
])
|
|
244
|
+
]),
|
|
245
|
+
...(facts.trial.length === 0
|
|
246
|
+
? []
|
|
247
|
+
: [
|
|
248
|
+
"## Trial port: where the native port and the rulebook port differ",
|
|
249
|
+
"",
|
|
250
|
+
...facts.trial.map((line) => `- ${line}`),
|
|
251
|
+
""
|
|
252
|
+
]),
|
|
253
|
+
...(facts.dropped.length === 0
|
|
254
|
+
? []
|
|
255
|
+
: [
|
|
256
|
+
"## Dropped by the refute",
|
|
257
|
+
"",
|
|
258
|
+
...facts.dropped.map((finding) => `- ${finding.dimension}: ${finding.finding.trim()}`),
|
|
259
|
+
""
|
|
260
|
+
]),
|
|
261
|
+
DraftApprovalMarker,
|
|
262
|
+
""
|
|
263
|
+
].join("\n");
|
|
264
|
+
// ---- Differential (port-tests) ------------------------------------------------------------
|
|
265
|
+
export const DiffClass = Schema.Literals(["pass", "diverge", "crash", "hang", "legacy-red"]);
|
|
266
|
+
export class DiffVerdict extends Schema.Class("DiffVerdict")({
|
|
267
|
+
file: Schema.String,
|
|
268
|
+
class: DiffClass,
|
|
269
|
+
legacyPassed: Schema.optionalKey(Schema.Int),
|
|
270
|
+
targetPassed: Schema.optionalKey(Schema.Int),
|
|
271
|
+
detail: Schema.String
|
|
272
|
+
}) {
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* The Bun test swarm's verdict: a test file passes when the target exits 0
|
|
276
|
+
* AND its pass count equals the legacy baseline's (when both are known). A
|
|
277
|
+
* legacy run that is red itself is no evidence about the target.
|
|
278
|
+
*/
|
|
279
|
+
export const diffVerdict = (file, legacy, target, roots = []) => {
|
|
280
|
+
const strip = (text) => roots.reduce((acc, root) => acc.replaceAll(`${root}/`, ""), text);
|
|
281
|
+
const legacyPassed = legacy.passed;
|
|
282
|
+
const targetPassed = target.passed;
|
|
283
|
+
const counts = {
|
|
284
|
+
...(legacyPassed === undefined ? {} : { legacyPassed }),
|
|
285
|
+
...(targetPassed === undefined ? {} : { targetPassed })
|
|
286
|
+
};
|
|
287
|
+
if (!legacy.isClean) {
|
|
288
|
+
return DiffVerdict.make({
|
|
289
|
+
file,
|
|
290
|
+
class: "legacy-red",
|
|
291
|
+
...counts,
|
|
292
|
+
detail: "the legacy build fails this file too; nothing to compare"
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
const gate = target.issues.find((issue) => issue.gateClass !== undefined);
|
|
296
|
+
if (gate?.gateClass === "hang") {
|
|
297
|
+
return DiffVerdict.make({ file, class: "hang", ...counts, detail: strip(gate.description) });
|
|
298
|
+
}
|
|
299
|
+
if (gate?.gateClass === "crash") {
|
|
300
|
+
return DiffVerdict.make({ file, class: "crash", ...counts, detail: strip(gate.description) });
|
|
301
|
+
}
|
|
302
|
+
if (!target.isClean) {
|
|
303
|
+
return DiffVerdict.make({
|
|
304
|
+
file,
|
|
305
|
+
class: "diverge",
|
|
306
|
+
...counts,
|
|
307
|
+
detail: strip(target.issues.map((issue) => issue.description).join("\n"))
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
if (legacyPassed !== undefined && targetPassed !== undefined && targetPassed !== legacyPassed) {
|
|
311
|
+
return DiffVerdict.make({
|
|
312
|
+
file,
|
|
313
|
+
class: "diverge",
|
|
314
|
+
...counts,
|
|
315
|
+
detail: `${targetPassed} test(s) pass on the target, ${legacyPassed} on the legacy build`
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
return DiffVerdict.make({ file, class: "pass", ...counts, detail: "" });
|
|
319
|
+
};
|
|
320
|
+
/** The `.diag` a fixer reads as its only runtime evidence. */
|
|
321
|
+
export const renderDiag = (verdict, tailChars = 4_000) => [
|
|
322
|
+
`# ${verdict.file}: ${verdict.class}`,
|
|
323
|
+
"",
|
|
324
|
+
`- legacy passed: ${verdict.legacyPassed ?? "unknown"}; target passed: ${verdict.targetPassed ?? "unknown"}`,
|
|
325
|
+
"",
|
|
326
|
+
"## Target output (tail)",
|
|
327
|
+
"",
|
|
328
|
+
"```",
|
|
329
|
+
verdict.detail.length > tailChars ? `…${verdict.detail.slice(-tailChars)}` : verdict.detail,
|
|
330
|
+
"```",
|
|
331
|
+
""
|
|
332
|
+
].join("\n");
|
|
333
|
+
export const renderDifferentialReport = (round, verdicts) => {
|
|
334
|
+
const by = (klass) => verdicts.filter((verdict) => verdict.class === klass);
|
|
335
|
+
return [
|
|
336
|
+
`# Differential tests, round ${round}`,
|
|
337
|
+
"",
|
|
338
|
+
`- files: ${verdicts.length}; pass ${by("pass").length}, diverge ${by("diverge").length}, crash ${by("crash").length}, hang ${by("hang").length}, legacy-red ${by("legacy-red").length}`,
|
|
339
|
+
"",
|
|
340
|
+
...["diverge", "crash", "hang"].flatMap((klass) => by(klass).length === 0
|
|
341
|
+
? []
|
|
342
|
+
: [`## ${klass}`, "", ...by(klass).map((verdict) => `- ${verdict.file}`), ""])
|
|
343
|
+
].join("\n");
|
|
344
|
+
};
|
|
345
|
+
//# sourceMappingURL=Port.js.map
|
package/dist/Port.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Port.js","sourceRoot":"","sources":["../src/Port.ts"],"names":[],"mappings":"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"}
|
package/dist/Retro.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Retro.d.ts","sourceRoot":"","sources":["../src/Retro.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Retro.d.ts","sourceRoot":"","sources":["../src/Retro.ts"],"names":[],"mappings":"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"}
|
package/dist/Retro.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* tasks appended to a story's plan, or a story entry edited in the epic
|
|
10
10
|
* plan (which restarts that story). Nothing is applied unreviewed.
|
|
11
11
|
*/
|
|
12
|
-
import { join } from "node:path";
|
|
12
|
+
import { join, resolve, sep } from "node:path";
|
|
13
13
|
import * as Effect from "effect/Effect";
|
|
14
14
|
import * as Option from "effect/Option";
|
|
15
15
|
import * as Schema from "effect/Schema";
|
|
@@ -942,7 +942,14 @@ export const applyApprovedRetros = Effect.fn("@llm4ts/flow/Retro.apply")(functio
|
|
|
942
942
|
yield* say(`${runId}: rule edit to ${edit.target} is not allowed; skipped`);
|
|
943
943
|
continue;
|
|
944
944
|
}
|
|
945
|
-
const
|
|
945
|
+
const root = resolve(options.rulesRoot);
|
|
946
|
+
const path = resolve(root, edit.target);
|
|
947
|
+
// The allowlist already rejects absolute paths and `..`; this keeps the
|
|
948
|
+
// resolved file under the repository root whatever the string looked like.
|
|
949
|
+
if (path !== root && !path.startsWith(`${root}${sep}`)) {
|
|
950
|
+
yield* say(`${runId}: rule edit to ${edit.target} resolves outside the repository; skipped`);
|
|
951
|
+
continue;
|
|
952
|
+
}
|
|
946
953
|
const existing = yield* files.read(path).pipe(Effect.catch(() => Effect.succeed(undefined)));
|
|
947
954
|
const next = applyRuleEdit(existing, edit);
|
|
948
955
|
if (next === undefined) {
|