centaurus-cli 2.7.0 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-adapter.d.ts +9 -0
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +352 -119
- package/dist/cli-adapter.js.map +1 -1
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +3 -0
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/services/environment-context-injector.d.ts +2 -2
- package/dist/services/environment-context-injector.d.ts.map +1 -1
- package/dist/services/environment-context-injector.js +4 -4
- package/dist/services/environment-context-injector.js.map +1 -1
- package/dist/tools/command.d.ts +1 -2
- package/dist/tools/command.d.ts.map +1 -1
- package/dist/tools/command.js +39 -131
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/file-ops.d.ts +3 -3
- package/dist/tools/file-ops.d.ts.map +1 -1
- package/dist/tools/file-ops.js +120 -92
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/tools/get-diff.d.ts +5 -0
- package/dist/tools/get-diff.d.ts.map +1 -1
- package/dist/tools/get-diff.js +67 -5
- package/dist/tools/get-diff.js.map +1 -1
- package/dist/tools/grep-search.d.ts +13 -21
- package/dist/tools/grep-search.d.ts.map +1 -1
- package/dist/tools/grep-search.js +309 -280
- package/dist/tools/grep-search.js.map +1 -1
- package/dist/tools/inspect-symbol.d.ts +5 -0
- package/dist/tools/inspect-symbol.d.ts.map +1 -1
- package/dist/tools/inspect-symbol.js +102 -20
- package/dist/tools/inspect-symbol.js.map +1 -1
- package/dist/tools/types.d.ts +2 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +8 -10
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/tools/validation.js +35 -37
- package/dist/tools/validation.js.map +1 -1
- package/dist/ui/components/App.d.ts +1 -0
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +24 -17
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/AuthWelcomeScreen.d.ts.map +1 -1
- package/dist/ui/components/AuthWelcomeScreen.js +1 -9
- package/dist/ui/components/AuthWelcomeScreen.js.map +1 -1
- package/dist/ui/components/CodeBlock.d.ts.map +1 -1
- package/dist/ui/components/CodeBlock.js +24 -13
- package/dist/ui/components/CodeBlock.js.map +1 -1
- package/dist/ui/components/DiffViewer.d.ts +1 -0
- package/dist/ui/components/DiffViewer.d.ts.map +1 -1
- package/dist/ui/components/DiffViewer.js +107 -70
- package/dist/ui/components/DiffViewer.js.map +1 -1
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +4 -15
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +118 -23
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/utils/input-classifier.d.ts.map +1 -1
- package/dist/utils/input-classifier.js +2 -1
- package/dist/utils/input-classifier.js.map +1 -1
- package/package.json +1 -1
- package/prompts/system-prompt-autonomous.md +22 -73
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tools/command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tools/command.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/file-ops.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Tool } from './types.js';
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
2
|
+
export declare const viewFileTool: Tool;
|
|
3
|
+
export declare const writeToFileTool: Tool;
|
|
4
4
|
export declare const editFileTool: Tool;
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const listDirTool: Tool;
|
|
6
6
|
//# sourceMappingURL=file-ops.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-ops.d.ts","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMlC,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"file-ops.d.ts","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMlC,eAAO,MAAM,YAAY,EAAE,IA+E1B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IA2I7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAqJ1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAuDzB,CAAC"}
|
package/dist/tools/file-ops.js
CHANGED
|
@@ -3,18 +3,19 @@ import * as fs from 'fs';
|
|
|
3
3
|
import * as fileUtils from '../utils/file.js';
|
|
4
4
|
import * as Diff from 'diff';
|
|
5
5
|
import { ToolValidator } from './validation.js';
|
|
6
|
-
export const
|
|
6
|
+
export const viewFileTool = {
|
|
7
7
|
schema: {
|
|
8
|
-
name: '
|
|
9
|
-
description: `
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
-
|
|
8
|
+
name: 'view_file',
|
|
9
|
+
description: `View the contents of a file from the local filesystem. This tool supports some binary files such as images and videos.
|
|
10
|
+
Text file usage:
|
|
11
|
+
- The lines of the file are 1-indexed
|
|
12
|
+
- The first time you read a new file the tool will enforce reading 800 lines to understand as much about the file as possible
|
|
13
|
+
- The output of this tool call will be the file contents from StartLine to EndLine (inclusive)
|
|
14
|
+
- You can view at most 800 lines at a time
|
|
15
|
+
- To view the whole file do not pass StartLine or EndLine arguments
|
|
16
|
+
Binary file usage:
|
|
17
|
+
- Do not provide StartLine or EndLine arguments, this tool always returns the entire file
|
|
18
|
+
- The output includes line numbers (e.g., "1: code") for reference. DO NOT include these line numbers in your search_pattern when editing.`,
|
|
18
19
|
parameters: {
|
|
19
20
|
type: 'object',
|
|
20
21
|
properties: {
|
|
@@ -22,64 +23,68 @@ USAGE GUIDELINES:
|
|
|
22
23
|
type: 'string',
|
|
23
24
|
description: 'REQUIRED: A brief explanation of why you are reading this file and what you are looking for. This will be shown to the user. Example: "Reading package.json to check the current version number"',
|
|
24
25
|
},
|
|
25
|
-
|
|
26
|
+
AbsolutePath: {
|
|
26
27
|
type: 'string',
|
|
27
|
-
description: '
|
|
28
|
+
description: 'Path to file to view. Must be an absolute path.',
|
|
28
29
|
},
|
|
29
|
-
|
|
30
|
-
type: '
|
|
31
|
-
description: 'Optional
|
|
30
|
+
StartLine: {
|
|
31
|
+
type: 'integer',
|
|
32
|
+
description: 'Optional. Startline to view, 1-indexed as usual, inclusive. This value must be less than or equal to EndLine.',
|
|
32
33
|
},
|
|
33
|
-
|
|
34
|
-
type: '
|
|
35
|
-
description: 'Optional
|
|
34
|
+
EndLine: {
|
|
35
|
+
type: 'integer',
|
|
36
|
+
description: 'Optional. Endline to view, 1-indexed as usual, inclusive. This value must be greater than or equal to StartLine.',
|
|
36
37
|
},
|
|
37
38
|
},
|
|
38
|
-
required: ['reason_text', '
|
|
39
|
+
required: ['reason_text', 'AbsolutePath'],
|
|
39
40
|
},
|
|
40
41
|
},
|
|
41
42
|
async execute(args, context) {
|
|
42
|
-
const {
|
|
43
|
+
const { AbsolutePath, StartLine, EndLine } = args;
|
|
44
|
+
const file_path = AbsolutePath; // Map to internal variable
|
|
43
45
|
const contextManager = context.contextManager;
|
|
44
46
|
const currentContext = contextManager.getCurrentContext();
|
|
45
47
|
// Use Context Manager for file operations
|
|
46
48
|
if (currentContext.type === 'local') {
|
|
47
|
-
|
|
49
|
+
// Since AbsolutePath is required to be absolute, we might need to handle relative paths gracefully or enforce absolute
|
|
50
|
+
// The tool description says "Must be an absolute path", but for usability we can resolve it
|
|
51
|
+
const fullPath = path.isAbsolute(file_path) ? file_path : path.resolve(context.cwd, file_path);
|
|
48
52
|
if (!fs.existsSync(fullPath)) {
|
|
49
|
-
throw new Error(`File not found: ${file_path}
|
|
53
|
+
throw new Error(`File not found: ${file_path}\n\nAction: Verify the file path using 'list_directory'.`);
|
|
50
54
|
}
|
|
51
|
-
const content = fileUtils.readFile(fullPath,
|
|
52
|
-
const
|
|
53
|
-
|
|
55
|
+
const content = fileUtils.readFile(fullPath, StartLine, EndLine);
|
|
56
|
+
const lines = content.split('\n');
|
|
57
|
+
const startNum = StartLine || 1;
|
|
58
|
+
const numberedContent = lines.map((line, idx) => `${startNum + idx}: ${line}`).join('\n');
|
|
59
|
+
return `File: ${file_path}\nLines: ${lines.length}\n\n${numberedContent}`;
|
|
54
60
|
}
|
|
55
61
|
else {
|
|
56
62
|
// Read from subshell
|
|
57
63
|
const content = await contextManager.readFile(file_path);
|
|
58
64
|
// Apply line range if specified
|
|
59
65
|
let finalContent = content;
|
|
60
|
-
if (
|
|
66
|
+
if (StartLine !== undefined || EndLine !== undefined) {
|
|
61
67
|
const lines = content.split('\n');
|
|
62
|
-
const start =
|
|
63
|
-
const end =
|
|
68
|
+
const start = StartLine ? StartLine - 1 : 0;
|
|
69
|
+
const end = EndLine ? EndLine : lines.length;
|
|
64
70
|
finalContent = lines.slice(start, end).join('\n');
|
|
65
71
|
}
|
|
66
72
|
const lineCount = finalContent.split('\n').length;
|
|
67
|
-
|
|
73
|
+
const lines = finalContent.split('\n');
|
|
74
|
+
const startNum = StartLine || 1;
|
|
75
|
+
const numberedContent = lines.map((line, idx) => `${startNum + idx}: ${line}`).join('\n');
|
|
76
|
+
return `File: ${file_path}\nLines: ${lineCount}\n\n${numberedContent}`;
|
|
68
77
|
}
|
|
69
78
|
},
|
|
70
79
|
};
|
|
71
|
-
export const
|
|
80
|
+
export const writeToFileTool = {
|
|
72
81
|
schema: {
|
|
73
|
-
name: '
|
|
74
|
-
description: `
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
- Use this for creating new files from scratch
|
|
80
|
-
- For modifying existing files, prefer edit_file to make targeted changes
|
|
81
|
-
- The entire file content must be provided
|
|
82
|
-
- User approval is required before overwriting existing files`,
|
|
82
|
+
name: 'write_to_file',
|
|
83
|
+
description: `Use this tool to create new files. The file and any parent directories will be created for you if they do not already exist.
|
|
84
|
+
Follow these instructions:
|
|
85
|
+
1. By default this tool will error if TargetFile already exists. To overwrite an existing file, set Overwrite to true.
|
|
86
|
+
2. You MUST specify TargetFile as the FIRST argument. Please specify the full TargetFile before any of the code contents.
|
|
87
|
+
IMPORTANT: You must generate the following arguments first, before any others: [TargetFile, Overwrite]`,
|
|
83
88
|
parameters: {
|
|
84
89
|
type: 'object',
|
|
85
90
|
properties: {
|
|
@@ -87,33 +92,54 @@ USAGE GUIDELINES:
|
|
|
87
92
|
type: 'string',
|
|
88
93
|
description: 'REQUIRED: A brief explanation of why you are creating/writing this file. This will be shown to the user. Example: "Creating a new configuration file for the database connection"',
|
|
89
94
|
},
|
|
90
|
-
|
|
95
|
+
TargetFile: {
|
|
91
96
|
type: 'string',
|
|
92
|
-
description: 'The
|
|
97
|
+
description: 'The target file to create and write code to.',
|
|
98
|
+
},
|
|
99
|
+
CodeContent: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
description: 'The code contents to write to the file.',
|
|
102
|
+
},
|
|
103
|
+
Overwrite: {
|
|
104
|
+
type: 'boolean',
|
|
105
|
+
description: 'Set this to true to overwrite an existing file. WARNING: This will replace the entire file contents. Only use when you explicitly intend to overwrite. Otherwise, use a code edit tool to modify existing files.',
|
|
106
|
+
},
|
|
107
|
+
EmptyFile: {
|
|
108
|
+
type: 'boolean',
|
|
109
|
+
description: 'Set this to true to create an empty file.',
|
|
93
110
|
},
|
|
94
|
-
|
|
111
|
+
Description: {
|
|
95
112
|
type: 'string',
|
|
96
|
-
description: '
|
|
113
|
+
description: 'Brief, user-facing explanation of what this change did. Focus on non-obvious rationale, design decisions, or important context. Don\'t just restate what the code does.',
|
|
114
|
+
},
|
|
115
|
+
Complexity: {
|
|
116
|
+
type: 'integer',
|
|
117
|
+
description: 'A 1-10 rating of how important it is for the user to review this change. Rate based on: 1-3 (routine/obvious), 4-6 (worth noting), 7-10 (critical or subtle and warrants explanation).',
|
|
97
118
|
},
|
|
98
119
|
},
|
|
99
|
-
required: ['reason_text', '
|
|
120
|
+
required: ['reason_text', 'TargetFile', 'Overwrite', 'CodeContent', 'EmptyFile', 'Description', 'Complexity'],
|
|
100
121
|
},
|
|
101
122
|
},
|
|
102
123
|
async execute(args, context) {
|
|
103
|
-
const {
|
|
124
|
+
const { TargetFile, CodeContent, Overwrite, EmptyFile } = args;
|
|
125
|
+
const file_path = TargetFile; // Map to internal variable
|
|
126
|
+
const content = EmptyFile ? '' : CodeContent;
|
|
104
127
|
const contextManager = context.contextManager;
|
|
105
128
|
const currentContext = contextManager.getCurrentContext();
|
|
106
129
|
if (currentContext.type === 'local') {
|
|
107
130
|
const fullPath = path.resolve(context.cwd, file_path);
|
|
108
131
|
// Ask for approval if file exists
|
|
109
132
|
if (fs.existsSync(fullPath)) {
|
|
133
|
+
if (!Overwrite) {
|
|
134
|
+
throw new Error(`File ${file_path} already exists. Set Overwrite to true if you intend to replace it.`);
|
|
135
|
+
}
|
|
110
136
|
// Show preview of new content for overwrite
|
|
111
137
|
const language = file_path.split('.').pop() || 'text';
|
|
112
138
|
const result = await context.requireApproval(`File ${file_path} already exists. Overwrite it?`, true, {
|
|
113
139
|
type: 'code',
|
|
114
140
|
content,
|
|
115
141
|
language
|
|
116
|
-
}, '
|
|
142
|
+
}, 'write_to_file', { file_path, operation: 'overwrite' });
|
|
117
143
|
if (typeof result === 'object' && 'feedback' in result) {
|
|
118
144
|
// User provided feedback - throw special error with feedback
|
|
119
145
|
throw new Error(`USER_FEEDBACK: ${result.feedback}`);
|
|
@@ -131,7 +157,7 @@ USAGE GUIDELINES:
|
|
|
131
157
|
const result = await context.requireApproval(`Create new file ${file_path}?`, false, {
|
|
132
158
|
type: 'diff',
|
|
133
159
|
content: diffContent
|
|
134
|
-
}, '
|
|
160
|
+
}, 'write_to_file', { file_path, operation: 'create' });
|
|
135
161
|
if (typeof result === 'object' && 'feedback' in result) {
|
|
136
162
|
// User provided feedback - throw special error with feedback
|
|
137
163
|
throw new Error(`USER_FEEDBACK: ${result.feedback}`);
|
|
@@ -150,7 +176,7 @@ USAGE GUIDELINES:
|
|
|
150
176
|
type: 'code',
|
|
151
177
|
content,
|
|
152
178
|
language
|
|
153
|
-
}, '
|
|
179
|
+
}, 'write_to_file', { file_path, operation: 'write_remote' });
|
|
154
180
|
if (typeof result === 'object' && 'feedback' in result) {
|
|
155
181
|
throw new Error(`USER_FEEDBACK: ${result.feedback}`);
|
|
156
182
|
}
|
|
@@ -170,18 +196,18 @@ export const editFileTool = {
|
|
|
170
196
|
IMPORTANT: You MUST provide a reason_text parameter explaining what change you are making and why. This will be shown to the user before the edit is applied.
|
|
171
197
|
|
|
172
198
|
CRITICAL REQUIREMENTS:
|
|
173
|
-
- 'search_pattern' must match the file content
|
|
174
|
-
-
|
|
175
|
-
- You
|
|
176
|
-
-
|
|
177
|
-
-
|
|
199
|
+
- 'search_pattern' must match the file content's meaningful tokens exactly.
|
|
200
|
+
- Leading and trailing whitespace/indentation around the pattern will be ignored for the match.
|
|
201
|
+
- You must still provide the full code block, but do not worry about exact indentation.
|
|
202
|
+
- The pattern must be UNIQUE in the file (appear exactly once).
|
|
203
|
+
- You MUST have read the file in a previous turn to know the exact content.
|
|
204
|
+
- Include surrounding context (2-3 lines) to ensure uniqueness.
|
|
178
205
|
|
|
179
206
|
COMMON MISTAKES TO AVOID:
|
|
180
|
-
- Guessing indentation (always read the file first)
|
|
181
207
|
- Using patterns that appear multiple times
|
|
182
|
-
- Forgetting trailing newlines or spaces
|
|
183
208
|
- Not including enough context for uniqueness
|
|
184
|
-
- Modifying
|
|
209
|
+
- Modifying the internal tokens of the code (variable names, strings, etc.)
|
|
210
|
+
- Including the line numbers (e.g., "1: ") in the search_pattern. Copy ONLY the code.`,
|
|
185
211
|
parameters: {
|
|
186
212
|
type: 'object',
|
|
187
213
|
properties: {
|
|
@@ -195,11 +221,8 @@ COMMON MISTAKES TO AVOID:
|
|
|
195
221
|
},
|
|
196
222
|
search_pattern: {
|
|
197
223
|
type: 'string',
|
|
198
|
-
description: `The EXACT block of text to replace. Must match character-for-character
|
|
199
|
-
|
|
200
|
-
- All newlines
|
|
201
|
-
- All special characters
|
|
202
|
-
Copy this directly from a recent read_file output. Do not guess or modify the content.`,
|
|
224
|
+
description: `The EXACT block of text to replace. Must match character-for-character (ignoring whitespace differences).
|
|
225
|
+
Copy this directly from a recent view_file output.`,
|
|
203
226
|
},
|
|
204
227
|
replacement: {
|
|
205
228
|
type: 'string',
|
|
@@ -230,29 +253,38 @@ Copy this directly from a recent read_file output. Do not guess or modify the co
|
|
|
230
253
|
if (currentContext.type === 'local') {
|
|
231
254
|
const fullPath = path.resolve(context.cwd, file_path);
|
|
232
255
|
if (!fs.existsSync(fullPath)) {
|
|
233
|
-
throw new Error(`File not found: ${file_path}
|
|
256
|
+
throw new Error(`File not found: ${file_path}\n\nAction: Verify the file path using 'list_directory'.`);
|
|
234
257
|
}
|
|
235
258
|
oldContent = fs.readFileSync(fullPath, 'utf-8');
|
|
236
259
|
}
|
|
237
260
|
else {
|
|
238
261
|
oldContent = await contextManager.readFile(file_path);
|
|
239
|
-
// For remote contexts, perform basic validation
|
|
240
|
-
if (!oldContent.includes(search_pattern)) {
|
|
241
|
-
throw new Error(`Pattern not found in file: ${search_pattern.substring(0, 100)}`);
|
|
242
|
-
}
|
|
243
|
-
const occurrences = oldContent.split(search_pattern).length - 1;
|
|
244
|
-
if (occurrences > 1) {
|
|
245
|
-
throw new Error(`Pattern appears ${occurrences} times. Please use a more specific pattern.`);
|
|
246
|
-
}
|
|
247
262
|
}
|
|
248
|
-
// Create
|
|
249
|
-
const
|
|
263
|
+
// Create flexible regex for matching and replacement
|
|
264
|
+
const { createFlexibleRegex } = await import('./validation.js');
|
|
265
|
+
const regex = createFlexibleRegex(search_pattern);
|
|
266
|
+
// SAFETY CHECK: Ensure we don't accidentally match 0 times or >1 times
|
|
267
|
+
// (In case file changed between validation and execution)
|
|
268
|
+
const matches = oldContent.match(regex);
|
|
269
|
+
if (!matches || matches.length === 0) {
|
|
270
|
+
throw new Error(`Pattern not found in file (even with flexible whitespace).`);
|
|
271
|
+
}
|
|
272
|
+
if (matches.length > 1) {
|
|
273
|
+
throw new Error(`Pattern matches ${matches.length} times. Search pattern must be unique.`);
|
|
274
|
+
}
|
|
275
|
+
// APPLY REPLACEMENT
|
|
276
|
+
// We use the regex to replace.
|
|
277
|
+
// Since we validated count === 1, the global 'g' flag is safe/necessary.
|
|
278
|
+
const newContent = oldContent.replace(regex, replacement);
|
|
250
279
|
// Build unified diff text for preview
|
|
251
280
|
const patch = Diff.createTwoFilesPatch(file_path, file_path, oldContent, newContent, '', '');
|
|
281
|
+
// Generate full diff with infinite context for "Full File" view
|
|
282
|
+
const fullDiff = Diff.createTwoFilesPatch(file_path, file_path, oldContent, newContent, '', '', { context: Number.MAX_SAFE_INTEGER });
|
|
252
283
|
// Ask for approval with diff preview
|
|
253
284
|
const approved = await context.requireApproval(`Apply these changes to ${file_path}${currentContext.type !== 'local' ? ` in ${currentContext.type} environment` : ''}?`, false, {
|
|
254
285
|
type: 'diff',
|
|
255
|
-
content: patch
|
|
286
|
+
content: patch,
|
|
287
|
+
fullDiff: fullDiff
|
|
256
288
|
}, 'edit_file', { file_path });
|
|
257
289
|
if (!approved) {
|
|
258
290
|
throw new Error('Operation cancelled by user.');
|
|
@@ -268,47 +300,43 @@ Copy this directly from a recent read_file output. Do not guess or modify the co
|
|
|
268
300
|
return `Successfully replaced pattern in ${file_path}${currentContext.type !== 'local' ? ` (${currentContext.type} environment)` : ''}`;
|
|
269
301
|
},
|
|
270
302
|
};
|
|
271
|
-
export const
|
|
303
|
+
export const listDirTool = {
|
|
272
304
|
schema: {
|
|
273
|
-
name: '
|
|
274
|
-
description: `List the contents of a directory.
|
|
275
|
-
|
|
276
|
-
IMPORTANT: You MUST provide a reason_text parameter explaining why you are listing this directory. This will be shown to the user before the listing is displayed.
|
|
305
|
+
name: 'list_dir',
|
|
306
|
+
description: `List the contents of a directory, i.e. all files and subdirectories that are children of the directory. Directory path must be an absolute path to a directory that exists.
|
|
277
307
|
|
|
278
|
-
|
|
279
|
-
- Use this to explore project structure before making changes
|
|
280
|
-
- Recursive listing helps understand nested directory structures
|
|
281
|
-
- Check directory contents before creating new files to avoid conflicts`,
|
|
308
|
+
IMPORTANT: You MUST provide a reason_text parameter explaining why you are listing this directory. This will be shown to the user.`,
|
|
282
309
|
parameters: {
|
|
283
310
|
type: 'object',
|
|
284
311
|
properties: {
|
|
285
312
|
reason_text: {
|
|
286
313
|
type: 'string',
|
|
287
|
-
description: 'REQUIRED: A brief explanation of why you are listing this directory.
|
|
314
|
+
description: 'REQUIRED: A brief explanation of why you are listing this directory.',
|
|
288
315
|
},
|
|
289
|
-
|
|
316
|
+
DirectoryPath: {
|
|
290
317
|
type: 'string',
|
|
291
|
-
description: '
|
|
318
|
+
description: 'Path to list contents of, should be absolute path to a directory',
|
|
292
319
|
},
|
|
293
320
|
recursive: {
|
|
294
321
|
type: 'boolean',
|
|
295
322
|
description: 'Optional: Whether to list subdirectories recursively. Defaults to false.',
|
|
296
323
|
},
|
|
297
324
|
},
|
|
298
|
-
required: ['reason_text', '
|
|
325
|
+
required: ['reason_text', 'DirectoryPath'],
|
|
299
326
|
},
|
|
300
327
|
},
|
|
301
328
|
async execute(args, context) {
|
|
302
|
-
const {
|
|
329
|
+
const { DirectoryPath, recursive = false } = args;
|
|
330
|
+
const directory_path = DirectoryPath; // Map to internal variable
|
|
303
331
|
const contextManager = context.contextManager;
|
|
304
332
|
const currentContext = contextManager.getCurrentContext();
|
|
305
333
|
if (currentContext.type === 'local') {
|
|
306
|
-
const fullPath = path.resolve(context.cwd, directory_path);
|
|
334
|
+
const fullPath = path.isAbsolute(directory_path) ? directory_path : path.resolve(context.cwd, directory_path);
|
|
307
335
|
if (!fs.existsSync(fullPath)) {
|
|
308
|
-
throw new Error(`Directory not found: ${directory_path}
|
|
336
|
+
throw new Error(`Directory not found: ${directory_path}\n\nAction: Check the path or use 'find_files' to locate the directory.`);
|
|
309
337
|
}
|
|
310
338
|
if (!fs.statSync(fullPath).isDirectory()) {
|
|
311
|
-
throw new Error(`Path is not a directory: ${directory_path}
|
|
339
|
+
throw new Error(`Path is not a directory: ${directory_path}\n\nAction: Verify the path points to a directory, not a file.`);
|
|
312
340
|
}
|
|
313
341
|
const contents = fileUtils.listDirectory(fullPath, recursive);
|
|
314
342
|
return `Directory: ${directory_path}\nTotal items: ${contents.length}\n\n${contents.join('\n')}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-ops.js","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-ops.js","sourceRoot":"","sources":["../../src/tools/file-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE;;;;;;;;;2IAS0H;QACvI,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kMAAkM;iBAChN;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+GAA+G;iBAC7H;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kHAAkH;iBAChI;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;SAC1C;KACF;IACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;QACzB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAClD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,2BAA2B;QAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,cAAgC,CAAC;QAChE,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAE1D,0CAA0C;QAC1C,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpC,uHAAuH;YACvH,4FAA4F;YAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAE/F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,0DAA0D,CAAC,CAAC;YAC1G,CAAC;YAED,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,CAAC;YAChC,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1F,OAAO,SAAS,SAAS,YAAY,KAAK,CAAC,MAAM,OAAO,eAAe,EAAE,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAEzD,gCAAgC;YAChC,IAAI,YAAY,GAAG,OAAO,CAAC;YAC3B,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7C,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAClD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,CAAC;YAChC,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1F,OAAO,SAAS,SAAS,YAAY,SAAS,OAAO,eAAe,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,MAAM,EAAE;QACN,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;;;;uGAIsF;QACnG,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mLAAmL;iBACjM;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kNAAkN;iBAChO;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2CAA2C;iBACzD;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yKAAyK;iBACvL;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,wLAAwL;iBACtM;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC;SAC9G;KACF;IACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;QACzB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,2BAA2B;QACzD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAE7C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAgC,CAAC;QAChE,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAE1D,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAEtD,kCAAkC;YAClC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,QAAQ,SAAS,qEAAqE,CAAC,CAAC;gBAC1G,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC;gBACtD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAC1C,QAAQ,SAAS,gCAAgC,EACjD,IAAI,EACJ;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO;oBACP,QAAQ;iBACT,EACD,eAAe,EACf,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CACtC,CAAC;gBAEF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;oBACvD,6DAA6D;oBAC7D,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvD,CAAC;gBAED,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,gFAAgF;gBAChF,sDAAsD;gBACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChD,MAAM,WAAW,GAAG,sBAAsB,SAAS,gBAAgB,KAAK,CAAC,MAAM,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAE9G,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAC1C,mBAAmB,SAAS,GAAG,EAC/B,KAAK,EACL;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,WAAW;iBACrB,EACD,eAAe,EACf,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CACnC,CAAC;gBAEF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;oBACvD,6DAA6D;oBAC7D,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvD,CAAC;gBAED,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvC,OAAO,sBAAsB,OAAO,CAAC,MAAM,kBAAkB,SAAS,EAAE,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAC1C,cAAc,SAAS,OAAO,cAAc,CAAC,IAAI,eAAe,EAChE,IAAI,EACJ;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO;gBACP,QAAQ;aACT,EACD,eAAe,EACf,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,CACzC,CAAC;YAEF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO,sBAAsB,OAAO,CAAC,MAAM,kBAAkB,SAAS,OAAO,cAAc,CAAC,IAAI,cAAc,CAAC;QACjH,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE;;;;;;;;;;;;;;;;sFAgBqE;QAClF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kMAAkM;iBAChN;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sEAAsE;iBACpF;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;mDAC4B;iBAC1C;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4GAA4G;iBAC1H;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,CAAC;SACxE;KACF;IACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;QACzB,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACxD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAgC,CAAC;QAChE,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAE1D,0CAA0C;QAC1C,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;YACtC,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,gBAAgB,CACvD,SAAS,EACT,cAAc,EACd,WAAW,EACX,OAAO,CAAC,GAAG,CACZ,CAAC;YAEF,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG;oBACnB,gBAAgB,CAAC,KAAK;oBACtB,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;iBAClF,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,UAAkB,CAAC;QACvB,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAEtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,0DAA0D,CAAC,CAAC;YAC1G,CAAC;YAED,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QAED,qDAAqD;QACrD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAElD,wEAAwE;QACxE,0DAA0D;QAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,wCAAwC,CAAC,CAAC;QAC7F,CAAC;QAED,oBAAoB;QACpB,gCAAgC;QAChC,yEAAyE;QACzE,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE1D,sCAAsC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CACpC,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,EAAE,EACF,EAAE,CACH,CAAC;QAEF,gEAAgE;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CACvC,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,EAAE,EACF,EAAE,EACF,EAAE,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAS,CAC5C,CAAC;QAEF,qCAAqC;QACrC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAC5C,0BAA0B,SAAS,GAAG,cAAc,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EACxH,KAAK,EACL;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,QAAQ;SACnB,EACD,WAAW,EACX,EAAE,SAAS,EAAE,CACd,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,oBAAoB;QACpB,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACtD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,oCAAoC,SAAS,GAAG,cAAc,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1I,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,MAAM,EAAE;QACN,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE;;mIAEkH;QAC/H,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sEAAsE;iBACpF;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kEAAkE;iBAChF;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,0EAA0E;iBACxF;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;SAC3C;KACF;IACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;QACzB,MAAM,EAAE,aAAa,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QAClD,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,2BAA2B;QACjE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAgC,CAAC;QAChE,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAE1D,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAE9G,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,cAAc,yEAAyE,CAAC,CAAC;YACnI,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,cAAc,gEAAgE,CAAC,CAAC;YAC9H,CAAC;YAED,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC9D,OAAO,cAAc,cAAc,kBAAkB,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7D,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,OAAO,cAAc,cAAc,KAAK,cAAc,CAAC,IAAI,+BAA+B,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxI,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/dist/tools/get-diff.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Tool } from './types.js';
|
|
1
2
|
export interface GetDiffParams {
|
|
2
3
|
filePath?: string;
|
|
3
4
|
staged?: boolean;
|
|
@@ -42,4 +43,8 @@ export declare class GetDiffTool {
|
|
|
42
43
|
*/
|
|
43
44
|
private handleError;
|
|
44
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Tool wrapper for the registry
|
|
48
|
+
*/
|
|
49
|
+
export declare const getDiffTool: Tool;
|
|
45
50
|
//# sourceMappingURL=get-diff.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-diff.d.ts","sourceRoot":"","sources":["../../src/tools/get-diff.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-diff.d.ts","sourceRoot":"","sources":["../../src/tools/get-diff.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAwB,MAAM,YAAY,CAAC;AAIxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,WAAW;IACtB;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAwCzE;;OAEG;YACW,iBAAiB;IAW/B;;OAEG;YACW,kBAAkB;IAWhC;;OAEG;YACW,eAAe;IAqB7B;;OAEG;YACW,aAAa;IAoB3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,WAAW;CAUpB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,IA+DzB,CAAC"}
|
package/dist/tools/get-diff.js
CHANGED
|
@@ -73,7 +73,7 @@ export class GetDiffTool {
|
|
|
73
73
|
const { stdout } = await execAsync(command, { cwd });
|
|
74
74
|
return stdout
|
|
75
75
|
.trim()
|
|
76
|
-
.split('
|
|
76
|
+
.split('\\n')
|
|
77
77
|
.filter(line => line.length > 0);
|
|
78
78
|
}
|
|
79
79
|
catch (error) {
|
|
@@ -103,7 +103,7 @@ export class GetDiffTool {
|
|
|
103
103
|
* Truncate diff output to 500 lines maximum
|
|
104
104
|
*/
|
|
105
105
|
truncateDiff(diff) {
|
|
106
|
-
const lines = diff.split('
|
|
106
|
+
const lines = diff.split('\\n');
|
|
107
107
|
const maxLines = 500;
|
|
108
108
|
if (lines.length <= maxLines) {
|
|
109
109
|
return { truncatedDiff: diff, wasTruncated: false };
|
|
@@ -114,7 +114,7 @@ export class GetDiffTool {
|
|
|
114
114
|
truncatedLines.push(`[Diff truncated: ${remainingLines} more lines not shown]`);
|
|
115
115
|
truncatedLines.push(`Total lines: ${lines.length}`);
|
|
116
116
|
return {
|
|
117
|
-
truncatedDiff: truncatedLines.join('
|
|
117
|
+
truncatedDiff: truncatedLines.join('\\n'),
|
|
118
118
|
wasTruncated: true,
|
|
119
119
|
};
|
|
120
120
|
}
|
|
@@ -122,7 +122,7 @@ export class GetDiffTool {
|
|
|
122
122
|
* Normalize file paths to use forward slashes
|
|
123
123
|
*/
|
|
124
124
|
normalizeFilePaths(files) {
|
|
125
|
-
return files.map(file => file.replace(
|
|
125
|
+
return files.map(file => file.replace(/\\\\/g, '/'));
|
|
126
126
|
}
|
|
127
127
|
/**
|
|
128
128
|
* Handle errors with helpful messages
|
|
@@ -131,8 +131,70 @@ export class GetDiffTool {
|
|
|
131
131
|
if (error.message) {
|
|
132
132
|
return error;
|
|
133
133
|
}
|
|
134
|
-
return new Error(`Failed to get diff: ${error.toString()}
|
|
134
|
+
return new Error(`Failed to get diff: ${error.toString()}\\n` +
|
|
135
135
|
'Suggestion: Ensure you are in a git repository and git is installed.');
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Tool wrapper for the registry
|
|
140
|
+
*/
|
|
141
|
+
export const getDiffTool = {
|
|
142
|
+
schema: {
|
|
143
|
+
name: 'get_diff',
|
|
144
|
+
description: `View changes in the working directory using git diff. Use this to verify your edits before completing a task.
|
|
145
|
+
|
|
146
|
+
WHEN TO USE:
|
|
147
|
+
- After making file edits to see what changed
|
|
148
|
+
- To verify changes before task completion
|
|
149
|
+
- To check if your modifications worked as expected
|
|
150
|
+
- To see if there are any uncommitted changes
|
|
151
|
+
|
|
152
|
+
IMPORTANT: Always call task_complete after reviewing the diff if the changes look correct.`,
|
|
153
|
+
parameters: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
properties: {
|
|
156
|
+
reason_text: {
|
|
157
|
+
type: 'string',
|
|
158
|
+
description: 'REQUIRED: Brief explanation of why you are checking the diff. Example: "Verifying that the port change was applied correctly"'
|
|
159
|
+
},
|
|
160
|
+
filePath: {
|
|
161
|
+
type: 'string',
|
|
162
|
+
description: 'Optional: Specific file to diff. If not provided, shows all changes.'
|
|
163
|
+
},
|
|
164
|
+
staged: {
|
|
165
|
+
type: 'boolean',
|
|
166
|
+
description: 'Optional: Show staged changes instead of unstaged. Default: false'
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
required: ['reason_text']
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
async execute(args, context) {
|
|
173
|
+
const tool = new GetDiffTool();
|
|
174
|
+
const params = {
|
|
175
|
+
filePath: args.filePath,
|
|
176
|
+
staged: args.staged
|
|
177
|
+
};
|
|
178
|
+
try {
|
|
179
|
+
const result = await tool.execute(params, context.cwd);
|
|
180
|
+
if (!result.hasChanges) {
|
|
181
|
+
return result.diff;
|
|
182
|
+
}
|
|
183
|
+
// Format the output
|
|
184
|
+
let output = `## Git Diff Results\\n\\n`;
|
|
185
|
+
output += `**Files Changed:** ${result.filesChanged.length}\\n`;
|
|
186
|
+
if (result.filesChanged.length > 0) {
|
|
187
|
+
output += result.filesChanged.map(f => ` - ${f}`).join('\\n') + '\\n';
|
|
188
|
+
}
|
|
189
|
+
output += `\\n${result.diff}\\n`;
|
|
190
|
+
if (result.truncated) {
|
|
191
|
+
output += `\\n**Note:** Output was truncated. Use filePath parameter to see specific file changes.\\n`;
|
|
192
|
+
}
|
|
193
|
+
return output;
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
throw new Error(`Get diff failed: ${error.message}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
};
|
|
138
200
|
//# sourceMappingURL=get-diff.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-diff.js","sourceRoot":"","sources":["../../src/tools/get-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"get-diff.js","sourceRoot":"","sources":["../../src/tools/get-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAclC,MAAM,OAAO,WAAW;IACtB;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAqB,EAAE,GAAW;QAC9C,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAE5C,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAE/B,yCAAyC;YACzC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAEnC,4BAA4B;YAC5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvE,8BAA8B;YAC9B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO;oBACL,IAAI,EAAE,+CAA+C;oBACrD,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,KAAK;oBACjB,SAAS,EAAE,KAAK;iBACjB,CAAC;YACJ,CAAC;YAED,sBAAsB;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE7D,wBAAwB;YACxB,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAEhE,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;gBACnD,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,YAAY;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,yBAAyB;gBACzB,kFAAkF,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAC1C,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,wBAAwB;gBACxB,sHAAsH,CACvH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,GAAW,EACX,MAAe,EACf,QAAiB;QAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,wBAAwB,UAAU,IAAI,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;QAEvE,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,OAAO,MAAM;iBACV,IAAI,EAAE;iBACN,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wDAAwD;YACxD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,GAAW,EACX,MAAe,EACf,QAAiB;QAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,YAAY,UAAU,IAAI,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;YAClF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,mCAAmC,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;YACpG,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC;QAErB,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;QAE/C,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC,oBAAoB,cAAc,wBAAwB,CAAC,CAAC;QAChF,cAAc,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAEpD,OAAO;YACL,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YACzC,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,KAAe;QACxC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAU;QAC5B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,KAAK,CACd,uBAAuB,KAAK,CAAC,QAAQ,EAAE,KAAK;YAC5C,sEAAsE,CACvE,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,MAAM,EAAE;QACN,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE;;;;;;;;2FAQ0E;QACvF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+HAA+H;iBAC7I;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sEAAsE;iBACpF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,mEAAmE;iBACjF;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;KACF;IAED,KAAK,CAAC,OAAO,CAAC,IAAyB,EAAE,OAA6B;QACpE,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAEvD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;YAED,oBAAoB;YACpB,IAAI,MAAM,GAAG,2BAA2B,CAAC;YACzC,MAAM,IAAI,sBAAsB,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAChE,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YACzE,CAAC;YACD,MAAM,IAAI,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC;YAEjC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,IAAI,4FAA4F,CAAC;YACzG,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF,CAAC"}
|