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.
@@ -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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"}
@@ -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;AA3DD,gCA2DC"}
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"}
@@ -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) => {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":"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"}
@@ -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
- content: {
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: string | undefined;
253
- provider: string | undefined;
168
+ response: any;
169
+ provider: any;
254
170
  duration: number;
255
- taskId: string | undefined;
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: boolean;
323
- implementation: string | undefined;
324
- provider: string | undefined;
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: never[];
343
- taskId: null;
344
- })[];
251
+ recommendations: any;
252
+ taskId: any;
253
+ }[];
345
254
  performance: {
346
255
  fastestTask: number;
347
256
  slowestTask: number;
@@ -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(r => `• ${r}`).join('\n')}` : ''}
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