centaurus-cli 2.6.2 → 2.7.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 (92) hide show
  1. package/dist/cli-adapter.d.ts +13 -22
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +383 -240
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/config/defaultConfig.d.ts +1 -0
  6. package/dist/config/defaultConfig.d.ts.map +1 -1
  7. package/dist/config/defaultConfig.js +3 -1
  8. package/dist/config/defaultConfig.js.map +1 -1
  9. package/dist/config/types.d.ts +1 -0
  10. package/dist/config/types.d.ts.map +1 -1
  11. package/dist/config/types.js +1 -0
  12. package/dist/config/types.js.map +1 -1
  13. package/dist/index.js +4 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/services/ai-service-client.d.ts +1 -1
  16. package/dist/services/ai-service-client.d.ts.map +1 -1
  17. package/dist/services/ai-service-client.js +7 -2
  18. package/dist/services/ai-service-client.js.map +1 -1
  19. package/dist/services/api-client.d.ts +6 -0
  20. package/dist/services/api-client.d.ts.map +1 -1
  21. package/dist/services/api-client.js +16 -0
  22. package/dist/services/api-client.js.map +1 -1
  23. package/dist/tools/command.d.ts.map +1 -1
  24. package/dist/tools/command.js +77 -25
  25. package/dist/tools/command.js.map +1 -1
  26. package/dist/tools/file-ops.d.ts.map +1 -1
  27. package/dist/tools/file-ops.js +28 -4
  28. package/dist/tools/file-ops.js.map +1 -1
  29. package/dist/tools/registry.d.ts +1 -0
  30. package/dist/tools/registry.d.ts.map +1 -1
  31. package/dist/tools/registry.js +25 -1
  32. package/dist/tools/registry.js.map +1 -1
  33. package/dist/tools/task-complete.d.ts +3 -0
  34. package/dist/tools/task-complete.d.ts.map +1 -0
  35. package/dist/tools/task-complete.js +48 -0
  36. package/dist/tools/task-complete.js.map +1 -0
  37. package/dist/tools/types.d.ts +1 -0
  38. package/dist/tools/types.d.ts.map +1 -1
  39. package/dist/tools/web-search.d.ts.map +1 -1
  40. package/dist/tools/web-search.js +16 -2
  41. package/dist/tools/web-search.js.map +1 -1
  42. package/dist/ui/components/AgentTimer.d.ts +7 -0
  43. package/dist/ui/components/AgentTimer.d.ts.map +1 -0
  44. package/dist/ui/components/AgentTimer.js +27 -0
  45. package/dist/ui/components/AgentTimer.js.map +1 -0
  46. package/dist/ui/components/App.d.ts +2 -0
  47. package/dist/ui/components/App.d.ts.map +1 -1
  48. package/dist/ui/components/App.js +229 -46
  49. package/dist/ui/components/App.js.map +1 -1
  50. package/dist/ui/components/InputBox.d.ts.map +1 -1
  51. package/dist/ui/components/InputBox.js +586 -130
  52. package/dist/ui/components/InputBox.js.map +1 -1
  53. package/dist/ui/components/InteractiveShell.d.ts +16 -0
  54. package/dist/ui/components/InteractiveShell.d.ts.map +1 -0
  55. package/dist/ui/components/InteractiveShell.js +152 -0
  56. package/dist/ui/components/InteractiveShell.js.map +1 -0
  57. package/dist/ui/components/LoadingIndicator.js +1 -1
  58. package/dist/ui/components/LoadingIndicator.js.map +1 -1
  59. package/dist/ui/components/MarkdownRenderer.js +1 -1
  60. package/dist/ui/components/StreamingMessageDisplay.js +1 -1
  61. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  62. package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
  63. package/dist/ui/components/ToolExecutionMessage.js +43 -47
  64. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  65. package/dist/utils/ansi-encoder.d.ts +2 -0
  66. package/dist/utils/ansi-encoder.d.ts.map +1 -0
  67. package/dist/utils/ansi-encoder.js +57 -0
  68. package/dist/utils/ansi-encoder.js.map +1 -0
  69. package/dist/utils/command-history.d.ts +14 -0
  70. package/dist/utils/command-history.d.ts.map +1 -0
  71. package/dist/utils/command-history.js +140 -0
  72. package/dist/utils/command-history.js.map +1 -0
  73. package/dist/utils/input-classifier.d.ts +26 -0
  74. package/dist/utils/input-classifier.d.ts.map +1 -0
  75. package/dist/utils/input-classifier.js +154 -0
  76. package/dist/utils/input-classifier.js.map +1 -0
  77. package/dist/utils/markdown-parser.d.ts.map +1 -1
  78. package/dist/utils/markdown-parser.js +6 -5
  79. package/dist/utils/markdown-parser.js.map +1 -1
  80. package/dist/utils/shell.d.ts +7 -0
  81. package/dist/utils/shell.d.ts.map +1 -1
  82. package/dist/utils/shell.js +97 -37
  83. package/dist/utils/shell.js.map +1 -1
  84. package/models-config.json +30 -0
  85. package/package.json +2 -1
  86. package/prompts/system-prompt-autonomous.md +428 -0
  87. package/dist/tools/ToolRegistry.d.ts +0 -55
  88. package/dist/tools/ToolRegistry.d.ts.map +0 -1
  89. package/dist/tools/ToolRegistry.js +0 -600
  90. package/dist/tools/ToolRegistry.js.map +0 -1
  91. package/prompts/system-prompt-enhanced.md +0 -659
  92. package/prompts/system-prompt.md +0 -206
@@ -1,600 +0,0 @@
1
- /**
2
- * Tool Registry
3
- * Manages all available tools and their execution
4
- */
5
- export class ToolRegistry {
6
- tools = new Map();
7
- executionHistory = [];
8
- constructor() {
9
- this.registerBuiltInTools();
10
- }
11
- registerBuiltInTools() {
12
- // File Operations
13
- this.register({
14
- name: 'read_file',
15
- description: 'Read file contents with optional line ranges',
16
- category: 'file',
17
- parameters: {
18
- type: 'object',
19
- properties: {
20
- path: { type: 'string', description: 'File path to read' },
21
- startLine: { type: 'number', description: 'Start line (optional)' },
22
- endLine: { type: 'number', description: 'End line (optional)' }
23
- },
24
- required: ['path']
25
- },
26
- requiresApproval: false,
27
- execute: async (params, context) => {
28
- const { readFileTool } = await import('./file-ops.js');
29
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
30
- try {
31
- const result = await readFileTool.execute({
32
- file_path: params.path,
33
- start_line: params.startLine,
34
- end_line: params.endLine
35
- }, execContext);
36
- return { success: true, result };
37
- }
38
- catch (error) {
39
- return { success: false, error: error.message };
40
- }
41
- }
42
- });
43
- this.register({
44
- name: 'write_file',
45
- description: 'Create or overwrite a file',
46
- category: 'file',
47
- parameters: {
48
- type: 'object',
49
- properties: {
50
- path: { type: 'string', description: 'File path' },
51
- content: { type: 'string', description: 'File content' }
52
- },
53
- required: ['path', 'content']
54
- },
55
- requiresApproval: true,
56
- execute: async (params, context) => {
57
- const { writeFileTool } = await import('./file-ops.js');
58
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
59
- try {
60
- const result = await writeFileTool.execute({
61
- file_path: params.path,
62
- content: params.content
63
- }, execContext);
64
- // Check if operation was cancelled
65
- if (result && result.includes('cancelled')) {
66
- return { success: false, error: result };
67
- }
68
- return { success: true, result };
69
- }
70
- catch (error) {
71
- return { success: false, error: error.message };
72
- }
73
- }
74
- });
75
- this.register({
76
- name: 'edit_file',
77
- description: 'Search and replace text in a file',
78
- category: 'file',
79
- parameters: {
80
- type: 'object',
81
- properties: {
82
- path: { type: 'string', description: 'File path' },
83
- search: { type: 'string', description: 'Text to search for' },
84
- replace: { type: 'string', description: 'Replacement text' },
85
- replaceAll: { type: 'boolean', description: 'Replace all occurrences' }
86
- },
87
- required: ['path', 'search', 'replace']
88
- },
89
- requiresApproval: true,
90
- execute: async (params, context) => {
91
- const { editFileTool } = await import('./file-ops.js');
92
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
93
- try {
94
- const result = await editFileTool.execute({
95
- file_path: params.path,
96
- search_pattern: params.search,
97
- replacement: params.replace
98
- }, execContext);
99
- // Check if operation was cancelled
100
- if (result && result.includes('cancelled')) {
101
- return { success: false, error: result };
102
- }
103
- return { success: true, result };
104
- }
105
- catch (error) {
106
- return { success: false, error: error.message };
107
- }
108
- }
109
- });
110
- this.register({
111
- name: 'multi_edit',
112
- description: 'Edit multiple files in one operation',
113
- category: 'file',
114
- parameters: {
115
- type: 'object',
116
- properties: {
117
- edits: {
118
- type: 'array',
119
- items: {
120
- type: 'object',
121
- properties: {
122
- path: { type: 'string' },
123
- search: { type: 'string' },
124
- replace: { type: 'string' }
125
- }
126
- }
127
- }
128
- },
129
- required: ['edits']
130
- },
131
- requiresApproval: true,
132
- execute: async (params, context) => {
133
- // Multi-edit implementation
134
- const { editFileTool } = await import('./file-ops.js');
135
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
136
- const results = [];
137
- for (const edit of params.edits) {
138
- try {
139
- const result = await editFileTool.execute({
140
- file_path: edit.path,
141
- search_pattern: edit.search,
142
- replacement: edit.replace
143
- }, execContext);
144
- results.push({ file: edit.path, success: true, result });
145
- }
146
- catch (error) {
147
- results.push({ file: edit.path, success: false, error: error.message });
148
- }
149
- }
150
- return { success: results.every(r => r.success), result: results };
151
- }
152
- });
153
- this.register({
154
- name: 'list_directory',
155
- description: 'List directory contents',
156
- category: 'file',
157
- parameters: {
158
- type: 'object',
159
- properties: {
160
- path: { type: 'string', description: 'Directory path' },
161
- recursive: { type: 'boolean', description: 'List recursively' },
162
- pattern: { type: 'string', description: 'Filter pattern' }
163
- },
164
- required: ['path']
165
- },
166
- requiresApproval: false,
167
- execute: async (params, context) => {
168
- const { listDirectoryTool } = await import('./file-ops.js');
169
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
170
- try {
171
- const result = await listDirectoryTool.execute({
172
- directory_path: params.path,
173
- recursive: params.recursive
174
- }, execContext);
175
- return { success: true, result };
176
- }
177
- catch (error) {
178
- return { success: false, error: error.message };
179
- }
180
- }
181
- });
182
- // Search Tools
183
- this.register({
184
- name: 'grep_search',
185
- description: `Search for text patterns across files in the codebase using regex.
186
-
187
- USE THIS TOOL WHEN:
188
- - User asks "where is X defined"
189
- - You need to find all occurrences of a function, class, or variable
190
- - You need to locate TODO comments or specific code patterns
191
- - You want to understand how a feature is implemented across files
192
-
193
- BEFORE using read_file on multiple files, use this to find relevant files first.
194
-
195
- EXAMPLES:
196
- - Find class definition: pattern="class User"
197
- - Find function calls: pattern="connectDatabase\\\\("
198
- - Find TODO comments: pattern="TODO.*auth"
199
- - Find imports: pattern="import.*express"`,
200
- category: 'search',
201
- parameters: {
202
- type: 'object',
203
- properties: {
204
- pattern: { type: 'string', description: 'Regex pattern to search for. Use \\\\ to escape special characters.' },
205
- caseSensitive: { type: 'boolean', description: 'Whether search should be case-sensitive. Default: false' },
206
- filePattern: { type: 'string', description: 'Glob pattern to filter files (e.g., "*.ts", "src/**/*.py"). Optional.' },
207
- excludePattern: { type: 'string', description: 'Glob pattern to exclude files (e.g., "*.test.ts", "dist/**"). Optional.' }
208
- },
209
- required: ['pattern']
210
- },
211
- requiresApproval: false,
212
- execute: async (params, context) => {
213
- const { grepSearchTool } = await import('./grep-search.js');
214
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
215
- try {
216
- const result = await grepSearchTool.execute(params, execContext);
217
- return { success: true, result };
218
- }
219
- catch (error) {
220
- return { success: false, error: error.message };
221
- }
222
- }
223
- });
224
- this.register({
225
- name: 'semantic_search',
226
- description: 'AI-powered semantic code search',
227
- category: 'search',
228
- parameters: {
229
- type: 'object',
230
- properties: {
231
- query: { type: 'string', description: 'Natural language search query' },
232
- path: { type: 'string', description: 'Directory to search in' },
233
- limit: { type: 'number', description: 'Max results to return' }
234
- },
235
- required: ['query']
236
- },
237
- requiresApproval: false,
238
- execute: async (params, context) => {
239
- // Semantic search implementation stub
240
- return {
241
- success: false,
242
- error: 'Semantic search not yet implemented'
243
- };
244
- }
245
- });
246
- this.register({
247
- name: 'find_files',
248
- description: `Find files by name using glob patterns without knowing exact paths.
249
-
250
- USE THIS TOOL WHEN:
251
- - User mentions a file name without providing the full path
252
- - You need to locate a file but don't know which directory it's in
253
- - You want to find all files matching a pattern (e.g., all test files)
254
-
255
- EXAMPLES:
256
- - Find user controller: pattern="*user*controller*"
257
- - Find specific file: pattern="database.ts"
258
- - Find all test files: pattern="**/*.test.ts"
259
- - Find Python models: pattern="**/models/*.py"
260
-
261
- Use this BEFORE trying to read a file when you don't know its exact path.`,
262
- category: 'search',
263
- parameters: {
264
- type: 'object',
265
- properties: {
266
- pattern: { type: 'string', description: 'Glob pattern to match file names. Use * for wildcards, ** for recursive search.' },
267
- maxResults: { type: 'number', description: 'Maximum number of results to return. Default: 10' }
268
- },
269
- required: ['pattern']
270
- },
271
- requiresApproval: false,
272
- execute: async (params, context) => {
273
- const { findFilesTool } = await import('./find-files.js');
274
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
275
- try {
276
- const result = await findFilesTool.execute(params, execContext);
277
- return { success: true, result };
278
- }
279
- catch (error) {
280
- return { success: false, error: error.message };
281
- }
282
- }
283
- });
284
- // Command Execution
285
- this.register({
286
- name: 'execute_command',
287
- description: 'Execute a shell command',
288
- category: 'command',
289
- parameters: {
290
- type: 'object',
291
- properties: {
292
- command: { type: 'string', description: 'Command to execute' },
293
- cwd: { type: 'string', description: 'Working directory' },
294
- timeout: { type: 'number', description: 'Timeout in milliseconds' }
295
- },
296
- required: ['command']
297
- },
298
- requiresApproval: true,
299
- execute: async (params, context) => {
300
- const commandTool = await import('./command.js');
301
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
302
- try {
303
- const result = await commandTool.executeCommandTool.execute({
304
- command: params.command,
305
- cwd: params.cwd
306
- }, execContext);
307
- // Check if operation was cancelled
308
- if (result && result.includes('cancelled')) {
309
- return { success: false, error: result };
310
- }
311
- return { success: true, result };
312
- }
313
- catch (error) {
314
- return { success: false, error: error.message };
315
- }
316
- }
317
- });
318
- this.register({
319
- name: 'run_background',
320
- description: 'Run a command in the background',
321
- category: 'command',
322
- parameters: {
323
- type: 'object',
324
- properties: {
325
- command: { type: 'string', description: 'Command to run' },
326
- name: { type: 'string', description: 'Process name' }
327
- },
328
- required: ['command', 'name']
329
- },
330
- requiresApproval: true,
331
- execute: async (params, context) => {
332
- // Background command implementation stub
333
- return {
334
- success: false,
335
- error: 'Background commands not yet implemented'
336
- };
337
- }
338
- });
339
- // Task Management
340
- this.register({
341
- name: 'todo_write',
342
- description: 'Manage TODO list for complex tasks',
343
- category: 'task',
344
- parameters: {
345
- type: 'object',
346
- properties: {
347
- action: { type: 'string', enum: ['add', 'complete', 'list', 'clear'] },
348
- item: { type: 'string', description: 'TODO item text' },
349
- id: { type: 'string', description: 'TODO item ID' }
350
- },
351
- required: ['action']
352
- },
353
- requiresApproval: false,
354
- execute: async (params, context) => {
355
- // TODO management stub
356
- return {
357
- success: false,
358
- error: 'TODO management not yet implemented'
359
- };
360
- }
361
- });
362
- this.register({
363
- name: 'task_breakdown',
364
- description: 'Break down complex task into steps',
365
- category: 'task',
366
- parameters: {
367
- type: 'object',
368
- properties: {
369
- task: { type: 'string', description: 'Task description' },
370
- context: { type: 'string', description: 'Additional context' }
371
- },
372
- required: ['task']
373
- },
374
- requiresApproval: false,
375
- execute: async (params, context) => {
376
- // Task breakdown stub
377
- return {
378
- success: false,
379
- error: 'Task breakdown not yet implemented'
380
- };
381
- }
382
- });
383
- this.register({
384
- name: 'inspect_symbol',
385
- description: `List functions, classes, and exports in a file WITHOUT reading the full implementation.
386
-
387
- USE THIS TOOL WHEN:
388
- - You want to understand the structure of a file before reading it
389
- - User asks "what functions are in this file"
390
- - You need to find a specific function but don't want to read 500 lines of code
391
- - You want to map out a module's public API
392
-
393
- This tool returns ONLY the signatures/headers, not the implementation details.
394
- It's much more token-efficient than read_file for surveying code structure.
395
-
396
- WORKFLOW:
397
- 1. Use inspect_symbol to see what's in a file
398
- 2. Identify the relevant function/class
399
- 3. Use read_file only if you need to see the implementation
400
-
401
- Supported languages: TypeScript, JavaScript, Python, Java`,
402
- category: 'search',
403
- parameters: {
404
- type: 'object',
405
- properties: {
406
- filePath: { type: 'string', description: 'Path to the file to inspect (relative to workspace root)' }
407
- },
408
- required: ['filePath']
409
- },
410
- requiresApproval: false,
411
- execute: async (params, context) => {
412
- const { InspectSymbolTool } = await import('./inspect-symbol.js');
413
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
414
- try {
415
- const tool = new InspectSymbolTool();
416
- const result = await tool.execute(params, execContext.cwd);
417
- return { success: true, result };
418
- }
419
- catch (error) {
420
- return { success: false, error: error.message };
421
- }
422
- }
423
- });
424
- // Git Operations
425
- this.register({
426
- name: 'get_diff',
427
- description: `Show git diff to verify changes made to files.
428
-
429
- USE THIS TOOL:
430
- - AFTER making changes to verify what was modified
431
- - BEFORE claiming a task is complete
432
- - When user asks "what changed" or "show me the diff"
433
- - To ensure you didn't accidentally modify unintended code
434
-
435
- BEST PRACTICE: Always check the diff after editing files to verify:
436
- 1. Changes are in the correct locations
437
- 2. No unintended modifications were made
438
- 3. All required changes are present
439
-
440
- This is a critical verification step for professional-grade output.`,
441
- category: 'git',
442
- parameters: {
443
- type: 'object',
444
- properties: {
445
- filePath: { type: 'string', description: 'Optional: specific file to show diff for. Omit to see all changes.' },
446
- staged: { type: 'boolean', description: 'Show staged changes instead of unstaged. Default: false' }
447
- },
448
- required: []
449
- },
450
- requiresApproval: false,
451
- execute: async (params, context) => {
452
- const { GetDiffTool } = await import('./get-diff.js');
453
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
454
- try {
455
- const tool = new GetDiffTool();
456
- const result = await tool.execute(params, execContext.cwd);
457
- return { success: true, result };
458
- }
459
- catch (error) {
460
- return { success: false, error: error.message };
461
- }
462
- }
463
- });
464
- this.register({
465
- name: 'apply_diff',
466
- description: 'Apply a patch/diff to files',
467
- category: 'git',
468
- parameters: {
469
- type: 'object',
470
- properties: {
471
- diff: { type: 'string', description: 'Diff/patch content' },
472
- reverse: { type: 'boolean', description: 'Apply in reverse' }
473
- },
474
- required: ['diff']
475
- },
476
- requiresApproval: true,
477
- execute: async (params, context) => {
478
- // Apply diff stub
479
- return {
480
- success: false,
481
- error: 'Git operations not yet implemented'
482
- };
483
- }
484
- });
485
- // Web Operations
486
- this.register({
487
- name: 'web_search',
488
- description: 'Search the web for current information beyond the AI knowledge cutoff',
489
- category: 'web',
490
- parameters: {
491
- type: 'object',
492
- properties: {
493
- query: { type: 'string', description: 'Search query (2-200 characters)' },
494
- limit: { type: 'number', description: 'Max results (1-10)' },
495
- allowed_domains: { type: 'array', items: { type: 'string' }, description: 'Only include results from these domains' },
496
- blocked_domains: { type: 'array', items: { type: 'string' }, description: 'Never include results from these domains' }
497
- },
498
- required: ['query']
499
- },
500
- requiresApproval: false,
501
- execute: async (params, context) => {
502
- const { webSearchTool } = await import('./web-search.js');
503
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
504
- try {
505
- const result = await webSearchTool.execute(params, execContext);
506
- return { success: true, result };
507
- }
508
- catch (error) {
509
- return { success: false, error: error.message };
510
- }
511
- }
512
- });
513
- this.register({
514
- name: 'fetch_url',
515
- description: 'Fetch and extract content from a URL',
516
- category: 'web',
517
- parameters: {
518
- type: 'object',
519
- properties: {
520
- url: { type: 'string', description: 'URL to fetch' },
521
- extract_code: { type: 'boolean', description: 'Try to extract code blocks' }
522
- },
523
- required: ['url']
524
- },
525
- requiresApproval: true,
526
- execute: async (params, context) => {
527
- const { fetchUrlTool } = await import('./web-search.js');
528
- const execContext = context || { cwd: process.cwd(), requireApproval: async () => true };
529
- try {
530
- const result = await fetchUrlTool.execute(params, execContext);
531
- return { success: true, result };
532
- }
533
- catch (error) {
534
- return { success: false, error: error.message };
535
- }
536
- }
537
- });
538
- }
539
- register(tool) {
540
- this.tools.set(tool.name, tool);
541
- }
542
- get(name) {
543
- return this.tools.get(name);
544
- }
545
- list() {
546
- return Array.from(this.tools.values());
547
- }
548
- listByCategory(category) {
549
- return this.list().filter(tool => tool.category === category);
550
- }
551
- async execute(name, params, context) {
552
- const tool = this.get(name);
553
- if (!tool) {
554
- return {
555
- success: false,
556
- error: `Tool ${name} not found`
557
- };
558
- }
559
- try {
560
- const result = await tool.execute(params, context);
561
- // Store in history
562
- this.executionHistory.push({
563
- tool: name,
564
- params,
565
- result,
566
- timestamp: new Date()
567
- });
568
- // Keep only last 100 executions
569
- if (this.executionHistory.length > 100) {
570
- this.executionHistory = this.executionHistory.slice(-100);
571
- }
572
- return result;
573
- }
574
- catch (error) {
575
- return {
576
- success: false,
577
- error: `Tool execution failed: ${error.message}`
578
- };
579
- }
580
- }
581
- getHistory() {
582
- return this.executionHistory;
583
- }
584
- clearHistory() {
585
- this.executionHistory = [];
586
- }
587
- // Convert to AI provider tool format
588
- toAITools() {
589
- return this.list().map(tool => ({
590
- type: 'function',
591
- function: {
592
- name: tool.name,
593
- description: tool.description,
594
- parameters: tool.parameters
595
- }
596
- }));
597
- }
598
- }
599
- export default ToolRegistry;
600
- //# sourceMappingURL=ToolRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/tools/ToolRegistry.ts"],"names":[],"mappings":"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"}