@sowonai/crewx-cli 0.4.0-dev.6 → 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
@@ -1,25 +1,5 @@
1
- import { BaseAIProvider } from './base-ai.provider';
2
- import { AIQueryOptions, AIResponse } from '@sowonai/crewx-sdk';
1
+ import { ClaudeProvider as SdkClaudeProvider } from '@sowonai/crewx-sdk';
3
2
  import { ToolCallService } from '../services/tool-call.service';
4
- export declare class ClaudeProvider extends BaseAIProvider {
5
- readonly name: "cli/claude";
3
+ export declare class ClaudeProvider extends SdkClaudeProvider {
6
4
  constructor(toolCallService?: ToolCallService);
7
- protected getCliCommand(): string;
8
- protected getDefaultArgs(): string[];
9
- protected getExecuteArgs(): string[];
10
- protected getNotInstalledMessage(): string;
11
- execute(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
12
- parseProviderError(stderr: string, stdout: string): {
13
- error: boolean;
14
- message: string;
15
- };
16
- private buildPromptWithTools;
17
- private buildFollowUpPrompt;
18
- private parseJsonlResponse;
19
- protected parseToolUse(content: string): {
20
- isToolUse: boolean;
21
- toolName?: string;
22
- toolInput?: any;
23
- };
24
- queryWithTools(prompt: string, options?: AIQueryOptions, maxTurns?: number): Promise<AIResponse>;
25
5
  }
@@ -11,347 +11,17 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ClaudeProvider = 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 ClaudeProvider = class ClaudeProvider extends base_ai_provider_1.BaseAIProvider {
16
+ const version_1 = require("../version");
17
+ const logger_adapter_1 = require("./logger.adapter");
18
+ let ClaudeProvider = class ClaudeProvider extends crewx_sdk_1.ClaudeProvider {
18
19
  constructor(toolCallService) {
19
- super('ClaudeProvider');
20
- this.name = crewx_sdk_1.BuiltInProviders.CLAUDE;
21
- if (toolCallService) {
22
- this.setToolCallService(toolCallService);
23
- }
24
- }
25
- getCliCommand() {
26
- return 'claude';
27
- }
28
- getDefaultArgs() {
29
- return ['--verbose', '-p'];
30
- }
31
- getExecuteArgs() {
32
- return ['--verbose', '-p'];
33
- }
34
- getNotInstalledMessage() {
35
- return 'Claude CLI is not installed. Please install it from https://claude.ai/download.';
36
- }
37
- async execute(prompt, options = {}) {
38
- if (this.toolCallService) {
39
- this.logger.log('🔧 ClaudeProvider: Using queryWithTools in execute mode');
40
- return this.queryWithTools(prompt, options);
41
- }
42
- this.logger.warn('⚠️ ClaudeProvider: ToolCallService not available, falling back to base execute');
43
- return super.execute(prompt, options);
44
- }
45
- parseProviderError(stderr, stdout) {
46
- const combinedOutput = stderr || stdout;
47
- if (combinedOutput.includes('Session limit reached')) {
48
- const resetMatch = combinedOutput.match(/resets (\d+(?::\d+)?(?:am|pm))/i);
49
- const resetTime = resetMatch ? resetMatch[1] : 'later today';
50
- return {
51
- error: true,
52
- message: `Claude Pro session limit reached. Your limit will reset at ${resetTime}. Please try again after the reset or use another AI agent (Gemini or Copilot) in the meantime.`,
53
- };
54
- }
55
- if (stderr && (stderr.includes('authentication required') || stderr.includes('Please run `claude login`'))) {
56
- return {
57
- error: true,
58
- message: 'Claude CLI authentication required. Please run `claude login` to authenticate.',
59
- };
60
- }
61
- if (stdout && stdout.trim().length > 0) {
62
- return { error: false, message: '' };
63
- }
64
- if (stderr && stderr.trim().length > 0) {
65
- const errorIndicators = [
66
- /^Error:/im,
67
- /^error:/im,
68
- /^Failed:/im,
69
- /^Unable to/im,
70
- /unknown option/i,
71
- /invalid option/i,
72
- /command not found/i,
73
- /no such file/i,
74
- /permission denied/i,
75
- /ECONNREFUSED/,
76
- /ETIMEDOUT/,
77
- /ENOTFOUND/,
78
- /EHOSTUNREACH/,
79
- /\bconnection refused\b/i,
80
- /\bnetwork error\b/i,
81
- /\brequest failed\b/i,
82
- ];
83
- const debugLogPatterns = [
84
- /follow-redirects options/,
85
- /spawn-rx/,
86
- /\[Function:/,
87
- /connectionListener/,
88
- /maxRedirects:/,
89
- /\{[\s\S]*protocol:.*\}/,
90
- ];
91
- const isDebugLog = debugLogPatterns.some(pattern => pattern.test(stderr));
92
- if (isDebugLog) {
93
- return { error: false, message: '' };
94
- }
95
- const hasError = errorIndicators.some(pattern => pattern.test(stderr));
96
- if (hasError) {
97
- const lines = stderr.split('\n');
98
- const firstLine = lines[0]?.trim() || stderr.trim();
99
- return { error: true, message: firstLine };
100
- }
101
- }
102
- return { error: false, message: '' };
103
- }
104
- buildPromptWithTools(prompt, tools) {
105
- if (!tools || tools.length === 0) {
106
- return prompt;
107
- }
108
- return prompt;
109
- }
110
- buildFollowUpPrompt(toolName, toolInput, toolResult) {
111
- const resultData = toolResult.success && toolResult.data ? toolResult.data : toolResult;
112
- return `The ${toolName} tool has been executed successfully.
113
-
114
- <tool_result>
115
- ${JSON.stringify(resultData, null, 2)}
116
- </tool_result>
117
-
118
- 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.`;
119
- }
120
- parseJsonlResponse(content) {
121
- const lines = content.split('\n').filter(line => line.trim());
122
- for (let i = lines.length - 1; i >= 0; i--) {
123
- try {
124
- const line = lines[i];
125
- if (!line)
126
- continue;
127
- const parsed = JSON.parse(line);
128
- if (parsed.type === 'result' && parsed.result) {
129
- this.logger.log('✅ Extracted final result from JSONL');
130
- return parsed.result;
131
- }
132
- }
133
- catch (e) {
134
- }
135
- }
136
- this.logger.warn('⚠️ Could not parse JSONL, returning original content');
137
- return content;
138
- }
139
- parseToolUse(content) {
140
- const xmlMatch = content.match(/<crew(?:code|x)_tool_call>\s*([\s\S]*?)\s*<\/crew(?:code|x)_tool_call>/);
141
- if (xmlMatch && xmlMatch[1]) {
142
- try {
143
- const jsonContent = xmlMatch[1].trim();
144
- const parsed = JSON.parse(jsonContent);
145
- if (parsed.type === 'tool_use' && parsed.name && parsed.input) {
146
- this.logger.log(`Tool use detected from XML: ${parsed.name} with input ${JSON.stringify(parsed.input)}`);
147
- return {
148
- isToolUse: true,
149
- toolName: parsed.name,
150
- toolInput: parsed.input,
151
- };
152
- }
153
- }
154
- catch (e) {
155
- }
156
- }
157
- const lines = content.split('\n').filter(line => line.trim());
158
- for (const line of lines) {
159
- try {
160
- const parsed = JSON.parse(line);
161
- if (parsed.type === 'result' && parsed.result) {
162
- const xmlMatch = parsed.result.match(/<crew(?:code|x)_tool_call>\s*([\s\S]*?)\s*<\/crew(?:code|x)_tool_call>/);
163
- if (xmlMatch && xmlMatch[1]) {
164
- const toolCallJson = JSON.parse(xmlMatch[1].trim());
165
- if (toolCallJson.type === 'tool_use' && toolCallJson.name && toolCallJson.input) {
166
- this.logger.log(`Tool use detected from result XML: ${toolCallJson.name}`);
167
- return {
168
- isToolUse: true,
169
- toolName: toolCallJson.name,
170
- toolInput: toolCallJson.input,
171
- };
172
- }
173
- }
174
- }
175
- if (parsed.type === 'assistant' && parsed.message?.content) {
176
- const content = parsed.message.content;
177
- if (Array.isArray(content)) {
178
- for (const item of content) {
179
- if (item.type === 'text' && item.text) {
180
- const xmlMatch = item.text.match(/<crew(?:code|x)_tool_call>\s*([\s\S]*?)\s*<\/crew(?:code|x)_tool_call>/);
181
- if (xmlMatch && xmlMatch[1]) {
182
- const toolCallJson = JSON.parse(xmlMatch[1].trim());
183
- if (toolCallJson.type === 'tool_use' && toolCallJson.name && toolCallJson.input) {
184
- this.logger.log(`Tool use detected from assistant message: ${toolCallJson.name}`);
185
- return {
186
- isToolUse: true,
187
- toolName: toolCallJson.name,
188
- toolInput: toolCallJson.input,
189
- };
190
- }
191
- }
192
- const jsonBlockMatch = item.text.match(/```json\s*([\s\S]*?)\s*```/);
193
- if (jsonBlockMatch && jsonBlockMatch[1]) {
194
- try {
195
- const toolCallJson = JSON.parse(jsonBlockMatch[1].trim());
196
- if (toolCallJson.type === 'tool_use' && toolCallJson.name && toolCallJson.input) {
197
- this.logger.log(`Tool use detected from JSON code block: ${toolCallJson.name}`);
198
- return {
199
- isToolUse: true,
200
- toolName: toolCallJson.name,
201
- toolInput: toolCallJson.input,
202
- };
203
- }
204
- }
205
- catch (e) {
206
- }
207
- }
208
- }
209
- }
210
- }
211
- }
212
- if (parsed.type === 'result' && parsed.result) {
213
- const jsonBlockMatch = parsed.result.match(/```json\s*([\s\S]*?)\s*```/);
214
- if (jsonBlockMatch && jsonBlockMatch[1]) {
215
- try {
216
- const toolCallJson = JSON.parse(jsonBlockMatch[1].trim());
217
- if (toolCallJson.type === 'tool_use' && toolCallJson.name && toolCallJson.input) {
218
- this.logger.log(`Tool use detected from result JSON block: ${toolCallJson.name}`);
219
- return {
220
- isToolUse: true,
221
- toolName: toolCallJson.name,
222
- toolInput: toolCallJson.input,
223
- };
224
- }
225
- }
226
- catch (e) {
227
- }
228
- }
229
- }
230
- }
231
- catch (e) {
232
- }
233
- }
234
- const jsonObjectPattern = /\{[\s\S]*?"type"\s*:\s*"tool_use"[\s\S]*?\}/g;
235
- const jsonMatches = content.match(jsonObjectPattern);
236
- if (jsonMatches) {
237
- for (const jsonMatch of jsonMatches) {
238
- try {
239
- const parsed = JSON.parse(jsonMatch);
240
- if (parsed.type === 'tool_use' && parsed.name && parsed.input !== undefined) {
241
- this.logger.log(`Tool use detected from plain text JSON: ${parsed.name}`);
242
- return {
243
- isToolUse: true,
244
- toolName: parsed.name,
245
- toolInput: parsed.input,
246
- };
247
- }
248
- }
249
- catch (e) {
250
- }
251
- }
252
- }
253
- try {
254
- const parsed = JSON.parse(content);
255
- if (parsed.type === 'tool_use' && parsed.name && parsed.input) {
256
- return {
257
- isToolUse: true,
258
- toolName: parsed.name,
259
- toolInput: parsed.input,
260
- };
261
- }
262
- if (parsed.content && Array.isArray(parsed.content)) {
263
- const toolUse = parsed.content.find((c) => c.type === 'tool_use');
264
- if (toolUse) {
265
- return {
266
- isToolUse: true,
267
- toolName: toolUse.name,
268
- toolInput: toolUse.input,
269
- };
270
- }
271
- }
272
- if (parsed.stop_reason === 'tool_use' && parsed.content) {
273
- const content = Array.isArray(parsed.content) ? parsed.content : [parsed.content];
274
- const toolUse = content.find((c) => c.type === 'tool_use');
275
- if (toolUse) {
276
- return {
277
- isToolUse: true,
278
- toolName: toolUse.name,
279
- toolInput: toolUse.input,
280
- };
281
- }
282
- }
283
- }
284
- catch (error) {
285
- }
286
- return { isToolUse: false };
287
- }
288
- async queryWithTools(prompt, options = {}, maxTurns = 5) {
289
- if (!this.toolCallService) {
290
- this.logger.warn('ToolCallService not available, falling back to regular query');
291
- return this.query(prompt, options);
292
- }
293
- let turn = 0;
294
- let currentPrompt = prompt;
295
- const tools = this.toolCallService.list();
296
- currentPrompt = this.buildPromptWithTools(currentPrompt, tools);
297
- while (turn < maxTurns) {
298
- this.logger.log(`Tool call turn ${turn + 1}/${maxTurns}`);
299
- if (options.taskId) {
300
- this['appendTaskLog'](options.taskId, 'INFO', `--- Tool Call Turn ${turn + 1}/${maxTurns} ---`);
301
- }
302
- const response = await this.query(currentPrompt, options);
303
- if (!response.success) {
304
- return response;
305
- }
306
- const toolUse = this.parseToolUse(response.content);
307
- this.logger.log(`Tool use check result: ${JSON.stringify(toolUse)}`);
308
- if (!toolUse.isToolUse) {
309
- this.logger.log('No tool use detected, returning response');
310
- if (options.taskId) {
311
- this['appendTaskLog'](options.taskId, 'INFO', `No tool use detected, returning final response`);
312
- }
313
- const parsedContent = this.parseJsonlResponse(response.content);
314
- return {
315
- ...response,
316
- content: parsedContent,
317
- };
318
- }
319
- this.logger.log(`Executing tool: ${toolUse.toolName}`);
320
- if (options.taskId) {
321
- this['appendTaskLog'](options.taskId, 'INFO', `🔧 Claude requested tool: ${toolUse.toolName}`);
322
- this['appendTaskLog'](options.taskId, 'INFO', `Tool input: ${JSON.stringify(toolUse.toolInput, null, 2)}`);
323
- }
324
- try {
325
- const toolResult = await this.toolCallService.execute(toolUse.toolName, toolUse.toolInput);
326
- this.logger.log(`Tool executed successfully: ${toolUse.toolName}`);
327
- if (options.taskId) {
328
- this['appendTaskLog'](options.taskId, 'INFO', `✅ Tool executed successfully`);
329
- this['appendTaskLog'](options.taskId, 'INFO', `Tool result preview: ${JSON.stringify(toolResult).substring(0, 500)}...`);
330
- }
331
- currentPrompt = this.buildFollowUpPrompt(toolUse.toolName, toolUse.toolInput, toolResult);
332
- turn++;
333
- }
334
- catch (error) {
335
- this.logger.error(`Tool execution failed: ${error.message}`);
336
- return {
337
- content: '',
338
- provider: this.name,
339
- command: response.command,
340
- success: false,
341
- error: `Tool execution failed: ${error.message}`,
342
- taskId: response.taskId,
343
- };
344
- }
345
- }
346
- this.logger.error(`Max tool call turns (${maxTurns}) exceeded`);
347
- return {
348
- content: '',
349
- provider: this.name,
350
- command: `${this.getCliCommand()} (max turns exceeded)`,
351
- success: false,
352
- error: `Maximum tool call iterations (${maxTurns}) exceeded`,
353
- taskId: options.taskId,
354
- };
20
+ super({
21
+ logger: (0, logger_adapter_1.createLoggerAdapter)('ClaudeProvider'),
22
+ toolCallHandler: toolCallService,
23
+ crewxVersion: version_1.CREWX_VERSION,
24
+ });
355
25
  }
356
26
  };
357
27
  exports.ClaudeProvider = ClaudeProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.provider.js","sourceRoot":"","sources":["../../src/providers/claude.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.provider.js","sourceRoot":"","sources":["../../src/providers/claude.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"}
@@ -1,17 +1,4 @@
1
- import { BaseAIProvider } from './base-ai.provider';
2
- export declare class CodexProvider extends BaseAIProvider {
3
- readonly name = "cli/codex";
1
+ import { CodexProvider as SdkCodexProvider } from '@sowonai/crewx-sdk';
2
+ export declare class CodexProvider extends SdkCodexProvider {
4
3
  constructor();
5
- protected getCliCommand(): string;
6
- protected getDefaultArgs(): string[];
7
- protected getExecuteArgs(): string[];
8
- protected getNotInstalledMessage(): string;
9
- protected getPromptInArgs(): boolean;
10
- protected shouldPipeContext(): boolean;
11
- parseProviderError(stderr: string, stdout: string): {
12
- error: boolean;
13
- message: string;
14
- };
15
- private extractAssistantMessage;
16
- protected filterToolUseFromResponse(content: string): string;
17
4
  }
@@ -11,84 +11,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CodexProvider = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
- const base_ai_provider_1 = require("./base-ai.provider");
15
- let CodexProvider = class CodexProvider extends base_ai_provider_1.BaseAIProvider {
14
+ const crewx_sdk_1 = require("@sowonai/crewx-sdk");
15
+ const version_1 = require("../version");
16
+ const logger_adapter_1 = require("./logger.adapter");
17
+ let CodexProvider = class CodexProvider extends crewx_sdk_1.CodexProvider {
16
18
  constructor() {
17
- super('CodexProvider');
18
- this.name = 'cli/codex';
19
- }
20
- getCliCommand() {
21
- return 'codex';
22
- }
23
- getDefaultArgs() {
24
- return ['exec', '--experimental-json'];
25
- }
26
- getExecuteArgs() {
27
- return ['exec', '-s', 'workspace-write', '--experimental-json'];
28
- }
29
- getNotInstalledMessage() {
30
- return 'Codex CLI is not installed. Please install it first.';
31
- }
32
- getPromptInArgs() {
33
- return true;
34
- }
35
- shouldPipeContext() {
36
- return false;
37
- }
38
- parseProviderError(stderr, stdout) {
39
- if (stderr && (stderr.includes('not logged in') || stderr.includes('authentication required'))) {
40
- return {
41
- error: true,
42
- message: 'Codex CLI authentication required. Please run `codex login` to authenticate.',
43
- };
44
- }
45
- if (stderr && stderr.includes('rate limit')) {
46
- return {
47
- error: true,
48
- message: 'Codex API rate limit reached. Please try again later.',
49
- };
50
- }
51
- if (stdout && stdout.trim().length > 0) {
52
- return { error: false, message: '' };
53
- }
54
- if (stderr && stderr.trim().length > 0) {
55
- return { error: true, message: stderr.split('\n')[0]?.trim() || 'Unknown error' };
56
- }
57
- return super.parseProviderError(stderr, stdout);
58
- }
59
- extractAssistantMessage(content) {
60
- const lines = content.split('\n').map(line => line.trim()).filter(Boolean);
61
- let assistantMessage = null;
62
- for (const line of lines) {
63
- try {
64
- const parsed = JSON.parse(line);
65
- if (parsed?.item?.item_type === 'assistant_message' &&
66
- typeof parsed.item.text === 'string') {
67
- assistantMessage = parsed.item.text.trim();
68
- }
69
- else if (parsed?.response?.output &&
70
- Array.isArray(parsed.response.output)) {
71
- const assistantEntries = parsed.response.output.filter((entry) => entry?.item_type === 'assistant_message');
72
- if (assistantEntries.length > 0) {
73
- const lastMessage = assistantEntries[assistantEntries.length - 1];
74
- if (lastMessage?.text) {
75
- assistantMessage = String(lastMessage.text).trim();
76
- }
77
- }
78
- }
79
- }
80
- catch {
81
- continue;
82
- }
83
- }
84
- return assistantMessage;
85
- }
86
- filterToolUseFromResponse(content) {
87
- const assistantMessage = this.extractAssistantMessage(content);
88
- if (assistantMessage) {
89
- return assistantMessage;
90
- }
91
- return super.filterToolUseFromResponse(content);
19
+ super({
20
+ logger: (0, logger_adapter_1.createLoggerAdapter)('CodexProvider'),
21
+ crewxVersion: version_1.CREWX_VERSION,
22
+ });
92
23
  }
93
24
  };
94
25
  exports.CodexProvider = CodexProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"codex.provider.js","sourceRoot":"","sources":["../../src/providers/codex.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.provider.js","sourceRoot":"","sources":["../../src/providers/codex.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kDAAuE;AACvE,wCAA2C;AAC3C,qDAAuD;AAGhD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,yBAAgB;IACjD;QACE,KAAK,CAAC;YACJ,MAAM,EAAE,IAAA,oCAAmB,EAAC,eAAe,CAAC;YAC5C,YAAY,EAAE,uBAAa;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAPY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;;GACA,aAAa,CAOzB"}
@@ -1,25 +1,5 @@
1
- import { BaseAIProvider } from './base-ai.provider';
2
- import { AIQueryOptions, AIResponse } from '@sowonai/crewx-sdk';
1
+ import { CopilotProvider as SdkCopilotProvider } from '@sowonai/crewx-sdk';
3
2
  import { ToolCallService } from '../services/tool-call.service';
4
- export declare class CopilotProvider extends BaseAIProvider {
5
- readonly name: "cli/copilot";
3
+ export declare class CopilotProvider extends SdkCopilotProvider {
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
- execute(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
13
- parseProviderError(stderr: string, stdout: string): {
14
- error: boolean;
15
- message: string;
16
- };
17
- private buildPromptWithTools;
18
- private buildFollowUpPrompt;
19
- protected parseToolUse(content: string): {
20
- isToolUse: boolean;
21
- toolName?: string;
22
- toolInput?: any;
23
- };
24
- queryWithTools(prompt: string, options?: AIQueryOptions, maxTurns?: number): Promise<AIResponse>;
25
5
  }