ys-code-agent 2.0.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.
- package/LICENSE +21 -0
- package/README.md +252 -0
- package/SETUP.md +228 -0
- package/USAGE.md +437 -0
- package/dist/agent/index.d.ts +29 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +501 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/cli/agent.d.ts +10 -0
- package/dist/cli/agent.d.ts.map +1 -0
- package/dist/cli/agent.js +38 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/cli/index.cjs +19187 -0
- package/dist/cli/index.cjs.map +7 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +326 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interactive.d.ts +14 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +125 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/commands/CommandRegistry.d.ts +15 -0
- package/dist/commands/CommandRegistry.d.ts.map +1 -0
- package/dist/commands/CommandRegistry.js +1311 -0
- package/dist/commands/CommandRegistry.js.map +1 -0
- package/dist/commands/handlers/agents.d.ts +5 -0
- package/dist/commands/handlers/agents.d.ts.map +1 -0
- package/dist/commands/handlers/agents.js +124 -0
- package/dist/commands/handlers/agents.js.map +1 -0
- package/dist/commands/handlers/file.d.ts +8 -0
- package/dist/commands/handlers/file.d.ts.map +1 -0
- package/dist/commands/handlers/file.js +364 -0
- package/dist/commands/handlers/file.js.map +1 -0
- package/dist/commands/handlers/git.d.ts +2 -0
- package/dist/commands/handlers/git.d.ts.map +1 -0
- package/dist/commands/handlers/git.js +343 -0
- package/dist/commands/handlers/git.js.map +1 -0
- package/dist/commands/handlers/memory.d.ts +6 -0
- package/dist/commands/handlers/memory.d.ts.map +1 -0
- package/dist/commands/handlers/memory.js +149 -0
- package/dist/commands/handlers/memory.js.map +1 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/config/index.d.ts +25 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +399 -0
- package/dist/config/index.js.map +1 -0
- package/dist/context/index.d.ts +31 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +208 -0
- package/dist/context/index.js.map +1 -0
- package/dist/filesystem/index.d.ts +52 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/dist/filesystem/index.js +481 -0
- package/dist/filesystem/index.js.map +1 -0
- package/dist/git/index.d.ts +41 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +381 -0
- package/dist/git/index.js.map +1 -0
- package/dist/logger/index.d.ts +32 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +199 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/memory/index.d.ts +45 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +147 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/project/index.d.ts +14 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +371 -0
- package/dist/project/index.js.map +1 -0
- package/dist/providers/anthropic.d.ts +22 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +202 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +29 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +119 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/custom.d.ts +8 -0
- package/dist/providers/custom.d.ts.map +1 -0
- package/dist/providers/custom.js +13 -0
- package/dist/providers/custom.js.map +1 -0
- package/dist/providers/deepseek.d.ts +8 -0
- package/dist/providers/deepseek.d.ts.map +1 -0
- package/dist/providers/deepseek.js +13 -0
- package/dist/providers/deepseek.js.map +1 -0
- package/dist/providers/gemini.d.ts +18 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +183 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/groq.d.ts +8 -0
- package/dist/providers/groq.d.ts.map +1 -0
- package/dist/providers/groq.js +13 -0
- package/dist/providers/groq.js.map +1 -0
- package/dist/providers/index.d.ts +16 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +50 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/lmstudio.d.ts +9 -0
- package/dist/providers/lmstudio.d.ts.map +1 -0
- package/dist/providers/lmstudio.js +18 -0
- package/dist/providers/lmstudio.js.map +1 -0
- package/dist/providers/ollama.d.ts +8 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +13 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +16 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +116 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/openrouter.d.ts +9 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +21 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/security/index.d.ts +28 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +139 -0
- package/dist/security/index.js.map +1 -0
- package/dist/session/index.d.ts +36 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +203 -0
- package/dist/session/index.js.map +1 -0
- package/dist/src/agent/index.d.ts +29 -0
- package/dist/src/agent/index.d.ts.map +1 -0
- package/dist/src/agent/index.js +504 -0
- package/dist/src/agent/index.js.map +1 -0
- package/dist/src/cli/agent.d.ts +10 -0
- package/dist/src/cli/agent.d.ts.map +1 -0
- package/dist/src/cli/agent.js +38 -0
- package/dist/src/cli/agent.js.map +1 -0
- package/dist/src/cli/index.d.ts +3 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +327 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/interactive.d.ts +12 -0
- package/dist/src/cli/interactive.d.ts.map +1 -0
- package/dist/src/cli/interactive.js +202 -0
- package/dist/src/cli/interactive.js.map +1 -0
- package/dist/src/config/index.d.ts +25 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +398 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/context/index.d.ts +31 -0
- package/dist/src/context/index.d.ts.map +1 -0
- package/dist/src/context/index.js +208 -0
- package/dist/src/context/index.js.map +1 -0
- package/dist/src/filesystem/index.d.ts +52 -0
- package/dist/src/filesystem/index.d.ts.map +1 -0
- package/dist/src/filesystem/index.js +481 -0
- package/dist/src/filesystem/index.js.map +1 -0
- package/dist/src/git/index.d.ts +41 -0
- package/dist/src/git/index.d.ts.map +1 -0
- package/dist/src/git/index.js +381 -0
- package/dist/src/git/index.js.map +1 -0
- package/dist/src/logger/index.d.ts +32 -0
- package/dist/src/logger/index.d.ts.map +1 -0
- package/dist/src/logger/index.js +199 -0
- package/dist/src/logger/index.js.map +1 -0
- package/dist/src/memory/index.d.ts +45 -0
- package/dist/src/memory/index.d.ts.map +1 -0
- package/dist/src/memory/index.js +147 -0
- package/dist/src/memory/index.js.map +1 -0
- package/dist/src/project/index.d.ts +14 -0
- package/dist/src/project/index.d.ts.map +1 -0
- package/dist/src/project/index.js +371 -0
- package/dist/src/project/index.js.map +1 -0
- package/dist/src/providers/anthropic.d.ts +22 -0
- package/dist/src/providers/anthropic.d.ts.map +1 -0
- package/dist/src/providers/anthropic.js +202 -0
- package/dist/src/providers/anthropic.js.map +1 -0
- package/dist/src/providers/base.d.ts +29 -0
- package/dist/src/providers/base.d.ts.map +1 -0
- package/dist/src/providers/base.js +112 -0
- package/dist/src/providers/base.js.map +1 -0
- package/dist/src/providers/custom.d.ts +8 -0
- package/dist/src/providers/custom.d.ts.map +1 -0
- package/dist/src/providers/custom.js +13 -0
- package/dist/src/providers/custom.js.map +1 -0
- package/dist/src/providers/deepseek.d.ts +8 -0
- package/dist/src/providers/deepseek.d.ts.map +1 -0
- package/dist/src/providers/deepseek.js +13 -0
- package/dist/src/providers/deepseek.js.map +1 -0
- package/dist/src/providers/gemini.d.ts +18 -0
- package/dist/src/providers/gemini.d.ts.map +1 -0
- package/dist/src/providers/gemini.js +183 -0
- package/dist/src/providers/gemini.js.map +1 -0
- package/dist/src/providers/groq.d.ts +8 -0
- package/dist/src/providers/groq.d.ts.map +1 -0
- package/dist/src/providers/groq.js +13 -0
- package/dist/src/providers/groq.js.map +1 -0
- package/dist/src/providers/index.d.ts +16 -0
- package/dist/src/providers/index.d.ts.map +1 -0
- package/dist/src/providers/index.js +50 -0
- package/dist/src/providers/index.js.map +1 -0
- package/dist/src/providers/lmstudio.d.ts +9 -0
- package/dist/src/providers/lmstudio.d.ts.map +1 -0
- package/dist/src/providers/lmstudio.js +18 -0
- package/dist/src/providers/lmstudio.js.map +1 -0
- package/dist/src/providers/ollama.d.ts +8 -0
- package/dist/src/providers/ollama.d.ts.map +1 -0
- package/dist/src/providers/ollama.js +13 -0
- package/dist/src/providers/ollama.js.map +1 -0
- package/dist/src/providers/openai.d.ts +16 -0
- package/dist/src/providers/openai.d.ts.map +1 -0
- package/dist/src/providers/openai.js +116 -0
- package/dist/src/providers/openai.js.map +1 -0
- package/dist/src/providers/openrouter.d.ts +9 -0
- package/dist/src/providers/openrouter.d.ts.map +1 -0
- package/dist/src/providers/openrouter.js +21 -0
- package/dist/src/providers/openrouter.js.map +1 -0
- package/dist/src/security/index.d.ts +28 -0
- package/dist/src/security/index.d.ts.map +1 -0
- package/dist/src/security/index.js +139 -0
- package/dist/src/security/index.js.map +1 -0
- package/dist/src/session/index.d.ts +36 -0
- package/dist/src/session/index.d.ts.map +1 -0
- package/dist/src/session/index.js +203 -0
- package/dist/src/session/index.js.map +1 -0
- package/dist/src/terminal/index.d.ts +27 -0
- package/dist/src/terminal/index.d.ts.map +1 -0
- package/dist/src/terminal/index.js +211 -0
- package/dist/src/terminal/index.js.map +1 -0
- package/dist/src/tools/DeleteFileTool.d.ts +7 -0
- package/dist/src/tools/DeleteFileTool.d.ts.map +1 -0
- package/dist/src/tools/DeleteFileTool.js +50 -0
- package/dist/src/tools/DeleteFileTool.js.map +1 -0
- package/dist/src/tools/DirectoryTreeTool.d.ts +7 -0
- package/dist/src/tools/DirectoryTreeTool.d.ts.map +1 -0
- package/dist/src/tools/DirectoryTreeTool.js +50 -0
- package/dist/src/tools/DirectoryTreeTool.js.map +1 -0
- package/dist/src/tools/EditFileTool.d.ts +7 -0
- package/dist/src/tools/EditFileTool.d.ts.map +1 -0
- package/dist/src/tools/EditFileTool.js +69 -0
- package/dist/src/tools/EditFileTool.js.map +1 -0
- package/dist/src/tools/GitTool.d.ts +9 -0
- package/dist/src/tools/GitTool.d.ts.map +1 -0
- package/dist/src/tools/GitTool.js +115 -0
- package/dist/src/tools/GitTool.js.map +1 -0
- package/dist/src/tools/GlobTool.d.ts +7 -0
- package/dist/src/tools/GlobTool.d.ts.map +1 -0
- package/dist/src/tools/GlobTool.js +51 -0
- package/dist/src/tools/GlobTool.js.map +1 -0
- package/dist/src/tools/MemoryTool.d.ts +9 -0
- package/dist/src/tools/MemoryTool.d.ts.map +1 -0
- package/dist/src/tools/MemoryTool.js +109 -0
- package/dist/src/tools/MemoryTool.js.map +1 -0
- package/dist/src/tools/ReadFileTool.d.ts +7 -0
- package/dist/src/tools/ReadFileTool.d.ts.map +1 -0
- package/dist/src/tools/ReadFileTool.js +75 -0
- package/dist/src/tools/ReadFileTool.js.map +1 -0
- package/dist/src/tools/SearchTool.d.ts +7 -0
- package/dist/src/tools/SearchTool.d.ts.map +1 -0
- package/dist/src/tools/SearchTool.js +67 -0
- package/dist/src/tools/SearchTool.js.map +1 -0
- package/dist/src/tools/TerminalTool.d.ts +9 -0
- package/dist/src/tools/TerminalTool.d.ts.map +1 -0
- package/dist/src/tools/TerminalTool.js +93 -0
- package/dist/src/tools/TerminalTool.js.map +1 -0
- package/dist/src/tools/WebFetchTool.d.ts +7 -0
- package/dist/src/tools/WebFetchTool.d.ts.map +1 -0
- package/dist/src/tools/WebFetchTool.js +120 -0
- package/dist/src/tools/WebFetchTool.js.map +1 -0
- package/dist/src/tools/WriteFileTool.d.ts +7 -0
- package/dist/src/tools/WriteFileTool.d.ts.map +1 -0
- package/dist/src/tools/WriteFileTool.js +46 -0
- package/dist/src/tools/WriteFileTool.js.map +1 -0
- package/dist/src/tools/base.d.ts +36 -0
- package/dist/src/tools/base.d.ts.map +1 -0
- package/dist/src/tools/base.js +159 -0
- package/dist/src/tools/base.js.map +1 -0
- package/dist/src/tools/index.d.ts +14 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +44 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/types.d.ts +315 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/ui/index.d.ts +50 -0
- package/dist/src/ui/index.d.ts.map +1 -0
- package/dist/src/ui/index.js +274 -0
- package/dist/src/ui/index.js.map +1 -0
- package/dist/src/utils/index.d.ts +26 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +248 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/terminal/index.d.ts +27 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +211 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/tools/DeleteFileTool.d.ts +7 -0
- package/dist/tools/DeleteFileTool.d.ts.map +1 -0
- package/dist/tools/DeleteFileTool.js +50 -0
- package/dist/tools/DeleteFileTool.js.map +1 -0
- package/dist/tools/DirectoryTreeTool.d.ts +7 -0
- package/dist/tools/DirectoryTreeTool.d.ts.map +1 -0
- package/dist/tools/DirectoryTreeTool.js +50 -0
- package/dist/tools/DirectoryTreeTool.js.map +1 -0
- package/dist/tools/EditFileTool.d.ts +7 -0
- package/dist/tools/EditFileTool.d.ts.map +1 -0
- package/dist/tools/EditFileTool.js +69 -0
- package/dist/tools/EditFileTool.js.map +1 -0
- package/dist/tools/GitTool.d.ts +9 -0
- package/dist/tools/GitTool.d.ts.map +1 -0
- package/dist/tools/GitTool.js +115 -0
- package/dist/tools/GitTool.js.map +1 -0
- package/dist/tools/GlobTool.d.ts +7 -0
- package/dist/tools/GlobTool.d.ts.map +1 -0
- package/dist/tools/GlobTool.js +51 -0
- package/dist/tools/GlobTool.js.map +1 -0
- package/dist/tools/MemoryTool.d.ts +9 -0
- package/dist/tools/MemoryTool.d.ts.map +1 -0
- package/dist/tools/MemoryTool.js +109 -0
- package/dist/tools/MemoryTool.js.map +1 -0
- package/dist/tools/ReadFileTool.d.ts +7 -0
- package/dist/tools/ReadFileTool.d.ts.map +1 -0
- package/dist/tools/ReadFileTool.js +75 -0
- package/dist/tools/ReadFileTool.js.map +1 -0
- package/dist/tools/SearchTool.d.ts +7 -0
- package/dist/tools/SearchTool.d.ts.map +1 -0
- package/dist/tools/SearchTool.js +67 -0
- package/dist/tools/SearchTool.js.map +1 -0
- package/dist/tools/TerminalTool.d.ts +9 -0
- package/dist/tools/TerminalTool.d.ts.map +1 -0
- package/dist/tools/TerminalTool.js +93 -0
- package/dist/tools/TerminalTool.js.map +1 -0
- package/dist/tools/WebFetchTool.d.ts +7 -0
- package/dist/tools/WebFetchTool.d.ts.map +1 -0
- package/dist/tools/WebFetchTool.js +120 -0
- package/dist/tools/WebFetchTool.js.map +1 -0
- package/dist/tools/WriteFileTool.d.ts +7 -0
- package/dist/tools/WriteFileTool.d.ts.map +1 -0
- package/dist/tools/WriteFileTool.js +46 -0
- package/dist/tools/WriteFileTool.js.map +1 -0
- package/dist/tools/base.d.ts +36 -0
- package/dist/tools/base.d.ts.map +1 -0
- package/dist/tools/base.js +159 -0
- package/dist/tools/base.js.map +1 -0
- package/dist/tools/index.d.ts +14 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +44 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types.d.ts +315 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/CommandPopup.d.ts +33 -0
- package/dist/ui/CommandPopup.d.ts.map +1 -0
- package/dist/ui/CommandPopup.js +179 -0
- package/dist/ui/CommandPopup.js.map +1 -0
- package/dist/ui/WelcomeScreen.d.ts +3 -0
- package/dist/ui/WelcomeScreen.d.ts.map +1 -0
- package/dist/ui/WelcomeScreen.js +168 -0
- package/dist/ui/WelcomeScreen.js.map +1 -0
- package/dist/ui/index.d.ts +75 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +728 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/phoneOptimizer.d.ts +15 -0
- package/dist/ui/phoneOptimizer.d.ts.map +1 -0
- package/dist/ui/phoneOptimizer.js +58 -0
- package/dist/ui/phoneOptimizer.js.map +1 -0
- package/dist/utils/index.d.ts +26 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +248 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +80 -0
- package/scripts/build.mjs +53 -0
- package/scripts/setup-termux.sh +84 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { fileSystem } from '../filesystem/index.js';
|
|
3
|
+
export class DirectoryTreeTool extends BaseTool {
|
|
4
|
+
defineSchema() {
|
|
5
|
+
return {
|
|
6
|
+
name: 'directory_tree',
|
|
7
|
+
description: 'Get the directory tree structure. Shows files and folders in a tree format.',
|
|
8
|
+
parameters: {
|
|
9
|
+
path: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
description: 'Directory path to show tree for',
|
|
12
|
+
required: false,
|
|
13
|
+
default: '.',
|
|
14
|
+
},
|
|
15
|
+
max_depth: {
|
|
16
|
+
type: 'number',
|
|
17
|
+
description: 'Maximum depth of the tree',
|
|
18
|
+
required: false,
|
|
19
|
+
default: 4,
|
|
20
|
+
minimum: 1,
|
|
21
|
+
maximum: 10,
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
required: [],
|
|
25
|
+
returns: 'Directory tree as formatted text',
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
async execute(args) {
|
|
29
|
+
const dirPath = args.path || '.';
|
|
30
|
+
const maxDepth = args.max_depth || 4;
|
|
31
|
+
try {
|
|
32
|
+
const tree = fileSystem.getDirectoryTree(dirPath, maxDepth);
|
|
33
|
+
return {
|
|
34
|
+
success: true,
|
|
35
|
+
data: {
|
|
36
|
+
path: dirPath,
|
|
37
|
+
max_depth: maxDepth,
|
|
38
|
+
tree,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return {
|
|
44
|
+
success: false,
|
|
45
|
+
error: error instanceof Error ? error.message : String(error),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=DirectoryTreeTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectoryTreeTool.js","sourceRoot":"","sources":["../../src/tools/DirectoryTreeTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IACnC,YAAY;QACpB,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,6EAA6E;YAC1F,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;oBAC9C,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,GAAG;iBACb;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;oBACxC,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,kCAAkC;SAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,OAAO,GAAI,IAAI,CAAC,IAAe,IAAI,GAAG,CAAC;QAC7C,MAAM,QAAQ,GAAI,IAAI,CAAC,SAAoB,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE5D,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,QAAQ;oBACnB,IAAI;iBACL;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { ToolSchema, ToolResult } from '../types.js';
|
|
3
|
+
export declare class EditFileTool extends BaseTool {
|
|
4
|
+
protected defineSchema(): ToolSchema;
|
|
5
|
+
execute(args: Record<string, unknown>): Promise<ToolResult>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=EditFileTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditFileTool.d.ts","sourceRoot":"","sources":["../../src/tools/EditFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,qBAAa,YAAa,SAAQ,QAAQ;IACxC,SAAS,CAAC,YAAY,IAAI,UAAU;IA0B9B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CA4ClE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { fileSystem } from '../filesystem/index.js';
|
|
3
|
+
export class EditFileTool extends BaseTool {
|
|
4
|
+
defineSchema() {
|
|
5
|
+
return {
|
|
6
|
+
name: 'edit_file',
|
|
7
|
+
description: 'Edit a file by replacing text. Uses exact string matching to find and replace content.',
|
|
8
|
+
parameters: {
|
|
9
|
+
file_path: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
description: 'Path to the file to edit',
|
|
12
|
+
required: true,
|
|
13
|
+
},
|
|
14
|
+
old_string: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
description: 'Text to search for (must exist in the file)',
|
|
17
|
+
required: true,
|
|
18
|
+
},
|
|
19
|
+
new_string: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'Text to replace with',
|
|
22
|
+
required: true,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
required: ['file_path', 'old_string', 'new_string'],
|
|
26
|
+
returns: 'Edit confirmation with diff info',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async execute(args) {
|
|
30
|
+
const filePath = args.file_path;
|
|
31
|
+
const oldString = args.old_string;
|
|
32
|
+
const newString = args.new_string;
|
|
33
|
+
try {
|
|
34
|
+
if (!fileSystem.exists(filePath)) {
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
error: `File not found: ${filePath}`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const content = fileSystem.readFile(filePath);
|
|
41
|
+
if (!content.includes(oldString)) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: `Could not find exact match for old_string in ${filePath}. The text must match exactly including whitespace.`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const newContent = content.replace(oldString, newString);
|
|
48
|
+
fileSystem.writeFile(filePath, newContent);
|
|
49
|
+
const oldLines = oldString.split('\n').length;
|
|
50
|
+
const newLines = newString.split('\n').length;
|
|
51
|
+
return {
|
|
52
|
+
success: true,
|
|
53
|
+
data: {
|
|
54
|
+
file_path: filePath,
|
|
55
|
+
old_length: oldString.length,
|
|
56
|
+
new_length: newString.length,
|
|
57
|
+
lines_changed: `${oldLines} -> ${newLines} lines`,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
error: error instanceof Error ? error.message : String(error),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=EditFileTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditFileTool.js","sourceRoot":"","sources":["../../src/tools/EditFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAC9B,YAAY;QACpB,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wFAAwF;YACrG,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;oBACvC,QAAQ,EAAE,IAAI;iBACf;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6CAA6C;oBAC1D,QAAQ,EAAE,IAAI;iBACf;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sBAAsB;oBACnC,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;YACnD,OAAO,EAAE,kCAAkC;SAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAmB,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAC;QAE5C,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,mBAAmB,QAAQ,EAAE;iBACrC,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,gDAAgD,QAAQ,qDAAqD;iBACrH,CAAC;YACJ,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACzD,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAE3C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAE9C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,SAAS,EAAE,QAAQ;oBACnB,UAAU,EAAE,SAAS,CAAC,MAAM;oBAC5B,UAAU,EAAE,SAAS,CAAC,MAAM;oBAC5B,aAAa,EAAE,GAAG,QAAQ,OAAO,QAAQ,QAAQ;iBAClD;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { ToolSchema, ToolResult } from '../types.js';
|
|
3
|
+
export declare class GitTool extends BaseTool {
|
|
4
|
+
private git;
|
|
5
|
+
constructor();
|
|
6
|
+
protected defineSchema(): ToolSchema;
|
|
7
|
+
execute(args: Record<string, unknown>): Promise<ToolResult>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=GitTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitTool.d.ts","sourceRoot":"","sources":["../../src/tools/GitTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,qBAAa,OAAQ,SAAQ,QAAQ;IACnC,OAAO,CAAC,GAAG,CAAa;;IAOxB,SAAS,CAAC,YAAY,IAAI,UAAU;IAgC9B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CA4ElE"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { GitManager } from '../git/index.js';
|
|
3
|
+
export class GitTool extends BaseTool {
|
|
4
|
+
git;
|
|
5
|
+
constructor() {
|
|
6
|
+
super();
|
|
7
|
+
this.git = new GitManager();
|
|
8
|
+
}
|
|
9
|
+
defineSchema() {
|
|
10
|
+
return {
|
|
11
|
+
name: 'git',
|
|
12
|
+
description: 'Execute Git operations. Supports status, diff, commit, branch, checkout, log, and more.',
|
|
13
|
+
parameters: {
|
|
14
|
+
action: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
description: 'Git action to perform',
|
|
17
|
+
required: true,
|
|
18
|
+
enum: ['status', 'diff', 'commit', 'branch', 'checkout', 'log', 'add', 'reset', 'stash', 'push', 'pull', 'fetch', 'merge', 'rebase', 'init', 'clone'],
|
|
19
|
+
},
|
|
20
|
+
args: {
|
|
21
|
+
type: 'array',
|
|
22
|
+
description: 'Additional arguments for the git command',
|
|
23
|
+
required: false,
|
|
24
|
+
},
|
|
25
|
+
message: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Commit message (required for commit action)',
|
|
28
|
+
required: false,
|
|
29
|
+
},
|
|
30
|
+
path: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'File path for add/reset/checkout operations',
|
|
33
|
+
required: false,
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
required: ['action'],
|
|
37
|
+
returns: 'Git command output',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
async execute(args) {
|
|
41
|
+
const action = args.action;
|
|
42
|
+
const message = args.message;
|
|
43
|
+
const gitArgs = args.args;
|
|
44
|
+
const path = args.path;
|
|
45
|
+
try {
|
|
46
|
+
let result;
|
|
47
|
+
switch (action) {
|
|
48
|
+
case 'status':
|
|
49
|
+
result = await this.git.status();
|
|
50
|
+
break;
|
|
51
|
+
case 'diff':
|
|
52
|
+
result = await this.git.diff(path);
|
|
53
|
+
break;
|
|
54
|
+
case 'commit':
|
|
55
|
+
if (!message) {
|
|
56
|
+
return { success: false, error: 'Commit message is required for commit action' };
|
|
57
|
+
}
|
|
58
|
+
result = await this.git.commit(message, gitArgs);
|
|
59
|
+
break;
|
|
60
|
+
case 'add':
|
|
61
|
+
result = await this.git.add(path || '.');
|
|
62
|
+
break;
|
|
63
|
+
case 'branch':
|
|
64
|
+
result = await this.git.branch(gitArgs);
|
|
65
|
+
break;
|
|
66
|
+
case 'checkout':
|
|
67
|
+
result = await this.git.checkout(gitArgs?.[0] || path || '');
|
|
68
|
+
break;
|
|
69
|
+
case 'log':
|
|
70
|
+
result = await this.git.log(gitArgs);
|
|
71
|
+
break;
|
|
72
|
+
case 'reset':
|
|
73
|
+
result = await this.git.reset(gitArgs?.[0]);
|
|
74
|
+
break;
|
|
75
|
+
case 'stash':
|
|
76
|
+
result = await this.git.stash(gitArgs);
|
|
77
|
+
break;
|
|
78
|
+
case 'push':
|
|
79
|
+
result = await this.git.push(gitArgs);
|
|
80
|
+
break;
|
|
81
|
+
case 'pull':
|
|
82
|
+
result = await this.git.pull(gitArgs);
|
|
83
|
+
break;
|
|
84
|
+
case 'fetch':
|
|
85
|
+
result = await this.git.fetch(gitArgs);
|
|
86
|
+
break;
|
|
87
|
+
case 'merge':
|
|
88
|
+
result = await this.git.merge(gitArgs?.[0] || '');
|
|
89
|
+
break;
|
|
90
|
+
case 'init':
|
|
91
|
+
result = await this.git.init();
|
|
92
|
+
break;
|
|
93
|
+
case 'clone':
|
|
94
|
+
result = await this.git.clone(gitArgs?.[0] || '', gitArgs?.[1]);
|
|
95
|
+
break;
|
|
96
|
+
default:
|
|
97
|
+
return { success: false, error: `Unknown git action: ${action}` };
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
success: true,
|
|
101
|
+
data: {
|
|
102
|
+
action,
|
|
103
|
+
output: result,
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
return {
|
|
109
|
+
success: false,
|
|
110
|
+
error: error instanceof Error ? error.message : String(error),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=GitTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitTool.js","sourceRoot":"","sources":["../../src/tools/GitTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { ToolSchema, ToolResult } from '../types.js';
|
|
3
|
+
export declare class GlobTool extends BaseTool {
|
|
4
|
+
protected defineSchema(): ToolSchema;
|
|
5
|
+
execute(args: Record<string, unknown>): Promise<ToolResult>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=GlobTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobTool.d.ts","sourceRoot":"","sources":["../../src/tools/GlobTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,qBAAa,QAAS,SAAQ,QAAQ;IACpC,SAAS,CAAC,YAAY,IAAI,UAAU;IAwB9B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAwBlE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { fileSystem } from '../filesystem/index.js';
|
|
3
|
+
export class GlobTool extends BaseTool {
|
|
4
|
+
defineSchema() {
|
|
5
|
+
return {
|
|
6
|
+
name: 'glob',
|
|
7
|
+
description: 'Find files using glob patterns. Returns matching file paths.',
|
|
8
|
+
parameters: {
|
|
9
|
+
pattern: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
description: 'Glob pattern to match files (e.g., "**/*.ts", "src/**/*.js", "**/*.{ts,js}")',
|
|
12
|
+
required: true,
|
|
13
|
+
},
|
|
14
|
+
max_results: {
|
|
15
|
+
type: 'number',
|
|
16
|
+
description: 'Maximum number of results to return',
|
|
17
|
+
required: false,
|
|
18
|
+
default: 200,
|
|
19
|
+
minimum: 1,
|
|
20
|
+
maximum: 10000,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
required: ['pattern'],
|
|
24
|
+
returns: 'List of matching file paths',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async execute(args) {
|
|
28
|
+
const pattern = args.pattern;
|
|
29
|
+
const maxResults = args.max_results || 200;
|
|
30
|
+
try {
|
|
31
|
+
const files = await fileSystem.globSearch(pattern);
|
|
32
|
+
const trimmed = files.slice(0, maxResults);
|
|
33
|
+
return {
|
|
34
|
+
success: true,
|
|
35
|
+
data: {
|
|
36
|
+
pattern,
|
|
37
|
+
total_matches: files.length,
|
|
38
|
+
displayed: trimmed.length,
|
|
39
|
+
files: trimmed,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
return {
|
|
45
|
+
success: false,
|
|
46
|
+
error: error instanceof Error ? error.message : String(error),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=GlobTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobTool.js","sourceRoot":"","sources":["../../src/tools/GlobTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,OAAO,QAAS,SAAQ,QAAQ;IAC1B,YAAY;QACpB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,8DAA8D;YAC3E,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8EAA8E;oBAC3F,QAAQ,EAAE,IAAI;iBACf;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qCAAqC;oBAClD,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,KAAK;iBACf;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,OAAO,EAAE,6BAA6B;SACvC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;QACvC,MAAM,UAAU,GAAI,IAAI,CAAC,WAAsB,IAAI,GAAG,CAAC;QAEvD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAE3C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,OAAO;oBACP,aAAa,EAAE,KAAK,CAAC,MAAM;oBAC3B,SAAS,EAAE,OAAO,CAAC,MAAM;oBACzB,KAAK,EAAE,OAAO;iBACf;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { ToolSchema, ToolResult } from '../types.js';
|
|
3
|
+
export declare class MemoryTool extends BaseTool {
|
|
4
|
+
private memory;
|
|
5
|
+
constructor();
|
|
6
|
+
protected defineSchema(): ToolSchema;
|
|
7
|
+
execute(args: Record<string, unknown>): Promise<ToolResult>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=MemoryTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryTool.d.ts","sourceRoot":"","sources":["../../src/tools/MemoryTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,qBAAa,UAAW,SAAQ,QAAQ;IACtC,OAAO,CAAC,MAAM,CAAgB;;IAO9B,SAAS,CAAC,YAAY,IAAI,UAAU;IAsC9B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAqElE"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { MemoryManager } from '../memory/index.js';
|
|
3
|
+
export class MemoryTool extends BaseTool {
|
|
4
|
+
memory;
|
|
5
|
+
constructor() {
|
|
6
|
+
super();
|
|
7
|
+
this.memory = new MemoryManager();
|
|
8
|
+
}
|
|
9
|
+
defineSchema() {
|
|
10
|
+
return {
|
|
11
|
+
name: 'memory',
|
|
12
|
+
description: 'Store and retrieve information in the agent memory system.',
|
|
13
|
+
parameters: {
|
|
14
|
+
action: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
description: 'Memory action to perform',
|
|
17
|
+
required: true,
|
|
18
|
+
enum: ['store', 'retrieve', 'search', 'list', 'delete', 'summarize', 'clear'],
|
|
19
|
+
},
|
|
20
|
+
key: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
description: 'Memory key or identifier',
|
|
23
|
+
required: false,
|
|
24
|
+
},
|
|
25
|
+
value: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description: 'Value to store',
|
|
28
|
+
required: false,
|
|
29
|
+
},
|
|
30
|
+
type: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'Memory type (project, conversation, task, preference)',
|
|
33
|
+
required: false,
|
|
34
|
+
enum: ['project', 'conversation', 'task', 'preference'],
|
|
35
|
+
},
|
|
36
|
+
query: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Search query',
|
|
39
|
+
required: false,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
required: ['action'],
|
|
43
|
+
returns: 'Memory operation result',
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
async execute(args) {
|
|
47
|
+
const action = args.action;
|
|
48
|
+
const key = args.key;
|
|
49
|
+
const value = args.value;
|
|
50
|
+
const type = args.type || 'conversation';
|
|
51
|
+
const query = args.query;
|
|
52
|
+
try {
|
|
53
|
+
switch (action) {
|
|
54
|
+
case 'store': {
|
|
55
|
+
if (!key || !value) {
|
|
56
|
+
return { success: false, error: 'key and value are required for store action' };
|
|
57
|
+
}
|
|
58
|
+
this.memory.store(key, value, type);
|
|
59
|
+
return { success: true, data: { stored: key, type } };
|
|
60
|
+
}
|
|
61
|
+
case 'retrieve': {
|
|
62
|
+
if (!key) {
|
|
63
|
+
return { success: false, error: 'key is required for retrieve action' };
|
|
64
|
+
}
|
|
65
|
+
const result = this.memory.retrieve(key);
|
|
66
|
+
if (result === null) {
|
|
67
|
+
return { success: true, data: { key, found: false, value: null } };
|
|
68
|
+
}
|
|
69
|
+
return { success: true, data: { key, found: true, value: result.value, type: result.type } };
|
|
70
|
+
}
|
|
71
|
+
case 'search': {
|
|
72
|
+
if (!query) {
|
|
73
|
+
return { success: false, error: 'query is required for search action' };
|
|
74
|
+
}
|
|
75
|
+
const results = this.memory.search(query);
|
|
76
|
+
return { success: true, data: { query, results: results.slice(0, 20) } };
|
|
77
|
+
}
|
|
78
|
+
case 'list': {
|
|
79
|
+
const items = this.memory.list(type);
|
|
80
|
+
return { success: true, data: { type, items: items.slice(0, 50) } };
|
|
81
|
+
}
|
|
82
|
+
case 'delete': {
|
|
83
|
+
if (!key) {
|
|
84
|
+
return { success: false, error: 'key is required for delete action' };
|
|
85
|
+
}
|
|
86
|
+
this.memory.delete(key);
|
|
87
|
+
return { success: true, data: { deleted: key } };
|
|
88
|
+
}
|
|
89
|
+
case 'summarize': {
|
|
90
|
+
const summary = this.memory.getSessionSummary();
|
|
91
|
+
return { success: true, data: { summary } };
|
|
92
|
+
}
|
|
93
|
+
case 'clear': {
|
|
94
|
+
this.memory.clear();
|
|
95
|
+
return { success: true, data: { cleared: true } };
|
|
96
|
+
}
|
|
97
|
+
default:
|
|
98
|
+
return { success: false, error: `Unknown memory action: ${action}` };
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
return {
|
|
103
|
+
success: false,
|
|
104
|
+
error: error instanceof Error ? error.message : String(error),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=MemoryTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryTool.js","sourceRoot":"","sources":["../../src/tools/MemoryTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { ToolSchema, ToolResult } from '../types.js';
|
|
3
|
+
export declare class ReadFileTool extends BaseTool {
|
|
4
|
+
protected defineSchema(): ToolSchema;
|
|
5
|
+
execute(args: Record<string, unknown>): Promise<ToolResult>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=ReadFileTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadFileTool.d.ts","sourceRoot":"","sources":["../../src/tools/ReadFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,qBAAa,YAAa,SAAQ,QAAQ;IACxC,SAAS,CAAC,YAAY,IAAI,UAAU;IA+B9B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CA2ClE"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { fileSystem } from '../filesystem/index.js';
|
|
3
|
+
export class ReadFileTool extends BaseTool {
|
|
4
|
+
defineSchema() {
|
|
5
|
+
return {
|
|
6
|
+
name: 'read_file',
|
|
7
|
+
description: 'Read the contents of a file. Supports reading specific line ranges.',
|
|
8
|
+
parameters: {
|
|
9
|
+
file_path: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
description: 'Path to the file to read',
|
|
12
|
+
required: true,
|
|
13
|
+
},
|
|
14
|
+
offset: {
|
|
15
|
+
type: 'number',
|
|
16
|
+
description: 'Starting line number (1-indexed)',
|
|
17
|
+
required: false,
|
|
18
|
+
default: 1,
|
|
19
|
+
minimum: 1,
|
|
20
|
+
},
|
|
21
|
+
limit: {
|
|
22
|
+
type: 'number',
|
|
23
|
+
description: 'Maximum number of lines to read',
|
|
24
|
+
required: false,
|
|
25
|
+
default: 2000,
|
|
26
|
+
minimum: 1,
|
|
27
|
+
maximum: 100000,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
required: ['file_path'],
|
|
31
|
+
returns: 'File content as text',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async execute(args) {
|
|
35
|
+
const filePath = args.file_path;
|
|
36
|
+
const offset = args.offset || 1;
|
|
37
|
+
const limit = args.limit || 2000;
|
|
38
|
+
try {
|
|
39
|
+
if (!fileSystem.exists(filePath)) {
|
|
40
|
+
return {
|
|
41
|
+
success: false,
|
|
42
|
+
error: `File not found: ${filePath}`,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const info = fileSystem.getFileInfo(filePath);
|
|
46
|
+
if (info?.isDirectory) {
|
|
47
|
+
return {
|
|
48
|
+
success: false,
|
|
49
|
+
error: `Path is a directory, not a file: ${filePath}`,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const lines = fileSystem.readFileLines(filePath, offset, offset + limit - 1);
|
|
53
|
+
const content = lines.join('\n');
|
|
54
|
+
const totalLines = fileSystem.readFile(filePath).split('\n').length;
|
|
55
|
+
return {
|
|
56
|
+
success: true,
|
|
57
|
+
data: {
|
|
58
|
+
file_path: filePath,
|
|
59
|
+
content,
|
|
60
|
+
total_lines: totalLines,
|
|
61
|
+
start_line: offset,
|
|
62
|
+
end_line: Math.min(offset + limit - 1, totalLines),
|
|
63
|
+
size: info?.size,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
return {
|
|
69
|
+
success: false,
|
|
70
|
+
error: error instanceof Error ? error.message : String(error),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=ReadFileTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadFileTool.js","sourceRoot":"","sources":["../../src/tools/ReadFileTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAC9B,YAAY;QACpB,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qEAAqE;YAClF,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;oBACvC,QAAQ,EAAE,IAAI;iBACf;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;iBACX;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;oBAC9C,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,MAAM;iBAChB;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;YACvB,OAAO,EAAE,sBAAsB;SAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAmB,CAAC;QAC1C,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAI,IAAI,CAAC,KAAgB,IAAI,IAAI,CAAC;QAE7C,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,mBAAmB,QAAQ,EAAE;iBACrC,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oCAAoC,QAAQ,EAAE;iBACtD,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAEpE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,SAAS,EAAE,QAAQ;oBACnB,OAAO;oBACP,WAAW,EAAE,UAAU;oBACvB,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC;oBAClD,IAAI,EAAE,IAAI,EAAE,IAAI;iBACjB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseTool } from './base.js';
|
|
2
|
+
import { ToolSchema, ToolResult } from '../types.js';
|
|
3
|
+
export declare class SearchTool extends BaseTool {
|
|
4
|
+
protected defineSchema(): ToolSchema;
|
|
5
|
+
execute(args: Record<string, unknown>): Promise<ToolResult>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=SearchTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchTool.d.ts","sourceRoot":"","sources":["../../src/tools/SearchTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,qBAAa,UAAW,SAAQ,QAAQ;IACtC,SAAS,CAAC,YAAY,IAAI,UAAU;IAoC9B,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CA4BlE"}
|