@xagent-ai/cli 1.3.0 ā 1.3.2
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/.github/release.yml +76 -0
- package/.github/workflows/ci.yml +3 -0
- package/.github/workflows/release.yml +11 -17
- package/README.md +2 -2
- package/README_CN.md +2 -2
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +7 -3
- package/dist/agents.js.map +1 -1
- package/dist/ai-client/factory.d.ts +0 -12
- package/dist/ai-client/factory.d.ts.map +1 -1
- package/dist/ai-client/factory.js +0 -32
- package/dist/ai-client/factory.js.map +1 -1
- package/dist/ai-client/index.js +1 -1
- package/dist/ai-client/index.js.map +1 -1
- package/dist/ai-client/providers/anthropic.d.ts.map +1 -1
- package/dist/ai-client/providers/anthropic.js +10 -4
- package/dist/ai-client/providers/anthropic.js.map +1 -1
- package/dist/ai-client/providers/openai.d.ts.map +1 -1
- package/dist/ai-client/providers/openai.js +8 -4
- package/dist/ai-client/providers/openai.js.map +1 -1
- package/dist/ai-client/providers/remote.d.ts +0 -1
- package/dist/ai-client/providers/remote.d.ts.map +1 -1
- package/dist/ai-client/providers/remote.js +11 -10
- package/dist/ai-client/providers/remote.js.map +1 -1
- package/dist/ai-client/types.d.ts +14 -0
- package/dist/ai-client/types.d.ts.map +1 -1
- package/dist/ai-client/types.js +17 -0
- package/dist/ai-client/types.js.map +1 -1
- package/dist/ai-client-factory.d.ts.map +1 -1
- package/dist/ai-client-factory.js +4 -4
- package/dist/ai-client-factory.js.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +10 -12
- package/dist/auth.js.map +1 -1
- package/dist/cancellation.d.ts.map +1 -1
- package/dist/cancellation.js +3 -5
- package/dist/cancellation.js.map +1 -1
- package/dist/checkpoint.d.ts +1 -0
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +38 -4
- package/dist/checkpoint.js.map +1 -1
- package/dist/cli.js +132 -32
- package/dist/cli.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/context-compressor.d.ts +1 -2
- package/dist/context-compressor.d.ts.map +1 -1
- package/dist/context-compressor.js +22 -17
- package/dist/context-compressor.js.map +1 -1
- package/dist/conversation.d.ts +1 -1
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +8 -7
- package/dist/conversation.js.map +1 -1
- package/dist/gui-subagent/action-parser/actionParser.js +2 -2
- package/dist/gui-subagent/action-parser/actionParser.js.map +1 -1
- package/dist/gui-subagent/agent/gui-agent.d.ts +10 -0
- package/dist/gui-subagent/agent/gui-agent.d.ts.map +1 -1
- package/dist/gui-subagent/agent/gui-agent.js +105 -32
- package/dist/gui-subagent/agent/gui-agent.js.map +1 -1
- package/dist/gui-subagent/index.d.ts +7 -0
- package/dist/gui-subagent/index.d.ts.map +1 -1
- package/dist/gui-subagent/index.js +2 -0
- package/dist/gui-subagent/index.js.map +1 -1
- package/dist/gui-subagent/operator/computer-operator.d.ts.map +1 -1
- package/dist/gui-subagent/operator/computer-operator.js +2 -0
- package/dist/gui-subagent/operator/computer-operator.js.map +1 -1
- package/dist/input-processor.js +2 -2
- package/dist/input-processor.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/mcp.d.ts +2 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +84 -21
- package/dist/mcp.js.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +3 -3
- package/dist/memory.js.map +1 -1
- package/dist/output-util.d.ts +27 -0
- package/dist/output-util.d.ts.map +1 -0
- package/dist/output-util.js +74 -0
- package/dist/output-util.js.map +1 -0
- package/dist/retry.js +1 -1
- package/dist/retry.js.map +1 -1
- package/dist/ripgrep.d.ts.map +1 -1
- package/dist/ripgrep.js +5 -3
- package/dist/ripgrep.js.map +1 -1
- package/dist/sdk-output-adapter.d.ts +265 -0
- package/dist/sdk-output-adapter.d.ts.map +1 -0
- package/dist/sdk-output-adapter.js +701 -0
- package/dist/sdk-output-adapter.js.map +1 -0
- package/dist/sdk-session.d.ts +13 -0
- package/dist/sdk-session.d.ts.map +1 -0
- package/dist/sdk-session.js +50 -0
- package/dist/sdk-session.js.map +1 -0
- package/dist/session-manager.js +3 -3
- package/dist/session-manager.js.map +1 -1
- package/dist/session.d.ts +96 -2
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +849 -262
- package/dist/session.js.map +1 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +5 -4
- package/dist/shell.js.map +1 -1
- package/dist/skill-installer.js +3 -3
- package/dist/skill-installer.js.map +1 -1
- package/dist/skill-invoker.d.ts +1 -1
- package/dist/skill-invoker.d.ts.map +1 -1
- package/dist/skill-invoker.js +2 -2
- package/dist/skill-invoker.js.map +1 -1
- package/dist/skill-loader.js +6 -5
- package/dist/skill-loader.js.map +1 -1
- package/dist/skill-manager.d.ts.map +1 -1
- package/dist/skill-manager.js +3 -2
- package/dist/skill-manager.js.map +1 -1
- package/dist/slash-commands.d.ts +1 -1
- package/dist/slash-commands.d.ts.map +1 -1
- package/dist/slash-commands.js +24 -11
- package/dist/slash-commands.js.map +1 -1
- package/dist/smart-approval.d.ts +20 -1
- package/dist/smart-approval.d.ts.map +1 -1
- package/dist/smart-approval.js +58 -1
- package/dist/smart-approval.js.map +1 -1
- package/dist/system-prompt-generator.js +3 -3
- package/dist/system-prompt-generator.js.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +9 -8
- package/dist/theme.js.map +1 -1
- package/dist/tools.d.ts +15 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +487 -215
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +57 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +49 -0
- package/dist/types.js.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +12 -9
- package/dist/update.js.map +1 -1
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +1 -2
- package/dist/workflow.js.map +1 -1
- package/docs/third-party-models.md +16 -15
- package/package.json +3 -1
- package/src/agents.ts +7 -3
- package/src/ai-client/factory.ts +1 -36
- package/src/ai-client/index.ts +1 -1
- package/src/ai-client/providers/anthropic.ts +12 -3
- package/src/ai-client/providers/openai.ts +10 -4
- package/src/ai-client/providers/remote.ts +13 -10
- package/src/ai-client/types.ts +19 -0
- package/src/ai-client-factory.ts +5 -5
- package/src/auth.ts +11 -13
- package/src/cancellation.ts +3 -6
- package/src/checkpoint.ts +41 -4
- package/src/cli.ts +154 -37
- package/src/config.ts +1 -1
- package/src/context-compressor.ts +27 -22
- package/src/conversation.ts +9 -7
- package/src/gui-subagent/action-parser/actionParser.ts +2 -2
- package/src/gui-subagent/agent/gui-agent.ts +117 -34
- package/src/gui-subagent/index.ts +8 -0
- package/src/gui-subagent/operator/computer-operator.ts +2 -1
- package/src/input-processor.ts +2 -2
- package/src/logger.ts +2 -4
- package/src/mcp.ts +87 -23
- package/src/memory.ts +3 -4
- package/src/output-util.ts +80 -0
- package/src/retry.ts +1 -1
- package/src/ripgrep.ts +5 -3
- package/src/sdk-output-adapter.ts +842 -0
- package/src/sdk-session.ts +62 -0
- package/src/session-manager.ts +3 -3
- package/src/session.ts +942 -302
- package/src/shell.ts +6 -5
- package/src/skill-installer.ts +3 -3
- package/src/skill-invoker.ts +3 -4
- package/src/skill-loader.ts +7 -7
- package/src/skill-manager.ts +4 -3
- package/src/slash-commands.ts +24 -16
- package/src/smart-approval.ts +76 -1
- package/src/system-prompt-generator.ts +3 -3
- package/src/theme.ts +10 -9
- package/src/tools.ts +563 -267
- package/src/types.ts +118 -0
- package/src/update.ts +12 -9
- package/src/workflow.ts +2 -4
- package/test/cli-launch.test.ts +279 -0
- package/vitest.config.ts +2 -0
- /package/{.eslintrc.js ā .eslintrc.cjs} +0 -0
package/dist/checkpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ import { AuthType } from './types.js';
|
|
|
8
8
|
import { fetchDefaultModels } from './ai-client/providers/remote.js';
|
|
9
9
|
import { getAgentManager } from './agents.js';
|
|
10
10
|
import { getMCPManager } from './mcp.js';
|
|
11
|
-
import {
|
|
11
|
+
import { setConfigProvider } from './logger.js';
|
|
12
12
|
import { icons, colors } from './theme.js';
|
|
13
13
|
import { getCancellationManager } from './cancellation.js';
|
|
14
14
|
import { readFileSync, promises as fs } from 'fs';
|
|
@@ -31,14 +31,13 @@ async function notifySkillUpdate(userSkillsPath) {
|
|
|
31
31
|
await fs.writeFile(stateFilePath, JSON.stringify(state, null, 2), 'utf-8');
|
|
32
32
|
console.log(colors.textMuted(' ā¹ļø Skills updated for running xAgent sessions'));
|
|
33
33
|
}
|
|
34
|
-
catch
|
|
34
|
+
catch {
|
|
35
35
|
// Silent fail - notification is optional
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
// Read package.json
|
|
39
39
|
const packageJsonPath = join(__dirname, '../package.json');
|
|
40
40
|
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
41
|
-
const logger = getLogger();
|
|
42
41
|
// Initialize CancellationManager early to set up ESC handler
|
|
43
42
|
getCancellationManager();
|
|
44
43
|
// Set up config provider for logger to read loggerLevel
|
|
@@ -144,7 +143,14 @@ program
|
|
|
144
143
|
.command('start')
|
|
145
144
|
.description('Start the xAgent CLI interactive session')
|
|
146
145
|
.option('--approval-mode <mode>', 'Set approval mode (yolo, accept_edits, plan, default, smart)')
|
|
146
|
+
.option('--sdk', 'Run in SDK mode for programmatic access (stdin/stdout JSON communication)')
|
|
147
147
|
.action(async (options) => {
|
|
148
|
+
// Check if running in SDK mode
|
|
149
|
+
if (options.sdk || process.env.XAGENT_SDK === 'true') {
|
|
150
|
+
const { startSdkSession } = await import('./sdk-session.js');
|
|
151
|
+
await startSdkSession();
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
148
154
|
if (options.approvalMode) {
|
|
149
155
|
const { getConfigManager } = await import('./config.js');
|
|
150
156
|
const { ExecutionMode } = await import('./types.js');
|
|
@@ -223,6 +229,7 @@ program
|
|
|
223
229
|
console.log(colors.success('Authentication configured successfully!'));
|
|
224
230
|
console.log(colors.textMuted('You can now run "xagent start" to begin'));
|
|
225
231
|
console.log('');
|
|
232
|
+
process.exit(0);
|
|
226
233
|
}
|
|
227
234
|
else {
|
|
228
235
|
console.log('');
|
|
@@ -262,6 +269,7 @@ program
|
|
|
262
269
|
console.log('');
|
|
263
270
|
});
|
|
264
271
|
}
|
|
272
|
+
process.exit(0);
|
|
265
273
|
}
|
|
266
274
|
else if (options.add) {
|
|
267
275
|
console.log('');
|
|
@@ -292,8 +300,9 @@ program
|
|
|
292
300
|
});
|
|
293
301
|
program
|
|
294
302
|
.command('mcp')
|
|
295
|
-
.description('Add, list, or remove MCP servers')
|
|
303
|
+
.description('Add, list, get, or remove MCP servers')
|
|
296
304
|
.option('-l, --list', 'List all MCP servers')
|
|
305
|
+
.option('-g, --get <name>', 'Get details of a specific MCP server')
|
|
297
306
|
.option('-a, --add [name]', 'Add a new MCP server (interactive if no name provided)')
|
|
298
307
|
.option('-r, --remove <name>', 'Remove an MCP server')
|
|
299
308
|
.option('--scope <scope>', 'Scope (global or project)', 'global')
|
|
@@ -305,31 +314,95 @@ program
|
|
|
305
314
|
.option('--header <headers>', 'Custom headers (can be used multiple times)')
|
|
306
315
|
.option('-y, --yes', 'Skip confirmation')
|
|
307
316
|
.action(async (options) => {
|
|
317
|
+
if (options.help) {
|
|
318
|
+
program.parse(['node', 'mcp', '--help']);
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
308
321
|
const configManager = getConfigManager(process.cwd());
|
|
322
|
+
configManager.load(); // Load config from file
|
|
309
323
|
const mcpManager = getMCPManager();
|
|
324
|
+
// Register all MCP servers from config to manager (for --list and --remove)
|
|
325
|
+
const mcpServers = configManager.getMcpServers();
|
|
326
|
+
Object.entries(mcpServers).forEach(([name, config]) => {
|
|
327
|
+
mcpManager.registerServer(name, config);
|
|
328
|
+
});
|
|
310
329
|
if (options.list) {
|
|
311
|
-
const
|
|
312
|
-
|
|
330
|
+
const mcpServers = configManager.getMcpServers();
|
|
331
|
+
const serverNames = Object.keys(mcpServers);
|
|
332
|
+
if (serverNames.length === 0) {
|
|
313
333
|
console.log('');
|
|
314
334
|
console.log(colors.warning('No MCP servers configured'));
|
|
315
335
|
console.log(colors.textMuted('Use "xagent mcp --add" to add servers'));
|
|
316
336
|
console.log('');
|
|
317
337
|
}
|
|
318
338
|
else {
|
|
339
|
+
console.log(colors.textMuted('Connecting to MCP servers...'));
|
|
340
|
+
for (const name of serverNames) {
|
|
341
|
+
try {
|
|
342
|
+
await mcpManager.connectServer(name);
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
// Connection failed, continue with next server
|
|
346
|
+
}
|
|
347
|
+
}
|
|
319
348
|
const separator = icons.separator.repeat(40);
|
|
320
349
|
console.log('');
|
|
321
350
|
console.log(colors.primaryBright(`${icons.tool} MCP Servers`));
|
|
322
351
|
console.log(colors.border(separator));
|
|
323
352
|
console.log('');
|
|
324
|
-
|
|
325
|
-
const
|
|
326
|
-
const
|
|
327
|
-
const
|
|
328
|
-
|
|
329
|
-
console.log(`
|
|
353
|
+
serverNames.forEach((name) => {
|
|
354
|
+
const server = mcpManager.getServer(name);
|
|
355
|
+
const connected = server?.isServerConnected() ? icons.success : icons.error;
|
|
356
|
+
const status = server?.isServerConnected() ? colors.success(connected) : colors.error(connected);
|
|
357
|
+
const toolNames = server?.getToolNames().join(', ') || '';
|
|
358
|
+
console.log(` ${status} ${colors.primaryBright(name)}`);
|
|
359
|
+
console.log(` ${colors.textDim(`Tools: ${toolNames}`)}`);
|
|
330
360
|
console.log('');
|
|
331
361
|
});
|
|
332
362
|
}
|
|
363
|
+
process.exit(0);
|
|
364
|
+
}
|
|
365
|
+
else if (options.get) {
|
|
366
|
+
const server = mcpManager.getServer(options.get);
|
|
367
|
+
if (!server) {
|
|
368
|
+
console.log('');
|
|
369
|
+
console.log(colors.error(`MCP server '${options.get}' not found`));
|
|
370
|
+
console.log(colors.textMuted('Use "xagent mcp --list" to see all configured servers'));
|
|
371
|
+
console.log('');
|
|
372
|
+
process.exit(1);
|
|
373
|
+
}
|
|
374
|
+
const config = server.config;
|
|
375
|
+
const isConnected = server.isServerConnected();
|
|
376
|
+
const toolNames = server.getToolNames();
|
|
377
|
+
const tools = server.getTools();
|
|
378
|
+
console.log('');
|
|
379
|
+
console.log(colors.primaryBright(`${icons.tool} MCP Server: ${options.get}`));
|
|
380
|
+
console.log(colors.border(icons.separator.repeat(40)));
|
|
381
|
+
console.log('');
|
|
382
|
+
console.log(` ${colors.primaryBright('Status:')} ${isConnected ? colors.success('Connected') : colors.error('Disconnected')}`);
|
|
383
|
+
console.log(` ${colors.primaryBright('Transport:')} ${config.transport || 'stdio'}`);
|
|
384
|
+
if (config.url) {
|
|
385
|
+
console.log(` ${colors.primaryBright('URL:')} ${config.url}`);
|
|
386
|
+
}
|
|
387
|
+
if (config.command) {
|
|
388
|
+
console.log(` ${colors.primaryBright('Command:')} ${config.command} ${(config.args || []).join(' ')}`);
|
|
389
|
+
}
|
|
390
|
+
if (config.headers) {
|
|
391
|
+
console.log(` ${colors.primaryBright('Headers:')} ${JSON.stringify(config.headers)}`);
|
|
392
|
+
}
|
|
393
|
+
console.log(` ${colors.primaryBright('Tools:')} ${toolNames.length > 0 ? toolNames.join(', ') : colors.textMuted('(none)')}`);
|
|
394
|
+
if (tools.length > 0) {
|
|
395
|
+
console.log('');
|
|
396
|
+
console.log(colors.textMuted(' Available tools:'));
|
|
397
|
+
tools.forEach((tool) => {
|
|
398
|
+
console.log(` - ${colors.primaryBright(tool.name)}`);
|
|
399
|
+
if (tool.description) {
|
|
400
|
+
console.log(` ${colors.textDim(tool.description.substring(0, 60))}${tool.description.length > 60 ? '...' : ''}`);
|
|
401
|
+
}
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
console.log('');
|
|
405
|
+
process.exit(0);
|
|
333
406
|
}
|
|
334
407
|
else if (options.add !== undefined) {
|
|
335
408
|
// Check if running in non-interactive mode (transport and required params provided)
|
|
@@ -364,12 +437,11 @@ program
|
|
|
364
437
|
process.exit(1);
|
|
365
438
|
}
|
|
366
439
|
config.url = options.url;
|
|
440
|
+
const headers = {};
|
|
367
441
|
if (options.token) {
|
|
368
|
-
|
|
442
|
+
headers['Authorization'] = `Bearer ${options.token}`;
|
|
369
443
|
}
|
|
370
|
-
// Handle multiple --header flags
|
|
371
444
|
if (options.header) {
|
|
372
|
-
const headers = {};
|
|
373
445
|
const headerArray = Array.isArray(options.header) ? options.header : [options.header];
|
|
374
446
|
for (const h of headerArray) {
|
|
375
447
|
const colonIndex = h.indexOf(':');
|
|
@@ -379,9 +451,9 @@ program
|
|
|
379
451
|
headers[key] = value;
|
|
380
452
|
}
|
|
381
453
|
}
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
454
|
+
}
|
|
455
|
+
if (Object.keys(headers).length > 0) {
|
|
456
|
+
config.headers = headers;
|
|
385
457
|
}
|
|
386
458
|
}
|
|
387
459
|
else {
|
|
@@ -433,11 +505,13 @@ program
|
|
|
433
505
|
console.log(colors.success(`ā
MCP server '${name}' added successfully`));
|
|
434
506
|
}
|
|
435
507
|
console.log('');
|
|
508
|
+
process.exit(0);
|
|
436
509
|
}
|
|
437
510
|
catch (error) {
|
|
438
511
|
console.log('');
|
|
439
512
|
console.log(colors.error(`Failed to add MCP server: ${error.message}`));
|
|
440
513
|
console.log('');
|
|
514
|
+
process.exit(1);
|
|
441
515
|
}
|
|
442
516
|
}
|
|
443
517
|
else {
|
|
@@ -517,11 +591,15 @@ program
|
|
|
517
591
|
});
|
|
518
592
|
}
|
|
519
593
|
config.url = url;
|
|
594
|
+
const headers = {};
|
|
520
595
|
// Step 4: Enter auth token (optional)
|
|
521
|
-
|
|
596
|
+
const authToken = await text({
|
|
522
597
|
message: 'Enter Bearer token (optional):',
|
|
523
598
|
defaultValue: '',
|
|
524
599
|
});
|
|
600
|
+
if (authToken.trim()) {
|
|
601
|
+
headers['Authorization'] = `Bearer ${authToken}`;
|
|
602
|
+
}
|
|
525
603
|
// Step 5: Enter custom headers (optional)
|
|
526
604
|
const headersInput = await text({
|
|
527
605
|
message: 'Enter custom headers as JSON (optional):',
|
|
@@ -529,12 +607,16 @@ program
|
|
|
529
607
|
});
|
|
530
608
|
if (headersInput.trim()) {
|
|
531
609
|
try {
|
|
532
|
-
|
|
610
|
+
const customHeaders = JSON.parse(headersInput);
|
|
611
|
+
Object.assign(headers, customHeaders);
|
|
533
612
|
}
|
|
534
613
|
catch {
|
|
535
614
|
// Ignore invalid JSON
|
|
536
615
|
}
|
|
537
616
|
}
|
|
617
|
+
if (Object.keys(headers).length > 0) {
|
|
618
|
+
config.headers = headers;
|
|
619
|
+
}
|
|
538
620
|
}
|
|
539
621
|
// Step 6: Confirm and save
|
|
540
622
|
console.log('');
|
|
@@ -599,6 +681,7 @@ program
|
|
|
599
681
|
console.log('');
|
|
600
682
|
console.log(colors.success(`MCP server ${options.remove} removed successfully`));
|
|
601
683
|
console.log('');
|
|
684
|
+
process.exit(0);
|
|
602
685
|
}
|
|
603
686
|
catch (error) {
|
|
604
687
|
const { message, suggestion } = formatError(error);
|
|
@@ -606,14 +689,16 @@ program
|
|
|
606
689
|
console.log(colors.error(`Failed to remove MCP server: ${message}`));
|
|
607
690
|
console.log(colors.textMuted(suggestion));
|
|
608
691
|
console.log('');
|
|
692
|
+
process.exit(1);
|
|
609
693
|
}
|
|
610
694
|
}
|
|
611
695
|
else {
|
|
612
696
|
console.log('');
|
|
613
|
-
console.log(colors.warning('Please specify an action: --list, --add, or --remove'));
|
|
697
|
+
console.log(colors.warning('Please specify an action: --list, --get, --add, or --remove'));
|
|
614
698
|
console.log('');
|
|
615
699
|
console.log(colors.textMuted('Usage:'));
|
|
616
700
|
console.log(` ${colors.primaryBright('xagent mcp --list')} ${colors.textMuted('| List all MCP servers')}`);
|
|
701
|
+
console.log(` ${colors.primaryBright('xagent mcp --get <name>')} ${colors.textMuted('| Get MCP server details')}`);
|
|
617
702
|
console.log(` ${colors.primaryBright('xagent mcp --add')} ${colors.textMuted('| Add MCP server (interactive)')}`);
|
|
618
703
|
console.log('');
|
|
619
704
|
console.log(colors.textMuted('Non-interactive examples:'));
|
|
@@ -629,6 +714,7 @@ program
|
|
|
629
714
|
console.log(` ${colors.primaryBright('--header')} ${colors.textMuted('Custom header (key:value)')}`);
|
|
630
715
|
console.log(` ${colors.primaryBright('-y, --yes')} ${colors.textMuted('Skip confirmation')}`);
|
|
631
716
|
console.log('');
|
|
717
|
+
process.exit(1);
|
|
632
718
|
}
|
|
633
719
|
});
|
|
634
720
|
program
|
|
@@ -647,6 +733,7 @@ program
|
|
|
647
733
|
console.log(colors.success('Project initialized successfully!'));
|
|
648
734
|
console.log(colors.textMuted('You can now run "xagent start" to begin'));
|
|
649
735
|
console.log('');
|
|
736
|
+
process.exit(0);
|
|
650
737
|
}
|
|
651
738
|
catch (error) {
|
|
652
739
|
const { message, suggestion } = formatError(error);
|
|
@@ -673,6 +760,7 @@ program
|
|
|
673
760
|
console.log(colors.warning('No workflows installed'));
|
|
674
761
|
console.log(colors.textMuted('Use --add to install workflows from the marketplace'));
|
|
675
762
|
console.log('');
|
|
763
|
+
process.exit(0);
|
|
676
764
|
}
|
|
677
765
|
else {
|
|
678
766
|
const separator = icons.separator.repeat(40);
|
|
@@ -686,6 +774,7 @@ program
|
|
|
686
774
|
console.log(` ${colors.textDim(` ${workflow.description}`)}`);
|
|
687
775
|
console.log('');
|
|
688
776
|
});
|
|
777
|
+
process.exit(0);
|
|
689
778
|
}
|
|
690
779
|
}
|
|
691
780
|
else if (options.add) {
|
|
@@ -694,6 +783,7 @@ program
|
|
|
694
783
|
console.log('');
|
|
695
784
|
console.log(colors.success(`Workflow ${options.add} added successfully!`));
|
|
696
785
|
console.log('');
|
|
786
|
+
process.exit(0);
|
|
697
787
|
}
|
|
698
788
|
catch (error) {
|
|
699
789
|
const { message, suggestion } = formatError(error);
|
|
@@ -710,6 +800,7 @@ program
|
|
|
710
800
|
console.log('');
|
|
711
801
|
console.log(colors.success(`Workflow ${options.remove} removed successfully!`));
|
|
712
802
|
console.log('');
|
|
803
|
+
process.exit(0);
|
|
713
804
|
}
|
|
714
805
|
catch (error) {
|
|
715
806
|
const { message, suggestion } = formatError(error);
|
|
@@ -724,6 +815,7 @@ program
|
|
|
724
815
|
console.log('');
|
|
725
816
|
console.log(colors.warning('Please specify an action: --list, --add, or --remove'));
|
|
726
817
|
console.log('');
|
|
818
|
+
process.exit(1);
|
|
727
819
|
}
|
|
728
820
|
});
|
|
729
821
|
program
|
|
@@ -737,12 +829,12 @@ program
|
|
|
737
829
|
const configManager = getConfigManager();
|
|
738
830
|
const { promises: fs } = await import('fs');
|
|
739
831
|
const pathModule = await import('path');
|
|
740
|
-
const { exec
|
|
832
|
+
const { exec } = await import('child_process');
|
|
741
833
|
const { promisify } = await import('util');
|
|
742
834
|
const os = await import('os');
|
|
743
|
-
const
|
|
835
|
+
const _execAsync = promisify(exec);
|
|
744
836
|
const userSkillsPath = configManager.getUserSkillsPath() || pathModule.join(os.homedir(), '.xagent', 'skills');
|
|
745
|
-
const
|
|
837
|
+
const _userNodeModulesPath = configManager.getUserNodeModulesPath() || pathModule.join(os.homedir(), '.xagent', 'node_modules');
|
|
746
838
|
if (options.add) {
|
|
747
839
|
const separator = icons.separator.repeat(40);
|
|
748
840
|
console.log('');
|
|
@@ -797,6 +889,7 @@ program
|
|
|
797
889
|
// Notify running xAgent to update system prompt
|
|
798
890
|
await notifySkillUpdate(userSkillsPath);
|
|
799
891
|
console.log('');
|
|
892
|
+
process.exit(0);
|
|
800
893
|
}
|
|
801
894
|
catch (error) {
|
|
802
895
|
const { message, suggestion } = formatError(error);
|
|
@@ -821,6 +914,7 @@ program
|
|
|
821
914
|
await notifySkillUpdate(userSkillsPath);
|
|
822
915
|
console.log(colors.textMuted('Note: Run "xagent start" to use the new skill'));
|
|
823
916
|
console.log('');
|
|
917
|
+
process.exit(0);
|
|
824
918
|
}
|
|
825
919
|
else {
|
|
826
920
|
console.log(colors.error(`Failed to install skill: ${result.error}`));
|
|
@@ -873,8 +967,9 @@ program
|
|
|
873
967
|
}
|
|
874
968
|
console.log(colors.textMuted(`Skills directory: ${userSkillsPath}`));
|
|
875
969
|
console.log('');
|
|
970
|
+
process.exit(0);
|
|
876
971
|
}
|
|
877
|
-
catch
|
|
972
|
+
catch {
|
|
878
973
|
console.log(colors.textMuted('No user skills installed'));
|
|
879
974
|
console.log('');
|
|
880
975
|
}
|
|
@@ -906,8 +1001,9 @@ program
|
|
|
906
1001
|
// Notify running xAgent to update system prompt
|
|
907
1002
|
await notifySkillUpdate(userSkillsPath);
|
|
908
1003
|
console.log('');
|
|
1004
|
+
process.exit(0);
|
|
909
1005
|
}
|
|
910
|
-
catch
|
|
1006
|
+
catch {
|
|
911
1007
|
console.log('');
|
|
912
1008
|
console.log(colors.error(`Skill not found: ${options.remove}`));
|
|
913
1009
|
console.log('');
|
|
@@ -931,6 +1027,7 @@ program
|
|
|
931
1027
|
console.log(colors.textMuted('To install a new skill, use the interactive command:'));
|
|
932
1028
|
console.log(` ${colors.primaryBright('/skill add')}`);
|
|
933
1029
|
console.log('');
|
|
1030
|
+
process.exit(0);
|
|
934
1031
|
}
|
|
935
1032
|
});
|
|
936
1033
|
program
|
|
@@ -956,6 +1053,7 @@ program
|
|
|
956
1053
|
console.log(` ${colors.primaryBright('š Documentation:')} ${colors.primaryBright('https://platform.xagent.cn/cli/')}`);
|
|
957
1054
|
console.log(` ${colors.primaryBright('š» GitHub:')} ${colors.primaryBright('https://github.com/xagent-ai/xagent-cli')}`);
|
|
958
1055
|
console.log('');
|
|
1056
|
+
process.exit(0);
|
|
959
1057
|
});
|
|
960
1058
|
program
|
|
961
1059
|
.command('gui')
|
|
@@ -1026,7 +1124,7 @@ program
|
|
|
1026
1124
|
return result.response || result.content || result.message || '';
|
|
1027
1125
|
};
|
|
1028
1126
|
}
|
|
1029
|
-
const
|
|
1127
|
+
const _guiAgent = await createGUISubAgent({
|
|
1030
1128
|
headless: options.headless ?? false,
|
|
1031
1129
|
model: isLocalMode ? modelName : undefined,
|
|
1032
1130
|
modelBaseUrl: isLocalMode ? baseUrl : undefined,
|
|
@@ -1095,7 +1193,7 @@ program
|
|
|
1095
1193
|
if (files.length === 0) {
|
|
1096
1194
|
console.log(colors.textMuted('No memory files found.'));
|
|
1097
1195
|
console.log('');
|
|
1098
|
-
|
|
1196
|
+
process.exit(0);
|
|
1099
1197
|
}
|
|
1100
1198
|
const globalFile = files.find(f => f === 'global.md');
|
|
1101
1199
|
const projectFiles = files.filter(f => f.startsWith('project_'));
|
|
@@ -1128,7 +1226,7 @@ program
|
|
|
1128
1226
|
console.log(colors.textMuted(`Total: ${files.length} memory file(s)`));
|
|
1129
1227
|
console.log('');
|
|
1130
1228
|
}
|
|
1131
|
-
catch
|
|
1229
|
+
catch {
|
|
1132
1230
|
console.log(colors.textMuted('No memory files found.'));
|
|
1133
1231
|
console.log('');
|
|
1134
1232
|
}
|
|
@@ -1144,7 +1242,7 @@ program
|
|
|
1144
1242
|
if (projectFiles.length === 0) {
|
|
1145
1243
|
console.log(colors.textMuted('No project memories to clean.'));
|
|
1146
1244
|
console.log('');
|
|
1147
|
-
|
|
1245
|
+
process.exit(0);
|
|
1148
1246
|
}
|
|
1149
1247
|
let cleaned = 0;
|
|
1150
1248
|
for (const file of projectFiles) {
|
|
@@ -1208,7 +1306,7 @@ program
|
|
|
1208
1306
|
if (files.length === 0) {
|
|
1209
1307
|
console.log(colors.textMuted('No memory files to clean.'));
|
|
1210
1308
|
console.log('');
|
|
1211
|
-
|
|
1309
|
+
process.exit(0);
|
|
1212
1310
|
}
|
|
1213
1311
|
let cleaned = 0;
|
|
1214
1312
|
for (const file of files) {
|
|
@@ -1271,11 +1369,13 @@ program
|
|
|
1271
1369
|
if (shouldUpdate === true) {
|
|
1272
1370
|
console.log('');
|
|
1273
1371
|
await updateManager.autoUpdate();
|
|
1372
|
+
process.exit(0);
|
|
1274
1373
|
}
|
|
1275
1374
|
}
|
|
1276
1375
|
else {
|
|
1277
1376
|
console.log(colors.success(` ā
You are using the latest version`));
|
|
1278
1377
|
console.log('');
|
|
1378
|
+
process.exit(0);
|
|
1279
1379
|
}
|
|
1280
1380
|
}
|
|
1281
1381
|
catch (error) {
|
|
@@ -1291,7 +1391,7 @@ if (!process.argv.slice(2).length) {
|
|
|
1291
1391
|
// Global error handling - prevent crashes from uncaught errors
|
|
1292
1392
|
// ============================================================
|
|
1293
1393
|
// Handle uncaught promise rejections
|
|
1294
|
-
process.on('unhandledRejection', (reason,
|
|
1394
|
+
process.on('unhandledRejection', (reason, _promise) => {
|
|
1295
1395
|
console.error('\nā An unexpected error occurred');
|
|
1296
1396
|
if (reason instanceof Error) {
|
|
1297
1397
|
console.error(` ${reason.message}`);
|