@sowonai/crewx-cli 0.4.0-dev.1

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 (173) hide show
  1. package/README.md +529 -0
  2. package/dist/ai-provider.service.d.ts +36 -0
  3. package/dist/ai-provider.service.js +191 -0
  4. package/dist/ai-provider.service.js.map +1 -0
  5. package/dist/ai.service.d.ts +57 -0
  6. package/dist/ai.service.js +628 -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 +103 -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 +140 -0
  13. package/dist/cli/agent.handler.js.map +1 -0
  14. package/dist/cli/chat.handler.d.ts +19 -0
  15. package/dist/cli/chat.handler.js +431 -0
  16. package/dist/cli/chat.handler.js.map +1 -0
  17. package/dist/cli/cli.handler.d.ts +4 -0
  18. package/dist/cli/cli.handler.js +97 -0
  19. package/dist/cli/cli.handler.js.map +1 -0
  20. package/dist/cli/doctor.handler.d.ts +36 -0
  21. package/dist/cli/doctor.handler.js +382 -0
  22. package/dist/cli/doctor.handler.js.map +1 -0
  23. package/dist/cli/execute.handler.d.ts +2 -0
  24. package/dist/cli/execute.handler.js +319 -0
  25. package/dist/cli/execute.handler.js.map +1 -0
  26. package/dist/cli/help.handler.d.ts +2 -0
  27. package/dist/cli/help.handler.js +10 -0
  28. package/dist/cli/help.handler.js.map +1 -0
  29. package/dist/cli/init.handler.d.ts +26 -0
  30. package/dist/cli/init.handler.js +450 -0
  31. package/dist/cli/init.handler.js.map +1 -0
  32. package/dist/cli/mcp.handler.d.ts +3 -0
  33. package/dist/cli/mcp.handler.js +121 -0
  34. package/dist/cli/mcp.handler.js.map +1 -0
  35. package/dist/cli/query.handler.d.ts +2 -0
  36. package/dist/cli/query.handler.js +380 -0
  37. package/dist/cli/query.handler.js.map +1 -0
  38. package/dist/cli/templates.handler.d.ts +2 -0
  39. package/dist/cli/templates.handler.js +100 -0
  40. package/dist/cli/templates.handler.js.map +1 -0
  41. package/dist/cli-options.d.ts +29 -0
  42. package/dist/cli-options.js +234 -0
  43. package/dist/cli-options.js.map +1 -0
  44. package/dist/config/timeout.config.d.ts +14 -0
  45. package/dist/config/timeout.config.js +34 -0
  46. package/dist/config/timeout.config.js.map +1 -0
  47. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  48. package/dist/conversation/base-conversation-history.provider.js +45 -0
  49. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  50. package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
  51. package/dist/conversation/cli-conversation-history.provider.js +111 -0
  52. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  53. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  54. package/dist/conversation/conversation-provider.factory.js +50 -0
  55. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  56. package/dist/conversation/index.d.ts +6 -0
  57. package/dist/conversation/index.js +27 -0
  58. package/dist/conversation/index.js.map +1 -0
  59. package/dist/conversation/slack-conversation-history.provider.d.ts +28 -0
  60. package/dist/conversation/slack-conversation-history.provider.js +278 -0
  61. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  62. package/dist/crewx.tool.d.ts +332 -0
  63. package/dist/crewx.tool.js +1461 -0
  64. package/dist/crewx.tool.js.map +1 -0
  65. package/dist/guards/bearer-auth.guard.d.ts +7 -0
  66. package/dist/guards/bearer-auth.guard.js +44 -0
  67. package/dist/guards/bearer-auth.guard.js.map +1 -0
  68. package/dist/health.controller.d.ts +6 -0
  69. package/dist/health.controller.js +32 -0
  70. package/dist/health.controller.js.map +1 -0
  71. package/dist/main.d.ts +1 -0
  72. package/dist/main.js +267 -0
  73. package/dist/main.js.map +1 -0
  74. package/dist/mcp.controller.d.ts +8 -0
  75. package/dist/mcp.controller.js +62 -0
  76. package/dist/mcp.controller.js.map +1 -0
  77. package/dist/project.service.d.ts +44 -0
  78. package/dist/project.service.js +299 -0
  79. package/dist/project.service.js.map +1 -0
  80. package/dist/providers/base-ai.provider.d.ts +50 -0
  81. package/dist/providers/base-ai.provider.js +624 -0
  82. package/dist/providers/base-ai.provider.js.map +1 -0
  83. package/dist/providers/claude.provider.d.ts +25 -0
  84. package/dist/providers/claude.provider.js +362 -0
  85. package/dist/providers/claude.provider.js.map +1 -0
  86. package/dist/providers/codex.provider.d.ts +17 -0
  87. package/dist/providers/codex.provider.js +99 -0
  88. package/dist/providers/codex.provider.js.map +1 -0
  89. package/dist/providers/copilot.provider.d.ts +25 -0
  90. package/dist/providers/copilot.provider.js +266 -0
  91. package/dist/providers/copilot.provider.js.map +1 -0
  92. package/dist/providers/dynamic-provider.factory.d.ts +55 -0
  93. package/dist/providers/dynamic-provider.factory.js +586 -0
  94. package/dist/providers/dynamic-provider.factory.js.map +1 -0
  95. package/dist/providers/gemini.provider.d.ts +22 -0
  96. package/dist/providers/gemini.provider.js +147 -0
  97. package/dist/providers/gemini.provider.js.map +1 -0
  98. package/dist/services/agent-loader.service.d.ts +29 -0
  99. package/dist/services/agent-loader.service.js +370 -0
  100. package/dist/services/agent-loader.service.js.map +1 -0
  101. package/dist/services/auth.service.d.ts +9 -0
  102. package/dist/services/auth.service.js +47 -0
  103. package/dist/services/auth.service.js.map +1 -0
  104. package/dist/services/config-validator.service.d.ts +28 -0
  105. package/dist/services/config-validator.service.js +467 -0
  106. package/dist/services/config-validator.service.js.map +1 -0
  107. package/dist/services/config.service.d.ts +45 -0
  108. package/dist/services/config.service.js +180 -0
  109. package/dist/services/config.service.js.map +1 -0
  110. package/dist/services/context-enhancement.service.d.ts +13 -0
  111. package/dist/services/context-enhancement.service.js +169 -0
  112. package/dist/services/context-enhancement.service.js.map +1 -0
  113. package/dist/services/document-loader.service.d.ts +16 -0
  114. package/dist/services/document-loader.service.js +137 -0
  115. package/dist/services/document-loader.service.js.map +1 -0
  116. package/dist/services/help.service.d.ts +5 -0
  117. package/dist/services/help.service.js +117 -0
  118. package/dist/services/help.service.js.map +1 -0
  119. package/dist/services/intelligent-compression.service.d.ts +20 -0
  120. package/dist/services/intelligent-compression.service.js +179 -0
  121. package/dist/services/intelligent-compression.service.js.map +1 -0
  122. package/dist/services/mcp-client.service.d.ts +26 -0
  123. package/dist/services/mcp-client.service.js +81 -0
  124. package/dist/services/mcp-client.service.js.map +1 -0
  125. package/dist/services/parallel-processing.service.d.ts +108 -0
  126. package/dist/services/parallel-processing.service.js +268 -0
  127. package/dist/services/parallel-processing.service.js.map +1 -0
  128. package/dist/services/remote-agent.service.d.ts +49 -0
  129. package/dist/services/remote-agent.service.js +215 -0
  130. package/dist/services/remote-agent.service.js.map +1 -0
  131. package/dist/services/result-formatter.service.d.ts +27 -0
  132. package/dist/services/result-formatter.service.js +126 -0
  133. package/dist/services/result-formatter.service.js.map +1 -0
  134. package/dist/services/task-management.service.d.ts +63 -0
  135. package/dist/services/task-management.service.js +272 -0
  136. package/dist/services/task-management.service.js.map +1 -0
  137. package/dist/services/template.service.d.ts +36 -0
  138. package/dist/services/template.service.js +195 -0
  139. package/dist/services/template.service.js.map +1 -0
  140. package/dist/services/tool-call.service.d.ts +53 -0
  141. package/dist/services/tool-call.service.js +1061 -0
  142. package/dist/services/tool-call.service.js.map +1 -0
  143. package/dist/slack/formatters/message.formatter.d.ts +25 -0
  144. package/dist/slack/formatters/message.formatter.js +246 -0
  145. package/dist/slack/formatters/message.formatter.js.map +1 -0
  146. package/dist/slack/slack-bot.d.ts +24 -0
  147. package/dist/slack/slack-bot.js +467 -0
  148. package/dist/slack/slack-bot.js.map +1 -0
  149. package/dist/stderr.logger.d.ts +8 -0
  150. package/dist/stderr.logger.js +26 -0
  151. package/dist/stderr.logger.js.map +1 -0
  152. package/dist/utils/config-utils.d.ts +15 -0
  153. package/dist/utils/config-utils.js +69 -0
  154. package/dist/utils/config-utils.js.map +1 -0
  155. package/dist/utils/mcp-installer.d.ts +20 -0
  156. package/dist/utils/mcp-installer.js +199 -0
  157. package/dist/utils/mcp-installer.js.map +1 -0
  158. package/dist/utils/mention-parser.d.ts +18 -0
  159. package/dist/utils/mention-parser.js +136 -0
  160. package/dist/utils/mention-parser.js.map +1 -0
  161. package/dist/utils/simple-security.d.ts +3 -0
  162. package/dist/utils/simple-security.js +20 -0
  163. package/dist/utils/simple-security.js.map +1 -0
  164. package/dist/utils/stdin-utils.d.ts +27 -0
  165. package/dist/utils/stdin-utils.js +130 -0
  166. package/dist/utils/stdin-utils.js.map +1 -0
  167. package/dist/utils/template-processor.d.ts +32 -0
  168. package/dist/utils/template-processor.js +202 -0
  169. package/dist/utils/template-processor.js.map +1 -0
  170. package/dist/version.d.ts +1 -0
  171. package/dist/version.js +17 -0
  172. package/dist/version.js.map +1 -0
  173. package/package.json +122 -0
@@ -0,0 +1,380 @@
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 __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.handleQuery = handleQuery;
37
+ const common_1 = require("@nestjs/common");
38
+ const crewx_tool_1 = require("../crewx.tool");
39
+ const stdin_utils_1 = require("../utils/stdin-utils");
40
+ const conversation_1 = require("../conversation");
41
+ const os = __importStar(require("os"));
42
+ const logger = new common_1.Logger('QueryHandler');
43
+ function mergeMessages(pipedMessages, existingMessages) {
44
+ if (pipedMessages.length === 0) {
45
+ return existingMessages;
46
+ }
47
+ const seen = new Set();
48
+ const result = [];
49
+ const push = (msg) => {
50
+ const key = JSON.stringify({
51
+ text: msg.text,
52
+ isAssistant: msg.isAssistant,
53
+ metadata: msg.metadata || {},
54
+ });
55
+ if (!seen.has(key)) {
56
+ seen.add(key);
57
+ result.push(msg);
58
+ }
59
+ };
60
+ pipedMessages.forEach(push);
61
+ existingMessages.forEach(push);
62
+ return result;
63
+ }
64
+ async function handleQuery(app, args) {
65
+ logger.log('Query command received');
66
+ if (!args.query) {
67
+ logger.error('No query message provided');
68
+ console.log('Usage: crewx query "<message>"');
69
+ console.log('Example (default agent): crewx query "analyze this API"');
70
+ console.log('Example (specific agent): crewx query "@backend analyze this API"');
71
+ console.log('Example (multiple agents): crewx query "@backend @frontend implement login feature"');
72
+ console.log('Example (parallel): crewx query "@claude 1+1?" "@claude 2+2?"');
73
+ process.exit(1);
74
+ }
75
+ try {
76
+ const queryInput = Array.isArray(args.query) ? args.query : [args.query];
77
+ const pipedInput = await (0, stdin_utils_1.readStdin)();
78
+ const structuredPayload = (0, stdin_utils_1.parseStructuredPayload)(pipedInput);
79
+ const contextFromPipe = structuredPayload
80
+ ? (0, stdin_utils_1.buildContextFromStructuredPayload)(structuredPayload) ?? (pipedInput ? (0, stdin_utils_1.formatPipedContext)(pipedInput) : undefined)
81
+ : pipedInput
82
+ ? (0, stdin_utils_1.formatPipedContext)(pipedInput)
83
+ : undefined;
84
+ const pipedMessages = structuredPayload?.messages ?? [];
85
+ if (pipedInput && !args.raw) {
86
+ console.log('šŸ“„ Received piped input - using as context');
87
+ }
88
+ let conversationProvider = null;
89
+ let threadId = null;
90
+ let conversationContext = '';
91
+ let conversationThread = null;
92
+ if (args.thread) {
93
+ const providerFactory = app.get(conversation_1.ConversationProviderFactory);
94
+ conversationProvider = providerFactory.getProvider('cli');
95
+ await conversationProvider.initialize();
96
+ threadId = args.thread;
97
+ const exists = await conversationProvider.hasHistory(threadId);
98
+ if (!exists) {
99
+ if (!args.raw) {
100
+ console.log(`šŸ“ Creating new conversation thread: ${threadId}`);
101
+ }
102
+ await conversationProvider.createThread(threadId);
103
+ }
104
+ else {
105
+ if (!args.raw) {
106
+ console.log(`šŸ”— Continuing conversation thread: ${threadId}`);
107
+ }
108
+ }
109
+ conversationThread = await conversationProvider.fetchHistory(threadId, {
110
+ limit: 100,
111
+ maxContextLength: 4000,
112
+ });
113
+ if (conversationThread.messages.length > 0) {
114
+ conversationContext = await conversationProvider.formatForAI(conversationThread, {
115
+ excludeCurrent: false,
116
+ });
117
+ if (conversationContext.trim()) {
118
+ conversationContext = `Previous conversation context from thread "${threadId}":\n${conversationContext}`;
119
+ }
120
+ }
121
+ }
122
+ const conversationMessagesFromThread = conversationThread?.messages
123
+ ? conversationThread.messages.map((msg) => ({
124
+ text: msg.text,
125
+ isAssistant: msg.isAssistant,
126
+ metadata: msg.metadata,
127
+ }))
128
+ : [];
129
+ const combinedMessages = mergeMessages(pipedMessages, conversationMessagesFromThread);
130
+ const crewXTool = app.get(crewx_tool_1.CrewXTool);
131
+ const parsedQueries = [];
132
+ const mentionRegex = /@([a-zA-Z_][a-zA-Z0-9_]*)(?::([a-zA-Z0-9._-]+))?/g;
133
+ for (const queryStr of queryInput) {
134
+ const leadingMentionsRegex = /^(?:@([a-zA-Z_][a-zA-Z0-9_]*)(?::([a-zA-Z0-9._-]+))?\s*)+/;
135
+ const leadingMatch = queryStr.match(leadingMentionsRegex);
136
+ if (!leadingMatch) {
137
+ const query = queryStr.trim();
138
+ if (query) {
139
+ parsedQueries.push({ agentId: 'crewx', query, model: undefined });
140
+ }
141
+ continue;
142
+ }
143
+ const mentionsText = leadingMatch[0];
144
+ const query = queryStr.slice(mentionsText.length).trim();
145
+ if (!query) {
146
+ continue;
147
+ }
148
+ const matches = [...mentionsText.matchAll(mentionRegex)];
149
+ for (const match of matches) {
150
+ const agentId = match[1];
151
+ const model = match[2];
152
+ if (agentId) {
153
+ parsedQueries.push({ agentId, query, model });
154
+ }
155
+ }
156
+ }
157
+ if (parsedQueries.length === 0) {
158
+ console.log('āŒ No valid queries found');
159
+ console.log('Usage: crewx query "<message>"');
160
+ console.log('Example (default agent): crewx query "analyze this code"');
161
+ console.log('Example (specific agent): crewx query "@backend analyze this code"');
162
+ console.log('Example (parallel): crewx query "@claude 1+1?" "@claude 2+2?"');
163
+ process.exit(1);
164
+ }
165
+ try {
166
+ const agentsResult = await crewXTool.listAgents();
167
+ const validAgentIds = new Set(agentsResult.availableAgents?.map((a) => a.id) || []);
168
+ const invalidAgents = parsedQueries
169
+ .filter(pq => !validAgentIds.has(pq.agentId))
170
+ .map(pq => pq.agentId);
171
+ if (invalidAgents.length > 0) {
172
+ const uniqueInvalid = [...new Set(invalidAgents)];
173
+ const errorMsg = `Error: Agent(s) not found: ${uniqueInvalid.map(a => `@${a}`).join(', ')}`;
174
+ console.error(errorMsg);
175
+ process.exit(1);
176
+ }
177
+ }
178
+ catch (error) {
179
+ const errorMsg = `Error: Failed to load agents - ${error instanceof Error ? error.message : 'Unknown error'}`;
180
+ console.error(errorMsg);
181
+ process.exit(1);
182
+ }
183
+ if (!args.raw) {
184
+ console.log(`šŸ” Processing ${parsedQueries.length} ${parsedQueries.length === 1 ? 'query' : 'queries'}`);
185
+ }
186
+ let result;
187
+ if (parsedQueries.length === 1) {
188
+ const firstQuery = parsedQueries[0];
189
+ if (!firstQuery) {
190
+ console.log('āŒ No valid queries found');
191
+ process.exit(1);
192
+ }
193
+ const { agentId, query, model } = firstQuery;
194
+ if (!args.raw) {
195
+ console.log(`šŸ“‹ Task: ${query}`);
196
+ console.log(`šŸ¤– Agent: @${agentId}${model ? `:${model}` : ''}`);
197
+ if (threadId) {
198
+ console.log(`šŸ”— Thread: ${threadId}`);
199
+ }
200
+ console.log('');
201
+ console.log(`šŸ”Ž Querying single agent: @${agentId}${model ? `:${model}` : ''}`);
202
+ console.log('─'.repeat(60));
203
+ }
204
+ const combinedContext = [
205
+ conversationContext,
206
+ contextFromPipe
207
+ ].filter(Boolean).join('\n\n');
208
+ result = await crewXTool.queryAgent({
209
+ agentId: agentId,
210
+ query: query,
211
+ context: combinedContext || undefined,
212
+ model: model,
213
+ messages: combinedMessages,
214
+ platform: 'cli'
215
+ });
216
+ if (!result.success) {
217
+ const errorMsg = `Error: ${result.error || 'Query failed'}`;
218
+ console.error(errorMsg);
219
+ process.exit(1);
220
+ }
221
+ if (conversationProvider && threadId && result.response) {
222
+ await conversationProvider.addMessage(threadId, os.userInfo().username, query, false);
223
+ await conversationProvider.addMessage(threadId, 'crewx', result.response, true, agentId);
224
+ }
225
+ if (args.raw) {
226
+ console.log(result.response || '');
227
+ }
228
+ else {
229
+ formatSingleAgentResult(result, agentId, query);
230
+ }
231
+ }
232
+ else {
233
+ if (!args.raw) {
234
+ console.log(`šŸš€ Querying ${parsedQueries.length} agents in parallel:`);
235
+ parsedQueries.forEach((pq, index) => {
236
+ console.log(` ${index + 1}. @${pq.agentId}: ${pq.query.substring(0, 50)}${pq.query.length > 50 ? '...' : ''}`);
237
+ });
238
+ if (threadId) {
239
+ console.log(`šŸ”— Thread: ${threadId}`);
240
+ }
241
+ console.log('─'.repeat(60));
242
+ }
243
+ const combinedContext = [
244
+ conversationContext,
245
+ contextFromPipe
246
+ ].filter(Boolean).join('\n\n');
247
+ const queries = parsedQueries.map(pq => ({
248
+ agentId: pq.agentId,
249
+ query: pq.query,
250
+ context: combinedContext || undefined,
251
+ model: pq.model,
252
+ messages: combinedMessages,
253
+ platform: 'cli'
254
+ }));
255
+ result = await crewXTool.queryAgentParallel({ queries });
256
+ const hasAnySuccess = result.results && result.results.some((r) => r.success);
257
+ const allFailed = result.results && result.results.every((r) => !r.success);
258
+ if (conversationProvider && threadId) {
259
+ for (const pq of parsedQueries) {
260
+ await conversationProvider.addMessage(threadId, os.userInfo().username, `@${pq.agentId}${pq.model ? `:${pq.model}` : ''} ${pq.query}`, false);
261
+ }
262
+ if (result.results && Array.isArray(result.results)) {
263
+ for (const agentResult of result.results) {
264
+ if (agentResult.success && agentResult.response) {
265
+ const agentName = agentResult.agentId || agentResult.agent;
266
+ await conversationProvider.addMessage(threadId, 'assistant', agentResult.response, true, agentName);
267
+ }
268
+ }
269
+ }
270
+ }
271
+ if (args.raw) {
272
+ if (result.results && Array.isArray(result.results)) {
273
+ result.results.forEach((agentResult) => {
274
+ if (agentResult.success) {
275
+ console.log(agentResult.response || '');
276
+ }
277
+ });
278
+ }
279
+ }
280
+ else {
281
+ const validAgentIds = parsedQueries.map(pq => pq.agentId);
282
+ formatParallelAgentResults(result, validAgentIds, '');
283
+ }
284
+ if (allFailed) {
285
+ const errorMsg = `Error: All agents failed`;
286
+ console.error(`\n${errorMsg}`);
287
+ process.exit(1);
288
+ }
289
+ else if (!hasAnySuccess) {
290
+ const errorMsg = `Error: Parallel query failed - ${result.error || 'Unknown error'}`;
291
+ console.error(errorMsg);
292
+ process.exit(1);
293
+ }
294
+ }
295
+ if (!args.raw) {
296
+ console.log('\nāœ… Query completed successfully');
297
+ }
298
+ }
299
+ catch (error) {
300
+ logger.error(`Query failed: ${error instanceof Error ? error.message : error}`);
301
+ console.log(`\nāŒ Query failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
302
+ process.exit(1);
303
+ }
304
+ }
305
+ function formatSingleAgentResult(result, agentId, taskText) {
306
+ console.log(`\nšŸ“Š Results from @${agentId}:`);
307
+ console.log('═'.repeat(60));
308
+ if (result.success) {
309
+ console.log(`🟢 Status: Success`);
310
+ console.log(`šŸ¤– Provider: ${result.provider || 'Unknown'}`);
311
+ console.log(`šŸ“ Task ID: ${result.taskId || 'N/A'}`);
312
+ console.log('');
313
+ if (result.response) {
314
+ console.log('šŸ“„ Response:');
315
+ console.log('─'.repeat(40));
316
+ console.log(result.response);
317
+ }
318
+ if (result.workingDirectory) {
319
+ console.log(`\nšŸ“ Working Directory: ${result.workingDirectory}`);
320
+ }
321
+ }
322
+ else {
323
+ console.log(`šŸ”“ Status: Failed`);
324
+ console.log(`āŒ Error: ${result.error || 'Unknown error'}`);
325
+ if (result.availableAgents && result.availableAgents.length > 0) {
326
+ console.log(`\nšŸ’” Available agents: ${result.availableAgents.join(', ')}`);
327
+ }
328
+ }
329
+ }
330
+ function formatParallelAgentResults(result, mentions, taskText) {
331
+ console.log('\nšŸ“Š Parallel Query Results:');
332
+ console.log('═'.repeat(60));
333
+ if (result.success && result.summary) {
334
+ const { summary } = result;
335
+ console.log(`šŸ“ˆ Summary:`);
336
+ console.log(` • Total Queries: ${summary.totalQueries}`);
337
+ console.log(` • Successful: ${summary.successful}`);
338
+ console.log(` • Failed: ${summary.failed}`);
339
+ console.log(` • Total Duration: ${summary.totalDuration}ms`);
340
+ console.log(` • Average Duration: ${summary.averageDuration}ms`);
341
+ console.log('');
342
+ if (result.results && Array.isArray(result.results)) {
343
+ result.results.forEach((agentResult, index) => {
344
+ console.log(`\n${index + 1}. Agent: @${agentResult.agentId} (${agentResult.provider}) - ${agentResult.duration}ms`);
345
+ if (agentResult.query) {
346
+ console.log(` šŸ“ Query: ${agentResult.query}`);
347
+ }
348
+ if (agentResult.taskId) {
349
+ console.log(` šŸ“‹ Task ID: ${agentResult.taskId}`);
350
+ }
351
+ console.log('─'.repeat(50));
352
+ if (agentResult.success) {
353
+ console.log(`🟢 Status: Success`);
354
+ if (agentResult.response) {
355
+ console.log('šŸ“„ Response:');
356
+ const response = agentResult.response.length > 500
357
+ ? agentResult.response.substring(0, 500) + '...\n[Response truncated - use single agent query for full response]'
358
+ : agentResult.response;
359
+ console.log(response);
360
+ }
361
+ }
362
+ else {
363
+ console.log(`šŸ”“ Status: Failed`);
364
+ console.log(`āŒ Error: ${agentResult.error || 'Unknown error'}`);
365
+ }
366
+ });
367
+ }
368
+ if (result.performance) {
369
+ console.log(`\n⚔ Performance Insights:`);
370
+ console.log(` • Fastest Query: ${result.performance.fastestQuery}ms`);
371
+ console.log(` • Slowest Query: ${result.performance.slowestQuery}ms`);
372
+ console.log(` • Time Saved: ${result.performance.timeSaved}ms (vs sequential)`);
373
+ }
374
+ }
375
+ else {
376
+ console.log(`šŸ”“ Status: Failed`);
377
+ console.log(`āŒ Error: ${result.error || 'Parallel query execution failed'}`);
378
+ }
379
+ }
380
+ //# sourceMappingURL=query.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.handler.js","sourceRoot":"","sources":["../../src/cli/query.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { CliOptions } from '../cli-options';
2
+ export declare function handleTemplates(app: any, args: CliOptions): Promise<void>;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleTemplates = handleTemplates;
4
+ const common_1 = require("@nestjs/common");
5
+ const template_service_1 = require("../services/template.service");
6
+ const logger = new common_1.Logger('TemplatesHandler');
7
+ async function handleTemplates(app, args) {
8
+ logger.log('Templates command received');
9
+ try {
10
+ const templateService = app.get(template_service_1.TemplateService);
11
+ const subCommand = process.argv[3];
12
+ switch (subCommand) {
13
+ case 'list':
14
+ await handleTemplatesList(templateService);
15
+ break;
16
+ case 'update':
17
+ await handleTemplatesUpdate(templateService);
18
+ break;
19
+ default:
20
+ console.log(`
21
+ šŸ“¦ **CrewX Template Manager**
22
+
23
+ Available commands:
24
+ crewx templates list - List available templates from GitHub
25
+ crewx templates update - Clear cache and re-download templates
26
+
27
+ Templates are downloaded from:
28
+ https://github.com/sowonlabs/crewx/tree/main/templates
29
+
30
+ Examples:
31
+ # List available templates
32
+ crewx templates list
33
+
34
+ # Update template cache
35
+ crewx templates update
36
+
37
+ # Use a specific template during init
38
+ crewx init --template minimal
39
+ crewx init --template development --version v0.1.8
40
+ `);
41
+ break;
42
+ }
43
+ }
44
+ catch (error) {
45
+ const errorMessage = error instanceof Error ? error.message : String(error);
46
+ console.error(`āŒ Templates command failed: ${errorMessage}`);
47
+ logger.error(`Templates command failed: ${errorMessage}`);
48
+ process.exit(1);
49
+ }
50
+ }
51
+ async function handleTemplatesList(templateService) {
52
+ console.log('šŸ“¦ Fetching available templates...\n');
53
+ try {
54
+ const versions = await templateService.getVersions();
55
+ if (!versions) {
56
+ console.log('āš ļø Could not fetch template information from GitHub.');
57
+ console.log('Using local templates only.\n');
58
+ console.log('Available templates:');
59
+ console.log(' • default - Full setup with @crewx assistant');
60
+ console.log(' • minimal - Basic agents only (claude, gemini, copilot)');
61
+ return;
62
+ }
63
+ console.log('āœ… **Available Templates**\n');
64
+ console.log(`Latest version: ${versions.latest}\n`);
65
+ for (const [versionTag, versionInfo] of Object.entries(versions.versions)) {
66
+ console.log(`šŸ“Œ **${versionTag}** (${versionInfo.released})`);
67
+ if (versionInfo.description) {
68
+ console.log(` ${versionInfo.description}`);
69
+ }
70
+ if (versionInfo.minCrewxVersion) {
71
+ console.log(` Requires: CrewX >= ${versionInfo.minCrewxVersion}`);
72
+ }
73
+ console.log(` Templates: ${versionInfo.templates.join(', ')}`);
74
+ console.log('');
75
+ }
76
+ console.log('**Usage:**');
77
+ console.log(' crewx init --template <name> --version <version>');
78
+ console.log(' crewx init --template minimal # Use latest version');
79
+ console.log(' crewx init --template default --version v0.1.8\n');
80
+ }
81
+ catch (error) {
82
+ console.error(`āŒ Failed to list templates: ${error?.message || error}`);
83
+ console.log('\nāš ļø Using local templates as fallback:');
84
+ console.log(' • default - Full setup with @crewx assistant');
85
+ console.log(' • minimal - Basic agents only (claude, gemini, copilot)\n');
86
+ }
87
+ }
88
+ async function handleTemplatesUpdate(templateService) {
89
+ console.log('šŸ”„ Clearing template cache...\n');
90
+ try {
91
+ await templateService.clearCache();
92
+ console.log('āœ… Template cache cleared successfully!');
93
+ console.log('\nNext time you run `crewx init`, templates will be freshly downloaded from GitHub.\n');
94
+ }
95
+ catch (error) {
96
+ console.error(`āŒ Failed to clear cache: ${error?.message || error}`);
97
+ process.exit(1);
98
+ }
99
+ }
100
+ //# sourceMappingURL=templates.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.handler.js","sourceRoot":"","sources":["../../src/cli/templates.handler.ts"],"names":[],"mappings":";;AAUA,0CA+CC;AAzDD,2CAAwC;AAExC,mEAA+D;AAE/D,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,CAAC;AAMvC,KAAK,UAAU,eAAe,CAAC,GAAQ,EAAE,IAAgB;IAC9D,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,kCAAe,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEnC,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM;gBACT,MAAM,mBAAmB,CAAC,eAAe,CAAC,CAAC;gBAC3C,MAAM;YAER,KAAK,QAAQ;gBACX,MAAM,qBAAqB,CAAC,eAAe,CAAC,CAAC;gBAC7C,MAAM;YAER;gBACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;SAoBX,CAAC,CAAC;gBACH,MAAM;QACV,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,mBAAmB,CAAC,eAAgC;IACjE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAEpD,IAAI,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;QAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QAGpD,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,OAAO,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC9D,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,yBAAyB,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAEpE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,qBAAqB,CAAC,eAAgC;IACnE,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;IACvG,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ export interface CliOptions {
2
+ install: boolean;
3
+ log: boolean;
4
+ protocol: 'STDIO' | 'HTTP';
5
+ host?: string;
6
+ port: number;
7
+ allowTool: string[];
8
+ raw: boolean;
9
+ loadProjectContext: boolean;
10
+ projectContextMaxLength: number;
11
+ enableIntelligentCompression: boolean;
12
+ thread?: string;
13
+ command?: string;
14
+ subcommand?: string;
15
+ query?: string | string[];
16
+ execute?: string | string[];
17
+ doctor?: boolean;
18
+ config?: string;
19
+ template?: string;
20
+ templateVersion?: string;
21
+ force?: boolean;
22
+ slackAgent?: string;
23
+ slackMode?: 'query' | 'execute';
24
+ http?: boolean;
25
+ key?: string;
26
+ mcpToolName?: string;
27
+ mcpParams?: string;
28
+ }
29
+ export declare function parseCliOptions(): CliOptions;