@crewx/cli 0.8.0-rc.66

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 (219) hide show
  1. package/README.md +663 -0
  2. package/dist/ai-provider.service.d.ts +36 -0
  3. package/dist/ai-provider.service.js +315 -0
  4. package/dist/ai-provider.service.js.map +1 -0
  5. package/dist/ai.service.d.ts +17 -0
  6. package/dist/ai.service.js +51 -0
  7. package/dist/ai.service.js.map +1 -0
  8. package/dist/app.module.d.ts +5 -0
  9. package/dist/app.module.js +165 -0
  10. package/dist/app.module.js.map +1 -0
  11. package/dist/cli/agent.handler.d.ts +2 -0
  12. package/dist/cli/agent.handler.js +186 -0
  13. package/dist/cli/agent.handler.js.map +1 -0
  14. package/dist/cli/builtin.handler.d.ts +3 -0
  15. package/dist/cli/builtin.handler.js +110 -0
  16. package/dist/cli/builtin.handler.js.map +1 -0
  17. package/dist/cli/chat.handler.d.ts +20 -0
  18. package/dist/cli/chat.handler.js +446 -0
  19. package/dist/cli/chat.handler.js.map +1 -0
  20. package/dist/cli/cli.handler.d.ts +4 -0
  21. package/dist/cli/cli.handler.js +119 -0
  22. package/dist/cli/cli.handler.js.map +1 -0
  23. package/dist/cli/doctor.handler.d.ts +38 -0
  24. package/dist/cli/doctor.handler.js +495 -0
  25. package/dist/cli/doctor.handler.js.map +1 -0
  26. package/dist/cli/execute.handler.d.ts +2 -0
  27. package/dist/cli/execute.handler.js +376 -0
  28. package/dist/cli/execute.handler.js.map +1 -0
  29. package/dist/cli/help.handler.d.ts +2 -0
  30. package/dist/cli/help.handler.js +10 -0
  31. package/dist/cli/help.handler.js.map +1 -0
  32. package/dist/cli/init.handler.d.ts +26 -0
  33. package/dist/cli/init.handler.js +450 -0
  34. package/dist/cli/init.handler.js.map +1 -0
  35. package/dist/cli/log.handler.d.ts +2 -0
  36. package/dist/cli/log.handler.js +69 -0
  37. package/dist/cli/log.handler.js.map +1 -0
  38. package/dist/cli/mcp.handler.d.ts +3 -0
  39. package/dist/cli/mcp.handler.js +121 -0
  40. package/dist/cli/mcp.handler.js.map +1 -0
  41. package/dist/cli/query.handler.d.ts +2 -0
  42. package/dist/cli/query.handler.js +392 -0
  43. package/dist/cli/query.handler.js.map +1 -0
  44. package/dist/cli/skill.handler.d.ts +2 -0
  45. package/dist/cli/skill.handler.js +252 -0
  46. package/dist/cli/skill.handler.js.map +1 -0
  47. package/dist/cli/slack-files.handler.d.ts +2 -0
  48. package/dist/cli/slack-files.handler.js +291 -0
  49. package/dist/cli/slack-files.handler.js.map +1 -0
  50. package/dist/cli/template.handler.d.ts +2 -0
  51. package/dist/cli/template.handler.js +188 -0
  52. package/dist/cli/template.handler.js.map +1 -0
  53. package/dist/cli/templates.handler.d.ts +2 -0
  54. package/dist/cli/templates.handler.js +100 -0
  55. package/dist/cli/templates.handler.js.map +1 -0
  56. package/dist/cli-options.d.ts +40 -0
  57. package/dist/cli-options.js +371 -0
  58. package/dist/cli-options.js.map +1 -0
  59. package/dist/config/timeout.config.d.ts +14 -0
  60. package/dist/config/timeout.config.js +34 -0
  61. package/dist/config/timeout.config.js.map +1 -0
  62. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  63. package/dist/conversation/base-conversation-history.provider.js +45 -0
  64. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  65. package/dist/conversation/cli-box-reader.adapter.d.ts +6 -0
  66. package/dist/conversation/cli-box-reader.adapter.js +10 -0
  67. package/dist/conversation/cli-box-reader.adapter.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 +112 -0
  70. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  71. package/dist/conversation/cli-task-reader.adapter.d.ts +6 -0
  72. package/dist/conversation/cli-task-reader.adapter.js +25 -0
  73. package/dist/conversation/cli-task-reader.adapter.js.map +1 -0
  74. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  75. package/dist/conversation/conversation-provider.factory.js +50 -0
  76. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  77. package/dist/conversation/index.d.ts +8 -0
  78. package/dist/conversation/index.js +29 -0
  79. package/dist/conversation/index.js.map +1 -0
  80. package/dist/conversation/slack-conversation-history.provider.d.ts +29 -0
  81. package/dist/conversation/slack-conversation-history.provider.js +302 -0
  82. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  83. package/dist/crewx.tool.d.ts +360 -0
  84. package/dist/crewx.tool.js +2531 -0
  85. package/dist/crewx.tool.js.map +1 -0
  86. package/dist/crewx.tool.spec.d.ts +1 -0
  87. package/dist/crewx.tool.spec.js +222 -0
  88. package/dist/crewx.tool.spec.js.map +1 -0
  89. package/dist/guards/bearer-auth.guard.d.ts +7 -0
  90. package/dist/guards/bearer-auth.guard.js +44 -0
  91. package/dist/guards/bearer-auth.guard.js.map +1 -0
  92. package/dist/health.controller.d.ts +6 -0
  93. package/dist/health.controller.js +32 -0
  94. package/dist/health.controller.js.map +1 -0
  95. package/dist/main.d.ts +1 -0
  96. package/dist/main.js +311 -0
  97. package/dist/main.js.map +1 -0
  98. package/dist/mcp.controller.d.ts +8 -0
  99. package/dist/mcp.controller.js +62 -0
  100. package/dist/mcp.controller.js.map +1 -0
  101. package/dist/package.json +3 -0
  102. package/dist/providers/dynamic-provider.factory.d.ts +17 -0
  103. package/dist/providers/dynamic-provider.factory.js +138 -0
  104. package/dist/providers/dynamic-provider.factory.js.map +1 -0
  105. package/dist/providers/logger.adapter.d.ts +7 -0
  106. package/dist/providers/logger.adapter.js +107 -0
  107. package/dist/providers/logger.adapter.js.map +1 -0
  108. package/dist/services/agent-loader.service.d.ts +35 -0
  109. package/dist/services/agent-loader.service.js +623 -0
  110. package/dist/services/agent-loader.service.js.map +1 -0
  111. package/dist/services/auth.service.d.ts +9 -0
  112. package/dist/services/auth.service.js +47 -0
  113. package/dist/services/auth.service.js.map +1 -0
  114. package/dist/services/config-validator.service.d.ts +29 -0
  115. package/dist/services/config-validator.service.js +483 -0
  116. package/dist/services/config-validator.service.js.map +1 -0
  117. package/dist/services/config.service.d.ts +45 -0
  118. package/dist/services/config.service.js +352 -0
  119. package/dist/services/config.service.js.map +1 -0
  120. package/dist/services/document-loader.service.d.ts +26 -0
  121. package/dist/services/document-loader.service.js +186 -0
  122. package/dist/services/document-loader.service.js.map +1 -0
  123. package/dist/services/help.service.d.ts +5 -0
  124. package/dist/services/help.service.js +139 -0
  125. package/dist/services/help.service.js.map +1 -0
  126. package/dist/services/intelligent-compression.service.d.ts +20 -0
  127. package/dist/services/intelligent-compression.service.js +179 -0
  128. package/dist/services/intelligent-compression.service.js.map +1 -0
  129. package/dist/services/mcp-client.service.d.ts +26 -0
  130. package/dist/services/mcp-client.service.js +81 -0
  131. package/dist/services/mcp-client.service.js.map +1 -0
  132. package/dist/services/parallel-processing.service.d.ts +108 -0
  133. package/dist/services/parallel-processing.service.js +333 -0
  134. package/dist/services/parallel-processing.service.js.map +1 -0
  135. package/dist/services/provider-bridge.service.d.ts +35 -0
  136. package/dist/services/provider-bridge.service.js +224 -0
  137. package/dist/services/provider-bridge.service.js.map +1 -0
  138. package/dist/services/remote-agent.service.d.ts +50 -0
  139. package/dist/services/remote-agent.service.js +171 -0
  140. package/dist/services/remote-agent.service.js.map +1 -0
  141. package/dist/services/result-formatter.service.d.ts +27 -0
  142. package/dist/services/result-formatter.service.js +126 -0
  143. package/dist/services/result-formatter.service.js.map +1 -0
  144. package/dist/services/skill-loader.service.d.ts +15 -0
  145. package/dist/services/skill-loader.service.js +278 -0
  146. package/dist/services/skill-loader.service.js.map +1 -0
  147. package/dist/services/skill.service.d.ts +69 -0
  148. package/dist/services/skill.service.js +779 -0
  149. package/dist/services/skill.service.js.map +1 -0
  150. package/dist/services/skill.service.spec.d.ts +1 -0
  151. package/dist/services/skill.service.spec.js +168 -0
  152. package/dist/services/skill.service.spec.js.map +1 -0
  153. package/dist/services/task-management.service.d.ts +71 -0
  154. package/dist/services/task-management.service.js +324 -0
  155. package/dist/services/task-management.service.js.map +1 -0
  156. package/dist/services/template.service.d.ts +61 -0
  157. package/dist/services/template.service.js +416 -0
  158. package/dist/services/template.service.js.map +1 -0
  159. package/dist/services/tool-call.service.d.ts +16 -0
  160. package/dist/services/tool-call.service.js +302 -0
  161. package/dist/services/tool-call.service.js.map +1 -0
  162. package/dist/services/tracing.service.d.ts +197 -0
  163. package/dist/services/tracing.service.js +1267 -0
  164. package/dist/services/tracing.service.js.map +1 -0
  165. package/dist/slack/formatters/message.formatter.d.ts +43 -0
  166. package/dist/slack/formatters/message.formatter.js +505 -0
  167. package/dist/slack/formatters/message.formatter.js.map +1 -0
  168. package/dist/slack/services/slack-file-download.service.d.ts +58 -0
  169. package/dist/slack/services/slack-file-download.service.js +558 -0
  170. package/dist/slack/services/slack-file-download.service.js.map +1 -0
  171. package/dist/slack/slack-bot.d.ts +33 -0
  172. package/dist/slack/slack-bot.js +568 -0
  173. package/dist/slack/slack-bot.js.map +1 -0
  174. package/dist/stderr.logger.d.ts +8 -0
  175. package/dist/stderr.logger.js +26 -0
  176. package/dist/stderr.logger.js.map +1 -0
  177. package/dist/types/usage.types.d.ts +107 -0
  178. package/dist/types/usage.types.js +3 -0
  179. package/dist/types/usage.types.js.map +1 -0
  180. package/dist/utils/config-utils.d.ts +15 -0
  181. package/dist/utils/config-utils.js +69 -0
  182. package/dist/utils/config-utils.js.map +1 -0
  183. package/dist/utils/extract-text.d.ts +1 -0
  184. package/dist/utils/extract-text.js +15 -0
  185. package/dist/utils/extract-text.js.map +1 -0
  186. package/dist/utils/mcp-installer.d.ts +20 -0
  187. package/dist/utils/mcp-installer.js +199 -0
  188. package/dist/utils/mcp-installer.js.map +1 -0
  189. package/dist/utils/project-hash.d.ts +6 -0
  190. package/dist/utils/project-hash.js +70 -0
  191. package/dist/utils/project-hash.js.map +1 -0
  192. package/dist/utils/simple-security.d.ts +3 -0
  193. package/dist/utils/simple-security.js +20 -0
  194. package/dist/utils/simple-security.js.map +1 -0
  195. package/dist/utils/stdin-utils.d.ts +6 -0
  196. package/dist/utils/stdin-utils.js +109 -0
  197. package/dist/utils/stdin-utils.js.map +1 -0
  198. package/dist/utils/template-processor.d.ts +27 -0
  199. package/dist/utils/template-processor.js +395 -0
  200. package/dist/utils/template-processor.js.map +1 -0
  201. package/dist/utils/terminal-message-formatter.d.ts +23 -0
  202. package/dist/utils/terminal-message-formatter.js +136 -0
  203. package/dist/utils/terminal-message-formatter.js.map +1 -0
  204. package/dist/version.d.ts +1 -0
  205. package/dist/version.js +17 -0
  206. package/dist/version.js.map +1 -0
  207. package/dist/workspace.service.d.ts +44 -0
  208. package/dist/workspace.service.js +299 -0
  209. package/dist/workspace.service.js.map +1 -0
  210. package/package.json +135 -0
  211. package/scripts/backfill-tokens.js +218 -0
  212. package/scripts/postbuild-cli.mjs +88 -0
  213. package/scripts/postinstall-cli.mjs +30 -0
  214. package/templates/agents/default.yaml +490 -0
  215. package/templates/agents/minimal.yaml +16 -0
  216. package/templates/documents/conversation-history-default.hbs +17 -0
  217. package/templates/documents/crewx-manual.md +2278 -0
  218. package/templates/documents/crewx-quick-guide.md +147 -0
  219. package/templates/versions.json +19 -0
package/dist/main.js ADDED
@@ -0,0 +1,311 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const core_1 = require("@nestjs/core");
38
+ const app_module_1 = require("./app.module");
39
+ const nestjs_mcp_adapter_1 = require("@sowonai/nestjs-mcp-adapter");
40
+ const common_1 = require("@nestjs/common");
41
+ const cli_options_1 = require("./cli-options");
42
+ const stderr_logger_1 = require("./stderr.logger");
43
+ const sdk_1 = require("@crewx/sdk");
44
+ const cli_handler_1 = require("./cli/cli.handler");
45
+ const slack_bot_1 = require("./slack/slack-bot");
46
+ const crewx_tool_1 = require("./crewx.tool");
47
+ const config_service_1 = require("./services/config.service");
48
+ const ai_provider_service_1 = require("./ai-provider.service");
49
+ const mcp_handler_1 = require("./cli/mcp.handler");
50
+ const env_defaults_1 = require("@crewx/sdk/core/env-defaults");
51
+ if (!process.env.CREWX_CLI) {
52
+ process.env.CREWX_CLI = (0, env_defaults_1.resolveCrewxCli)();
53
+ }
54
+ if (!process.env.CREWX_WORKSPACE) {
55
+ process.env.CREWX_WORKSPACE = process.cwd();
56
+ }
57
+ const logger = new common_1.Logger('Bootstrap');
58
+ const args = (0, cli_options_1.parseCliOptions)();
59
+ process.stdout.on('error', (err) => {
60
+ if (err.code === 'EPIPE') {
61
+ return;
62
+ }
63
+ });
64
+ process.stderr.on('error', (err) => {
65
+ if (err.code === 'EPIPE') {
66
+ return;
67
+ }
68
+ });
69
+ if (process.argv.includes('--help') || process.argv.includes('-h')) {
70
+ const isSkillExecution = args.command === 'skill' &&
71
+ args.skillAction &&
72
+ !['list', 'ls', 'info'].includes(args.skillAction);
73
+ const isBuiltinCommand = ['memory', 'search', 'doc', 'wbs', 'cron', 'workflow'].includes(args.command);
74
+ if (!isSkillExecution && !isBuiltinCommand) {
75
+ args.command = 'help';
76
+ }
77
+ }
78
+ async function cli() {
79
+ try {
80
+ if (args.install) {
81
+ logger.log('Installation mode - CrewX MCP Server setup');
82
+ const app = await core_1.NestFactory.createApplicationContext(app_module_1.AppModule.forRoot(args), {
83
+ logger: args.log ? new stderr_logger_1.StderrLogger('CrewXInstall', { timestamp: true }) : false,
84
+ });
85
+ console.log(`
86
+ =================================
87
+ CrewX MCP Server Setup
88
+ =================================
89
+
90
+ This MCP server provides AI-powered code analysis tools using Claude CLI and Gemini CLI.
91
+
92
+ Prerequisites:
93
+ - Install Claude CLI: Follow the official installation guide for claude-cli
94
+ - Install Gemini CLI: Follow the official installation guide for gemini-cli
95
+
96
+ MCP Server Configuration:
97
+ Add this to your MCP client configuration:
98
+
99
+ {
100
+ "mcpServers": {
101
+ "${sdk_1.SERVER_NAME}": {
102
+ "command": "npx",
103
+ "args": ["@sowonlabs/crewx"]
104
+ }
105
+ }
106
+ }
107
+
108
+ Available Tools:
109
+ - analyzeProject: AI-powered project analysis
110
+ - reviewCode: Code review with AI
111
+ - exploreCodebase: Codebase exploration and analysis
112
+ - checkAIProviders: Check AI CLI tool availability
113
+
114
+ Environment Variables (optional):
115
+ - Set working directory and other preferences as needed
116
+
117
+ Setup completed successfully!
118
+ =================================
119
+ `);
120
+ await app.close();
121
+ process.exit(0);
122
+ }
123
+ }
124
+ catch (error) {
125
+ logger.error(`Installation failed: ${(0, sdk_1.getErrorMessage)(error)}`, (0, sdk_1.getErrorStack)(error));
126
+ process.exit(1);
127
+ }
128
+ }
129
+ async function bootstrap() {
130
+ try {
131
+ let app;
132
+ let adapter;
133
+ if (args.protocol === 'HTTP') {
134
+ app = await core_1.NestFactory.create(app_module_1.AppModule.forRoot(args), {
135
+ logger: args.log ? ['error', 'warn', 'debug', 'log'] : false
136
+ });
137
+ }
138
+ else {
139
+ adapter = new nestjs_mcp_adapter_1.StdioExpressAdapter('/mcp');
140
+ app = await core_1.NestFactory.create(app_module_1.AppModule.forRoot(args), adapter, {
141
+ logger: args.log ? new stderr_logger_1.StderrLogger('CrewX', { timestamp: true }) : false,
142
+ });
143
+ }
144
+ await app.init();
145
+ const listenHost = args.host || '127.0.0.1';
146
+ if (args.protocol === 'HTTP') {
147
+ await app.listen(args.port, listenHost);
148
+ logger.log(`MCP HTTP server listening on http://${listenHost}:${args.port}`);
149
+ }
150
+ else {
151
+ await app.listen(args.port);
152
+ }
153
+ process.on('uncaughtException', (err) => {
154
+ logger.error('Unexpected error occurred:', err);
155
+ });
156
+ const cleanup = async () => {
157
+ await app.close();
158
+ if (adapter) {
159
+ await adapter.close();
160
+ }
161
+ };
162
+ process.on('SIGTERM', async () => {
163
+ logger.log('Shutting down application...');
164
+ await cleanup();
165
+ process.exit(0);
166
+ });
167
+ process.on('SIGINT', async () => {
168
+ logger.log('Shutting down application...');
169
+ await cleanup();
170
+ process.exit(0);
171
+ });
172
+ logger.log('Code CLI MCP Server initialized successfully');
173
+ return app;
174
+ }
175
+ catch (error) {
176
+ logger.error(`Bootstrap failed: ${(0, sdk_1.getErrorMessage)(error)}`, (0, sdk_1.getErrorStack)(error));
177
+ process.exit(1);
178
+ }
179
+ }
180
+ async function runCli() {
181
+ const command = args.command || 'help';
182
+ const effectiveArgs = args.command ? args : { ...args, command: 'help' };
183
+ const app = await core_1.NestFactory.createApplicationContext(app_module_1.AppModule.forRoot(args), {
184
+ logger: args.log ? new stderr_logger_1.StderrLogger('CrewXCLI', { timestamp: true }) : false,
185
+ });
186
+ if (args.config) {
187
+ const configService = app.get(config_service_1.ConfigService);
188
+ const aiProviderService = app.get(ai_provider_service_1.AIProviderService);
189
+ configService.setConfigPath(args.config);
190
+ configService.loadAgentConfigs();
191
+ await aiProviderService.reloadPluginProviders();
192
+ }
193
+ const cleanup = async () => {
194
+ await app.close();
195
+ process.exit(0);
196
+ };
197
+ process.on('SIGTERM', cleanup);
198
+ process.on('SIGINT', cleanup);
199
+ const cliHandler = new cli_handler_1.CLIHandler();
200
+ await cliHandler.handleCommand(app, effectiveArgs);
201
+ }
202
+ async function runSlackBot() {
203
+ try {
204
+ logger.log('Starting Slack Bot mode...');
205
+ process.stdout.on('error', (err) => {
206
+ if (err.code === 'EPIPE') {
207
+ logger.warn('EPIPE on stdout - ignoring (broken pipe)');
208
+ return;
209
+ }
210
+ logger.error('Unexpected stdout error:', err);
211
+ });
212
+ process.stderr.on('error', (err) => {
213
+ if (err.code === 'EPIPE') {
214
+ logger.warn('EPIPE on stderr - ignoring (broken pipe)');
215
+ return;
216
+ }
217
+ logger.error('Unexpected stderr error:', err);
218
+ });
219
+ process.on('uncaughtException', (err) => {
220
+ if (err.code === 'EPIPE') {
221
+ logger.warn('Uncaught EPIPE exception - ignoring');
222
+ return;
223
+ }
224
+ logger.error('Uncaught exception:', err);
225
+ process.exit(1);
226
+ });
227
+ if (!process.env.SLACK_BOT_TOKEN) {
228
+ throw new Error('SLACK_BOT_TOKEN environment variable is required');
229
+ }
230
+ if (!process.env.SLACK_APP_TOKEN) {
231
+ throw new Error('SLACK_APP_TOKEN environment variable is required');
232
+ }
233
+ if (!process.env.SLACK_SIGNING_SECRET) {
234
+ throw new Error('SLACK_SIGNING_SECRET environment variable is required');
235
+ }
236
+ const app = await core_1.NestFactory.createApplicationContext(app_module_1.AppModule.forRoot(args), {
237
+ logger: args.log ? new stderr_logger_1.StderrLogger('CrewXSlack', { timestamp: true }) : false,
238
+ });
239
+ const crewXTool = app.get(crewx_tool_1.CrewXTool);
240
+ const configService = app.get(config_service_1.ConfigService);
241
+ const aiProviderService = app.get(ai_provider_service_1.AIProviderService);
242
+ const defaultAgent = args.slackAgent || 'claude';
243
+ const mode = args.slackMode || 'query';
244
+ const mentionOnly = args.slackMentionOnly || false;
245
+ logger.log(`Using default agent for Slack: ${defaultAgent}`);
246
+ logger.log(`Slack bot mode: ${mode}`);
247
+ logger.log(`Mention-only mode: ${mentionOnly ? 'enabled' : 'disabled'}`);
248
+ const slackBot = new slack_bot_1.SlackBot(crewXTool, configService, aiProviderService, defaultAgent, mode, mentionOnly);
249
+ await slackBot.start();
250
+ const cleanup = async () => {
251
+ logger.log('Shutting down Slack Bot...');
252
+ await slackBot.stop();
253
+ await app.close();
254
+ process.exit(0);
255
+ };
256
+ process.on('SIGTERM', cleanup);
257
+ process.on('SIGINT', cleanup);
258
+ }
259
+ catch (error) {
260
+ logger.error(`Slack Bot failed: ${(0, sdk_1.getErrorMessage)(error)}`, (0, sdk_1.getErrorStack)(error));
261
+ process.exit(1);
262
+ }
263
+ }
264
+ async function main() {
265
+ if (args.install) {
266
+ await cli();
267
+ }
268
+ else if (args.command === 'mcp') {
269
+ if (args.subcommand === 'call_tool') {
270
+ const exitCode = await (0, mcp_handler_1.handleMcpCallTool)(args);
271
+ process.exit(exitCode);
272
+ }
273
+ else if (args.subcommand === 'list_tools') {
274
+ const exitCode = await (0, mcp_handler_1.handleMcpListTools)(args);
275
+ process.exit(exitCode);
276
+ }
277
+ else {
278
+ if (args.protocol === 'HTTP' && !args.key) {
279
+ logger.error('MCP HTTP server requires --key or CREWX_MCP_KEY for authentication.');
280
+ process.exit(1);
281
+ }
282
+ if (args.log)
283
+ logger.log('Starting MCP server mode...');
284
+ await bootstrap();
285
+ }
286
+ }
287
+ else if (args.command === 'slack') {
288
+ if (args.log)
289
+ logger.log('Starting Slack Bot mode...');
290
+ await runSlackBot();
291
+ }
292
+ else if (['memory', 'search', 'doc', 'wbs', 'cron', 'workflow'].includes(args.command)) {
293
+ const { handleBuiltin } = await Promise.resolve().then(() => __importStar(require('./cli/builtin.handler')));
294
+ await handleBuiltin(args.command, args.rawArgs.slice(1));
295
+ }
296
+ else if (!args.command) {
297
+ if (args.log)
298
+ logger.log('Starting CLI mode (help)...');
299
+ await runCli();
300
+ }
301
+ else {
302
+ if (args.log)
303
+ logger.log('Starting CLI mode...');
304
+ await runCli();
305
+ }
306
+ }
307
+ main().catch(err => {
308
+ logger.error('Error during application startup:', err);
309
+ process.exit(1);
310
+ });
311
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { McpHandler } from '@sowonai/nestjs-mcp-adapter';
2
+ import { Request, Response } from 'express';
3
+ export declare class McpController {
4
+ private readonly mcpHandler;
5
+ private readonly logger;
6
+ constructor(mcpHandler: McpHandler);
7
+ handlePost(req: Request, res: Response, body: any): Promise<Response<any, Record<string, any>>>;
8
+ }
@@ -0,0 +1,62 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.McpController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const nestjs_mcp_adapter_1 = require("@sowonai/nestjs-mcp-adapter");
18
+ const sdk_1 = require("@crewx/sdk");
19
+ const bearer_auth_guard_1 = require("./guards/bearer-auth.guard");
20
+ let McpController = class McpController {
21
+ constructor(mcpHandler) {
22
+ this.mcpHandler = mcpHandler;
23
+ this.logger = new common_1.Logger('McpController');
24
+ }
25
+ async handlePost(req, res, body) {
26
+ this.logger.debug(`request body: ${JSON.stringify(body)}`);
27
+ if (body && body.method === 'prompts/list') {
28
+ this.logger.debug('Handling prompts/list request - returning empty list');
29
+ return res.json({
30
+ jsonrpc: '2.0',
31
+ id: body.id,
32
+ result: {
33
+ prompts: []
34
+ }
35
+ });
36
+ }
37
+ const result = await this.mcpHandler.handleRequest(sdk_1.SERVER_NAME, req, res, body);
38
+ if (result === null) {
39
+ return res.end();
40
+ }
41
+ this.logger.debug(`response body: ${JSON.stringify(result)}`);
42
+ return res.json(result);
43
+ }
44
+ };
45
+ exports.McpController = McpController;
46
+ __decorate([
47
+ (0, common_1.Post)(),
48
+ (0, common_1.HttpCode)(202),
49
+ __param(0, (0, common_1.Req)()),
50
+ __param(1, (0, common_1.Res)()),
51
+ __param(2, (0, common_1.Body)()),
52
+ __metadata("design:type", Function),
53
+ __metadata("design:paramtypes", [Object, Object, Object]),
54
+ __metadata("design:returntype", Promise)
55
+ ], McpController.prototype, "handlePost", null);
56
+ exports.McpController = McpController = __decorate([
57
+ (0, common_1.Controller)('mcp'),
58
+ (0, common_1.UseFilters)(nestjs_mcp_adapter_1.JsonRpcExceptionFilter),
59
+ (0, common_1.UseGuards)(bearer_auth_guard_1.BearerAuthGuard),
60
+ __metadata("design:paramtypes", [nestjs_mcp_adapter_1.McpHandler])
61
+ ], McpController);
62
+ //# sourceMappingURL=mcp.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.controller.js","sourceRoot":"","sources":["../src/mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA2G;AAC3G,oEAAiG;AAEjG,oCAAyC;AACzC,kEAA6D;AAKtD,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGxB,YACmB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAHxB,WAAM,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,CAAC;IAInD,CAAC;IAIE,AAAN,KAAK,CAAC,UAAU,CAAQ,GAAY,EAAS,GAAa,EAAU,IAAS;QAC3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAG3D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,OAAO,GAAG,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE;oBACN,OAAO,EAAE,EAAE;iBACZ;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,iBAAW,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAGhF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAG9D,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF,CAAA;AApCY,sCAAa;AASlB;IAFL,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACI,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;IAAiB,WAAA,IAAA,aAAI,GAAE,CAAA;;;;+CA0BlE;wBAnCU,aAAa;IAHzB,IAAA,mBAAU,EAAC,KAAK,CAAC;IACjB,IAAA,mBAAU,EAAC,2CAAsB,CAAC;IAClC,IAAA,kBAAS,EAAC,mCAAe,CAAC;qCAKM,+BAAU;GAJ9B,aAAa,CAoCzB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,17 @@
1
+ import { BaseDynamicProviderFactory } from '@crewx/sdk';
2
+ import { TracingService } from '../services/tracing.service';
3
+ import { TaskManagementService } from '../services/task-management.service';
4
+ export declare class DynamicProviderFactory extends BaseDynamicProviderFactory {
5
+ private readonly tracingService?;
6
+ private readonly taskManagementService?;
7
+ private readonly blockedCommands;
8
+ constructor(tracingService?: TracingService | undefined, taskManagementService?: TaskManagementService | undefined);
9
+ protected validateCliCommand(cliCommand: string): void;
10
+ protected validateCliArgs(args: string[]): void;
11
+ protected validateErrorPatterns(patterns?: Array<{
12
+ pattern: string;
13
+ type: string;
14
+ message: string;
15
+ }>): void;
16
+ protected validateEnv(env?: Record<string, string>): void;
17
+ }
@@ -0,0 +1,138 @@
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 DynamicProviderFactory_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.DynamicProviderFactory = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const sdk_1 = require("@crewx/sdk");
19
+ const logger_adapter_1 = require("./logger.adapter");
20
+ const version_1 = require("../version");
21
+ const tracing_service_1 = require("../services/tracing.service");
22
+ const task_management_service_1 = require("../services/task-management.service");
23
+ let DynamicProviderFactory = DynamicProviderFactory_1 = class DynamicProviderFactory extends sdk_1.BaseDynamicProviderFactory {
24
+ constructor(tracingService, taskManagementService) {
25
+ super({
26
+ logger: (0, logger_adapter_1.createLoggerAdapter)(DynamicProviderFactory_1.name),
27
+ crewxVersion: version_1.CREWX_VERSION,
28
+ taskLogHandler: (0, logger_adapter_1.createTaskLogHandler)(tracingService, taskManagementService),
29
+ });
30
+ this.tracingService = tracingService;
31
+ this.taskManagementService = taskManagementService;
32
+ this.blockedCommands = [
33
+ 'bash', 'sh', 'zsh', 'fish', 'ksh', 'tcsh', 'csh',
34
+ 'cmd', 'powershell', 'pwsh', 'command',
35
+ 'python', 'python3', 'node', 'ruby', 'perl', 'php',
36
+ 'rm', 'del', 'rmdir', 'mv', 'cp', 'dd',
37
+ 'chmod', 'chown', 'sudo', 'su', 'doas',
38
+ 'curl', 'wget', 'nc', 'netcat', 'telnet', 'ssh',
39
+ 'eval', 'exec', 'source',
40
+ ];
41
+ }
42
+ validateCliCommand(cliCommand) {
43
+ super.validateCliCommand(cliCommand);
44
+ const normalized = cliCommand.toLowerCase().trim();
45
+ const commandName = normalized.split('/').pop() || normalized;
46
+ if (this.blockedCommands.includes(commandName)) {
47
+ throw new Error(`Security: CLI command '${cliCommand}' is blocked for security reasons. ` +
48
+ `This command is considered dangerous and cannot be used as a plugin provider.`);
49
+ }
50
+ if (normalized.startsWith('/') || normalized.startsWith('\\')) {
51
+ throw new Error('Security: Absolute paths are not allowed. ' +
52
+ "Use relative paths from project root (e.g., 'test-tools/howling') or command names in PATH (e.g., 'aider').");
53
+ }
54
+ if (normalized.includes('..')) {
55
+ throw new Error('Security: Path traversal (..) is not allowed. ' +
56
+ 'Use relative paths within the project directory only.');
57
+ }
58
+ const shellMetaChars = /[;&|<>`$(){}[\]!]/;
59
+ if (shellMetaChars.test(cliCommand)) {
60
+ throw new Error(`Security: CLI command '${cliCommand}' contains shell metacharacters. ` +
61
+ 'Only alphanumeric characters, hyphens, underscores, dots, and forward slashes are allowed.');
62
+ }
63
+ if (cliCommand.includes('\0')) {
64
+ throw new Error('Security: CLI command contains null bytes (potential path injection).');
65
+ }
66
+ }
67
+ validateCliArgs(args) {
68
+ super.validateCliArgs(args);
69
+ for (const arg of args) {
70
+ const dangerousChars = /[;&|<>`$()!]/;
71
+ if (dangerousChars.test(arg)) {
72
+ throw new Error(`Security: CLI argument '${arg}' contains dangerous shell metacharacters. ` +
73
+ 'Arguments with ;, &, |, <, >, `, $, (), ! are not allowed.');
74
+ }
75
+ if (arg.includes('$(') || arg.includes('`')) {
76
+ throw new Error(`Security: CLI argument '${arg}' contains command substitution pattern. ` +
77
+ '$() and backticks are not allowed.');
78
+ }
79
+ if (arg.includes('\0')) {
80
+ throw new Error('Security: CLI argument contains null bytes (potential injection).');
81
+ }
82
+ }
83
+ }
84
+ validateErrorPatterns(patterns) {
85
+ if (!patterns) {
86
+ return;
87
+ }
88
+ const redosPatterns = [
89
+ /\(.*\+.*\)\+/,
90
+ /\(.*\*.*\)\*/,
91
+ /\(.*\+.*\)\*/,
92
+ /\(.*\*.*\)\+/,
93
+ ];
94
+ for (const { pattern } of patterns) {
95
+ for (const redosPattern of redosPatterns) {
96
+ if (redosPattern.test(pattern)) {
97
+ throw new Error(`Security: Error pattern '${pattern}' may cause ReDoS (catastrophic backtracking). ` +
98
+ 'Avoid nested quantifiers like (a+)+, (a*)*, etc.');
99
+ }
100
+ }
101
+ }
102
+ super.validateErrorPatterns(patterns);
103
+ }
104
+ validateEnv(env) {
105
+ super.validateEnv(env);
106
+ if (!env) {
107
+ return;
108
+ }
109
+ const dangerousEnvVars = [
110
+ 'PATH', 'LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH',
111
+ 'LD_PRELOAD', 'DYLD_INSERT_LIBRARIES',
112
+ 'IFS', 'BASH_ENV', 'ENV',
113
+ ];
114
+ for (const [key, value] of Object.entries(env)) {
115
+ if (dangerousEnvVars.includes(key.toUpperCase())) {
116
+ throw new Error(`Security: Environment variable '${key}' is blocked for security reasons. ` +
117
+ 'Modifying system paths or library loading variables is not allowed.');
118
+ }
119
+ if (key.includes('\0') || value.includes('\0')) {
120
+ throw new Error('Security: Environment variable contains null bytes (potential injection).');
121
+ }
122
+ const dangerousChars = /[;&|<>`$()]/;
123
+ if (dangerousChars.test(value)) {
124
+ this.logger.warn(`Warning: Environment variable '${key}' contains shell metacharacters. Value: ${value}`);
125
+ }
126
+ }
127
+ }
128
+ };
129
+ exports.DynamicProviderFactory = DynamicProviderFactory;
130
+ exports.DynamicProviderFactory = DynamicProviderFactory = DynamicProviderFactory_1 = __decorate([
131
+ (0, common_1.Injectable)(),
132
+ __param(0, (0, common_1.Optional)()),
133
+ __param(1, (0, common_1.Optional)()),
134
+ __param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => task_management_service_1.TaskManagementService))),
135
+ __metadata("design:paramtypes", [tracing_service_1.TracingService,
136
+ task_management_service_1.TaskManagementService])
137
+ ], DynamicProviderFactory);
138
+ //# sourceMappingURL=dynamic-provider.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-provider.factory.js","sourceRoot":"","sources":["../../src/providers/dynamic-provider.factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import type { LoggerLike, ProviderTaskLogHandler } from '@crewx/sdk';
3
+ import type { TracingService } from '../services/tracing.service';
4
+ import type { TaskManagementService } from '../services/task-management.service';
5
+ export declare function createSdkLoggerAdapter(logger: Logger): (message: string, level?: "debug" | "info" | "warn" | "error") => void;
6
+ export declare function createLoggerAdapter(context: string): LoggerLike;
7
+ export declare function createTaskLogHandler(tracingService?: TracingService, taskManagementService?: TaskManagementService): ProviderTaskLogHandler | undefined;