@sowonai/crewx-cli 0.4.0-dev.5 → 0.4.0-dev.7

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.
Files changed (34) hide show
  1. package/README.md +38 -6
  2. package/dist/cli/mcp.handler.js.map +1 -1
  3. package/dist/providers/base-ai.provider.d.ts +1 -50
  4. package/dist/providers/base-ai.provider.js +2 -620
  5. package/dist/providers/base-ai.provider.js.map +1 -1
  6. package/dist/providers/claude.provider.d.ts +2 -22
  7. package/dist/providers/claude.provider.js +8 -338
  8. package/dist/providers/claude.provider.js.map +1 -1
  9. package/dist/providers/codex.provider.d.ts +2 -15
  10. package/dist/providers/codex.provider.js +8 -77
  11. package/dist/providers/codex.provider.js.map +1 -1
  12. package/dist/providers/copilot.provider.d.ts +2 -22
  13. package/dist/providers/copilot.provider.js +8 -242
  14. package/dist/providers/copilot.provider.js.map +1 -1
  15. package/dist/providers/gemini.provider.d.ts +2 -19
  16. package/dist/providers/gemini.provider.js +8 -123
  17. package/dist/providers/gemini.provider.js.map +1 -1
  18. package/dist/providers/logger.adapter.d.ts +4 -0
  19. package/dist/providers/logger.adapter.js +56 -0
  20. package/dist/providers/logger.adapter.js.map +1 -0
  21. package/dist/services/parallel-processing.service.d.ts +15 -17
  22. package/dist/services/parallel-processing.service.js +227 -196
  23. package/dist/services/parallel-processing.service.js.map +1 -1
  24. package/dist/services/remote-agent.service.d.ts +3 -6
  25. package/dist/services/remote-agent.service.js +41 -95
  26. package/dist/services/remote-agent.service.js.map +1 -1
  27. package/dist/services/tool-call.service.d.ts +2 -36
  28. package/dist/services/tool-call.service.js.map +1 -1
  29. package/dist/slack/formatters/message.formatter.d.ts +4 -2
  30. package/dist/slack/formatters/message.formatter.js +32 -2
  31. package/dist/slack/formatters/message.formatter.js.map +1 -1
  32. package/dist/slack/slack-bot.js +1 -2
  33. package/dist/slack/slack-bot.js.map +1 -1
  34. package/package.json +2 -2
@@ -11,251 +11,17 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CopilotProvider = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
- const base_ai_provider_1 = require("./base-ai.provider");
15
14
  const crewx_sdk_1 = require("@sowonai/crewx-sdk");
16
15
  const tool_call_service_1 = require("../services/tool-call.service");
17
- let CopilotProvider = class CopilotProvider extends base_ai_provider_1.BaseAIProvider {
16
+ const version_1 = require("../version");
17
+ const logger_adapter_1 = require("./logger.adapter");
18
+ let CopilotProvider = class CopilotProvider extends crewx_sdk_1.CopilotProvider {
18
19
  constructor(toolCallService) {
19
- super('CopilotProvider');
20
- this.name = crewx_sdk_1.BuiltInProviders.COPILOT;
21
- if (toolCallService) {
22
- this.setToolCallService(toolCallService);
23
- }
24
- }
25
- getCliCommand() {
26
- return 'copilot';
27
- }
28
- getDefaultArgs() {
29
- return [];
30
- }
31
- getExecuteArgs() {
32
- return [];
33
- }
34
- getPromptInArgs() {
35
- return false;
36
- }
37
- getNotInstalledMessage() {
38
- return 'GitHub Copilot CLI is not installed. Please refer to https://docs.github.com/copilot/how-tos/set-up/install-copilot-cli to install it.';
39
- }
40
- async execute(prompt, options = {}) {
41
- if (this.toolCallService) {
42
- this.logger.log('CopilotProvider: Using queryWithTools in execute mode');
43
- return this.queryWithTools(prompt, options);
44
- }
45
- this.logger.warn('CopilotProvider: ToolCallService not available, falling back to base execute');
46
- return super.execute(prompt, options);
47
- }
48
- parseProviderError(stderr, stdout) {
49
- const combinedOutput = stderr || stdout;
50
- if (combinedOutput.includes('quota') && combinedOutput.includes('exceed')) {
51
- return {
52
- error: true,
53
- message: 'Copilot quota exceeded. Please check your plan at https://github.com/features/copilot/plans or try again later.',
54
- };
55
- }
56
- if (combinedOutput.includes('quota_exceeded')) {
57
- return {
58
- error: true,
59
- message: 'Copilot quota exceeded. Please check your plan at https://github.com/features/copilot/plans.',
60
- };
61
- }
62
- if (combinedOutput.toLowerCase().includes('auth') ||
63
- combinedOutput.toLowerCase().includes('login')) {
64
- return {
65
- error: true,
66
- message: 'Copilot CLI authentication is required. Please authenticate using the `copilot login` command.',
67
- };
68
- }
69
- if (stderr && (stderr.toLowerCase().includes('unknown option') ||
70
- stderr.toLowerCase().includes('invalid option'))) {
71
- return {
72
- error: true,
73
- message: stderr.split('\n')[0]?.trim() || 'Invalid CLI option',
74
- };
75
- }
76
- if (stderr && (stderr.toLowerCase().includes('network') ||
77
- stderr.toLowerCase().includes('connection'))) {
78
- return {
79
- error: true,
80
- message: 'Network connection error. Please check your internet connection and try again.',
81
- };
82
- }
83
- if (stderr && !stdout) {
84
- return { error: true, message: stderr };
85
- }
86
- return { error: false, message: '' };
87
- }
88
- buildPromptWithTools(prompt, tools) {
89
- if (!tools || tools.length === 0) {
90
- return prompt;
91
- }
92
- return prompt;
93
- }
94
- buildFollowUpPrompt(toolName, toolInput, toolResult) {
95
- return `Tool execution result:
96
- Tool: ${toolName}
97
- Input: ${JSON.stringify(toolInput)}
98
- Result: ${JSON.stringify(toolResult)}
99
-
100
- Please continue with your response based on this tool result.`;
101
- }
102
- parseToolUse(content) {
103
- const xmlMatch = content.match(/<crew(?:code|x)_tool_call>\s*([\s\S]*?)\s*<\/crew(?:code|x)_tool_call>/);
104
- if (xmlMatch && xmlMatch[1]) {
105
- try {
106
- const jsonContent = xmlMatch[1].trim();
107
- const parsed = JSON.parse(jsonContent);
108
- if (parsed.type === 'tool_use' && parsed.name && parsed.input) {
109
- this.logger.log(`Tool use detected: ${parsed.name} with input ${JSON.stringify(parsed.input)}`);
110
- return {
111
- isToolUse: true,
112
- toolName: parsed.name,
113
- toolInput: parsed.input,
114
- };
115
- }
116
- }
117
- catch (e) {
118
- }
119
- }
120
- try {
121
- const parsed = JSON.parse(content);
122
- if (parsed.type === 'tool_use' && parsed.name && parsed.input) {
123
- return {
124
- isToolUse: true,
125
- toolName: parsed.name,
126
- toolInput: parsed.input,
127
- };
128
- }
129
- if (parsed.content && Array.isArray(parsed.content)) {
130
- const toolUse = parsed.content.find((c) => c.type === 'tool_use');
131
- if (toolUse) {
132
- return {
133
- isToolUse: true,
134
- toolName: toolUse.name,
135
- toolInput: toolUse.input,
136
- };
137
- }
138
- }
139
- }
140
- catch (error) {
141
- const codeBlockMatch = content.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/);
142
- if (codeBlockMatch && codeBlockMatch[1]) {
143
- try {
144
- const jsonContent = codeBlockMatch[1].trim();
145
- const parsed = JSON.parse(jsonContent);
146
- if (parsed.type === 'tool_use' && parsed.name && parsed.input) {
147
- this.logger.log(`Tool use detected: ${parsed.name} with input ${JSON.stringify(parsed.input)}`);
148
- return {
149
- isToolUse: true,
150
- toolName: parsed.name,
151
- toolInput: parsed.input,
152
- };
153
- }
154
- }
155
- catch (e) {
156
- }
157
- }
158
- const cleanedContent = content
159
- .split('\n')
160
- .map(line => line.replace(/^[●\-\*\s]+/, ''))
161
- .join('\n');
162
- const startMatch = cleanedContent.match(/\{\s*"type"\s*:\s*"tool_use"/);
163
- if (startMatch && startMatch.index !== undefined) {
164
- let braceCount = 0;
165
- let inString = false;
166
- let escapeNext = false;
167
- let jsonStr = '';
168
- for (let i = startMatch.index; i < cleanedContent.length; i++) {
169
- const char = cleanedContent[i];
170
- jsonStr += char;
171
- if (escapeNext) {
172
- escapeNext = false;
173
- continue;
174
- }
175
- if (char === '\\') {
176
- escapeNext = true;
177
- continue;
178
- }
179
- if (char === '"') {
180
- inString = !inString;
181
- continue;
182
- }
183
- if (!inString) {
184
- if (char === '{')
185
- braceCount++;
186
- if (char === '}') {
187
- braceCount--;
188
- if (braceCount === 0) {
189
- try {
190
- const parsed = JSON.parse(jsonStr);
191
- if (parsed.type === 'tool_use' && parsed.name && parsed.input) {
192
- this.logger.log(`Tool use detected: ${parsed.name} with input ${JSON.stringify(parsed.input)}`);
193
- return {
194
- isToolUse: true,
195
- toolName: parsed.name,
196
- toolInput: parsed.input,
197
- };
198
- }
199
- }
200
- catch (e) {
201
- this.logger.warn(`Failed to parse extracted JSON: ${e}`);
202
- }
203
- break;
204
- }
205
- }
206
- }
207
- }
208
- }
209
- }
210
- return { isToolUse: false };
211
- }
212
- async queryWithTools(prompt, options = {}, maxTurns = 5) {
213
- if (!this.toolCallService) {
214
- this.logger.warn('ToolCallService not available, falling back to regular query');
215
- return this.query(prompt, options);
216
- }
217
- let turn = 0;
218
- let currentPrompt = prompt;
219
- const tools = this.toolCallService.list();
220
- currentPrompt = this.buildPromptWithTools(currentPrompt, tools);
221
- while (turn < maxTurns) {
222
- this.logger.log(`Tool call turn ${turn + 1}/${maxTurns}`);
223
- const response = await this.query(currentPrompt, options);
224
- if (!response.success) {
225
- return response;
226
- }
227
- const toolUse = this.parseToolUse(response.content);
228
- if (!toolUse.isToolUse) {
229
- this.logger.log('No tool use detected, returning response');
230
- return response;
231
- }
232
- this.logger.log(`Executing tool: ${toolUse.toolName}`);
233
- try {
234
- const toolResult = await this.toolCallService.execute(toolUse.toolName, toolUse.toolInput);
235
- currentPrompt = this.buildFollowUpPrompt(toolUse.toolName, toolUse.toolInput, toolResult);
236
- turn++;
237
- }
238
- catch (error) {
239
- this.logger.error(`Tool execution failed: ${error.message}`);
240
- return {
241
- content: '',
242
- provider: this.name,
243
- command: response.command,
244
- success: false,
245
- error: `Tool execution failed: ${error.message}`,
246
- taskId: response.taskId,
247
- };
248
- }
249
- }
250
- this.logger.error(`Max tool call turns (${maxTurns}) exceeded`);
251
- return {
252
- content: '',
253
- provider: this.name,
254
- command: `${this.getCliCommand()} (max turns exceeded)`,
255
- success: false,
256
- error: `Maximum tool call iterations (${maxTurns}) exceeded`,
257
- taskId: options.taskId,
258
- };
20
+ super({
21
+ logger: (0, logger_adapter_1.createLoggerAdapter)('CopilotProvider'),
22
+ toolCallHandler: toolCallService,
23
+ crewxVersion: version_1.CREWX_VERSION,
24
+ });
259
25
  }
260
26
  };
261
27
  exports.CopilotProvider = CopilotProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.provider.js","sourceRoot":"","sources":["../../src/providers/copilot.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot.provider.js","sourceRoot":"","sources":["../../src/providers/copilot.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAA2E;AAC3E,qEAAgE;AAChE,wCAA2C;AAC3C,qDAAuD;AAGhD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,2BAAkB;IACrD,YAAY,eAAiC;QAC3C,KAAK,CAAC;YACJ,MAAM,EAAE,IAAA,oCAAmB,EAAC,iBAAiB,CAAC;YAC9C,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,uBAAa;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEmB,mCAAe;GADlC,eAAe,CAQ3B"}
@@ -1,22 +1,5 @@
1
- import { BaseAIProvider } from './base-ai.provider';
2
- import { AIQueryOptions, AIResponse } from '@sowonai/crewx-sdk';
1
+ import { GeminiProvider as SdkGeminiProvider } from '@sowonai/crewx-sdk';
3
2
  import { ToolCallService } from '../services/tool-call.service';
4
- export declare class GeminiProvider extends BaseAIProvider {
5
- readonly name: "cli/gemini";
3
+ export declare class GeminiProvider extends SdkGeminiProvider {
6
4
  constructor(toolCallService?: ToolCallService);
7
- protected getCliCommand(): string;
8
- protected getDefaultArgs(): string[];
9
- protected getExecuteArgs(): string[];
10
- protected getPromptInArgs(): boolean;
11
- protected getNotInstalledMessage(): string;
12
- private buildPromptWithTools;
13
- query(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
14
- execute(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
15
- protected parseToolUseProviderSpecific(parsed: any): {
16
- isToolUse: boolean;
17
- toolName?: string;
18
- toolInput?: any;
19
- };
20
- queryWithTools(prompt: string, options?: AIQueryOptions, maxTurns?: number): Promise<AIResponse>;
21
- private buildToolResultPrompt;
22
5
  }
@@ -11,132 +11,17 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GeminiProvider = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
- const base_ai_provider_1 = require("./base-ai.provider");
15
14
  const crewx_sdk_1 = require("@sowonai/crewx-sdk");
16
15
  const tool_call_service_1 = require("../services/tool-call.service");
17
- let GeminiProvider = class GeminiProvider extends base_ai_provider_1.BaseAIProvider {
16
+ const version_1 = require("../version");
17
+ const logger_adapter_1 = require("./logger.adapter");
18
+ let GeminiProvider = class GeminiProvider extends crewx_sdk_1.GeminiProvider {
18
19
  constructor(toolCallService) {
19
- super('GeminiProvider');
20
- this.name = crewx_sdk_1.BuiltInProviders.GEMINI;
21
- if (toolCallService) {
22
- this.setToolCallService(toolCallService);
23
- }
24
- }
25
- getCliCommand() {
26
- return 'gemini';
27
- }
28
- getDefaultArgs() {
29
- return [];
30
- }
31
- getExecuteArgs() {
32
- return [];
33
- }
34
- getPromptInArgs() {
35
- return false;
36
- }
37
- getNotInstalledMessage() {
38
- return 'Gemini CLI is not installed.';
39
- }
40
- buildPromptWithTools(prompt, tools) {
41
- if (!tools || tools.length === 0) {
42
- return prompt;
43
- }
44
- return prompt;
45
- }
46
- async query(prompt, options = {}) {
47
- if (!this.toolCallService) {
48
- this.logger.warn('ToolCallService not available, falling back to regular query');
49
- return super.query(prompt, options);
50
- }
51
- return this.queryWithTools(prompt, options);
52
- }
53
- async execute(prompt, options = {}) {
54
- if (this.toolCallService) {
55
- this.logger.log('GeminiProvider: Using queryWithTools in execute mode');
56
- return this.queryWithTools(prompt, options);
57
- }
58
- this.logger.warn('GeminiProvider: ToolCallService not available, falling back to base execute');
59
- return super.execute(prompt, options);
60
- }
61
- parseToolUseProviderSpecific(parsed) {
62
- if (parsed.response && typeof parsed.response === 'string') {
63
- const responseXml = parsed.response.match(/<crew(?:code|x)_tool_call>\s*([\s\S]*?)\s*<\/crew(?:code|x)_tool_call>/);
64
- if (responseXml && responseXml[1]) {
65
- try {
66
- const jsonContent = responseXml[1].trim();
67
- const toolParsed = JSON.parse(jsonContent);
68
- if (toolParsed.type === 'tool_use' && toolParsed.name && toolParsed.input !== undefined) {
69
- this.logger.log(`Tool use detected from Gemini JSON response field: ${toolParsed.name}`);
70
- return {
71
- isToolUse: true,
72
- toolName: toolParsed.name,
73
- toolInput: toolParsed.input,
74
- };
75
- }
76
- }
77
- catch (e) {
78
- }
79
- }
80
- }
81
- return { isToolUse: false };
82
- }
83
- async queryWithTools(prompt, options = {}, maxTurns = 5) {
84
- if (!this.toolCallService) {
85
- this.logger.warn('ToolCallService not available, falling back to regular query');
86
- return super.query(prompt, options);
87
- }
88
- let turn = 0;
89
- let currentPrompt = prompt;
90
- const tools = this.toolCallService.list();
91
- currentPrompt = this.buildPromptWithTools(currentPrompt, tools);
92
- while (turn < maxTurns) {
93
- this.logger.log(`Tool call turn ${turn + 1}/${maxTurns}`);
94
- if (options.taskId) {
95
- this['appendTaskLog'](options.taskId, 'INFO', `--- Tool Call Turn ${turn + 1}/${maxTurns} ---`);
96
- }
97
- const response = await super.query(currentPrompt, options);
98
- if (!response.success) {
99
- return response;
100
- }
101
- const toolUse = this.parseToolUse(response.content);
102
- if (!toolUse.isToolUse) {
103
- if (options.taskId) {
104
- this['appendTaskLog'](options.taskId, 'INFO', `No tool use detected, returning final response`);
105
- }
106
- return response;
107
- }
108
- this.logger.log(`Executing tool: ${toolUse.toolName} with input ${JSON.stringify(toolUse.toolInput)}`);
109
- if (options.taskId) {
110
- this['appendTaskLog'](options.taskId, 'INFO', `🔧 Gemini requested tool: ${toolUse.toolName}`);
111
- this['appendTaskLog'](options.taskId, 'INFO', `Tool input: ${JSON.stringify(toolUse.toolInput, null, 2)}`);
112
- }
113
- const toolResult = await this.toolCallService.execute(toolUse.toolName, toolUse.toolInput);
114
- this.logger.log(`Tool result: ${JSON.stringify(toolResult)}`);
115
- if (options.taskId) {
116
- this['appendTaskLog'](options.taskId, 'INFO', `✅ Tool executed successfully`);
117
- this['appendTaskLog'](options.taskId, 'INFO', `Tool result preview: ${JSON.stringify(toolResult).substring(0, 500)}...`);
118
- }
119
- currentPrompt = this.buildToolResultPrompt(toolUse.toolName, toolUse.toolInput, toolResult);
120
- turn++;
121
- }
122
- this.logger.warn('Max turns reached without final response');
123
- return {
124
- content: 'Maximum conversation turns reached without completing the task.',
125
- provider: this.name,
126
- command: '',
127
- success: false,
128
- taskId: options.taskId,
129
- };
130
- }
131
- buildToolResultPrompt(toolName, toolInput, toolResult) {
132
- const resultData = toolResult.success && toolResult.data ? toolResult.data : toolResult;
133
- return `The ${toolName} tool has been executed successfully.
134
-
135
- <tool_result>
136
- ${JSON.stringify(resultData, null, 2)}
137
- </tool_result>
138
-
139
- Based on the tool execution result above, please provide a clear, detailed, and user-friendly response to the user's original request. Present the information in an organized and easy-to-read format.`;
20
+ super({
21
+ logger: (0, logger_adapter_1.createLoggerAdapter)('GeminiProvider'),
22
+ toolCallHandler: toolCallService,
23
+ crewxVersion: version_1.CREWX_VERSION,
24
+ });
140
25
  }
141
26
  };
142
27
  exports.GeminiProvider = GeminiProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.provider.js","sourceRoot":"","sources":["../../src/providers/gemini.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.provider.js","sourceRoot":"","sources":["../../src/providers/gemini.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAAyE;AACzE,qEAAgE;AAChE,wCAA2C;AAC3C,qDAAuD;AAGhD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,0BAAiB;IACnD,YAAY,eAAiC;QAC3C,KAAK,CAAC;YACJ,MAAM,EAAE,IAAA,oCAAmB,EAAC,gBAAgB,CAAC;YAC7C,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,uBAAa;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEmB,mCAAe;GADlC,cAAc,CAQ1B"}
@@ -0,0 +1,4 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import type { LoggerLike } from '@sowonai/crewx-sdk';
3
+ export declare function createSdkLoggerAdapter(logger: Logger): (message: string, level?: "debug" | "info" | "warn" | "error") => void;
4
+ export declare function createLoggerAdapter(context: string): LoggerLike;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSdkLoggerAdapter = createSdkLoggerAdapter;
4
+ exports.createLoggerAdapter = createLoggerAdapter;
5
+ const common_1 = require("@nestjs/common");
6
+ function createSdkLoggerAdapter(logger) {
7
+ return (message, level) => {
8
+ switch (level) {
9
+ case 'debug':
10
+ logger.debug(message);
11
+ break;
12
+ case 'info':
13
+ logger.log(message);
14
+ break;
15
+ case 'warn':
16
+ logger.warn(message);
17
+ break;
18
+ case 'error':
19
+ logger.error(message);
20
+ break;
21
+ default:
22
+ logger.log(message);
23
+ }
24
+ };
25
+ }
26
+ function createLoggerAdapter(context) {
27
+ const logger = new common_1.Logger(context);
28
+ return {
29
+ log(message, ...optionalParams) {
30
+ logger.log(message, ...optionalParams);
31
+ },
32
+ warn(message, ...optionalParams) {
33
+ logger.warn(message, ...optionalParams);
34
+ },
35
+ error(message, ...optionalParams) {
36
+ if (message instanceof Error) {
37
+ logger.error(message.message, message.stack);
38
+ }
39
+ else {
40
+ logger.error(message);
41
+ }
42
+ for (const param of optionalParams) {
43
+ if (param instanceof Error) {
44
+ logger.error(param.message, param.stack);
45
+ }
46
+ else if (typeof param === 'string') {
47
+ logger.error(param);
48
+ }
49
+ else if (param !== undefined) {
50
+ logger.error(JSON.stringify(param));
51
+ }
52
+ }
53
+ },
54
+ };
55
+ }
56
+ //# sourceMappingURL=logger.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.adapter.js","sourceRoot":"","sources":["../../src/providers/logger.adapter.ts"],"names":[],"mappings":";;AAcA,wDAmBC;AAMD,kDA4BC;AA5DD,2CAAwC;AAOxC,SAAgB,sBAAsB,CAAC,MAAc;IACnD,OAAO,CAAC,OAAe,EAAE,KAA2C,EAAE,EAAE;QACtE,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR;gBACE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAMD,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,CAAC;IAEnC,OAAO;QACL,GAAG,CAAC,OAAe,EAAE,GAAG,cAAqB;YAC3C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,OAAe,EAAE,GAAG,cAAqB;YAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,OAAuB,EAAE,GAAG,cAAqB;YACrD,IAAI,OAAO,YAAY,KAAK,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;qBAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,10 +1,10 @@
1
- import { AIService } from '../ai.service';
1
+ import { AIService, type AIResponse } from '../ai.service';
2
2
  import { TaskManagementService } from './task-management.service';
3
3
  import { ConfigService } from './config.service';
4
4
  interface AgentExecutionResult {
5
5
  agentId: string;
6
6
  success: boolean;
7
- result?: any;
7
+ result?: AIResponse;
8
8
  error?: string;
9
9
  duration: number;
10
10
  taskId?: string;
@@ -33,9 +33,8 @@ export declare class ParallelProcessingService {
33
33
  private readonly configService;
34
34
  private readonly logger;
35
35
  private readonly timeoutConfig;
36
+ private readonly parallelRunner;
36
37
  constructor(aiService: AIService, taskManagementService: TaskManagementService, configService: ConfigService);
37
- private getProviderForAgent;
38
- private getOptionsForAgent;
39
38
  executeParallel(requests: ParallelProcessingRequest[], config?: ParallelProcessingConfig): Promise<{
40
39
  results: AgentExecutionResult[];
41
40
  summary: {
@@ -82,27 +81,26 @@ export declare class ParallelProcessingService {
82
81
  averageDuration: number;
83
82
  };
84
83
  }>;
85
- private executeWithTimeout;
86
- private chunkArray;
87
84
  getPerformanceMetrics(results: AgentExecutionResult[]): {
88
- totalAgents: number;
89
- successRate: number;
90
- averageExecutionTime: number;
91
- fastestExecution: number;
92
- slowestExecution: number;
93
- successfulAgents?: undefined;
94
- failedAgents?: undefined;
95
- } | {
96
85
  totalAgents: number;
97
86
  successRate: number;
98
87
  averageExecutionTime: number;
99
88
  fastestExecution: number;
100
89
  slowestExecution: number;
101
90
  successfulAgents: string[];
102
- failedAgents: {
91
+ failedAgents: Array<{
103
92
  agentId: string;
104
- error: string | undefined;
105
- }[];
93
+ error?: string;
94
+ }>;
106
95
  };
96
+ private createTask;
97
+ private runAgentTask;
98
+ private createRunnerOptions;
99
+ private createTaskCallbacks;
100
+ private buildAgentResults;
101
+ private buildSummary;
102
+ private getMetadata;
103
+ private getProviderForAgent;
104
+ private getOptionsForAgent;
107
105
  }
108
106
  export {};