@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.
- package/README.md +38 -6
- package/dist/cli/mcp.handler.js.map +1 -1
- package/dist/providers/base-ai.provider.d.ts +1 -50
- package/dist/providers/base-ai.provider.js +2 -620
- package/dist/providers/base-ai.provider.js.map +1 -1
- package/dist/providers/claude.provider.d.ts +2 -22
- package/dist/providers/claude.provider.js +8 -338
- package/dist/providers/claude.provider.js.map +1 -1
- package/dist/providers/codex.provider.d.ts +2 -15
- package/dist/providers/codex.provider.js +8 -77
- package/dist/providers/codex.provider.js.map +1 -1
- package/dist/providers/copilot.provider.d.ts +2 -22
- package/dist/providers/copilot.provider.js +8 -242
- package/dist/providers/copilot.provider.js.map +1 -1
- package/dist/providers/gemini.provider.d.ts +2 -19
- package/dist/providers/gemini.provider.js +8 -123
- package/dist/providers/gemini.provider.js.map +1 -1
- package/dist/providers/logger.adapter.d.ts +4 -0
- package/dist/providers/logger.adapter.js +56 -0
- package/dist/providers/logger.adapter.js.map +1 -0
- package/dist/services/parallel-processing.service.d.ts +15 -17
- package/dist/services/parallel-processing.service.js +227 -196
- package/dist/services/parallel-processing.service.js.map +1 -1
- package/dist/services/remote-agent.service.d.ts +3 -6
- package/dist/services/remote-agent.service.js +41 -95
- package/dist/services/remote-agent.service.js.map +1 -1
- package/dist/services/tool-call.service.d.ts +2 -36
- package/dist/services/tool-call.service.js.map +1 -1
- package/dist/slack/formatters/message.formatter.d.ts +4 -2
- package/dist/slack/formatters/message.formatter.js +32 -2
- package/dist/slack/formatters/message.formatter.js.map +1 -1
- package/dist/slack/slack-bot.js +1 -2
- package/dist/slack/slack-bot.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -322,25 +322,57 @@ packages/cli/
|
|
|
322
322
|
│ │ ├── execute.handler.ts
|
|
323
323
|
│ │ ├── chat.handler.ts
|
|
324
324
|
│ │ └── ...
|
|
325
|
-
│ ├── providers/ # AI provider implementations
|
|
326
|
-
│ │ ├── claude.provider.ts
|
|
327
|
-
│ │ ├── gemini.provider.ts
|
|
328
|
-
│ │ ├── copilot.provider.ts
|
|
329
|
-
│ │ └── codex.provider.ts
|
|
325
|
+
│ ├── providers/ # AI provider implementations (NestJS wrappers)
|
|
326
|
+
│ │ ├── claude.provider.ts # Extends SDK ClaudeProvider
|
|
327
|
+
│ │ ├── gemini.provider.ts # Extends SDK GeminiProvider
|
|
328
|
+
│ │ ├── copilot.provider.ts # Extends SDK CopilotProvider
|
|
329
|
+
│ │ └── codex.provider.ts # Extends SDK CodexProvider
|
|
330
330
|
│ ├── services/ # Business logic
|
|
331
331
|
│ │ ├── ai.service.ts
|
|
332
332
|
│ │ ├── ai-provider.service.ts
|
|
333
|
-
│ │ ├──
|
|
333
|
+
│ │ ├── remote-agent.service.ts # Uses SDK RemoteAgentManager
|
|
334
334
|
│ │ └── ...
|
|
335
335
|
│ ├── slack/ # Slack integration
|
|
336
336
|
│ │ ├── slack-bot.ts
|
|
337
337
|
│ │ └── formatters/
|
|
338
|
+
│ │ └── message.formatter.ts # Extends SDK BaseMessageFormatter
|
|
338
339
|
│ ├── conversation/ # Conversation management
|
|
339
340
|
│ ├── guards/ # Security
|
|
340
341
|
│ └── utils/ # Utilities
|
|
341
342
|
└── tests/ # Tests
|
|
342
343
|
```
|
|
343
344
|
|
|
345
|
+
### SDK Integration (WBS-9)
|
|
346
|
+
|
|
347
|
+
The CLI uses SDK components as a foundation, adding NestJS integration and platform-specific features:
|
|
348
|
+
|
|
349
|
+
#### Message Formatting
|
|
350
|
+
- **SDK**: `BaseMessageFormatter` provides core formatting logic
|
|
351
|
+
- **CLI**: `SlackMessageFormatter` extends SDK base with Slack-specific features (emoji, blocks, markdown)
|
|
352
|
+
|
|
353
|
+
#### AI Providers
|
|
354
|
+
- **SDK**: `BaseAIProvider`, `ClaudeProvider`, `GeminiProvider`, `CopilotProvider`, `CodexProvider`
|
|
355
|
+
- **CLI**: NestJS `@Injectable()` wrappers that:
|
|
356
|
+
- Inject NestJS logger via `LoggerAdapter`
|
|
357
|
+
- Integrate with `AIService` and `ConfigService`
|
|
358
|
+
- Add platform-specific tool execution
|
|
359
|
+
|
|
360
|
+
#### Remote Agents
|
|
361
|
+
- **SDK**: `RemoteAgentManager` handles remote communication
|
|
362
|
+
- **CLI**: `RemoteAgentService` wraps SDK manager with:
|
|
363
|
+
- NestJS dependency injection
|
|
364
|
+
- Agent configuration loading
|
|
365
|
+
- Tool name mapping
|
|
366
|
+
- MCP protocol integration
|
|
367
|
+
|
|
368
|
+
#### Benefits
|
|
369
|
+
1. **Reusable Core**: SDK components work in any Node.js environment
|
|
370
|
+
2. **Clean Separation**: Platform logic (NestJS, Slack) stays in CLI
|
|
371
|
+
3. **Testability**: SDK tests verify core logic, CLI tests verify integration
|
|
372
|
+
4. **Extensibility**: Custom integrations can use SDK directly
|
|
373
|
+
|
|
374
|
+
For migration details, see [WBS-9 Integration Guide](../../docs/wbs-9-phase1-5-integration.md).
|
|
375
|
+
|
|
344
376
|
## Development
|
|
345
377
|
|
|
346
378
|
### Setup
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.handler.js","sourceRoot":"","sources":["../../src/cli/mcp.handler.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"mcp.handler.js","sourceRoot":"","sources":["../../src/cli/mcp.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { AIProvider, AIQueryOptions, AIResponse } from '@sowonai/crewx-sdk';
|
|
3
|
-
import { ToolCallService } from '../services/tool-call.service';
|
|
4
|
-
export declare abstract class BaseAIProvider implements AIProvider {
|
|
5
|
-
abstract readonly name: string;
|
|
6
|
-
protected readonly logger: Logger;
|
|
7
|
-
protected toolCallService?: ToolCallService;
|
|
8
|
-
private readonly logsDir;
|
|
9
|
-
private cachedPath;
|
|
10
|
-
protected readonly timeoutConfig: import("@sowonai/crewx-sdk").TimeoutConfig;
|
|
11
|
-
constructor(loggerContext: string);
|
|
12
|
-
protected abstract getCliCommand(): string;
|
|
13
|
-
protected abstract getDefaultArgs(): string[];
|
|
14
|
-
protected abstract getExecuteArgs(): string[];
|
|
15
|
-
protected abstract getNotInstalledMessage(): string;
|
|
16
|
-
protected getPromptInArgs(): boolean;
|
|
17
|
-
protected getDefaultQueryTimeout(): number;
|
|
18
|
-
protected getDefaultExecuteTimeout(): number;
|
|
19
|
-
protected getDefaultModel(): string | null;
|
|
20
|
-
protected getEnv(): Record<string, string>;
|
|
21
|
-
protected substituteModelPlaceholders(args: string[], model: string): string[];
|
|
22
|
-
protected setToolCallService(toolCallService: ToolCallService): void;
|
|
23
|
-
protected parseToolUse(content: string): {
|
|
24
|
-
isToolUse: boolean;
|
|
25
|
-
toolName?: string;
|
|
26
|
-
toolInput?: any;
|
|
27
|
-
};
|
|
28
|
-
protected parseToolUseProviderSpecific(parsed: any): {
|
|
29
|
-
isToolUse: boolean;
|
|
30
|
-
toolName?: string;
|
|
31
|
-
toolInput?: any;
|
|
32
|
-
};
|
|
33
|
-
protected filterToolUseFromResponse(content: string): string;
|
|
34
|
-
parseProviderError(stderr: string, stdout: string): {
|
|
35
|
-
error: boolean;
|
|
36
|
-
message: string;
|
|
37
|
-
};
|
|
38
|
-
getToolPath(): Promise<string | null>;
|
|
39
|
-
protected wrapUserQueryWithSecurity(userQuery: string, securityKey: string): string;
|
|
40
|
-
protected extractUserQuery(wrappedQuery: string, securityKey: string): string;
|
|
41
|
-
isAvailable(): Promise<boolean>;
|
|
42
|
-
private createTaskLogFile;
|
|
43
|
-
private appendTaskLog;
|
|
44
|
-
query(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
|
|
45
|
-
execute(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
|
|
46
|
-
protected shouldPipeContext(_options?: AIQueryOptions): boolean;
|
|
47
|
-
private buildPipedContext;
|
|
48
|
-
protected isStructuredPayload(value: string): boolean;
|
|
49
|
-
protected createStructuredPayload(prompt: string, context: string | null, options?: AIQueryOptions): string;
|
|
50
|
-
}
|
|
1
|
+
export { BaseAIProvider } from '@sowonai/crewx-sdk';
|