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,355 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.InitHandler = void 0;
13
+ exports.handleInit = handleInit;
14
+ const common_1 = require("@nestjs/common");
15
+ const fs_1 = require("fs");
16
+ const path_1 = require("path");
17
+ const task_management_service_1 = require("../services/task-management.service");
18
+ const result_formatter_service_1 = require("../services/result-formatter.service");
19
+ const template_service_1 = require("../services/template.service");
20
+ let InitHandler = class InitHandler {
21
+ constructor(taskManagementService, resultFormatterService, templateService) {
22
+ this.taskManagementService = taskManagementService;
23
+ this.resultFormatterService = resultFormatterService;
24
+ this.templateService = templateService;
25
+ }
26
+ async handle(options = {}) {
27
+ const taskId = this.taskManagementService.createTask({
28
+ type: 'init',
29
+ command: 'crewx init',
30
+ options: options
31
+ });
32
+ try {
33
+ this.taskManagementService.addTaskLog(taskId, {
34
+ level: 'info',
35
+ message: 'Starting CrewX project initialization'
36
+ });
37
+ const workingDir = options.workingDirectory || process.cwd();
38
+ const configPath = options.config || 'crewx.yaml';
39
+ const fullConfigPath = (0, path_1.join)(workingDir, configPath);
40
+ const templateName = options.template || 'default';
41
+ const templateVersion = options.templateVersion || 'main';
42
+ if ((0, fs_1.existsSync)(fullConfigPath) && !options.force) {
43
+ this.taskManagementService.addTaskLog(taskId, {
44
+ level: 'warn',
45
+ message: `Configuration file already exists: ${fullConfigPath}`
46
+ });
47
+ const message = `⚠️ CrewX configuration already exists at ${configPath}\n\nUse --force to overwrite existing configuration.`;
48
+ this.taskManagementService.completeTask(taskId, { message }, false);
49
+ return { success: false, message, taskId };
50
+ }
51
+ const logDir = (0, path_1.join)(workingDir, '.crewx', 'logs');
52
+ if (!(0, fs_1.existsSync)(logDir)) {
53
+ (0, fs_1.mkdirSync)(logDir, { recursive: true });
54
+ this.taskManagementService.addTaskLog(taskId, {
55
+ level: 'info',
56
+ message: `Created logs directory: ${logDir}`
57
+ });
58
+ }
59
+ const templatesDir = (0, path_1.join)(workingDir, '.crewx', 'templates');
60
+ if (!(0, fs_1.existsSync)(templatesDir)) {
61
+ (0, fs_1.mkdirSync)(templatesDir, { recursive: true });
62
+ this.taskManagementService.addTaskLog(taskId, {
63
+ level: 'info',
64
+ message: `Created templates directory: ${templatesDir}`
65
+ });
66
+ try {
67
+ const { readFileSync, writeFileSync } = require('fs');
68
+ const templateSource = (0, path_1.join)(__dirname, '..', '..', 'documents', 'templates', 'conversation-history-default.hbs');
69
+ const templateDest = (0, path_1.join)(templatesDir, 'conversation-history-default.hbs');
70
+ if ((0, fs_1.existsSync)(templateSource)) {
71
+ const content = readFileSync(templateSource, 'utf8');
72
+ writeFileSync(templateDest, content);
73
+ this.taskManagementService.addTaskLog(taskId, {
74
+ level: 'info',
75
+ message: `Copied default conversation template`
76
+ });
77
+ }
78
+ }
79
+ catch (error) {
80
+ this.taskManagementService.addTaskLog(taskId, {
81
+ level: 'warn',
82
+ message: `Could not copy default template (will use fallback): ${error instanceof Error ? error.message : String(error)}`
83
+ });
84
+ }
85
+ }
86
+ let configContent;
87
+ try {
88
+ this.taskManagementService.addTaskLog(taskId, {
89
+ level: 'info',
90
+ message: `Downloading template '${templateName}' from GitHub (${templateVersion})...`
91
+ });
92
+ configContent = await this.templateService.downloadTemplate(templateName, templateVersion);
93
+ this.taskManagementService.addTaskLog(taskId, {
94
+ level: 'info',
95
+ message: `✅ Successfully downloaded template from GitHub`
96
+ });
97
+ }
98
+ catch (downloadError) {
99
+ this.taskManagementService.addTaskLog(taskId, {
100
+ level: 'warn',
101
+ message: `Failed to download template: ${downloadError?.message || downloadError}`
102
+ });
103
+ this.taskManagementService.addTaskLog(taskId, {
104
+ level: 'info',
105
+ message: 'Using local default template as fallback...'
106
+ });
107
+ configContent = this.generateDefaultAgentsConfig(workingDir);
108
+ }
109
+ (0, fs_1.writeFileSync)(fullConfigPath, configContent, 'utf8');
110
+ this.taskManagementService.addTaskLog(taskId, {
111
+ level: 'info',
112
+ message: `Created configuration file: ${fullConfigPath}`
113
+ });
114
+ const successMessage = this.formatSuccessMessage(configPath, workingDir, templateName);
115
+ this.taskManagementService.completeTask(taskId, { message: successMessage }, true);
116
+ return { success: true, message: successMessage, taskId };
117
+ }
118
+ catch (error) {
119
+ const errorMessage = `Failed to initialize CrewX project: ${error instanceof Error ? error.message : String(error)}`;
120
+ this.taskManagementService.addTaskLog(taskId, {
121
+ level: 'error',
122
+ message: errorMessage
123
+ });
124
+ this.taskManagementService.completeTask(taskId, { error: errorMessage }, false);
125
+ return { success: false, message: errorMessage, taskId };
126
+ }
127
+ }
128
+ generateDefaultAgentsConfig(workingDir) {
129
+ return `# CrewX Agents Configuration
130
+ # Generated by 'crewx init'
131
+
132
+ agents:
133
+ # CrewX Assistant - Your guide to using CrewX
134
+ - id: "crewx"
135
+ name: "CrewX Assistant"
136
+ role: "assistant"
137
+ team: "CrewX"
138
+ working_directory: "./"
139
+ options:
140
+ query:
141
+ - "--add-dir=."
142
+ inline:
143
+ type: "agent"
144
+ provider: "claude" # Will fallback to gemini → copilot if claude is unavailable
145
+ system_prompt: |
146
+ You are the CrewX Assistant, designed to help users with:
147
+
148
+ 1. **Getting Started with CrewX**:
149
+ - Explain how to use crewx CLI commands (query, execute, init, doctor)
150
+ - Guide users through agent configuration in crewx.yaml
151
+ - Help with model selection using @agent:model syntax
152
+
153
+ 2. **Agent Configuration**:
154
+ - Assist with creating custom agents in crewx.yaml
155
+ - Explain inline configuration (provider, model, system_prompt)
156
+ - Help configure options for query and execute modes
157
+
158
+ 3. **Troubleshooting**:
159
+ - Diagnose CLI tool availability issues
160
+ - Explain error messages and suggest solutions
161
+ - Guide users through authentication setup for claude/gemini/copilot
162
+
163
+ 4. **Best Practices**:
164
+ - Recommend which models to use for different tasks
165
+ - Suggest parallel vs sequential execution strategies
166
+ - Advise on cost-effective model selection
167
+
168
+ Always be helpful, concise, and provide practical examples.
169
+ Focus on CrewX-specific guidance and tool usage.
170
+
171
+ # Built-in AI Assistants (Ready to use)
172
+ - id: "claude"
173
+ name: "Claude AI"
174
+ role: "AI Assistant"
175
+ team: "AI Team"
176
+ working_directory: "./"
177
+ inline:
178
+ type: "agent"
179
+ provider: "claude"
180
+ system_prompt: |
181
+ Claude AI assistant for general tasks, code analysis, and writing assistance.
182
+
183
+ Specialties: General AI, Code Analysis, Writing, Problem Solving
184
+ Capabilities: general_assistance, code_analysis, writing
185
+
186
+ - id: "gemini"
187
+ name: "Gemini AI"
188
+ role: "AI Assistant"
189
+ team: "AI Team"
190
+ working_directory: "./"
191
+ inline:
192
+ type: "agent"
193
+ provider: "gemini"
194
+ system_prompt: |
195
+ Google Gemini AI assistant for analysis, development, and problem-solving.
196
+
197
+ Specialties: Code Analysis, Architecture Design, Performance Optimization
198
+ Capabilities: code_analysis, architecture_design, optimization
199
+
200
+ - id: "copilot"
201
+ name: "GitHub Copilot"
202
+ role: "AI Assistant"
203
+ team: "AI Team"
204
+ working_directory: "./"
205
+ inline:
206
+ type: "agent"
207
+ provider: "copilot"
208
+ system_prompt: |
209
+ GitHub Copilot AI assistant for code development and engineering tasks.
210
+
211
+ Specialties: Code Development, Best Practices, Testing
212
+ Capabilities: code_development, testing, best_practices
213
+
214
+ # Custom Project Agents (Example configurations)
215
+ # Uncomment and customize the sections below for your project needs
216
+
217
+ # - id: "backend_developer"
218
+ # name: "Backend Developer"
219
+ # role: "developer"
220
+ # team: "Development Team"
221
+ # working_directory: "${workingDir}"
222
+ # options:
223
+ # - "--allowedTools=Edit,Bash,Computer"
224
+ # - "--add-dir=."
225
+ # inline:
226
+ # type: "agent"
227
+ # provider: "claude"
228
+ # system_prompt: |
229
+ # You are a senior backend developer specializing in server-side development.
230
+ # Focus on API design, database architecture, and system performance.
231
+ #
232
+ # Your expertise includes:
233
+ # - RESTful API development
234
+ # - Database design and optimization
235
+ # - Server architecture and scalability
236
+ # - Security best practices
237
+
238
+ # - id: "frontend_developer"
239
+ # name: "Frontend Developer"
240
+ # role: "developer"
241
+ # team: "Development Team"
242
+ # working_directory: "${workingDir}"
243
+ # options:
244
+ # - "--allow-tool=terminal"
245
+ # - "--allow-tool=files"
246
+ # - "--add-dir=."
247
+ # inline:
248
+ # type: "agent"
249
+ # provider: "copilot"
250
+ # system_prompt: |
251
+ # You are a senior frontend developer specializing in user interface development.
252
+ # Focus on user experience, responsive design, and modern frontend frameworks.
253
+ #
254
+ # Your expertise includes:
255
+ # - React, Vue, Angular development
256
+ # - CSS/SCSS and responsive design
257
+ # - JavaScript/TypeScript best practices
258
+ # - Performance optimization
259
+
260
+ # - id: "devops_engineer"
261
+ # name: "DevOps Engineer"
262
+ # role: "engineer"
263
+ # team: "Infrastructure Team"
264
+ # working_directory: "${workingDir}"
265
+ # inline:
266
+ # type: "agent"
267
+ # provider: "gemini"
268
+ # system_prompt: |
269
+ # You are a DevOps engineer specializing in infrastructure and deployment.
270
+ # Focus on automation, monitoring, and system reliability.
271
+ #
272
+ # Your expertise includes:
273
+ # - CI/CD pipeline design
274
+ # - Container orchestration (Docker, Kubernetes)
275
+ # - Cloud infrastructure (AWS, GCP, Azure)
276
+ # - Monitoring and logging systems
277
+
278
+ # Usage Examples:
279
+ # crewx query "@claude analyze this codebase"
280
+ # crewx query "@claude @gemini @copilot review security practices"
281
+ # crewx execute "@backend_developer create user authentication API"
282
+ # crewx execute "@frontend_developer @backend_developer implement OAuth flow"
283
+ `;
284
+ }
285
+ formatSuccessMessage(configPath, workingDir, templateName) {
286
+ const templateInfo = templateName && templateName !== 'default'
287
+ ? `\n**Template Used:** \`${templateName}\``
288
+ : '';
289
+ return `🎉 **CrewX Project Initialized Successfully!**
290
+
291
+ **Configuration File Created:** \`${configPath}\`
292
+ **Working Directory:** \`${workingDir}\`
293
+ **Logs Directory:** \`.crewx/logs\`${templateInfo}
294
+
295
+ **Available Agents:**
296
+ • \`@claude\` - Claude AI Assistant (General purpose)
297
+ • \`@gemini\` - Gemini AI Assistant (Analysis & Architecture)
298
+ • \`@copilot\` - GitHub Copilot (Code Development)
299
+
300
+ **Next Steps:**
301
+ 1. **Test your setup:**
302
+ \`crewx doctor\`
303
+
304
+ 2. **Try a simple query:**
305
+ \`crewx query "@claude hello world"\`
306
+
307
+ 3. **Customize your agents:**
308
+ Edit \`${configPath}\` to add project-specific agents
309
+
310
+ 4. **Learn more:**
311
+ \`crewx --help\`
312
+
313
+ **Pro Tips:**
314
+ • Use multiple agents for different perspectives: \`crewx query "@claude @gemini analyze this code"\`
315
+ • Add custom agents in \`${configPath}\` for specialized tasks
316
+ • Check agent status anytime with \`crewx doctor\`
317
+
318
+ Happy coding with CrewX! 🚀`;
319
+ }
320
+ };
321
+ exports.InitHandler = InitHandler;
322
+ exports.InitHandler = InitHandler = __decorate([
323
+ (0, common_1.Injectable)(),
324
+ __metadata("design:paramtypes", [task_management_service_1.TaskManagementService,
325
+ result_formatter_service_1.ResultFormatterService,
326
+ template_service_1.TemplateService])
327
+ ], InitHandler);
328
+ const common_2 = require("@nestjs/common");
329
+ const logger = new common_2.Logger('InitHandler');
330
+ async function handleInit(app, args) {
331
+ logger.log('Init command received');
332
+ try {
333
+ const initHandler = app.get(InitHandler);
334
+ console.log('🚀 Initializing CrewX project...');
335
+ const result = await initHandler.handle({
336
+ config: args.config,
337
+ workingDirectory: process.cwd(),
338
+ force: args.force || false,
339
+ template: args.template || 'default',
340
+ templateVersion: args.templateVersion || 'main',
341
+ });
342
+ console.log(result.message);
343
+ if (!result.success) {
344
+ process.exit(1);
345
+ }
346
+ }
347
+ catch (error) {
348
+ logger.error(`Init failed: ${error instanceof Error ? error.message : error}`);
349
+ console.log('❌ Failed to initialize CrewX project');
350
+ console.log(` Error: ${error instanceof Error ? error.message : error}`);
351
+ console.log(' Try running with --force or check file permissions');
352
+ process.exit(1);
353
+ }
354
+ }
355
+ //# sourceMappingURL=init.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.handler.js","sourceRoot":"","sources":["../../src/cli/init.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAoWA,gCAmCC;AAvYD,2CAA4C;AAC5C,2BAA0D;AAC1D,+BAA4B;AAC5B,iFAA4E;AAC5E,mFAA8E;AAC9E,mEAA+D;AAWxD,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YACmB,qBAA4C,EAC5C,sBAA8C,EAC9C,eAAgC;QAFhC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,UAAuB,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC;YACnD,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC5C,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,uCAAuC;aACjD,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;YAClD,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;YACnD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC;YAG1D,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC5C,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,sCAAsC,cAAc,EAAE;iBAChE,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,6CAA6C,UAAU,sDAAsD,CAAC;gBAE9H,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7C,CAAC;YAGD,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,IAAA,eAAU,EAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,IAAA,cAAS,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC5C,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,2BAA2B,MAAM,EAAE;iBAC7C,CAAC,CAAC;YACL,CAAC;YAGD,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,IAAA,cAAS,EAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC5C,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,gCAAgC,YAAY,EAAE;iBACxD,CAAC,CAAC;gBAGH,IAAI,CAAC;oBACH,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtD,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,kCAAkC,CAAC,CAAC;oBACjH,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,YAAY,EAAE,kCAAkC,CAAC,CAAC;oBAE5E,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;wBAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;wBACrD,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;wBACrC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;4BAC5C,KAAK,EAAE,MAAM;4BACb,OAAO,EAAE,sCAAsC;yBAChD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAEf,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;wBAC5C,KAAK,EAAE,MAAM;wBACb,OAAO,EAAE,wDAAwD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAC1H,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAGD,IAAI,aAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC5C,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,yBAAyB,YAAY,kBAAkB,eAAe,MAAM;iBACtF,CAAC,CAAC;gBAEH,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;gBAE3F,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC5C,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,gDAAgD;iBAC1D,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,aAAkB,EAAE,CAAC;gBAE5B,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC5C,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,gCAAgC,aAAa,EAAE,OAAO,IAAI,aAAa,EAAE;iBACnF,CAAC,CAAC;gBACH,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;oBAC5C,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,6CAA6C;iBACvD,CAAC,CAAC;gBAEH,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC;YAGD,IAAA,kBAAa,EAAC,cAAc,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAErD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC5C,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,+BAA+B,cAAc,EAAE;aACzD,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YAEvF,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;YACnF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QAE5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACrH,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC5C,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;YAChF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,2BAA2B,CAAC,UAAkB;QACpD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4FiB,UAAU;;;;;;;;;;;;;;;;;;;;;4BAqBV,UAAU;;;;;;;;;;;;;;;;;;;;;;4BAsBV,UAAU;;;;;;;;;;;;;;;;;;;CAmBrC,CAAC;IACA,CAAC;IAEO,oBAAoB,CAAC,UAAkB,EAAE,UAAkB,EAAE,YAAqB;QACxF,MAAM,YAAY,GAAG,YAAY,IAAI,YAAY,KAAK,SAAS;YAC7D,CAAC,CAAC,0BAA0B,YAAY,IAAI;YAC5C,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;;oCAEyB,UAAU;2BACnB,UAAU;qCACA,YAAY;;;;;;;;;;;;;;;YAerC,UAAU;;;;;;;2BAOK,UAAU;;;4BAGT,CAAC;IAC3B,CAAC;CACF,CAAA;AAxUY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAG+B,+CAAqB;QACpB,iDAAsB;QAC7B,kCAAe;GAJxC,WAAW,CAwUvB;AAGD,2CAAwC;AAGxC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,aAAa,CAAC,CAAC;AAMlC,KAAK,UAAU,UAAU,CAAC,GAAQ,EAAE,IAAgB;IACzD,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAEpC,IAAI,CAAC;QAEH,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEzC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAGhD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,OAAO,CAAC,GAAG,EAAE;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;YACpC,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,MAAM;SAChD,CAAC,CAAC;QAGH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAG/E,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QAErE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { CliOptions } from '../cli-options';
2
+ export declare function handleQuery(app: any, args: CliOptions): Promise<void>;