@crewx/cli 0.8.3 → 0.8.4-rc.0

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 (220) hide show
  1. package/README.md +33 -33
  2. package/bin/crewx +2 -2
  3. package/dist/ai-provider.service.d.ts +34 -0
  4. package/dist/ai-provider.service.js +311 -0
  5. package/dist/ai-provider.service.js.map +1 -0
  6. package/dist/ai.service.d.ts +17 -0
  7. package/dist/ai.service.js +51 -0
  8. package/dist/ai.service.js.map +1 -0
  9. package/dist/app.module.d.ts +5 -0
  10. package/dist/app.module.js +165 -0
  11. package/dist/app.module.js.map +1 -0
  12. package/dist/cli/agent.handler.d.ts +2 -0
  13. package/dist/cli/agent.handler.js +186 -0
  14. package/dist/cli/agent.handler.js.map +1 -0
  15. package/dist/cli/builtin.handler.d.ts +3 -0
  16. package/dist/cli/builtin.handler.js +110 -0
  17. package/dist/cli/builtin.handler.js.map +1 -0
  18. package/dist/cli/chat.handler.d.ts +20 -0
  19. package/dist/cli/chat.handler.js +446 -0
  20. package/dist/cli/chat.handler.js.map +1 -0
  21. package/dist/cli/cli.handler.d.ts +4 -0
  22. package/dist/cli/cli.handler.js +119 -0
  23. package/dist/cli/cli.handler.js.map +1 -0
  24. package/dist/cli/doctor.handler.d.ts +38 -0
  25. package/dist/cli/doctor.handler.js +495 -0
  26. package/dist/cli/doctor.handler.js.map +1 -0
  27. package/dist/cli/execute.handler.d.ts +2 -0
  28. package/dist/cli/execute.handler.js +321 -0
  29. package/dist/cli/execute.handler.js.map +1 -0
  30. package/dist/cli/help.handler.d.ts +2 -0
  31. package/dist/cli/help.handler.js +10 -0
  32. package/dist/cli/help.handler.js.map +1 -0
  33. package/dist/cli/init.handler.d.ts +26 -0
  34. package/dist/cli/init.handler.js +450 -0
  35. package/dist/cli/init.handler.js.map +1 -0
  36. package/dist/cli/log.handler.d.ts +2 -0
  37. package/dist/cli/log.handler.js +69 -0
  38. package/dist/cli/log.handler.js.map +1 -0
  39. package/dist/cli/mcp.handler.d.ts +3 -0
  40. package/dist/cli/mcp.handler.js +121 -0
  41. package/dist/cli/mcp.handler.js.map +1 -0
  42. package/dist/cli/query.handler.d.ts +2 -0
  43. package/dist/cli/query.handler.js +379 -0
  44. package/dist/cli/query.handler.js.map +1 -0
  45. package/dist/cli/skill.handler.d.ts +2 -0
  46. package/dist/cli/skill.handler.js +252 -0
  47. package/dist/cli/skill.handler.js.map +1 -0
  48. package/dist/cli/slack-files.handler.d.ts +2 -0
  49. package/dist/cli/slack-files.handler.js +291 -0
  50. package/dist/cli/slack-files.handler.js.map +1 -0
  51. package/dist/cli/template.handler.d.ts +2 -0
  52. package/dist/cli/template.handler.js +188 -0
  53. package/dist/cli/template.handler.js.map +1 -0
  54. package/dist/cli/templates.handler.d.ts +2 -0
  55. package/dist/cli/templates.handler.js +100 -0
  56. package/dist/cli/templates.handler.js.map +1 -0
  57. package/dist/cli-options.d.ts +39 -0
  58. package/dist/cli-options.js +355 -0
  59. package/dist/cli-options.js.map +1 -0
  60. package/dist/commands/agent.js +23 -23
  61. package/dist/commands/init.js +36 -28
  62. package/dist/config/timeout.config.d.ts +14 -0
  63. package/dist/config/timeout.config.js +34 -0
  64. package/dist/config/timeout.config.js.map +1 -0
  65. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  66. package/dist/conversation/base-conversation-history.provider.js +45 -0
  67. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  68. package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
  69. package/dist/conversation/cli-conversation-history.provider.js +111 -0
  70. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  71. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  72. package/dist/conversation/conversation-provider.factory.js +50 -0
  73. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  74. package/dist/conversation/index.d.ts +6 -0
  75. package/dist/conversation/index.js +27 -0
  76. package/dist/conversation/index.js.map +1 -0
  77. package/dist/conversation/slack-conversation-history.provider.d.ts +29 -0
  78. package/dist/conversation/slack-conversation-history.provider.js +302 -0
  79. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  80. package/dist/crewx.tool.d.ts +359 -0
  81. package/dist/crewx.tool.js +2501 -0
  82. package/dist/crewx.tool.js.map +1 -0
  83. package/dist/crewx.tool.spec.d.ts +1 -0
  84. package/dist/crewx.tool.spec.js +158 -0
  85. package/dist/crewx.tool.spec.js.map +1 -0
  86. package/dist/guards/bearer-auth.guard.d.ts +7 -0
  87. package/dist/guards/bearer-auth.guard.js +44 -0
  88. package/dist/guards/bearer-auth.guard.js.map +1 -0
  89. package/dist/health.controller.d.ts +6 -0
  90. package/dist/health.controller.js +32 -0
  91. package/dist/health.controller.js.map +1 -0
  92. package/dist/main.js +72 -72
  93. package/dist/main.js.map +1 -0
  94. package/dist/mcp.controller.d.ts +8 -0
  95. package/dist/mcp.controller.js +62 -0
  96. package/dist/mcp.controller.js.map +1 -0
  97. package/dist/package.json +3 -0
  98. package/dist/providers/dynamic-provider.factory.d.ts +15 -0
  99. package/dist/providers/dynamic-provider.factory.js +133 -0
  100. package/dist/providers/dynamic-provider.factory.js.map +1 -0
  101. package/dist/providers/logger.adapter.d.ts +6 -0
  102. package/dist/providers/logger.adapter.js +102 -0
  103. package/dist/providers/logger.adapter.js.map +1 -0
  104. package/dist/services/agent-loader.service.d.ts +35 -0
  105. package/dist/services/agent-loader.service.js +622 -0
  106. package/dist/services/agent-loader.service.js.map +1 -0
  107. package/dist/services/auth.service.d.ts +9 -0
  108. package/dist/services/auth.service.js +47 -0
  109. package/dist/services/auth.service.js.map +1 -0
  110. package/dist/services/config-validator.service.d.ts +29 -0
  111. package/dist/services/config-validator.service.js +483 -0
  112. package/dist/services/config-validator.service.js.map +1 -0
  113. package/dist/services/config.service.d.ts +45 -0
  114. package/dist/services/config.service.js +352 -0
  115. package/dist/services/config.service.js.map +1 -0
  116. package/dist/services/document-loader.service.d.ts +21 -0
  117. package/dist/services/document-loader.service.js +156 -0
  118. package/dist/services/document-loader.service.js.map +1 -0
  119. package/dist/services/help.service.d.ts +5 -0
  120. package/dist/services/help.service.js +139 -0
  121. package/dist/services/help.service.js.map +1 -0
  122. package/dist/services/intelligent-compression.service.d.ts +20 -0
  123. package/dist/services/intelligent-compression.service.js +179 -0
  124. package/dist/services/intelligent-compression.service.js.map +1 -0
  125. package/dist/services/mcp-client.service.d.ts +26 -0
  126. package/dist/services/mcp-client.service.js +81 -0
  127. package/dist/services/mcp-client.service.js.map +1 -0
  128. package/dist/services/parallel-processing.service.d.ts +108 -0
  129. package/dist/services/parallel-processing.service.js +333 -0
  130. package/dist/services/parallel-processing.service.js.map +1 -0
  131. package/dist/services/provider-bridge.service.d.ts +35 -0
  132. package/dist/services/provider-bridge.service.js +224 -0
  133. package/dist/services/provider-bridge.service.js.map +1 -0
  134. package/dist/services/remote-agent.service.d.ts +50 -0
  135. package/dist/services/remote-agent.service.js +171 -0
  136. package/dist/services/remote-agent.service.js.map +1 -0
  137. package/dist/services/result-formatter.service.d.ts +27 -0
  138. package/dist/services/result-formatter.service.js +126 -0
  139. package/dist/services/result-formatter.service.js.map +1 -0
  140. package/dist/services/skill-loader.service.d.ts +15 -0
  141. package/dist/services/skill-loader.service.js +278 -0
  142. package/dist/services/skill-loader.service.js.map +1 -0
  143. package/dist/services/skill.service.d.ts +67 -0
  144. package/dist/services/skill.service.js +670 -0
  145. package/dist/services/skill.service.js.map +1 -0
  146. package/dist/services/skill.service.spec.d.ts +1 -0
  147. package/dist/services/skill.service.spec.js +35 -0
  148. package/dist/services/skill.service.spec.js.map +1 -0
  149. package/dist/services/task-management.service.d.ts +65 -0
  150. package/dist/services/task-management.service.js +288 -0
  151. package/dist/services/task-management.service.js.map +1 -0
  152. package/dist/services/template.service.d.ts +61 -0
  153. package/dist/services/template.service.js +416 -0
  154. package/dist/services/template.service.js.map +1 -0
  155. package/dist/services/tool-call.service.d.ts +19 -0
  156. package/dist/services/tool-call.service.js +1061 -0
  157. package/dist/services/tool-call.service.js.map +1 -0
  158. package/dist/services/tracing.service.d.ts +200 -0
  159. package/dist/services/tracing.service.js +1290 -0
  160. package/dist/services/tracing.service.js.map +1 -0
  161. package/dist/slack/formatters/message.formatter.d.ts +32 -0
  162. package/dist/slack/formatters/message.formatter.js +352 -0
  163. package/dist/slack/formatters/message.formatter.js.map +1 -0
  164. package/dist/slack/services/slack-file-download.service.d.ts +58 -0
  165. package/dist/slack/services/slack-file-download.service.js +558 -0
  166. package/dist/slack/services/slack-file-download.service.js.map +1 -0
  167. package/dist/slack/slack-bot.d.ts +33 -0
  168. package/dist/slack/slack-bot.js +567 -0
  169. package/dist/slack/slack-bot.js.map +1 -0
  170. package/dist/stderr.logger.d.ts +8 -0
  171. package/dist/stderr.logger.js +26 -0
  172. package/dist/stderr.logger.js.map +1 -0
  173. package/dist/types/usage.types.d.ts +107 -0
  174. package/dist/types/usage.types.js +3 -0
  175. package/dist/types/usage.types.js.map +1 -0
  176. package/dist/utils/config-utils.d.ts +15 -0
  177. package/dist/utils/config-utils.js +69 -0
  178. package/dist/utils/config-utils.js.map +1 -0
  179. package/dist/utils/extract-text.d.ts +1 -0
  180. package/dist/utils/extract-text.js +15 -0
  181. package/dist/utils/extract-text.js.map +1 -0
  182. package/dist/utils/mcp-installer.d.ts +20 -0
  183. package/dist/utils/mcp-installer.js +199 -0
  184. package/dist/utils/mcp-installer.js.map +1 -0
  185. package/dist/utils/project-hash.d.ts +6 -0
  186. package/dist/utils/project-hash.js +70 -0
  187. package/dist/utils/project-hash.js.map +1 -0
  188. package/dist/utils/simple-security.d.ts +3 -0
  189. package/dist/utils/simple-security.js +20 -0
  190. package/dist/utils/simple-security.js.map +1 -0
  191. package/dist/utils/stdin-utils.d.ts +6 -0
  192. package/dist/utils/stdin-utils.js +109 -0
  193. package/dist/utils/stdin-utils.js.map +1 -0
  194. package/dist/utils/template-processor.d.ts +4 -0
  195. package/dist/utils/template-processor.js +266 -0
  196. package/dist/utils/template-processor.js.map +1 -0
  197. package/dist/utils/terminal-message-formatter.d.ts +23 -0
  198. package/dist/utils/terminal-message-formatter.js +136 -0
  199. package/dist/utils/terminal-message-formatter.js.map +1 -0
  200. package/dist/version.d.ts +1 -0
  201. package/dist/version.js +17 -0
  202. package/dist/version.js.map +1 -0
  203. package/dist/workspace.service.d.ts +44 -0
  204. package/dist/workspace.service.js +299 -0
  205. package/dist/workspace.service.js.map +1 -0
  206. package/package.json +18 -18
  207. package/dist/commands/task-db.d.ts +0 -33
  208. package/dist/commands/task-db.js +0 -107
  209. package/dist/examples/deny-secrets-plugin.d.ts +0 -22
  210. package/dist/examples/deny-secrets-plugin.js +0 -40
  211. package/dist/plugins/examples/echo-hook.d.ts +0 -24
  212. package/dist/plugins/examples/echo-hook.js +0 -60
  213. package/dist/plugins/examples/verify-echo-hook.d.ts +0 -8
  214. package/dist/plugins/examples/verify-echo-hook.js +0 -47
  215. package/dist/plugins/sqlite-tracing.d.ts +0 -11
  216. package/dist/plugins/sqlite-tracing.js +0 -19
  217. package/dist/repository/workspace.repository.d.ts +0 -26
  218. package/dist/repository/workspace.repository.js +0 -111
  219. package/dist/schema/tasks.d.ts +0 -7
  220. package/dist/schema/tasks.js +0 -48
package/README.md CHANGED
@@ -1,33 +1,33 @@
1
- # CrewX CLI
2
-
3
- > Build AI agent teams from your terminal.
4
-
5
- [![npm version](https://img.shields.io/npm/v/@crewx/cli.svg)](https://www.npmjs.com/package/@crewx/cli)
6
- [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
7
-
8
- ## Installation
9
-
10
- ```bash
11
- npm install -g @crewx/cli
12
- ```
13
-
14
- ## Quick Start
15
-
16
- ```bash
17
- crewx q "@assistant hello"
18
- crewx x "@coder implement feature X"
19
- crewx agent list
20
- ```
21
-
22
- Run `crewx --help` for the full list.
23
-
24
- ## What is CrewX?
25
-
26
- CrewX lets you define AI agents in a single `crewx.yaml` and call them from the terminal.
27
-
28
- This repository contains the **CrewX CLI** — a thin wrapper over the [`@crewx/sdk`](https://www.npmjs.com/package/@crewx/sdk) runtime (distributed via npm).
29
-
30
- ## License
31
-
32
- CLI source: [Apache-2.0](LICENSE).
33
- `@crewx/sdk` runtime: proprietary on npm.
1
+ # CrewX CLI
2
+
3
+ > Build AI agent teams from your terminal.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@crewx/cli.svg)](https://www.npmjs.com/package/@crewx/cli)
6
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ npm install -g @crewx/cli
12
+ ```
13
+
14
+ ## Quick Start
15
+
16
+ ```bash
17
+ crewx q "@assistant hello"
18
+ crewx x "@coder implement feature X"
19
+ crewx agent list
20
+ ```
21
+
22
+ Run `crewx --help` for the full list.
23
+
24
+ ## What is CrewX?
25
+
26
+ CrewX lets you define AI agents in a single `crewx.yaml` and call them from the terminal.
27
+
28
+ This repository contains the **CrewX CLI** — a thin wrapper over the [`@crewx/sdk`](https://www.npmjs.com/package/@crewx/sdk) runtime (distributed via npm).
29
+
30
+ ## License
31
+
32
+ CLI source: [Apache-2.0](LICENSE).
33
+ `@crewx/sdk` runtime: proprietary on npm.
package/bin/crewx CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
2
- require('../dist/main.js');
1
+ #!/usr/bin/env node
2
+ require('../dist/main.js');
@@ -0,0 +1,34 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { AIProvider, AIQueryOptions, AIResponse, type PluginProviderConfig, type RemoteProviderConfig } from '@sowonai/crewx-sdk';
3
+ import { DynamicProviderFactory } from './providers/dynamic-provider.factory';
4
+ import { ConfigService } from './services/config.service';
5
+ import { ToolCallService } from './services/tool-call.service';
6
+ import { TracingService } from './services/tracing.service';
7
+ export declare class AIProviderService implements OnModuleInit {
8
+ private readonly toolCallService;
9
+ private readonly dynamicProviderFactory;
10
+ private readonly configService;
11
+ private readonly tracingService?;
12
+ private readonly logger;
13
+ private readonly providers;
14
+ private availableProviders;
15
+ private readonly builtInProviderNames;
16
+ constructor(toolCallService: ToolCallService, dynamicProviderFactory: DynamicProviderFactory, configService: ConfigService, tracingService?: TracingService | undefined);
17
+ onModuleInit(): Promise<void>;
18
+ private createBuiltInProviders;
19
+ private loadPluginProviders;
20
+ private loadAPIProviders;
21
+ reloadPluginProviders(): Promise<void>;
22
+ private registerProvider;
23
+ initializeProviders(): Promise<void>;
24
+ queryAI(prompt: string, providerName?: string, options?: AIQueryOptions): Promise<AIResponse>;
25
+ executeAI(prompt: string, providerName: string, options?: AIQueryOptions): Promise<AIResponse>;
26
+ getAvailableProviders(): string[];
27
+ checkAvailableProviders(): Promise<string[]>;
28
+ getProvider(name: string): AIProvider | undefined;
29
+ validateCLIInstallation(): Promise<{
30
+ [key: string]: boolean;
31
+ }>;
32
+ getPluginProviders(): PluginProviderConfig[];
33
+ getRemoteProviders(): RemoteProviderConfig[];
34
+ }
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var AIProviderService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AIProviderService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const crewx_sdk_1 = require("@sowonai/crewx-sdk");
19
+ const dynamic_provider_factory_1 = require("./providers/dynamic-provider.factory");
20
+ const config_service_1 = require("./services/config.service");
21
+ const tool_call_service_1 = require("./services/tool-call.service");
22
+ const logger_adapter_1 = require("./providers/logger.adapter");
23
+ const version_1 = require("./version");
24
+ const tracing_service_1 = require("./services/tracing.service");
25
+ let AIProviderService = AIProviderService_1 = class AIProviderService {
26
+ constructor(toolCallService, dynamicProviderFactory, configService, tracingService) {
27
+ this.toolCallService = toolCallService;
28
+ this.dynamicProviderFactory = dynamicProviderFactory;
29
+ this.configService = configService;
30
+ this.tracingService = tracingService;
31
+ this.logger = new common_1.Logger(AIProviderService_1.name);
32
+ this.providers = new Map();
33
+ this.availableProviders = [];
34
+ this.builtInProviderNames = new Set([
35
+ crewx_sdk_1.BuiltInProviders.CLAUDE,
36
+ crewx_sdk_1.BuiltInProviders.GEMINI,
37
+ crewx_sdk_1.BuiltInProviders.COPILOT,
38
+ crewx_sdk_1.BuiltInProviders.CODEX,
39
+ ]);
40
+ }
41
+ async onModuleInit() {
42
+ for (const provider of this.createBuiltInProviders()) {
43
+ this.registerProvider(provider);
44
+ }
45
+ await this.loadPluginProviders();
46
+ await this.loadAPIProviders();
47
+ }
48
+ createBuiltInProviders() {
49
+ const taskLogHandler = (0, logger_adapter_1.createTaskLogHandler)(this.tracingService);
50
+ return [
51
+ new crewx_sdk_1.ClaudeProvider({
52
+ logger: (0, logger_adapter_1.createLoggerAdapter)('ClaudeProvider'),
53
+ toolCallHandler: this.toolCallService,
54
+ crewxVersion: version_1.CREWX_VERSION,
55
+ taskLogHandler,
56
+ }),
57
+ new crewx_sdk_1.GeminiProvider({
58
+ logger: (0, logger_adapter_1.createLoggerAdapter)('GeminiProvider'),
59
+ toolCallHandler: this.toolCallService,
60
+ crewxVersion: version_1.CREWX_VERSION,
61
+ taskLogHandler,
62
+ }),
63
+ new crewx_sdk_1.CopilotProvider({
64
+ logger: (0, logger_adapter_1.createLoggerAdapter)('CopilotProvider'),
65
+ toolCallHandler: this.toolCallService,
66
+ crewxVersion: version_1.CREWX_VERSION,
67
+ taskLogHandler,
68
+ }),
69
+ new crewx_sdk_1.CodexProvider({
70
+ logger: (0, logger_adapter_1.createLoggerAdapter)('CodexProvider'),
71
+ toolCallHandler: this.toolCallService,
72
+ crewxVersion: version_1.CREWX_VERSION,
73
+ taskLogHandler,
74
+ }),
75
+ ];
76
+ }
77
+ async loadPluginProviders() {
78
+ try {
79
+ const dynamicConfigs = this.configService.getDynamicProviders();
80
+ if (!dynamicConfigs || dynamicConfigs.length === 0) {
81
+ this.logger.log('No dynamic providers defined in config');
82
+ return;
83
+ }
84
+ for (const providerConfig of dynamicConfigs) {
85
+ try {
86
+ if (!this.dynamicProviderFactory.validateConfig(providerConfig)) {
87
+ this.logger.warn(`Invalid dynamic provider config: ${providerConfig.id}`);
88
+ this.logger.debug(`Config dump: ${JSON.stringify(providerConfig, null, 2)}`);
89
+ continue;
90
+ }
91
+ const provider = this.dynamicProviderFactory.createProvider(providerConfig);
92
+ this.registerProvider(provider);
93
+ this.logger.log(`✅ Registered ${providerConfig.type} provider: ${providerConfig.id}`);
94
+ }
95
+ catch (error) {
96
+ this.logger.error(`Failed to load dynamic provider '${providerConfig.id || 'unknown'}': ${error.message}`, error.stack);
97
+ }
98
+ }
99
+ }
100
+ catch (error) {
101
+ this.logger.error('Failed to load dynamic providers:', error);
102
+ }
103
+ }
104
+ async loadAPIProviders() {
105
+ try {
106
+ const apiProviderConfigs = this.configService.getAllAPIProviderConfigs();
107
+ if (!apiProviderConfigs || apiProviderConfigs.size === 0) {
108
+ this.logger.log('No API providers defined in config');
109
+ return;
110
+ }
111
+ for (const [agentId, apiConfig] of apiProviderConfigs) {
112
+ try {
113
+ const normalizedConfig = (0, crewx_sdk_1.normalizeAPIProviderConfig)(apiConfig);
114
+ const taskLogHandler = (0, logger_adapter_1.createTaskLogHandler)(this.tracingService);
115
+ const { MastraAPIProvider } = require('@sowonai/crewx-sdk/api');
116
+ const provider = new MastraAPIProvider(normalizedConfig.config);
117
+ if (taskLogHandler) {
118
+ provider.setTaskLogHandler(taskLogHandler);
119
+ }
120
+ const agentConfig = this.configService.getAgentConfig(agentId);
121
+ const allowedToolNames = new Set();
122
+ this.logger.debug(`[Tool Loading] normalizedConfig.permissionsByMode: ${JSON.stringify(normalizedConfig.permissionsByMode, null, 2)}`);
123
+ for (const permissions of Object.values(normalizedConfig.permissionsByMode)) {
124
+ for (const toolName of permissions.tools) {
125
+ allowedToolNames.add(toolName);
126
+ }
127
+ }
128
+ this.logger.debug(`[Tool Loading] allowedToolNames: ${Array.from(allowedToolNames).join(', ')}`);
129
+ if (allowedToolNames.size > 0) {
130
+ const tools = [];
131
+ const { readFileTool, writeFileTool, replaceTool, lsTool, treeTool, grepTool, findTool, globTool, runShellCommandTool, } = require('@sowonai/crewx-sdk/tools');
132
+ const builtInTools = {
133
+ read_file: readFileTool,
134
+ write_file: writeFileTool,
135
+ replace: replaceTool,
136
+ ls: lsTool,
137
+ tree: treeTool,
138
+ grep: grepTool,
139
+ find: findTool,
140
+ glob: globTool,
141
+ run_shell_command: runShellCommandTool,
142
+ };
143
+ for (const toolName of allowedToolNames) {
144
+ const tool = builtInTools[toolName];
145
+ if (tool) {
146
+ tools.push(tool);
147
+ this.logger.log(`✅ Loaded tool: ${toolName} for agent ${agentId}`);
148
+ }
149
+ else {
150
+ this.logger.warn(`⚠️ Unknown tool: ${toolName} for agent ${agentId}`);
151
+ this.logger.debug(`Available tools: ${Object.keys(builtInTools).join(', ')}`);
152
+ }
153
+ }
154
+ const context = {
155
+ agent: {
156
+ id: agentId,
157
+ provider: apiConfig.provider,
158
+ model: apiConfig.model,
159
+ temperature: apiConfig.temperature,
160
+ maxTokens: apiConfig.maxTokens,
161
+ },
162
+ env: this.configService.getEnvironmentVariables(),
163
+ mode: 'query',
164
+ platform: 'cli',
165
+ };
166
+ provider.setTools(tools, context);
167
+ this.logger.log(`✅ Configured ${tools.length} tool(s) for agent ${agentId}`);
168
+ }
169
+ const wrappedProvider = {
170
+ name: agentId,
171
+ isAvailable: provider.isAvailable.bind(provider),
172
+ query: provider.query.bind(provider),
173
+ execute: provider.execute.bind(provider),
174
+ getToolPath: provider.getToolPath?.bind(provider),
175
+ };
176
+ this.registerProvider(wrappedProvider);
177
+ this.logger.log(`✅ Registered API provider for agent: ${agentId} (${apiConfig.provider}/${apiConfig.model})`);
178
+ }
179
+ catch (error) {
180
+ this.logger.error(`Failed to load API provider for agent '${agentId}': ${error.message}`, error.stack);
181
+ }
182
+ }
183
+ }
184
+ catch (error) {
185
+ this.logger.error('Failed to load API providers:', error);
186
+ }
187
+ }
188
+ async reloadPluginProviders() {
189
+ for (const [name] of this.providers) {
190
+ if (!this.builtInProviderNames.has(name)) {
191
+ this.providers.delete(name);
192
+ }
193
+ }
194
+ await this.loadPluginProviders();
195
+ await this.loadAPIProviders();
196
+ }
197
+ registerProvider(provider) {
198
+ this.providers.set(provider.name, provider);
199
+ this.logger.log(`Registered AI provider: ${provider.name}`);
200
+ }
201
+ async initializeProviders() {
202
+ this.logger.log('Initializing AI providers...');
203
+ this.availableProviders = [];
204
+ const checks = Array.from(this.providers.entries()).map(async ([name, provider]) => {
205
+ try {
206
+ const isAvailable = await provider.isAvailable();
207
+ if (isAvailable) {
208
+ this.availableProviders.push(name);
209
+ this.logger.log(`✅ ${name} provider is available`);
210
+ }
211
+ else {
212
+ this.logger.warn(`❌ ${name} provider is not available`);
213
+ }
214
+ return { name, isAvailable };
215
+ }
216
+ catch (error) {
217
+ this.logger.error(`Error checking ${name} provider:`, error);
218
+ return { name, isAvailable: false };
219
+ }
220
+ });
221
+ await Promise.all(checks);
222
+ this.logger.log(`Available providers: ${this.availableProviders.join(', ')}`);
223
+ }
224
+ async queryAI(prompt, providerName = crewx_sdk_1.BuiltInProviders.CLAUDE, options = {}) {
225
+ const provider = this.providers.get(providerName);
226
+ if (!provider) {
227
+ throw new crewx_sdk_1.ProviderNotAvailableError(providerName);
228
+ }
229
+ const isAvailable = await provider.isAvailable();
230
+ if (!isAvailable) {
231
+ throw new crewx_sdk_1.ProviderNotAvailableError(providerName);
232
+ }
233
+ try {
234
+ if (typeof provider.queryWithTools === 'function') {
235
+ this.logger.log(`Using queryWithTools for ${providerName} in query mode`);
236
+ return await provider.queryWithTools(prompt, options);
237
+ }
238
+ return await provider.query(prompt, options);
239
+ }
240
+ catch (error) {
241
+ this.logger.error(`Error querying ${providerName}:`, error);
242
+ return {
243
+ content: '',
244
+ provider: providerName,
245
+ command: `${providerName} query`,
246
+ success: false,
247
+ error: error.message || 'Unknown error occurred',
248
+ };
249
+ }
250
+ }
251
+ async executeAI(prompt, providerName, options = {}) {
252
+ const provider = this.providers.get(providerName);
253
+ if (!provider) {
254
+ throw new crewx_sdk_1.ProviderNotAvailableError(providerName);
255
+ }
256
+ const isAvailable = await provider.isAvailable();
257
+ if (!isAvailable) {
258
+ throw new crewx_sdk_1.ProviderNotAvailableError(providerName);
259
+ }
260
+ try {
261
+ if (typeof provider.queryWithTools === 'function') {
262
+ this.logger.log(`Using queryWithTools for ${providerName} in execute mode`);
263
+ return await provider.queryWithTools(prompt, options);
264
+ }
265
+ return await provider.execute(prompt, options);
266
+ }
267
+ catch (error) {
268
+ this.logger.error(`Error executing ${providerName}:`, error);
269
+ return {
270
+ content: '',
271
+ provider: providerName,
272
+ command: `${providerName} execute`,
273
+ success: false,
274
+ error: error.message || 'Unknown error occurred',
275
+ };
276
+ }
277
+ }
278
+ getAvailableProviders() {
279
+ return Array.from(this.providers.keys());
280
+ }
281
+ async checkAvailableProviders() {
282
+ await this.initializeProviders();
283
+ return this.getAvailableProviders();
284
+ }
285
+ getProvider(name) {
286
+ return this.providers.get(name);
287
+ }
288
+ async validateCLIInstallation() {
289
+ const installation = {};
290
+ for (const [name, provider] of this.providers) {
291
+ installation[name] = await provider.isAvailable();
292
+ }
293
+ return installation;
294
+ }
295
+ getPluginProviders() {
296
+ return this.configService.getPluginProviders();
297
+ }
298
+ getRemoteProviders() {
299
+ return this.configService.getRemoteProviders();
300
+ }
301
+ };
302
+ exports.AIProviderService = AIProviderService;
303
+ exports.AIProviderService = AIProviderService = AIProviderService_1 = __decorate([
304
+ (0, common_1.Injectable)(),
305
+ __param(3, (0, common_1.Optional)()),
306
+ __metadata("design:paramtypes", [tool_call_service_1.ToolCallService,
307
+ dynamic_provider_factory_1.DynamicProviderFactory,
308
+ config_service_1.ConfigService,
309
+ tracing_service_1.TracingService])
310
+ ], AIProviderService);
311
+ //# sourceMappingURL=ai-provider.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-provider.service.js","sourceRoot":"","sources":["../src/ai-provider.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type AIResponse, type AIQueryOptions } from '@sowonai/crewx-sdk';
2
+ import { AIProviderService } from './ai-provider.service';
3
+ export type { AIResponse, AIQueryOptions } from '@sowonai/crewx-sdk';
4
+ export declare class AIService {
5
+ private readonly aiProviderService;
6
+ private readonly logger;
7
+ constructor(aiProviderService: AIProviderService);
8
+ queryAI(prompt: string, provider?: string, options?: AIQueryOptions): Promise<AIResponse>;
9
+ executeAI(prompt: string, provider?: string, options?: AIQueryOptions): Promise<AIResponse>;
10
+ executeGemini(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
11
+ checkAvailableProviders(): Promise<string[]>;
12
+ validateCLIInstallation(): Promise<{
13
+ claude: boolean;
14
+ gemini: boolean;
15
+ copilot: boolean;
16
+ }>;
17
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var AIService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.AIService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const crewx_sdk_1 = require("@sowonai/crewx-sdk");
16
+ const ai_provider_service_1 = require("./ai-provider.service");
17
+ let AIService = AIService_1 = class AIService {
18
+ constructor(aiProviderService) {
19
+ this.aiProviderService = aiProviderService;
20
+ this.logger = new common_1.Logger(AIService_1.name);
21
+ }
22
+ async queryAI(prompt, provider = crewx_sdk_1.BuiltInProviders.CLAUDE, options = {}) {
23
+ this.logger.debug(`Querying provider ${provider}`);
24
+ return this.aiProviderService.queryAI(prompt, provider, options);
25
+ }
26
+ async executeAI(prompt, provider = crewx_sdk_1.BuiltInProviders.CLAUDE, options = {}) {
27
+ this.logger.debug(`Executing provider ${provider}`);
28
+ return this.aiProviderService.executeAI(prompt, provider, options);
29
+ }
30
+ async executeGemini(prompt, options = {}) {
31
+ return this.executeAI(prompt, crewx_sdk_1.BuiltInProviders.GEMINI, options);
32
+ }
33
+ async checkAvailableProviders() {
34
+ return this.aiProviderService.checkAvailableProviders();
35
+ }
36
+ async validateCLIInstallation() {
37
+ await this.aiProviderService.initializeProviders();
38
+ const installation = await this.aiProviderService.validateCLIInstallation();
39
+ return {
40
+ claude: installation[crewx_sdk_1.BuiltInProviders.CLAUDE] ?? false,
41
+ gemini: installation[crewx_sdk_1.BuiltInProviders.GEMINI] ?? false,
42
+ copilot: installation[crewx_sdk_1.BuiltInProviders.COPILOT] ?? false,
43
+ };
44
+ }
45
+ };
46
+ exports.AIService = AIService;
47
+ exports.AIService = AIService = AIService_1 = __decorate([
48
+ (0, common_1.Injectable)(),
49
+ __metadata("design:paramtypes", [ai_provider_service_1.AIProviderService])
50
+ ], AIService);
51
+ //# sourceMappingURL=ai.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.service.js","sourceRoot":"","sources":["../src/ai.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,kDAI4B;AAC5B,+DAA0D;AAKnD,IAAM,SAAS,iBAAf,MAAM,SAAS;IAGpB,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAFhD,WAAM,GAAG,IAAI,eAAM,CAAC,WAAS,CAAC,IAAI,CAAC,CAAC;IAEe,CAAC;IAErE,KAAK,CAAC,OAAO,CACX,MAAc,EACd,WAAmB,4BAAgB,CAAC,MAAM,EAC1C,UAA0B,EAAE;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAc,EACd,WAAmB,4BAAgB,CAAC,MAAM,EAC1C,UAA0B,EAAE;QAE5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,4BAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;QACnD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;QAE5E,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,4BAAgB,CAAC,MAAM,CAAC,IAAI,KAAK;YACtD,MAAM,EAAE,YAAY,CAAC,4BAAgB,CAAC,MAAM,CAAC,IAAI,KAAK;YACtD,OAAO,EAAE,YAAY,CAAC,4BAAgB,CAAC,OAAO,CAAC,IAAI,KAAK;SACzD,CAAC;IACJ,CAAC;CACF,CAAA;AA5CY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAIqC,uCAAiB;GAHtD,SAAS,CA4CrB"}
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { CliOptions } from './cli-options';
3
+ export declare class AppModule {
4
+ static forRoot(options: CliOptions): DynamicModule;
5
+ }