pi-agent-flow 2.0.1 → 2.0.5
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/README.md +126 -489
- package/agents/audit.md +24 -15
- package/agents/build.md +4 -3
- package/agents/craft.md +4 -4
- package/agents/debug.md +5 -4
- package/agents/ideas.md +6 -5
- package/agents/scout.md +10 -8
- package/agents/trace.md +23 -0
- package/dist/batch/apply-patch.d.ts +60 -0
- package/dist/batch/apply-patch.d.ts.map +1 -0
- package/dist/batch/apply-patch.js +477 -0
- package/dist/batch/apply-patch.js.map +1 -0
- package/dist/batch/batch-bash.d.ts +10 -6
- package/dist/batch/batch-bash.d.ts.map +1 -1
- package/dist/batch/batch-bash.js +59 -11
- package/dist/batch/batch-bash.js.map +1 -1
- package/dist/batch/constants.d.ts +38 -6
- package/dist/batch/constants.d.ts.map +1 -1
- package/dist/batch/constants.js +26 -4
- package/dist/batch/constants.js.map +1 -1
- package/dist/batch/execute.d.ts +8 -2
- package/dist/batch/execute.d.ts.map +1 -1
- package/dist/batch/execute.js +222 -67
- package/dist/batch/execute.js.map +1 -1
- package/dist/batch/fuzzy-edit.d.ts +4 -1
- package/dist/batch/fuzzy-edit.d.ts.map +1 -1
- package/dist/batch/fuzzy-edit.js +7 -2
- package/dist/batch/fuzzy-edit.js.map +1 -1
- package/dist/batch/index.d.ts +10 -24
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/batch/index.js +120 -120
- package/dist/batch/index.js.map +1 -1
- package/dist/batch/render.d.ts +22 -5
- package/dist/batch/render.d.ts.map +1 -1
- package/dist/batch/render.js +353 -15
- package/dist/batch/render.js.map +1 -1
- package/dist/batch/summary.d.ts.map +1 -1
- package/dist/batch/summary.js +26 -4
- package/dist/batch/summary.js.map +1 -1
- package/dist/config/config.d.ts +5 -4
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +15 -5
- package/dist/config/config.js.map +1 -1
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +7 -1
- package/dist/config/models.js.map +1 -1
- package/dist/config/settings-resolver.d.ts +5 -4
- package/dist/config/settings-resolver.d.ts.map +1 -1
- package/dist/config/settings-resolver.js +50 -21
- package/dist/config/settings-resolver.js.map +1 -1
- package/dist/core2/snapshot.d.ts +21 -0
- package/dist/core2/snapshot.d.ts.map +1 -0
- package/dist/core2/snapshot.js +214 -0
- package/dist/core2/snapshot.js.map +1 -0
- package/dist/{core → flow}/agents.d.ts.map +1 -1
- package/dist/{core → flow}/agents.js +5 -2
- package/dist/{core → flow}/agents.js.map +1 -1
- package/dist/flow/auto-warp.d.ts +1 -1
- package/dist/flow/auto-warp.js +1 -1
- package/dist/flow/command.d.ts +1 -1
- package/dist/flow/command.d.ts.map +1 -1
- package/dist/flow/complexity.d.ts +20 -0
- package/dist/flow/complexity.d.ts.map +1 -0
- package/dist/flow/complexity.js +34 -0
- package/dist/flow/complexity.js.map +1 -0
- package/dist/flow/continuation.d.ts +1 -1
- package/dist/flow/continuation.d.ts.map +1 -1
- package/dist/flow/continuation.js +4 -3
- package/dist/flow/continuation.js.map +1 -1
- package/dist/{core → flow}/depth.d.ts +4 -4
- package/dist/{core → flow}/depth.d.ts.map +1 -1
- package/dist/{core → flow}/depth.js +5 -5
- package/dist/{core → flow}/depth.js.map +1 -1
- package/dist/{core → flow}/executor.d.ts +42 -22
- package/dist/flow/executor.d.ts.map +1 -0
- package/dist/flow/executor.js +727 -0
- package/dist/flow/executor.js.map +1 -0
- package/dist/flow/index.d.ts +4 -4
- package/dist/flow/index.d.ts.map +1 -1
- package/dist/flow/index.js +4 -4
- package/dist/flow/index.js.map +1 -1
- package/dist/flow/loop-command.d.ts +1 -1
- package/dist/flow/loop-command.d.ts.map +1 -1
- package/dist/flow/loop-command.js +3 -0
- package/dist/flow/loop-command.js.map +1 -1
- package/dist/{core/flow.d.ts → flow/runner.d.ts} +20 -16
- package/dist/flow/runner.d.ts.map +1 -0
- package/dist/{core/flow.js → flow/runner.js} +105 -61
- package/dist/flow/runner.js.map +1 -0
- package/dist/{core → flow}/session-registry.d.ts.map +1 -1
- package/dist/{core → flow}/session-registry.js.map +1 -1
- package/dist/flow/settings-command.d.ts +3 -3
- package/dist/flow/settings-command.d.ts.map +1 -1
- package/dist/flow/settings-command.js +43 -22
- package/dist/flow/settings-command.js.map +1 -1
- package/dist/{core/delegation.d.ts → flow/transition.d.ts} +8 -8
- package/dist/{core/delegation.d.ts.map → flow/transition.d.ts.map} +1 -1
- package/dist/{core/delegation.js → flow/transition.js} +12 -12
- package/dist/{core/delegation.js.map → flow/transition.js.map} +1 -1
- package/dist/flow/types.d.ts +4 -0
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/flow/warp.d.ts +15 -0
- package/dist/flow/warp.d.ts.map +1 -0
- package/dist/flow/warp.js +207 -0
- package/dist/flow/warp.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +237 -89
- package/dist/index.js.map +1 -1
- package/dist/notify/notify.d.ts +1 -1
- package/dist/notify/notify.d.ts.map +1 -1
- package/dist/notify/notify.js +1 -1
- package/dist/snapshot/cli-args.d.ts +2 -2
- package/dist/snapshot/cli-args.d.ts.map +1 -1
- package/dist/snapshot/cli-args.js +21 -5
- package/dist/snapshot/cli-args.js.map +1 -1
- package/dist/snapshot/runner-events.d.ts +7 -2
- package/dist/snapshot/runner-events.d.ts.map +1 -1
- package/dist/snapshot/runner-events.js +137 -19
- package/dist/snapshot/runner-events.js.map +1 -1
- package/dist/snapshot/structured-output.d.ts +1 -1
- package/dist/snapshot/structured-output.d.ts.map +1 -1
- package/dist/snapshot/structured-output.js +20 -2
- package/dist/snapshot/structured-output.js.map +1 -1
- package/dist/steering/flow-prompt.d.ts +4 -4
- package/dist/steering/flow-prompt.d.ts.map +1 -1
- package/dist/steering/flow-prompt.js +18 -37
- package/dist/steering/flow-prompt.js.map +1 -1
- package/dist/steering/sliding-prompt.d.ts.map +1 -1
- package/dist/steering/sliding-prompt.js +8 -7
- package/dist/steering/sliding-prompt.js.map +1 -1
- package/dist/steering/tool-utils.d.ts +31 -8
- package/dist/steering/tool-utils.d.ts.map +1 -1
- package/dist/steering/tool-utils.js +63 -30
- package/dist/steering/tool-utils.js.map +1 -1
- package/dist/tools/ask-user.d.ts +2 -19
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +14 -38
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/timed-bash.d.ts +1 -1
- package/dist/tools/timed-bash.d.ts.map +1 -1
- package/dist/tools/timed-bash.js +11 -9
- package/dist/tools/timed-bash.js.map +1 -1
- package/dist/tools/trace.d.ts +34 -0
- package/dist/tools/trace.d.ts.map +1 -0
- package/dist/tools/trace.js +180 -0
- package/dist/tools/trace.js.map +1 -0
- package/dist/tools/web-ops.d.ts +85 -0
- package/dist/tools/web-ops.d.ts.map +1 -0
- package/dist/tools/{web-tool.js → web-ops.js} +51 -127
- package/dist/tools/web-ops.js.map +1 -0
- package/dist/tui/flow-colors.d.ts +1 -0
- package/dist/tui/flow-colors.d.ts.map +1 -1
- package/dist/tui/flow-colors.js +2 -2
- package/dist/tui/flow-colors.js.map +1 -1
- package/dist/tui/render-utils.d.ts.map +1 -1
- package/dist/tui/render-utils.js +2 -4
- package/dist/tui/render-utils.js.map +1 -1
- package/dist/tui/render.d.ts +41 -1
- package/dist/tui/render.d.ts.map +1 -1
- package/dist/tui/render.js +724 -189
- package/dist/tui/render.js.map +1 -1
- package/dist/tui/scramble/algorithm.d.ts +4 -2
- package/dist/tui/scramble/algorithm.d.ts.map +1 -1
- package/dist/tui/scramble/algorithm.js +44 -12
- package/dist/tui/scramble/algorithm.js.map +1 -1
- package/dist/tui/scramble/constants.d.ts +3 -0
- package/dist/tui/scramble/constants.d.ts.map +1 -1
- package/dist/tui/scramble/constants.js +4 -1
- package/dist/tui/scramble/constants.js.map +1 -1
- package/dist/tui/scramble/index.d.ts +3 -2
- package/dist/tui/scramble/index.d.ts.map +1 -1
- package/dist/tui/scramble/index.js +2 -2
- package/dist/tui/scramble/index.js.map +1 -1
- package/dist/tui/scramble/manager.d.ts +2 -2
- package/dist/tui/scramble/manager.d.ts.map +1 -1
- package/dist/tui/scramble/manager.js +37 -20
- package/dist/tui/scramble/manager.js.map +1 -1
- package/dist/tui/scramble/utils.js +1 -1
- package/dist/tui/scramble/utils.js.map +1 -1
- package/dist/types/flow.d.ts +17 -1
- package/dist/types/flow.d.ts.map +1 -1
- package/dist/types/flow.js +11 -2
- package/dist/types/flow.js.map +1 -1
- package/dist/types/output.d.ts +11 -36
- package/dist/types/output.d.ts.map +1 -1
- package/dist/types/output.js +1 -1
- package/dist/types/ui.d.ts +1 -1
- package/dist/types/ui.d.ts.map +1 -1
- package/package.json +10 -10
- package/dist/core/executor.d.ts.map +0 -1
- package/dist/core/executor.js +0 -378
- package/dist/core/executor.js.map +0 -1
- package/dist/core/flow.d.ts.map +0 -1
- package/dist/core/flow.js.map +0 -1
- package/dist/core/session-mode.d.ts +0 -11
- package/dist/core/session-mode.d.ts.map +0 -1
- package/dist/core/session-mode.js +0 -26
- package/dist/core/session-mode.js.map +0 -1
- package/dist/core/transitions.d.ts +0 -39
- package/dist/core/transitions.d.ts.map +0 -1
- package/dist/core/transitions.js +0 -59
- package/dist/core/transitions.js.map +0 -1
- package/dist/flow/perform-warp.d.ts +0 -28
- package/dist/flow/perform-warp.d.ts.map +0 -1
- package/dist/flow/perform-warp.js +0 -127
- package/dist/flow/perform-warp.js.map +0 -1
- package/dist/flow/warp-command.d.ts +0 -8
- package/dist/flow/warp-command.d.ts.map +0 -1
- package/dist/flow/warp-command.js +0 -144
- package/dist/flow/warp-command.js.map +0 -1
- package/dist/flow/warp-utils.d.ts +0 -11
- package/dist/flow/warp-utils.d.ts.map +0 -1
- package/dist/flow/warp-utils.js +0 -187
- package/dist/flow/warp-utils.js.map +0 -1
- package/dist/snapshot/index.d.ts +0 -2
- package/dist/snapshot/index.d.ts.map +0 -1
- package/dist/snapshot/index.js +0 -2
- package/dist/snapshot/index.js.map +0 -1
- package/dist/snapshot/reasoning-strip.d.ts +0 -22
- package/dist/snapshot/reasoning-strip.d.ts.map +0 -1
- package/dist/snapshot/reasoning-strip.js +0 -58
- package/dist/snapshot/reasoning-strip.js.map +0 -1
- package/dist/snapshot/snapshot.d.ts +0 -77
- package/dist/snapshot/snapshot.d.ts.map +0 -1
- package/dist/snapshot/snapshot.js +0 -1791
- package/dist/snapshot/snapshot.js.map +0 -1
- package/dist/tools/web-tool.d.ts +0 -46
- package/dist/tools/web-tool.d.ts.map +0 -1
- package/dist/tools/web-tool.js.map +0 -1
- /package/dist/{core → flow}/agents.d.ts +0 -0
- /package/dist/{core → flow}/session-registry.d.ts +0 -0
- /package/dist/{core → flow}/session-registry.js +0 -0
package/dist/batch/execute.js
CHANGED
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
import * as fs from "node:fs/promises";
|
|
8
8
|
import * as path from "node:path";
|
|
9
9
|
import { execFile } from "node:child_process";
|
|
10
|
+
import { withFileMutationQueue } from "@earendil-works/pi-coding-agent";
|
|
10
11
|
import { MAX_LINES, MAX_BYTES, SAFE_FULL_READ_LIMIT, TARGETED_READ_LINE_LIMIT, MAX_TOTAL_RESULT_LINES, BATCH_READ_MAX_TOTAL_BYTES, RG_SIGNATURES_MAX_FILES, } from "./constants.js";
|
|
11
12
|
import { normalizeToLF, restoreLineEndings, detectLineEnding, stripBom, applyEdits, levenshtein, validatePath, } from "./fuzzy-edit.js";
|
|
13
|
+
import { applyPatch } from "./apply-patch.js";
|
|
12
14
|
import { buildFileContextMap } from "./symbols.js";
|
|
13
15
|
// ---------------------------------------------------------------------------
|
|
14
16
|
// Read helpers
|
|
@@ -123,9 +125,6 @@ export async function suggestSimilarFiles(inputPath, cwd) {
|
|
|
123
125
|
return [];
|
|
124
126
|
}
|
|
125
127
|
}
|
|
126
|
-
// ---------------------------------------------------------------------------
|
|
127
|
-
// Error hints
|
|
128
|
-
// ---------------------------------------------------------------------------
|
|
129
128
|
function getErrorHint(error) {
|
|
130
129
|
if (error.includes("File not found") || error.includes("file not found"))
|
|
131
130
|
return "Verify the path exists.";
|
|
@@ -147,13 +146,23 @@ function getErrorHint(error) {
|
|
|
147
146
|
return "Ripgrep crashed or was killed. Try narrowing the search path or adding max-count to limit output.";
|
|
148
147
|
return "";
|
|
149
148
|
}
|
|
149
|
+
function isRetryable(error) {
|
|
150
|
+
const transient = [
|
|
151
|
+
"File not found",
|
|
152
|
+
"file not found",
|
|
153
|
+
"ENOENT",
|
|
154
|
+
"no such file",
|
|
155
|
+
"Could not find",
|
|
156
|
+
"occurrences",
|
|
157
|
+
];
|
|
158
|
+
return transient.some((p) => error.includes(p));
|
|
159
|
+
}
|
|
150
160
|
// ---------------------------------------------------------------------------
|
|
151
161
|
// Main execute function
|
|
152
162
|
// ---------------------------------------------------------------------------
|
|
153
|
-
export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
163
|
+
export async function executeOperations(operations, cwd, signal, options = {}, onUpdate) {
|
|
154
164
|
const results = [];
|
|
155
|
-
|
|
156
|
-
const counts = { read: 0, write: 0, edit: 0, delete: 0, rg: 0, error: 0, skipped: 0 };
|
|
165
|
+
const counts = { read: 0, write: 0, edit: 0, delete: 0, rg: 0, patch: 0, bash: 0, error: 0, skipped: 0 };
|
|
157
166
|
const errors = [];
|
|
158
167
|
const truncatedFiles = [];
|
|
159
168
|
const aggregateLimitSkipped = [];
|
|
@@ -161,38 +170,72 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
161
170
|
let aggregateLinesRead = 0;
|
|
162
171
|
let aggregateBytesRead = 0;
|
|
163
172
|
const includeLimitWarnings = options.includeLimitWarnings ?? true;
|
|
164
|
-
|
|
173
|
+
let lastUpdateTime = 0;
|
|
174
|
+
let finalUpdateEmitted = false;
|
|
175
|
+
function emitPartialUpdate() {
|
|
176
|
+
if (!onUpdate)
|
|
177
|
+
return;
|
|
178
|
+
const now = Date.now();
|
|
179
|
+
const isFinal = results.length === operations.length;
|
|
180
|
+
if (!isFinal && now - lastUpdateTime < 100)
|
|
181
|
+
return;
|
|
182
|
+
if (isFinal && finalUpdateEmitted)
|
|
183
|
+
return;
|
|
184
|
+
finalUpdateEmitted = isFinal;
|
|
185
|
+
lastUpdateTime = now;
|
|
186
|
+
const partialSummary = buildSummary(counts, errors, truncatedFiles, aggregateLimitSkipped, aggregateByteLimitSkipped);
|
|
187
|
+
const partialContentText = buildContentText(partialSummary, results);
|
|
188
|
+
onUpdate({
|
|
189
|
+
content: [{ type: "text", text: partialContentText }],
|
|
190
|
+
details: { results: [...results] },
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
for (let i = 0; i < operations.length; i++) {
|
|
194
|
+
const op = operations[i];
|
|
165
195
|
if (signal?.aborted) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
continue;
|
|
196
|
+
for (let j = i; j < operations.length; j++) {
|
|
197
|
+
const r = operations[j];
|
|
198
|
+
results.push({ op: r.o, path: r.p, status: "skipped", error: "Operation aborted.", s: r.s, l: r.l, q: r.q });
|
|
199
|
+
counts.skipped++;
|
|
200
|
+
}
|
|
201
|
+
emitPartialUpdate();
|
|
202
|
+
break;
|
|
174
203
|
}
|
|
175
204
|
try {
|
|
176
|
-
const resolvedPath = await validatePath(op.p, cwd);
|
|
205
|
+
const { path: resolvedPath, warning: pathWarning } = await validatePath(op.p, cwd);
|
|
177
206
|
switch (op.o) {
|
|
178
207
|
case "read": {
|
|
179
208
|
if (aggregateLinesRead >= MAX_TOTAL_RESULT_LINES) {
|
|
209
|
+
const remainingOps = operations.length - i - 1;
|
|
180
210
|
results.push({
|
|
181
211
|
op: "read",
|
|
182
212
|
path: op.p,
|
|
183
213
|
status: "skipped",
|
|
184
|
-
|
|
214
|
+
skipped: true,
|
|
215
|
+
reason: "aggregate_line_limit",
|
|
216
|
+
consumed: { lines: aggregateLinesRead, bytes: aggregateBytesRead },
|
|
217
|
+
remainingOps,
|
|
218
|
+
error: `Skipped: aggregate line limit of ${MAX_TOTAL_RESULT_LINES} reached (${aggregateLinesRead} lines consumed). ${remainingOps} remaining operation(s) will still execute. Use separate batch/batch_read calls.`,
|
|
219
|
+
s: op.s,
|
|
220
|
+
l: op.l,
|
|
185
221
|
});
|
|
186
222
|
counts.skipped++;
|
|
187
223
|
aggregateLimitSkipped.push({ path: op.p });
|
|
188
224
|
break;
|
|
189
225
|
}
|
|
190
226
|
if (aggregateBytesRead >= BATCH_READ_MAX_TOTAL_BYTES) {
|
|
227
|
+
const remainingOps = operations.length - i - 1;
|
|
191
228
|
results.push({
|
|
192
229
|
op: "read",
|
|
193
230
|
path: op.p,
|
|
194
231
|
status: "skipped",
|
|
195
|
-
|
|
232
|
+
skipped: true,
|
|
233
|
+
reason: "aggregate_byte_limit",
|
|
234
|
+
consumed: { lines: aggregateLinesRead, bytes: aggregateBytesRead },
|
|
235
|
+
remainingOps,
|
|
236
|
+
error: `Skipped: aggregate byte limit of ${BATCH_READ_MAX_TOTAL_BYTES} reached (${aggregateBytesRead} bytes consumed). ${remainingOps} remaining operation(s) will still execute. Use separate batch/batch_read calls.`,
|
|
237
|
+
s: op.s,
|
|
238
|
+
l: op.l,
|
|
196
239
|
});
|
|
197
240
|
counts.skipped++;
|
|
198
241
|
aggregateByteLimitSkipped.push({ path: op.p });
|
|
@@ -262,9 +305,11 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
262
305
|
status: "ok",
|
|
263
306
|
content: finalContent,
|
|
264
307
|
totalLines: totalFileLines,
|
|
265
|
-
warning: safetyWarning,
|
|
308
|
+
warning: [pathWarning, safetyWarning].filter(Boolean).join("\n") || undefined,
|
|
266
309
|
truncated: finalTruncated || undefined,
|
|
267
310
|
nextOffset,
|
|
311
|
+
s: op.s,
|
|
312
|
+
l: op.l,
|
|
268
313
|
});
|
|
269
314
|
counts.read++;
|
|
270
315
|
break;
|
|
@@ -273,13 +318,16 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
273
318
|
if (!op.c && op.c !== "") {
|
|
274
319
|
throw new Error("c (content) is required for write operations.");
|
|
275
320
|
}
|
|
276
|
-
await
|
|
277
|
-
|
|
321
|
+
await withFileMutationQueue(resolvedPath, async () => {
|
|
322
|
+
await fs.mkdir(path.dirname(resolvedPath), { recursive: true });
|
|
323
|
+
await fs.writeFile(resolvedPath, op.c, "utf-8");
|
|
324
|
+
});
|
|
278
325
|
results.push({
|
|
279
326
|
op: "write",
|
|
280
327
|
path: op.p,
|
|
281
328
|
status: "ok",
|
|
282
329
|
bytes: Buffer.byteLength(op.c, "utf-8"),
|
|
330
|
+
warning: pathWarning,
|
|
283
331
|
});
|
|
284
332
|
counts.write++;
|
|
285
333
|
break;
|
|
@@ -288,38 +336,45 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
288
336
|
if (!op.e || op.e.length === 0) {
|
|
289
337
|
throw new Error("e (edits) array is required for edit operations.");
|
|
290
338
|
}
|
|
291
|
-
const
|
|
292
|
-
const
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
339
|
+
const edits = op.e;
|
|
340
|
+
const blocksChanged = await withFileMutationQueue(resolvedPath, async () => {
|
|
341
|
+
const rawContent = await fs.readFile(resolvedPath, "utf-8");
|
|
342
|
+
const { bom, text: contentWithoutBom } = stripBom(rawContent);
|
|
343
|
+
const originalEnding = detectLineEnding(contentWithoutBom);
|
|
344
|
+
const normalizedContent = normalizeToLF(contentWithoutBom);
|
|
345
|
+
const { newContent, blocksChanged: changed } = applyEdits(normalizedContent, edits, op.p);
|
|
346
|
+
const finalContent = bom + restoreLineEndings(newContent, originalEnding);
|
|
347
|
+
await fs.writeFile(resolvedPath, finalContent, "utf-8");
|
|
348
|
+
return changed;
|
|
349
|
+
});
|
|
298
350
|
results.push({
|
|
299
351
|
op: "edit",
|
|
300
352
|
path: op.p,
|
|
301
353
|
status: "ok",
|
|
302
354
|
blocksChanged,
|
|
355
|
+
warning: pathWarning,
|
|
303
356
|
});
|
|
304
357
|
counts.edit++;
|
|
305
358
|
break;
|
|
306
359
|
}
|
|
307
360
|
case "delete": {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
catch (err) {
|
|
313
|
-
if (err.code === "ENOENT") {
|
|
314
|
-
throw new Error(`File not found: ${op.p}`);
|
|
361
|
+
await withFileMutationQueue(resolvedPath, async () => {
|
|
362
|
+
let stat;
|
|
363
|
+
try {
|
|
364
|
+
stat = await fs.lstat(resolvedPath);
|
|
315
365
|
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
366
|
+
catch (err) {
|
|
367
|
+
if (err.code === "ENOENT") {
|
|
368
|
+
throw new Error(`File not found: ${op.p}`);
|
|
369
|
+
}
|
|
370
|
+
throw err;
|
|
371
|
+
}
|
|
372
|
+
if (stat.isDirectory()) {
|
|
373
|
+
throw new Error(`Cannot delete directory: ${op.p}. Use a recursive removal tool or delete files individually.`);
|
|
374
|
+
}
|
|
375
|
+
await fs.unlink(resolvedPath);
|
|
376
|
+
});
|
|
377
|
+
results.push({ op: "delete", path: op.p, status: "ok", warning: pathWarning });
|
|
323
378
|
counts.delete++;
|
|
324
379
|
break;
|
|
325
380
|
}
|
|
@@ -330,7 +385,7 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
330
385
|
}
|
|
331
386
|
const searchPath = (rgOp.p.startsWith("~") || path.isAbsolute(rgOp.p)) ? resolvedPath : rgOp.p;
|
|
332
387
|
const args = buildRgArgs({ ...rgOp, p: searchPath });
|
|
333
|
-
const matches = await execRg(args, cwd);
|
|
388
|
+
const matches = await execRg(args, cwd, signal);
|
|
334
389
|
const content = matches.join("\n");
|
|
335
390
|
// Try to attach enclosing signatures (only when we have line numbers)
|
|
336
391
|
let enclosingSignatures;
|
|
@@ -345,18 +400,46 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
345
400
|
content,
|
|
346
401
|
totalLines: matches.length,
|
|
347
402
|
enclosingSignatures,
|
|
403
|
+
warning: pathWarning,
|
|
404
|
+
q: rgOp.q,
|
|
348
405
|
});
|
|
349
406
|
counts.rg++;
|
|
350
407
|
break;
|
|
351
408
|
}
|
|
409
|
+
case "patch": {
|
|
410
|
+
if (!op.c && op.c !== "") {
|
|
411
|
+
throw new Error("c (patch text) is required for patch operations.");
|
|
412
|
+
}
|
|
413
|
+
const { affected, exact } = await applyPatch(op.c, cwd);
|
|
414
|
+
results.push({
|
|
415
|
+
op: "patch",
|
|
416
|
+
path: op.p,
|
|
417
|
+
status: "ok",
|
|
418
|
+
affected,
|
|
419
|
+
exact,
|
|
420
|
+
warning: pathWarning,
|
|
421
|
+
});
|
|
422
|
+
counts.patch++;
|
|
423
|
+
break;
|
|
424
|
+
}
|
|
352
425
|
default:
|
|
353
426
|
throw new Error(`Unknown operation type: ${op.o}`);
|
|
354
427
|
}
|
|
355
428
|
}
|
|
356
429
|
catch (err) {
|
|
357
|
-
failed = true;
|
|
358
|
-
counts.error++;
|
|
359
430
|
const message = err instanceof Error ? err.message : String(err);
|
|
431
|
+
// Treat mid-flight rg abort as skipped rather than error
|
|
432
|
+
if (message === "Aborted" && signal?.aborted) {
|
|
433
|
+
counts.skipped++;
|
|
434
|
+
results.push({
|
|
435
|
+
op: op.o,
|
|
436
|
+
path: op.p,
|
|
437
|
+
status: "skipped",
|
|
438
|
+
error: "Operation aborted.",
|
|
439
|
+
});
|
|
440
|
+
continue;
|
|
441
|
+
}
|
|
442
|
+
counts.error++;
|
|
360
443
|
// Enrich file-not-found errors with fuzzy filename suggestions
|
|
361
444
|
let hint = getErrorHint(message);
|
|
362
445
|
if (message.includes("File not found") ||
|
|
@@ -368,6 +451,8 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
368
451
|
hint += ` Did you mean: ${suggestions.join(", ")}?`;
|
|
369
452
|
}
|
|
370
453
|
}
|
|
454
|
+
const retryable = isRetryable(message);
|
|
455
|
+
const suggestedFix = hint || undefined;
|
|
371
456
|
errors.push({ path: op.p, op: op.o, message, hint });
|
|
372
457
|
results.push({
|
|
373
458
|
op: op.o,
|
|
@@ -375,9 +460,16 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
375
460
|
status: "error",
|
|
376
461
|
error: message,
|
|
377
462
|
hint,
|
|
463
|
+
retryable,
|
|
464
|
+
suggestedFix,
|
|
465
|
+
s: op.s,
|
|
466
|
+
l: op.l,
|
|
467
|
+
q: op.q,
|
|
378
468
|
});
|
|
379
469
|
}
|
|
470
|
+
emitPartialUpdate();
|
|
380
471
|
}
|
|
472
|
+
emitPartialUpdate();
|
|
381
473
|
// Build the enhanced summary and content text
|
|
382
474
|
const summary = buildSummary(counts, errors, truncatedFiles, aggregateLimitSkipped, aggregateByteLimitSkipped);
|
|
383
475
|
const contentText = buildContentText(summary, results);
|
|
@@ -387,37 +479,71 @@ export async function executeOperations(operations, cwd, signal, options = {}) {
|
|
|
387
479
|
// Summary / content rendering
|
|
388
480
|
// ---------------------------------------------------------------------------
|
|
389
481
|
function buildSummary(counts, errors, truncatedFiles, aggregateLimitSkipped = [], aggregateByteLimitSkipped = []) {
|
|
390
|
-
const totalSuccess = counts.read + counts.write + counts.edit + counts.delete + counts.rg;
|
|
391
|
-
const totalOps = totalSuccess + counts.error + counts.skipped;
|
|
392
482
|
const parts = [];
|
|
393
|
-
// Build
|
|
483
|
+
// Build success parts from counts
|
|
394
484
|
const successParts = [];
|
|
395
485
|
if (counts.read > 0)
|
|
396
|
-
successParts.push(`${counts.read} read
|
|
486
|
+
successParts.push(`${counts.read} read`);
|
|
397
487
|
if (counts.write > 0)
|
|
398
|
-
successParts.push(`${counts.write} write
|
|
488
|
+
successParts.push(`${counts.write} write`);
|
|
399
489
|
if (counts.edit > 0)
|
|
400
|
-
successParts.push(`${counts.edit} edit
|
|
490
|
+
successParts.push(`${counts.edit} edit`);
|
|
401
491
|
if (counts.delete > 0)
|
|
402
|
-
successParts.push(`${counts.delete} delete
|
|
492
|
+
successParts.push(`${counts.delete} delete`);
|
|
403
493
|
if (counts.rg > 0)
|
|
404
|
-
successParts.push(`${counts.rg} rg
|
|
405
|
-
if (counts.
|
|
406
|
-
|
|
407
|
-
|
|
494
|
+
successParts.push(`${counts.rg} rg`);
|
|
495
|
+
if (counts.patch > 0)
|
|
496
|
+
successParts.push(`${counts.patch} patch`);
|
|
497
|
+
if (counts.bash > 0)
|
|
498
|
+
successParts.push(`${counts.bash} bash`);
|
|
499
|
+
// Build failure parts from errors
|
|
500
|
+
const failedCounts = {};
|
|
501
|
+
for (const err of errors) {
|
|
502
|
+
failedCounts[err.op] = (failedCounts[err.op] || 0) + 1;
|
|
503
|
+
}
|
|
504
|
+
const failedParts = [];
|
|
505
|
+
if (failedCounts.read > 0)
|
|
506
|
+
failedParts.push(`${failedCounts.read} read`);
|
|
507
|
+
if (failedCounts.write > 0)
|
|
508
|
+
failedParts.push(`${failedCounts.write} write`);
|
|
509
|
+
if (failedCounts.edit > 0)
|
|
510
|
+
failedParts.push(`${failedCounts.edit} edit`);
|
|
511
|
+
if (failedCounts.delete > 0)
|
|
512
|
+
failedParts.push(`${failedCounts.delete} delete`);
|
|
513
|
+
if (failedCounts.rg > 0)
|
|
514
|
+
failedParts.push(`${failedCounts.rg} rg`);
|
|
515
|
+
if (failedCounts.patch > 0)
|
|
516
|
+
failedParts.push(`${failedCounts.patch} patch`);
|
|
517
|
+
if (failedCounts.bash > 0)
|
|
518
|
+
failedParts.push(`${failedCounts.bash} bash`);
|
|
519
|
+
const hasSuccess = successParts.length > 0;
|
|
520
|
+
const hasFailure = failedParts.length > 0;
|
|
521
|
+
const hasSkipped = counts.skipped > 0;
|
|
522
|
+
if (!hasFailure) {
|
|
523
|
+
// All success (or skipped)
|
|
524
|
+
const summaryParts = [...successParts];
|
|
525
|
+
if (hasSkipped)
|
|
526
|
+
summaryParts.push(`${counts.skipped} skipped`);
|
|
527
|
+
parts.push(`✔ ${summaryParts.join(", ")}`);
|
|
408
528
|
}
|
|
409
529
|
else {
|
|
410
|
-
// Mixed
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
530
|
+
// Mixed or all failed
|
|
531
|
+
if (hasSuccess) {
|
|
532
|
+
parts.push(`✔ ${successParts.join(", ")} | ✗ ${failedParts.join(", ")}`);
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
parts.push(`✗ ${failedParts.join(", ")}`);
|
|
414
536
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
const hintSuffix = hint ? ` — ${hint}` : "";
|
|
418
|
-
parts.push(` ${err.op} ${err.path}: ${err.message}${hintSuffix}`);
|
|
537
|
+
if (hasSkipped) {
|
|
538
|
+
parts.push(`${counts.skipped} skipped`);
|
|
419
539
|
}
|
|
420
540
|
}
|
|
541
|
+
// Error details
|
|
542
|
+
for (const err of errors) {
|
|
543
|
+
const hint = err.hint ?? "";
|
|
544
|
+
const hintSuffix = hint ? ` — ${hint}` : "";
|
|
545
|
+
parts.push(` ${err.op} ${err.path}: ${err.message}${hintSuffix}`);
|
|
546
|
+
}
|
|
421
547
|
// Truncation warnings
|
|
422
548
|
for (const tf of truncatedFiles) {
|
|
423
549
|
if (tf.nextOffset) {
|
|
@@ -492,6 +618,19 @@ function buildContentText(summary, results) {
|
|
|
492
618
|
else if (r.status === "error") {
|
|
493
619
|
sections.push(`\n--- ${r.op}: ${r.path} ---\nError: ${r.error}`);
|
|
494
620
|
}
|
|
621
|
+
else if (r.op === "patch" && r.status === "ok") {
|
|
622
|
+
const parts = [];
|
|
623
|
+
if (r.affected?.added.length)
|
|
624
|
+
parts.push(`A ${r.affected.added.join(', ')}`);
|
|
625
|
+
if (r.affected?.modified.length)
|
|
626
|
+
parts.push(`M ${r.affected.modified.join(', ')}`);
|
|
627
|
+
if (r.affected?.deleted.length)
|
|
628
|
+
parts.push(`D ${r.affected.deleted.join(', ')}`);
|
|
629
|
+
sections.push(`\n--- patch: ${r.path} ---\n${parts.join('\n')}`);
|
|
630
|
+
}
|
|
631
|
+
else if (r.status === "skipped") {
|
|
632
|
+
sections.push(`\n--- ${r.op}: ${r.path} ---\n${r.error ?? "Skipped"}`);
|
|
633
|
+
}
|
|
495
634
|
}
|
|
496
635
|
return sections.join("");
|
|
497
636
|
}
|
|
@@ -501,7 +640,7 @@ function buildContentText(summary, results) {
|
|
|
501
640
|
function buildRgArgs(op) {
|
|
502
641
|
const args = [];
|
|
503
642
|
args.push("-n");
|
|
504
|
-
if (op.l === true
|
|
643
|
+
if (op.l === true)
|
|
505
644
|
args.push("-l");
|
|
506
645
|
if (op.i === true)
|
|
507
646
|
args.push("-i");
|
|
@@ -613,9 +752,9 @@ function groupRgMatchesByFile(content, sigMap) {
|
|
|
613
752
|
}
|
|
614
753
|
return out.join("\n");
|
|
615
754
|
}
|
|
616
|
-
function execRg(args, cwd) {
|
|
755
|
+
function execRg(args, cwd, signal) {
|
|
617
756
|
return new Promise((resolve, reject) => {
|
|
618
|
-
execFile("rg", args, { cwd, maxBuffer: 10 * 1024 * 1024 }, (err, stdout, stderr) => {
|
|
757
|
+
const child = execFile("rg", args, { cwd, maxBuffer: 10 * 1024 * 1024 }, (err, stdout, stderr) => {
|
|
619
758
|
if (err) {
|
|
620
759
|
// ripgrep exits with code 1 when no matches are found
|
|
621
760
|
if (err.code === 1) {
|
|
@@ -639,6 +778,22 @@ function execRg(args, cwd) {
|
|
|
639
778
|
const lines = stdout.split("\n").filter((line) => line.length > 0);
|
|
640
779
|
resolve(lines);
|
|
641
780
|
});
|
|
781
|
+
if (signal) {
|
|
782
|
+
const onAbort = () => {
|
|
783
|
+
try {
|
|
784
|
+
child.kill("SIGTERM");
|
|
785
|
+
}
|
|
786
|
+
catch { /* already dead */ }
|
|
787
|
+
reject(new Error("Aborted"));
|
|
788
|
+
};
|
|
789
|
+
if (signal.aborted) {
|
|
790
|
+
onAbort();
|
|
791
|
+
}
|
|
792
|
+
else {
|
|
793
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
794
|
+
child.on("close", () => signal.removeEventListener("abort", onAbort));
|
|
795
|
+
}
|
|
796
|
+
}
|
|
642
797
|
});
|
|
643
798
|
}
|
|
644
799
|
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/batch/execute.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/batch/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,9 @@ export declare function applyEdits(content: string, edits: EditReplacement[], fi
|
|
|
18
18
|
};
|
|
19
19
|
export declare function expandTilde(inputPath: string): string;
|
|
20
20
|
export declare function isWithinDirectory(child: string, parent: string): boolean;
|
|
21
|
-
export declare function validatePath(inputPath: string, cwd: string): Promise<
|
|
21
|
+
export declare function validatePath(inputPath: string, cwd: string): Promise<{
|
|
22
|
+
path: string;
|
|
23
|
+
warning?: string;
|
|
24
|
+
}>;
|
|
22
25
|
export declare function levenshtein(a: string, b: string): number;
|
|
23
26
|
//# sourceMappingURL=fuzzy-edit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuzzy-edit.d.ts","sourceRoot":"","sources":["../../src/batch/fuzzy-edit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMtD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAIvE;AA+HD,wBAAgB,UAAU,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,eAAe,EAAE,EACxB,QAAQ,EAAE,MAAM,GACd;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAyG/C;AAMD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAYxE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"fuzzy-edit.d.ts","sourceRoot":"","sources":["../../src/batch/fuzzy-edit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMtD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAIvE;AA+HD,wBAAgB,UAAU,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,eAAe,EAAE,EACxB,QAAQ,EAAE,MAAM,GACd;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAyG/C;AAMD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAYxE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ9G;AAMD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAexD"}
|
package/dist/batch/fuzzy-edit.js
CHANGED
|
@@ -230,8 +230,13 @@ export function isWithinDirectory(child, parent) {
|
|
|
230
230
|
return child.startsWith(parent + path.sep);
|
|
231
231
|
}
|
|
232
232
|
export async function validatePath(inputPath, cwd) {
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
let expandedPath = expandTilde(inputPath);
|
|
234
|
+
if (expandedPath.startsWith("@")) {
|
|
235
|
+
expandedPath = expandedPath.slice(1);
|
|
236
|
+
}
|
|
237
|
+
const resolvedPath = path.resolve(cwd, expandedPath);
|
|
238
|
+
const warning = isWithinDirectory(resolvedPath, cwd) ? undefined : "Path resolves outside cwd — verify this is intentional";
|
|
239
|
+
return { path: resolvedPath, warning };
|
|
235
240
|
}
|
|
236
241
|
// ---------------------------------------------------------------------------
|
|
237
242
|
// Levenshtein distance (used by execute for suggestions)
|