crewx 0.2.4-dev.4 → 0.2.4-dev.6
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/README.md +41 -0
- package/crewx.yaml +442 -48
- package/dist/agent.types.d.ts +26 -1
- package/dist/agent.types.js.map +1 -1
- package/dist/cli/agent.handler.d.ts +2 -0
- package/dist/cli/agent.handler.js +140 -0
- package/dist/cli/agent.handler.js.map +1 -0
- package/dist/cli/cli.handler.js +4 -0
- package/dist/cli/cli.handler.js.map +1 -1
- package/dist/cli-options.js +3 -0
- package/dist/cli-options.js.map +1 -1
- package/dist/crewx.tool.d.ts +22 -113
- package/dist/crewx.tool.js +147 -3
- package/dist/crewx.tool.js.map +1 -1
- package/dist/providers/codex.provider.js +2 -2
- package/dist/providers/codex.provider.js.map +1 -1
- package/dist/services/agent-loader.service.d.ts +2 -0
- package/dist/services/agent-loader.service.js +45 -0
- package/dist/services/agent-loader.service.js.map +1 -1
- package/dist/services/config-validator.service.js +13 -1
- package/dist/services/config-validator.service.js.map +1 -1
- package/dist/services/help.service.js +4 -0
- package/dist/services/help.service.js.map +1 -1
- package/dist/services/remote-agent.service.d.ts +35 -8
- package/dist/services/remote-agent.service.js +171 -36
- package/dist/services/remote-agent.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/guides/agent-cli-quickstart.md +41 -0
- package/package.json +1 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleAgent = handleAgent;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const crewx_tool_1 = require("../crewx.tool");
|
|
6
|
+
const logger = new common_1.Logger('AgentHandler');
|
|
7
|
+
async function handleAgent(app, args) {
|
|
8
|
+
logger.log('Agent command received');
|
|
9
|
+
try {
|
|
10
|
+
const crewXTool = app.get(crewx_tool_1.CrewXTool);
|
|
11
|
+
const raw = Boolean(args.raw);
|
|
12
|
+
const resolvedSubcommand = (args.subcommand || process.argv[3] || '').toLowerCase();
|
|
13
|
+
switch (resolvedSubcommand) {
|
|
14
|
+
case 'ls':
|
|
15
|
+
case 'list':
|
|
16
|
+
await handleAgentList(crewXTool, raw);
|
|
17
|
+
break;
|
|
18
|
+
case '':
|
|
19
|
+
printAgentHelp();
|
|
20
|
+
process.exit(1);
|
|
21
|
+
break;
|
|
22
|
+
default:
|
|
23
|
+
logger.error(`Unknown agent subcommand: ${resolvedSubcommand}`);
|
|
24
|
+
console.error(`❌ Unknown agent subcommand: ${resolvedSubcommand}`);
|
|
25
|
+
printAgentHelp();
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
31
|
+
logger.error(`Agent command failed: ${message}`);
|
|
32
|
+
console.error(`❌ Agent command failed: ${message}`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function handleAgentList(crewXTool, raw) {
|
|
37
|
+
logger.log('Listing configured agents');
|
|
38
|
+
console.log('[CrewX] Loading configured agents...\n');
|
|
39
|
+
try {
|
|
40
|
+
const result = await crewXTool.listAgents();
|
|
41
|
+
if (!result?.success) {
|
|
42
|
+
const errorMessage = result?.error || 'Unknown error';
|
|
43
|
+
logger.error(`Failed to list agents: ${errorMessage}`);
|
|
44
|
+
console.error(`❌ Failed to load agents: ${errorMessage}`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
const agents = Array.isArray(result.availableAgents) ? result.availableAgents : [];
|
|
48
|
+
const totalCount = result.totalCount ?? agents.length;
|
|
49
|
+
const configPath = process.env.CREWX_CONFIG ?? null;
|
|
50
|
+
if (raw) {
|
|
51
|
+
const payload = {
|
|
52
|
+
totalCount,
|
|
53
|
+
configurationSource: result.configurationSource ?? (configPath ? 'External YAML file' : 'Default hardcoded values'),
|
|
54
|
+
configPath,
|
|
55
|
+
agents,
|
|
56
|
+
};
|
|
57
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (agents.length === 0) {
|
|
61
|
+
console.log('WARNING: No agents configured.');
|
|
62
|
+
if (!configPath) {
|
|
63
|
+
console.log('Set CREWX_CONFIG to point to your crewx.yaml configuration file.');
|
|
64
|
+
}
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
console.log(`Available Agents (${totalCount})\n`);
|
|
68
|
+
agents.forEach((agent, index) => {
|
|
69
|
+
const headerParts = [`@${agent.id}`];
|
|
70
|
+
if (agent.name && agent.name !== agent.id) {
|
|
71
|
+
headerParts.push(agent.name);
|
|
72
|
+
}
|
|
73
|
+
console.log(`${index + 1}. ${headerParts.join(' - ')}`);
|
|
74
|
+
console.log(` Provider: ${formatProvider(agent.provider)}`);
|
|
75
|
+
console.log(` Working Dir: ${agent.workingDirectory}`);
|
|
76
|
+
if (agent.role) {
|
|
77
|
+
console.log(` Role: ${agent.role}`);
|
|
78
|
+
}
|
|
79
|
+
if (agent.team) {
|
|
80
|
+
console.log(` Team: ${agent.team}`);
|
|
81
|
+
}
|
|
82
|
+
if (agent.inline?.model) {
|
|
83
|
+
console.log(` Default Model: ${agent.inline.model}`);
|
|
84
|
+
}
|
|
85
|
+
if (agent.specialties && agent.specialties.length > 0) {
|
|
86
|
+
console.log(` Specialties: ${agent.specialties.join(', ')}`);
|
|
87
|
+
}
|
|
88
|
+
if (agent.capabilities && agent.capabilities.length > 0) {
|
|
89
|
+
console.log(` Capabilities: ${agent.capabilities.join(', ')}`);
|
|
90
|
+
}
|
|
91
|
+
if (agent.remote) {
|
|
92
|
+
const remoteDetails = agent.remote.url ? ` ${agent.remote.url}` : '';
|
|
93
|
+
console.log(` Remote: ${agent.remote.type || 'remote'}${remoteDetails}`);
|
|
94
|
+
if (agent.remote.agentId) {
|
|
95
|
+
console.log(` Remote Agent ID: ${agent.remote.agentId}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (index < agents.length - 1) {
|
|
99
|
+
console.log('');
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
console.log('\nConfiguration Source:', result.configurationSource ?? (configPath ? 'External YAML file' : 'Default hardcoded values'));
|
|
103
|
+
if (configPath) {
|
|
104
|
+
console.log(`Config Path: ${configPath}`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
console.log('Tip: Set CREWX_CONFIG to point to your crewx.yaml file to customize agents.');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
112
|
+
logger.error(`Failed to list agents: ${message}`);
|
|
113
|
+
console.error(`❌ Failed to list agents: ${message}`);
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function formatProvider(provider) {
|
|
118
|
+
if (Array.isArray(provider)) {
|
|
119
|
+
return provider.join(', ');
|
|
120
|
+
}
|
|
121
|
+
return provider;
|
|
122
|
+
}
|
|
123
|
+
function printAgentHelp() {
|
|
124
|
+
console.log(`
|
|
125
|
+
CrewX Agent Management
|
|
126
|
+
|
|
127
|
+
Usage:
|
|
128
|
+
crewx agent ls # List configured agents
|
|
129
|
+
crewx agent list # Alias for ls
|
|
130
|
+
|
|
131
|
+
Examples:
|
|
132
|
+
crewx agent ls
|
|
133
|
+
CREWX_CONFIG=./crewx.yaml crewx agent list
|
|
134
|
+
|
|
135
|
+
Tips:
|
|
136
|
+
- Use --raw to print JSON output suitable for scripting.
|
|
137
|
+
- Set CREWX_CONFIG to point to your custom crewx.yaml file.
|
|
138
|
+
`);
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=agent.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.handler.js","sourceRoot":"","sources":["../../src/cli/agent.handler.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/cli.handler.js
CHANGED
|
@@ -62,6 +62,10 @@ class CLIHandler {
|
|
|
62
62
|
const { handleTemplates } = await Promise.resolve().then(() => __importStar(require('./templates.handler')));
|
|
63
63
|
await handleTemplates(app, args);
|
|
64
64
|
break;
|
|
65
|
+
case 'agent':
|
|
66
|
+
const { handleAgent } = await Promise.resolve().then(() => __importStar(require('./agent.handler')));
|
|
67
|
+
await handleAgent(app, args);
|
|
68
|
+
break;
|
|
65
69
|
case 'chat':
|
|
66
70
|
const { handleChat } = await Promise.resolve().then(() => __importStar(require('./chat.handler')));
|
|
67
71
|
await handleChat(app, args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.handler.js","sourceRoot":"","sources":["../../src/cli/cli.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AAMxC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAC;AAKxC,MAAa,UAAU;IACrB,KAAK,CAAC,aAAa,CAAC,GAAQ,EAAE,IAAgB;QAC5C,IAAI,CAAC;YACH,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,KAAK,OAAO,CAAC;gBACb,KAAK,GAAG;oBACN,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;oBACxD,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC7B,MAAM;gBAER,KAAK,SAAS,CAAC;gBACf,KAAK,GAAG;oBACN,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;oBAC5D,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/B,MAAM;gBAER,KAAK,QAAQ;oBACX,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,kBAAkB,GAAC,CAAC;oBAC1D,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC9B,MAAM;gBAER,KAAK,MAAM;oBACT,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;oBACtD,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBAER,KAAK,WAAW;oBACd,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;oBAChE,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACjC,MAAM;gBAER,KAAK,MAAM;oBACT,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;oBACtD,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBAER,KAAK,MAAM;oBACT,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;oBACtD,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM;gBAER;oBACE,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;YACpD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"cli.handler.js","sourceRoot":"","sources":["../../src/cli/cli.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AAMxC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAC;AAKxC,MAAa,UAAU;IACrB,KAAK,CAAC,aAAa,CAAC,GAAQ,EAAE,IAAgB;QAC5C,IAAI,CAAC;YACH,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,KAAK,OAAO,CAAC;gBACb,KAAK,GAAG;oBACN,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;oBACxD,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC7B,MAAM;gBAER,KAAK,SAAS,CAAC;gBACf,KAAK,GAAG;oBACN,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;oBAC5D,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/B,MAAM;gBAER,KAAK,QAAQ;oBACX,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,kBAAkB,GAAC,CAAC;oBAC1D,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC9B,MAAM;gBAER,KAAK,MAAM;oBACT,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;oBACtD,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBAER,KAAK,WAAW;oBACd,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;oBAChE,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACjC,MAAM;gBAER,KAAK,OAAO;oBACV,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC;oBACxD,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC7B,MAAM;gBAER,KAAK,MAAM;oBACT,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;oBACtD,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC5B,MAAM;gBAER,KAAK,MAAM;oBACT,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;oBACtD,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM;gBAER;oBACE,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YAED,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;YACpD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AAhED,gCAgEC"}
|
package/dist/cli-options.js
CHANGED
|
@@ -96,6 +96,9 @@ function parseCliOptions() {
|
|
|
96
96
|
.command('templates', 'Manage agent templates', (yargs) => {
|
|
97
97
|
yargs.command('list', 'List available templates');
|
|
98
98
|
yargs.command('update', 'Clear cache and re-download templates');
|
|
99
|
+
})
|
|
100
|
+
.command('agent [action]', 'Manage configured agents', (yargs) => {
|
|
101
|
+
yargs.command(['ls', 'list'], 'List available agents');
|
|
99
102
|
})
|
|
100
103
|
.command('mcp', 'Start MCP server for IDE integration', () => { })
|
|
101
104
|
.command('slack', 'Start Slack Bot server', (yargs) => {
|
package/dist/cli-options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,
|
|
1
|
+
{"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":"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"}
|
package/dist/crewx.tool.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { TemplateService } from './services/template.service';
|
|
|
10
10
|
import { DocumentLoaderService } from './services/document-loader.service';
|
|
11
11
|
import { ToolCallService } from './services/tool-call.service';
|
|
12
12
|
import { AgentLoaderService } from './services/agent-loader.service';
|
|
13
|
+
import { RemoteAgentService } from './services/remote-agent.service';
|
|
13
14
|
export declare class CrewXTool implements OnModuleInit {
|
|
14
15
|
private readonly aiService;
|
|
15
16
|
private readonly aiProviderService;
|
|
@@ -21,11 +22,12 @@ export declare class CrewXTool implements OnModuleInit {
|
|
|
21
22
|
private readonly documentLoaderService;
|
|
22
23
|
private readonly toolCallService;
|
|
23
24
|
private readonly agentLoaderService;
|
|
25
|
+
private readonly remoteAgentService;
|
|
24
26
|
private readonly logger;
|
|
25
27
|
private readonly timeoutConfig;
|
|
26
28
|
private generateSecurityKey;
|
|
27
29
|
private buildToolsContext;
|
|
28
|
-
constructor(aiService: AIService, aiProviderService: AIProviderService, projectService: ProjectService, parallelProcessingService: ParallelProcessingService, taskManagementService: TaskManagementService, resultFormatterService: ResultFormatterService, templateService: TemplateService, documentLoaderService: DocumentLoaderService, toolCallService: ToolCallService, agentLoaderService: AgentLoaderService);
|
|
30
|
+
constructor(aiService: AIService, aiProviderService: AIProviderService, projectService: ProjectService, parallelProcessingService: ParallelProcessingService, taskManagementService: TaskManagementService, resultFormatterService: ResultFormatterService, templateService: TemplateService, documentLoaderService: DocumentLoaderService, toolCallService: ToolCallService, agentLoaderService: AgentLoaderService, remoteAgentService: RemoteAgentService);
|
|
29
31
|
onModuleInit(): void;
|
|
30
32
|
getTaskLogs(input: {
|
|
31
33
|
taskId?: string;
|
|
@@ -104,52 +106,7 @@ export declare class CrewXTool implements OnModuleInit {
|
|
|
104
106
|
metadata?: Record<string, any>;
|
|
105
107
|
}>;
|
|
106
108
|
platform?: 'slack' | 'cli';
|
|
107
|
-
}): Promise<
|
|
108
|
-
content: {
|
|
109
|
-
type: string;
|
|
110
|
-
text: string;
|
|
111
|
-
}[];
|
|
112
|
-
success: boolean;
|
|
113
|
-
agent: string;
|
|
114
|
-
error: string;
|
|
115
|
-
availableAgents: string[];
|
|
116
|
-
readOnlyMode: boolean;
|
|
117
|
-
taskId?: undefined;
|
|
118
|
-
provider?: undefined;
|
|
119
|
-
query?: undefined;
|
|
120
|
-
response?: undefined;
|
|
121
|
-
workingDirectory?: undefined;
|
|
122
|
-
} | {
|
|
123
|
-
content: {
|
|
124
|
-
type: string;
|
|
125
|
-
text: string;
|
|
126
|
-
}[];
|
|
127
|
-
taskId: string;
|
|
128
|
-
success: boolean;
|
|
129
|
-
agent: string;
|
|
130
|
-
provider: string;
|
|
131
|
-
query: string;
|
|
132
|
-
response: string;
|
|
133
|
-
readOnlyMode: boolean;
|
|
134
|
-
error: string | undefined;
|
|
135
|
-
workingDirectory: string;
|
|
136
|
-
availableAgents?: undefined;
|
|
137
|
-
} | {
|
|
138
|
-
content: {
|
|
139
|
-
type: string;
|
|
140
|
-
text: string;
|
|
141
|
-
}[];
|
|
142
|
-
success: boolean;
|
|
143
|
-
agent: string;
|
|
144
|
-
error: string;
|
|
145
|
-
readOnlyMode: boolean;
|
|
146
|
-
availableAgents?: undefined;
|
|
147
|
-
taskId?: undefined;
|
|
148
|
-
provider?: undefined;
|
|
149
|
-
query?: undefined;
|
|
150
|
-
response?: undefined;
|
|
151
|
-
workingDirectory?: undefined;
|
|
152
|
-
}>;
|
|
109
|
+
}): Promise<any>;
|
|
153
110
|
executeAgent(args: {
|
|
154
111
|
agentId: string;
|
|
155
112
|
task: string;
|
|
@@ -162,49 +119,8 @@ export declare class CrewXTool implements OnModuleInit {
|
|
|
162
119
|
metadata?: Record<string, any>;
|
|
163
120
|
}>;
|
|
164
121
|
platform?: 'slack' | 'cli';
|
|
165
|
-
}): Promise<
|
|
166
|
-
|
|
167
|
-
type: string;
|
|
168
|
-
text: string;
|
|
169
|
-
}[];
|
|
170
|
-
success: boolean;
|
|
171
|
-
agent: string;
|
|
172
|
-
error: string;
|
|
173
|
-
availableAgents: string[];
|
|
174
|
-
executionMode: boolean;
|
|
175
|
-
taskId?: undefined;
|
|
176
|
-
provider?: undefined;
|
|
177
|
-
implementation?: undefined;
|
|
178
|
-
recommendations?: undefined;
|
|
179
|
-
} | {
|
|
180
|
-
content: {
|
|
181
|
-
type: string;
|
|
182
|
-
text: string;
|
|
183
|
-
}[];
|
|
184
|
-
success: boolean;
|
|
185
|
-
taskId: string;
|
|
186
|
-
agent: string;
|
|
187
|
-
provider: string;
|
|
188
|
-
implementation: string;
|
|
189
|
-
error: string | undefined;
|
|
190
|
-
recommendations: never[];
|
|
191
|
-
availableAgents?: undefined;
|
|
192
|
-
executionMode?: undefined;
|
|
193
|
-
} | {
|
|
194
|
-
content: {
|
|
195
|
-
type: string;
|
|
196
|
-
text: string;
|
|
197
|
-
}[];
|
|
198
|
-
success: boolean;
|
|
199
|
-
taskId: string;
|
|
200
|
-
agent: string;
|
|
201
|
-
provider: string;
|
|
202
|
-
implementation: null;
|
|
203
|
-
error: string;
|
|
204
|
-
recommendations: never[];
|
|
205
|
-
availableAgents?: undefined;
|
|
206
|
-
executionMode?: undefined;
|
|
207
|
-
}>;
|
|
122
|
+
}): Promise<any>;
|
|
123
|
+
private normalizeRemoteResult;
|
|
208
124
|
private getOptionsForAgent;
|
|
209
125
|
queryAgentParallel(args: {
|
|
210
126
|
queries: Array<{
|
|
@@ -249,10 +165,10 @@ export declare class CrewXTool implements OnModuleInit {
|
|
|
249
165
|
agentId: string;
|
|
250
166
|
query: string;
|
|
251
167
|
success: boolean;
|
|
252
|
-
response:
|
|
253
|
-
provider:
|
|
168
|
+
response: any;
|
|
169
|
+
provider: any;
|
|
254
170
|
duration: number;
|
|
255
|
-
taskId:
|
|
171
|
+
taskId: any;
|
|
256
172
|
error?: undefined;
|
|
257
173
|
} | {
|
|
258
174
|
index: number;
|
|
@@ -290,6 +206,12 @@ export declare class CrewXTool implements OnModuleInit {
|
|
|
290
206
|
task: string;
|
|
291
207
|
projectPath?: string;
|
|
292
208
|
context?: string;
|
|
209
|
+
model?: string;
|
|
210
|
+
messages?: Array<{
|
|
211
|
+
text: string;
|
|
212
|
+
isAssistant: boolean;
|
|
213
|
+
metadata?: Record<string, any>;
|
|
214
|
+
}>;
|
|
293
215
|
}>;
|
|
294
216
|
}): Promise<{
|
|
295
217
|
content: {
|
|
@@ -315,33 +237,20 @@ export declare class CrewXTool implements OnModuleInit {
|
|
|
315
237
|
totalDuration: number;
|
|
316
238
|
averageDuration: number;
|
|
317
239
|
};
|
|
318
|
-
results:
|
|
240
|
+
results: {
|
|
319
241
|
index: number;
|
|
320
242
|
agentId: string;
|
|
321
243
|
task: string;
|
|
322
|
-
success:
|
|
323
|
-
implementation:
|
|
324
|
-
provider:
|
|
325
|
-
duration: number;
|
|
326
|
-
error: string | undefined;
|
|
327
|
-
context: string | undefined;
|
|
328
|
-
workingDirectory: string;
|
|
329
|
-
recommendations: never[];
|
|
330
|
-
taskId: string | undefined;
|
|
331
|
-
} | {
|
|
332
|
-
index: number;
|
|
333
|
-
agentId: string;
|
|
334
|
-
task: string;
|
|
335
|
-
success: boolean;
|
|
336
|
-
implementation: null;
|
|
337
|
-
provider: string;
|
|
244
|
+
success: any;
|
|
245
|
+
implementation: any;
|
|
246
|
+
provider: any;
|
|
338
247
|
duration: number;
|
|
339
248
|
error: any;
|
|
340
249
|
context: string | undefined;
|
|
341
250
|
workingDirectory: string;
|
|
342
|
-
recommendations:
|
|
343
|
-
taskId:
|
|
344
|
-
}
|
|
251
|
+
recommendations: any;
|
|
252
|
+
taskId: any;
|
|
253
|
+
}[];
|
|
345
254
|
performance: {
|
|
346
255
|
fastestTask: number;
|
|
347
256
|
slowestTask: number;
|
package/dist/crewx.tool.js
CHANGED
|
@@ -63,6 +63,7 @@ const document_loader_service_1 = require("./services/document-loader.service");
|
|
|
63
63
|
const tool_call_service_1 = require("./services/tool-call.service");
|
|
64
64
|
const agent_loader_service_1 = require("./services/agent-loader.service");
|
|
65
65
|
const timeout_config_1 = require("./config/timeout.config");
|
|
66
|
+
const remote_agent_service_1 = require("./services/remote-agent.service");
|
|
66
67
|
let CrewXTool = CrewXTool_1 = class CrewXTool {
|
|
67
68
|
generateSecurityKey() {
|
|
68
69
|
return crypto.randomBytes(8).toString('hex');
|
|
@@ -83,7 +84,7 @@ let CrewXTool = CrewXTool_1 = class CrewXTool {
|
|
|
83
84
|
count: tools.length,
|
|
84
85
|
};
|
|
85
86
|
}
|
|
86
|
-
constructor(aiService, aiProviderService, projectService, parallelProcessingService, taskManagementService, resultFormatterService, templateService, documentLoaderService, toolCallService, agentLoaderService) {
|
|
87
|
+
constructor(aiService, aiProviderService, projectService, parallelProcessingService, taskManagementService, resultFormatterService, templateService, documentLoaderService, toolCallService, agentLoaderService, remoteAgentService) {
|
|
87
88
|
this.aiService = aiService;
|
|
88
89
|
this.aiProviderService = aiProviderService;
|
|
89
90
|
this.projectService = projectService;
|
|
@@ -94,6 +95,7 @@ let CrewXTool = CrewXTool_1 = class CrewXTool {
|
|
|
94
95
|
this.documentLoaderService = documentLoaderService;
|
|
95
96
|
this.toolCallService = toolCallService;
|
|
96
97
|
this.agentLoaderService = agentLoaderService;
|
|
98
|
+
this.remoteAgentService = remoteAgentService;
|
|
97
99
|
this.logger = new common_1.Logger(CrewXTool_1.name);
|
|
98
100
|
this.timeoutConfig = (0, timeout_config_1.getTimeoutConfig)();
|
|
99
101
|
}
|
|
@@ -330,6 +332,51 @@ Please check the agent ID and try again.`
|
|
|
330
332
|
readOnlyMode: true
|
|
331
333
|
};
|
|
332
334
|
}
|
|
335
|
+
if (agent.remote?.type === 'mcp-http') {
|
|
336
|
+
try {
|
|
337
|
+
const remoteResult = await this.remoteAgentService.queryRemoteAgent(agent, {
|
|
338
|
+
query,
|
|
339
|
+
context,
|
|
340
|
+
model,
|
|
341
|
+
platform,
|
|
342
|
+
messages,
|
|
343
|
+
});
|
|
344
|
+
const normalized = this.normalizeRemoteResult(agent, taskId, remoteResult, true);
|
|
345
|
+
const logLevel = normalized.success ? 'info' : 'error';
|
|
346
|
+
this.taskManagementService.addTaskLog(taskId, {
|
|
347
|
+
level: logLevel,
|
|
348
|
+
message: normalized.success
|
|
349
|
+
? 'Remote agent query completed successfully'
|
|
350
|
+
: `Remote agent query failed: ${normalized.error || 'Unknown error'}`,
|
|
351
|
+
});
|
|
352
|
+
this.taskManagementService.completeTask(taskId, normalized, normalized.success !== false);
|
|
353
|
+
return normalized;
|
|
354
|
+
}
|
|
355
|
+
catch (error) {
|
|
356
|
+
const errorMessage = (0, error_utils_1.getErrorMessage)(error);
|
|
357
|
+
this.taskManagementService.addTaskLog(taskId, {
|
|
358
|
+
level: 'error',
|
|
359
|
+
message: `Remote agent query failed: ${errorMessage}`,
|
|
360
|
+
});
|
|
361
|
+
this.taskManagementService.completeTask(taskId, { success: false, error: errorMessage }, false);
|
|
362
|
+
return {
|
|
363
|
+
content: [
|
|
364
|
+
{
|
|
365
|
+
type: 'text',
|
|
366
|
+
text: `❌ **Remote agent error**\n\n\
|
|
367
|
+
${errorMessage}`,
|
|
368
|
+
},
|
|
369
|
+
],
|
|
370
|
+
success: false,
|
|
371
|
+
agent: agentId,
|
|
372
|
+
provider: 'remote',
|
|
373
|
+
error: errorMessage,
|
|
374
|
+
taskId,
|
|
375
|
+
readOnlyMode: true,
|
|
376
|
+
readOnly: true,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
}
|
|
333
380
|
const workingDir = agent.workingDirectory || process.cwd();
|
|
334
381
|
let systemPrompt = agent.systemPrompt || agent.description || `You are an expert ${agentId}.`;
|
|
335
382
|
const securityKey = this.generateSecurityKey();
|
|
@@ -482,6 +529,50 @@ Please check the agent ID and try again.`
|
|
|
482
529
|
executionMode: true
|
|
483
530
|
};
|
|
484
531
|
}
|
|
532
|
+
if (agent.remote?.type === 'mcp-http') {
|
|
533
|
+
try {
|
|
534
|
+
const remoteResult = await this.remoteAgentService.executeRemoteAgent(agent, {
|
|
535
|
+
task,
|
|
536
|
+
context,
|
|
537
|
+
model,
|
|
538
|
+
platform,
|
|
539
|
+
messages,
|
|
540
|
+
});
|
|
541
|
+
const normalized = this.normalizeRemoteResult(agent, taskId, remoteResult, false);
|
|
542
|
+
const logLevel = normalized.success ? 'info' : 'error';
|
|
543
|
+
this.taskManagementService.addTaskLog(taskId, {
|
|
544
|
+
level: logLevel,
|
|
545
|
+
message: normalized.success
|
|
546
|
+
? 'Remote agent execute completed successfully'
|
|
547
|
+
: `Remote agent execute failed: ${normalized.error || 'Unknown error'}`,
|
|
548
|
+
});
|
|
549
|
+
this.taskManagementService.completeTask(taskId, normalized, normalized.success !== false);
|
|
550
|
+
return normalized;
|
|
551
|
+
}
|
|
552
|
+
catch (error) {
|
|
553
|
+
const errorMessage = (0, error_utils_1.getErrorMessage)(error);
|
|
554
|
+
this.taskManagementService.addTaskLog(taskId, {
|
|
555
|
+
level: 'error',
|
|
556
|
+
message: `Remote agent execute failed: ${errorMessage}`,
|
|
557
|
+
});
|
|
558
|
+
this.taskManagementService.completeTask(taskId, { success: false, error: errorMessage }, false);
|
|
559
|
+
return {
|
|
560
|
+
content: [
|
|
561
|
+
{
|
|
562
|
+
type: 'text',
|
|
563
|
+
text: `❌ **Remote agent error**\n\n${errorMessage}`,
|
|
564
|
+
},
|
|
565
|
+
],
|
|
566
|
+
success: false,
|
|
567
|
+
agent: agentId,
|
|
568
|
+
provider: 'remote',
|
|
569
|
+
error: errorMessage,
|
|
570
|
+
taskId,
|
|
571
|
+
executionMode: true,
|
|
572
|
+
readOnly: false,
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
}
|
|
485
576
|
const workingDir = projectPath || agent.workingDirectory || './';
|
|
486
577
|
let systemPrompt = agent.systemPrompt || agent.description || `You are an expert ${agentId}.`;
|
|
487
578
|
const securityKey = this.generateSecurityKey();
|
|
@@ -587,6 +678,36 @@ Task: ${task}
|
|
|
587
678
|
};
|
|
588
679
|
}
|
|
589
680
|
}
|
|
681
|
+
normalizeRemoteResult(agent, taskId, remoteResult, readOnly) {
|
|
682
|
+
const normalizedAgentId = remoteResult?.agent ?? agent.remote?.agentId ?? agent.id;
|
|
683
|
+
const provider = remoteResult?.provider ?? 'remote';
|
|
684
|
+
let content = remoteResult?.content;
|
|
685
|
+
if (!Array.isArray(content) || content.length === 0) {
|
|
686
|
+
const fallback = remoteResult?.response ??
|
|
687
|
+
remoteResult?.implementation ??
|
|
688
|
+
remoteResult?.message ??
|
|
689
|
+
remoteResult?.output;
|
|
690
|
+
const text = typeof fallback === 'string'
|
|
691
|
+
? fallback
|
|
692
|
+
: JSON.stringify(fallback ?? remoteResult, null, 2);
|
|
693
|
+
content = [
|
|
694
|
+
{
|
|
695
|
+
type: 'text',
|
|
696
|
+
text,
|
|
697
|
+
},
|
|
698
|
+
];
|
|
699
|
+
}
|
|
700
|
+
return {
|
|
701
|
+
...remoteResult,
|
|
702
|
+
content,
|
|
703
|
+
agent: normalizedAgentId,
|
|
704
|
+
provider,
|
|
705
|
+
taskId: remoteResult?.taskId ?? taskId,
|
|
706
|
+
success: remoteResult?.success !== false,
|
|
707
|
+
readOnlyMode: readOnly,
|
|
708
|
+
readOnly,
|
|
709
|
+
};
|
|
710
|
+
}
|
|
590
711
|
getOptionsForAgent(agent, mode, provider) {
|
|
591
712
|
try {
|
|
592
713
|
if (agent.options && typeof agent.options === 'object' && !Array.isArray(agent.options)) {
|
|
@@ -869,7 +990,7 @@ ${result.context ? `**Context:** ${result.context}\n` : ''}
|
|
|
869
990
|
${result.success ? result.implementation : `Error: ${result.error}`}
|
|
870
991
|
|
|
871
992
|
${result.recommendations.length > 0 ? `**Recommendations:**
|
|
872
|
-
${result.recommendations.map(
|
|
993
|
+
${result.recommendations.map((recommendation) => `• ${recommendation}`).join('\n')}` : ''}
|
|
873
994
|
`).join('\n')}
|
|
874
995
|
|
|
875
996
|
**Performance Insights:**
|
|
@@ -1142,6 +1263,11 @@ __decorate([
|
|
|
1142
1263
|
projectPath: zod_1.z.string().describe('Absolute path of the project to analyze').optional(),
|
|
1143
1264
|
context: zod_1.z.string().describe('Additional context or background information').optional(),
|
|
1144
1265
|
model: zod_1.z.string().describe('Model to use for this query (e.g., sonnet, gemini-2.5-pro, gpt-5)').optional(),
|
|
1266
|
+
messages: zod_1.z.array(zod_1.z.object({
|
|
1267
|
+
text: zod_1.z.string(),
|
|
1268
|
+
isAssistant: zod_1.z.boolean(),
|
|
1269
|
+
metadata: zod_1.z.record(zod_1.z.any()).optional(),
|
|
1270
|
+
})).describe('Conversation history to provide as context (oldest → newest)').optional(),
|
|
1145
1271
|
},
|
|
1146
1272
|
annotations: {
|
|
1147
1273
|
title: 'Query Specialist Agent (Read-Only)',
|
|
@@ -1164,6 +1290,11 @@ __decorate([
|
|
|
1164
1290
|
projectPath: zod_1.z.string().describe('Absolute path of the project to work on').optional(),
|
|
1165
1291
|
context: zod_1.z.string().describe('Additional context or background information').optional(),
|
|
1166
1292
|
model: zod_1.z.string().describe('Model to use for this execution (e.g., sonnet, gemini-2.5-pro, gpt-5)').optional(),
|
|
1293
|
+
messages: zod_1.z.array(zod_1.z.object({
|
|
1294
|
+
text: zod_1.z.string(),
|
|
1295
|
+
isAssistant: zod_1.z.boolean(),
|
|
1296
|
+
metadata: zod_1.z.record(zod_1.z.any()).optional(),
|
|
1297
|
+
})).describe('Conversation history to provide as context (oldest → newest)').optional(),
|
|
1167
1298
|
},
|
|
1168
1299
|
annotations: {
|
|
1169
1300
|
title: 'Execute Agent Task (Can Modify Files)',
|
|
@@ -1186,6 +1317,12 @@ __decorate([
|
|
|
1186
1317
|
query: zod_1.z.string().describe('Question or request to ask the agent'),
|
|
1187
1318
|
projectPath: zod_1.z.string().describe('Absolute path of the project to analyze').optional(),
|
|
1188
1319
|
context: zod_1.z.string().describe('Additional context or background information').optional(),
|
|
1320
|
+
model: zod_1.z.string().describe('Model to use for this query').optional(),
|
|
1321
|
+
messages: zod_1.z.array(zod_1.z.object({
|
|
1322
|
+
text: zod_1.z.string(),
|
|
1323
|
+
isAssistant: zod_1.z.boolean(),
|
|
1324
|
+
metadata: zod_1.z.record(zod_1.z.any()).optional(),
|
|
1325
|
+
})).describe('Conversation history to provide as context (oldest → newest)').optional(),
|
|
1189
1326
|
})).describe('Array of queries to process in parallel'),
|
|
1190
1327
|
},
|
|
1191
1328
|
annotations: {
|
|
@@ -1209,6 +1346,12 @@ __decorate([
|
|
|
1209
1346
|
task: zod_1.z.string().describe('Task or implementation request for the agent to perform'),
|
|
1210
1347
|
projectPath: zod_1.z.string().describe('Absolute path of the project to work on').optional(),
|
|
1211
1348
|
context: zod_1.z.string().describe('Additional context or background information').optional(),
|
|
1349
|
+
model: zod_1.z.string().describe('Model to use for this execution').optional(),
|
|
1350
|
+
messages: zod_1.z.array(zod_1.z.object({
|
|
1351
|
+
text: zod_1.z.string(),
|
|
1352
|
+
isAssistant: zod_1.z.boolean(),
|
|
1353
|
+
metadata: zod_1.z.record(zod_1.z.any()).optional(),
|
|
1354
|
+
})).describe('Conversation history to provide as context (oldest → newest)').optional(),
|
|
1212
1355
|
})).describe('Array of tasks to execute in parallel'),
|
|
1213
1356
|
},
|
|
1214
1357
|
annotations: {
|
|
@@ -1247,6 +1390,7 @@ exports.CrewXTool = CrewXTool = CrewXTool_1 = __decorate([
|
|
|
1247
1390
|
template_service_1.TemplateService,
|
|
1248
1391
|
document_loader_service_1.DocumentLoaderService,
|
|
1249
1392
|
tool_call_service_1.ToolCallService,
|
|
1250
|
-
agent_loader_service_1.AgentLoaderService
|
|
1393
|
+
agent_loader_service_1.AgentLoaderService,
|
|
1394
|
+
remote_agent_service_1.RemoteAgentService])
|
|
1251
1395
|
], CrewXTool);
|
|
1252
1396
|
//# sourceMappingURL=crewx.tool.js.map
|