@thanhvn14/csvibe 0.1.0

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 (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +252 -0
  3. package/bin/csvibe.js +9 -0
  4. package/dist/commands/help.d.ts +5 -0
  5. package/dist/commands/help.d.ts.map +1 -0
  6. package/dist/commands/help.js +47 -0
  7. package/dist/commands/help.js.map +1 -0
  8. package/dist/commands/index.d.ts +7 -0
  9. package/dist/commands/index.d.ts.map +1 -0
  10. package/dist/commands/index.js +14 -0
  11. package/dist/commands/index.js.map +1 -0
  12. package/dist/commands/init.d.ts +6 -0
  13. package/dist/commands/init.d.ts.map +1 -0
  14. package/dist/commands/init.js +147 -0
  15. package/dist/commands/init.js.map +1 -0
  16. package/dist/commands/version.d.ts +9 -0
  17. package/dist/commands/version.d.ts.map +1 -0
  18. package/dist/commands/version.js +23 -0
  19. package/dist/commands/version.js.map +1 -0
  20. package/dist/config/constants.d.ts +23 -0
  21. package/dist/config/constants.d.ts.map +1 -0
  22. package/dist/config/constants.js +34 -0
  23. package/dist/config/constants.js.map +1 -0
  24. package/dist/index.d.ts +7 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +51 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/utils/config-generator.d.ts +25 -0
  29. package/dist/utils/config-generator.d.ts.map +1 -0
  30. package/dist/utils/config-generator.js +55 -0
  31. package/dist/utils/config-generator.js.map +1 -0
  32. package/dist/utils/downloader.d.ts +12 -0
  33. package/dist/utils/downloader.d.ts.map +1 -0
  34. package/dist/utils/downloader.js +142 -0
  35. package/dist/utils/downloader.js.map +1 -0
  36. package/dist/utils/errors.d.ts +32 -0
  37. package/dist/utils/errors.d.ts.map +1 -0
  38. package/dist/utils/errors.js +79 -0
  39. package/dist/utils/errors.js.map +1 -0
  40. package/dist/utils/gh-cli.d.ts +33 -0
  41. package/dist/utils/gh-cli.d.ts.map +1 -0
  42. package/dist/utils/gh-cli.js +143 -0
  43. package/dist/utils/gh-cli.js.map +1 -0
  44. package/dist/utils/logger.d.ts +43 -0
  45. package/dist/utils/logger.d.ts.map +1 -0
  46. package/dist/utils/logger.js +71 -0
  47. package/dist/utils/logger.js.map +1 -0
  48. package/dist/utils/project-detector.d.ts +23 -0
  49. package/dist/utils/project-detector.d.ts.map +1 -0
  50. package/dist/utils/project-detector.js +95 -0
  51. package/dist/utils/project-detector.js.map +1 -0
  52. package/dist/utils/prompts.d.ts +22 -0
  53. package/dist/utils/prompts.d.ts.map +1 -0
  54. package/dist/utils/prompts.js +100 -0
  55. package/dist/utils/prompts.js.map +1 -0
  56. package/dist/utils/scaffolder.d.ts +12 -0
  57. package/dist/utils/scaffolder.d.ts.map +1 -0
  58. package/dist/utils/scaffolder.js +67 -0
  59. package/dist/utils/scaffolder.js.map +1 -0
  60. package/dist/utils/validators.d.ts +25 -0
  61. package/dist/utils/validators.d.ts.map +1 -0
  62. package/dist/utils/validators.js +62 -0
  63. package/dist/utils/validators.js.map +1 -0
  64. package/dist/utils/vscode-validator.d.ts +16 -0
  65. package/dist/utils/vscode-validator.d.ts.map +1 -0
  66. package/dist/utils/vscode-validator.js +56 -0
  67. package/dist/utils/vscode-validator.js.map +1 -0
  68. package/package.json +47 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Thanh Vu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,252 @@
1
+ # CSVibe CLI
2
+
3
+ CSVibe CLI - GitHub Copilot Vibecoding Workflow
4
+
5
+ ## Prerequisites
6
+
7
+ - **Node.js** >= 16.0.0 ([Download](https://nodejs.org/))
8
+ - **GitHub CLI (gh)** ([Installation Guide](https://github.com/cli/cli#installation))
9
+ - **Access** to `thanhvu0895/csvibe-engine` private repository
10
+
11
+ ## Installation
12
+
13
+ ### Global Installation
14
+
15
+ ```bash
16
+ npm install -g @thanhvn14/csvibe
17
+ ```
18
+
19
+ ### Verify Installation
20
+
21
+ ```bash
22
+ csvibe --version
23
+ csvibe --help
24
+ ```
25
+
26
+ ## Quick Start
27
+
28
+ 1. **Authenticate GitHub CLI:**
29
+ ```bash
30
+ gh auth login
31
+ ```
32
+
33
+ 2. **Initialize vibecoding in your project:**
34
+ ```bash
35
+ cd my-project
36
+ csvibe init
37
+ ```
38
+
39
+ 3. **Start coding with AI:**
40
+ Open your project in VSCode and use GitHub Copilot with the installed `.agent` files.
41
+
42
+ ## Commands
43
+
44
+ ### `csvibe --version`
45
+ Display CLI version.
46
+
47
+ ```bash
48
+ $ csvibe --version
49
+ csvibe v0.1.0
50
+ ```
51
+
52
+ ### `csvibe --help`
53
+ Display usage information.
54
+
55
+ ### `csvibe help`
56
+ Display detailed help with prerequisites, examples, and documentation links.
57
+
58
+ ### `csvibe init`
59
+
60
+ Bootstrap vibecoding workflow in your project.
61
+
62
+ **What it does:**
63
+ 1. Validates GitHub CLI authentication and repository access
64
+ 2. Detects project type (Node.js, Python, Rust, monorepo)
65
+ 3. Prompts for Jira credentials (interactive)
66
+ 4. Creates `.github/agents/`, `.github/prompts/`, `.github/instructions/` directories
67
+ 5. Downloads agent templates from `csvibe-engine` repository
68
+ 6. Generates `.csvibe/config.yml` with project and Jira configuration
69
+ 7. Updates `.gitignore` with CSVibe entries
70
+ 8. Validates VSCode and GitHub Copilot installation (non-blocking)
71
+
72
+ **Example:**
73
+ ```bash
74
+ cd my-project
75
+ csvibe init
76
+ ```
77
+
78
+ **Interactive Prompts:**
79
+ - Jira URL (e.g., `https://company.atlassian.net`)
80
+ - Jira Email
81
+ - Jira API Token ([How to create](https://id.atlassian.com/manage-profile/security/api-tokens))
82
+ - Jira Project Key (e.g., `PROJ`, `QS`)
83
+
84
+ **Generated Structure:**
85
+ ```
86
+ my-project/
87
+ ├── .github/
88
+ │ ├── agents/ # Agent templates from csvibe-engine
89
+ │ ├── prompts/ # Prompt templates
90
+ │ └── instructions/ # Instruction templates
91
+ ├── .csvibe/
92
+ │ ├── config.yml # Project and Jira configuration
93
+ │ ├── state/ # Pipeline state (gitignored)
94
+ │ └── cache/ # Cache directory (gitignored)
95
+ └── .gitignore # Updated with CSVibe entries
96
+ ```
97
+
98
+ ## Troubleshooting
99
+
100
+ ### Error: gh CLI not found
101
+
102
+ **Solution:** Install GitHub CLI:
103
+ - **macOS:** `brew install gh`
104
+ - **Windows:** `winget install GitHub.cli`
105
+ - **Linux:** See [installation guide](https://github.com/cli/cli#installation)
106
+
107
+ ### Error: gh CLI not authenticated
108
+
109
+ **Solution:** Authenticate:
110
+ ```bash
111
+ gh auth login
112
+ ```
113
+
114
+ Follow the prompts to authenticate with your GitHub account.
115
+
116
+ ### Error: Cannot access private repository
117
+
118
+ **Possible causes:**
119
+ 1. Repository doesn't exist
120
+ 2. Your GitHub account lacks access
121
+ 3. Authentication expired
122
+
123
+ **Solution:** Contact repository administrator (@thanhvu0895) for access to `csvibe-engine`.
124
+
125
+ ### Error: Node.js version too old
126
+
127
+ **Solution:** Upgrade Node.js to 16+:
128
+ - **Download:** [nodejs.org](https://nodejs.org/)
129
+ - **nvm:** `nvm install 16`
130
+
131
+ ## Development
132
+
133
+ ### Setup
134
+
135
+ ```bash
136
+ git clone <repo>
137
+ cd csvibe-cli
138
+ npm install
139
+ npm run build
140
+ npm link # Test locally
141
+ ```
142
+
143
+ ### Testing
144
+
145
+ ```bash
146
+ npm test # Run all tests
147
+ npm run test:watch # Watch mode
148
+ npm run test:coverage # Coverage report
149
+ ```
150
+
151
+ ### Build
152
+
153
+ ```bash
154
+ npm run build # Compile TypeScript to dist/
155
+ ```
156
+
157
+ ### Local Testing
158
+
159
+ ```bash
160
+ # Link locally
161
+ npm link
162
+
163
+ # Test commands
164
+ csvibe --help
165
+ csvibe --version
166
+ csvibe help
167
+
168
+ # Unlink when done
169
+ npm unlink -g @thanhvn14/csvibe
170
+ ```
171
+
172
+ ## Project Structure
173
+
174
+ ```
175
+ csvibe-cli/
176
+ ├── src/
177
+ │ ├── index.ts # Main CLI orchestrator
178
+ │ ├── commands/ # Command implementations
179
+ │ │ ├── help.ts # Help command
180
+ │ │ ├── version.ts # Version command
181
+ │ │ └── init.ts # Init command (Story 2)
182
+ │ ├── utils/ # Utilities
183
+ │ │ ├── gh-cli.ts # gh CLI validation
184
+ │ │ ├── logger.ts # Colored output
185
+ │ │ ├── errors.ts # Error handling
186
+ │ │ ├── validators.ts # System validation
187
+ │ │ ├── project-detector.ts # Project type detection (Story 2)
188
+ │ │ ├── prompts.ts # Interactive prompts (Story 2)
189
+ │ │ ├── config-generator.ts # Config file generation (Story 2)
190
+ │ │ ├── scaffolder.ts # Directory scaffolding (Story 2)
191
+ │ │ ├── vscode-validator.ts # VSCode/Copilot validation (Story 2)
192
+ │ │ └── downloader.ts # GitHub asset downloader (Story 2)
193
+ │ └── config/
194
+ │ └── constants.ts # Configuration
195
+ ├── tests/
196
+ │ ├── unit/ # Unit tests
197
+ │ │ ├── gh-cli.test.ts
198
+ │ │ ├── validators.test.ts
199
+ │ │ ├── project-detector.test.ts
200
+ │ │ ├── config-generator.test.ts
201
+ │ │ ├── scaffolder.test.ts
202
+ │ │ ├── vscode-validator.test.ts
203
+ │ │ └── downloader.test.ts
204
+ │ └── integration/ # Integration tests
205
+ │ └── cli.test.ts
206
+ ├── bin/
207
+ │ └── csvibe.js # CLI entry point
208
+ └── package.json
209
+ ```
210
+
211
+ ## Tech Stack
212
+
213
+ ### Core
214
+ - **TypeScript** - Type-safe development
215
+ - **Commander** - CLI framework
216
+ - **Node.js** >= 16.0.0
217
+
218
+ ### CLI & UI
219
+ - **chalk** - Terminal colors
220
+ - **ora** - Progress spinners
221
+ - **inquirer** - Interactive prompts (Story 2)
222
+
223
+ ### File & Config
224
+ - **fs-extra** - Enhanced file operations (Story 2)
225
+ - **yaml** - YAML parsing/generation (Story 2)
226
+
227
+ ### Process Execution
228
+ - **execa** - Execute gh CLI commands
229
+
230
+ ### Testing
231
+ - **Vitest** - Testing framework
232
+ - **@vitest/ui** - Test UI dashboard
233
+
234
+ ## License
235
+
236
+ MIT © Thanh Vu
237
+
238
+ ## Documentation
239
+
240
+ Full documentation: [csvibe-engine repository](https://github.com/thanhvu0895/csvibe-engine)
241
+
242
+ ## Issues
243
+
244
+ Report issues: [GitHub Issues](https://github.com/thanhvu0895/csvibe-engine/issues)
245
+
246
+ ---
247
+
248
+ **Status:**
249
+ - ✅ Story 1 (QS-262) Complete - CLI Installation Package
250
+ - ✅ Story 2 (QS-263) Complete - Project Bootstrapping (`csvibe init`)
251
+
252
+ **Next:** Story 3 (QS-264) - Pipeline Runner (`csvibe run`)
package/bin/csvibe.js ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * CSVibe CLI - Entry point
5
+ * This file is executed when the user runs `csvibe` command
6
+ */
7
+
8
+ // Require the compiled JavaScript from dist/
9
+ require('../dist/index.js');
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Help command implementation
3
+ */
4
+ export declare function helpCommand(): void;
5
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAgB,WAAW,IAAI,IAAI,CA0ClC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /**
3
+ * Help command implementation
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.helpCommand = helpCommand;
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const constants_1 = require("../config/constants");
12
+ const validators_1 = require("../utils/validators");
13
+ function helpCommand() {
14
+ console.log(chalk_1.default.bold('\nCSVibe CLI - Vibecoding Workflow\n'));
15
+ console.log('Usage:');
16
+ console.log(' csvibe <command> [options]\n');
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');
21
+ console.log('Prerequisites:');
22
+ console.log(' • Node.js >= 16.0.0');
23
+ console.log(' • GitHub CLI (gh) installed and authenticated');
24
+ console.log(` • Access to ${chalk_1.default.cyan(constants_1.CONSTANTS.REPO_FULL)} private repository\n`);
25
+ console.log('Installation:');
26
+ console.log(chalk_1.default.gray(' $ npm install -g @thanhvn14/csvibe\n'));
27
+ console.log('Quick Start:');
28
+ console.log(chalk_1.default.gray(' 1. Authenticate GitHub CLI:'));
29
+ console.log(chalk_1.default.gray(' $ gh auth login\n'));
30
+ console.log(chalk_1.default.gray(' 2. Navigate to your project:'));
31
+ console.log(chalk_1.default.gray(' $ cd my-project\n'));
32
+ console.log(chalk_1.default.gray(' 3. Initialize vibecoding:'));
33
+ console.log(chalk_1.default.gray(' $ csvibe init\n'));
34
+ 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'));
39
+ console.log('System Information:');
40
+ console.log(` Platform: ${(0, validators_1.getPlatform)()}`);
41
+ console.log(` Node.js: ${process.version}\n`);
42
+ console.log('Documentation:');
43
+ console.log(` ${chalk_1.default.cyan(constants_1.CONSTANTS.REPO_URL)}\n`);
44
+ console.log('Issues:');
45
+ console.log(` ${chalk_1.default.cyan(constants_1.CONSTANTS.ISSUES_URL)}\n`);
46
+ }
47
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Command exports
3
+ */
4
+ export { helpCommand } from './help';
5
+ export { versionCommand, getVersion } from './version';
6
+ export { initCommand } from './init';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * Command exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.initCommand = exports.getVersion = exports.versionCommand = exports.helpCommand = void 0;
7
+ var help_1 = require("./help");
8
+ Object.defineProperty(exports, "helpCommand", { enumerable: true, get: function () { return help_1.helpCommand; } });
9
+ var version_1 = require("./version");
10
+ Object.defineProperty(exports, "versionCommand", { enumerable: true, get: function () { return version_1.versionCommand; } });
11
+ Object.defineProperty(exports, "getVersion", { enumerable: true, get: function () { return version_1.getVersion; } });
12
+ var init_1 = require("./init");
13
+ Object.defineProperty(exports, "initCommand", { enumerable: true, get: function () { return init_1.initCommand; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Init command implementation
3
+ * Bootstraps CSVibe project with agents, config, and project scaffolding
4
+ */
5
+ export declare function initCommand(): Promise<void>;
6
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAwFjD"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ /**
3
+ * Init command implementation
4
+ * Bootstraps CSVibe project with agents, config, and project scaffolding
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.initCommand = initCommand;
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const fs_extra_1 = __importDefault(require("fs-extra"));
14
+ const constants_1 = require("../config/constants");
15
+ const logger_1 = require("../utils/logger");
16
+ const gh_cli_1 = require("../utils/gh-cli");
17
+ const project_detector_1 = require("../utils/project-detector");
18
+ const prompts_1 = require("../utils/prompts");
19
+ const config_generator_1 = require("../utils/config-generator");
20
+ const scaffolder_1 = require("../utils/scaffolder");
21
+ const downloader_1 = require("../utils/downloader");
22
+ const vscode_validator_1 = require("../utils/vscode-validator");
23
+ async function initCommand() {
24
+ console.log(chalk_1.default.bold.cyan('\n🚀 Initializing CSVibe Project\n'));
25
+ const projectRoot = process.cwd();
26
+ try {
27
+ // Step 1: Validate gh CLI and repo access
28
+ const spinner1 = logger_1.logger.spinner('Validating GitHub CLI and repository access');
29
+ try {
30
+ await (0, gh_cli_1.validateGhCli)(constants_1.CONSTANTS.REPO_FULL);
31
+ spinner1.succeed('GitHub CLI validated');
32
+ }
33
+ catch (error) {
34
+ spinner1.fail('GitHub CLI validation failed');
35
+ throw error;
36
+ }
37
+ // Step 2: Check if already initialized
38
+ if (await (0, config_generator_1.isInitialized)(projectRoot)) {
39
+ logger_1.logger.warning('CSVibe is already initialized in this directory');
40
+ const shouldOverwrite = await (0, prompts_1.confirmOverwrite)();
41
+ if (!shouldOverwrite) {
42
+ console.log(chalk_1.default.gray('\nInitialization cancelled.\n'));
43
+ return;
44
+ }
45
+ console.log(); // spacing
46
+ }
47
+ // Step 3: Detect project type
48
+ const spinner2 = logger_1.logger.spinner('Detecting project type');
49
+ const projectType = await (0, project_detector_1.detectProjectType)(projectRoot);
50
+ spinner2.succeed(`Project type detected: ${chalk_1.default.cyan(projectType)}`);
51
+ // Step 4: Get project metadata
52
+ const projectName = path_1.default.basename(projectRoot);
53
+ const projectVersion = await getProjectVersion(projectRoot);
54
+ // Step 5: Prompt for Jira credentials
55
+ (0, prompts_1.showApiTokenInstructions)();
56
+ const jiraCredentials = await (0, prompts_1.promptJiraCredentials)();
57
+ console.log(); // spacing
58
+ // Step 6: Scaffold directory structure
59
+ const spinner3 = logger_1.logger.spinner('Creating directory structure');
60
+ await (0, scaffolder_1.scaffold)(projectRoot);
61
+ spinner3.succeed('Directory structure created');
62
+ // Step 7: Download assets from csvibe-engine
63
+ await (0, downloader_1.downloadGithubAssets)(constants_1.CONSTANTS.REPO_FULL, 'main', projectRoot);
64
+ // Step 8: Generate config.yml
65
+ const spinner4 = logger_1.logger.spinner('Generating configuration');
66
+ const configTemplate = await (0, downloader_1.downloadConfigTemplate)(constants_1.CONSTANTS.REPO_FULL);
67
+ await (0, config_generator_1.generateConfig)(configTemplate, {
68
+ projectName,
69
+ projectType,
70
+ projectVersion,
71
+ jiraCredentials,
72
+ targetDir: projectRoot
73
+ });
74
+ spinner4.succeed('Configuration generated');
75
+ // Step 9: Validate VSCode and Copilot (non-blocking)
76
+ console.log(); // spacing
77
+ await (0, vscode_validator_1.validateVSCodeSetup)();
78
+ // Step 10: Display success message
79
+ console.log(chalk_1.default.bold.green('\n✓ CSVibe initialized successfully!\n'));
80
+ console.log(chalk_1.default.bold('Next steps:'));
81
+ console.log(' 1. Review ' + chalk_1.default.cyan('.csvibe/config.yml') + ' and adjust as needed');
82
+ console.log(' 2. Review ' + chalk_1.default.cyan('.github/agents/') + ' templates');
83
+ console.log(' 3. Start vibecoding with ' + chalk_1.default.cyan('csvibe run'));
84
+ console.log();
85
+ console.log(chalk_1.default.gray('Configuration saved to: ') + chalk_1.default.cyan(path_1.default.join(projectRoot, constants_1.CONSTANTS.CONFIG_FILE)));
86
+ console.log();
87
+ }
88
+ catch (error) {
89
+ if (error instanceof Error) {
90
+ logger_1.logger.error(error.message);
91
+ }
92
+ else {
93
+ logger_1.logger.error('An unexpected error occurred during initialization');
94
+ }
95
+ console.log('\n' + chalk_1.default.gray('For help, visit: ') + chalk_1.default.cyan(constants_1.CONSTANTS.ISSUES_URL) + '\n');
96
+ process.exit(1);
97
+ }
98
+ }
99
+ /**
100
+ * Get project version from package.json or other manifest files
101
+ */
102
+ async function getProjectVersion(projectRoot) {
103
+ // Try package.json first (Node.js projects)
104
+ const packageJsonPath = path_1.default.join(projectRoot, 'package.json');
105
+ if (await fs_extra_1.default.pathExists(packageJsonPath)) {
106
+ try {
107
+ const pkg = await fs_extra_1.default.readJson(packageJsonPath);
108
+ if (pkg.version) {
109
+ return pkg.version;
110
+ }
111
+ }
112
+ catch {
113
+ // Ignore parse errors
114
+ }
115
+ }
116
+ // Try pyproject.toml (Python projects)
117
+ const pyprojectPath = path_1.default.join(projectRoot, 'pyproject.toml');
118
+ if (await fs_extra_1.default.pathExists(pyprojectPath)) {
119
+ try {
120
+ const content = await fs_extra_1.default.readFile(pyprojectPath, 'utf-8');
121
+ const versionMatch = content.match(/version\s*=\s*["']([^"']+)["']/);
122
+ if (versionMatch && versionMatch[1]) {
123
+ return versionMatch[1];
124
+ }
125
+ }
126
+ catch {
127
+ // Ignore parse errors
128
+ }
129
+ }
130
+ // Try Cargo.toml (Rust projects)
131
+ const cargoPath = path_1.default.join(projectRoot, 'Cargo.toml');
132
+ if (await fs_extra_1.default.pathExists(cargoPath)) {
133
+ try {
134
+ const content = await fs_extra_1.default.readFile(cargoPath, 'utf-8');
135
+ const versionMatch = content.match(/version\s*=\s*["']([^"']+)["']/);
136
+ if (versionMatch && versionMatch[1]) {
137
+ return versionMatch[1];
138
+ }
139
+ }
140
+ catch {
141
+ // Ignore parse errors
142
+ }
143
+ }
144
+ // Default fallback
145
+ return '0.1.0';
146
+ }
147
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Version command implementation
3
+ */
4
+ export declare function versionCommand(): void;
5
+ /**
6
+ * Get current CLI version
7
+ */
8
+ export declare function getVersion(): string;
9
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Version command implementation
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.versionCommand = versionCommand;
10
+ exports.getVersion = getVersion;
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ // Import version from package.json
13
+ const packageJson = require('../../package.json');
14
+ function versionCommand() {
15
+ console.log(chalk_1.default.bold(`csvibe`) + ` v${packageJson.version}`);
16
+ }
17
+ /**
18
+ * Get current CLI version
19
+ */
20
+ function getVersion() {
21
+ return packageJson.version;
22
+ }
23
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/commands/version.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAOH,wCAEC;AAKD,gCAEC;AAdD,kDAA0B;AAE1B,mCAAmC;AACnC,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,SAAgB,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU;IACxB,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Configuration constants for CSVibe CLI
3
+ */
4
+ export declare const CONSTANTS: {
5
+ readonly REPO_OWNER: "thanhvu0895";
6
+ readonly REPO_NAME: "csvibe-engine";
7
+ readonly REPO_FULL: string;
8
+ readonly MIN_NODE_VERSION: 16;
9
+ readonly MIN_GH_VERSION: "2.0.0";
10
+ readonly GH_API_BASE: "https://api.github.com";
11
+ readonly GITHUB_DIR: ".github";
12
+ readonly CSVIBE_DIR: ".csvibe";
13
+ readonly AGENTS_DIR: ".github/agents";
14
+ readonly PROMPTS_DIR: ".github/prompts";
15
+ readonly INSTRUCTIONS_DIR: ".github/instructions";
16
+ readonly STATE_DIR: ".csvibe/state";
17
+ readonly CACHE_DIR: ".csvibe/cache";
18
+ readonly CONFIG_FILE: ".csvibe/config.yml";
19
+ readonly REPO_URL: "https://github.com/thanhvu0895/csvibe-engine";
20
+ readonly ISSUES_URL: "https://github.com/thanhvu0895/csvibe-engine/issues";
21
+ readonly GH_CLI_INSTALL: "https://github.com/cli/cli#installation";
22
+ };
23
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;CA+BZ,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * Configuration constants for CSVibe CLI
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CONSTANTS = void 0;
7
+ exports.CONSTANTS = {
8
+ // Private repository
9
+ REPO_OWNER: 'thanhvu0895', // GitHub username/org
10
+ REPO_NAME: 'csvibe-engine',
11
+ get REPO_FULL() {
12
+ return `${this.REPO_OWNER}/${this.REPO_NAME}`;
13
+ },
14
+ // Minimum versions
15
+ MIN_NODE_VERSION: 16,
16
+ MIN_GH_VERSION: '2.0.0',
17
+ // GitHub endpoints
18
+ GH_API_BASE: 'https://api.github.com',
19
+ // Directories
20
+ GITHUB_DIR: '.github',
21
+ CSVIBE_DIR: '.csvibe',
22
+ AGENTS_DIR: '.github/agents',
23
+ PROMPTS_DIR: '.github/prompts',
24
+ INSTRUCTIONS_DIR: '.github/instructions',
25
+ STATE_DIR: '.csvibe/state',
26
+ CACHE_DIR: '.csvibe/cache',
27
+ // Config file
28
+ CONFIG_FILE: '.csvibe/config.yml',
29
+ // URLs
30
+ REPO_URL: 'https://github.com/thanhvu0895/csvibe-engine',
31
+ ISSUES_URL: 'https://github.com/thanhvu0895/csvibe-engine/issues',
32
+ GH_CLI_INSTALL: 'https://github.com/cli/cli#installation'
33
+ };
34
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,SAAS,GAAG;IACvB,qBAAqB;IACrB,UAAU,EAAE,aAAa,EAAG,sBAAsB;IAClD,SAAS,EAAE,eAAe;IAC1B,IAAI,SAAS;QACX,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAChD,CAAC;IAED,mBAAmB;IACnB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,OAAO;IAEvB,mBAAmB;IACnB,WAAW,EAAE,wBAAwB;IAErC,cAAc;IACd,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;IAE1B,cAAc;IACd,WAAW,EAAE,oBAAoB;IAEjC,OAAO;IACP,QAAQ,EAAE,8CAA8C;IACxD,UAAU,EAAE,qDAAqD;IACjE,cAAc,EAAE,yCAAyC;CACjD,CAAC"}