xx-ai-cli 0.1.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 +328 -0
- package/dist/commands/agent.d.ts +12 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +311 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/ask.d.ts +7 -0
- package/dist/commands/ask.d.ts.map +1 -0
- package/dist/commands/ask.js +52 -0
- package/dist/commands/ask.js.map +1 -0
- package/dist/commands/chat.d.ts +9 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +129 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/cmd.d.ts +6 -0
- package/dist/commands/cmd.d.ts.map +1 -0
- package/dist/commands/cmd.js +52 -0
- package/dist/commands/cmd.js.map +1 -0
- package/dist/commands/code.d.ts +8 -0
- package/dist/commands/code.d.ts.map +1 -0
- package/dist/commands/code.js +75 -0
- package/dist/commands/code.js.map +1 -0
- package/dist/commands/file.d.ts +7 -0
- package/dist/commands/file.d.ts.map +1 -0
- package/dist/commands/file.js +66 -0
- package/dist/commands/file.js.map +1 -0
- package/dist/commands/history.d.ts +5 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +159 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +144 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +24 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +328 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/model.d.ts +6 -0
- package/dist/commands/model.d.ts.map +1 -0
- package/dist/commands/model.js +128 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/pkg.d.ts +12 -0
- package/dist/commands/pkg.d.ts.map +1 -0
- package/dist/commands/pkg.js +132 -0
- package/dist/commands/pkg.js.map +1 -0
- package/dist/commands/run.d.ts +9 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +185 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/core/agentTask.d.ts +20 -0
- package/dist/core/agentTask.d.ts.map +1 -0
- package/dist/core/agentTask.js +81 -0
- package/dist/core/agentTask.js.map +1 -0
- package/dist/core/config.d.ts +41 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +153 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/executor.d.ts +20 -0
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/core/executor.js +68 -0
- package/dist/core/executor.js.map +1 -0
- package/dist/core/files.d.ts +24 -0
- package/dist/core/files.d.ts.map +1 -0
- package/dist/core/files.js +95 -0
- package/dist/core/files.js.map +1 -0
- package/dist/core/github.d.ts +32 -0
- package/dist/core/github.d.ts.map +1 -0
- package/dist/core/github.js +82 -0
- package/dist/core/github.js.map +1 -0
- package/dist/core/prompt.d.ts +9 -0
- package/dist/core/prompt.d.ts.map +1 -0
- package/dist/core/prompt.js +44 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/router.d.ts +16 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +182 -0
- package/dist/core/router.js.map +1 -0
- package/dist/core/search.d.ts +14 -0
- package/dist/core/search.d.ts.map +1 -0
- package/dist/core/search.js +179 -0
- package/dist/core/search.js.map +1 -0
- package/dist/core/session.d.ts +38 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +172 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/stream.d.ts +15 -0
- package/dist/core/stream.d.ts.map +1 -0
- package/dist/core/stream.js +102 -0
- package/dist/core/stream.js.map +1 -0
- package/dist/core/tools.d.ts +343 -0
- package/dist/core/tools.d.ts.map +1 -0
- package/dist/core/tools.js +293 -0
- package/dist/core/tools.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +372 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/renderer.d.ts +17 -0
- package/dist/ui/renderer.d.ts.map +1 -0
- package/dist/ui/renderer.js +69 -0
- package/dist/ui/renderer.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import readline from 'readline';
|
|
3
|
+
import { webSearch, formatSearchResults } from './search.js';
|
|
4
|
+
import { readFile, writeFile, listDir, grepFiles, getProjectTree, replaceInFile } from './files.js';
|
|
5
|
+
import { run } from './executor.js';
|
|
6
|
+
import { config } from './config.js';
|
|
7
|
+
import { theme } from '../ui/renderer.js';
|
|
8
|
+
// ─── Tool 定义(OpenAI function calling 格式)─────────────────
|
|
9
|
+
export const TOOL_DEFINITIONS = [
|
|
10
|
+
{
|
|
11
|
+
type: 'function',
|
|
12
|
+
function: {
|
|
13
|
+
name: 'web_search',
|
|
14
|
+
description: '搜索互联网获取最新信息,当需要查找实时数据、新闻、文档等时使用',
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
query: { type: 'string', description: '搜索关键词' },
|
|
19
|
+
max_results: { type: 'number', description: '返回结果数量,默认5', default: 5 },
|
|
20
|
+
},
|
|
21
|
+
required: ['query'],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
type: 'function',
|
|
27
|
+
function: {
|
|
28
|
+
name: 'read_file',
|
|
29
|
+
description: '读取本地文件内容',
|
|
30
|
+
parameters: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
properties: {
|
|
33
|
+
path: { type: 'string', description: '文件路径(相对或绝对路径)' },
|
|
34
|
+
max_lines: { type: 'number', description: '最多读取行数,默认全部' },
|
|
35
|
+
},
|
|
36
|
+
required: ['path'],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'function',
|
|
42
|
+
function: {
|
|
43
|
+
name: 'write_file',
|
|
44
|
+
description: '写入内容到文件(会覆盖已有内容),可用于创建新文件',
|
|
45
|
+
parameters: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
path: { type: 'string', description: '文件路径' },
|
|
49
|
+
content: { type: 'string', description: '要写入的内容' },
|
|
50
|
+
},
|
|
51
|
+
required: ['path', 'content'],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
type: 'function',
|
|
57
|
+
function: {
|
|
58
|
+
name: 'replace_in_file',
|
|
59
|
+
description: '替换文件中的特定内容片段',
|
|
60
|
+
parameters: {
|
|
61
|
+
type: 'object',
|
|
62
|
+
properties: {
|
|
63
|
+
path: { type: 'string', description: '文件路径' },
|
|
64
|
+
search: { type: 'string', description: '要替换的原始内容' },
|
|
65
|
+
replace: { type: 'string', description: '替换后的新内容' },
|
|
66
|
+
},
|
|
67
|
+
required: ['path', 'search', 'replace'],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'function',
|
|
73
|
+
function: {
|
|
74
|
+
name: 'list_files',
|
|
75
|
+
description: '列出目录下的文件和文件夹',
|
|
76
|
+
parameters: {
|
|
77
|
+
type: 'object',
|
|
78
|
+
properties: {
|
|
79
|
+
path: { type: 'string', description: '目录路径,默认当前目录', default: '.' },
|
|
80
|
+
show_hidden: { type: 'boolean', description: '是否显示隐藏文件', default: false },
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'function',
|
|
87
|
+
function: {
|
|
88
|
+
name: 'project_tree',
|
|
89
|
+
description: '获取项目目录树结构(排除 node_modules、.git 等)',
|
|
90
|
+
parameters: {
|
|
91
|
+
type: 'object',
|
|
92
|
+
properties: {
|
|
93
|
+
path: { type: 'string', description: '根目录路径,默认当前目录', default: '.' },
|
|
94
|
+
depth: { type: 'number', description: '目录深度,默认3', default: 3 },
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'function',
|
|
101
|
+
function: {
|
|
102
|
+
name: 'grep_files',
|
|
103
|
+
description: '在文件中搜索指定内容(支持正则)',
|
|
104
|
+
parameters: {
|
|
105
|
+
type: 'object',
|
|
106
|
+
properties: {
|
|
107
|
+
pattern: { type: 'string', description: '搜索模式或关键词' },
|
|
108
|
+
path: { type: 'string', description: '搜索目录,默认当前目录', default: '.' },
|
|
109
|
+
file_glob: { type: 'string', description: '文件过滤,如 *.ts', default: '*' },
|
|
110
|
+
},
|
|
111
|
+
required: ['pattern'],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'function',
|
|
117
|
+
function: {
|
|
118
|
+
name: 'run_command',
|
|
119
|
+
description: '在终端执行 Shell 命令(危险操作会请求用户确认)',
|
|
120
|
+
parameters: {
|
|
121
|
+
type: 'object',
|
|
122
|
+
properties: {
|
|
123
|
+
command: { type: 'string', description: '要执行的 shell 命令' },
|
|
124
|
+
description: { type: 'string', description: '该命令的用途说明' },
|
|
125
|
+
},
|
|
126
|
+
required: ['command'],
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'function',
|
|
132
|
+
function: {
|
|
133
|
+
name: 'npm_install',
|
|
134
|
+
description: '安装 npm 包',
|
|
135
|
+
parameters: {
|
|
136
|
+
type: 'object',
|
|
137
|
+
properties: {
|
|
138
|
+
package: { type: 'string', description: '包名,支持 @scope/name@version 格式' },
|
|
139
|
+
global: { type: 'boolean', description: '是否全局安装', default: false },
|
|
140
|
+
dev: { type: 'boolean', description: '是否安装为 devDependencies', default: false },
|
|
141
|
+
},
|
|
142
|
+
required: ['package'],
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
];
|
|
147
|
+
// ─── 危险命令检测 ─────────────────────────────────────────────
|
|
148
|
+
const DANGEROUS_PATTERNS = [
|
|
149
|
+
/rm\s+-rf?\s+[\/~]/,
|
|
150
|
+
/sudo\s+rm/,
|
|
151
|
+
/mkfs/,
|
|
152
|
+
/dd\s+if=/,
|
|
153
|
+
/>\s*\/dev\/(sd|hd|nvme)/,
|
|
154
|
+
/chmod\s+777\s+\//,
|
|
155
|
+
/curl.*\|\s*bash/,
|
|
156
|
+
/wget.*\|\s*sh/,
|
|
157
|
+
];
|
|
158
|
+
function isDangerousCommand(cmd) {
|
|
159
|
+
return DANGEROUS_PATTERNS.some((p) => p.test(cmd));
|
|
160
|
+
}
|
|
161
|
+
// ─── 询问确认 ─────────────────────────────────────────────────
|
|
162
|
+
async function confirm(question) {
|
|
163
|
+
if (config.get('agentAutoConfirm'))
|
|
164
|
+
return true;
|
|
165
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
166
|
+
return new Promise((resolve) => {
|
|
167
|
+
rl.question(`${chalk.yellow('⚠')} ${question} ${chalk.dim('(y/N)')} `, (ans) => {
|
|
168
|
+
rl.close();
|
|
169
|
+
resolve(ans.toLowerCase() === 'y' || ans.toLowerCase() === 'yes');
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
export async function executeTool(toolCall) {
|
|
174
|
+
const { name, arguments: argsStr } = toolCall.function;
|
|
175
|
+
let args = {};
|
|
176
|
+
try {
|
|
177
|
+
args = JSON.parse(argsStr);
|
|
178
|
+
}
|
|
179
|
+
catch { /* ignore */ }
|
|
180
|
+
console.log(`\n${chalk.magenta('🔧 Tool')} ${chalk.bold(name)} ${chalk.dim(JSON.stringify(args).slice(0, 80))}`);
|
|
181
|
+
let result = '';
|
|
182
|
+
try {
|
|
183
|
+
switch (name) {
|
|
184
|
+
case 'web_search': {
|
|
185
|
+
const resp = await webSearch(args.query, args.max_results ?? 5);
|
|
186
|
+
result = formatSearchResults(resp);
|
|
187
|
+
console.log(theme.dim(` → 搜索完成,获得 ${resp.results.length} 条结果`));
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case 'read_file': {
|
|
191
|
+
result = readFile(args.path, args.max_lines);
|
|
192
|
+
const lines = result.split('\n').length;
|
|
193
|
+
console.log(theme.dim(` → 读取文件成功,${lines} 行`));
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
case 'write_file': {
|
|
197
|
+
const confirmed = await confirm(`将写入文件: ${chalk.cyan(args.path)} (${args.content.length} 字节)`);
|
|
198
|
+
if (!confirmed) {
|
|
199
|
+
result = '用户取消写入';
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
writeFile(args.path, args.content);
|
|
203
|
+
result = `文件写入成功: ${args.path}`;
|
|
204
|
+
console.log(theme.success(` → ${result}`));
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case 'replace_in_file': {
|
|
208
|
+
const confirmed = await confirm(`将修改文件: ${chalk.cyan(args.path)}`);
|
|
209
|
+
if (!confirmed) {
|
|
210
|
+
result = '用户取消修改';
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
const replaced = replaceInFile(args.path, args.search, args.replace);
|
|
214
|
+
result = replaced ? `替换成功: ${args.path}` : '未找到匹配内容,未替换';
|
|
215
|
+
console.log(theme.dim(` → ${result}`));
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
case 'list_files': {
|
|
219
|
+
const files = listDir(args.path ?? '.', args.show_hidden ?? false);
|
|
220
|
+
result = files
|
|
221
|
+
.map((f) => `${f.type === 'directory' ? '📁' : '📄'} ${f.name}${f.size !== undefined ? ` (${f.size}B)` : ''}`)
|
|
222
|
+
.join('\n');
|
|
223
|
+
console.log(theme.dim(` → 列出 ${files.length} 个条目`));
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
case 'project_tree': {
|
|
227
|
+
result = await getProjectTree(args.path ?? '.', args.depth ?? 3);
|
|
228
|
+
console.log(theme.dim(' → 获取项目结构完成'));
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
case 'grep_files': {
|
|
232
|
+
result = await grepFiles(args.pattern, args.path ?? '.', args.file_glob ?? '*');
|
|
233
|
+
console.log(theme.dim(` → grep 完成`));
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
case 'run_command': {
|
|
237
|
+
const cmd = args.command;
|
|
238
|
+
const desc = args.description ?? cmd;
|
|
239
|
+
if (isDangerousCommand(cmd)) {
|
|
240
|
+
console.log(theme.error(` ⛔ 检测到危险命令,已拒绝: ${cmd}`));
|
|
241
|
+
result = '该命令被安全策略拒绝执行';
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
const confirmed = await confirm(`执行命令: ${chalk.cyan(cmd)}\n 用途: ${desc}`);
|
|
245
|
+
if (!confirmed) {
|
|
246
|
+
result = '用户拒绝执行命令';
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
try {
|
|
250
|
+
result = await run(cmd);
|
|
251
|
+
console.log(theme.dim(` → 执行完成`));
|
|
252
|
+
}
|
|
253
|
+
catch (e) {
|
|
254
|
+
result = `命令执行失败: ${e.message}`;
|
|
255
|
+
console.log(theme.error(` → ${result}`));
|
|
256
|
+
}
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
case 'npm_install': {
|
|
260
|
+
const pkg = args.package;
|
|
261
|
+
const isGlobal = args.global ?? false;
|
|
262
|
+
const isDev = args.dev ?? false;
|
|
263
|
+
const flags = [isGlobal ? '-g' : '', isDev ? '--save-dev' : ''].filter(Boolean).join(' ');
|
|
264
|
+
const cmd = `npm install ${flags} ${pkg}`.trim();
|
|
265
|
+
const confirmed = await confirm(`执行: ${chalk.cyan(cmd)}`);
|
|
266
|
+
if (!confirmed) {
|
|
267
|
+
result = '用户取消安装';
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
try {
|
|
271
|
+
result = await run(cmd);
|
|
272
|
+
console.log(theme.success(` → npm 安装完成`));
|
|
273
|
+
}
|
|
274
|
+
catch (e) {
|
|
275
|
+
result = `安装失败: ${e.message}`;
|
|
276
|
+
}
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
default:
|
|
280
|
+
result = `未知工具: ${name}`;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
catch (err) {
|
|
284
|
+
result = `工具执行出错: ${err.message}`;
|
|
285
|
+
console.log(theme.error(` → ${result}`));
|
|
286
|
+
}
|
|
287
|
+
return {
|
|
288
|
+
tool_call_id: toolCall.id,
|
|
289
|
+
role: 'tool',
|
|
290
|
+
content: result,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|