@involvex/super-agent-cli 0.0.39 → 0.0.46

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 (140) hide show
  1. package/bunfig.toml +43 -0
  2. package/dist/index.js +1190 -319
  3. package/dist/super-agent-cli.exe +0 -0
  4. package/package.json +4 -1
  5. package/.grok/settings.json +0 -3
  6. package/.super-agent/settings.json +0 -23
  7. package/dist/agent/grok-agent.d.ts +0 -54
  8. package/dist/agent/grok-agent.js +0 -638
  9. package/dist/agent/grok-agent.js.map +0 -1
  10. package/dist/agent/index.d.ts +0 -14
  11. package/dist/agent/index.js +0 -139
  12. package/dist/agent/index.js.map +0 -1
  13. package/dist/agent/super-agent.d.ts +0 -54
  14. package/dist/agent/super-agent.js +0 -638
  15. package/dist/agent/super-agent.js.map +0 -1
  16. package/dist/commands/mcp.d.ts +0 -2
  17. package/dist/commands/mcp.js +0 -247
  18. package/dist/commands/mcp.js.map +0 -1
  19. package/dist/core/client.d.ts +0 -49
  20. package/dist/core/client.js +0 -81
  21. package/dist/core/client.js.map +0 -1
  22. package/dist/core/tools.d.ts +0 -8
  23. package/dist/core/tools.js +0 -351
  24. package/dist/core/tools.js.map +0 -1
  25. package/dist/grok/client.d.ts +0 -49
  26. package/dist/grok/client.js +0 -81
  27. package/dist/grok/client.js.map +0 -1
  28. package/dist/grok/tools.d.ts +0 -8
  29. package/dist/grok/tools.js +0 -351
  30. package/dist/grok/tools.js.map +0 -1
  31. package/dist/hooks/use-enhanced-input.d.ts +0 -37
  32. package/dist/hooks/use-enhanced-input.js +0 -228
  33. package/dist/hooks/use-enhanced-input.js.map +0 -1
  34. package/dist/hooks/use-input-handler.d.ts +0 -34
  35. package/dist/hooks/use-input-handler.js +0 -607
  36. package/dist/hooks/use-input-handler.js.map +0 -1
  37. package/dist/hooks/use-input-history.d.ts +0 -9
  38. package/dist/hooks/use-input-history.js +0 -62
  39. package/dist/hooks/use-input-history.js.map +0 -1
  40. package/dist/index.d.ts +0 -2
  41. package/dist/index.js.map +0 -1
  42. package/dist/mcp/client.d.ts +0 -29
  43. package/dist/mcp/client.js +0 -127
  44. package/dist/mcp/client.js.map +0 -1
  45. package/dist/mcp/config.d.ts +0 -13
  46. package/dist/mcp/config.js +0 -45
  47. package/dist/mcp/config.js.map +0 -1
  48. package/dist/mcp/transports.d.ts +0 -51
  49. package/dist/mcp/transports.js +0 -229
  50. package/dist/mcp/transports.js.map +0 -1
  51. package/dist/tools/bash.d.ts +0 -10
  52. package/dist/tools/bash.js +0 -76
  53. package/dist/tools/bash.js.map +0 -1
  54. package/dist/tools/confirmation-tool.d.ts +0 -16
  55. package/dist/tools/confirmation-tool.js +0 -77
  56. package/dist/tools/confirmation-tool.js.map +0 -1
  57. package/dist/tools/index.d.ts +0 -6
  58. package/dist/tools/index.js +0 -7
  59. package/dist/tools/index.js.map +0 -1
  60. package/dist/tools/morph-editor.d.ts +0 -36
  61. package/dist/tools/morph-editor.js +0 -324
  62. package/dist/tools/morph-editor.js.map +0 -1
  63. package/dist/tools/search.d.ts +0 -69
  64. package/dist/tools/search.js +0 -307
  65. package/dist/tools/search.js.map +0 -1
  66. package/dist/tools/text-editor.d.ts +0 -26
  67. package/dist/tools/text-editor.js +0 -583
  68. package/dist/tools/text-editor.js.map +0 -1
  69. package/dist/tools/todo-tool.d.ts +0 -20
  70. package/dist/tools/todo-tool.js +0 -134
  71. package/dist/tools/todo-tool.js.map +0 -1
  72. package/dist/types/index.d.ts +0 -30
  73. package/dist/types/index.js +0 -2
  74. package/dist/types/index.js.map +0 -1
  75. package/dist/ui/app.d.ts +0 -6
  76. package/dist/ui/app.js +0 -76
  77. package/dist/ui/app.js.map +0 -1
  78. package/dist/ui/components/api-key-input.d.ts +0 -6
  79. package/dist/ui/components/api-key-input.js +0 -70
  80. package/dist/ui/components/api-key-input.js.map +0 -1
  81. package/dist/ui/components/chat-history.d.ts +0 -7
  82. package/dist/ui/components/chat-history.js +0 -136
  83. package/dist/ui/components/chat-history.js.map +0 -1
  84. package/dist/ui/components/chat-input.d.ts +0 -8
  85. package/dist/ui/components/chat-input.js +0 -47
  86. package/dist/ui/components/chat-input.js.map +0 -1
  87. package/dist/ui/components/chat-interface.d.ts +0 -7
  88. package/dist/ui/components/chat-interface.js +0 -213
  89. package/dist/ui/components/chat-interface.js.map +0 -1
  90. package/dist/ui/components/command-suggestions.d.ts +0 -16
  91. package/dist/ui/components/command-suggestions.js +0 -18
  92. package/dist/ui/components/command-suggestions.js.map +0 -1
  93. package/dist/ui/components/confirmation-dialog.d.ts +0 -10
  94. package/dist/ui/components/confirmation-dialog.js +0 -70
  95. package/dist/ui/components/confirmation-dialog.js.map +0 -1
  96. package/dist/ui/components/diff-renderer.d.ts +0 -13
  97. package/dist/ui/components/diff-renderer.js +0 -200
  98. package/dist/ui/components/diff-renderer.js.map +0 -1
  99. package/dist/ui/components/loading-spinner.d.ts +0 -7
  100. package/dist/ui/components/loading-spinner.js +0 -52
  101. package/dist/ui/components/loading-spinner.js.map +0 -1
  102. package/dist/ui/components/mcp-status.d.ts +0 -4
  103. package/dist/ui/components/mcp-status.js +0 -37
  104. package/dist/ui/components/mcp-status.js.map +0 -1
  105. package/dist/ui/components/model-selection.d.ts +0 -11
  106. package/dist/ui/components/model-selection.js +0 -9
  107. package/dist/ui/components/model-selection.js.map +0 -1
  108. package/dist/ui/shared/max-sized-box.d.ts +0 -8
  109. package/dist/ui/shared/max-sized-box.js +0 -6
  110. package/dist/ui/shared/max-sized-box.js.map +0 -1
  111. package/dist/ui/utils/code-colorizer.d.ts +0 -2
  112. package/dist/ui/utils/code-colorizer.js +0 -7
  113. package/dist/ui/utils/code-colorizer.js.map +0 -1
  114. package/dist/ui/utils/colors.d.ts +0 -14
  115. package/dist/ui/utils/colors.js +0 -15
  116. package/dist/ui/utils/colors.js.map +0 -1
  117. package/dist/ui/utils/markdown-renderer.d.ts +0 -3
  118. package/dist/ui/utils/markdown-renderer.js +0 -23
  119. package/dist/ui/utils/markdown-renderer.js.map +0 -1
  120. package/dist/utils/confirmation-service.d.ts +0 -33
  121. package/dist/utils/confirmation-service.js +0 -110
  122. package/dist/utils/confirmation-service.js.map +0 -1
  123. package/dist/utils/custom-instructions.d.ts +0 -1
  124. package/dist/utils/custom-instructions.js +0 -23
  125. package/dist/utils/custom-instructions.js.map +0 -1
  126. package/dist/utils/model-config.d.ts +0 -28
  127. package/dist/utils/model-config.js +0 -42
  128. package/dist/utils/model-config.js.map +0 -1
  129. package/dist/utils/settings-manager.d.ts +0 -99
  130. package/dist/utils/settings-manager.js +0 -286
  131. package/dist/utils/settings-manager.js.map +0 -1
  132. package/dist/utils/settings.d.ts +0 -1
  133. package/dist/utils/settings.js +0 -4
  134. package/dist/utils/settings.js.map +0 -1
  135. package/dist/utils/text-utils.d.ts +0 -80
  136. package/dist/utils/text-utils.js +0 -191
  137. package/dist/utils/text-utils.js.map +0 -1
  138. package/dist/utils/token-counter.d.ts +0 -33
  139. package/dist/utils/token-counter.js +0 -79
  140. package/dist/utils/token-counter.js.map +0 -1
@@ -1,307 +0,0 @@
1
- import { ConfirmationService } from "../utils/confirmation-service";
2
- import { spawn } from "child_process";
3
- import * as path from "path";
4
- import fs from "fs-extra";
5
- export class SearchTool {
6
- confirmationService = ConfirmationService.getInstance();
7
- currentDirectory = process.cwd();
8
- /**
9
- * Unified search method that can search for text content or find files
10
- */
11
- async search(query, options = {}) {
12
- try {
13
- const searchType = options.searchType || "both";
14
- const results = [];
15
- // Search for text content if requested
16
- if (searchType === "text" || searchType === "both") {
17
- const textResults = await this.executeRipgrep(query, options);
18
- results.push(...textResults.map(r => ({
19
- type: "text",
20
- file: r.file,
21
- line: r.line,
22
- column: r.column,
23
- text: r.text,
24
- match: r.match,
25
- })));
26
- }
27
- // Search for files if requested
28
- if (searchType === "files" || searchType === "both") {
29
- const fileResults = await this.findFilesByPattern(query, options);
30
- results.push(...fileResults.map(r => ({
31
- type: "file",
32
- file: r.path,
33
- score: r.score,
34
- })));
35
- }
36
- if (results.length === 0) {
37
- return {
38
- success: true,
39
- output: `No results found for "${query}"`,
40
- };
41
- }
42
- const formattedOutput = this.formatUnifiedResults(results, query, searchType);
43
- return {
44
- success: true,
45
- output: formattedOutput,
46
- };
47
- }
48
- catch (error) {
49
- return {
50
- success: false,
51
- error: `Search error: ${error.message}`,
52
- };
53
- }
54
- }
55
- /**
56
- * Execute ripgrep command with specified options
57
- */
58
- async executeRipgrep(query, options) {
59
- return new Promise((resolve, reject) => {
60
- const args = [
61
- "--json",
62
- "--with-filename",
63
- "--line-number",
64
- "--column",
65
- "--no-heading",
66
- "--color=never",
67
- ];
68
- // Add case sensitivity
69
- if (!options.caseSensitive) {
70
- args.push("--ignore-case");
71
- }
72
- // Add whole word matching
73
- if (options.wholeWord) {
74
- args.push("--word-regexp");
75
- }
76
- // Add regex mode
77
- if (!options.regex) {
78
- args.push("--fixed-strings");
79
- }
80
- // Add max results limit
81
- if (options.maxResults) {
82
- args.push("--max-count", options.maxResults.toString());
83
- }
84
- // Add file type filters
85
- if (options.fileTypes) {
86
- options.fileTypes.forEach(type => {
87
- args.push("--type", type);
88
- });
89
- }
90
- // Add include pattern
91
- if (options.includePattern) {
92
- args.push("--glob", options.includePattern);
93
- }
94
- // Add exclude pattern
95
- if (options.excludePattern) {
96
- args.push("--glob", `!${options.excludePattern}`);
97
- }
98
- // Add exclude files
99
- if (options.excludeFiles) {
100
- options.excludeFiles.forEach(file => {
101
- args.push("--glob", `!${file}`);
102
- });
103
- }
104
- // Respect gitignore and common ignore patterns
105
- args.push("--no-require-git", "--follow", "--glob", "!.git/**", "--glob", "!node_modules/**", "--glob", "!.DS_Store", "--glob", "!*.log");
106
- // Add query and search directory
107
- args.push(query, this.currentDirectory);
108
- const rg = spawn("rg", args);
109
- let output = "";
110
- let errorOutput = "";
111
- rg.stdout.on("data", data => {
112
- output += data.toString();
113
- });
114
- rg.stderr.on("data", data => {
115
- errorOutput += data.toString();
116
- });
117
- rg.on("close", code => {
118
- if (code === 0 || code === 1) {
119
- // 0 = found, 1 = not found
120
- const results = this.parseRipgrepOutput(output);
121
- resolve(results);
122
- }
123
- else {
124
- reject(new Error(`Ripgrep failed with code ${code}: ${errorOutput}`));
125
- }
126
- });
127
- rg.on("error", error => {
128
- reject(error);
129
- });
130
- });
131
- }
132
- /**
133
- * Parse ripgrep JSON output into SearchResult objects
134
- */
135
- parseRipgrepOutput(output) {
136
- const results = [];
137
- const lines = output
138
- .trim()
139
- .split("\n")
140
- .filter(line => line.length > 0);
141
- for (const line of lines) {
142
- try {
143
- const parsed = JSON.parse(line);
144
- if (parsed.type === "match") {
145
- const data = parsed.data;
146
- results.push({
147
- file: data.path.text,
148
- line: data.line_number,
149
- column: data.submatches[0]?.start || 0,
150
- text: data.lines.text.trim(),
151
- match: data.submatches[0]?.match?.text || "",
152
- });
153
- }
154
- }
155
- catch (e) {
156
- // Skip invalid JSON lines
157
- continue;
158
- }
159
- }
160
- return results;
161
- }
162
- /**
163
- * Find files by pattern using a simple file walking approach
164
- */
165
- async findFilesByPattern(pattern, options) {
166
- const files = [];
167
- const maxResults = options.maxResults || 50;
168
- const searchPattern = pattern.toLowerCase();
169
- const walkDir = async (dir, depth = 0) => {
170
- if (depth > 10 || files.length >= maxResults) {
171
- return;
172
- } // Prevent infinite recursion and limit results
173
- try {
174
- const entries = await fs.readdir(dir, { withFileTypes: true });
175
- for (const entry of entries) {
176
- if (files.length >= maxResults) {
177
- break;
178
- }
179
- const fullPath = path.join(dir, entry.name);
180
- const relativePath = path.relative(this.currentDirectory, fullPath);
181
- // Skip hidden files unless explicitly included
182
- if (!options.includeHidden && entry.name.startsWith(".")) {
183
- continue;
184
- }
185
- // Skip common directories
186
- if (entry.isDirectory() &&
187
- [
188
- "node_modules",
189
- ".git",
190
- ".svn",
191
- ".hg",
192
- "dist",
193
- "build",
194
- ".next",
195
- ".cache",
196
- ].includes(entry.name)) {
197
- continue;
198
- }
199
- // Apply exclude pattern
200
- if (options.excludePattern &&
201
- relativePath.includes(options.excludePattern)) {
202
- continue;
203
- }
204
- if (entry.isFile()) {
205
- const score = this.calculateFileScore(entry.name, relativePath, searchPattern);
206
- if (score > 0) {
207
- files.push({
208
- path: relativePath,
209
- name: entry.name,
210
- score,
211
- });
212
- }
213
- }
214
- else if (entry.isDirectory()) {
215
- await walkDir(fullPath, depth + 1);
216
- }
217
- }
218
- }
219
- catch (error) {
220
- // Skip directories we can't read
221
- }
222
- };
223
- await walkDir(this.currentDirectory);
224
- // Sort by score (descending) and return top results
225
- return files.sort((a, b) => b.score - a.score).slice(0, maxResults);
226
- }
227
- /**
228
- * Calculate fuzzy match score for file names
229
- */
230
- calculateFileScore(fileName, filePath, pattern) {
231
- const lowerFileName = fileName.toLowerCase();
232
- const lowerFilePath = filePath.toLowerCase();
233
- // Exact matches get highest score
234
- if (lowerFileName === pattern) {
235
- return 100;
236
- }
237
- if (lowerFileName.includes(pattern)) {
238
- return 80;
239
- }
240
- // Path matches get medium score
241
- if (lowerFilePath.includes(pattern)) {
242
- return 60;
243
- }
244
- // Fuzzy matching - check if all characters of pattern exist in order
245
- let patternIndex = 0;
246
- for (let i = 0; i < lowerFileName.length && patternIndex < pattern.length; i++) {
247
- if (lowerFileName[i] === pattern[patternIndex]) {
248
- patternIndex++;
249
- }
250
- }
251
- if (patternIndex === pattern.length) {
252
- // All characters found in order - score based on how close they are
253
- return Math.max(10, 40 - (fileName.length - pattern.length));
254
- }
255
- return 0;
256
- }
257
- /**
258
- * Format unified search results for display
259
- */
260
- formatUnifiedResults(results, query, searchType) {
261
- if (results.length === 0) {
262
- return `No results found for "${query}"`;
263
- }
264
- let output = `Search results for "${query}":\n`;
265
- // Separate text and file results
266
- const textResults = results.filter(r => r.type === "text");
267
- const fileResults = results.filter(r => r.type === "file");
268
- // Show all unique files (from both text matches and file matches)
269
- const allFiles = new Set();
270
- // Add files from text results
271
- textResults.forEach(result => {
272
- allFiles.add(result.file);
273
- });
274
- // Add files from file search results
275
- fileResults.forEach(result => {
276
- allFiles.add(result.file);
277
- });
278
- const fileList = Array.from(allFiles);
279
- const displayLimit = 8;
280
- // Show files in compact format
281
- fileList.slice(0, displayLimit).forEach(file => {
282
- // Count matches in this file for text results
283
- const matchCount = textResults.filter(r => r.file === file).length;
284
- const matchIndicator = matchCount > 0 ? ` (${matchCount} matches)` : "";
285
- output += ` ${file}${matchIndicator}\n`;
286
- });
287
- // Show "+X more" if there are additional results
288
- if (fileList.length > displayLimit) {
289
- const remaining = fileList.length - displayLimit;
290
- output += ` ... +${remaining} more\n`;
291
- }
292
- return output.trim();
293
- }
294
- /**
295
- * Update current working directory
296
- */
297
- setCurrentDirectory(directory) {
298
- this.currentDirectory = directory;
299
- }
300
- /**
301
- * Get current working directory
302
- */
303
- getCurrentDirectory() {
304
- return this.currentDirectory;
305
- }
306
- }
307
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AA0B1B,MAAM,OAAO,UAAU;IACb,mBAAmB,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC;IACxD,gBAAgB,GAAW,OAAO,CAAC,GAAG,EAAE,CAAC;IAEjD;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,UAWI,EAAE;QAEN,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;YAChD,MAAM,OAAO,GAA0B,EAAE,CAAC;YAE1C,uCAAuC;YACvC,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CACV,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvB,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC,CACJ,CAAC;YACJ,CAAC;YAED,gCAAgC;YAChC,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAClE,OAAO,CAAC,IAAI,CACV,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvB,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC,CACJ,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,yBAAyB,KAAK,GAAG;iBAC1C,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC/C,OAAO,EACP,KAAK,EACL,UAAU,CACX,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,eAAe;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,iBAAiB,KAAK,CAAC,OAAO,EAAE;aACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,KAAa,EACb,OASC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG;gBACX,QAAQ;gBACR,iBAAiB;gBACjB,eAAe;gBACf,UAAU;gBACV,cAAc;gBACd,eAAe;aAChB,CAAC;YAEF,uBAAuB;YACvB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC;YAED,0BAA0B;YAC1B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC;YAED,iBAAiB;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/B,CAAC;YAED,wBAAwB;YACxB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,wBAAwB;YACxB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACL,CAAC;YAED,sBAAsB;YACtB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAC9C,CAAC;YAED,sBAAsB;YACtB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,oBAAoB;YACpB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,+CAA+C;YAC/C,IAAI,CAAC,IAAI,CACP,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,QAAQ,CACT,CAAC;YAEF,iCAAiC;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAExC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC1B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC1B,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;gBACpB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC7B,2BAA2B;oBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;oBAChD,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACrB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,MAAc;QACvC,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM;aACjB,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;wBACpB,IAAI,EAAE,IAAI,CAAC,WAAW;wBACtB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;wBACtC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;wBAC5B,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE;qBAC7C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,0BAA0B;gBAC1B,SAAS;YACX,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,OAAe,EACf,OAIC;QAED,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAE5C,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAE,QAAgB,CAAC,EAAiB,EAAE;YACtE,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;gBAC7C,OAAO;YACT,CAAC,CAAC,+CAA+C;YAEjD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;wBAC/B,MAAM;oBACR,CAAC;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;oBAEpE,+CAA+C;oBAC/C,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACzD,SAAS;oBACX,CAAC;oBAED,0BAA0B;oBAC1B,IACE,KAAK,CAAC,WAAW,EAAE;wBACnB;4BACE,cAAc;4BACd,MAAM;4BACN,MAAM;4BACN,KAAK;4BACL,MAAM;4BACN,OAAO;4BACP,OAAO;4BACP,QAAQ;yBACT,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EACtB,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,wBAAwB;oBACxB,IACE,OAAO,CAAC,cAAc;wBACtB,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7C,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;wBACnB,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CACnC,KAAK,CAAC,IAAI,EACV,YAAY,EACZ,aAAa,CACd,CAAC;wBACF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;4BACd,KAAK,CAAC,IAAI,CAAC;gCACT,IAAI,EAAE,YAAY;gCAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,KAAK;6BACN,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBAC/B,MAAM,OAAO,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iCAAiC;YACnC,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAErC,oDAAoD;QACpD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,QAAgB,EAChB,QAAgB,EAChB,OAAe;QAEf,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE7C,kCAAkC;QAClC,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,gCAAgC;QAChC,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,qEAAqE;QACrE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,aAAa,CAAC,MAAM,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,EACzD,CAAC,EAAE,EACH,CAAC;YACD,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/C,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,YAAY,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,oEAAoE;YACpE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,OAA8B,EAC9B,KAAa,EACb,UAAkB;QAElB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,yBAAyB,KAAK,GAAG,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,GAAG,uBAAuB,KAAK,MAAM,CAAC;QAEhD,iCAAiC;QACjC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAE3D,kEAAkE;QAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAEnC,8BAA8B;QAC9B,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC3B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,CAAC,CAAC;QAEvB,+BAA+B;QAC/B,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC7C,8CAA8C;YAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;YACnE,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,IAAI,GAAG,cAAc,IAAI,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,iDAAiD;QACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC;YACjD,MAAM,IAAI,UAAU,SAAS,SAAS,CAAC;QACzC,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,SAAiB;QACnC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
@@ -1,26 +0,0 @@
1
- import { ToolResult, EditorCommand } from "../types/index";
2
- export declare class TextEditorTool {
3
- private editHistory;
4
- private confirmationService;
5
- view(filePath: string, viewRange?: [number, number]): Promise<ToolResult>;
6
- strReplace(filePath: string, oldStr: string, newStr: string, replaceAll?: boolean): Promise<ToolResult>;
7
- create(filePath: string, content: string): Promise<ToolResult>;
8
- replaceLines(filePath: string, startLine: number, endLine: number, newContent: string): Promise<ToolResult>;
9
- insert(filePath: string, insertLine: number, content: string): Promise<ToolResult>;
10
- undoEdit(): Promise<ToolResult>;
11
- private findFuzzyMatch;
12
- private normalizeForComparison;
13
- private isSimilarStructure;
14
- /**
15
- * Compute Longest Common Subsequence using dynamic programming
16
- * Returns array of indices in oldLines that are part of LCS
17
- */
18
- private computeLCS;
19
- /**
20
- * Extract changes from LCS table
21
- * Returns array of change regions
22
- */
23
- private extractChanges;
24
- private generateDiff;
25
- getEditHistory(): EditorCommand[];
26
- }