@thanhvn14/csvibe 0.1.1 → 0.1.3

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 (180) hide show
  1. package/.csvibe/state/approaches.json +1 -0
  2. package/README.md +142 -3
  3. package/dist/commands/brainstorm.d.ts +16 -0
  4. package/dist/commands/brainstorm.d.ts.map +1 -0
  5. package/dist/commands/brainstorm.js +186 -0
  6. package/dist/commands/brainstorm.js.map +1 -0
  7. package/dist/commands/doctor.d.ts +9 -0
  8. package/dist/commands/doctor.d.ts.map +1 -0
  9. package/dist/commands/doctor.js +72 -0
  10. package/dist/commands/doctor.js.map +1 -0
  11. package/dist/commands/help.d.ts.map +1 -1
  12. package/dist/commands/help.js +13 -7
  13. package/dist/commands/help.js.map +1 -1
  14. package/dist/commands/index.d.ts +3 -0
  15. package/dist/commands/index.d.ts.map +1 -1
  16. package/dist/commands/index.js +7 -1
  17. package/dist/commands/index.js.map +1 -1
  18. package/dist/commands/init/index.d.ts +7 -0
  19. package/dist/commands/init/index.d.ts.map +1 -0
  20. package/dist/commands/init/index.js +10 -0
  21. package/dist/commands/init/index.js.map +1 -0
  22. package/dist/commands/init/init-command.d.ts +10 -0
  23. package/dist/commands/init/init-command.d.ts.map +1 -0
  24. package/dist/commands/init/init-command.js +75 -0
  25. package/dist/commands/init/init-command.js.map +1 -0
  26. package/dist/commands/init/phases/config-handler.d.ts +10 -0
  27. package/dist/commands/init/phases/config-handler.d.ts.map +1 -0
  28. package/dist/commands/init/phases/config-handler.js +21 -0
  29. package/dist/commands/init/phases/config-handler.js.map +1 -0
  30. package/dist/commands/init/phases/detection-handler.d.ts +10 -0
  31. package/dist/commands/init/phases/detection-handler.d.ts.map +1 -0
  32. package/dist/commands/init/phases/detection-handler.js +80 -0
  33. package/dist/commands/init/phases/detection-handler.js.map +1 -0
  34. package/dist/commands/init/phases/download-handler.d.ts +9 -0
  35. package/dist/commands/init/phases/download-handler.d.ts.map +1 -0
  36. package/dist/commands/init/phases/download-handler.js +16 -0
  37. package/dist/commands/init/phases/download-handler.js.map +1 -0
  38. package/dist/commands/init/phases/prompt-handler.d.ts +10 -0
  39. package/dist/commands/init/phases/prompt-handler.d.ts.map +1 -0
  40. package/dist/commands/init/phases/prompt-handler.js +24 -0
  41. package/dist/commands/init/phases/prompt-handler.js.map +1 -0
  42. package/dist/commands/init/phases/scaffold-handler.d.ts +9 -0
  43. package/dist/commands/init/phases/scaffold-handler.d.ts.map +1 -0
  44. package/dist/commands/init/phases/scaffold-handler.js +18 -0
  45. package/dist/commands/init/phases/scaffold-handler.js.map +1 -0
  46. package/dist/commands/init/phases/validation-handler.d.ts +14 -0
  47. package/dist/commands/init/phases/validation-handler.d.ts.map +1 -0
  48. package/dist/commands/init/phases/validation-handler.js +50 -0
  49. package/dist/commands/init/phases/validation-handler.js.map +1 -0
  50. package/dist/commands/init/phases/vscode-handler.d.ts +9 -0
  51. package/dist/commands/init/phases/vscode-handler.d.ts.map +1 -0
  52. package/dist/commands/init/phases/vscode-handler.js +16 -0
  53. package/dist/commands/init/phases/vscode-handler.js.map +1 -0
  54. package/dist/commands/init/types.d.ts +28 -0
  55. package/dist/commands/init/types.d.ts.map +1 -0
  56. package/dist/commands/init/types.js +6 -0
  57. package/dist/commands/init/types.js.map +1 -0
  58. package/dist/commands/scout.d.ts +30 -0
  59. package/dist/commands/scout.d.ts.map +1 -0
  60. package/dist/commands/scout.js +116 -0
  61. package/dist/commands/scout.js.map +1 -0
  62. package/dist/config/constants.d.ts +2 -1
  63. package/dist/config/constants.d.ts.map +1 -1
  64. package/dist/config/constants.js +2 -1
  65. package/dist/config/constants.js.map +1 -1
  66. package/dist/domains/config/generator.d.ts +17 -0
  67. package/dist/domains/config/generator.d.ts.map +1 -0
  68. package/dist/domains/config/generator.js +67 -0
  69. package/dist/domains/config/generator.js.map +1 -0
  70. package/dist/domains/config/index.d.ts +8 -0
  71. package/dist/domains/config/index.d.ts.map +1 -0
  72. package/dist/domains/config/index.js +15 -0
  73. package/dist/domains/config/index.js.map +1 -0
  74. package/dist/domains/config/types.d.ts +39 -0
  75. package/dist/domains/config/types.d.ts.map +1 -0
  76. package/dist/domains/config/types.js +6 -0
  77. package/dist/domains/config/types.js.map +1 -0
  78. package/dist/domains/config/validator.d.ts +17 -0
  79. package/dist/domains/config/validator.d.ts.map +1 -0
  80. package/dist/domains/config/validator.js +54 -0
  81. package/dist/domains/config/validator.js.map +1 -0
  82. package/dist/domains/github/auth-api.d.ts +19 -0
  83. package/dist/domains/github/auth-api.d.ts.map +1 -0
  84. package/dist/domains/github/auth-api.js +196 -0
  85. package/dist/domains/github/auth-api.js.map +1 -0
  86. package/dist/domains/github/github-client.d.ts +323 -0
  87. package/dist/domains/github/github-client.d.ts.map +1 -0
  88. package/dist/domains/github/github-client.js +192 -0
  89. package/dist/domains/github/github-client.js.map +1 -0
  90. package/dist/domains/github/index.d.ts +9 -0
  91. package/dist/domains/github/index.d.ts.map +1 -0
  92. package/dist/domains/github/index.js +23 -0
  93. package/dist/domains/github/index.js.map +1 -0
  94. package/dist/domains/github/keychain.d.ts +19 -0
  95. package/dist/domains/github/keychain.d.ts.map +1 -0
  96. package/dist/domains/github/keychain.js +132 -0
  97. package/dist/domains/github/keychain.js.map +1 -0
  98. package/dist/domains/github/types.d.ts +40 -0
  99. package/dist/domains/github/types.d.ts.map +1 -0
  100. package/dist/domains/github/types.js +6 -0
  101. package/dist/domains/github/types.js.map +1 -0
  102. package/dist/domains/health-checks/auto-healer.d.ts +14 -0
  103. package/dist/domains/health-checks/auto-healer.d.ts.map +1 -0
  104. package/dist/domains/health-checks/auto-healer.js +160 -0
  105. package/dist/domains/health-checks/auto-healer.js.map +1 -0
  106. package/dist/domains/health-checks/check-runner.d.ts +10 -0
  107. package/dist/domains/health-checks/check-runner.d.ts.map +1 -0
  108. package/dist/domains/health-checks/check-runner.js +31 -0
  109. package/dist/domains/health-checks/check-runner.js.map +1 -0
  110. package/dist/domains/health-checks/checkers/auth-checker.d.ts +10 -0
  111. package/dist/domains/health-checks/checkers/auth-checker.d.ts.map +1 -0
  112. package/dist/domains/health-checks/checkers/auth-checker.js +90 -0
  113. package/dist/domains/health-checks/checkers/auth-checker.js.map +1 -0
  114. package/dist/domains/health-checks/checkers/deps-checker.d.ts +10 -0
  115. package/dist/domains/health-checks/checkers/deps-checker.d.ts.map +1 -0
  116. package/dist/domains/health-checks/checkers/deps-checker.js +150 -0
  117. package/dist/domains/health-checks/checkers/deps-checker.js.map +1 -0
  118. package/dist/domains/health-checks/checkers/project-checker.d.ts +10 -0
  119. package/dist/domains/health-checks/checkers/project-checker.d.ts.map +1 -0
  120. package/dist/domains/health-checks/checkers/project-checker.js +124 -0
  121. package/dist/domains/health-checks/checkers/project-checker.js.map +1 -0
  122. package/dist/domains/health-checks/checkers/system-checker.d.ts +10 -0
  123. package/dist/domains/health-checks/checkers/system-checker.d.ts.map +1 -0
  124. package/dist/domains/health-checks/checkers/system-checker.js +135 -0
  125. package/dist/domains/health-checks/checkers/system-checker.js.map +1 -0
  126. package/dist/domains/health-checks/index.d.ts +9 -0
  127. package/dist/domains/health-checks/index.d.ts.map +1 -0
  128. package/dist/domains/health-checks/index.js +21 -0
  129. package/dist/domains/health-checks/index.js.map +1 -0
  130. package/dist/domains/health-checks/report-generator.d.ts +18 -0
  131. package/dist/domains/health-checks/report-generator.d.ts.map +1 -0
  132. package/dist/domains/health-checks/report-generator.js +117 -0
  133. package/dist/domains/health-checks/report-generator.js.map +1 -0
  134. package/dist/domains/health-checks/types.d.ts +35 -0
  135. package/dist/domains/health-checks/types.d.ts.map +1 -0
  136. package/dist/domains/health-checks/types.js +6 -0
  137. package/dist/domains/health-checks/types.js.map +1 -0
  138. package/dist/index.js +33 -0
  139. package/dist/index.js.map +1 -1
  140. package/dist/utils/approaches-validator.d.ts +40 -0
  141. package/dist/utils/approaches-validator.d.ts.map +1 -0
  142. package/dist/utils/approaches-validator.js +101 -0
  143. package/dist/utils/approaches-validator.js.map +1 -0
  144. package/dist/utils/dependency-analyzer.d.ts +31 -0
  145. package/dist/utils/dependency-analyzer.d.ts.map +1 -0
  146. package/dist/utils/dependency-analyzer.js +294 -0
  147. package/dist/utils/dependency-analyzer.js.map +1 -0
  148. package/dist/utils/directory-analyzer.d.ts +23 -0
  149. package/dist/utils/directory-analyzer.d.ts.map +1 -0
  150. package/dist/utils/directory-analyzer.js +81 -0
  151. package/dist/utils/directory-analyzer.js.map +1 -0
  152. package/dist/utils/downloader.d.ts +3 -3
  153. package/dist/utils/downloader.d.ts.map +1 -1
  154. package/dist/utils/downloader.js +35 -65
  155. package/dist/utils/downloader.js.map +1 -1
  156. package/dist/utils/errors.d.ts +64 -10
  157. package/dist/utils/errors.d.ts.map +1 -1
  158. package/dist/utils/errors.js +136 -22
  159. package/dist/utils/errors.js.map +1 -1
  160. package/dist/utils/gh-cli.d.ts +4 -2
  161. package/dist/utils/gh-cli.d.ts.map +1 -1
  162. package/dist/utils/gh-cli.js +33 -38
  163. package/dist/utils/gh-cli.js.map +1 -1
  164. package/dist/utils/progress.d.ts +37 -0
  165. package/dist/utils/progress.d.ts.map +1 -0
  166. package/dist/utils/progress.js +121 -0
  167. package/dist/utils/progress.js.map +1 -0
  168. package/dist/utils/prompts.d.ts +5 -1
  169. package/dist/utils/prompts.d.ts.map +1 -1
  170. package/dist/utils/prompts.js +124 -64
  171. package/dist/utils/prompts.js.map +1 -1
  172. package/dist/utils/scaffolder.d.ts.map +1 -1
  173. package/dist/utils/scaffolder.js +1 -3
  174. package/dist/utils/scaffolder.js.map +1 -1
  175. package/package.json +7 -3
  176. package/test-jira-prompt.js +32 -0
  177. package/dist/commands/init.d.ts +0 -6
  178. package/dist/commands/init.d.ts.map +0 -1
  179. package/dist/commands/init.js +0 -147
  180. package/dist/commands/init.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"requirement":"Test","approaches":[{"name":"Only approach"}],"recommendation":"Test"}
package/README.md CHANGED
@@ -95,6 +95,138 @@ my-project/
95
95
  └── .gitignore # Updated with CSVibe entries
96
96
  ```
97
97
 
98
+ ### `csvibe scout`
99
+
100
+ Analyze project structure and gather context for AI planning.
101
+
102
+ **What it does:**
103
+ 1. Validates project initialization (`.csvibe/state/` must exist)
104
+ 2. Detects project type (Node.js, Python, Rust, monorepo)
105
+ 3. Analyzes directory structure (source, tests, config)
106
+ 4. Extracts dependencies from manifest files
107
+ 5. Infers tech stack from dependencies
108
+ 6. Detects build tool from lock files
109
+ 7. Generates architecture summary
110
+ 8. Outputs context to `.csvibe/state/scout-context.json`
111
+
112
+ **Example:**
113
+ ```bash
114
+ cd my-project
115
+ csvibe scout
116
+ ```
117
+
118
+ **Custom Output Path:**
119
+ ```bash
120
+ csvibe scout -o custom-path.json
121
+ ```
122
+
123
+ **Output Schema:**
124
+ ```json
125
+ {
126
+ "projectType": "node",
127
+ "techStack": ["TypeScript", "React", "Vite"],
128
+ "directories": {
129
+ "source": ["src", "lib"],
130
+ "tests": ["tests"],
131
+ "config": ["."]
132
+ },
133
+ "dependencies": {
134
+ "react": "^18.2.0",
135
+ "typescript": "^5.0.0"
136
+ },
137
+ "buildTool": "npm",
138
+ "architecture": "node with TypeScript, React, Vite"
139
+ }
140
+ ```
141
+
142
+ **Supported Project Types:**
143
+ - **Node.js:** package.json-based projects
144
+ - **Node.js Monorepo:** Projects with pnpm-workspace.yaml, lerna.json, nx.json, or turbo.json
145
+ - **Python:** pyproject.toml, requirements.txt, or Pipfile
146
+ - **Rust:** Cargo.toml projects
147
+
148
+ **Detected Tech Stack:**
149
+ - Frontend: React, Vue, Angular, Svelte, Next.js, Nuxt
150
+ - Backend: Express, Fastify, NestJS, Django, FastAPI, Flask, Actix
151
+ - CSS: Tailwind CSS, MUI, Bootstrap
152
+ - Databases: PostgreSQL, MongoDB, MySQL, Redis
153
+ - Build Tools: Vite, Webpack, Rollup, Turbopack
154
+ - Testing: Vitest, Jest, Pytest, Mocha
155
+
156
+ **Build Tool Detection:**
157
+ - **pnpm:** pnpm-lock.yaml
158
+ - **yarn:** yarn.lock
159
+ - **bun:** bun.lockb
160
+ - **npm:** package-lock.json (default)
161
+ - **poetry:** poetry.lock
162
+ - **pipenv:** Pipfile.lock
163
+ - **pip:** (default for Python)
164
+ - **cargo:** (Rust projects)
165
+
166
+ ### `csvibe brainstorm`
167
+
168
+ Generate solution approaches with trade-off analysis using GitHub Copilot Chat.
169
+
170
+ **What it does:**
171
+ 1. Validates project initialization and scout phase completion
172
+ 2. Prompts for requirement description
173
+ 3. Guides you to use @brainstorm in GitHub Copilot Chat
174
+ 4. Watches for approaches.json creation
175
+ 5. Validates and displays generated approaches
176
+ 6. Prepares for plan phase
177
+
178
+ **Prerequisites:**
179
+ - Project initialized with `csvibe init`
180
+ - Scout analysis completed with `csvibe scout`
181
+ - GitHub Copilot extension active in VSCode
182
+
183
+ **Example:**
184
+ ```bash
185
+ cd my-project
186
+ csvibe brainstorm
187
+ ```
188
+
189
+ **Workflow:**
190
+ 1. CLI prompts: "What feature or functionality do you want to add?"
191
+ 2. You answer: "Add JWT authentication"
192
+ 3. CLI displays Copilot Chat command to run
193
+ 4. You open Copilot Chat and run: `@brainstorm generate approaches for: Add JWT authentication`
194
+ 5. Copilot generates 2-3 approaches with pros/cons
195
+ 6. You copy JSON output to `.csvibe/state/approaches.json`
196
+ 7. CLI validates and displays summary
197
+ 8. Ready for `csvibe plan`
198
+
199
+ **Custom Output Path:**
200
+ ```bash
201
+ csvibe brainstorm -o custom-approaches.json
202
+ ```
203
+
204
+ **Output Schema:**
205
+ ```json
206
+ {
207
+ "requirement": "Add JWT authentication",
208
+ "approaches": [
209
+ {
210
+ "name": "JWT with Passport.js (Simple)",
211
+ "strategy": "Use existing Passport middleware...",
212
+ "technologies": ["passport", "passport-jwt", "jsonwebtoken"],
213
+ "pros": ["Battle-tested", "Rich ecosystem", "Minimal code"],
214
+ "cons": ["Session complexity", "Cookie security"],
215
+ "effort": "5-8 hours"
216
+ },
217
+ {
218
+ "name": "Custom JWT Middleware (Moderate)",
219
+ "strategy": "Create custom Express middleware...",
220
+ "technologies": ["jsonwebtoken", "bcryptjs"],
221
+ "pros": ["Full control", "Lighter weight", "Easier debugging"],
222
+ "cons": ["More code", "Edge cases", "Security risks"],
223
+ "effort": "8-12 hours"
224
+ }
225
+ ],
226
+ "recommendation": "Approach 1 - best balance of simplicity and robustness"
227
+ }
228
+ ```
229
+
98
230
  ## Troubleshooting
99
231
 
100
232
  ### Error: gh CLI not found
@@ -178,13 +310,16 @@ csvibe-cli/
178
310
  │ ├── commands/ # Command implementations
179
311
  │ │ ├── help.ts # Help command
180
312
  │ │ ├── version.ts # Version command
181
- │ │ └── init.ts # Init command (Story 2)
313
+ │ │ ├── init.ts # Init command (Story 2)
314
+ │ │ └── scout.ts # Scout command (Story 4)
182
315
  │ ├── utils/ # Utilities
183
316
  │ │ ├── gh-cli.ts # gh CLI validation
184
317
  │ │ ├── logger.ts # Colored output
185
318
  │ │ ├── errors.ts # Error handling
186
319
  │ │ ├── validators.ts # System validation
187
320
  │ │ ├── project-detector.ts # Project type detection (Story 2)
321
+ │ │ ├── directory-analyzer.ts # Directory structure analysis (Story 4)
322
+ │ │ ├── dependency-analyzer.ts # Dependency extraction (Story 4)
188
323
  │ │ ├── prompts.ts # Interactive prompts (Story 2)
189
324
  │ │ ├── config-generator.ts # Config file generation (Story 2)
190
325
  │ │ ├── scaffolder.ts # Directory scaffolding (Story 2)
@@ -197,12 +332,15 @@ csvibe-cli/
197
332
  │ │ ├── gh-cli.test.ts
198
333
  │ │ ├── validators.test.ts
199
334
  │ │ ├── project-detector.test.ts
335
+ │ │ ├── directory-analyzer.test.ts # Story 4
336
+ │ │ ├── dependency-analyzer.test.ts # Story 4
200
337
  │ │ ├── config-generator.test.ts
201
338
  │ │ ├── scaffolder.test.ts
202
339
  │ │ ├── vscode-validator.test.ts
203
340
  │ │ └── downloader.test.ts
204
341
  │ └── integration/ # Integration tests
205
- └── cli.test.ts
342
+ ├── cli.test.ts
343
+ │ └── scout-command.test.ts # Story 4
206
344
  ├── bin/
207
345
  │ └── csvibe.js # CLI entry point
208
346
  └── package.json
@@ -248,5 +386,6 @@ Report issues: [GitHub Issues](https://github.com/thanhvu0895/csvibe-engine/issu
248
386
  **Status:**
249
387
  - ✅ Story 1 (QS-262) Complete - CLI Installation Package
250
388
  - ✅ Story 2 (QS-263) Complete - Project Bootstrapping (`csvibe init`)
389
+ - ✅ Story 4 (QS-265) Complete - Scout Phase Implementation (`csvibe scout`)
251
390
 
252
- **Next:** Story 3 (QS-264) - Pipeline Runner (`csvibe run`)
391
+ **Next:** Story 5 (QS-266) - Brainstorm Phase Implementation
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Brainstorm command
3
+ * Generates solution approaches with trade-off analysis using GitHub Copilot Chat
4
+ */
5
+ /**
6
+ * Brainstorm command options
7
+ */
8
+ export interface BrainstormOptions {
9
+ output?: string;
10
+ requirement?: string;
11
+ }
12
+ /**
13
+ * Brainstorm command - Generate solution approaches with GitHub Copilot Chat
14
+ */
15
+ export declare function brainstormCommand(options?: BrainstormOptions): Promise<void>;
16
+ //# sourceMappingURL=brainstorm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brainstorm.d.ts","sourceRoot":"","sources":["../../src/commands/brainstorm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8FD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DtF"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * Brainstorm command
4
+ * Generates solution approaches with trade-off analysis using GitHub Copilot Chat
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.brainstormCommand = brainstormCommand;
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ const ora_1 = __importDefault(require("ora"));
46
+ const path_1 = __importDefault(require("path"));
47
+ const fs_extra_1 = __importDefault(require("fs-extra"));
48
+ const p = __importStar(require("@clack/prompts"));
49
+ const constants_1 = require("../config/constants");
50
+ const approaches_validator_1 = require("../utils/approaches-validator");
51
+ /**
52
+ * Prompt user for requirement description
53
+ */
54
+ async function promptRequirement() {
55
+ const requirement = await p.text({
56
+ message: 'What feature or functionality do you want to add?',
57
+ placeholder: 'e.g., Add user authentication with JWT',
58
+ validate: (value) => {
59
+ if (!value || value.trim().length < 10) {
60
+ return 'Please provide a detailed requirement (at least 10 characters)';
61
+ }
62
+ },
63
+ });
64
+ if (p.isCancel(requirement)) {
65
+ p.cancel('Operation cancelled');
66
+ process.exit(0);
67
+ }
68
+ return requirement.trim();
69
+ }
70
+ /**
71
+ * Display Copilot Chat instructions
72
+ */
73
+ function displayCopilotInstructions(requirement) {
74
+ console.log(chalk_1.default.bold.cyan('\n📋 GitHub Copilot Chat Instructions:\n'));
75
+ console.log(chalk_1.default.gray('1. Open GitHub Copilot Chat in VSCode (Ctrl+Shift+I)'));
76
+ console.log(chalk_1.default.gray('2. Type the following command:\n'));
77
+ const command = `@brainstorm generate approaches for: ${requirement}`;
78
+ console.log(chalk_1.default.yellow(` ${command}\n`));
79
+ console.log(chalk_1.default.gray('3. Review the generated approaches'));
80
+ console.log(chalk_1.default.gray('4. Copy the JSON output to:'));
81
+ console.log(chalk_1.default.cyan(` .csvibe/state/approaches.json\n`));
82
+ console.log(chalk_1.default.gray('The CLI will detect when the file is created and validate it.\n'));
83
+ }
84
+ /**
85
+ * Watch for approaches.json file creation
86
+ */
87
+ async function watchForApproaches(filePath) {
88
+ const spinner = (0, ora_1.default)('Waiting for approaches.json...').start();
89
+ spinner.text = chalk_1.default.gray('Watching for ') + chalk_1.default.cyan(path_1.default.relative(process.cwd(), filePath));
90
+ // Check if file already exists
91
+ if (await fs_extra_1.default.pathExists(filePath)) {
92
+ spinner.succeed('Approaches file found');
93
+ return;
94
+ }
95
+ // Poll for file creation (simple approach)
96
+ return new Promise((resolve, reject) => {
97
+ const interval = setInterval(async () => {
98
+ if (await fs_extra_1.default.pathExists(filePath)) {
99
+ clearInterval(interval);
100
+ spinner.succeed('Approaches file created');
101
+ resolve();
102
+ }
103
+ }, 1000); // Check every second
104
+ // Timeout after 10 minutes
105
+ setTimeout(() => {
106
+ clearInterval(interval);
107
+ spinner.fail('Timeout waiting for approaches.json');
108
+ reject(new Error('No approaches.json created within 10 minutes. Run command again when ready.'));
109
+ }, 600000);
110
+ });
111
+ }
112
+ /**
113
+ * Display approaches summary
114
+ */
115
+ function displayApproachesSummary(context) {
116
+ console.log(chalk_1.default.bold.cyan('\n✨ Solution Approaches:\n'));
117
+ console.log(chalk_1.default.gray('Requirement: ') + chalk_1.default.white(context.requirement) + '\n');
118
+ context.approaches.forEach((approach, index) => {
119
+ console.log(chalk_1.default.bold.white(`${index + 1}. ${approach.name}`));
120
+ console.log(chalk_1.default.gray(' Strategy: ') + chalk_1.default.white(approach.strategy));
121
+ console.log(chalk_1.default.gray(' Technologies: ') + chalk_1.default.cyan(approach.technologies.join(', ')));
122
+ console.log(chalk_1.default.gray(' Effort: ') + chalk_1.default.yellow(approach.effort));
123
+ console.log(chalk_1.default.green(' Pros: ') + approach.pros.join(', '));
124
+ console.log(chalk_1.default.red(' Cons: ') + approach.cons.join(', '));
125
+ console.log();
126
+ });
127
+ console.log(chalk_1.default.bold.cyan('💡 Recommendation: ') + chalk_1.default.white(context.recommendation));
128
+ }
129
+ /**
130
+ * Brainstorm command - Generate solution approaches with GitHub Copilot Chat
131
+ */
132
+ async function brainstormCommand(options = {}) {
133
+ console.log(chalk_1.default.bold.cyan('\n💭 Brainstorming Solution Approaches...\n'));
134
+ const projectRoot = process.cwd();
135
+ const outputPath = options.output ||
136
+ path_1.default.join(projectRoot, constants_1.CONSTANTS.STATE_DIR, 'approaches.json');
137
+ try {
138
+ // Step 1: Validate prerequisites
139
+ const spinner1 = (0, ora_1.default)('Validating project state').start();
140
+ const stateDir = path_1.default.join(projectRoot, constants_1.CONSTANTS.STATE_DIR);
141
+ if (!await fs_extra_1.default.pathExists(stateDir)) {
142
+ spinner1.fail('Project not initialized');
143
+ throw new Error('Run `csvibe init` first to set up project');
144
+ }
145
+ spinner1.succeed('Project state validated');
146
+ // Step 2: Validate scout context
147
+ const spinner2 = (0, ora_1.default)('Loading scout analysis').start();
148
+ const scoutContextPath = path_1.default.join(projectRoot, constants_1.CONSTANTS.STATE_DIR, 'scout-context.json');
149
+ if (!await fs_extra_1.default.pathExists(scoutContextPath)) {
150
+ spinner2.fail('Scout context not found');
151
+ throw new Error('Run `csvibe scout` first to analyze project');
152
+ }
153
+ const scoutContext = await fs_extra_1.default.readJson(scoutContextPath);
154
+ spinner2.succeed(`Scout analysis loaded: ${chalk_1.default.cyan(scoutContext.projectType)} project`);
155
+ // Step 3: Display project summary
156
+ console.log(chalk_1.default.gray('\nProject Context:'));
157
+ console.log(chalk_1.default.gray(' Type: ') + chalk_1.default.cyan(scoutContext.projectType));
158
+ console.log(chalk_1.default.gray(' Tech Stack: ') + chalk_1.default.cyan(scoutContext.techStack.join(', ')));
159
+ console.log(chalk_1.default.gray(' Build Tool: ') + chalk_1.default.cyan(scoutContext.buildTool));
160
+ console.log();
161
+ // Step 4: Prompt for requirement
162
+ const requirement = await promptRequirement();
163
+ // Step 5: Guide Copilot Chat interaction
164
+ displayCopilotInstructions(requirement);
165
+ // Step 6: Watch for approaches.json
166
+ await watchForApproaches(outputPath);
167
+ // Step 7: Validate and display
168
+ const approaches = await fs_extra_1.default.readJson(outputPath);
169
+ const validated = (0, approaches_validator_1.validateApproachesSchema)(approaches);
170
+ displayApproachesSummary(validated);
171
+ // Step 8: Prompt for next phase
172
+ console.log(chalk_1.default.bold.green('\n✓ Brainstorm phase complete!\n'));
173
+ console.log(chalk_1.default.gray('Approaches saved to: ') + chalk_1.default.cyan(path_1.default.relative(process.cwd(), outputPath)));
174
+ console.log(chalk_1.default.gray('\nNext step: ') + chalk_1.default.cyan('csvibe plan\n'));
175
+ }
176
+ catch (error) {
177
+ if (error instanceof Error) {
178
+ console.error(chalk_1.default.red(`\n✗ Error: ${error.message}\n`));
179
+ }
180
+ else {
181
+ console.error(chalk_1.default.red('\n✗ An unexpected error occurred\n'));
182
+ }
183
+ process.exit(1);
184
+ }
185
+ }
186
+ //# sourceMappingURL=brainstorm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brainstorm.js","sourceRoot":"","sources":["../../src/commands/brainstorm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Doctor command - Health checks and diagnostics
3
+ */
4
+ import { type DoctorOptions } from '../domains/health-checks';
5
+ /**
6
+ * Run health checks and diagnostics
7
+ */
8
+ export declare function doctorCommand(options?: DoctorOptions): Promise<void>;
9
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmE9E"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /**
3
+ * Doctor command - Health checks and diagnostics
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.doctorCommand = doctorCommand;
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const health_checks_1 = require("../domains/health-checks");
12
+ /**
13
+ * Run health checks and diagnostics
14
+ */
15
+ async function doctorCommand(options = {}) {
16
+ try {
17
+ console.log(chalk_1.default.bold.cyan('\n🔍 Running Health Checks\n'));
18
+ const report = await (0, health_checks_1.runHealthChecks)();
19
+ // JSON output mode
20
+ if (options.json) {
21
+ console.log((0, health_checks_1.generateJsonReport)(report));
22
+ process.exit(report.passed ? 0 : 1);
23
+ return;
24
+ }
25
+ // Terminal output
26
+ console.log((0, health_checks_1.generateReport)(report));
27
+ // Auto-fix mode
28
+ if (options.fix && report.fixable > 0) {
29
+ console.log(chalk_1.default.cyan('\n🔧 Attempting to auto-fix issues...\n'));
30
+ const fixableChecks = report.results
31
+ .flatMap((r) => r.checks)
32
+ .filter((c) => c.fixable && c.status !== 'pass');
33
+ const fixResults = await (0, health_checks_1.autoFixIssues)(fixableChecks);
34
+ console.log(chalk_1.default.bold('\n📊 Fix Results:\n'));
35
+ for (let i = 0; i < fixResults.length; i++) {
36
+ const result = fixResults[i];
37
+ const check = fixableChecks[i];
38
+ if (result.success) {
39
+ console.log(chalk_1.default.green(`✓ ${check.name}: ${result.message}`));
40
+ }
41
+ else {
42
+ console.log(chalk_1.default.red(`✗ ${check.name}: ${result.message}`));
43
+ if (result.error) {
44
+ console.log(chalk_1.default.dim(` Error: ${result.error}`));
45
+ }
46
+ }
47
+ }
48
+ console.log(chalk_1.default.yellow('\n💡 Please run "csvibe doctor" again to verify fixes\n'));
49
+ }
50
+ // Upload report to gist
51
+ if (options.report) {
52
+ try {
53
+ console.log(chalk_1.default.cyan('\n📤 Uploading report to GitHub Gist...\n'));
54
+ const url = await (0, health_checks_1.uploadToGist)(report);
55
+ console.log(chalk_1.default.green(`✓ Report uploaded: ${chalk_1.default.cyan(url)}\n`));
56
+ }
57
+ catch (error) {
58
+ console.error(chalk_1.default.red(`✗ Failed to upload report: ${error instanceof Error ? error.message : String(error)}`));
59
+ }
60
+ }
61
+ // Exit with appropriate code
62
+ if (options.checkOnly) {
63
+ process.exit(report.passed ? 0 : 1);
64
+ }
65
+ }
66
+ catch (error) {
67
+ console.error(chalk_1.default.red('\n✗ Health check failed:'));
68
+ console.error(error instanceof Error ? error.message : String(error));
69
+ process.exit(1);
70
+ }
71
+ }
72
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAgB,WAAW,IAAI,IAAI,CA0ClC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAgB,WAAW,IAAI,IAAI,CAgDlC"}
@@ -15,9 +15,12 @@ function helpCommand() {
15
15
  console.log('Usage:');
16
16
  console.log(' csvibe <command> [options]\n');
17
17
  console.log('Commands:');
18
- console.log(chalk_1.default.cyan(' init') + ' Initialize vibecoding in current project');
19
- console.log(chalk_1.default.cyan(' help') + ' Display this help message');
20
- console.log(chalk_1.default.cyan(' --version') + ' Display CLI version\n');
18
+ console.log(chalk_1.default.cyan(' init') + ' Initialize vibecoding in current project');
19
+ console.log(chalk_1.default.cyan(' doctor') + ' Run health checks and diagnostics');
20
+ console.log(chalk_1.default.cyan(' scout') + ' Analyze project structure and gather context');
21
+ console.log(chalk_1.default.cyan(' brainstorm') + ' Generate solution approaches with trade-off analysis');
22
+ console.log(chalk_1.default.cyan(' help') + ' Display this help message');
23
+ console.log(chalk_1.default.cyan(' --version') + ' Display CLI version\n');
21
24
  console.log('Prerequisites:');
22
25
  console.log(' • Node.js >= 16.0.0');
23
26
  console.log(' • GitHub CLI (gh) installed and authenticated');
@@ -32,10 +35,13 @@ function helpCommand() {
32
35
  console.log(chalk_1.default.gray(' 3. Initialize vibecoding:'));
33
36
  console.log(chalk_1.default.gray(' $ csvibe init\n'));
34
37
  console.log('Examples:');
35
- console.log(chalk_1.default.gray(' $ csvibe init # Bootstrap project'));
36
- console.log(chalk_1.default.gray(' $ csvibe init --force # Overwrite existing setup'));
37
- console.log(chalk_1.default.gray(' $ csvibe --version # Show version'));
38
- console.log(chalk_1.default.gray(' $ csvibe --help # Show help\n'));
38
+ console.log(chalk_1.default.gray(' $ csvibe init # Bootstrap project'));
39
+ console.log(chalk_1.default.gray(' $ csvibe doctor # Run health checks'));
40
+ console.log(chalk_1.default.gray(' $ csvibe doctor --fix # Auto-fix issues'));
41
+ console.log(chalk_1.default.gray(' $ csvibe scout # Analyze project'));
42
+ console.log(chalk_1.default.gray(' $ csvibe brainstorm # Generate approaches'));
43
+ console.log(chalk_1.default.gray(' $ csvibe --version # Show version'));
44
+ console.log(chalk_1.default.gray(' $ csvibe --help # Show help\n'));
39
45
  console.log('System Information:');
40
46
  console.log(` Platform: ${(0, validators_1.getPlatform)()}`);
41
47
  console.log(` Node.js: ${process.version}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,7 @@
4
4
  export { helpCommand } from './help';
5
5
  export { versionCommand, getVersion } from './version';
6
6
  export { initCommand } from './init';
7
+ export { doctorCommand } from './doctor';
8
+ export { scoutCommand } from './scout';
9
+ export { brainstormCommand } from './brainstorm';
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Command exports
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.initCommand = exports.getVersion = exports.versionCommand = exports.helpCommand = void 0;
6
+ exports.brainstormCommand = exports.scoutCommand = exports.doctorCommand = exports.initCommand = exports.getVersion = exports.versionCommand = exports.helpCommand = void 0;
7
7
  var help_1 = require("./help");
8
8
  Object.defineProperty(exports, "helpCommand", { enumerable: true, get: function () { return help_1.helpCommand; } });
9
9
  var version_1 = require("./version");
@@ -11,4 +11,10 @@ Object.defineProperty(exports, "versionCommand", { enumerable: true, get: functi
11
11
  Object.defineProperty(exports, "getVersion", { enumerable: true, get: function () { return version_1.getVersion; } });
12
12
  var init_1 = require("./init");
13
13
  Object.defineProperty(exports, "initCommand", { enumerable: true, get: function () { return init_1.initCommand; } });
14
+ var doctor_1 = require("./doctor");
15
+ Object.defineProperty(exports, "doctorCommand", { enumerable: true, get: function () { return doctor_1.doctorCommand; } });
16
+ var scout_1 = require("./scout");
17
+ Object.defineProperty(exports, "scoutCommand", { enumerable: true, get: function () { return scout_1.scoutCommand; } });
18
+ var brainstorm_1 = require("./brainstorm");
19
+ Object.defineProperty(exports, "brainstormCommand", { enumerable: true, get: function () { return brainstorm_1.brainstormCommand; } });
14
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,qCAAuD;AAA9C,yGAAA,cAAc,OAAA;AAAE,qGAAA,UAAU,OAAA;AACnC,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,qCAAuD;AAA9C,yGAAA,cAAc,OAAA;AAAE,qGAAA,UAAU,OAAA;AACnC,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AACtB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,2CAAiD;AAAxC,+GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Init command facade
3
+ * Public API for init command
4
+ */
5
+ export { initCommand } from './init-command';
6
+ export type { InitOptions, ProjectInfo, JiraCredentials } from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Init command facade
4
+ * Public API for init command
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.initCommand = void 0;
8
+ var init_command_1 = require("./init-command");
9
+ Object.defineProperty(exports, "initCommand", { enumerable: true, get: function () { return init_command_1.initCommand; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Init command orchestrator
3
+ * Coordinates 7 phase handlers for CSVibe project initialization
4
+ */
5
+ import type { InitOptions } from './types';
6
+ /**
7
+ * Initialize CSVibe project with phase-based workflow
8
+ */
9
+ export declare function initCommand(options?: InitOptions): Promise<void>;
10
+ //# sourceMappingURL=init-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-command.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init-command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAW3C;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD1E"}