@cloudbase/agent-tools 0.0.6 → 0.0.7

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 (63) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/bash/bash-tool.d.ts +10 -4
  3. package/dist/bash/bash-tool.d.ts.map +1 -1
  4. package/dist/bash/bash-tool.js +160 -28
  5. package/dist/bash/bash-tool.js.map +1 -1
  6. package/dist/bash/operator/base-operator.d.ts +8 -4
  7. package/dist/bash/operator/base-operator.d.ts.map +1 -1
  8. package/dist/bash/operator/base-operator.js.map +1 -1
  9. package/dist/bash/operator/local-operator.d.ts +10 -1
  10. package/dist/bash/operator/local-operator.d.ts.map +1 -1
  11. package/dist/bash/operator/local-operator.js +231 -34
  12. package/dist/bash/operator/local-operator.js.map +1 -1
  13. package/dist/bash/operator/sandbox-operator.d.ts +0 -1
  14. package/dist/bash/operator/sandbox-operator.d.ts.map +1 -1
  15. package/dist/bash/operator/sandbox-operator.js +6 -15
  16. package/dist/bash/operator/sandbox-operator.js.map +1 -1
  17. package/dist/code_executers/unsafe_local_code_executor.d.ts.map +1 -1
  18. package/dist/code_executers/unsafe_local_code_executor.js +2 -21
  19. package/dist/code_executers/unsafe_local_code_executor.js.map +1 -1
  20. package/dist/fs/edit-tool.d.ts +6 -0
  21. package/dist/fs/edit-tool.d.ts.map +1 -1
  22. package/dist/fs/edit-tool.js +3 -2
  23. package/dist/fs/edit-tool.js.map +1 -1
  24. package/dist/fs/glob-tool.d.ts +13 -11
  25. package/dist/fs/glob-tool.d.ts.map +1 -1
  26. package/dist/fs/glob-tool.js +60 -25
  27. package/dist/fs/glob-tool.js.map +1 -1
  28. package/dist/fs/grep-tool.d.ts.map +1 -1
  29. package/dist/fs/grep-tool.js +79 -21
  30. package/dist/fs/grep-tool.js.map +1 -1
  31. package/dist/fs/index.d.ts +3 -0
  32. package/dist/fs/index.d.ts.map +1 -1
  33. package/dist/fs/index.js +8 -1
  34. package/dist/fs/index.js.map +1 -1
  35. package/dist/fs/multi-edit-tool.d.ts +54 -0
  36. package/dist/fs/multi-edit-tool.d.ts.map +1 -0
  37. package/dist/fs/multi-edit-tool.js +133 -0
  38. package/dist/fs/multi-edit-tool.js.map +1 -0
  39. package/dist/fs/multi-read-tool.d.ts +41 -0
  40. package/dist/fs/multi-read-tool.d.ts.map +1 -0
  41. package/dist/fs/multi-read-tool.js +74 -0
  42. package/dist/fs/multi-read-tool.js.map +1 -0
  43. package/dist/fs/multi-write-tool.d.ts +40 -0
  44. package/dist/fs/multi-write-tool.d.ts.map +1 -0
  45. package/dist/fs/multi-write-tool.js +77 -0
  46. package/dist/fs/multi-write-tool.js.map +1 -0
  47. package/dist/fs/read-tool.d.ts +5 -0
  48. package/dist/fs/read-tool.d.ts.map +1 -1
  49. package/dist/fs/read-tool.js +14 -12
  50. package/dist/fs/read-tool.js.map +1 -1
  51. package/dist/fs/toolkit.d.ts +2 -1
  52. package/dist/fs/toolkit.d.ts.map +1 -1
  53. package/dist/fs/toolkit.js +13 -1
  54. package/dist/fs/toolkit.js.map +1 -1
  55. package/dist/fs/write-tool.d.ts +4 -0
  56. package/dist/fs/write-tool.d.ts.map +1 -1
  57. package/dist/fs/write-tool.js +8 -6
  58. package/dist/fs/write-tool.js.map +1 -1
  59. package/dist/utils.d.ts +1 -0
  60. package/dist/utils.d.ts.map +1 -1
  61. package/dist/utils.js +21 -0
  62. package/dist/utils.js.map +1 -1
  63. package/package.json +9 -1
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.multiEdit = multiEdit;
4
+ exports.createMultiEditTool = createMultiEditTool;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../utils");
7
+ const edit_tool_1 = require("./edit-tool");
8
+ /**
9
+ * Group edits by file path
10
+ */
11
+ function groupEditsByFile(edits) {
12
+ const grouped = new Map();
13
+ for (const edit of edits) {
14
+ const existing = grouped.get(edit.file_path) || [];
15
+ existing.push(edit);
16
+ grouped.set(edit.file_path, existing);
17
+ }
18
+ return grouped;
19
+ }
20
+ /**
21
+ * Process edits for a single file sequentially
22
+ */
23
+ async function processFileEdits(context, filePath, edits) {
24
+ const results = [];
25
+ let successfulEdits = 0;
26
+ let failedEdits = 0;
27
+ // Process edits sequentially for this file
28
+ for (const edit of edits) {
29
+ try {
30
+ const result = await (0, edit_tool_1.editFile)(context, {
31
+ file_path: edit.file_path,
32
+ old_string: edit.old_string,
33
+ new_string: edit.new_string,
34
+ expected_replacements: edit.expected_replacements,
35
+ });
36
+ const editResult = {
37
+ success: result.success,
38
+ data: result.success ? result.data : undefined,
39
+ error: result.success
40
+ ? undefined
41
+ : result.error?.message || "Unknown error",
42
+ old_string: edit.old_string,
43
+ new_string: edit.new_string,
44
+ };
45
+ results.push(editResult);
46
+ if (result.success) {
47
+ successfulEdits++;
48
+ }
49
+ else {
50
+ failedEdits++;
51
+ }
52
+ }
53
+ catch (error) {
54
+ results.push({
55
+ success: false,
56
+ error: error instanceof Error ? error.message : String(error),
57
+ old_string: edit.old_string,
58
+ new_string: edit.new_string,
59
+ });
60
+ failedEdits++;
61
+ }
62
+ }
63
+ return {
64
+ file_path: filePath,
65
+ edits: results,
66
+ totalEdits: edits.length,
67
+ successfulEdits,
68
+ failedEdits,
69
+ };
70
+ }
71
+ /**
72
+ * Edit multiple files with multiple edits each
73
+ */
74
+ async function multiEdit(context, params) {
75
+ const { edits } = params;
76
+ const startTime = Date.now();
77
+ try {
78
+ // Group edits by file path
79
+ const groupedEdits = groupEditsByFile(edits);
80
+ const totalFiles = groupedEdits.size;
81
+ context.messageHandler?.currentText.append(`\n[multi-edit] Processing ${edits.length} edits across ${totalFiles} files...`);
82
+ // Process each file's edits concurrently (but edits within a file are sequential)
83
+ const filePromises = Array.from(groupedEdits.entries()).map(([filePath, fileEdits]) => processFileEdits(context, filePath, fileEdits));
84
+ const fileResults = await Promise.all(filePromises);
85
+ // Calculate totals
86
+ const totalEdits = edits.length;
87
+ const successfulEdits = fileResults.reduce((sum, file) => sum + file.successfulEdits, 0);
88
+ const failedEdits = fileResults.reduce((sum, file) => sum + file.failedEdits, 0);
89
+ const duration = Date.now() - startTime;
90
+ const summary = `Successfully applied ${successfulEdits} edit(s), failed ${failedEdits} edit(s) out of ${totalEdits} total across ${totalFiles} file(s) in ${duration}ms`;
91
+ context.messageHandler?.currentText.append(`\n[multi-edit] Completed: ${summary}\n`);
92
+ const multipleFilesResult = {
93
+ files: fileResults,
94
+ totalFiles,
95
+ totalEdits,
96
+ successfulEdits,
97
+ failedEdits,
98
+ summary,
99
+ };
100
+ return new utils_1.ToolResult({
101
+ success: true,
102
+ data: multipleFilesResult,
103
+ });
104
+ }
105
+ catch (error) {
106
+ const errorMessage = error instanceof Error ? error.message : String(error);
107
+ context.messageHandler?.currentText.append(`\n[multi-edit] Failed: ${errorMessage}\n`);
108
+ return (0, utils_1.handleToolError)(error, "Multi-edit tool execution", "execution");
109
+ }
110
+ }
111
+ /**
112
+ * Create multi-edit tool with execution context
113
+ */
114
+ function createMultiEditTool(context) {
115
+ return (0, utils_1.tool)((params) => multiEdit(context, params), {
116
+ name: "MultiEdit",
117
+ description: `Edits multiple files with multiple edits each. Edits are grouped by file path - edits within the same file are processed sequentially to maintain consistency, while different files are processed concurrently for better performance.
118
+ **Usage:**
119
+ - Provide an array of edit requests
120
+ - Each request contains file_path, old_string, new_string, and optional expected_replacements
121
+ - Returns detailed results for each edit including success/failure status`,
122
+ schema: zod_1.z.object({
123
+ edits: zod_1.z
124
+ .array(edit_tool_1.editParametersSchema)
125
+ .describe("Array of edit requests to process"),
126
+ }),
127
+ getDisplay: ({ name, input }) => {
128
+ const totalFiles = new Set(input.edits.map((e) => e.file_path)).size;
129
+ return `> Using ${name} for ${input.edits.length} edits across ${totalFiles} files`;
130
+ },
131
+ });
132
+ }
133
+ //# sourceMappingURL=multi-edit-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-edit-tool.js","sourceRoot":"","sources":["../../src/fs/multi-edit-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ import { ExecutionContext } from "./utils";
3
+ import { ToolResult } from "../utils";
4
+ import { IFileReadResult } from "./read-tool";
5
+ /**
6
+ * Multiple files read result
7
+ */
8
+ export interface IMultipleFilesReadResult {
9
+ files: Array<{
10
+ file_path: string;
11
+ success: boolean;
12
+ data?: IFileReadResult;
13
+ error?: string;
14
+ }>;
15
+ total: number;
16
+ successfulCount: number;
17
+ failedCount: number;
18
+ }
19
+ /**
20
+ * Read multiple files concurrently
21
+ */
22
+ export declare function multiRead(context: ExecutionContext, params: {
23
+ reads: {
24
+ file_path: string;
25
+ offset?: number;
26
+ endLine?: number;
27
+ limit?: number;
28
+ encoding?: string;
29
+ }[];
30
+ }): Promise<ToolResult<IMultipleFilesReadResult>>;
31
+ /**
32
+ * Create multi-read tool with execution context
33
+ */
34
+ export declare function createMultiReadTool(context: ExecutionContext): import("../utils").DynamicTool<z.ZodObject<{
35
+ reads: z.ZodArray<z.ZodObject<{
36
+ file_path: z.ZodString;
37
+ offset: z.ZodOptional<z.ZodNumber>;
38
+ limit: z.ZodOptional<z.ZodNumber>;
39
+ }, z.core.$strip>>;
40
+ }, z.core.$strip>, Record<string, unknown>, IMultipleFilesReadResult>;
41
+ //# sourceMappingURL=multi-read-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-read-tool.d.ts","sourceRoot":"","sources":["../../src/fs/multi-read-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAQ,UAAU,EAAmB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAQ,eAAe,EAAwB,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,eAAe,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE;IACN,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACL,GACA,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,CAqD/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB;;;;;;sEAe5D"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.multiRead = multiRead;
4
+ exports.createMultiReadTool = createMultiReadTool;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../utils");
7
+ const read_tool_1 = require("./read-tool");
8
+ /**
9
+ * Read multiple files concurrently
10
+ */
11
+ async function multiRead(context, params) {
12
+ const { reads = [] } = params;
13
+ const startTime = Date.now();
14
+ try {
15
+ // Process all files concurrently
16
+ const promises = reads.map(async (fileReadRequest) => {
17
+ try {
18
+ const result = await (0, read_tool_1.read)(context, fileReadRequest);
19
+ return {
20
+ file_path: fileReadRequest.file_path,
21
+ ...result,
22
+ };
23
+ }
24
+ catch (error) {
25
+ return {
26
+ file_path: fileReadRequest.file_path,
27
+ success: false,
28
+ error: error instanceof Error ? error.message : String(error),
29
+ };
30
+ }
31
+ });
32
+ const results = await Promise.all(promises);
33
+ const successfulCount = results.filter((r) => r.success).length;
34
+ const failedCount = results.length - successfulCount;
35
+ const duration = Date.now() - startTime;
36
+ const summary = `Successfully read ${successfulCount} file(s), failed ${failedCount} file(s) out of ${reads.length} total in ${duration}ms`;
37
+ context.messageHandler?.currentText.append(`\n[multi-read] Completed: ${summary}\n`);
38
+ const multipleFilesResult = {
39
+ files: results,
40
+ total: reads.length,
41
+ successfulCount,
42
+ failedCount,
43
+ };
44
+ return new utils_1.ToolResult({
45
+ success: true,
46
+ data: multipleFilesResult,
47
+ });
48
+ }
49
+ catch (error) {
50
+ const errorMessage = error instanceof Error ? error.message : String(error);
51
+ context.messageHandler?.currentText.append(`\n[multi-read] Failed: ${errorMessage}\n`);
52
+ return (0, utils_1.handleToolError)(error, "Multi-read tool execution", "execution");
53
+ }
54
+ }
55
+ /**
56
+ * Create multi-read tool with execution context
57
+ */
58
+ function createMultiReadTool(context) {
59
+ return (0, utils_1.tool)((params) => multiRead(context, params), {
60
+ name: "MultiRead",
61
+ description: `Reads multiple files concurrently.
62
+ **Usage:**
63
+ - Provide an array of file paths to read
64
+ - All files are processed concurrently
65
+ - Returns detailed results for each file including success/failure status`,
66
+ schema: zod_1.z.object({
67
+ reads: zod_1.z.array(read_tool_1.readParametersSchema),
68
+ }),
69
+ getDisplay: ({ name, input }) => {
70
+ return `> Using ${name} for ${input.reads.length} files`;
71
+ },
72
+ });
73
+ }
74
+ //# sourceMappingURL=multi-read-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-read-tool.js","sourceRoot":"","sources":["../../src/fs/multi-read-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ import { ExecutionContext } from "./utils";
3
+ import { ToolResult } from "../utils";
4
+ import { IFileWriteResult } from "./write-tool";
5
+ /**
6
+ * Single file write request
7
+ */
8
+ export interface IFileWriteRequest {
9
+ file_path: string;
10
+ content: string;
11
+ create_dirs?: boolean;
12
+ }
13
+ /**
14
+ * Multiple files write result
15
+ */
16
+ export interface IMultipleFilesWriteResult {
17
+ files: Array<{
18
+ file_path: string;
19
+ success: boolean;
20
+ data?: IFileWriteResult;
21
+ error?: string;
22
+ }>;
23
+ total: number;
24
+ successfulCount: number;
25
+ failedCount: number;
26
+ }
27
+ /**
28
+ * Write multiple files concurrently
29
+ */
30
+ export declare function multiWrite(context: ExecutionContext, params: any): Promise<ToolResult<IMultipleFilesWriteResult>>;
31
+ /**
32
+ * Create multi-write tool with execution context
33
+ */
34
+ export declare function createMultiWriteTool(context: ExecutionContext): import("../utils").DynamicTool<z.ZodObject<{
35
+ writes: z.ZodArray<z.ZodObject<{
36
+ file_path: z.ZodString;
37
+ content: z.ZodString;
38
+ }, z.core.$strip>>;
39
+ }, z.core.$strip>, Record<string, unknown>, IMultipleFilesWriteResult>;
40
+ //# sourceMappingURL=multi-write-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-write-tool.d.ts","sourceRoot":"","sources":["../../src/fs/multi-write-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAQ,UAAU,EAAmB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAS,gBAAgB,EAAyB,MAAM,cAAc,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,gBAAgB,EACzB,MAAM,KAAA,GACL,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAuDhD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB;;;;;uEAkB7D"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.multiWrite = multiWrite;
4
+ exports.createMultiWriteTool = createMultiWriteTool;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../utils");
7
+ const write_tool_1 = require("./write-tool");
8
+ /**
9
+ * Write multiple files concurrently
10
+ */
11
+ async function multiWrite(context, params) {
12
+ const { writes = [] } = params;
13
+ const startTime = Date.now();
14
+ try {
15
+ context.messageHandler?.currentText.append(`\n[multi-write] Writing ${writes.length} files concurrently...`);
16
+ // Process all files concurrently
17
+ const promises = writes.map(async (fileRequest) => {
18
+ try {
19
+ const res = await (0, write_tool_1.write)(context, fileRequest);
20
+ return {
21
+ file_path: fileRequest.file_path,
22
+ ...res,
23
+ };
24
+ }
25
+ catch (error) {
26
+ return {
27
+ file_path: fileRequest.file_path,
28
+ success: false,
29
+ error: error instanceof Error ? error.message : String(error),
30
+ };
31
+ }
32
+ });
33
+ const results = await Promise.all(promises);
34
+ const successfulFiles = results.filter((r) => r.success).length;
35
+ const failedFiles = results.length - successfulFiles;
36
+ const summary = `Successfully wrote ${successfulFiles} file(s), failed ${failedFiles} file(s) out of ${writes.length} total`;
37
+ context.messageHandler?.currentText.append(`\n[multi-write] Completed: ${summary}\n`);
38
+ const multipleFilesResult = {
39
+ files: results,
40
+ total: writes.length,
41
+ successfulCount: successfulFiles,
42
+ failedCount: failedFiles,
43
+ };
44
+ return new utils_1.ToolResult({
45
+ success: true,
46
+ data: multipleFilesResult,
47
+ });
48
+ }
49
+ catch (error) {
50
+ const errorMessage = error instanceof Error ? error.message : String(error);
51
+ context.messageHandler?.currentText.append(`\n[multi-write] Failed: ${errorMessage}\n`);
52
+ return (0, utils_1.handleToolError)(error, "Multi-write tool execution", "execution");
53
+ }
54
+ }
55
+ /**
56
+ * Create multi-write tool with execution context
57
+ */
58
+ function createMultiWriteTool(context) {
59
+ return (0, utils_1.tool)((params) => multiWrite(context, params), {
60
+ name: "MultiWrite",
61
+ description: `Writes multiple files concurrently.
62
+ **Usage:**
63
+ - Provide an array of file write requests
64
+ - Each request contains file_path and content.
65
+ - All files are written concurrently
66
+ - Returns detailed results for each file including success/failure status`,
67
+ schema: zod_1.z.object({
68
+ writes: zod_1.z
69
+ .array(write_tool_1.writeParametersSchema)
70
+ .describe("Array of file write requests to process concurrently"),
71
+ }),
72
+ getDisplay: ({ name, input }) => {
73
+ return `> Using ${name} for ${input.writes.length} files`;
74
+ },
75
+ });
76
+ }
77
+ //# sourceMappingURL=multi-write-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-write-tool.js","sourceRoot":"","sources":["../../src/fs/multi-write-tool.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,11 @@ export declare function read(context: ExecutionContext, params: {
21
21
  limit?: number;
22
22
  encoding?: string;
23
23
  }): Promise<ToolResult<IFileReadResult>>;
24
+ export declare const readParametersSchema: z.ZodObject<{
25
+ file_path: z.ZodString;
26
+ offset: z.ZodOptional<z.ZodNumber>;
27
+ limit: z.ZodOptional<z.ZodNumber>;
28
+ }, z.core.$strip>;
24
29
  /**
25
30
  * Create SuperDesign read tool with execution context
26
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"read-tool.d.ts","sourceRoot":"","sources":["../../src/fs/read-tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAKjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAQ,UAAU,EAAmB,MAAM,UAAU,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAkKD,wBAAsB,IAAI,CACxB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAyHtC;AAgBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB;;;;6DAwBvD"}
1
+ {"version":3,"file":"read-tool.d.ts","sourceRoot":"","sources":["../../src/fs/read-tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAKjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAQ,UAAU,EAAmB,MAAM,UAAU,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAmKD,wBAAsB,IAAI,CACxB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE;IACN,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAyHtC;AAgBD,eAAO,MAAM,oBAAoB;;;;iBAc/B,CAAC;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB;;;;6DAUvD"}
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.readParametersSchema = void 0;
36
37
  exports.read = read;
37
38
  exports.createReadTool = createReadTool;
38
39
  const path = __importStar(require("path"));
@@ -194,7 +195,7 @@ async function read(context, params) {
194
195
  // Process based on file type
195
196
  switch (fileType) {
196
197
  case "text": {
197
- const result = await processTextFile(context, absolutePath, startLine, endLine, lineCount, encoding);
198
+ const result = await processTextFile(context, absolutePath, startLine, lineCount, endLine, encoding);
198
199
  content = result.content;
199
200
  metadata = result.metadata;
200
201
  break;
@@ -245,6 +246,17 @@ function catWithLineNumbers(content, offset = 0) {
245
246
  });
246
247
  return numberedLines.join("\n");
247
248
  }
249
+ exports.readParametersSchema = v4_1.z.object({
250
+ file_path: v4_1.z.string().describe("The absolute path to the file to read"),
251
+ offset: v4_1.z
252
+ .number()
253
+ .optional()
254
+ .describe("Optional: The number of lines to read. Only provide if the file is too large to read at once. Default: 0"),
255
+ limit: v4_1.z
256
+ .number()
257
+ .optional()
258
+ .describe("Optional: The line number to start reading from. Only provide if the file is too large to read at once. Default: undefined, which means start from the beginning."),
259
+ });
248
260
  /**
249
261
  * Create SuperDesign read tool with execution context
250
262
  */
@@ -252,17 +264,7 @@ function createReadTool(context) {
252
264
  return (0, utils_2.tool)((params) => read(context, params), {
253
265
  name: "Read",
254
266
  description: "Reads a file from the local filesystem. You can access any file directly by using this tool.\nAssume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.\n\nUsage:\n- The file_path parameter must be an absolute path, not a relative path\n- By default, it reads up to 2000 lines starting from the beginning of the file\n- You can optionally specify a line offset and limit (especially handy for long files), but it's recommended to read the whole file by not providing these parameters\n- Any lines longer than 2000 characters will be truncated\n- Results are returned using cat -n format, with line numbers starting at 1\n- You have the capability to call multiple tools in a single response. It is always better to speculatively read multiple files as a batch that are potentially useful. \n- If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.",
255
- schema: v4_1.z.object({
256
- file_path: v4_1.z.string().describe("The absolute path to the file to read"),
257
- offset: v4_1.z
258
- .number()
259
- .optional()
260
- .describe("Optional: The number of lines to read. Only provide if the file is too large to read at once."),
261
- limit: v4_1.z
262
- .number()
263
- .optional()
264
- .describe("Optional: The line number to start reading from. Only provide if the file is too large to read at once"),
265
- }),
267
+ schema: exports.readParametersSchema,
266
268
  getDisplay: ({ name, input }) => {
267
269
  return `> Using ${name} for tool call: ${input.file_path || ""}`;
268
270
  },
@@ -1 +1 @@
1
- {"version":3,"file":"read-tool.js","sourceRoot":"","sources":["../../src/fs/read-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-tool.js","sourceRoot":"","sources":["../../src/fs/read-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4LA,oBAkIC;AAmCD,wCAUC;AA3WD,2CAA6B;AAC7B,iDAAmC;AAEnC,+BAA2B;AAC3B,mCAMiB;AACjB,oCAA6D;AAgB7D,gCAAgC;AAChC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAErD;;GAEG;AACH,SAAS,cAAc,CACrB,OAAO,EACP,QAAgB;IAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvC,mBAAmB;IACnB,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB;IAChB,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG;QACvB,MAAM;QACN,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;KACP,CAAC;IAEF,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAyB,EACzB,QAAgB,EAChB,SAAkB,EAClB,SAAkB,EAClB,OAAgB,EAChB,WAAmB,OAAO;IAE1B,MAAM,OAAO,GAAG,CACd,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAA0B,CAAC,CACxE,CAAC,QAAQ,EAAE,CAAC;IACb,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC;IAEvC,oBAAoB;IACpB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB;IAChF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,eAAe,GACnB,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAE9D,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,eAAe,EAAE,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,IAAI,iBAAiB,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAE5D,sBAAsB;IACtB,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChD,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YAClC,kBAAkB,GAAG,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,sBAAsB,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,OAAO,GAAG,iBAAiB,CAAC;IACxD,MAAM,WAAW,GAAG,mBAAmB,IAAI,kBAAkB,CAAC;IAE9D,IAAI,gBAAgB,GAAG,kBAAkB,CACvC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,eAAe,CAChB,CAAC;IAEF,wBAAwB;IACxB,IAAI,mBAAmB,EAAE,CAAC;QACxB,gBAAgB;YACd,qCACE,eAAe,GAAG,CACpB,IAAI,OAAO,OAAO,iBAAiB,mBAAmB,GAAG,gBAAgB,CAAC;IAC9E,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC9B,gBAAgB;YACd,4CAA4C,eAAe,cAAc;gBACzE,gBAAgB,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE;YACR,SAAS,EAAE,iBAAiB;YAC5B,WAAW;YACX,UAAU,EAAE,CAAC,eAAe,GAAG,CAAC,EAAE,OAAO,CAAC;SAC3C;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,OAAyB,EACzB,QAAgB,EAChB,QAAyB;IAEzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B,CAAC;IAErE,6EAA6E;IAC7E,gEAAgE;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnD,OAAO;QACL,OAAO,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,UAAU,QAAQ,iBAAiB,QAAQ,mBAAmB,QAAQ,8CAA8C;QACvJ,QAAQ,EAAE;YACR,QAAQ;SACT;KACF,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,IAAI,CACxB,OAAyB,EACzB,MAMC;IAED,MAAM,EACJ,SAAS,EACT,MAAM,EAAE,SAAS,EACjB,OAAO,EACP,KAAK,EAAE,SAAS,EAChB,QAAQ,GAAG,OAAO,GACnB,GAAG,MAAM,CAAC;IACX,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAA,6BAAqB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,oBAAoB;QACpB,MAAM,YAAY,GAAG,IAAA,4BAAoB,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE9D,uBAAuB;QACvB,MAAM,SAAS,GAAG,MAAM,IAAA,0BAAkB,EACxC,OAAO,EACP,YAAY,EACZ,SAAS,CACV,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,IAAA,uBAAe,EACpB,oCAAoC,SAAS,EAAE,EAC/C,iBAAiB,EACjB,YAAY,CACb,CAAC;QACJ,CAAC;QAED,kBAAkB;QAClB,IAAI,KAAK,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,CAAE,KAAK,CAAC,IAAe,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjE,OAAO,IAAA,uBAAe,EACpB,mBAAmB,MAAM,sBAAsB,mBAAmB,GAAG,IAAI,GAAG,IAAI,IAAI,EACpF,iBAAiB,EACjB,YAAY,CACb,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACvD,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CACxC,oBAAoB,QAAQ,UAAU,SAAS,KAAK,CAAE,KAAK,CAAC,IAAe,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACrG,CAAC;QAEF,IAAI,OAAe,CAAC;QACpB,IAAI,QAAQ,GAA6B,EAAE,CAAC;QAE5C,6BAA6B;QAC7B,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,OAAO,EACP,YAAY,EACZ,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,CACT,CAAC;gBACF,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC;YACb,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACvE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,CAAE,KAAK,CAAC,IAAe,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,GAAG,iBAAiB,QAAQ,iBAAiB,QAAQ,6CAA6C,CAAC;gBAC1G,MAAM;YACR,CAAC;YAED;gBACE,OAAO,IAAA,uBAAe,EACpB,0BAA0B,QAAQ,EAAE,EACpC,qBAAqB,EACrB,YAAY,CACb,CAAC;QACN,CAAC;QAED,gBAAgB;QAChB,MAAM,cAAc,GAAoB;YACtC,OAAO;YACP,QAAQ,EAAE,SAAS,IAAI,EAAE;YACzB,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,SAAS;YAChD,IAAI,EAAE,KAAK,CAAC,IAAc;YAC1B,GAAG,QAAQ;SACZ,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CACxC,mCAAmC,QAAQ,MAAM,CAClD,CAAC;QAEF,OAAO,IAAA,6BAAqB,EAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CACxC,yBAAyB,YAAY,IAAI,CAC1C,CAAC;QACF,OAAO,IAAA,uBAAe,EAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,MAAM,GAAG,CAAC;IACrD,iBAAiB;IACjB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,+DAA+D;IAC/D,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9C,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;QACtC,2DAA2D;QAC3D,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAEY,QAAA,oBAAoB,GAAG,MAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACvE,MAAM,EAAE,MAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0GAA0G,CAC3G;IACH,KAAK,EAAE,MAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mKAAmK,CACpK;CACJ,CAAC,CAAC;AAEH;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAyB;IACtD,OAAO,IAAA,YAAI,EAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QAC7C,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,iiCAAiiC;QACniC,MAAM,EAAE,4BAAoB;QAC5B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,OAAO,WAAW,IAAI,mBAAmB,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QACnE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -9,8 +9,9 @@ export interface FilesystemToolkitConfig {
9
9
  * Mode for file editing operations
10
10
  * - 'integrated': Use str-replace-editor tool (single tool for read/write/edit operations)
11
11
  * - 'atomic': Use separate read, write, and edit tools
12
+ * - 'multi': Use multiple tools for read/write/edit operations
12
13
  */
13
- mode: "integrated" | "atomic";
14
+ mode: "integrated" | "atomic" | "multi";
14
15
  }
15
16
  /**
16
17
  * Options for creating FilesystemToolkit
@@ -1 +1 @@
1
- {"version":3,"file":"toolkit.d.ts","sourceRoot":"","sources":["../../src/fs/toolkit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQ3C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IACzC,OAAO,EAAE,gBAAgB,CAG9B;IACF,OAAO,CAAC,MAAM,CAA0B;gBAE5B,OAAO,EAAE,wBAAwB;IAoB7C;;OAEG;cACa,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACH,OAAO,CAAC,eAAe;IAkCvB;;OAEG;IACH,qBAAqB,IAAI,QAAQ,EAAE;IAYnC;;OAEG;IACH,eAAe,IAAI,QAAQ,EAAE;IAM7B;;OAEG;IACH,SAAS,IAAI,uBAAuB;IAIpC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI;IAO/C;;OAEG;IACH,QAAQ,IAAI;QACV,IAAI,EAAE,MAAM,CAAC;KACd;CAKF"}
1
+ {"version":3,"file":"toolkit.d.ts","sourceRoot":"","sources":["../../src/fs/toolkit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAW3C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IACzC,OAAO,EAAE,gBAAgB,CAG9B;IACF,OAAO,CAAC,MAAM,CAA0B;gBAE5B,OAAO,EAAE,wBAAwB;IAoB7C;;OAEG;cACa,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACH,OAAO,CAAC,eAAe;IA4CvB;;OAEG;IACH,qBAAqB,IAAI,QAAQ,EAAE;IAYnC;;OAEG;IACH,eAAe,IAAI,QAAQ,EAAE;IAM7B;;OAEG;IACH,SAAS,IAAI,uBAAuB;IAIpC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI;IAO/C;;OAEG;IACH,QAAQ,IAAI;QACV,IAAI,EAAE,MAAM,CAAC;KACd;CAKF"}
@@ -8,6 +8,9 @@ const glob_tool_1 = require("./glob-tool");
8
8
  const grep_tool_1 = require("./grep-tool");
9
9
  const ls_tool_1 = require("./ls-tool");
10
10
  const str_replace_editor_1 = require("./str-replace-editor");
11
+ const multi_read_tool_1 = require("./multi-read-tool");
12
+ const multi_write_tool_1 = require("./multi-write-tool");
13
+ const multi_edit_tool_1 = require("./multi-edit-tool");
11
14
  const utils_1 = require("../utils");
12
15
  /**
13
16
  * FilesystemToolkit provides a comprehensive set of file system tools
@@ -26,7 +29,7 @@ class FilesystemToolkit extends utils_1.BaseToolkit {
26
29
  };
27
30
  this.context = options.context;
28
31
  this.config = {
29
- mode: options.config?.mode || "atomic",
32
+ mode: options.config?.mode || "multi",
30
33
  };
31
34
  options.context.fsOperator.setWorkspaceRoot(options.context.workingDirectory);
32
35
  this.initialize();
@@ -51,6 +54,15 @@ class FilesystemToolkit extends utils_1.BaseToolkit {
51
54
  const strReplaceEditor = (0, str_replace_editor_1.createStrReplaceEditorTool)(this.context);
52
55
  this.addTool(strReplaceEditor);
53
56
  }
57
+ else if (this.config.mode === "multi") {
58
+ // Always add multi-file tools
59
+ const multiReadTool = (0, multi_read_tool_1.createMultiReadTool)(this.context);
60
+ this.addTool(multiReadTool);
61
+ const multiWriteTool = (0, multi_write_tool_1.createMultiWriteTool)(this.context);
62
+ this.addTool(multiWriteTool);
63
+ const multiEditTool = (0, multi_edit_tool_1.createMultiEditTool)(this.context);
64
+ this.addTool(multiEditTool);
65
+ }
54
66
  else {
55
67
  // Atomic mode: use separate read, write, edit tools
56
68
  const readTool = (0, read_tool_1.createReadTool)(this.context);
@@ -1 +1 @@
1
- {"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../../src/fs/toolkit.ts"],"names":[],"mappings":";;;AACA,2CAA6C;AAC7C,6CAA+C;AAC/C,2CAA6C;AAC7C,2CAA6C;AAC7C,2CAA6C;AAC7C,uCAAyC;AACzC,6DAAkE;AAClE,oCAAiD;AAuBjD;;;GAGG;AACH,MAAa,iBAAkB,SAAQ,mBAAW;IAOhD,YAAY,OAAiC;QAC3C,KAAK,CAAC;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,oBAAoB;YAC1C,WAAW,EACT,OAAO,CAAC,WAAW,IAAI,8CAA8C;YACvE,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAZE,YAAO,GAAqB;YACjC,gBAAgB,EAAE,EAAE;YACpB,UAAU,EAAE,IAAI;SACjB,CAAC;QAWA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,QAAQ;SACvC,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CACzC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CACjC,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,YAAY;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,uBAAuB;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtC,0CAA0C;YAC1C,MAAM,gBAAgB,GAAG,IAAA,+CAA0B,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEvB,MAAM,SAAS,GAAG,IAAA,4BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvB,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvB,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAA6B;QACtC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QAGN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SACvB,CAAC;IACJ,CAAC;CACF;AA1HD,8CA0HC"}
1
+ {"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../../src/fs/toolkit.ts"],"names":[],"mappings":";;;AACA,2CAA6C;AAC7C,6CAA+C;AAC/C,2CAA6C;AAC7C,2CAA6C;AAC7C,2CAA6C;AAC7C,uCAAyC;AACzC,6DAAkE;AAClE,uDAAwD;AACxD,yDAA0D;AAC1D,uDAAwD;AACxD,oCAAiD;AAwBjD;;;GAGG;AACH,MAAa,iBAAkB,SAAQ,mBAAW;IAOhD,YAAY,OAAiC;QAC3C,KAAK,CAAC;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,oBAAoB;YAC1C,WAAW,EACT,OAAO,CAAC,WAAW,IAAI,8CAA8C;YACvE,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAZE,YAAO,GAAqB;YACjC,gBAAgB,EAAE,EAAE;YACpB,UAAU,EAAE,IAAI;SACjB,CAAC;QAWA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,OAAO;SACtC,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CACzC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CACjC,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,YAAY;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,uBAAuB;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtC,0CAA0C;YAC1C,MAAM,gBAAgB,GAAG,IAAA,+CAA0B,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxC,8BAA8B;YAC9B,MAAM,aAAa,GAAG,IAAA,qCAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE5B,MAAM,cAAc,GAAG,IAAA,uCAAoB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAE7B,MAAM,aAAa,GAAG,IAAA,qCAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEvB,MAAM,SAAS,GAAG,IAAA,4BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvB,MAAM,QAAQ,GAAG,IAAA,0BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvB,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAA6B;QACtC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QAGN,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SACvB,CAAC;IACJ,CAAC;CACF;AApID,8CAoIC"}
@@ -1,6 +1,10 @@
1
1
  import { z } from "zod/v4";
2
2
  import { ExecutionContext } from "./utils";
3
3
  import { ToolResult } from "../utils";
4
+ export declare const writeParametersSchema: z.ZodObject<{
5
+ file_path: z.ZodString;
6
+ content: z.ZodString;
7
+ }, z.core.$strip>;
4
8
  /**
5
9
  * Write tool result with metadata
6
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"write-tool.d.ts","sourceRoot":"","sources":["../../src/fs/write-tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAIjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAQ,UAAU,EAAmB,MAAM,UAAU,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,KAAK,CACzB,OAAO,EAAE,gBAAgB,EACzB,EAAE,SAAc,EAAE,OAAY,EAAE,WAAkB,EAAE;;;;CAAA,GACnD,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CA0EvC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB;;;8DAiBxD"}
1
+ {"version":3,"file":"write-tool.d.ts","sourceRoot":"","sources":["../../src/fs/write-tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAIjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAQ,UAAU,EAAmB,MAAM,UAAU,CAAC;AAE7D,eAAO,MAAM,qBAAqB;;;iBAOhC,CAAA;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,KAAK,CACzB,OAAO,EAAE,gBAAgB,EACzB,EAAE,SAAc,EAAE,OAAY,EAAE,WAAkB,EAAE;;;;CAAA,GACnD,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAyEvC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB;;;8DAUxD"}
@@ -33,12 +33,19 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.writeParametersSchema = void 0;
36
37
  exports.write = write;
37
38
  exports.createWriteTool = createWriteTool;
38
39
  const path = __importStar(require("path"));
39
40
  const v4_1 = require("zod/v4");
40
41
  const utils_1 = require("./utils");
41
42
  const utils_2 = require("../utils");
43
+ exports.writeParametersSchema = v4_1.z.object({
44
+ file_path: v4_1.z
45
+ .string()
46
+ .describe("The absolute path to the file to write (must be absolute, not relative)"),
47
+ content: v4_1.z.string().describe("Content to write to the file"),
48
+ });
42
49
  async function write(context, { file_path = "", content = "", create_dirs = true }) {
43
50
  const startTime = Date.now();
44
51
  try {
@@ -96,12 +103,7 @@ function createWriteTool(context) {
96
103
  return (0, utils_2.tool)((params) => write(context, params), {
97
104
  name: "Write",
98
105
  description: "Writes a file to the local filesystem.\n\nUsage:\n- This tool will overwrite the existing file if there is one at the provided path.\n- If this is an existing file, you MUST use the Read tool first to read the file's contents. This tool will fail if you did not read the file first.\n- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.\n- NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.",
99
- schema: v4_1.z.object({
100
- file_path: v4_1.z
101
- .string()
102
- .describe("The absolute path to the file to write (must be absolute, not relative)"),
103
- content: v4_1.z.string().describe("Content to write to the file"),
104
- }),
106
+ schema: exports.writeParametersSchema,
105
107
  getDisplay: ({ name, input }) => {
106
108
  return `> Using ${name} for tool call: ${input.file_path || ""}`;
107
109
  },