@crewx/cli 0.8.3-rc.9 → 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 (222) 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/commands/resolve-prompt.d.ts +4 -4
  63. package/dist/commands/resolve-prompt.js +5 -5
  64. package/dist/config/timeout.config.d.ts +14 -0
  65. package/dist/config/timeout.config.js +34 -0
  66. package/dist/config/timeout.config.js.map +1 -0
  67. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  68. package/dist/conversation/base-conversation-history.provider.js +45 -0
  69. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  70. package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
  71. package/dist/conversation/cli-conversation-history.provider.js +111 -0
  72. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  73. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  74. package/dist/conversation/conversation-provider.factory.js +50 -0
  75. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  76. package/dist/conversation/index.d.ts +6 -0
  77. package/dist/conversation/index.js +27 -0
  78. package/dist/conversation/index.js.map +1 -0
  79. package/dist/conversation/slack-conversation-history.provider.d.ts +29 -0
  80. package/dist/conversation/slack-conversation-history.provider.js +302 -0
  81. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  82. package/dist/crewx.tool.d.ts +359 -0
  83. package/dist/crewx.tool.js +2501 -0
  84. package/dist/crewx.tool.js.map +1 -0
  85. package/dist/crewx.tool.spec.d.ts +1 -0
  86. package/dist/crewx.tool.spec.js +158 -0
  87. package/dist/crewx.tool.spec.js.map +1 -0
  88. package/dist/guards/bearer-auth.guard.d.ts +7 -0
  89. package/dist/guards/bearer-auth.guard.js +44 -0
  90. package/dist/guards/bearer-auth.guard.js.map +1 -0
  91. package/dist/health.controller.d.ts +6 -0
  92. package/dist/health.controller.js +32 -0
  93. package/dist/health.controller.js.map +1 -0
  94. package/dist/main.js +72 -71
  95. package/dist/main.js.map +1 -0
  96. package/dist/mcp.controller.d.ts +8 -0
  97. package/dist/mcp.controller.js +62 -0
  98. package/dist/mcp.controller.js.map +1 -0
  99. package/dist/package.json +3 -0
  100. package/dist/providers/dynamic-provider.factory.d.ts +15 -0
  101. package/dist/providers/dynamic-provider.factory.js +133 -0
  102. package/dist/providers/dynamic-provider.factory.js.map +1 -0
  103. package/dist/providers/logger.adapter.d.ts +6 -0
  104. package/dist/providers/logger.adapter.js +102 -0
  105. package/dist/providers/logger.adapter.js.map +1 -0
  106. package/dist/services/agent-loader.service.d.ts +35 -0
  107. package/dist/services/agent-loader.service.js +622 -0
  108. package/dist/services/agent-loader.service.js.map +1 -0
  109. package/dist/services/auth.service.d.ts +9 -0
  110. package/dist/services/auth.service.js +47 -0
  111. package/dist/services/auth.service.js.map +1 -0
  112. package/dist/services/config-validator.service.d.ts +29 -0
  113. package/dist/services/config-validator.service.js +483 -0
  114. package/dist/services/config-validator.service.js.map +1 -0
  115. package/dist/services/config.service.d.ts +45 -0
  116. package/dist/services/config.service.js +352 -0
  117. package/dist/services/config.service.js.map +1 -0
  118. package/dist/services/document-loader.service.d.ts +21 -0
  119. package/dist/services/document-loader.service.js +156 -0
  120. package/dist/services/document-loader.service.js.map +1 -0
  121. package/dist/services/help.service.d.ts +5 -0
  122. package/dist/services/help.service.js +139 -0
  123. package/dist/services/help.service.js.map +1 -0
  124. package/dist/services/intelligent-compression.service.d.ts +20 -0
  125. package/dist/services/intelligent-compression.service.js +179 -0
  126. package/dist/services/intelligent-compression.service.js.map +1 -0
  127. package/dist/services/mcp-client.service.d.ts +26 -0
  128. package/dist/services/mcp-client.service.js +81 -0
  129. package/dist/services/mcp-client.service.js.map +1 -0
  130. package/dist/services/parallel-processing.service.d.ts +108 -0
  131. package/dist/services/parallel-processing.service.js +333 -0
  132. package/dist/services/parallel-processing.service.js.map +1 -0
  133. package/dist/services/provider-bridge.service.d.ts +35 -0
  134. package/dist/services/provider-bridge.service.js +224 -0
  135. package/dist/services/provider-bridge.service.js.map +1 -0
  136. package/dist/services/remote-agent.service.d.ts +50 -0
  137. package/dist/services/remote-agent.service.js +171 -0
  138. package/dist/services/remote-agent.service.js.map +1 -0
  139. package/dist/services/result-formatter.service.d.ts +27 -0
  140. package/dist/services/result-formatter.service.js +126 -0
  141. package/dist/services/result-formatter.service.js.map +1 -0
  142. package/dist/services/skill-loader.service.d.ts +15 -0
  143. package/dist/services/skill-loader.service.js +278 -0
  144. package/dist/services/skill-loader.service.js.map +1 -0
  145. package/dist/services/skill.service.d.ts +67 -0
  146. package/dist/services/skill.service.js +670 -0
  147. package/dist/services/skill.service.js.map +1 -0
  148. package/dist/services/skill.service.spec.d.ts +1 -0
  149. package/dist/services/skill.service.spec.js +35 -0
  150. package/dist/services/skill.service.spec.js.map +1 -0
  151. package/dist/services/task-management.service.d.ts +65 -0
  152. package/dist/services/task-management.service.js +288 -0
  153. package/dist/services/task-management.service.js.map +1 -0
  154. package/dist/services/template.service.d.ts +61 -0
  155. package/dist/services/template.service.js +416 -0
  156. package/dist/services/template.service.js.map +1 -0
  157. package/dist/services/tool-call.service.d.ts +19 -0
  158. package/dist/services/tool-call.service.js +1061 -0
  159. package/dist/services/tool-call.service.js.map +1 -0
  160. package/dist/services/tracing.service.d.ts +200 -0
  161. package/dist/services/tracing.service.js +1290 -0
  162. package/dist/services/tracing.service.js.map +1 -0
  163. package/dist/slack/formatters/message.formatter.d.ts +32 -0
  164. package/dist/slack/formatters/message.formatter.js +352 -0
  165. package/dist/slack/formatters/message.formatter.js.map +1 -0
  166. package/dist/slack/services/slack-file-download.service.d.ts +58 -0
  167. package/dist/slack/services/slack-file-download.service.js +558 -0
  168. package/dist/slack/services/slack-file-download.service.js.map +1 -0
  169. package/dist/slack/slack-bot.d.ts +33 -0
  170. package/dist/slack/slack-bot.js +567 -0
  171. package/dist/slack/slack-bot.js.map +1 -0
  172. package/dist/stderr.logger.d.ts +8 -0
  173. package/dist/stderr.logger.js +26 -0
  174. package/dist/stderr.logger.js.map +1 -0
  175. package/dist/types/usage.types.d.ts +107 -0
  176. package/dist/types/usage.types.js +3 -0
  177. package/dist/types/usage.types.js.map +1 -0
  178. package/dist/utils/config-utils.d.ts +15 -0
  179. package/dist/utils/config-utils.js +69 -0
  180. package/dist/utils/config-utils.js.map +1 -0
  181. package/dist/utils/extract-text.d.ts +1 -0
  182. package/dist/utils/extract-text.js +15 -0
  183. package/dist/utils/extract-text.js.map +1 -0
  184. package/dist/utils/mcp-installer.d.ts +20 -0
  185. package/dist/utils/mcp-installer.js +199 -0
  186. package/dist/utils/mcp-installer.js.map +1 -0
  187. package/dist/utils/project-hash.d.ts +6 -0
  188. package/dist/utils/project-hash.js +70 -0
  189. package/dist/utils/project-hash.js.map +1 -0
  190. package/dist/utils/simple-security.d.ts +3 -0
  191. package/dist/utils/simple-security.js +20 -0
  192. package/dist/utils/simple-security.js.map +1 -0
  193. package/dist/utils/stdin-utils.d.ts +6 -0
  194. package/dist/utils/stdin-utils.js +109 -0
  195. package/dist/utils/stdin-utils.js.map +1 -0
  196. package/dist/utils/template-processor.d.ts +4 -0
  197. package/dist/utils/template-processor.js +266 -0
  198. package/dist/utils/template-processor.js.map +1 -0
  199. package/dist/utils/terminal-message-formatter.d.ts +23 -0
  200. package/dist/utils/terminal-message-formatter.js +136 -0
  201. package/dist/utils/terminal-message-formatter.js.map +1 -0
  202. package/dist/version.d.ts +1 -0
  203. package/dist/version.js +17 -0
  204. package/dist/version.js.map +1 -0
  205. package/dist/workspace.service.d.ts +44 -0
  206. package/dist/workspace.service.js +299 -0
  207. package/dist/workspace.service.js.map +1 -0
  208. package/package.json +18 -18
  209. package/dist/commands/task-db.d.ts +0 -33
  210. package/dist/commands/task-db.js +0 -107
  211. package/dist/examples/deny-secrets-plugin.d.ts +0 -22
  212. package/dist/examples/deny-secrets-plugin.js +0 -40
  213. package/dist/plugins/examples/echo-hook.d.ts +0 -24
  214. package/dist/plugins/examples/echo-hook.js +0 -60
  215. package/dist/plugins/examples/verify-echo-hook.d.ts +0 -8
  216. package/dist/plugins/examples/verify-echo-hook.js +0 -47
  217. package/dist/plugins/sqlite-tracing.d.ts +0 -11
  218. package/dist/plugins/sqlite-tracing.js +0 -19
  219. package/dist/repository/workspace.repository.d.ts +0 -26
  220. package/dist/repository/workspace.repository.js +0 -111
  221. package/dist/schema/tasks.d.ts +0 -7
  222. package/dist/schema/tasks.js +0 -48
@@ -0,0 +1,352 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var ConfigService_1;
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.ConfigService = void 0;
47
+ const common_1 = require("@nestjs/common");
48
+ const dotenv_1 = require("dotenv");
49
+ const fs_1 = require("fs");
50
+ const path = __importStar(require("path"));
51
+ const crewx_sdk_1 = require("@sowonai/crewx-sdk");
52
+ let ConfigService = ConfigService_1 = class ConfigService {
53
+ constructor() {
54
+ this.logger = new common_1.Logger(ConfigService_1.name);
55
+ this.agents = new Map();
56
+ this.providerConfigs = [];
57
+ this.projectConfig = null;
58
+ this.customConfigPath = null;
59
+ this.currentConfigPath = null;
60
+ this.slackSettings = {
61
+ logConversations: false,
62
+ };
63
+ this.apiProviderConfigs = new Map();
64
+ this.mcpServers = {};
65
+ this.environmentVariables = {};
66
+ this.loadEnvironmentVariables();
67
+ this.loadAgentConfigs();
68
+ }
69
+ setConfigPath(configPath) {
70
+ this.customConfigPath = configPath;
71
+ }
72
+ onModuleInit() {
73
+ }
74
+ loadAgentConfigs() {
75
+ this.agents.clear();
76
+ this.providerConfigs = [];
77
+ this.projectConfig = null;
78
+ this.currentConfigPath = null;
79
+ this.slackSettings = { logConversations: false };
80
+ this.apiProviderConfigs.clear();
81
+ this.mcpServers = {};
82
+ const { path: configPath, name: configName } = this.resolveConfigPath();
83
+ if (!configPath || !configName) {
84
+ this.logger.warn('No configuration file found (crewx.yaml or agents.yaml). No agent configurations loaded.');
85
+ return;
86
+ }
87
+ this.currentConfigPath = configPath;
88
+ this.logger.log(`Loading agent configurations from: ${configPath}`);
89
+ try {
90
+ const config = (0, crewx_sdk_1.parseCrewxConfigFromFile)(configPath);
91
+ this.projectConfig = config;
92
+ if (Array.isArray(config.agents)) {
93
+ for (const agent of config.agents) {
94
+ if (agent && agent.id) {
95
+ this.agents.set(agent.id, agent);
96
+ }
97
+ }
98
+ this.logger.log(`Loaded ${this.agents.size} agent configurations from ${configName}.`);
99
+ }
100
+ const providers = Array.isArray(config.providers)
101
+ ? config.providers
102
+ : [];
103
+ this.providerConfigs = providers.filter((provider) => Boolean(provider && (provider.type === 'plugin' || provider.type === 'remote')));
104
+ if (this.providerConfigs.length > 0) {
105
+ const pluginCount = this.providerConfigs.filter((p) => p.type === 'plugin').length;
106
+ const remoteCount = this.providerConfigs.length - pluginCount;
107
+ this.logger.log(`Loaded ${pluginCount} plugin provider configurations.`);
108
+ if (remoteCount > 0) {
109
+ this.logger.log(`Loaded ${remoteCount} remote provider configurations.`);
110
+ }
111
+ }
112
+ if (config.settings?.slack?.log_conversations !== undefined) {
113
+ this.slackSettings.logConversations = Boolean(config.settings.slack.log_conversations);
114
+ if (this.slackSettings.logConversations) {
115
+ this.logger.log('Slack conversation logging enabled via configuration.');
116
+ }
117
+ }
118
+ const envSlackLogging = process.env.CREWX_SLACK_LOG_CONVERSATIONS;
119
+ if (envSlackLogging !== undefined) {
120
+ this.slackSettings.logConversations = ['1', 'true', 'yes', 'on'].includes(envSlackLogging.toLowerCase());
121
+ this.logger.log(`Slack conversation logging ${this.slackSettings.logConversations ? 'enabled' : 'disabled'} via CREWX_SLACK_LOG_CONVERSATIONS.`);
122
+ }
123
+ this.parseAPIProviderConfigs(config);
124
+ this.parseMCPServerConfigs(config);
125
+ }
126
+ catch (error) {
127
+ if (error instanceof crewx_sdk_1.SkillLoadError) {
128
+ this.logger.error(`Failed to parse ${configName}: ${error.message}`);
129
+ if (error.cause) {
130
+ this.logger.debug(`Parse error stack: ${error.cause.stack ?? error.cause.message}`);
131
+ }
132
+ }
133
+ else if (error instanceof Error) {
134
+ this.logger.error(`Failed to load or parse ${configName}`, error);
135
+ }
136
+ else {
137
+ this.logger.error(`Failed to load or parse ${configName}: ${String(error)}`);
138
+ }
139
+ }
140
+ }
141
+ getAgentConfig(agentId) {
142
+ return this.agents.get(agentId);
143
+ }
144
+ getAllAgentIds() {
145
+ return Array.from(this.agents.keys());
146
+ }
147
+ getPluginProviders() {
148
+ return this.providerConfigs.filter((provider) => provider.type === 'plugin');
149
+ }
150
+ getRemoteProviders() {
151
+ return this.providerConfigs.filter((provider) => provider.type === 'remote');
152
+ }
153
+ getDynamicProviders() {
154
+ return [...this.providerConfigs];
155
+ }
156
+ shouldLogSlackConversations() {
157
+ return this.slackSettings.logConversations;
158
+ }
159
+ getProjectConfig() {
160
+ return this.projectConfig;
161
+ }
162
+ getSkillsPaths() {
163
+ const paths = this.projectConfig?.skills?.paths
164
+ || this.projectConfig?.skills_paths
165
+ || [];
166
+ return [...paths];
167
+ }
168
+ getSkillsTrust() {
169
+ const trust = this.projectConfig?.skills?.trust;
170
+ return {
171
+ scopes: trust?.scopes ?? ['@crewx'],
172
+ packages: trust?.packages ?? [],
173
+ };
174
+ }
175
+ getCurrentConfigPath() {
176
+ if (this.currentConfigPath) {
177
+ return this.currentConfigPath;
178
+ }
179
+ if (this.customConfigPath) {
180
+ return path.isAbsolute(this.customConfigPath)
181
+ ? this.customConfigPath
182
+ : path.join(process.cwd(), this.customConfigPath);
183
+ }
184
+ const envConfigPath = process.env.CREWX_CONFIG?.trim();
185
+ if (envConfigPath) {
186
+ const resolvedEnvPath = path.isAbsolute(envConfigPath)
187
+ ? envConfigPath
188
+ : path.join(process.cwd(), envConfigPath);
189
+ if ((0, fs_1.existsSync)(resolvedEnvPath)) {
190
+ return resolvedEnvPath;
191
+ }
192
+ }
193
+ const crewxPath = path.join(process.cwd(), 'crewx.yaml');
194
+ const agentsPath = path.join(process.cwd(), 'agents.yaml');
195
+ if ((0, fs_1.existsSync)(crewxPath)) {
196
+ return crewxPath;
197
+ }
198
+ else if ((0, fs_1.existsSync)(agentsPath)) {
199
+ return agentsPath;
200
+ }
201
+ return null;
202
+ }
203
+ resolveConfigPath() {
204
+ if (this.customConfigPath) {
205
+ const customPath = path.isAbsolute(this.customConfigPath)
206
+ ? this.customConfigPath
207
+ : path.join(process.cwd(), this.customConfigPath);
208
+ if ((0, fs_1.existsSync)(customPath)) {
209
+ return { path: customPath, name: path.basename(customPath) };
210
+ }
211
+ this.logger.error(`Custom config file not found: ${customPath}`);
212
+ return { path: null, name: null };
213
+ }
214
+ const envConfigPath = process.env.CREWX_CONFIG?.trim();
215
+ if (envConfigPath) {
216
+ const resolvedEnvPath = path.isAbsolute(envConfigPath)
217
+ ? envConfigPath
218
+ : path.join(process.cwd(), envConfigPath);
219
+ if ((0, fs_1.existsSync)(resolvedEnvPath)) {
220
+ return { path: resolvedEnvPath, name: path.basename(resolvedEnvPath) };
221
+ }
222
+ this.logger.warn(`CREWX_CONFIG file not found: ${resolvedEnvPath}`);
223
+ }
224
+ const defaultCandidates = [
225
+ { path: path.join(process.cwd(), 'crewx.yaml'), name: 'crewx.yaml' },
226
+ { path: path.join(process.cwd(), 'agents.yaml'), name: 'agents.yaml' },
227
+ ];
228
+ for (const candidate of defaultCandidates) {
229
+ if ((0, fs_1.existsSync)(candidate.path)) {
230
+ return candidate;
231
+ }
232
+ }
233
+ return { path: null, name: null };
234
+ }
235
+ loadEnvironmentVariables() {
236
+ const cwd = process.cwd();
237
+ const nodeEnv = process.env.NODE_ENV || 'development';
238
+ const envFiles = [
239
+ path.join(cwd, `.env.${nodeEnv}.local`),
240
+ path.join(cwd, `.env.${nodeEnv}`),
241
+ path.join(cwd, '.env.local'),
242
+ path.join(cwd, '.env'),
243
+ ];
244
+ for (const envFile of envFiles) {
245
+ if ((0, fs_1.existsSync)(envFile)) {
246
+ this.logger.log(`Loading environment variables from: ${path.basename(envFile)}`);
247
+ (0, dotenv_1.config)({ path: envFile });
248
+ }
249
+ }
250
+ this.environmentVariables = { ...process.env };
251
+ }
252
+ parseAPIProviderConfigs(config) {
253
+ if (!Array.isArray(config.agents)) {
254
+ return;
255
+ }
256
+ let apiProviderCount = 0;
257
+ for (const agent of config.agents) {
258
+ if (!agent || !agent.id) {
259
+ continue;
260
+ }
261
+ const providerStr = agent.provider || agent.inline?.provider;
262
+ if (!providerStr || !String(providerStr).startsWith('api/')) {
263
+ continue;
264
+ }
265
+ try {
266
+ const apiConfig = (0, crewx_sdk_1.parseAPIProviderConfig)(agent, this.environmentVariables);
267
+ this.apiProviderConfigs.set(agent.id, apiConfig);
268
+ apiProviderCount++;
269
+ }
270
+ catch (error) {
271
+ if (error instanceof crewx_sdk_1.APIProviderParseError) {
272
+ this.logger.error(`Failed to parse API provider config for agent '${agent.id}': ${error.message}`);
273
+ if (error.cause) {
274
+ this.logger.debug(`Parse error details: ${error.cause.message}`);
275
+ }
276
+ }
277
+ else {
278
+ this.logger.error(`Unexpected error parsing API provider for agent '${agent.id}': ${error instanceof Error ? error.message : String(error)}`);
279
+ }
280
+ }
281
+ }
282
+ if (apiProviderCount > 0) {
283
+ this.logger.log(`Loaded ${apiProviderCount} API provider configurations.`);
284
+ }
285
+ }
286
+ parseMCPServerConfigs(config) {
287
+ const rawMCPServers = config.mcp_servers;
288
+ if (!rawMCPServers || typeof rawMCPServers !== 'object') {
289
+ return;
290
+ }
291
+ try {
292
+ this.mcpServers = (0, crewx_sdk_1.parseMCPServers)(rawMCPServers, this.environmentVariables);
293
+ const mcpCount = Object.keys(this.mcpServers).length;
294
+ if (mcpCount > 0) {
295
+ this.logger.log(`Loaded ${mcpCount} MCP server configurations.`);
296
+ }
297
+ }
298
+ catch (error) {
299
+ if (error instanceof crewx_sdk_1.APIProviderParseError) {
300
+ this.logger.error(`Failed to parse MCP server configs: ${error.message}`);
301
+ if (error.cause) {
302
+ this.logger.debug(`Parse error details: ${error.cause.message}`);
303
+ }
304
+ }
305
+ else {
306
+ this.logger.error(`Unexpected error parsing MCP servers: ${error instanceof Error ? error.message : String(error)}`);
307
+ }
308
+ }
309
+ }
310
+ getAPIProviderConfig(agentId) {
311
+ return this.apiProviderConfigs.get(agentId);
312
+ }
313
+ getAllAPIProviderConfigs() {
314
+ return new Map(this.apiProviderConfigs);
315
+ }
316
+ getMCPServerConfig(name) {
317
+ return this.mcpServers[name];
318
+ }
319
+ getAllMCPServerConfigs() {
320
+ return { ...this.mcpServers };
321
+ }
322
+ getEnvironmentVariables() {
323
+ return { ...this.environmentVariables };
324
+ }
325
+ isAPIProvider(agentId) {
326
+ return this.apiProviderConfigs.has(agentId);
327
+ }
328
+ getSlackFileDownloadDir() {
329
+ return process.env.CREWX_SLACK_FILE_DIR ||
330
+ path.join(process.cwd(), '.crewx', 'slack-files');
331
+ }
332
+ isSlackFileDownloadEnabled() {
333
+ return process.env.CREWX_SLACK_FILE_DOWNLOAD !== 'false';
334
+ }
335
+ getSlackMaxFileSize() {
336
+ const envValue = process.env.CREWX_SLACK_MAX_FILE_SIZE;
337
+ return envValue ? parseInt(envValue, 10) : 10 * 1024 * 1024;
338
+ }
339
+ getSlackAllowedMimeTypes() {
340
+ const envValue = process.env.CREWX_SLACK_ALLOWED_MIME_TYPES;
341
+ if (!envValue || envValue.trim() === '') {
342
+ return [];
343
+ }
344
+ return envValue.split(',').map(t => t.trim()).filter(t => t.length > 0);
345
+ }
346
+ };
347
+ exports.ConfigService = ConfigService;
348
+ exports.ConfigService = ConfigService = ConfigService_1 = __decorate([
349
+ (0, common_1.Injectable)(),
350
+ __metadata("design:paramtypes", [])
351
+ ], ConfigService);
352
+ //# sourceMappingURL=config.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../src/services/config.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ type DocumentSource = string | {
2
+ path?: string;
3
+ name?: string;
4
+ render?: boolean;
5
+ content?: string;
6
+ };
7
+ export declare class DocumentLoaderService {
8
+ private readonly logger;
9
+ private documents;
10
+ private initialized;
11
+ initialize(agentsYamlDocuments?: Record<string, DocumentSource>, projectPath?: string): Promise<void>;
12
+ private loadFileContent;
13
+ reset(): void;
14
+ isInitialized(): boolean;
15
+ getDocumentContent(docName: string): Promise<string | undefined>;
16
+ getDocumentToc(docName: string): Promise<string | undefined>;
17
+ getDocumentSummary(_docName: string): Promise<string | undefined>;
18
+ shouldRenderDocument(docName: string): boolean;
19
+ getDocumentNames(): string[];
20
+ }
21
+ export {};
@@ -0,0 +1,156 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ var DocumentLoaderService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DocumentLoaderService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const promises_1 = require("fs/promises");
16
+ const path_1 = require("path");
17
+ const unified_1 = require("unified");
18
+ const remark_parse_1 = __importDefault(require("remark-parse"));
19
+ const unist_util_visit_1 = require("unist-util-visit");
20
+ const DEFAULT_RENDER_MODE = false;
21
+ let DocumentLoaderService = DocumentLoaderService_1 = class DocumentLoaderService {
22
+ constructor() {
23
+ this.logger = new common_1.Logger(DocumentLoaderService_1.name);
24
+ this.documents = new Map();
25
+ this.initialized = false;
26
+ }
27
+ async initialize(agentsYamlDocuments, projectPath) {
28
+ if (this.initialized) {
29
+ this.logger.debug('DocumentLoaderService re-initializing to merge additional documents');
30
+ }
31
+ else {
32
+ this.documents.clear();
33
+ }
34
+ if (!agentsYamlDocuments) {
35
+ this.logger.log('No documents provided in agents.yaml');
36
+ this.initialized = true;
37
+ return;
38
+ }
39
+ for (const [docName, config] of Object.entries(agentsYamlDocuments)) {
40
+ if (typeof config === 'string') {
41
+ const render = DEFAULT_RENDER_MODE;
42
+ this.documents.set(docName, { content: config, render });
43
+ this.logger.debug(`Loaded inline document: ${docName} (${config.length} chars) [render=${render}]`);
44
+ }
45
+ else if (config && typeof config === 'object' && 'content' in config) {
46
+ const content = String(config.content ?? '');
47
+ const render = typeof config.render === 'boolean' ? config.render : DEFAULT_RENDER_MODE;
48
+ this.documents.set(docName, { content, render });
49
+ this.logger.debug(`Loaded inline document object: ${docName} (${content.length} chars) [render=${render}]`);
50
+ }
51
+ else if (config && typeof config === 'object' && 'path' in config) {
52
+ try {
53
+ const resolvedPath = typeof config.path === 'string' ? config.path : '';
54
+ const content = await this.loadFileContent(resolvedPath, projectPath);
55
+ const render = typeof config.render === 'boolean' ? config.render : DEFAULT_RENDER_MODE;
56
+ this.documents.set(docName, { content, render });
57
+ this.logger.debug(`Loaded file document: ${docName} from ${config.path} (${content.length} chars) [render=${render}]`);
58
+ }
59
+ catch (error) {
60
+ const errorMessage = error instanceof Error ? error.message : String(error);
61
+ this.logger.warn(`Failed to load document '${docName}' from ${config.path}: ${errorMessage}`);
62
+ }
63
+ }
64
+ else {
65
+ this.logger.warn(`Skipping document '${docName}': unsupported format (must be string or {path: "..."})`);
66
+ }
67
+ }
68
+ this.logger.log(`Loaded ${this.documents.size} documents from agents.yaml`);
69
+ this.initialized = true;
70
+ }
71
+ async loadFileContent(filePath, basePath) {
72
+ const absolutePath = (0, path_1.isAbsolute)(filePath)
73
+ ? filePath
74
+ : basePath
75
+ ? (0, path_1.join)(basePath, filePath)
76
+ : filePath;
77
+ await (0, promises_1.access)(absolutePath);
78
+ return await (0, promises_1.readFile)(absolutePath, 'utf-8');
79
+ }
80
+ reset() {
81
+ this.documents.clear();
82
+ this.initialized = false;
83
+ }
84
+ isInitialized() {
85
+ return this.initialized;
86
+ }
87
+ async getDocumentContent(docName) {
88
+ const entry = this.documents.get(docName);
89
+ return entry?.content;
90
+ }
91
+ async getDocumentToc(docName) {
92
+ const entry = this.documents.get(docName);
93
+ const content = entry?.content;
94
+ if (!content) {
95
+ return undefined;
96
+ }
97
+ if (entry && entry.render === false) {
98
+ return undefined;
99
+ }
100
+ try {
101
+ const tree = (0, unified_1.unified)().use(remark_parse_1.default).parse(content);
102
+ const headings = [];
103
+ (0, unist_util_visit_1.visit)(tree, 'heading', (node) => {
104
+ const text = node.children
105
+ .map(child => {
106
+ if (child.type === 'text') {
107
+ return child.value;
108
+ }
109
+ if (child.type === 'inlineCode') {
110
+ return child.value;
111
+ }
112
+ if (child.type === 'strong' && 'children' in child) {
113
+ return child.children.map(c => c.value || '').join('');
114
+ }
115
+ if (child.type === 'emphasis' && 'children' in child) {
116
+ return child.children.map(c => c.value || '').join('');
117
+ }
118
+ return '';
119
+ })
120
+ .join('');
121
+ headings.push({
122
+ depth: node.depth,
123
+ text: text.trim()
124
+ });
125
+ });
126
+ if (headings.length === 0) {
127
+ return undefined;
128
+ }
129
+ return headings
130
+ .map(({ depth, text }) => {
131
+ const indent = ' '.repeat(depth - 1);
132
+ return `${indent}- ${text}`;
133
+ })
134
+ .join('\n');
135
+ }
136
+ catch (error) {
137
+ this.logger.warn(`Failed to extract TOC from document '${docName}': ${error instanceof Error ? error.message : String(error)}`);
138
+ return undefined;
139
+ }
140
+ }
141
+ async getDocumentSummary(_docName) {
142
+ return undefined;
143
+ }
144
+ shouldRenderDocument(docName) {
145
+ const entry = this.documents.get(docName);
146
+ return entry?.render ?? DEFAULT_RENDER_MODE;
147
+ }
148
+ getDocumentNames() {
149
+ return Array.from(this.documents.keys());
150
+ }
151
+ };
152
+ exports.DocumentLoaderService = DocumentLoaderService;
153
+ exports.DocumentLoaderService = DocumentLoaderService = DocumentLoaderService_1 = __decorate([
154
+ (0, common_1.Injectable)()
155
+ ], DocumentLoaderService);
156
+ //# sourceMappingURL=document-loader.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-loader.service.js","sourceRoot":"","sources":["../../src/services/document-loader.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class HelpService {
2
+ private getPackageInfo;
3
+ showHelp(): void;
4
+ private showCommandHelp;
5
+ }