@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.
- package/LICENSE +21 -0
- package/README.md +252 -0
- package/bin/csvibe.js +9 -0
- package/dist/commands/help.d.ts +5 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +47 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +14 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +147 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/version.d.ts +9 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +23 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config/constants.d.ts +23 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +34 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/config-generator.d.ts +25 -0
- package/dist/utils/config-generator.d.ts.map +1 -0
- package/dist/utils/config-generator.js +55 -0
- package/dist/utils/config-generator.js.map +1 -0
- package/dist/utils/downloader.d.ts +12 -0
- package/dist/utils/downloader.d.ts.map +1 -0
- package/dist/utils/downloader.js +142 -0
- package/dist/utils/downloader.js.map +1 -0
- package/dist/utils/errors.d.ts +32 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +79 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/gh-cli.d.ts +33 -0
- package/dist/utils/gh-cli.d.ts.map +1 -0
- package/dist/utils/gh-cli.js +143 -0
- package/dist/utils/gh-cli.js.map +1 -0
- package/dist/utils/logger.d.ts +43 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +71 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/project-detector.d.ts +23 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +95 -0
- package/dist/utils/project-detector.js.map +1 -0
- package/dist/utils/prompts.d.ts +22 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +100 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/scaffolder.d.ts +12 -0
- package/dist/utils/scaffolder.d.ts.map +1 -0
- package/dist/utils/scaffolder.js +67 -0
- package/dist/utils/scaffolder.js.map +1 -0
- package/dist/utils/validators.d.ts +25 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +62 -0
- package/dist/utils/validators.js.map +1 -0
- package/dist/utils/vscode-validator.d.ts +16 -0
- package/dist/utils/vscode-validator.d.ts.map +1 -0
- package/dist/utils/vscode-validator.js +56 -0
- package/dist/utils/vscode-validator.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|