llm-agent-cli 2.0.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 (89) hide show
  1. package/dist/agent.d.ts +112 -0
  2. package/dist/agent.d.ts.map +1 -0
  3. package/dist/agent.js +730 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/audit.d.ts +24 -0
  6. package/dist/audit.d.ts.map +1 -0
  7. package/dist/audit.js +94 -0
  8. package/dist/audit.js.map +1 -0
  9. package/dist/auth.d.ts +36 -0
  10. package/dist/auth.d.ts.map +1 -0
  11. package/dist/auth.js +236 -0
  12. package/dist/auth.js.map +1 -0
  13. package/dist/config.d.ts +35 -0
  14. package/dist/config.d.ts.map +1 -0
  15. package/dist/config.js +92 -0
  16. package/dist/config.js.map +1 -0
  17. package/dist/context.d.ts +48 -0
  18. package/dist/context.d.ts.map +1 -0
  19. package/dist/context.js +94 -0
  20. package/dist/context.js.map +1 -0
  21. package/dist/diff.d.ts +27 -0
  22. package/dist/diff.d.ts.map +1 -0
  23. package/dist/diff.js +174 -0
  24. package/dist/diff.js.map +1 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +905 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/input.d.ts +13 -0
  30. package/dist/input.d.ts.map +1 -0
  31. package/dist/input.js +88 -0
  32. package/dist/input.js.map +1 -0
  33. package/dist/memory.d.ts +32 -0
  34. package/dist/memory.d.ts.map +1 -0
  35. package/dist/memory.js +103 -0
  36. package/dist/memory.js.map +1 -0
  37. package/dist/preprocessor.d.ts +12 -0
  38. package/dist/preprocessor.d.ts.map +1 -0
  39. package/dist/preprocessor.js +138 -0
  40. package/dist/preprocessor.js.map +1 -0
  41. package/dist/project.d.ts +10 -0
  42. package/dist/project.d.ts.map +1 -0
  43. package/dist/project.js +145 -0
  44. package/dist/project.js.map +1 -0
  45. package/dist/renderer.d.ts +2 -0
  46. package/dist/renderer.d.ts.map +1 -0
  47. package/dist/renderer.js +31 -0
  48. package/dist/renderer.js.map +1 -0
  49. package/dist/session.d.ts +36 -0
  50. package/dist/session.d.ts.map +1 -0
  51. package/dist/session.js +78 -0
  52. package/dist/session.js.map +1 -0
  53. package/dist/tools/filesystem.d.ts +138 -0
  54. package/dist/tools/filesystem.d.ts.map +1 -0
  55. package/dist/tools/filesystem.js +539 -0
  56. package/dist/tools/filesystem.js.map +1 -0
  57. package/dist/tools/git.d.ts +60 -0
  58. package/dist/tools/git.d.ts.map +1 -0
  59. package/dist/tools/git.js +188 -0
  60. package/dist/tools/git.js.map +1 -0
  61. package/dist/tools/index.d.ts +386 -0
  62. package/dist/tools/index.d.ts.map +1 -0
  63. package/dist/tools/index.js +142 -0
  64. package/dist/tools/index.js.map +1 -0
  65. package/dist/tools/linter.d.ts +44 -0
  66. package/dist/tools/linter.d.ts.map +1 -0
  67. package/dist/tools/linter.js +426 -0
  68. package/dist/tools/linter.js.map +1 -0
  69. package/dist/tools/network.d.ts +17 -0
  70. package/dist/tools/network.d.ts.map +1 -0
  71. package/dist/tools/network.js +121 -0
  72. package/dist/tools/network.js.map +1 -0
  73. package/dist/tools/search.d.ts +33 -0
  74. package/dist/tools/search.d.ts.map +1 -0
  75. package/dist/tools/search.js +263 -0
  76. package/dist/tools/search.js.map +1 -0
  77. package/dist/tools/security.d.ts +18 -0
  78. package/dist/tools/security.d.ts.map +1 -0
  79. package/dist/tools/security.js +242 -0
  80. package/dist/tools/security.js.map +1 -0
  81. package/dist/tools/shell.d.ts +14 -0
  82. package/dist/tools/shell.d.ts.map +1 -0
  83. package/dist/tools/shell.js +68 -0
  84. package/dist/tools/shell.js.map +1 -0
  85. package/dist/tools/types.d.ts +5 -0
  86. package/dist/tools/types.d.ts.map +1 -0
  87. package/dist/tools/types.js +2 -0
  88. package/dist/tools/types.js.map +1 -0
  89. package/package.json +59 -0
@@ -0,0 +1,539 @@
1
+ import crypto from "crypto";
2
+ import fs from "fs/promises";
3
+ import { createReadStream } from "fs";
4
+ import path from "path";
5
+ import readline from "readline";
6
+ import { z } from "zod";
7
+ import { enforceWritePolicy, getRuntimeConfig, resolveProtectedPath, } from "./security.js";
8
+ import { computeUnifiedDiff, colorizeUnifiedDiff, countDiffChanges, } from "../diff.js";
9
+ export const ReadFileSchema = z
10
+ .object({
11
+ absolute_path: z.string().describe("Absolute path to the file to read"),
12
+ start_line: z
13
+ .number()
14
+ .int()
15
+ .positive()
16
+ .optional()
17
+ .describe("Optional 1-based starting line for partial reads"),
18
+ end_line: z
19
+ .number()
20
+ .int()
21
+ .positive()
22
+ .optional()
23
+ .describe("Optional 1-based ending line for partial reads"),
24
+ })
25
+ .refine((data) => !(data.start_line !== undefined &&
26
+ data.end_line !== undefined &&
27
+ data.start_line > data.end_line), {
28
+ message: "start_line must be less than or equal to end_line",
29
+ path: ["start_line"],
30
+ });
31
+ export const WriteToFileSchema = z.object({
32
+ absolute_path: z.string().describe("Absolute path to the file to write"),
33
+ content: z.string().describe("Content to write to the file"),
34
+ overwrite: z
35
+ .boolean()
36
+ .default(true)
37
+ .describe("Whether to overwrite an existing file"),
38
+ });
39
+ export const ApplyDiffSchema = z.object({
40
+ absolute_path: z.string().describe("Absolute path to the file to edit"),
41
+ search_string: z.string().describe("Exact text block to search for"),
42
+ replace_string: z.string().describe("Replacement text block"),
43
+ });
44
+ export const ListDirectorySchema = z.object({
45
+ path: z
46
+ .string()
47
+ .describe("Path to the directory to list (absolute or relative to cwd)"),
48
+ });
49
+ export const CreateDirectorySchema = z.object({
50
+ path: z
51
+ .string()
52
+ .describe("Absolute or relative path to the directory to create"),
53
+ recursive: z
54
+ .boolean()
55
+ .default(true)
56
+ .describe("Create parent directories when needed"),
57
+ });
58
+ export const DeleteFileSchema = z.object({
59
+ path: z.string().describe("Absolute or relative path to the file to delete"),
60
+ recursive: z
61
+ .boolean()
62
+ .default(false)
63
+ .describe("Allow recursive deletion if path is a directory"),
64
+ });
65
+ export const MoveFileSchema = z.object({
66
+ source_path: z.string().describe("Absolute or relative source path"),
67
+ destination_path: z.string().describe("Absolute or relative destination path"),
68
+ });
69
+ export const GetFileInfoSchema = z.object({
70
+ path: z.string().describe("Absolute or relative path to inspect"),
71
+ });
72
+ export const ShowDiffSchema = z.object({
73
+ absolute_path: z.string().describe("Absolute path to the file"),
74
+ new_content: z
75
+ .string()
76
+ .describe("The new/proposed content to diff against the file on disk"),
77
+ context_lines: z
78
+ .number()
79
+ .int()
80
+ .min(0)
81
+ .max(10)
82
+ .default(3)
83
+ .describe("Number of context lines around each change (default 3)"),
84
+ });
85
+ export const SearchReplaceAllSchema = z.object({
86
+ directory: z
87
+ .string()
88
+ .describe("Absolute path to the directory to search in"),
89
+ search_pattern: z
90
+ .string()
91
+ .describe("Regular expression or literal string to search for"),
92
+ replace_string: z
93
+ .string()
94
+ .describe("Replacement string (supports $1, $2 capture group references)"),
95
+ glob: z
96
+ .string()
97
+ .optional()
98
+ .describe("Glob pattern to filter files (e.g. '**/*.ts'). Defaults to all text files."),
99
+ regex: z
100
+ .boolean()
101
+ .default(false)
102
+ .describe("Treat search_pattern as a regular expression"),
103
+ dry_run: z
104
+ .boolean()
105
+ .default(true)
106
+ .describe("When true (default), show what would change without writing files"),
107
+ });
108
+ async function readLineRange(absPath, startLine, endLine) {
109
+ const stream = createReadStream(absPath, { encoding: "utf-8" });
110
+ const reader = readline.createInterface({
111
+ input: stream,
112
+ crlfDelay: Infinity,
113
+ });
114
+ const lines = [];
115
+ let current = 0;
116
+ try {
117
+ for await (const line of reader) {
118
+ current += 1;
119
+ if (current < startLine)
120
+ continue;
121
+ if (current > endLine)
122
+ break;
123
+ lines.push(line);
124
+ }
125
+ }
126
+ finally {
127
+ reader.close();
128
+ stream.close();
129
+ }
130
+ return lines.join("\n");
131
+ }
132
+ /**
133
+ * Write `content` to `absPath` atomically using a temp-file-then-rename
134
+ * pattern. On POSIX, rename(2) is atomic; on Windows it is near-atomic via
135
+ * MoveFileExW with MOVEFILE_REPLACE_EXISTING. A crash between the writeFile
136
+ * and rename leaves only the temp file, never a half-written target.
137
+ */
138
+ async function atomicWrite(absPath, content) {
139
+ const tmpPath = `${absPath}.tmp.${crypto.randomBytes(4).toString("hex")}`;
140
+ try {
141
+ await fs.writeFile(tmpPath, content, "utf-8");
142
+ await fs.rename(tmpPath, absPath);
143
+ }
144
+ catch (err) {
145
+ await fs.rm(tmpPath, { force: true }).catch(() => undefined);
146
+ throw err;
147
+ }
148
+ }
149
+ function countOccurrences(text, needle) {
150
+ if (!needle)
151
+ return 0;
152
+ let count = 0;
153
+ let start = 0;
154
+ while (true) {
155
+ const index = text.indexOf(needle, start);
156
+ if (index === -1)
157
+ break;
158
+ count += 1;
159
+ start = index + needle.length;
160
+ }
161
+ return count;
162
+ }
163
+ export async function read_file(args) {
164
+ const parsed = ReadFileSchema.parse(args);
165
+ const absPath = await resolveProtectedPath(parsed.absolute_path);
166
+ try {
167
+ const stat = await fs.stat(absPath);
168
+ if (!stat.isFile()) {
169
+ return `Error: path is not a regular file: ${absPath}`;
170
+ }
171
+ const config = getRuntimeConfig();
172
+ const hasRange = parsed.start_line !== undefined || parsed.end_line !== undefined;
173
+ if (!hasRange && stat.size > config.maxReadBytes) {
174
+ return [
175
+ `Error: file is too large to read in one call (${stat.size} bytes, limit ${config.maxReadBytes} bytes).`,
176
+ "Use read_file with start_line and end_line to read a smaller range.",
177
+ ].join("\n");
178
+ }
179
+ if (hasRange) {
180
+ const start = parsed.start_line ?? 1;
181
+ const end = parsed.end_line ?? start + 499;
182
+ const content = await readLineRange(absPath, start, end);
183
+ return [`[Showing ${absPath} lines ${start}-${end}]`, content].join("\n");
184
+ }
185
+ return await fs.readFile(absPath, "utf-8");
186
+ }
187
+ catch (err) {
188
+ const msg = err instanceof Error ? err.message : String(err);
189
+ return `Error reading file: ${msg}`;
190
+ }
191
+ }
192
+ export async function write_to_file(args) {
193
+ const parsed = WriteToFileSchema.parse(args);
194
+ const absPath = await resolveProtectedPath(parsed.absolute_path);
195
+ try {
196
+ if (!parsed.overwrite) {
197
+ try {
198
+ await fs.access(absPath);
199
+ return `File already exists at ${absPath} and overwrite=false. Skipped.`;
200
+ }
201
+ catch {
202
+ // Continue, file does not exist.
203
+ }
204
+ }
205
+ // Compute and emit diff when overwriting an existing file
206
+ let diffSummary = "";
207
+ try {
208
+ const existing = await fs.readFile(absPath, "utf-8");
209
+ if (existing !== parsed.content) {
210
+ const diff = computeUnifiedDiff(existing, parsed.content, {
211
+ oldLabel: absPath,
212
+ newLabel: "(new content)",
213
+ });
214
+ if (diff) {
215
+ const { added, removed } = countDiffChanges(diff);
216
+ diffSummary = `\n[diff: +${added} / -${removed} lines]\n${colorizeUnifiedDiff(diff)}`;
217
+ }
218
+ }
219
+ }
220
+ catch {
221
+ // New file — no diff to show
222
+ }
223
+ await enforceWritePolicy(`write file ${absPath}`);
224
+ await fs.mkdir(path.dirname(absPath), { recursive: true });
225
+ await atomicWrite(absPath, parsed.content);
226
+ return `Successfully wrote ${parsed.content.length} characters to ${absPath}${diffSummary}`;
227
+ }
228
+ catch (err) {
229
+ const msg = err instanceof Error ? err.message : String(err);
230
+ return `Error writing file: ${msg}`;
231
+ }
232
+ }
233
+ /**
234
+ * Normalize trailing whitespace on each line for fuzzy matching.
235
+ * Leaves leading whitespace (indentation) intact.
236
+ */
237
+ function normalizeTrailingWs(text) {
238
+ return text
239
+ .split("\n")
240
+ .map((l) => l.trimEnd())
241
+ .join("\n");
242
+ }
243
+ /**
244
+ * Try to find search_string in content using a series of strategies:
245
+ * 1. Exact match
246
+ * 2. Trailing-whitespace-normalized match
247
+ * Returns the exact substring to replace in `content`, or null if not found.
248
+ */
249
+ function fuzzyFind(content, searchString) {
250
+ // Strategy 1: exact
251
+ const exactCount = countOccurrences(content, searchString);
252
+ if (exactCount === 1)
253
+ return { found: searchString, count: 1 };
254
+ if (exactCount > 1)
255
+ return { found: searchString, count: exactCount };
256
+ // Strategy 2: normalize trailing whitespace in both and locate the region
257
+ const normContent = normalizeTrailingWs(content);
258
+ const normSearch = normalizeTrailingWs(searchString);
259
+ const normCount = countOccurrences(normContent, normSearch);
260
+ if (normCount === 1) {
261
+ // Find the exact span in original content that corresponds
262
+ // by locating the char index in normContent and mapping back
263
+ const idx = normContent.indexOf(normSearch);
264
+ // The normalized and original share identical length (trimEnd preserves
265
+ // leading chars; trailing chars only removed — offsets may shift slightly,
266
+ // but we can re-scan the original from around that position)
267
+ const approxOriginal = content.slice(idx, idx + searchString.length + 20);
268
+ // Find the best match by sliding window comparison
269
+ for (let start = Math.max(0, idx - 5); start <= idx + 5; start++) {
270
+ const candidate = content.slice(start, start + searchString.length);
271
+ if (normalizeTrailingWs(candidate) === normSearch) {
272
+ return { found: candidate, count: 1 };
273
+ }
274
+ }
275
+ // Fallback: return a slightly wider search to let replace handle it
276
+ const candidate = content.slice(idx, idx + normSearch.length);
277
+ if (normalizeTrailingWs(candidate) === normSearch) {
278
+ return { found: candidate, count: 1 };
279
+ }
280
+ void approxOriginal; // suppress unused warning
281
+ }
282
+ if (normCount > 1)
283
+ return { found: searchString, count: normCount };
284
+ return null;
285
+ }
286
+ export async function apply_diff(args) {
287
+ const parsed = ApplyDiffSchema.parse(args);
288
+ const absPath = await resolveProtectedPath(parsed.absolute_path);
289
+ if (!parsed.search_string.length) {
290
+ return "Error applying diff: search_string must not be empty";
291
+ }
292
+ try {
293
+ const content = await fs.readFile(absPath, "utf-8");
294
+ const found = fuzzyFind(content, parsed.search_string);
295
+ if (!found) {
296
+ // Provide a helpful hint about what the file contains around expected location
297
+ return ("Error applying diff: search_string was not found (tried exact and " +
298
+ "trailing-whitespace-normalized match). Verify the content with read_file first.");
299
+ }
300
+ if (found.count > 1) {
301
+ return `Error applying diff: search_string matched ${found.count} times; expected exactly 1 match. Add more context to make it unique.`;
302
+ }
303
+ await enforceWritePolicy(`apply diff to ${absPath}`);
304
+ const updated = content.replace(found.found, parsed.replace_string);
305
+ // Compute and display diff
306
+ const diff = computeUnifiedDiff(content, updated, {
307
+ oldLabel: absPath,
308
+ newLabel: "(after diff)",
309
+ });
310
+ const { added, removed } = diff ? countDiffChanges(diff) : { added: 0, removed: 0 };
311
+ await atomicWrite(absPath, updated);
312
+ const diffDisplay = diff
313
+ ? `\n[diff: +${added} / -${removed} lines]\n${colorizeUnifiedDiff(diff)}`
314
+ : "";
315
+ return `Applied diff to ${absPath} (replaced 1 match).${diffDisplay}`;
316
+ }
317
+ catch (err) {
318
+ const msg = err instanceof Error ? err.message : String(err);
319
+ return `Error applying diff: ${msg}`;
320
+ }
321
+ }
322
+ export async function list_directory(args) {
323
+ const parsed = ListDirectorySchema.parse(args);
324
+ const absPath = await resolveProtectedPath(parsed.path);
325
+ try {
326
+ const entries = await fs.readdir(absPath, { withFileTypes: true });
327
+ if (entries.length === 0) {
328
+ return "(empty directory)";
329
+ }
330
+ const lines = entries
331
+ .sort((a, b) => {
332
+ if (a.isDirectory() && !b.isDirectory())
333
+ return -1;
334
+ if (!a.isDirectory() && b.isDirectory())
335
+ return 1;
336
+ return a.name.localeCompare(b.name);
337
+ })
338
+ .map((entry) => {
339
+ const prefix = entry.isDirectory() ? "[DIR]" : "[FILE]";
340
+ return `${prefix} ${entry.name}`;
341
+ });
342
+ return lines.join("\n");
343
+ }
344
+ catch (err) {
345
+ const msg = err instanceof Error ? err.message : String(err);
346
+ return `Error listing directory: ${msg}`;
347
+ }
348
+ }
349
+ export async function create_directory(args) {
350
+ const parsed = CreateDirectorySchema.parse(args);
351
+ const absPath = await resolveProtectedPath(parsed.path);
352
+ try {
353
+ await enforceWritePolicy(`create directory ${absPath}`);
354
+ await fs.mkdir(absPath, { recursive: parsed.recursive });
355
+ return `Created directory: ${absPath}`;
356
+ }
357
+ catch (err) {
358
+ const msg = err instanceof Error ? err.message : String(err);
359
+ return `Error creating directory: ${msg}`;
360
+ }
361
+ }
362
+ export async function delete_file(args) {
363
+ const parsed = DeleteFileSchema.parse(args);
364
+ const absPath = await resolveProtectedPath(parsed.path);
365
+ try {
366
+ const stat = await fs.stat(absPath);
367
+ if (stat.isDirectory() && !parsed.recursive) {
368
+ return "Error deleting file: target is a directory. Set recursive=true to remove directories.";
369
+ }
370
+ await enforceWritePolicy(`delete ${absPath}`);
371
+ await fs.rm(absPath, { recursive: parsed.recursive, force: false });
372
+ return `Deleted: ${absPath}`;
373
+ }
374
+ catch (err) {
375
+ const msg = err instanceof Error ? err.message : String(err);
376
+ return `Error deleting file: ${msg}`;
377
+ }
378
+ }
379
+ export async function move_file(args) {
380
+ const parsed = MoveFileSchema.parse(args);
381
+ const sourcePath = await resolveProtectedPath(parsed.source_path);
382
+ const destinationPath = await resolveProtectedPath(parsed.destination_path);
383
+ try {
384
+ await enforceWritePolicy(`move ${sourcePath} -> ${destinationPath}`);
385
+ await fs.mkdir(path.dirname(destinationPath), { recursive: true });
386
+ await fs.rename(sourcePath, destinationPath);
387
+ return `Moved ${sourcePath} -> ${destinationPath}`;
388
+ }
389
+ catch (err) {
390
+ const msg = err instanceof Error ? err.message : String(err);
391
+ return `Error moving file: ${msg}`;
392
+ }
393
+ }
394
+ export async function show_diff(args) {
395
+ const parsed = ShowDiffSchema.parse(args);
396
+ const absPath = await resolveProtectedPath(parsed.absolute_path);
397
+ let existing;
398
+ try {
399
+ existing = await fs.readFile(absPath, "utf-8");
400
+ }
401
+ catch {
402
+ return `File does not exist yet. The proposed content would create:\n${parsed.new_content.slice(0, 2000)}`;
403
+ }
404
+ const diff = computeUnifiedDiff(existing, parsed.new_content, {
405
+ oldLabel: absPath,
406
+ newLabel: "(proposed)",
407
+ contextLines: parsed.context_lines,
408
+ });
409
+ if (!diff)
410
+ return "(no differences — content is identical)";
411
+ const { added, removed } = countDiffChanges(diff);
412
+ return `[+${added} / -${removed} lines]\n${colorizeUnifiedDiff(diff)}`;
413
+ }
414
+ export async function search_and_replace_all(args) {
415
+ const parsed = SearchReplaceAllSchema.parse(args);
416
+ let dirPath;
417
+ try {
418
+ dirPath = await resolveProtectedPath(parsed.directory);
419
+ }
420
+ catch {
421
+ return "Error: directory is outside workspace root";
422
+ }
423
+ const stat = await fs.stat(dirPath).catch(() => null);
424
+ if (!stat?.isDirectory()) {
425
+ return `Error: not a directory: ${dirPath}`;
426
+ }
427
+ const TEXT_EXTS = new Set([
428
+ ".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs",
429
+ ".py", ".rb", ".go", ".rs", ".java", ".kt", ".swift",
430
+ ".php", ".sh", ".bash", ".css", ".scss", ".html",
431
+ ".md", ".txt", ".yaml", ".yml", ".json", ".toml",
432
+ ]);
433
+ // Collect files
434
+ const files = [];
435
+ const walk = async (dir) => {
436
+ let entries;
437
+ try {
438
+ entries = await fs.readdir(dir, { withFileTypes: true, encoding: "utf-8" });
439
+ }
440
+ catch {
441
+ return;
442
+ }
443
+ for (const entry of entries) {
444
+ const full = path.join(dir, entry.name);
445
+ if (entry.isDirectory()) {
446
+ if (!["node_modules", ".git", "dist", "build", "__pycache__", ".next"].includes(entry.name)) {
447
+ await walk(full);
448
+ }
449
+ }
450
+ else if (entry.isFile()) {
451
+ const ext = path.extname(entry.name);
452
+ if (parsed.glob) {
453
+ // Simple glob: only *.ext style supported here; use search_files for complex patterns
454
+ const globExt = parsed.glob.replace(/^\*\*\/\*|\*/, "");
455
+ if (entry.name.endsWith(globExt) || TEXT_EXTS.has(ext)) {
456
+ files.push(full);
457
+ }
458
+ }
459
+ else if (TEXT_EXTS.has(ext)) {
460
+ files.push(full);
461
+ }
462
+ }
463
+ }
464
+ };
465
+ await walk(dirPath);
466
+ if (files.length === 0) {
467
+ return "No matching files found in directory.";
468
+ }
469
+ const pattern = parsed.regex
470
+ ? new RegExp(parsed.search_pattern, "g")
471
+ : new RegExp(parsed.search_pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g");
472
+ const matches = [];
473
+ let totalCount = 0;
474
+ for (const file of files) {
475
+ let content;
476
+ try {
477
+ content = await fs.readFile(file, "utf-8");
478
+ }
479
+ catch {
480
+ continue;
481
+ }
482
+ const fileMatches = (content.match(pattern) ?? []).length;
483
+ if (fileMatches === 0)
484
+ continue;
485
+ const updated = content.replace(pattern, parsed.replace_string);
486
+ const diff = computeUnifiedDiff(content, updated, {
487
+ oldLabel: file,
488
+ newLabel: "(after replace)",
489
+ });
490
+ matches.push({ file, count: fileMatches, diff });
491
+ totalCount += fileMatches;
492
+ if (!parsed.dry_run) {
493
+ await enforceWritePolicy(`search_and_replace_all in ${file}`);
494
+ await atomicWrite(file, updated);
495
+ }
496
+ }
497
+ if (matches.length === 0) {
498
+ return `No matches found for pattern: ${parsed.search_pattern}`;
499
+ }
500
+ const mode = parsed.dry_run ? "DRY RUN (no files written)" : "APPLIED";
501
+ const cwd = getRuntimeConfig().workspaceRoot;
502
+ const lines = [
503
+ `search_and_replace_all [${mode}]: ${totalCount} match(es) in ${matches.length} file(s)`,
504
+ "",
505
+ ];
506
+ let charCount = lines.join("\n").length;
507
+ for (const m of matches) {
508
+ const rel = path.relative(cwd, m.file);
509
+ const entry = `${rel}: ${m.count} replacement(s)\n${colorizeUnifiedDiff(m.diff)}\n`;
510
+ if (charCount + entry.length > 25_000) {
511
+ lines.push(`... (output truncated — ${matches.length - lines.length + 2} more files)`);
512
+ break;
513
+ }
514
+ lines.push(entry);
515
+ charCount += entry.length;
516
+ }
517
+ return lines.join("\n");
518
+ }
519
+ export async function get_file_info(args) {
520
+ const parsed = GetFileInfoSchema.parse(args);
521
+ const absPath = await resolveProtectedPath(parsed.path);
522
+ try {
523
+ const stat = await fs.stat(absPath);
524
+ const info = {
525
+ path: absPath,
526
+ type: stat.isDirectory() ? "directory" : stat.isFile() ? "file" : "other",
527
+ size_bytes: stat.size,
528
+ modified_at: stat.mtime.toISOString(),
529
+ created_at: stat.ctime.toISOString(),
530
+ mode_octal: `0${(stat.mode & 0o777).toString(8)}`,
531
+ };
532
+ return JSON.stringify(info, null, 2);
533
+ }
534
+ catch (err) {
535
+ const msg = err instanceof Error ? err.message : String(err);
536
+ return `Error getting file info: ${msg}`;
537
+ }
538
+ }
539
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { z } from "zod";
2
+ export declare const GitStatusSchema: z.ZodObject<{
3
+ path: z.ZodOptional<z.ZodString>;
4
+ }, "strip", z.ZodTypeAny, {
5
+ path?: string | undefined;
6
+ }, {
7
+ path?: string | undefined;
8
+ }>;
9
+ export declare function git_status(args: z.infer<typeof GitStatusSchema>): Promise<string>;
10
+ export declare const GitDiffSchema: z.ZodObject<{
11
+ path: z.ZodOptional<z.ZodString>;
12
+ staged: z.ZodDefault<z.ZodBoolean>;
13
+ base: z.ZodOptional<z.ZodString>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ staged: boolean;
16
+ path?: string | undefined;
17
+ base?: string | undefined;
18
+ }, {
19
+ path?: string | undefined;
20
+ staged?: boolean | undefined;
21
+ base?: string | undefined;
22
+ }>;
23
+ export declare function git_diff(args: z.infer<typeof GitDiffSchema>): Promise<string>;
24
+ export declare const GitLogSchema: z.ZodObject<{
25
+ path: z.ZodOptional<z.ZodString>;
26
+ n: z.ZodDefault<z.ZodNumber>;
27
+ oneline: z.ZodDefault<z.ZodBoolean>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ n: number;
30
+ oneline: boolean;
31
+ path?: string | undefined;
32
+ }, {
33
+ path?: string | undefined;
34
+ n?: number | undefined;
35
+ oneline?: boolean | undefined;
36
+ }>;
37
+ export declare function git_log(args: z.infer<typeof GitLogSchema>): Promise<string>;
38
+ export declare const GitBlameSchema: z.ZodObject<{
39
+ absolute_path: z.ZodString;
40
+ start_line: z.ZodOptional<z.ZodNumber>;
41
+ end_line: z.ZodOptional<z.ZodNumber>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ absolute_path: string;
44
+ start_line?: number | undefined;
45
+ end_line?: number | undefined;
46
+ }, {
47
+ absolute_path: string;
48
+ start_line?: number | undefined;
49
+ end_line?: number | undefined;
50
+ }>;
51
+ export declare function git_blame(args: z.infer<typeof GitBlameSchema>): Promise<string>;
52
+ export declare const GitStashSchema: z.ZodObject<{
53
+ action: z.ZodDefault<z.ZodEnum<["list", "show"]>>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ action: "list" | "show";
56
+ }, {
57
+ action?: "list" | "show" | undefined;
58
+ }>;
59
+ export declare function git_stash(args: z.infer<typeof GitStashSchema>): Promise<string>;
60
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/tools/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,eAAe;;;;;;EAK1B,CAAC;AAEH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,CAKjB;AAID,eAAO,MAAM,aAAa;;;;;;;;;;;;EAaxB,CAAC;AAEH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAClC,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAID,eAAO,MAAM,YAAY;;;;;;;;;;;;EAgBvB,CAAC;AAEH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC,CAUjB;AAID,eAAO,MAAM,cAAc;;;;;;;;;;;;EAgBzB,CAAC;AAEH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAID,eAAO,MAAM,cAAc;;;;;;EAKzB,CAAC;AAEH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,CAOjB"}