crewx 0.1.1 → 0.1.2

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 (195) hide show
  1. package/LICENSE +197 -9
  2. package/README.md +120 -27
  3. package/crewx.yaml +1273 -0
  4. package/dist/agent.types.d.ts +92 -0
  5. package/dist/agent.types.js +16 -0
  6. package/dist/agent.types.js.map +1 -0
  7. package/dist/ai-provider.service.d.ts +25 -0
  8. package/dist/ai-provider.service.js +138 -0
  9. package/dist/ai-provider.service.js.map +1 -0
  10. package/dist/ai.service.d.ts +50 -0
  11. package/dist/ai.service.js +625 -0
  12. package/dist/ai.service.js.map +1 -0
  13. package/dist/app.module.d.ts +5 -0
  14. package/dist/app.module.js +88 -0
  15. package/dist/app.module.js.map +1 -0
  16. package/dist/cli/chat.handler.d.ts +19 -0
  17. package/dist/cli/chat.handler.js +429 -0
  18. package/dist/cli/chat.handler.js.map +1 -0
  19. package/dist/cli/cli.handler.d.ts +4 -0
  20. package/dist/cli/cli.handler.js +93 -0
  21. package/dist/cli/cli.handler.js.map +1 -0
  22. package/dist/cli/doctor.handler.d.ts +36 -0
  23. package/dist/cli/doctor.handler.js +382 -0
  24. package/dist/cli/doctor.handler.js.map +1 -0
  25. package/dist/cli/execute.handler.d.ts +2 -0
  26. package/dist/cli/execute.handler.js +269 -0
  27. package/dist/cli/execute.handler.js.map +1 -0
  28. package/dist/cli/help.handler.d.ts +2 -0
  29. package/dist/cli/help.handler.js +10 -0
  30. package/dist/cli/help.handler.js.map +1 -0
  31. package/dist/cli/init.handler.d.ts +25 -0
  32. package/dist/cli/init.handler.js +355 -0
  33. package/dist/cli/init.handler.js.map +1 -0
  34. package/dist/cli/query.handler.d.ts +2 -0
  35. package/dist/cli/query.handler.js +351 -0
  36. package/dist/cli/query.handler.js.map +1 -0
  37. package/dist/cli/templates.handler.d.ts +2 -0
  38. package/dist/cli/templates.handler.js +100 -0
  39. package/dist/cli/templates.handler.js.map +1 -0
  40. package/dist/cli-options.d.ts +22 -0
  41. package/dist/cli-options.js +195 -0
  42. package/dist/cli-options.js.map +1 -0
  43. package/dist/config/timeout.config.d.ts +14 -0
  44. package/dist/config/timeout.config.js +34 -0
  45. package/dist/config/timeout.config.js.map +1 -0
  46. package/dist/constants.d.ts +4 -0
  47. package/dist/constants.js +8 -0
  48. package/dist/constants.js.map +1 -0
  49. package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
  50. package/dist/conversation/base-conversation-history.provider.js +45 -0
  51. package/dist/conversation/base-conversation-history.provider.js.map +1 -0
  52. package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
  53. package/dist/conversation/cli-conversation-history.provider.js +104 -0
  54. package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
  55. package/dist/conversation/conversation-config.d.ts +9 -0
  56. package/dist/conversation/conversation-config.js +25 -0
  57. package/dist/conversation/conversation-config.js.map +1 -0
  58. package/dist/conversation/conversation-history.interface.d.ts +25 -0
  59. package/dist/conversation/conversation-history.interface.js +3 -0
  60. package/dist/conversation/conversation-history.interface.js.map +1 -0
  61. package/dist/conversation/conversation-provider.factory.d.ts +10 -0
  62. package/dist/conversation/conversation-provider.factory.js +50 -0
  63. package/dist/conversation/conversation-provider.factory.js.map +1 -0
  64. package/dist/conversation/conversation-storage.service.d.ts +15 -0
  65. package/dist/conversation/conversation-storage.service.js +182 -0
  66. package/dist/conversation/conversation-storage.service.js.map +1 -0
  67. package/dist/conversation/index.d.ts +7 -0
  68. package/dist/conversation/index.js +24 -0
  69. package/dist/conversation/index.js.map +1 -0
  70. package/dist/conversation/slack-conversation-history.provider.d.ts +22 -0
  71. package/dist/conversation/slack-conversation-history.provider.js +239 -0
  72. package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
  73. package/dist/crewx.tool.d.ts +421 -0
  74. package/dist/crewx.tool.js +1240 -0
  75. package/dist/crewx.tool.js.map +1 -0
  76. package/dist/knowledge/DocumentManager.d.ts +4 -0
  77. package/dist/knowledge/DocumentManager.js +119 -0
  78. package/dist/knowledge/DocumentManager.js.map +1 -0
  79. package/dist/main.d.ts +1 -0
  80. package/dist/main.js +230 -0
  81. package/dist/main.js.map +1 -0
  82. package/dist/mcp.controller.d.ts +8 -0
  83. package/dist/mcp.controller.js +60 -0
  84. package/dist/mcp.controller.js.map +1 -0
  85. package/dist/project.service.d.ts +44 -0
  86. package/dist/project.service.js +299 -0
  87. package/dist/project.service.js.map +1 -0
  88. package/dist/providers/ai-provider.interface.d.ts +30 -0
  89. package/dist/providers/ai-provider.interface.js +11 -0
  90. package/dist/providers/ai-provider.interface.js.map +1 -0
  91. package/dist/providers/base-ai.provider.d.ts +42 -0
  92. package/dist/providers/base-ai.provider.js +515 -0
  93. package/dist/providers/base-ai.provider.js.map +1 -0
  94. package/dist/providers/claude.provider.d.ts +25 -0
  95. package/dist/providers/claude.provider.js +376 -0
  96. package/dist/providers/claude.provider.js.map +1 -0
  97. package/dist/providers/copilot.provider.d.ts +25 -0
  98. package/dist/providers/copilot.provider.js +280 -0
  99. package/dist/providers/copilot.provider.js.map +1 -0
  100. package/dist/providers/gemini.provider.d.ts +22 -0
  101. package/dist/providers/gemini.provider.js +163 -0
  102. package/dist/providers/gemini.provider.js.map +1 -0
  103. package/dist/services/agent-loader.service.d.ts +23 -0
  104. package/dist/services/agent-loader.service.js +313 -0
  105. package/dist/services/agent-loader.service.js.map +1 -0
  106. package/dist/services/config-validator.service.d.ts +28 -0
  107. package/dist/services/config-validator.service.js +427 -0
  108. package/dist/services/config-validator.service.js.map +1 -0
  109. package/dist/services/config.service.d.ts +25 -0
  110. package/dist/services/config.service.js +102 -0
  111. package/dist/services/config.service.js.map +1 -0
  112. package/dist/services/context-enhancement.service.d.ts +13 -0
  113. package/dist/services/context-enhancement.service.js +169 -0
  114. package/dist/services/context-enhancement.service.js.map +1 -0
  115. package/dist/services/document-loader.service.d.ts +16 -0
  116. package/dist/services/document-loader.service.js +137 -0
  117. package/dist/services/document-loader.service.js.map +1 -0
  118. package/dist/services/help.service.d.ts +5 -0
  119. package/dist/services/help.service.js +112 -0
  120. package/dist/services/help.service.js.map +1 -0
  121. package/dist/services/intelligent-compression.service.d.ts +20 -0
  122. package/dist/services/intelligent-compression.service.js +179 -0
  123. package/dist/services/intelligent-compression.service.js.map +1 -0
  124. package/dist/services/parallel-processing.service.d.ts +108 -0
  125. package/dist/services/parallel-processing.service.js +266 -0
  126. package/dist/services/parallel-processing.service.js.map +1 -0
  127. package/dist/services/result-formatter.service.d.ts +27 -0
  128. package/dist/services/result-formatter.service.js +126 -0
  129. package/dist/services/result-formatter.service.js.map +1 -0
  130. package/dist/services/task-management.service.d.ts +63 -0
  131. package/dist/services/task-management.service.js +270 -0
  132. package/dist/services/task-management.service.js.map +1 -0
  133. package/dist/services/template.service.d.ts +36 -0
  134. package/dist/services/template.service.js +195 -0
  135. package/dist/services/template.service.js.map +1 -0
  136. package/dist/services/tool-call.service.d.ts +53 -0
  137. package/dist/services/tool-call.service.js +819 -0
  138. package/dist/services/tool-call.service.js.map +1 -0
  139. package/dist/slack/formatters/message.formatter.d.ts +25 -0
  140. package/dist/slack/formatters/message.formatter.js +246 -0
  141. package/dist/slack/formatters/message.formatter.js.map +1 -0
  142. package/dist/slack/slack-bot.d.ts +23 -0
  143. package/dist/slack/slack-bot.js +435 -0
  144. package/dist/slack/slack-bot.js.map +1 -0
  145. package/dist/stderr.logger.d.ts +8 -0
  146. package/dist/stderr.logger.js +26 -0
  147. package/dist/stderr.logger.js.map +1 -0
  148. package/dist/tsconfig.tsbuildinfo +1 -0
  149. package/dist/utils/config-utils.d.ts +15 -0
  150. package/dist/utils/config-utils.js +69 -0
  151. package/dist/utils/config-utils.js.map +1 -0
  152. package/dist/utils/error-utils.d.ts +3 -0
  153. package/dist/utils/error-utils.js +27 -0
  154. package/dist/utils/error-utils.js.map +1 -0
  155. package/dist/utils/math-utils.d.ts +3 -0
  156. package/dist/utils/math-utils.js +10 -0
  157. package/dist/utils/math-utils.js.map +1 -0
  158. package/dist/utils/mcp-installer.d.ts +20 -0
  159. package/dist/utils/mcp-installer.js +199 -0
  160. package/dist/utils/mcp-installer.js.map +1 -0
  161. package/dist/utils/mention-parser.d.ts +18 -0
  162. package/dist/utils/mention-parser.js +136 -0
  163. package/dist/utils/mention-parser.js.map +1 -0
  164. package/dist/utils/simple-security.d.ts +3 -0
  165. package/dist/utils/simple-security.js +20 -0
  166. package/dist/utils/simple-security.js.map +1 -0
  167. package/dist/utils/stdin-utils.d.ts +2 -0
  168. package/dist/utils/stdin-utils.js +87 -0
  169. package/dist/utils/stdin-utils.js.map +1 -0
  170. package/dist/utils/string-utils.d.ts +1 -0
  171. package/dist/utils/string-utils.js +10 -0
  172. package/dist/utils/string-utils.js.map +1 -0
  173. package/dist/utils/template-processor.d.ts +32 -0
  174. package/dist/utils/template-processor.js +188 -0
  175. package/dist/utils/template-processor.js.map +1 -0
  176. package/docs/agent-configuration.md +373 -0
  177. package/docs/agent-registry-strategy.md +348 -0
  178. package/docs/branding-decision-crewx.md +395 -0
  179. package/docs/claude-code-docker-guide.md +264 -0
  180. package/docs/cli-guide.md +295 -0
  181. package/docs/development.md +595 -0
  182. package/docs/guides/agent-best-practices.md +97 -0
  183. package/docs/guides/bug-management.md +600 -0
  184. package/docs/guides/git-bug-reference.md +366 -0
  185. package/docs/mcp-integration.md +187 -0
  186. package/docs/process/development-workflow.md +84 -0
  187. package/docs/roadmap.md +528 -0
  188. package/docs/rules/branch-protection.md +40 -0
  189. package/docs/standards/rc-versioning.md +60 -0
  190. package/docs/standards/report-structure.md +67 -0
  191. package/docs/templates.md +517 -0
  192. package/docs/tools.md +583 -0
  193. package/docs/troubleshooting.md +585 -0
  194. package/package.json +108 -19
  195. package/bin/crewx.js +0 -20
@@ -0,0 +1,351 @@
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
+ async function handleQuery(app, args) {
44
+ logger.log('Query command received');
45
+ if (!args.query) {
46
+ logger.error('No query message provided');
47
+ console.log('Usage: crewx query "<message>"');
48
+ console.log('Example (default agent): crewx query "analyze this API"');
49
+ console.log('Example (specific agent): crewx query "@backend analyze this API"');
50
+ console.log('Example (multiple agents): crewx query "@backend @frontend implement login feature"');
51
+ console.log('Example (parallel): crewx query "@claude 1+1?" "@claude 2+2?"');
52
+ process.exit(1);
53
+ }
54
+ try {
55
+ const queryInput = Array.isArray(args.query) ? args.query : [args.query];
56
+ const pipedInput = await (0, stdin_utils_1.readStdin)();
57
+ const contextFromPipe = pipedInput ? (0, stdin_utils_1.formatPipedContext)(pipedInput) : undefined;
58
+ if (pipedInput && !args.raw) {
59
+ console.log('šŸ“„ Received piped input - using as context');
60
+ }
61
+ let conversationProvider = null;
62
+ let threadId = null;
63
+ let conversationContext = '';
64
+ let conversationThread = null;
65
+ if (args.thread) {
66
+ const providerFactory = new conversation_1.ConversationProviderFactory();
67
+ conversationProvider = providerFactory.getProvider('cli');
68
+ await conversationProvider.initialize();
69
+ threadId = args.thread;
70
+ const exists = await conversationProvider.hasHistory(threadId);
71
+ if (!exists) {
72
+ if (!args.raw) {
73
+ console.log(`šŸ“ Creating new conversation thread: ${threadId}`);
74
+ }
75
+ await conversationProvider.createThread(threadId);
76
+ }
77
+ else {
78
+ if (!args.raw) {
79
+ console.log(`šŸ”— Continuing conversation thread: ${threadId}`);
80
+ }
81
+ }
82
+ conversationThread = await conversationProvider.fetchHistory(threadId, {
83
+ limit: 100,
84
+ maxContextLength: 4000,
85
+ });
86
+ if (conversationThread.messages.length > 0) {
87
+ conversationContext = await conversationProvider.formatForAI(conversationThread, {
88
+ excludeCurrent: false,
89
+ });
90
+ if (conversationContext.trim()) {
91
+ conversationContext = `Previous conversation context from thread "${threadId}":\n${conversationContext}`;
92
+ }
93
+ }
94
+ }
95
+ const conversationMessages = conversationThread?.messages
96
+ ? conversationThread.messages.map((msg) => ({
97
+ text: msg.text,
98
+ isAssistant: msg.isAssistant
99
+ }))
100
+ : [];
101
+ const crewXTool = app.get(crewx_tool_1.CrewXTool);
102
+ const parsedQueries = [];
103
+ const mentionRegex = /@([a-zA-Z_][a-zA-Z0-9_]*)(?::([a-zA-Z0-9._-]+))?/g;
104
+ for (const queryStr of queryInput) {
105
+ const leadingMentionsRegex = /^(?:@([a-zA-Z_][a-zA-Z0-9_]*)(?::([a-zA-Z0-9._-]+))?\s*)+/;
106
+ const leadingMatch = queryStr.match(leadingMentionsRegex);
107
+ if (!leadingMatch) {
108
+ const query = queryStr.trim();
109
+ if (query) {
110
+ parsedQueries.push({ agentId: 'crewx', query, model: undefined });
111
+ }
112
+ continue;
113
+ }
114
+ const mentionsText = leadingMatch[0];
115
+ const query = queryStr.slice(mentionsText.length).trim();
116
+ if (!query) {
117
+ continue;
118
+ }
119
+ const matches = [...mentionsText.matchAll(mentionRegex)];
120
+ for (const match of matches) {
121
+ const agentId = match[1];
122
+ const model = match[2];
123
+ if (agentId) {
124
+ parsedQueries.push({ agentId, query, model });
125
+ }
126
+ }
127
+ }
128
+ if (parsedQueries.length === 0) {
129
+ console.log('āŒ No valid queries found');
130
+ console.log('Usage: crewx query "<message>"');
131
+ console.log('Example (default agent): crewx query "analyze this code"');
132
+ console.log('Example (specific agent): crewx query "@backend analyze this code"');
133
+ console.log('Example (parallel): crewx query "@claude 1+1?" "@claude 2+2?"');
134
+ process.exit(1);
135
+ }
136
+ try {
137
+ const agentsResult = await crewXTool.listAgents();
138
+ const validAgentIds = new Set(agentsResult.availableAgents?.map((a) => a.id) || []);
139
+ const invalidAgents = parsedQueries
140
+ .filter(pq => !validAgentIds.has(pq.agentId))
141
+ .map(pq => pq.agentId);
142
+ if (invalidAgents.length > 0) {
143
+ const uniqueInvalid = [...new Set(invalidAgents)];
144
+ const errorMsg = `Error: Agent(s) not found: ${uniqueInvalid.map(a => `@${a}`).join(', ')}`;
145
+ console.error(errorMsg);
146
+ process.exit(1);
147
+ }
148
+ }
149
+ catch (error) {
150
+ const errorMsg = `Error: Failed to load agents - ${error instanceof Error ? error.message : 'Unknown error'}`;
151
+ console.error(errorMsg);
152
+ process.exit(1);
153
+ }
154
+ if (!args.raw) {
155
+ console.log(`šŸ” Processing ${parsedQueries.length} ${parsedQueries.length === 1 ? 'query' : 'queries'}`);
156
+ }
157
+ let result;
158
+ if (parsedQueries.length === 1) {
159
+ const firstQuery = parsedQueries[0];
160
+ if (!firstQuery) {
161
+ console.log('āŒ No valid queries found');
162
+ process.exit(1);
163
+ }
164
+ const { agentId, query, model } = firstQuery;
165
+ if (!args.raw) {
166
+ console.log(`šŸ“‹ Task: ${query}`);
167
+ console.log(`šŸ¤– Agent: @${agentId}${model ? `:${model}` : ''}`);
168
+ if (threadId) {
169
+ console.log(`šŸ”— Thread: ${threadId}`);
170
+ }
171
+ console.log('');
172
+ console.log(`šŸ”Ž Querying single agent: @${agentId}${model ? `:${model}` : ''}`);
173
+ console.log('─'.repeat(60));
174
+ }
175
+ const combinedContext = [
176
+ conversationContext,
177
+ contextFromPipe
178
+ ].filter(Boolean).join('\n\n');
179
+ result = await crewXTool.queryAgent({
180
+ agentId: agentId,
181
+ query: query,
182
+ context: combinedContext || undefined,
183
+ model: model,
184
+ messages: conversationMessages,
185
+ platform: 'cli'
186
+ });
187
+ if (!result.success) {
188
+ const errorMsg = `Error: ${result.error || 'Query failed'}`;
189
+ console.error(errorMsg);
190
+ process.exit(1);
191
+ }
192
+ if (conversationProvider && threadId && result.response) {
193
+ await conversationProvider.addMessage(threadId, os.userInfo().username, query, false);
194
+ await conversationProvider.addMessage(threadId, 'crewx', result.response, true);
195
+ }
196
+ if (args.raw) {
197
+ console.log(result.response || '');
198
+ }
199
+ else {
200
+ formatSingleAgentResult(result, agentId, query);
201
+ }
202
+ }
203
+ else {
204
+ if (!args.raw) {
205
+ console.log(`šŸš€ Querying ${parsedQueries.length} agents in parallel:`);
206
+ parsedQueries.forEach((pq, index) => {
207
+ console.log(` ${index + 1}. @${pq.agentId}: ${pq.query.substring(0, 50)}${pq.query.length > 50 ? '...' : ''}`);
208
+ });
209
+ if (threadId) {
210
+ console.log(`šŸ”— Thread: ${threadId}`);
211
+ }
212
+ console.log('─'.repeat(60));
213
+ }
214
+ const combinedContext = [
215
+ conversationContext,
216
+ contextFromPipe
217
+ ].filter(Boolean).join('\n\n');
218
+ const queries = parsedQueries.map(pq => ({
219
+ agentId: pq.agentId,
220
+ query: pq.query,
221
+ context: combinedContext || undefined,
222
+ model: pq.model,
223
+ messages: conversationMessages,
224
+ platform: 'cli'
225
+ }));
226
+ result = await crewXTool.queryAgentParallel({ queries });
227
+ const hasAnySuccess = result.results && result.results.some((r) => r.success);
228
+ const allFailed = result.results && result.results.every((r) => !r.success);
229
+ if (conversationProvider && threadId) {
230
+ for (const pq of parsedQueries) {
231
+ await conversationProvider.addMessage(threadId, os.userInfo().username, `@${pq.agentId}${pq.model ? `:${pq.model}` : ''} ${pq.query}`, false);
232
+ }
233
+ if (result.results && Array.isArray(result.results)) {
234
+ for (const agentResult of result.results) {
235
+ if (agentResult.success && agentResult.response) {
236
+ const agentName = `${agentResult.agentId}${agentResult.model ? `:${agentResult.model}` : ''}`;
237
+ await conversationProvider.addMessage(threadId, agentName, agentResult.response, true);
238
+ }
239
+ }
240
+ }
241
+ }
242
+ if (args.raw) {
243
+ if (result.results && Array.isArray(result.results)) {
244
+ result.results.forEach((agentResult) => {
245
+ if (agentResult.success) {
246
+ console.log(agentResult.response || '');
247
+ }
248
+ });
249
+ }
250
+ }
251
+ else {
252
+ const validAgentIds = parsedQueries.map(pq => pq.agentId);
253
+ formatParallelAgentResults(result, validAgentIds, '');
254
+ }
255
+ if (allFailed) {
256
+ const errorMsg = `Error: All agents failed`;
257
+ console.error(`\n${errorMsg}`);
258
+ process.exit(1);
259
+ }
260
+ else if (!hasAnySuccess) {
261
+ const errorMsg = `Error: Parallel query failed - ${result.error || 'Unknown error'}`;
262
+ console.error(errorMsg);
263
+ process.exit(1);
264
+ }
265
+ }
266
+ if (!args.raw) {
267
+ console.log('\nāœ… Query completed successfully');
268
+ }
269
+ }
270
+ catch (error) {
271
+ logger.error(`Query failed: ${error instanceof Error ? error.message : error}`);
272
+ console.log(`\nāŒ Query failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
273
+ process.exit(1);
274
+ }
275
+ }
276
+ function formatSingleAgentResult(result, agentId, taskText) {
277
+ console.log(`\nšŸ“Š Results from @${agentId}:`);
278
+ console.log('═'.repeat(60));
279
+ if (result.success) {
280
+ console.log(`🟢 Status: Success`);
281
+ console.log(`šŸ¤– Provider: ${result.provider || 'Unknown'}`);
282
+ console.log(`šŸ“ Task ID: ${result.taskId || 'N/A'}`);
283
+ console.log('');
284
+ if (result.response) {
285
+ console.log('šŸ“„ Response:');
286
+ console.log('─'.repeat(40));
287
+ console.log(result.response);
288
+ }
289
+ if (result.workingDirectory) {
290
+ console.log(`\nšŸ“ Working Directory: ${result.workingDirectory}`);
291
+ }
292
+ }
293
+ else {
294
+ console.log(`šŸ”“ Status: Failed`);
295
+ console.log(`āŒ Error: ${result.error || 'Unknown error'}`);
296
+ if (result.availableAgents && result.availableAgents.length > 0) {
297
+ console.log(`\nšŸ’” Available agents: ${result.availableAgents.join(', ')}`);
298
+ }
299
+ }
300
+ }
301
+ function formatParallelAgentResults(result, mentions, taskText) {
302
+ console.log('\nšŸ“Š Parallel Query Results:');
303
+ console.log('═'.repeat(60));
304
+ if (result.success && result.summary) {
305
+ const { summary } = result;
306
+ console.log(`šŸ“ˆ Summary:`);
307
+ console.log(` • Total Queries: ${summary.totalQueries}`);
308
+ console.log(` • Successful: ${summary.successful}`);
309
+ console.log(` • Failed: ${summary.failed}`);
310
+ console.log(` • Total Duration: ${summary.totalDuration}ms`);
311
+ console.log(` • Average Duration: ${summary.averageDuration}ms`);
312
+ console.log('');
313
+ if (result.results && Array.isArray(result.results)) {
314
+ result.results.forEach((agentResult, index) => {
315
+ console.log(`\n${index + 1}. Agent: @${agentResult.agentId} (${agentResult.provider}) - ${agentResult.duration}ms`);
316
+ if (agentResult.query) {
317
+ console.log(` šŸ“ Query: ${agentResult.query}`);
318
+ }
319
+ if (agentResult.taskId) {
320
+ console.log(` šŸ“‹ Task ID: ${agentResult.taskId}`);
321
+ }
322
+ console.log('─'.repeat(50));
323
+ if (agentResult.success) {
324
+ console.log(`🟢 Status: Success`);
325
+ if (agentResult.response) {
326
+ console.log('šŸ“„ Response:');
327
+ const response = agentResult.response.length > 500
328
+ ? agentResult.response.substring(0, 500) + '...\n[Response truncated - use single agent query for full response]'
329
+ : agentResult.response;
330
+ console.log(response);
331
+ }
332
+ }
333
+ else {
334
+ console.log(`šŸ”“ Status: Failed`);
335
+ console.log(`āŒ Error: ${agentResult.error || 'Unknown error'}`);
336
+ }
337
+ });
338
+ }
339
+ if (result.performance) {
340
+ console.log(`\n⚔ Performance Insights:`);
341
+ console.log(` • Fastest Query: ${result.performance.fastestQuery}ms`);
342
+ console.log(` • Slowest Query: ${result.performance.slowestQuery}ms`);
343
+ console.log(` • Time Saved: ${result.performance.timeSaved}ms (vs sequential)`);
344
+ }
345
+ }
346
+ else {
347
+ console.log(`šŸ”“ Status: Failed`);
348
+ console.log(`āŒ Error: ${result.error || 'Parallel query execution failed'}`);
349
+ }
350
+ }
351
+ //# 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
+ šŸ“¦ **CodeCrew Template Manager**
22
+
23
+ Available commands:
24
+ crewcode templates list - List available templates from GitHub
25
+ crewcode templates update - Clear cache and re-download templates
26
+
27
+ Templates are downloaded from:
28
+ https://github.com/sowonlabs/crewcode/tree/main/templates
29
+
30
+ Examples:
31
+ # List available templates
32
+ crewcode templates list
33
+
34
+ # Update template cache
35
+ crewcode templates update
36
+
37
+ # Use a specific template during init
38
+ crewcode init --template minimal
39
+ crewcode 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 @crewcode 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.minCodeCrewVersion) {
71
+ console.log(` Requires: CodeCrew >= ${versionInfo.minCodeCrewVersion}`);
72
+ }
73
+ console.log(` Templates: ${versionInfo.templates.join(', ')}`);
74
+ console.log('');
75
+ }
76
+ console.log('**Usage:**');
77
+ console.log(' crewcode init --template <name> --version <version>');
78
+ console.log(' crewcode init --template minimal # Use latest version');
79
+ console.log(' crewcode 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 @crewcode 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 `crewcode 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":"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"}
@@ -0,0 +1,22 @@
1
+ export interface CliOptions {
2
+ install: boolean;
3
+ log: boolean;
4
+ protocol: 'STDIO' | 'HTTP';
5
+ port: number;
6
+ allowTool: string[];
7
+ raw: boolean;
8
+ loadProjectContext: boolean;
9
+ projectContextMaxLength: number;
10
+ enableIntelligentCompression: boolean;
11
+ thread?: string;
12
+ command?: string;
13
+ query?: string | string[];
14
+ execute?: string | string[];
15
+ doctor?: boolean;
16
+ config?: string;
17
+ template?: string;
18
+ templateVersion?: string;
19
+ force?: boolean;
20
+ slackAgent?: string;
21
+ }
22
+ export declare function parseCliOptions(): CliOptions;