@sylix/coworker 1.1.4 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/cli/index.d.ts +7 -0
  2. package/dist/cli/index.d.ts.map +1 -0
  3. package/dist/cli/index.js +183 -0
  4. package/dist/cli/index.js.map +1 -0
  5. package/dist/config/SettingsManager.d.ts +25 -0
  6. package/dist/config/SettingsManager.d.ts.map +1 -0
  7. package/dist/config/SettingsManager.js +96 -0
  8. package/dist/config/SettingsManager.js.map +1 -0
  9. package/dist/core/CoWorkerAgent.d.ts +52 -0
  10. package/dist/core/CoWorkerAgent.d.ts.map +1 -0
  11. package/dist/core/CoWorkerAgent.js +308 -0
  12. package/dist/core/CoWorkerAgent.js.map +1 -0
  13. package/dist/mcp/MCPClientManager.d.ts +30 -0
  14. package/dist/mcp/MCPClientManager.d.ts.map +1 -0
  15. package/dist/mcp/MCPClientManager.js +100 -0
  16. package/dist/mcp/MCPClientManager.js.map +1 -0
  17. package/dist/permissions/PermissionInterceptor.d.ts +21 -0
  18. package/dist/permissions/PermissionInterceptor.d.ts.map +1 -0
  19. package/dist/permissions/PermissionInterceptor.js +104 -0
  20. package/dist/permissions/PermissionInterceptor.js.map +1 -0
  21. package/dist/session/SessionManager.d.ts +38 -0
  22. package/dist/session/SessionManager.d.ts.map +1 -0
  23. package/dist/session/SessionManager.js +129 -0
  24. package/dist/session/SessionManager.js.map +1 -0
  25. package/dist/skills/HookAndSkillManager.d.ts +37 -0
  26. package/dist/skills/HookAndSkillManager.d.ts.map +1 -0
  27. package/dist/skills/HookAndSkillManager.js +141 -0
  28. package/dist/skills/HookAndSkillManager.js.map +1 -0
  29. package/dist/task/TaskEngine.d.ts +29 -0
  30. package/dist/task/TaskEngine.d.ts.map +1 -0
  31. package/dist/task/TaskEngine.js +117 -0
  32. package/dist/task/TaskEngine.js.map +1 -0
  33. package/dist/tools/CronManager.d.ts +22 -0
  34. package/dist/tools/CronManager.d.ts.map +1 -0
  35. package/dist/tools/CronManager.js +44 -0
  36. package/dist/tools/CronManager.js.map +1 -0
  37. package/dist/tools/NativeTools.d.ts +33 -0
  38. package/dist/tools/NativeTools.d.ts.map +1 -0
  39. package/dist/tools/NativeTools.js +175 -0
  40. package/dist/tools/NativeTools.js.map +1 -0
  41. package/dist/tools/Schemas.d.ts +365 -0
  42. package/dist/tools/Schemas.d.ts.map +1 -0
  43. package/dist/tools/Schemas.js +177 -0
  44. package/dist/tools/Schemas.js.map +1 -0
  45. package/dist/ui/InkUI.d.ts +2 -0
  46. package/dist/ui/InkUI.d.ts.map +1 -0
  47. package/dist/ui/InkUI.js +11 -0
  48. package/dist/ui/InkUI.js.map +1 -0
  49. package/package.json +18 -8
  50. package/dist/agents/runner.d.ts +0 -19
  51. package/dist/agents/runner.d.ts.map +0 -1
  52. package/dist/agents/runner.js +0 -170
  53. package/dist/agents/runner.js.map +0 -1
  54. package/dist/api/sylix.d.ts +0 -53
  55. package/dist/api/sylix.d.ts.map +0 -1
  56. package/dist/api/sylix.js +0 -237
  57. package/dist/api/sylix.js.map +0 -1
  58. package/dist/cli.d.ts +0 -3
  59. package/dist/cli.d.ts.map +0 -1
  60. package/dist/cli.js +0 -369
  61. package/dist/cli.js.map +0 -1
  62. package/dist/commands/ask.d.ts +0 -2
  63. package/dist/commands/ask.d.ts.map +0 -1
  64. package/dist/commands/ask.js +0 -55
  65. package/dist/commands/ask.js.map +0 -1
  66. package/dist/commands/chat.d.ts +0 -8
  67. package/dist/commands/chat.d.ts.map +0 -1
  68. package/dist/commands/chat.js +0 -479
  69. package/dist/commands/chat.js.map +0 -1
  70. package/dist/commands/commit.d.ts +0 -2
  71. package/dist/commands/commit.d.ts.map +0 -1
  72. package/dist/commands/commit.js +0 -163
  73. package/dist/commands/commit.js.map +0 -1
  74. package/dist/commands/config.d.ts +0 -3
  75. package/dist/commands/config.d.ts.map +0 -1
  76. package/dist/commands/config.js +0 -101
  77. package/dist/commands/config.js.map +0 -1
  78. package/dist/commands/edit.d.ts +0 -2
  79. package/dist/commands/edit.d.ts.map +0 -1
  80. package/dist/commands/edit.js +0 -112
  81. package/dist/commands/edit.js.map +0 -1
  82. package/dist/commands/explain.d.ts +0 -2
  83. package/dist/commands/explain.d.ts.map +0 -1
  84. package/dist/commands/explain.js +0 -99
  85. package/dist/commands/explain.js.map +0 -1
  86. package/dist/commands/login.d.ts +0 -2
  87. package/dist/commands/login.d.ts.map +0 -1
  88. package/dist/commands/login.js +0 -151
  89. package/dist/commands/login.js.map +0 -1
  90. package/dist/commands/review.d.ts +0 -2
  91. package/dist/commands/review.d.ts.map +0 -1
  92. package/dist/commands/review.js +0 -137
  93. package/dist/commands/review.js.map +0 -1
  94. package/dist/commands/run.d.ts +0 -2
  95. package/dist/commands/run.d.ts.map +0 -1
  96. package/dist/commands/run.js +0 -136
  97. package/dist/commands/run.js.map +0 -1
  98. package/dist/config/settings.d.ts +0 -33
  99. package/dist/config/settings.d.ts.map +0 -1
  100. package/dist/config/settings.js +0 -72
  101. package/dist/config/settings.js.map +0 -1
  102. package/dist/context/reader.d.ts +0 -24
  103. package/dist/context/reader.d.ts.map +0 -1
  104. package/dist/context/reader.js +0 -209
  105. package/dist/context/reader.js.map +0 -1
  106. package/dist/hooks/engine.d.ts +0 -9
  107. package/dist/hooks/engine.d.ts.map +0 -1
  108. package/dist/hooks/engine.js +0 -85
  109. package/dist/hooks/engine.js.map +0 -1
  110. package/dist/mcp/client.d.ts +0 -15
  111. package/dist/mcp/client.d.ts.map +0 -1
  112. package/dist/mcp/client.js +0 -211
  113. package/dist/mcp/client.js.map +0 -1
  114. package/dist/mcp/transport.d.ts +0 -46
  115. package/dist/mcp/transport.d.ts.map +0 -1
  116. package/dist/mcp/transport.js +0 -196
  117. package/dist/mcp/transport.js.map +0 -1
  118. package/dist/memory/loader.d.ts +0 -41
  119. package/dist/memory/loader.d.ts.map +0 -1
  120. package/dist/memory/loader.js +0 -249
  121. package/dist/memory/loader.js.map +0 -1
  122. package/dist/permissions/manager.d.ts +0 -7
  123. package/dist/permissions/manager.d.ts.map +0 -1
  124. package/dist/permissions/manager.js +0 -125
  125. package/dist/permissions/manager.js.map +0 -1
  126. package/dist/scripts/postinstall.d.ts +0 -7
  127. package/dist/scripts/postinstall.d.ts.map +0 -1
  128. package/dist/scripts/postinstall.js +0 -23
  129. package/dist/scripts/postinstall.js.map +0 -1
  130. package/dist/session/memory.d.ts +0 -6
  131. package/dist/session/memory.d.ts.map +0 -1
  132. package/dist/session/memory.js +0 -81
  133. package/dist/session/memory.js.map +0 -1
  134. package/dist/session/store.d.ts +0 -19
  135. package/dist/session/store.d.ts.map +0 -1
  136. package/dist/session/store.js +0 -94
  137. package/dist/session/store.js.map +0 -1
  138. package/dist/tools/bash.d.ts +0 -2
  139. package/dist/tools/bash.d.ts.map +0 -1
  140. package/dist/tools/bash.js +0 -40
  141. package/dist/tools/bash.js.map +0 -1
  142. package/dist/tools/chrome.d.ts +0 -10
  143. package/dist/tools/chrome.d.ts.map +0 -1
  144. package/dist/tools/chrome.js +0 -228
  145. package/dist/tools/chrome.js.map +0 -1
  146. package/dist/tools/edit.d.ts +0 -2
  147. package/dist/tools/edit.d.ts.map +0 -1
  148. package/dist/tools/edit.js +0 -67
  149. package/dist/tools/edit.js.map +0 -1
  150. package/dist/tools/glob.d.ts +0 -10
  151. package/dist/tools/glob.d.ts.map +0 -1
  152. package/dist/tools/glob.js +0 -245
  153. package/dist/tools/glob.js.map +0 -1
  154. package/dist/tools/grep.d.ts +0 -10
  155. package/dist/tools/grep.d.ts.map +0 -1
  156. package/dist/tools/grep.js +0 -252
  157. package/dist/tools/grep.js.map +0 -1
  158. package/dist/tools/ls.d.ts +0 -2
  159. package/dist/tools/ls.d.ts.map +0 -1
  160. package/dist/tools/ls.js +0 -75
  161. package/dist/tools/ls.js.map +0 -1
  162. package/dist/tools/read.d.ts +0 -2
  163. package/dist/tools/read.d.ts.map +0 -1
  164. package/dist/tools/read.js +0 -72
  165. package/dist/tools/read.js.map +0 -1
  166. package/dist/tools/registry.d.ts +0 -3
  167. package/dist/tools/registry.d.ts.map +0 -1
  168. package/dist/tools/registry.js +0 -281
  169. package/dist/tools/registry.js.map +0 -1
  170. package/dist/tools/schema.json +0 -508
  171. package/dist/tools/task.d.ts +0 -11
  172. package/dist/tools/task.d.ts.map +0 -1
  173. package/dist/tools/task.js +0 -118
  174. package/dist/tools/task.js.map +0 -1
  175. package/dist/tools/web.d.ts +0 -3
  176. package/dist/tools/web.d.ts.map +0 -1
  177. package/dist/tools/web.js +0 -113
  178. package/dist/tools/web.js.map +0 -1
  179. package/dist/tools/write.d.ts +0 -18
  180. package/dist/tools/write.d.ts.map +0 -1
  181. package/dist/tools/write.js +0 -122
  182. package/dist/tools/write.js.map +0 -1
  183. package/dist/utils/output.d.ts +0 -62
  184. package/dist/utils/output.d.ts.map +0 -1
  185. package/dist/utils/output.js +0 -487
  186. package/dist/utils/output.js.map +0 -1
@@ -1,67 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.executeEdit = executeEdit;
37
- const fs = __importStar(require("fs-extra"));
38
- const path = __importStar(require("path"));
39
- async function executeEdit(argsObj) {
40
- const { file_path, old_string, new_string, replace_all } = argsObj;
41
- if (!file_path || old_string === undefined || new_string === undefined) {
42
- return 'Error: file_path, old_string, and new_string are required.';
43
- }
44
- try {
45
- const absolutePath = path.resolve(process.cwd(), file_path);
46
- if (!(await fs.pathExists(absolutePath))) {
47
- return `Error: File not found at ${absolutePath}`;
48
- }
49
- const content = await fs.readFile(absolutePath, 'utf8');
50
- if (!content.includes(old_string)) {
51
- return 'Error: old_string not found in file. Ensure exact spaces/tabs match.';
52
- }
53
- let modifiedContent = content;
54
- if (replace_all) {
55
- modifiedContent = content.split(old_string).join(new_string);
56
- }
57
- else {
58
- modifiedContent = content.replace(old_string, new_string);
59
- }
60
- await fs.writeFile(absolutePath, modifiedContent, 'utf8');
61
- return `Successfully edited ${absolutePath}`;
62
- }
63
- catch (err) {
64
- return `Error editing file: ${err.message}`;
65
- }
66
- }
67
- //# sourceMappingURL=edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,kCAkCC;AArCD,6CAA+B;AAC/B,2CAA6B;AAEtB,KAAK,UAAU,WAAW,CAAC,OAAY;IAC5C,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEnE,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACvE,OAAO,4DAA4D,CAAC;IACtE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;QAE5D,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO,4BAA4B,YAAY,EAAE,CAAC;QACpD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,OAAO,sEAAsE,CAAC;QAChF,CAAC;QAED,IAAI,eAAe,GAAG,OAAO,CAAC;QAE9B,IAAI,WAAW,EAAE,CAAC;YAChB,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAE1D,OAAO,uBAAuB,YAAY,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC;AACH,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Glob tool - Fast file pattern matching.
3
- * Supports glob patterns (e.g. star-star/star.ts).
4
- */
5
- export declare function executeGlob(argsObj: any): Promise<string>;
6
- /**
7
- * Get list of all available files (for autocomplete)
8
- */
9
- export declare function getFileList(cwd?: string, maxFiles?: number): Promise<string[]>;
10
- //# sourceMappingURL=glob.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"AA+CA;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C/D;AA+HD;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,EAAE,QAAQ,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAMxG"}
@@ -1,245 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.executeGlob = executeGlob;
37
- exports.getFileList = getFileList;
38
- const fs = __importStar(require("fs-extra"));
39
- const path = __importStar(require("path"));
40
- // Ignore patterns similar to .gitignore
41
- const IGNORE_DIRS = [
42
- 'node_modules',
43
- '.git',
44
- 'dist',
45
- 'build',
46
- '.next',
47
- 'out',
48
- 'coverage',
49
- '.nyc_output',
50
- '__pycache__',
51
- '.venv',
52
- 'venv',
53
- '.env',
54
- '.cache',
55
- '.parcel-cache',
56
- 'vendor',
57
- 'target'
58
- ];
59
- const IGNORE_FILES = [
60
- '.DS_Store',
61
- 'Thumbs.db',
62
- '*.log',
63
- '*.lock',
64
- 'package-lock.json',
65
- 'yarn.lock',
66
- 'pnpm-lock.yaml',
67
- '.env.local',
68
- '.env.*.local'
69
- ];
70
- /**
71
- * Glob tool - Fast file pattern matching.
72
- * Supports glob patterns (e.g. star-star/star.ts).
73
- */
74
- async function executeGlob(argsObj) {
75
- const { pattern, path: searchPath, ignore } = argsObj;
76
- if (!pattern) {
77
- return 'Error: pattern is required for Glob.';
78
- }
79
- const cwd = searchPath ? path.resolve(process.cwd(), searchPath) : process.cwd();
80
- try {
81
- const results = await globPattern(pattern, cwd, ignore);
82
- if (results.files.length === 0 && results.directories.length === 0) {
83
- return `No files found matching pattern: ${pattern}`;
84
- }
85
- // Format output similar to Claude Code
86
- let output = '';
87
- const allItems = [
88
- ...results.directories.map(d => ({ path: d, isDir: true })),
89
- ...results.files.map(f => ({ path: f, isDir: false }))
90
- ];
91
- // Limit output to avoid token overflow
92
- const maxItems = 100;
93
- const limitedItems = allItems.slice(0, maxItems);
94
- for (const item of limitedItems) {
95
- const prefix = item.isDir ? '[DIR] ' : '[FILE] ';
96
- output += prefix + item.path + '\n';
97
- }
98
- if (allItems.length > maxItems) {
99
- output += `\n... and ${allItems.length - maxItems} more items`;
100
- }
101
- output += `\n\nTotal: ${results.directories.length} directories, ${results.files.length} files`;
102
- return output;
103
- }
104
- catch (err) {
105
- return `Error in Glob: ${err.message}`;
106
- }
107
- }
108
- /**
109
- * Core glob pattern matching implementation
110
- */
111
- async function globPattern(pattern, cwd, customIgnore) {
112
- const files = [];
113
- const directories = [];
114
- const ignorePatterns = [...IGNORE_DIRS, ...IGNORE_FILES, ...(customIgnore || [])];
115
- // Convert glob pattern to regex and walk the directory
116
- const regex = globToRegex(pattern);
117
- const baseDir = getBaseDir(pattern, cwd);
118
- await walkDirectory(baseDir, regex, ignorePatterns, files, directories, cwd);
119
- return { files, directories };
120
- }
121
- /**
122
- * Convert glob pattern to regex
123
- */
124
- function globToRegex(pattern) {
125
- // Handle common glob patterns
126
- let regexStr = pattern
127
- // Escape special regex chars except glob special chars
128
- .replace(/[.+^${}()|[\]\\]/g, '\\$&')
129
- // Convert glob patterns to regex
130
- .replace(/\*\*/g, '{{GLOBSTAR}}')
131
- .replace(/\*/g, '[^/]*')
132
- .replace(/{{GLOBSTAR}}/g, '.*')
133
- .replace(/\?/g, '[^/]')
134
- // Handle character classes [abc]
135
- .replace(/\[([^\]]+)\]/g, '[$1]')
136
- // Handle {foo,bar} - not supported, treat as literal
137
- .replace(/\{[^}]+\}/g, match => match.replace(/,/g, ','));
138
- // Handle relative paths
139
- if (!pattern.startsWith('/') && !pattern.startsWith('**')) {
140
- regexStr = '^(.*/)?' + regexStr;
141
- }
142
- return new RegExp(regexStr + '$');
143
- }
144
- /**
145
- * Get base directory from pattern
146
- */
147
- function getBaseDir(pattern, cwd) {
148
- // Remove glob patterns to get the directory part
149
- let baseDir = pattern
150
- .replace(/\*\*.*$/, '')
151
- .replace(/\*.*$/, '')
152
- .replace(/\?.*$/, '')
153
- .replace(/\[.*$/, '');
154
- if (!baseDir || baseDir === '.') {
155
- return cwd;
156
- }
157
- return path.resolve(cwd, baseDir);
158
- }
159
- /**
160
- * Check if a path should be ignored
161
- */
162
- function shouldIgnore(name, ignorePatterns) {
163
- for (const pattern of ignorePatterns) {
164
- if (pattern.startsWith('*.')) {
165
- const ext = pattern.slice(1);
166
- if (name.endsWith(ext))
167
- return true;
168
- }
169
- else if (name === pattern) {
170
- return true;
171
- }
172
- else if (pattern.includes('*')) {
173
- const regex = new RegExp('^' + pattern.replace(/\*/g, '.*') + '$');
174
- if (regex.test(name))
175
- return true;
176
- }
177
- }
178
- return false;
179
- }
180
- /**
181
- * Recursively walk directory
182
- */
183
- async function walkDirectory(dir, pattern, ignorePatterns, files, directories, rootDir) {
184
- try {
185
- const entries = await fs.readdir(dir, { withFileTypes: true });
186
- for (const entry of entries) {
187
- if (shouldIgnore(entry.name, ignorePatterns)) {
188
- continue;
189
- }
190
- const fullPath = path.join(dir, entry.name);
191
- const relativePath = path.relative(rootDir, fullPath);
192
- // Check if matches pattern
193
- if (pattern.test(relativePath) || pattern.test(entry.name)) {
194
- if (entry.isDirectory()) {
195
- directories.push(relativePath);
196
- // Recurse into matching directories
197
- await walkDirectory(fullPath, pattern, ignorePatterns, files, directories, rootDir);
198
- }
199
- else {
200
- files.push(relativePath);
201
- }
202
- }
203
- else if (entry.isDirectory()) {
204
- // Still recurse into directories that might contain matches
205
- await walkDirectory(fullPath, pattern, ignorePatterns, files, directories, rootDir);
206
- }
207
- }
208
- }
209
- catch (err) {
210
- // Ignore permission errors
211
- }
212
- }
213
- /**
214
- * Get list of all available files (for autocomplete)
215
- */
216
- async function getFileList(cwd = process.cwd(), maxFiles = 500) {
217
- const files = [];
218
- await walkForFiles(cwd, files, maxFiles);
219
- return files;
220
- }
221
- async function walkForFiles(dir, files, maxFiles) {
222
- if (files.length >= maxFiles)
223
- return;
224
- try {
225
- const entries = await fs.readdir(dir, { withFileTypes: true });
226
- for (const entry of entries) {
227
- if (files.length >= maxFiles)
228
- break;
229
- if (IGNORE_DIRS.includes(entry.name) || IGNORE_FILES.includes(entry.name)) {
230
- continue;
231
- }
232
- const fullPath = path.join(dir, entry.name);
233
- if (entry.isDirectory()) {
234
- await walkForFiles(fullPath, files, maxFiles);
235
- }
236
- else {
237
- files.push(path.relative(process.cwd(), fullPath));
238
- }
239
- }
240
- }
241
- catch (err) {
242
- // Ignore permission errors
243
- }
244
- }
245
- //# sourceMappingURL=glob.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Grep tool - Content search using regex
3
- * Similar to ripgrep but implemented in pure JavaScript
4
- */
5
- export declare function executeGrep(argsObj: any): Promise<string>;
6
- /**
7
- * Simple grep that returns files containing pattern
8
- */
9
- export declare function grepFiles(pattern: string, searchPath?: string): Promise<string[]>;
10
- //# sourceMappingURL=grep.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AA4CA;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CA2F/D;AA2FD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB"}
@@ -1,252 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.executeGrep = executeGrep;
37
- exports.grepFiles = grepFiles;
38
- const fs = __importStar(require("fs-extra"));
39
- const path = __importStar(require("path"));
40
- // Ignore patterns
41
- const IGNORE_DIRS = [
42
- 'node_modules',
43
- '.git',
44
- 'dist',
45
- 'build',
46
- '.next',
47
- 'out',
48
- 'coverage',
49
- '__pycache__',
50
- '.venv',
51
- 'venv'
52
- ];
53
- const IGNORE_FILES = [
54
- '.DS_Store',
55
- 'Thumbs.db',
56
- '*.log',
57
- '*.lock',
58
- 'package-lock.json',
59
- 'yarn.lock',
60
- 'pnpm-lock.yaml'
61
- ];
62
- /**
63
- * Grep tool - Content search using regex
64
- * Similar to ripgrep but implemented in pure JavaScript
65
- */
66
- async function executeGrep(argsObj) {
67
- const { pattern, path: searchPath, output_mode = 'content', glob, ignore, context = 0, caseInsensitive = false, head_limit = 100 } = argsObj;
68
- if (!pattern) {
69
- return 'Error: pattern is required for Grep.';
70
- }
71
- const cwd = searchPath ? path.resolve(process.cwd(), searchPath) : process.cwd();
72
- try {
73
- // Build regex
74
- let regex;
75
- try {
76
- regex = new RegExp(pattern, caseInsensitive ? 'i' : '');
77
- }
78
- catch (e) {
79
- return `Error: Invalid regex pattern: ${pattern}`;
80
- }
81
- // Get file extensions to search
82
- const extensions = glob
83
- ? (Array.isArray(glob) ? glob : [glob]).map(g => g.replace(/^\*\./, ''))
84
- : null;
85
- // Build ignore list
86
- const ignoreList = [
87
- ...IGNORE_DIRS,
88
- ...IGNORE_FILES,
89
- ...(ignore ? (Array.isArray(ignore) ? ignore : [ignore]) : [])
90
- ];
91
- const matches = [];
92
- const filesSearched = new Set();
93
- // Walk directory and search
94
- await searchDirectory(cwd, regex, matches, filesSearched, extensions, ignoreList, context, head_limit);
95
- if (matches.length === 0) {
96
- return `No matches found for: ${pattern}`;
97
- }
98
- // Format output based on output_mode
99
- if (output_mode === 'files_with_matches') {
100
- const files = [...new Set(matches.map(m => m.file))];
101
- return files.join('\n');
102
- }
103
- if (output_mode === 'count') {
104
- const counts = {};
105
- for (const match of matches) {
106
- counts[match.file] = (counts[match.file] || 0) + 1;
107
- }
108
- let output = '';
109
- for (const [file, count] of Object.entries(counts)) {
110
- output += `${count} ${file}\n`;
111
- }
112
- return output;
113
- }
114
- // Default: content mode
115
- let output = '';
116
- let currentFile = '';
117
- for (const match of matches) {
118
- if (match.file !== currentFile) {
119
- currentFile = match.file;
120
- output += `\n${match.file}\n`;
121
- output += '─'.repeat(50) + '\n';
122
- }
123
- if (context > 0) {
124
- // Show context lines
125
- output += ` ${match.line_number}\t${match.line}\n`;
126
- }
127
- else {
128
- output += ` ${match.line_number}\t${match.line}\n`;
129
- }
130
- }
131
- const summary = `\n\nTotal: ${matches.length} matches across ${new Set(matches.map(m => m.file)).size} files`;
132
- return output + summary;
133
- }
134
- catch (err) {
135
- return `Error in Grep: ${err.message}`;
136
- }
137
- }
138
- /**
139
- * Search directory for pattern
140
- */
141
- async function searchDirectory(dir, pattern, matches, filesSearched, extensions, ignoreList, context, maxMatches) {
142
- if (matches.length >= maxMatches)
143
- return;
144
- try {
145
- const entries = await fs.readdir(dir, { withFileTypes: true });
146
- for (const entry of entries) {
147
- if (matches.length >= maxMatches)
148
- break;
149
- const fullPath = path.join(dir, entry.name);
150
- if (entry.isDirectory()) {
151
- if (!IGNORE_DIRS.includes(entry.name) && !ignoreList.includes(entry.name)) {
152
- await searchDirectory(fullPath, pattern, matches, filesSearched, extensions, ignoreList, context, maxMatches);
153
- }
154
- }
155
- else if (entry.isFile()) {
156
- // Check if should ignore
157
- if (IGNORE_FILES.includes(entry.name) || ignoreList.includes(entry.name)) {
158
- continue;
159
- }
160
- // Check extension filter
161
- if (extensions) {
162
- const ext = path.extname(entry.name).slice(1);
163
- if (!extensions.includes(ext))
164
- continue;
165
- }
166
- const relativePath = path.relative(process.cwd(), fullPath);
167
- filesSearched.add(relativePath);
168
- // Search in file
169
- const fileMatches = await searchFile(fullPath, pattern, context);
170
- matches.push(...fileMatches);
171
- }
172
- }
173
- }
174
- catch (err) {
175
- // Ignore permission errors
176
- }
177
- }
178
- /**
179
- * Search in a single file
180
- */
181
- async function searchFile(filePath, pattern, context) {
182
- const matches = [];
183
- const relativePath = path.relative(process.cwd(), filePath);
184
- try {
185
- const content = await fs.readFile(filePath, 'utf-8');
186
- const lines = content.split('\n');
187
- for (let i = 0; i < lines.length; i++) {
188
- if (pattern.test(lines[i])) {
189
- // Get context lines
190
- const startLine = Math.max(0, i - context);
191
- const endLine = Math.min(lines.length - 1, i + context);
192
- for (let j = startLine; j <= endLine; j++) {
193
- matches.push({
194
- file: relativePath,
195
- line_number: j + 1,
196
- line: lines[j]
197
- });
198
- }
199
- }
200
- }
201
- }
202
- catch (err) {
203
- // Skip files that can't be read
204
- }
205
- return matches;
206
- }
207
- /**
208
- * Simple grep that returns files containing pattern
209
- */
210
- async function grepFiles(pattern, searchPath) {
211
- const cwd = searchPath ? path.resolve(process.cwd(), searchPath) : process.cwd();
212
- let regex;
213
- try {
214
- regex = new RegExp(pattern, 'i');
215
- }
216
- catch {
217
- return [];
218
- }
219
- const matchingFiles = [];
220
- await findMatchingFiles(cwd, regex, matchingFiles);
221
- return matchingFiles;
222
- }
223
- async function findMatchingFiles(dir, pattern, results) {
224
- try {
225
- const entries = await fs.readdir(dir, { withFileTypes: true });
226
- for (const entry of entries) {
227
- if (IGNORE_DIRS.includes(entry.name))
228
- continue;
229
- if (IGNORE_FILES.includes(entry.name))
230
- continue;
231
- const fullPath = path.join(dir, entry.name);
232
- if (entry.isDirectory()) {
233
- await findMatchingFiles(fullPath, pattern, results);
234
- }
235
- else if (entry.isFile()) {
236
- try {
237
- const content = await fs.readFile(fullPath, 'utf-8');
238
- if (pattern.test(content)) {
239
- results.push(path.relative(process.cwd(), fullPath));
240
- }
241
- }
242
- catch {
243
- // Skip
244
- }
245
- }
246
- }
247
- }
248
- catch {
249
- // Ignore
250
- }
251
- }
252
- //# sourceMappingURL=grep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function executeLs(argsObj: any): Promise<string>;
2
- //# sourceMappingURL=ls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ls.d.ts","sourceRoot":"","sources":["../../src/tools/ls.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC7D"}