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,364 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, statSync, unlinkSync, renameSync } from 'fs';
|
|
3
|
+
import { join, relative, resolve, basename, dirname, extname } from 'path';
|
|
4
|
+
import { tui } from '../../ui/index.js';
|
|
5
|
+
import { agent } from '../../agent/index.js';
|
|
6
|
+
import { isBinaryFile, formatBytes, getLanguageFromExtension } from '../../utils/index.js';
|
|
7
|
+
import { phoneConfig } from '../../ui/phoneOptimizer.js';
|
|
8
|
+
export async function handleRead(args) {
|
|
9
|
+
if (args.length === 0) {
|
|
10
|
+
tui.printLine(chalk.red('Usage: /read <path> [--all]'));
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
const path = args[0];
|
|
14
|
+
const showAll = args.includes('--all');
|
|
15
|
+
const fullPath = resolve(process.cwd(), path);
|
|
16
|
+
try {
|
|
17
|
+
if (!existsSync(fullPath)) {
|
|
18
|
+
tui.printLine(chalk.red(`File not found: ${path}`));
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
const stat = statSync(fullPath);
|
|
22
|
+
if (stat.isDirectory()) {
|
|
23
|
+
tui.printLine(chalk.cyan(`\n${relative(process.cwd(), fullPath) || '.'}/`));
|
|
24
|
+
printTree(fullPath, '', true);
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
if (isBinaryFile(fullPath)) {
|
|
28
|
+
tui.printLine(chalk.yellow('Binary file detected. Cannot display.'));
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
const content = readFileSync(fullPath, 'utf-8');
|
|
32
|
+
const lines = content.split('\n');
|
|
33
|
+
const ext = extname(fullPath);
|
|
34
|
+
const lang = getLanguageFromExtension(ext);
|
|
35
|
+
tui.printLine(chalk.cyan(`\n╔═ ${basename(fullPath)} (${lang}) ═${'═'.repeat(Math.min(40, phoneConfig.terminalWidth - 20))}╗`));
|
|
36
|
+
tui.printLine(chalk.gray(` Path: ${relative(process.cwd(), fullPath)} | ${lines.length} lines | ${formatBytes(stat.size)}`));
|
|
37
|
+
tui.printLine('');
|
|
38
|
+
const maxLines = showAll ? lines.length : Math.min(lines.length, 100);
|
|
39
|
+
const startLine = 0;
|
|
40
|
+
for (let i = startLine; i < maxLines; i++) {
|
|
41
|
+
const lineNum = chalk.gray(String(i + 1).padStart(4, ' '));
|
|
42
|
+
tui.printLine(`${lineNum} ${lines[i]}`);
|
|
43
|
+
}
|
|
44
|
+
if (!showAll && lines.length > 100) {
|
|
45
|
+
tui.printLine(chalk.gray(`\n ... and ${lines.length - 100} more lines. Use /read ${path} --all to show all.`));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
tui.printLine(chalk.red(`Error reading file: ${error instanceof Error ? error.message : String(error)}`));
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
export async function handleEdit(args) {
|
|
54
|
+
if (args.length < 2) {
|
|
55
|
+
tui.printLine(chalk.red('Usage: /edit <path> <instruction>'));
|
|
56
|
+
tui.printLine(chalk.gray(' Example: /edit src/index.ts add error handling for fetch calls'));
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
const path = args[0];
|
|
60
|
+
const instruction = args.slice(1).join(' ');
|
|
61
|
+
const fullPath = resolve(process.cwd(), path);
|
|
62
|
+
if (!existsSync(fullPath)) {
|
|
63
|
+
tui.printLine(chalk.red(`File not found: ${path}`));
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
tui.printLine(chalk.cyan(`\nEditing: ${path}`));
|
|
67
|
+
tui.printLine(chalk.gray(` Instruction: ${instruction}`));
|
|
68
|
+
const content = readFileSync(fullPath, 'utf-8');
|
|
69
|
+
const backupDir = join(process.cwd(), '.ys', 'backups');
|
|
70
|
+
if (!existsSync(backupDir))
|
|
71
|
+
mkdirSync(backupDir, { recursive: true });
|
|
72
|
+
const backupPath = join(backupDir, `${basename(fullPath)}.${Date.now()}.bak`);
|
|
73
|
+
writeFileSync(backupPath, content, 'utf-8');
|
|
74
|
+
const result = await agent.chat(`Edit the file "${path}" with this instruction: "${instruction}". Current content:\n\n\`\`\`\n${content}\n\`\`\`\n\nReturn ONLY the complete edited file content, nothing else.`);
|
|
75
|
+
if (result.content) {
|
|
76
|
+
const editedContent = extractCodeContent(result.content);
|
|
77
|
+
if (editedContent && editedContent !== content) {
|
|
78
|
+
showDiff(content, editedContent, path);
|
|
79
|
+
tui.printLine(chalk.gray('\nApply changes? [Y/n]'));
|
|
80
|
+
const confirm = await promptConfirm(true);
|
|
81
|
+
if (confirm) {
|
|
82
|
+
writeFileSync(fullPath, editedContent, 'utf-8');
|
|
83
|
+
tui.printLine(chalk.green(`✓ Saved to ${path}`));
|
|
84
|
+
tui.printLine(chalk.gray(` Backup: ${backupPath}`));
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
tui.printLine(chalk.yellow('Edit cancelled'));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
tui.printLine(chalk.yellow('No changes to apply'));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
export async function handleCreate(args) {
|
|
97
|
+
if (args.length === 0) {
|
|
98
|
+
tui.printLine(chalk.red('Usage: /create <path> [content]'));
|
|
99
|
+
tui.printLine(chalk.gray(' Example: /create src/utils.ts'));
|
|
100
|
+
tui.printLine(chalk.gray(' Example: /create component Button'));
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
const path = args[0];
|
|
104
|
+
const fullPath = resolve(process.cwd(), path);
|
|
105
|
+
if (existsSync(fullPath)) {
|
|
106
|
+
tui.printLine(chalk.yellow(`File exists: ${path}`));
|
|
107
|
+
tui.printLine(chalk.gray('Overwrite? [y/N]'));
|
|
108
|
+
const confirm = await promptConfirm(false);
|
|
109
|
+
if (!confirm) {
|
|
110
|
+
tui.printLine(chalk.yellow('Cancelled'));
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const dir = dirname(fullPath);
|
|
115
|
+
if (!existsSync(dir))
|
|
116
|
+
mkdirSync(dir, { recursive: true });
|
|
117
|
+
const initialContent = args.length > 1 ? args.slice(1).join(' ') : '';
|
|
118
|
+
if (initialContent) {
|
|
119
|
+
writeFileSync(fullPath, initialContent, 'utf-8');
|
|
120
|
+
tui.printLine(chalk.green(`✓ Created ${path}`));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const ext = extname(fullPath);
|
|
124
|
+
const template = getTemplate(ext);
|
|
125
|
+
writeFileSync(fullPath, template, 'utf-8');
|
|
126
|
+
tui.printLine(chalk.green(`✓ Created ${path} with template`));
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
export async function handleDelete(args) {
|
|
131
|
+
if (args.length === 0) {
|
|
132
|
+
tui.printLine(chalk.red('Usage: /delete <path> [--hard]'));
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
const path = args[0];
|
|
136
|
+
const hardDelete = args.includes('--hard');
|
|
137
|
+
const fullPath = resolve(process.cwd(), path);
|
|
138
|
+
if (!existsSync(fullPath)) {
|
|
139
|
+
tui.printLine(chalk.red(`File not found: ${path}`));
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
tui.printLine(chalk.yellow(`Delete ${path}? This cannot be undone. [y/N]`));
|
|
143
|
+
const confirm = await promptConfirm(false);
|
|
144
|
+
if (!confirm) {
|
|
145
|
+
tui.printLine(chalk.yellow('Cancelled'));
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
if (hardDelete) {
|
|
149
|
+
unlinkSync(fullPath);
|
|
150
|
+
tui.printLine(chalk.green(`✓ Permanently deleted ${path}`));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
const trashDir = join(process.cwd(), '.ys', 'trash');
|
|
154
|
+
if (!existsSync(trashDir))
|
|
155
|
+
mkdirSync(trashDir, { recursive: true });
|
|
156
|
+
const trashPath = join(trashDir, `${basename(fullPath)}.${Date.now()}`);
|
|
157
|
+
renameSync(fullPath, trashPath);
|
|
158
|
+
tui.printLine(chalk.green(`✓ Moved to trash: ${path}`));
|
|
159
|
+
tui.printLine(chalk.gray(` Trash: ${trashPath}`));
|
|
160
|
+
}
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
export async function handleSearch(args) {
|
|
164
|
+
if (args.length === 0) {
|
|
165
|
+
tui.printLine(chalk.red('Usage: /search <query> [--ext <extension>]'));
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
const query = args[0];
|
|
169
|
+
const extFilter = args.indexOf('--ext') >= 0 ? args[args.indexOf('--ext') + 1] : null;
|
|
170
|
+
tui.printLine(chalk.cyan(`\nSearching for: ${chalk.white(query)}`));
|
|
171
|
+
try {
|
|
172
|
+
const { glob } = require('fast-glob');
|
|
173
|
+
const { readFileSync } = require('fs');
|
|
174
|
+
const patterns = extFilter ? [`**/*.${extFilter}`] : ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.py', '**/*.json', '**/*.md', '**/*.html', '**/*.css'];
|
|
175
|
+
const ignore = ['**/node_modules/**', '**/dist/**', '**/.git/**', '**/build/**'];
|
|
176
|
+
const files = await glob(patterns, { ignore, cwd: process.cwd() });
|
|
177
|
+
let totalMatches = 0;
|
|
178
|
+
const results = [];
|
|
179
|
+
for (const file of files.slice(0, 200)) {
|
|
180
|
+
try {
|
|
181
|
+
const content = readFileSync(resolve(process.cwd(), file), 'utf-8');
|
|
182
|
+
const lines = content.split('\n');
|
|
183
|
+
for (let i = 0; i < lines.length; i++) {
|
|
184
|
+
if (lines[i].toLowerCase().includes(query.toLowerCase())) {
|
|
185
|
+
results.push({ file, line: i + 1, content: lines[i].trim() });
|
|
186
|
+
totalMatches++;
|
|
187
|
+
if (totalMatches >= 30)
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch { }
|
|
193
|
+
if (totalMatches >= 30)
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
if (results.length === 0) {
|
|
197
|
+
tui.printLine(chalk.yellow('No matches found'));
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
tui.printLine(chalk.gray(`\nFound ${results.length} matches:`));
|
|
201
|
+
for (const r of results) {
|
|
202
|
+
const line = chalk.yellow(String(r.line));
|
|
203
|
+
const file = chalk.white(r.file);
|
|
204
|
+
const match = highlightMatch(r.content, query);
|
|
205
|
+
tui.printLine(` ${file}:${line}: ${match}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
tui.printLine(chalk.red(`Search error: ${error instanceof Error ? error.message : String(error)}`));
|
|
211
|
+
}
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
214
|
+
export async function handleList(args) {
|
|
215
|
+
const dir = args[0] || '.';
|
|
216
|
+
const fullPath = resolve(process.cwd(), dir);
|
|
217
|
+
if (!existsSync(fullPath)) {
|
|
218
|
+
tui.printLine(chalk.red(`Directory not found: ${dir}`));
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
const stat = statSync(fullPath);
|
|
222
|
+
if (!stat.isDirectory()) {
|
|
223
|
+
tui.printLine(chalk.yellow('Not a directory'));
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
226
|
+
tui.printLine(chalk.cyan(`\n${relative(process.cwd(), fullPath) || '.'}/`));
|
|
227
|
+
printTree(fullPath, '', true);
|
|
228
|
+
return true;
|
|
229
|
+
}
|
|
230
|
+
export async function handleRefactor(args) {
|
|
231
|
+
if (args.length < 2) {
|
|
232
|
+
tui.printLine(chalk.red('Usage: /refactor <file> <instruction>'));
|
|
233
|
+
return true;
|
|
234
|
+
}
|
|
235
|
+
const path = args[0];
|
|
236
|
+
const instruction = args.slice(1).join(' ');
|
|
237
|
+
const fullPath = resolve(process.cwd(), path);
|
|
238
|
+
if (!existsSync(fullPath)) {
|
|
239
|
+
tui.printLine(chalk.red(`File not found: ${path}`));
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
tui.printLine(chalk.cyan(`\nRefactoring: ${path}`));
|
|
243
|
+
tui.printLine(chalk.gray(` ${instruction}`));
|
|
244
|
+
const content = readFileSync(fullPath, 'utf-8');
|
|
245
|
+
const backupDir = join(process.cwd(), '.ys', 'backups');
|
|
246
|
+
if (!existsSync(backupDir))
|
|
247
|
+
mkdirSync(backupDir, { recursive: true });
|
|
248
|
+
writeFileSync(join(backupDir, `${basename(fullPath)}.${Date.now()}.bak`), content, 'utf-8');
|
|
249
|
+
const result = await agent.chat(`Refactor the file "${path}" with this instruction: "${instruction}". Current content:\n\n\`\`\`\n${content}\n\`\`\`\n\nReturn ONLY the complete refactored file content, nothing else.`);
|
|
250
|
+
if (result.content) {
|
|
251
|
+
const refactored = extractCodeContent(result.content);
|
|
252
|
+
if (refactored && refactored !== content) {
|
|
253
|
+
showDiff(content, refactored, path);
|
|
254
|
+
tui.printLine(chalk.gray('\nApply refactoring? [Y/n]'));
|
|
255
|
+
const confirm = await promptConfirm(true);
|
|
256
|
+
if (confirm) {
|
|
257
|
+
writeFileSync(fullPath, refactored, 'utf-8');
|
|
258
|
+
tui.printLine(chalk.green(`✓ Refactored ${path}`));
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
tui.printLine(chalk.yellow('Refactoring cancelled'));
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
tui.printLine(chalk.yellow('No changes to apply'));
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
270
|
+
function printTree(dir, prefix, isRoot) {
|
|
271
|
+
try {
|
|
272
|
+
const entries = readdirSync(dir).filter((e) => !e.startsWith('.'));
|
|
273
|
+
for (let i = 0; i < entries.length; i++) {
|
|
274
|
+
const entry = entries[i];
|
|
275
|
+
const fullPath = join(dir, entry);
|
|
276
|
+
const isLast = i === entries.length - 1;
|
|
277
|
+
const stat = statSync(fullPath);
|
|
278
|
+
const connector = isLast ? '└── ' : '├── ';
|
|
279
|
+
if (stat.isDirectory()) {
|
|
280
|
+
tui.printLine(`${prefix}${connector}${chalk.cyan(entry)}/`);
|
|
281
|
+
const newPrefix = prefix + (isLast ? ' ' : '│ ');
|
|
282
|
+
printTree(fullPath, newPrefix, false);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
const ext = extname(entry);
|
|
286
|
+
const color = getFileColor(ext);
|
|
287
|
+
tui.printLine(`${prefix}${connector}${color(entry)}`);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch { }
|
|
292
|
+
}
|
|
293
|
+
function getFileColor(ext) {
|
|
294
|
+
const map = {
|
|
295
|
+
'.ts': chalk.blue, '.tsx': chalk.blue, '.js': chalk.yellow, '.jsx': chalk.yellow,
|
|
296
|
+
'.json': chalk.gray, '.md': chalk.white, '.py': chalk.green, '.css': chalk.magenta,
|
|
297
|
+
'.html': chalk.red, '.yml': chalk.gray, '.yaml': chalk.gray, '.sh': chalk.green,
|
|
298
|
+
};
|
|
299
|
+
return map[ext] || chalk.white;
|
|
300
|
+
}
|
|
301
|
+
function showDiff(oldContent, newContent, path) {
|
|
302
|
+
const oldLines = oldContent.split('\n');
|
|
303
|
+
const newLines = newContent.split('\n');
|
|
304
|
+
tui.printLine(chalk.cyan(`\nChanges for ${path}:`));
|
|
305
|
+
const maxLen = Math.max(oldLines.length, newLines.length);
|
|
306
|
+
for (let i = 0; i < maxLen; i++) {
|
|
307
|
+
if (oldLines[i] !== newLines[i]) {
|
|
308
|
+
if (i < oldLines.length) {
|
|
309
|
+
tui.printLine(chalk.red(` - ${oldLines[i]}`));
|
|
310
|
+
}
|
|
311
|
+
if (i < newLines.length) {
|
|
312
|
+
tui.printLine(chalk.green(` + ${newLines[i]}`));
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
function extractCodeContent(text) {
|
|
318
|
+
const codeBlockRegex = /```(?:\w+)?\n([\s\S]*?)```/;
|
|
319
|
+
const match = text.match(codeBlockRegex);
|
|
320
|
+
if (match)
|
|
321
|
+
return match[1].trim();
|
|
322
|
+
const lines = text.split('\n');
|
|
323
|
+
if (lines.length > 1)
|
|
324
|
+
return text.trim();
|
|
325
|
+
return null;
|
|
326
|
+
}
|
|
327
|
+
function highlightMatch(line, query) {
|
|
328
|
+
const lower = line.toLowerCase();
|
|
329
|
+
const qLower = query.toLowerCase();
|
|
330
|
+
const idx = lower.indexOf(qLower);
|
|
331
|
+
if (idx === -1)
|
|
332
|
+
return line;
|
|
333
|
+
return line.slice(0, idx) + chalk.yellow(line.slice(idx, idx + query.length)) + line.slice(idx + query.length);
|
|
334
|
+
}
|
|
335
|
+
function getTemplate(ext) {
|
|
336
|
+
const templates = {
|
|
337
|
+
'.ts': '// Generated by YS Code Agent\n\nexport function main(): void {\n console.log("Hello, World!");\n}\n\nmain();\n',
|
|
338
|
+
'.tsx': 'import React from "react";\n\ninterface Props {}\n\nexport const Component: React.FC<Props> = () => {\n return <div>Hello, World!</div>;\n};\n',
|
|
339
|
+
'.js': '// Generated by YS Code Agent\n\nfunction main() {\n console.log("Hello, World!");\n}\n\nmain();\n',
|
|
340
|
+
'.py': '# Generated by YS Code Agent\n\ndef main():\n print("Hello, World!")\n\nif __name__ == "__main__":\n main()\n',
|
|
341
|
+
'.html': '<!DOCTYPE html>\n<html lang="en">\n<head>\n <meta charset="UTF-8">\n <meta name="viewport" content="width=device-width, initial-scale=1.0">\n <title>Document</title>\n</head>\n<body>\n <h1>Hello, World!</h1>\n</body>\n</html>\n',
|
|
342
|
+
'.json': '{\n "name": "project",\n "version": "1.0.0",\n "description": ""\n}\n',
|
|
343
|
+
'.md': '# Project\n\n## Description\n\n## Usage\n\n## Notes\n',
|
|
344
|
+
};
|
|
345
|
+
return templates[ext] || `// Generated by YS Code Agent\n`;
|
|
346
|
+
}
|
|
347
|
+
function promptConfirm(defaultYes) {
|
|
348
|
+
return new Promise((resolve) => {
|
|
349
|
+
const { createInterface } = require('readline');
|
|
350
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
351
|
+
const prompt = defaultYes ? '[Y/n] ' : '[y/N] ';
|
|
352
|
+
rl.question(prompt, (answer) => {
|
|
353
|
+
rl.close();
|
|
354
|
+
const a = answer.trim().toLowerCase();
|
|
355
|
+
if (defaultYes) {
|
|
356
|
+
resolve(a !== 'n' && a !== 'no');
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
resolve(a === 'y' || a === 'yes');
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/commands/handlers/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/git.ts"],"names":[],"mappings":"AAMA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA4ChE"}
|