@codemieai/code 0.0.2 → 0.0.3

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 (243) hide show
  1. package/CLAUDE.md +130 -760
  2. package/README.md +283 -695
  3. package/bin/codemie-claude.js +122 -0
  4. package/bin/codemie-code.js +90 -15
  5. package/bin/codemie-codex.js +138 -0
  6. package/bin/codemie.js +1 -1
  7. package/config.example.json +10 -0
  8. package/dist/agents/adapters/claude-code.d.ts +2 -2
  9. package/dist/agents/adapters/claude-code.d.ts.map +1 -1
  10. package/dist/agents/adapters/claude-code.js +20 -42
  11. package/dist/agents/adapters/claude-code.js.map +1 -1
  12. package/dist/agents/adapters/codemie-code.d.ts +11 -2
  13. package/dist/agents/adapters/codemie-code.d.ts.map +1 -1
  14. package/dist/agents/adapters/codemie-code.js +93 -25
  15. package/dist/agents/adapters/codemie-code.js.map +1 -1
  16. package/dist/agents/adapters/codex.d.ts +2 -2
  17. package/dist/agents/adapters/codex.d.ts.map +1 -1
  18. package/dist/agents/adapters/codex.js +31 -24
  19. package/dist/agents/adapters/codex.js.map +1 -1
  20. package/dist/agents/codemie-code/agent.d.ts +89 -0
  21. package/dist/agents/codemie-code/agent.d.ts.map +1 -0
  22. package/dist/agents/codemie-code/agent.js +523 -0
  23. package/dist/agents/codemie-code/agent.js.map +1 -0
  24. package/dist/agents/codemie-code/config.d.ts +40 -0
  25. package/dist/agents/codemie-code/config.d.ts.map +1 -0
  26. package/dist/agents/codemie-code/config.js +276 -0
  27. package/dist/agents/codemie-code/config.js.map +1 -0
  28. package/dist/agents/codemie-code/filters.d.ts +91 -0
  29. package/dist/agents/codemie-code/filters.d.ts.map +1 -0
  30. package/dist/agents/codemie-code/filters.js +328 -0
  31. package/dist/agents/codemie-code/filters.js.map +1 -0
  32. package/dist/agents/codemie-code/index.d.ts +78 -0
  33. package/dist/agents/codemie-code/index.d.ts.map +1 -0
  34. package/dist/agents/codemie-code/index.js +259 -0
  35. package/dist/agents/codemie-code/index.js.map +1 -0
  36. package/dist/agents/codemie-code/prompts.d.ts +11 -0
  37. package/dist/agents/codemie-code/prompts.d.ts.map +1 -0
  38. package/dist/agents/codemie-code/prompts.js +31 -0
  39. package/dist/agents/codemie-code/prompts.js.map +1 -0
  40. package/dist/agents/codemie-code/streaming/events.d.ts +7 -0
  41. package/dist/agents/codemie-code/streaming/events.d.ts.map +1 -0
  42. package/dist/agents/codemie-code/streaming/events.js +7 -0
  43. package/dist/agents/codemie-code/streaming/events.js.map +1 -0
  44. package/dist/agents/codemie-code/streaming/formatter.d.ts +2 -0
  45. package/dist/agents/codemie-code/streaming/formatter.d.ts.map +1 -0
  46. package/dist/agents/codemie-code/streaming/formatter.js +2 -0
  47. package/dist/agents/codemie-code/streaming/formatter.js.map +1 -0
  48. package/dist/agents/codemie-code/streaming/ui.d.ts +2 -0
  49. package/dist/agents/codemie-code/streaming/ui.d.ts.map +1 -0
  50. package/dist/agents/codemie-code/streaming/ui.js +2 -0
  51. package/dist/agents/codemie-code/streaming/ui.js.map +1 -0
  52. package/dist/agents/codemie-code/tokenUtils.d.ts +108 -0
  53. package/dist/agents/codemie-code/tokenUtils.d.ts.map +1 -0
  54. package/dist/agents/codemie-code/tokenUtils.js +220 -0
  55. package/dist/agents/codemie-code/tokenUtils.js.map +1 -0
  56. package/dist/agents/codemie-code/toolMetadata.d.ts +15 -0
  57. package/dist/agents/codemie-code/toolMetadata.d.ts.map +1 -0
  58. package/dist/agents/codemie-code/toolMetadata.js +315 -0
  59. package/dist/agents/codemie-code/toolMetadata.js.map +1 -0
  60. package/dist/agents/codemie-code/tools/command.d.ts +2 -0
  61. package/dist/agents/codemie-code/tools/command.d.ts.map +1 -0
  62. package/dist/agents/codemie-code/tools/command.js +2 -0
  63. package/dist/agents/codemie-code/tools/command.js.map +1 -0
  64. package/dist/agents/codemie-code/tools/filesystem.d.ts +2 -0
  65. package/dist/agents/codemie-code/tools/filesystem.d.ts.map +1 -0
  66. package/dist/agents/codemie-code/tools/filesystem.js +2 -0
  67. package/dist/agents/codemie-code/tools/filesystem.js.map +1 -0
  68. package/dist/agents/codemie-code/tools/git.d.ts +2 -0
  69. package/dist/agents/codemie-code/tools/git.d.ts.map +1 -0
  70. package/dist/agents/codemie-code/tools/git.js +2 -0
  71. package/dist/agents/codemie-code/tools/git.js.map +1 -0
  72. package/dist/agents/codemie-code/tools/index.d.ts +19 -0
  73. package/dist/agents/codemie-code/tools/index.d.ts.map +1 -0
  74. package/dist/agents/codemie-code/tools/index.js +239 -0
  75. package/dist/agents/codemie-code/tools/index.js.map +1 -0
  76. package/dist/agents/codemie-code/tools/security.d.ts +2 -0
  77. package/dist/agents/codemie-code/tools/security.d.ts.map +1 -0
  78. package/dist/agents/codemie-code/tools/security.js +2 -0
  79. package/dist/agents/codemie-code/tools/security.js.map +1 -0
  80. package/dist/agents/codemie-code/types.d.ts +254 -0
  81. package/dist/agents/codemie-code/types.d.ts.map +1 -0
  82. package/dist/agents/codemie-code/types.js +35 -0
  83. package/dist/agents/codemie-code/types.js.map +1 -0
  84. package/dist/agents/codemie-code/ui.d.ts +83 -0
  85. package/dist/agents/codemie-code/ui.d.ts.map +1 -0
  86. package/dist/agents/codemie-code/ui.js +624 -0
  87. package/dist/agents/codemie-code/ui.js.map +1 -0
  88. package/dist/agents/registry.d.ts +1 -1
  89. package/dist/agents/registry.d.ts.map +1 -1
  90. package/dist/agents/registry.js +7 -13
  91. package/dist/agents/registry.js.map +1 -1
  92. package/dist/cli/commands/config.d.ts +3 -0
  93. package/dist/cli/commands/config.d.ts.map +1 -0
  94. package/dist/cli/commands/config.js +323 -0
  95. package/dist/cli/commands/config.js.map +1 -0
  96. package/dist/cli/commands/doctor.d.ts.map +1 -1
  97. package/dist/cli/commands/doctor.js +113 -69
  98. package/dist/cli/commands/doctor.js.map +1 -1
  99. package/dist/cli/commands/env.d.ts +3 -0
  100. package/dist/cli/commands/env.d.ts.map +1 -0
  101. package/dist/cli/commands/env.js +19 -0
  102. package/dist/cli/commands/env.js.map +1 -0
  103. package/dist/cli/commands/install.js +27 -33
  104. package/dist/cli/commands/install.js.map +1 -1
  105. package/dist/cli/commands/list.js +18 -24
  106. package/dist/cli/commands/list.js.map +1 -1
  107. package/dist/cli/commands/run.d.ts.map +1 -1
  108. package/dist/cli/commands/run.js +291 -31
  109. package/dist/cli/commands/run.js.map +1 -1
  110. package/dist/cli/commands/setup.d.ts +3 -0
  111. package/dist/cli/commands/setup.d.ts.map +1 -0
  112. package/dist/cli/commands/setup.js +357 -0
  113. package/dist/cli/commands/setup.js.map +1 -0
  114. package/dist/cli/commands/uninstall.js +24 -30
  115. package/dist/cli/commands/uninstall.js.map +1 -1
  116. package/dist/cli/commands/version.d.ts.map +1 -1
  117. package/dist/cli/commands/version.js +11 -16
  118. package/dist/cli/commands/version.js.map +1 -1
  119. package/dist/cli/index.js +47 -31
  120. package/dist/cli/index.js.map +1 -1
  121. package/dist/env/manager.js +9 -46
  122. package/dist/env/manager.js.map +1 -1
  123. package/dist/index.d.ts +6 -13
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +6 -43
  126. package/dist/index.js.map +1 -1
  127. package/dist/utils/async-tips.d.ts.map +1 -1
  128. package/dist/utils/async-tips.js +16 -55
  129. package/dist/utils/async-tips.js.map +1 -1
  130. package/dist/utils/clipboard.d.ts +16 -0
  131. package/dist/utils/clipboard.d.ts.map +1 -0
  132. package/dist/utils/clipboard.js +179 -0
  133. package/dist/utils/clipboard.js.map +1 -0
  134. package/dist/utils/config-loader.d.ts +96 -0
  135. package/dist/utils/config-loader.d.ts.map +1 -0
  136. package/dist/utils/config-loader.js +351 -0
  137. package/dist/utils/config-loader.js.map +1 -0
  138. package/dist/utils/dirname.d.ts +7 -0
  139. package/dist/utils/dirname.d.ts.map +1 -0
  140. package/dist/utils/dirname.js +11 -0
  141. package/dist/utils/dirname.js.map +1 -0
  142. package/dist/utils/errors.js +7 -17
  143. package/dist/utils/errors.js.map +1 -1
  144. package/dist/utils/exec.js +3 -6
  145. package/dist/utils/exec.js.map +1 -1
  146. package/dist/utils/first-time.d.ts +34 -0
  147. package/dist/utils/first-time.d.ts.map +1 -0
  148. package/dist/utils/first-time.js +245 -0
  149. package/dist/utils/first-time.js.map +1 -0
  150. package/dist/utils/health-checker.d.ts +20 -0
  151. package/dist/utils/health-checker.d.ts.map +1 -0
  152. package/dist/utils/health-checker.js +168 -0
  153. package/dist/utils/health-checker.js.map +1 -0
  154. package/dist/utils/logger.js +12 -18
  155. package/dist/utils/logger.js.map +1 -1
  156. package/dist/utils/model-fetcher.d.ts +21 -0
  157. package/dist/utils/model-fetcher.d.ts.map +1 -0
  158. package/dist/utils/model-fetcher.js +137 -0
  159. package/dist/utils/model-fetcher.js.map +1 -0
  160. package/dist/utils/tips.d.ts.map +1 -1
  161. package/dist/utils/tips.js +13 -52
  162. package/dist/utils/tips.js.map +1 -1
  163. package/package.json +17 -23
  164. package/scripts/README.md +80 -0
  165. package/scripts/release.sh +156 -0
  166. package/dist/agents/adapters/aider.d.ts +0 -12
  167. package/dist/agents/adapters/aider.d.ts.map +0 -1
  168. package/dist/agents/adapters/aider.js +0 -80
  169. package/dist/agents/adapters/aider.js.map +0 -1
  170. package/dist/cli/cli.d.ts +0 -4
  171. package/dist/cli/cli.d.ts.map +0 -1
  172. package/dist/cli/cli.js +0 -107
  173. package/dist/cli/cli.js.map +0 -1
  174. package/dist/cli/commands/mcp.d.ts +0 -3
  175. package/dist/cli/commands/mcp.d.ts.map +0 -1
  176. package/dist/cli/commands/mcp.js +0 -459
  177. package/dist/cli/commands/mcp.js.map +0 -1
  178. package/dist/code/agent-events.d.ts +0 -39
  179. package/dist/code/agent-events.d.ts.map +0 -1
  180. package/dist/code/agent-events.js +0 -4
  181. package/dist/code/agent-events.js.map +0 -1
  182. package/dist/code/agent.d.ts +0 -19
  183. package/dist/code/agent.d.ts.map +0 -1
  184. package/dist/code/agent.js +0 -144
  185. package/dist/code/agent.js.map +0 -1
  186. package/dist/code/config.d.ts +0 -13
  187. package/dist/code/config.d.ts.map +0 -1
  188. package/dist/code/config.js +0 -41
  189. package/dist/code/config.js.map +0 -1
  190. package/dist/code/index.d.ts +0 -19
  191. package/dist/code/index.d.ts.map +0 -1
  192. package/dist/code/index.js +0 -400
  193. package/dist/code/index.js.map +0 -1
  194. package/dist/code/prompts.d.ts +0 -2
  195. package/dist/code/prompts.d.ts.map +0 -1
  196. package/dist/code/prompts.js +0 -45
  197. package/dist/code/prompts.js.map +0 -1
  198. package/dist/code/tools/command.d.ts +0 -8
  199. package/dist/code/tools/command.d.ts.map +0 -1
  200. package/dist/code/tools/command.js +0 -83
  201. package/dist/code/tools/command.js.map +0 -1
  202. package/dist/code/tools/diff-utils.d.ts +0 -2
  203. package/dist/code/tools/diff-utils.d.ts.map +0 -1
  204. package/dist/code/tools/diff-utils.js +0 -45
  205. package/dist/code/tools/diff-utils.js.map +0 -1
  206. package/dist/code/tools/filesystem.d.ts +0 -11
  207. package/dist/code/tools/filesystem.d.ts.map +0 -1
  208. package/dist/code/tools/filesystem.js +0 -442
  209. package/dist/code/tools/filesystem.js.map +0 -1
  210. package/dist/code/tools/git.d.ts +0 -7
  211. package/dist/code/tools/git.d.ts.map +0 -1
  212. package/dist/code/tools/git.js +0 -111
  213. package/dist/code/tools/git.js.map +0 -1
  214. package/dist/code/tools/mcp.d.ts +0 -13
  215. package/dist/code/tools/mcp.d.ts.map +0 -1
  216. package/dist/code/tools/mcp.js +0 -230
  217. package/dist/code/tools/mcp.js.map +0 -1
  218. package/dist/data/tips.json +0 -118
  219. package/dist/ui/terminal-ui.d.ts +0 -73
  220. package/dist/ui/terminal-ui.d.ts.map +0 -1
  221. package/dist/ui/terminal-ui.js +0 -900
  222. package/dist/ui/terminal-ui.js.map +0 -1
  223. package/dist/utils/env-mapper.d.ts +0 -40
  224. package/dist/utils/env-mapper.d.ts.map +0 -1
  225. package/dist/utils/env-mapper.js +0 -122
  226. package/dist/utils/env-mapper.js.map +0 -1
  227. package/docs/USER_GUIDE.md +0 -573
  228. package/tests/agent-direct.test.mjs +0 -45
  229. package/tests/agent-output.test.mjs +0 -64
  230. package/tests/codemie-code.test.mjs +0 -42
  231. package/tests/context7-only.test.mjs +0 -42
  232. package/tests/conversation-flow.test.mjs +0 -63
  233. package/tests/interactive-simulation.test.mjs +0 -60
  234. package/tests/live-output.test.mjs +0 -53
  235. package/tests/mcp-context7.test.mjs +0 -105
  236. package/tests/mcp-e2e.test.mjs +0 -109
  237. package/tests/mcp-time-server.test.mjs +0 -58
  238. package/tests/streaming.test.mjs +0 -57
  239. package/tests/test-helpers.mjs +0 -94
  240. package/tests/text-wrapping.test.mjs +0 -33
  241. package/tests/tool-count.test.mjs +0 -81
  242. package/tests/ui-format.test.mjs +0 -39
  243. package/tests/ui-state.test.mjs +0 -72
@@ -0,0 +1,315 @@
1
+ /**
2
+ * Tool Metadata Extraction Utilities
3
+ *
4
+ * Extracts meaningful information from tool results for enhanced UI display
5
+ */
6
+ import { formatTokens, formatCost } from './tokenUtils.js';
7
+ import path from 'path';
8
+ /**
9
+ * Extract metadata from tool results based on tool name and result
10
+ */
11
+ export function extractToolMetadata(toolName, result, toolArgs) {
12
+ try {
13
+ switch (toolName) {
14
+ case 'read_file':
15
+ return extractReadFileMetadata(result, toolArgs);
16
+ case 'write_file':
17
+ return extractWriteFileMetadata(result, toolArgs);
18
+ case 'list_directory':
19
+ return extractListDirectoryMetadata(result, toolArgs);
20
+ case 'execute_command':
21
+ return extractExecuteCommandMetadata(result, toolArgs);
22
+ default:
23
+ return undefined;
24
+ }
25
+ }
26
+ catch {
27
+ // If metadata extraction fails, return basic info
28
+ return {
29
+ success: !result.toLowerCase().includes('error'),
30
+ errorMessage: result.toLowerCase().includes('error') ? result : undefined
31
+ };
32
+ }
33
+ }
34
+ /**
35
+ * Extract metadata from read_file tool results
36
+ */
37
+ function extractReadFileMetadata(result, toolArgs) {
38
+ const isError = result.toLowerCase().startsWith('error');
39
+ if (isError) {
40
+ return {
41
+ success: false,
42
+ errorMessage: result,
43
+ filePath: toolArgs?.filePath
44
+ };
45
+ }
46
+ // Parse successful read result: "File: {filePath}\n\n{content}"
47
+ const lines = result.split('\n');
48
+ let filePath = toolArgs?.filePath;
49
+ // Try to extract file path from result if not in args
50
+ if (!filePath && lines[0]?.startsWith('File: ')) {
51
+ filePath = lines[0].substring(6); // Remove "File: " prefix
52
+ }
53
+ // Extract content (skip "File: path" and empty line)
54
+ const contentStart = result.indexOf('\n\n');
55
+ const content = contentStart >= 0 ? result.substring(contentStart + 2) : '';
56
+ // Create content preview (first 3 lines or 100 characters)
57
+ const contentLines = content.split('\n');
58
+ const lineCount = contentLines.length;
59
+ let contentPreview = '';
60
+ if (lineCount > 3) {
61
+ contentPreview = contentLines.slice(0, 3).join('\n') + `\n... (${lineCount} lines total)`;
62
+ }
63
+ else if (content.length > 100) {
64
+ contentPreview = content.substring(0, 100) + '...';
65
+ }
66
+ else {
67
+ contentPreview = content;
68
+ }
69
+ return {
70
+ success: true,
71
+ filePath,
72
+ fileSize: Buffer.byteLength(content, 'utf8'),
73
+ contentPreview
74
+ };
75
+ }
76
+ /**
77
+ * Extract metadata from write_file tool results
78
+ */
79
+ function extractWriteFileMetadata(result, toolArgs) {
80
+ const isError = result.toLowerCase().startsWith('error');
81
+ if (isError) {
82
+ return {
83
+ success: false,
84
+ errorMessage: result,
85
+ filePath: toolArgs?.filePath
86
+ };
87
+ }
88
+ // Parse successful result: "Successfully wrote {length} characters to {filePath}"
89
+ const bytesMatch = result.match(/wrote (\d+) characters/);
90
+ const bytesWritten = bytesMatch ? parseInt(bytesMatch[1], 10) : undefined;
91
+ // Try to extract file path from result or use from args
92
+ let filePath = toolArgs?.filePath;
93
+ if (!filePath) {
94
+ const pathMatch = result.match(/to (.+)$/);
95
+ if (pathMatch) {
96
+ filePath = pathMatch[1].trim();
97
+ }
98
+ }
99
+ return {
100
+ success: true,
101
+ filePath,
102
+ bytesWritten,
103
+ contentPreview: toolArgs?.content ?
104
+ (toolArgs.content.length > 50 ?
105
+ toolArgs.content.substring(0, 50) + '...' :
106
+ toolArgs.content) : undefined
107
+ };
108
+ }
109
+ /**
110
+ * Extract metadata from list_directory tool results
111
+ */
112
+ function extractListDirectoryMetadata(result, toolArgs) {
113
+ const isError = result.toLowerCase().startsWith('error');
114
+ if (isError) {
115
+ return {
116
+ success: false,
117
+ errorMessage: result,
118
+ directoryPath: toolArgs?.directoryPath || '.'
119
+ };
120
+ }
121
+ // Count files and directories from the result and extract items for preview
122
+ const lines = result.split('\n');
123
+ let fileCount = 0;
124
+ let directoryCount = 0;
125
+ let inFilesSection = false;
126
+ let inDirectoriesSection = false;
127
+ let directoryPath = toolArgs?.directoryPath;
128
+ const items = [];
129
+ for (const line of lines) {
130
+ const trimmedLine = line.trim();
131
+ // Extract directory path from the result header
132
+ if (trimmedLine.startsWith('Directory:') && !directoryPath) {
133
+ directoryPath = trimmedLine.substring(10).trim();
134
+ continue;
135
+ }
136
+ if (trimmedLine === 'Files:') {
137
+ inFilesSection = true;
138
+ inDirectoriesSection = false;
139
+ continue;
140
+ }
141
+ if (trimmedLine === 'Directories:') {
142
+ inDirectoriesSection = true;
143
+ inFilesSection = false;
144
+ continue;
145
+ }
146
+ if (trimmedLine === '' || trimmedLine.startsWith('Directory:')) {
147
+ inFilesSection = false;
148
+ inDirectoriesSection = false;
149
+ continue;
150
+ }
151
+ // Count items and collect for preview in each section
152
+ if (inFilesSection && line.startsWith(' ') && trimmedLine.length > 0) {
153
+ fileCount++;
154
+ if (items.length < 3) {
155
+ items.push(trimmedLine);
156
+ }
157
+ }
158
+ if (inDirectoriesSection && line.startsWith(' ') && trimmedLine.length > 0) {
159
+ directoryCount++;
160
+ if (items.length < 3) {
161
+ items.push(trimmedLine);
162
+ }
163
+ }
164
+ }
165
+ // Handle empty directory case
166
+ if (result.includes('Directory is empty')) {
167
+ fileCount = 0;
168
+ directoryCount = 0;
169
+ }
170
+ // Create item preview
171
+ let itemPreview = '';
172
+ if (items.length > 0) {
173
+ itemPreview = items.join(', ');
174
+ if (fileCount + directoryCount > items.length) {
175
+ const remaining = (fileCount + directoryCount) - items.length;
176
+ itemPreview += ` +${remaining} more`;
177
+ }
178
+ }
179
+ else {
180
+ itemPreview = 'Empty directory';
181
+ }
182
+ return {
183
+ success: true,
184
+ directoryPath: directoryPath || '.',
185
+ fileCount,
186
+ directoryCount,
187
+ contentPreview: itemPreview
188
+ };
189
+ }
190
+ /**
191
+ * Extract metadata from execute_command tool results
192
+ */
193
+ function extractExecuteCommandMetadata(result, toolArgs) {
194
+ const isError = result.toLowerCase().includes('error executing command') ||
195
+ result.toLowerCase().includes('command rejected for security');
196
+ if (isError) {
197
+ return {
198
+ success: false,
199
+ errorMessage: result,
200
+ command: toolArgs?.command
201
+ };
202
+ }
203
+ const command = toolArgs?.command;
204
+ // Extract output preview (first few lines)
205
+ let outputPreview = '';
206
+ if (result.includes('STDOUT:')) {
207
+ const stdoutStart = result.indexOf('STDOUT:\n') + 8;
208
+ const stdoutEnd = result.indexOf('\nSTDERR:');
209
+ const stdout = result.substring(stdoutStart, stdoutEnd > 0 ? stdoutEnd : result.length);
210
+ const lines = stdout.trim().split('\n').filter(line => line.trim() !== '');
211
+ if (lines.length > 3) {
212
+ outputPreview = lines.slice(0, 3).join('\n') + `\n... (${lines.length} lines total)`;
213
+ }
214
+ else if (lines.length > 0) {
215
+ outputPreview = stdout.trim();
216
+ }
217
+ else {
218
+ outputPreview = 'No output';
219
+ }
220
+ }
221
+ else if (result === 'Command executed successfully (no output)') {
222
+ outputPreview = 'No output';
223
+ }
224
+ else {
225
+ // Fallback for other formats - take first few non-empty lines
226
+ const lines = result.split('\n').filter(line => line.trim() !== '');
227
+ if (lines.length > 3) {
228
+ outputPreview = lines.slice(0, 3).join('\n') + '...';
229
+ }
230
+ else if (lines.length > 0) {
231
+ outputPreview = result.trim();
232
+ }
233
+ else {
234
+ outputPreview = 'Command executed successfully';
235
+ }
236
+ }
237
+ return {
238
+ success: true,
239
+ command,
240
+ outputPreview: outputPreview || 'Command executed successfully'
241
+ };
242
+ }
243
+ /**
244
+ * Format tool metadata for display
245
+ */
246
+ export function formatToolMetadata(toolName, metadata) {
247
+ if (!metadata.success) {
248
+ const baseMsg = `✗ ${toolName} failed${metadata.filePath ? ` (${path.basename(metadata.filePath)})` : ''}`;
249
+ return addTokenInfo(baseMsg, metadata);
250
+ }
251
+ let baseMessage = '';
252
+ switch (toolName) {
253
+ case 'read_file': {
254
+ const fileName = metadata.filePath ? path.basename(metadata.filePath) : 'file';
255
+ const sizeInfo = metadata.fileSize ? ` (${formatBytes(metadata.fileSize)})` : '';
256
+ baseMessage = `✓ Read ${fileName}${sizeInfo}`;
257
+ break;
258
+ }
259
+ case 'write_file': {
260
+ const writeFileName = metadata.filePath ? path.basename(metadata.filePath) : 'file';
261
+ const bytesInfo = metadata.bytesWritten ? ` (${formatBytes(metadata.bytesWritten)})` : '';
262
+ baseMessage = `✓ Wrote ${writeFileName}${bytesInfo}`;
263
+ break;
264
+ }
265
+ case 'list_directory': {
266
+ const dirName = metadata.directoryPath === '.' ? 'current directory' : path.basename(metadata.directoryPath || '');
267
+ const counts = `${metadata.fileCount || 0} files, ${metadata.directoryCount || 0} dirs`;
268
+ baseMessage = `✓ Listed ${dirName} (${counts})`;
269
+ break;
270
+ }
271
+ case 'execute_command': {
272
+ const cmd = metadata.command ? metadata.command.split(' ')[0] : 'command';
273
+ baseMessage = `✓ Executed ${cmd}`;
274
+ break;
275
+ }
276
+ default:
277
+ baseMessage = `✓ ${toolName} completed`;
278
+ }
279
+ return addTokenInfo(baseMessage, metadata);
280
+ }
281
+ /**
282
+ * Add token usage information to the tool message
283
+ */
284
+ function addTokenInfo(baseMessage, metadata) {
285
+ if (!metadata.tokenUsage) {
286
+ return baseMessage;
287
+ }
288
+ const tokenInfo = [];
289
+ // Add token counts with clear input/output labels
290
+ tokenInfo.push(`${formatTokens(metadata.tokenUsage.inputTokens)} in, ${formatTokens(metadata.tokenUsage.outputTokens)} out`);
291
+ // Add cached tokens if present
292
+ if (metadata.tokenUsage.cachedTokens && metadata.tokenUsage.cachedTokens > 0) {
293
+ tokenInfo.push(`${formatTokens(metadata.tokenUsage.cachedTokens)} cached`);
294
+ }
295
+ // Add cost if present
296
+ if (metadata.tokenUsage.estimatedCost && metadata.tokenUsage.estimatedCost > 0) {
297
+ tokenInfo.push(formatCost(metadata.tokenUsage.estimatedCost));
298
+ }
299
+ if (tokenInfo.length > 0) {
300
+ return `${baseMessage} [${tokenInfo.join(', ')}]`;
301
+ }
302
+ return baseMessage;
303
+ }
304
+ /**
305
+ * Format bytes in human readable format
306
+ */
307
+ function formatBytes(bytes) {
308
+ if (bytes === 0)
309
+ return '0 B';
310
+ const k = 1024;
311
+ const sizes = ['B', 'KB', 'MB', 'GB'];
312
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
313
+ return Math.round(bytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i];
314
+ }
315
+ //# sourceMappingURL=toolMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolMetadata.js","sourceRoot":"","sources":["../../../src/agents/codemie-code/toolMetadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/command.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/command.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/filesystem.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/filesystem.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/git.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/git.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * System Tools Registry for CodeMie Native Agent
3
+ *
4
+ * Creates and manages system tools available to the LangGraph ReAct agent
5
+ */
6
+ import { StructuredTool } from '@langchain/core/tools';
7
+ import type { CodeMieConfig } from '../types.js';
8
+ /**
9
+ * Create system tools available to the CodeMie agent
10
+ */
11
+ export declare function createSystemTools(config: CodeMieConfig): Promise<StructuredTool[]>;
12
+ /**
13
+ * Get available tool names and descriptions
14
+ */
15
+ export declare function getToolSummary(): Array<{
16
+ name: string;
17
+ description: string;
18
+ }>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA2OjD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAyBxF;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAO7E"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * System Tools Registry for CodeMie Native Agent
3
+ *
4
+ * Creates and manages system tools available to the LangGraph ReAct agent
5
+ */
6
+ import { StructuredTool } from '@langchain/core/tools';
7
+ import { z } from 'zod';
8
+ import { promises as fs } from 'fs';
9
+ import { exec } from 'child_process';
10
+ import { promisify } from 'util';
11
+ import path from 'path';
12
+ import { filterDirectoryEntries, createFilterConfig, DEFAULT_FILTER_CONFIG, generateFilterStats } from '../filters.js';
13
+ const execAsync = promisify(exec);
14
+ /**
15
+ * Basic file read tool - reads file contents
16
+ */
17
+ class ReadFileTool extends StructuredTool {
18
+ name = 'read_file';
19
+ description = 'Read the contents of a file from the filesystem';
20
+ schema = z.object({
21
+ filePath: z.string().describe('Path to the file to read'),
22
+ });
23
+ workingDirectory;
24
+ constructor(workingDirectory) {
25
+ super();
26
+ this.workingDirectory = workingDirectory;
27
+ }
28
+ async _call({ filePath }) {
29
+ try {
30
+ // Resolve path relative to working directory
31
+ const resolvedPath = path.resolve(this.workingDirectory, filePath);
32
+ // Basic security check - ensure we're not escaping working directory
33
+ if (!resolvedPath.startsWith(this.workingDirectory)) {
34
+ throw new Error('Access denied: Path is outside working directory');
35
+ }
36
+ const content = await fs.readFile(resolvedPath, 'utf-8');
37
+ return `File: ${filePath}\n\n${content}`;
38
+ }
39
+ catch (error) {
40
+ return `Error reading file: ${error instanceof Error ? error.message : String(error)}`;
41
+ }
42
+ }
43
+ }
44
+ /**
45
+ * Basic file write tool - writes content to a file
46
+ */
47
+ class WriteFileTool extends StructuredTool {
48
+ name = 'write_file';
49
+ description = 'Write content to a file in the filesystem';
50
+ schema = z.object({
51
+ filePath: z.string().describe('Path to the file to write'),
52
+ content: z.string().describe('Content to write to the file'),
53
+ });
54
+ workingDirectory;
55
+ constructor(workingDirectory) {
56
+ super();
57
+ this.workingDirectory = workingDirectory;
58
+ }
59
+ async _call({ filePath, content }) {
60
+ try {
61
+ // Resolve path relative to working directory
62
+ const resolvedPath = path.resolve(this.workingDirectory, filePath);
63
+ // Basic security check - ensure we're not escaping working directory
64
+ if (!resolvedPath.startsWith(this.workingDirectory)) {
65
+ throw new Error('Access denied: Path is outside working directory');
66
+ }
67
+ // Ensure directory exists
68
+ const dir = path.dirname(resolvedPath);
69
+ await fs.mkdir(dir, { recursive: true });
70
+ await fs.writeFile(resolvedPath, content, 'utf-8');
71
+ return `Successfully wrote ${content.length} characters to ${filePath}`;
72
+ }
73
+ catch (error) {
74
+ return `Error writing file: ${error instanceof Error ? error.message : String(error)}`;
75
+ }
76
+ }
77
+ }
78
+ /**
79
+ * Basic command execution tool - runs shell commands
80
+ */
81
+ class ExecuteCommandTool extends StructuredTool {
82
+ name = 'execute_command';
83
+ description = 'Execute a shell command in the working directory';
84
+ schema = z.object({
85
+ command: z.string().describe('Shell command to execute'),
86
+ });
87
+ workingDirectory;
88
+ constructor(workingDirectory) {
89
+ super();
90
+ this.workingDirectory = workingDirectory;
91
+ }
92
+ async _call({ command }) {
93
+ try {
94
+ // Basic security checks
95
+ const dangerousCommands = ['rm -rf', 'sudo', 'chmod +x', 'curl', 'wget'];
96
+ if (dangerousCommands.some(cmd => command.toLowerCase().includes(cmd))) {
97
+ return `Error: Command rejected for security reasons: ${command}`;
98
+ }
99
+ const { stdout, stderr } = await execAsync(command, {
100
+ cwd: this.workingDirectory,
101
+ timeout: 30000, // 30 second timeout
102
+ maxBuffer: 1024 * 1024 // 1MB output limit
103
+ });
104
+ let result = '';
105
+ if (stdout)
106
+ result += `STDOUT:\n${stdout}\n`;
107
+ if (stderr)
108
+ result += `STDERR:\n${stderr}\n`;
109
+ return result || 'Command executed successfully (no output)';
110
+ }
111
+ catch (error) {
112
+ return `Error executing command: ${error instanceof Error ? error.message : String(error)}`;
113
+ }
114
+ }
115
+ }
116
+ /**
117
+ * Directory listing tool - lists files and directories with intelligent filtering
118
+ */
119
+ class ListDirectoryTool extends StructuredTool {
120
+ name = 'list_directory';
121
+ description = 'List files and directories in a given path, automatically filtering out common ignore patterns (node_modules, .git, build artifacts, etc.)';
122
+ schema = z.object({
123
+ directoryPath: z.string().optional().describe('Directory path to list (defaults to working directory)'),
124
+ showAll: z.boolean().optional().describe('Show all files including normally filtered ones (default: false)'),
125
+ includeHidden: z.boolean().optional().describe('Include hidden files and directories (default: false)'),
126
+ });
127
+ workingDirectory;
128
+ filterConfig;
129
+ constructor(workingDirectory, filterConfig) {
130
+ super();
131
+ this.workingDirectory = workingDirectory;
132
+ this.filterConfig = filterConfig || DEFAULT_FILTER_CONFIG;
133
+ }
134
+ async _call({ directoryPath, showAll = false, includeHidden = false }) {
135
+ try {
136
+ const targetPath = directoryPath
137
+ ? path.resolve(this.workingDirectory, directoryPath)
138
+ : this.workingDirectory;
139
+ // Security check
140
+ if (!targetPath.startsWith(this.workingDirectory)) {
141
+ throw new Error('Access denied: Path is outside working directory');
142
+ }
143
+ const entries = await fs.readdir(targetPath, { withFileTypes: true });
144
+ // Convert to our format for filtering
145
+ let directoryEntries = entries.map(entry => ({
146
+ name: entry.name,
147
+ isDirectory: entry.isDirectory()
148
+ }));
149
+ // Filter hidden files if not requested
150
+ if (!includeHidden) {
151
+ directoryEntries = directoryEntries.filter(entry => !entry.name.startsWith('.'));
152
+ }
153
+ // Store original count for statistics
154
+ const originalEntries = [...directoryEntries];
155
+ // Apply filtering if not showAll
156
+ let filteredEntries = directoryEntries;
157
+ let filterStats;
158
+ if (!showAll) {
159
+ const filterConfig = createFilterConfig({
160
+ ...this.filterConfig,
161
+ enabled: true
162
+ });
163
+ filteredEntries = filterDirectoryEntries(directoryEntries, filterConfig, directoryPath || '');
164
+ filterStats = generateFilterStats(originalEntries, filteredEntries, filterConfig);
165
+ }
166
+ // Separate into files and directories
167
+ const files = [];
168
+ const directories = [];
169
+ for (const entry of filteredEntries) {
170
+ if (entry.isDirectory) {
171
+ directories.push(`${entry.name}/`);
172
+ }
173
+ else {
174
+ files.push(entry.name);
175
+ }
176
+ }
177
+ // Build result string
178
+ let result = `Directory: ${directoryPath || '.'}\n\n`;
179
+ if (directories.length > 0) {
180
+ result += 'Directories:\n';
181
+ result += directories.map(dir => ` ${dir}`).join('\n') + '\n\n';
182
+ }
183
+ if (files.length > 0) {
184
+ result += 'Files:\n';
185
+ result += files.map(file => ` ${file}`).join('\n');
186
+ }
187
+ if (directories.length === 0 && files.length === 0) {
188
+ result += 'Directory is empty';
189
+ }
190
+ // Add filtering summary if filtering was applied
191
+ if (!showAll && filterStats && filterStats.ignoredEntries > 0) {
192
+ result += `\n\n--- Filtered out ${filterStats.ignoredEntries} items ---`;
193
+ result += `\nShowing ${filterStats.filteredEntries} of ${filterStats.totalEntries} total items`;
194
+ result += `\nUse showAll: true to see all items`;
195
+ }
196
+ return result;
197
+ }
198
+ catch (error) {
199
+ return `Error listing directory: ${error instanceof Error ? error.message : String(error)}`;
200
+ }
201
+ }
202
+ }
203
+ /**
204
+ * Create system tools available to the CodeMie agent
205
+ */
206
+ export async function createSystemTools(config) {
207
+ const tools = [];
208
+ try {
209
+ // Basic file system tools
210
+ tools.push(new ReadFileTool(config.workingDirectory));
211
+ tools.push(new WriteFileTool(config.workingDirectory));
212
+ tools.push(new ListDirectoryTool(config.workingDirectory, config.directoryFilters));
213
+ // Command execution tool
214
+ tools.push(new ExecuteCommandTool(config.workingDirectory));
215
+ if (config.debug) {
216
+ console.log(`[DEBUG] Created ${tools.length} system tools`);
217
+ }
218
+ return tools;
219
+ }
220
+ catch (error) {
221
+ if (config.debug) {
222
+ console.error('[DEBUG] Error creating system tools:', error);
223
+ }
224
+ // Return empty array on error to allow agent to function
225
+ return [];
226
+ }
227
+ }
228
+ /**
229
+ * Get available tool names and descriptions
230
+ */
231
+ export function getToolSummary() {
232
+ return [
233
+ { name: 'read_file', description: 'Read the contents of a file from the filesystem' },
234
+ { name: 'write_file', description: 'Write content to a file in the filesystem' },
235
+ { name: 'list_directory', description: 'List files and directories in a given path, automatically filtering out common ignore patterns (node_modules, .git, build artifacts, etc.)' },
236
+ { name: 'execute_command', description: 'Execute a shell command in the working directory' }
237
+ ];
238
+ }
239
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/agents/codemie-code/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=security.d.ts.map