metacoding 1.1.4 → 1.2.1
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/CHANGELOG.md +39 -1
- package/README.md +109 -28
- package/lib/cli.d.ts.map +1 -1
- package/lib/cli.js +5 -1
- package/lib/cli.js.map +1 -1
- package/lib/commands/init.d.ts +2 -0
- package/lib/commands/init.d.ts.map +1 -1
- package/lib/commands/init.js +63 -11
- package/lib/commands/init.js.map +1 -1
- package/lib/services/cursor.d.ts +42 -0
- package/lib/services/cursor.d.ts.map +1 -0
- package/lib/services/cursor.js +289 -0
- package/lib/services/cursor.js.map +1 -0
- package/lib/services/template-manager.d.ts +5 -0
- package/lib/services/template-manager.d.ts.map +1 -1
- package/lib/services/template-manager.js +65 -0
- package/lib/services/template-manager.js.map +1 -1
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,44 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.2.1] - 2025-01-09
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Updated package dependencies and documentation
|
|
13
|
+
- Improved code quality and test coverage maintenance
|
|
14
|
+
- Enhanced npm publishing workflow
|
|
15
|
+
|
|
16
|
+
## [1.2.0] - 2025-06-25
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- **Cursor IDE Support**: Complete integration with Cursor IDE for AI-assisted development
|
|
21
|
+
- **New CLI Flags**: Added `--vscode` and `--cursor` flags for direct AI assistant setup
|
|
22
|
+
- **Interactive AI Selection**: Interactive prompts to choose between VS Code + GitHub Copilot or Cursor IDE
|
|
23
|
+
- **Cursor File Generation**: Automatic generation of `workflow.cursorrules` and `.cursor/rules/*.mdc` files
|
|
24
|
+
- **Content Transformation**: Smart conversion of VS Code instruction content for Cursor IDE compatibility
|
|
25
|
+
- **Template Variable Substitution**: Dynamic replacement of project variables in generated Cursor workflows
|
|
26
|
+
- **Non-Intrusive Approach**: Uses `workflow.cursorrules` to respect existing user `.cursorrules` configurations
|
|
27
|
+
- **Safe Installation**: Conflict detection and backup functionality for existing files
|
|
28
|
+
- **Cross-Platform Support**: Full compatibility across different operating systems
|
|
29
|
+
- **Comprehensive Testing**: 56 new tests covering CLI integration, end-to-end workflows, and unit functionality
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- **Multi-AI Assistant Support**: Updated CLI and documentation to support both GitHub Copilot and Cursor IDE workflows
|
|
34
|
+
- **Enhanced Template System**: Extended TemplateManager to support multiple AI assistant file formats
|
|
35
|
+
- **Updated Documentation**: Comprehensive updates to README.md, API documentation, and troubleshooting guides
|
|
36
|
+
- **CLI Interface**: Enhanced `metacoding init` command with AI assistant selection prompts and validation
|
|
37
|
+
|
|
38
|
+
### Technical Details
|
|
39
|
+
|
|
40
|
+
- **New Services**: Added CursorService for Cursor-specific file management and content transformation
|
|
41
|
+
- **File Structure Support**: Added support for `.mdc` (Markdown + Code) file format with proper frontmatter
|
|
42
|
+
- **Template Integration**: Enhanced template system to generate appropriate files for chosen AI assistant
|
|
43
|
+
- **Error Handling**: Robust error handling for conflicting flags and invalid configurations
|
|
44
|
+
- **Documentation Architecture**: Maintains clear separation between system documentation and Cursor-specific guides
|
|
45
|
+
|
|
8
46
|
## [1.1.4] - 2025-06-23
|
|
9
47
|
|
|
10
48
|
### Added
|
|
@@ -14,7 +52,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
14
52
|
- **Minimal Pattern Focus**: Only excludes files that metacoding actually creates (not broad AI assistant patterns)
|
|
15
53
|
- **Template Integration**: Simplified to single general .gitignore template for all project types
|
|
16
54
|
- **Init Command Integration**: Automatically updates .gitignore during project setup
|
|
17
|
-
- **Essential Exclusions**:
|
|
55
|
+
- **Essential Exclusions**:
|
|
18
56
|
- `.github/copilot-instructions.md`
|
|
19
57
|
- `.github/instructions/`
|
|
20
58
|
- `.vscode/copilot-instructions.md`
|
package/README.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
# `metacoding`: Guided Development Workflow for
|
|
1
|
+
# `metacoding`: Guided Development Workflow for AI Assistants
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/metacoding)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
[](https://github.com/features/copilot)
|
|
6
|
+
[](https://www.cursor.com/)
|
|
6
7
|
|
|
7
|
-
Transform your development experience with AI-guided coding standards, structured workflows, and quality practices that help you build better software from day one.
|
|
8
|
+
Transform your development experience with AI-guided coding standards, structured workflows, and quality practices that help you build better software from day one. Works with both GitHub Copilot in VS Code and Cursor IDE.
|
|
8
9
|
|
|
9
10
|
## Table of Contents
|
|
10
11
|
|
|
11
12
|
- [🎯 What is `metacoding`?](#-what-is-metacoding)
|
|
12
|
-
- [💬 How to Use `metacoding` with
|
|
13
|
+
- [💬 How to Use `metacoding` with AI Assistants](#-how-to-use-metacoding-with-ai-assistants)
|
|
13
14
|
- [🛠 Installation Guide](#-installation-guide)
|
|
14
15
|
- [📦 Using the `metacoding` CLI](#-using-the-metacoding-cli)
|
|
15
16
|
- [🆘 Getting Help](#-getting-help)
|
|
@@ -18,16 +19,16 @@ Transform your development experience with AI-guided coding standards, structure
|
|
|
18
19
|
|
|
19
20
|
## 🎯 What is `metacoding`?
|
|
20
21
|
|
|
21
|
-
`metacoding` is a **guided development methodology** that uses
|
|
22
|
+
`metacoding` is a **guided development methodology** that uses AI assistant custom instruction capabilities to help developers at any level follow established best practices. Works seamlessly with GitHub Copilot in VS Code and Cursor IDE. Instead of just getting code suggestions, you get:
|
|
22
23
|
|
|
23
24
|
- **Structured workflows** that guide you through proven development practices
|
|
24
25
|
- **Quality standards** that help you avoid common mistakes
|
|
25
26
|
- **Test-driven development** that's encouraged and guided step-by-step
|
|
26
27
|
- **Documentation guidance** that keeps your projects maintainable
|
|
27
28
|
|
|
28
|
-
## 💬 How to Use `metacoding` with
|
|
29
|
+
## 💬 How to Use `metacoding` with AI Assistants
|
|
29
30
|
|
|
30
|
-
`metacoding` transforms GitHub Copilot into
|
|
31
|
+
`metacoding` transforms AI assistants (GitHub Copilot or Cursor IDE) into autonomous development partners that execute structured workflows. You specify what you want built, and your AI assistant independently follows a disciplined 7-step process that ensures quality, maintainability, and thorough testing. Your role is to provide clear requirements, validate results, and approve each stage before proceeding.
|
|
31
32
|
|
|
32
33
|
### The `metacoding` 7-Step Development Workflow
|
|
33
34
|
|
|
@@ -161,13 +162,21 @@ The `metacoding` workflow transforms chaotic development into a structured, qual
|
|
|
161
162
|
|
|
162
163
|
### Prerequisites
|
|
163
164
|
|
|
164
|
-
Before installing `metacoding`,
|
|
165
|
+
Before installing `metacoding`, choose your AI development setup:
|
|
166
|
+
|
|
167
|
+
#### Option A: VS Code + GitHub Copilot
|
|
165
168
|
|
|
166
169
|
1. **Visual Studio Code** installed ([download here](https://code.visualstudio.com/))
|
|
167
170
|
2. **GitHub Copilot extension** installed and configured in VS Code
|
|
168
171
|
3. **Active GitHub Copilot subscription** ([get one here](https://github.com/features/copilot))
|
|
169
172
|
4. **Node.js** (version 16 or higher) for the CLI tool
|
|
170
173
|
|
|
174
|
+
#### Option B: Cursor IDE
|
|
175
|
+
|
|
176
|
+
1. **Cursor IDE** installed ([download here](https://www.cursor.com/))
|
|
177
|
+
2. **Active Cursor Pro subscription** for advanced AI features (recommended)
|
|
178
|
+
3. **Node.js** (version 16 or higher) for the CLI tool
|
|
179
|
+
|
|
171
180
|
### Quick Setup (Recommended)
|
|
172
181
|
|
|
173
182
|
The easiest way to get started with `metacoding` is using our npm package:
|
|
@@ -175,17 +184,28 @@ The easiest way to get started with `metacoding` is using our npm package:
|
|
|
175
184
|
1. **Install globally:** `npm install -g metacoding`
|
|
176
185
|
2. **Navigate to your project:** `cd your-project`
|
|
177
186
|
3. **Initialize `metacoding`:** `metacoding init`
|
|
178
|
-
4. **Follow the interactive prompts and you're done
|
|
187
|
+
4. **Follow the interactive prompts** to choose your AI setup and you're done!
|
|
179
188
|
|
|
180
189
|
#### Init options
|
|
181
190
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
- `metacoding init
|
|
185
|
-
- `metacoding init --template
|
|
191
|
+
**Basic usage:**
|
|
192
|
+
|
|
193
|
+
- `metacoding init` - Interactive setup with AI assistant and template selection
|
|
194
|
+
- `metacoding init --template react` - Use React template with interactive AI setup
|
|
195
|
+
- `metacoding init --template node` - Use Node.js template with interactive AI setup
|
|
196
|
+
- `metacoding init --template python` - Use Python template with interactive AI setup
|
|
186
197
|
- `metacoding init --force` - Overwrite existing files
|
|
187
198
|
|
|
188
|
-
**
|
|
199
|
+
**Direct AI setup:**
|
|
200
|
+
|
|
201
|
+
- `metacoding init --vscode` - Set up for VS Code + GitHub Copilot
|
|
202
|
+
- `metacoding init --cursor` - Set up for Cursor IDE
|
|
203
|
+
- `metacoding init --cursor --template react` - Cursor setup with React template
|
|
204
|
+
|
|
205
|
+
#### Post-Installation Configuration
|
|
206
|
+
|
|
207
|
+
**For VS Code + GitHub Copilot:**
|
|
208
|
+
The CLI automatically configures VS Code settings for custom instructions. If you need to configure manually, add these settings to your VS Code settings.json:
|
|
189
209
|
|
|
190
210
|
```json
|
|
191
211
|
{
|
|
@@ -194,7 +214,12 @@ The easiest way to get started with `metacoding` is using our npm package:
|
|
|
194
214
|
}
|
|
195
215
|
```
|
|
196
216
|
|
|
197
|
-
|
|
217
|
+
**For Cursor IDE:**
|
|
218
|
+
No additional configuration needed! Cursor automatically detects and uses `workflow.cursorrules` and `.cursor/rules/*.mdc` files.
|
|
219
|
+
|
|
220
|
+
### File Structure by AI Setup
|
|
221
|
+
|
|
222
|
+
**VS Code + GitHub Copilot setup:**
|
|
198
223
|
|
|
199
224
|
```
|
|
200
225
|
my-awesome-project/
|
|
@@ -207,8 +232,23 @@ my-awesome-project/
|
|
|
207
232
|
│ └── code-review.instructions.md
|
|
208
233
|
```
|
|
209
234
|
|
|
235
|
+
**Cursor IDE setup:**
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
my-awesome-project/
|
|
239
|
+
├── workflow.cursorrules
|
|
240
|
+
├── .cursor/
|
|
241
|
+
│ └── rules/
|
|
242
|
+
│ ├── test-runner.mdc
|
|
243
|
+
│ ├── release.mdc
|
|
244
|
+
│ ├── docs-update.mdc
|
|
245
|
+
│ └── code-review.mdc
|
|
246
|
+
```
|
|
247
|
+
|
|
210
248
|
### Test Your Setup
|
|
211
249
|
|
|
250
|
+
#### For VS Code + GitHub Copilot:
|
|
251
|
+
|
|
212
252
|
1. **Restart VS Code** to ensure all settings are applied
|
|
213
253
|
2. **Create a new file** in your project (e.g., `test.js` or `main.py`)
|
|
214
254
|
3. **Open GitHub Copilot Chat:**
|
|
@@ -219,6 +259,16 @@ my-awesome-project/
|
|
|
219
259
|
- In GitHub Copilot, ask: "What is the development workflow for this project?"
|
|
220
260
|
- Copilot should reference your custom instructions and provide project-specific guidance!
|
|
221
261
|
|
|
262
|
+
#### For Cursor IDE:
|
|
263
|
+
|
|
264
|
+
1. **Open your project in Cursor IDE**
|
|
265
|
+
2. **Verify rules are loaded:**
|
|
266
|
+
- Check that `workflow.cursorrules` appears in the Cursor IDE interface
|
|
267
|
+
- Look for rule indicators showing active patterns
|
|
268
|
+
3. **Test the setup:**
|
|
269
|
+
- In Cursor chat, ask: "What is the development workflow for this project?"
|
|
270
|
+
- Cursor should reference your workflow rules and provide project-specific guidance!
|
|
271
|
+
|
|
222
272
|
## ✅ You're Ready to Go!
|
|
223
273
|
|
|
224
274
|
## 📦 Using the `metacoding` CLI
|
|
@@ -229,12 +279,21 @@ Once installed, you can use these commands:
|
|
|
229
279
|
|
|
230
280
|
Initialize metacoding in your current project:
|
|
231
281
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
- `metacoding init
|
|
235
|
-
- `metacoding init --template
|
|
282
|
+
**Interactive setup:**
|
|
283
|
+
|
|
284
|
+
- `metacoding init` - Interactive setup with AI assistant and template selection
|
|
285
|
+
- `metacoding init --template react` - Initialize with React template (interactive AI setup)
|
|
286
|
+
- `metacoding init --template node` - Initialize with Node.js template (interactive AI setup)
|
|
287
|
+
- `metacoding init --template python` - Initialize with Python template (interactive AI setup)
|
|
236
288
|
- `metacoding init --force` - Overwrite existing files without confirmation
|
|
237
289
|
|
|
290
|
+
**Direct AI setup:**
|
|
291
|
+
|
|
292
|
+
- `metacoding init --vscode` - Set up for VS Code + GitHub Copilot
|
|
293
|
+
- `metacoding init --cursor` - Set up for Cursor IDE
|
|
294
|
+
- `metacoding init --vscode --template react` - VS Code setup with React template
|
|
295
|
+
- `metacoding init --cursor --template python` - Cursor setup with Python template
|
|
296
|
+
|
|
238
297
|
### `metacoding update`
|
|
239
298
|
|
|
240
299
|
Update your `metacoding` setup to the latest version:
|
|
@@ -256,23 +315,35 @@ Update your `metacoding` setup to the latest version:
|
|
|
256
315
|
**Q: Do I need to be an experienced developer?**
|
|
257
316
|
A: No! `metacoding` provides guidance and structure to help developers at any level adopt proven practices and improve their skills.
|
|
258
317
|
|
|
259
|
-
**Q:
|
|
260
|
-
A:
|
|
318
|
+
**Q: Should I choose VS Code + GitHub Copilot or Cursor IDE?**
|
|
319
|
+
A: Both work great! Choose based on your preference:
|
|
320
|
+
|
|
321
|
+
- **VS Code + GitHub Copilot**: Best if you already use VS Code and have GitHub Copilot
|
|
322
|
+
- **Cursor IDE**: Best for AI-first development with built-in AI features
|
|
323
|
+
|
|
324
|
+
**Q: What if I don't have an AI assistant subscription?**
|
|
325
|
+
A: You'll need either an active GitHub Copilot subscription (for VS Code) or Cursor Pro (for advanced Cursor features). Students can get GitHub Copilot free through GitHub Education.
|
|
326
|
+
|
|
327
|
+
**Q: Can I switch between VS Code and Cursor later?**
|
|
328
|
+
A: Yes! Run `metacoding init --vscode` or `metacoding init --cursor` to switch your setup. The CLI will install the appropriate files for your chosen AI assistant.
|
|
261
329
|
|
|
262
330
|
**Q: Can I use this without the CLI tool?**
|
|
263
331
|
A: The CLI tool provides the easiest setup experience. For manual setup, you can download instruction files from our GitHub repository.
|
|
264
332
|
|
|
265
333
|
**Q: Will this work with my preferred programming language?**
|
|
266
|
-
A: Yes! The general `metacoding` template
|
|
334
|
+
A: Yes! The general `metacoding` template works with any language supported by your AI assistant.
|
|
267
335
|
|
|
268
336
|
**Q: Can I customize the workflow for my team's needs?**
|
|
269
|
-
A: Absolutely! All instruction files can be modified to match your
|
|
337
|
+
A: Absolutely! All instruction files can be modified to match your specific requirements.
|
|
270
338
|
|
|
271
339
|
**Q: Does this replace learning to code?**
|
|
272
|
-
A:
|
|
340
|
+
A: Nope. But it's totally up to you!.
|
|
273
341
|
|
|
274
342
|
**Q: What VS Code settings are required?**
|
|
275
|
-
A:
|
|
343
|
+
A: For VS Code + GitHub Copilot, you need `github.copilot.chat.codeGeneration.useInstructionFiles: true` and `chat.promptFiles: true`. The CLI configures these automatically.
|
|
344
|
+
|
|
345
|
+
**Q: Does Cursor IDE require special settings?**
|
|
346
|
+
A: No additional settings needed! Cursor automatically detects `workflow.cursorrules` and `.cursor/rules/*.mdc` files.
|
|
276
347
|
|
|
277
348
|
## Troubleshooting
|
|
278
349
|
|
|
@@ -282,19 +353,29 @@ A: The CLI automatically configures required settings, but you need `github.copi
|
|
|
282
353
|
- Verify npm is working: `npm --version`
|
|
283
354
|
- Try clearing npm cache: `npm cache clean --force`
|
|
284
355
|
|
|
285
|
-
**
|
|
356
|
+
**VS Code + GitHub Copilot Issues:**
|
|
286
357
|
|
|
287
358
|
- Make sure you've restarted VS Code after installation
|
|
288
359
|
- Verify your GitHub Copilot subscription is active
|
|
289
360
|
- Check that the instruction files are in the correct `.github/` folder
|
|
290
361
|
- Ensure VS Code settings include the required custom instruction settings
|
|
362
|
+
- Try manually referencing instructions in GitHub Copilot
|
|
363
|
+
|
|
364
|
+
**Cursor IDE Issues:**
|
|
365
|
+
|
|
366
|
+
- Verify `workflow.cursorrules` file exists in your project root
|
|
367
|
+
- Check that `.cursor/rules/*.mdc` files are present
|
|
368
|
+
- Ensure Cursor IDE is updated to the latest version
|
|
369
|
+
- Look for rule indicators in Cursor IDE interface showing active patterns
|
|
370
|
+
- Try asking Cursor: "What rules are active for this project?"
|
|
291
371
|
|
|
292
372
|
**Instructions not applying automatically:**
|
|
293
373
|
|
|
294
|
-
- Ensure file names match exactly (including
|
|
295
|
-
- Verify the folder structure is correct
|
|
296
|
-
- Try manually referencing instructions in GitHub Copilot
|
|
374
|
+
- Ensure file names match exactly (including extensions)
|
|
375
|
+
- Verify the folder structure is correct for your AI setup
|
|
297
376
|
- Run `metacoding update --dry-run` to validate your setup
|
|
377
|
+
- For VS Code: Check `.github/instructions/` folder structure
|
|
378
|
+
- For Cursor: Check `workflow.cursorrules` and `.cursor/rules/` files
|
|
298
379
|
|
|
299
380
|
**CLI Command Issues:**
|
|
300
381
|
|
package/lib/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAUA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAUA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAiF1C"}
|
package/lib/cli.js
CHANGED
|
@@ -20,6 +20,8 @@ async function main() {
|
|
|
20
20
|
${chalk_1.default.cyan('Examples:')}
|
|
21
21
|
${chalk_1.default.dim('$')} metacoding init # Initialize metacoding in current directory
|
|
22
22
|
${chalk_1.default.dim('$')} metacoding init --template react # Initialize with React template
|
|
23
|
+
${chalk_1.default.dim('$')} metacoding init --vscode # Initialize with VS Code + Copilot setup
|
|
24
|
+
${chalk_1.default.dim('$')} metacoding init --cursor # Initialize with Cursor IDE setup
|
|
23
25
|
${chalk_1.default.dim('$')} metacoding update --dry-run # Validate current metacoding setup
|
|
24
26
|
${chalk_1.default.dim('$')} metacoding update # Update to latest metacoding version
|
|
25
27
|
|
|
@@ -30,10 +32,12 @@ ${chalk_1.default.cyan('Learn more:')}
|
|
|
30
32
|
program
|
|
31
33
|
.command('init')
|
|
32
34
|
.description('Initialize metacoding in the current project')
|
|
33
|
-
.option('-t, --template <type>', 'project template (general, react, node, python)', 'general')
|
|
35
|
+
.option('-t, --template <type>', 'project template (general, react, node, python, typescript)', 'general')
|
|
34
36
|
.option('-f, --force', 'overwrite existing files without confirmation')
|
|
35
37
|
.option('--skip-vscode', 'skip VS Code settings configuration')
|
|
36
38
|
.option('--skip-git', 'skip Git repository initialization check')
|
|
39
|
+
.option('--vscode', 'set up VS Code + GitHub Copilot configuration')
|
|
40
|
+
.option('--cursor', 'set up Cursor IDE configuration')
|
|
37
41
|
.action(async (options) => {
|
|
38
42
|
try {
|
|
39
43
|
const initCommand = new init_1.InitCommand();
|
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/lib/commands/init.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare class InitCommand {
|
|
|
3
3
|
private templateManager;
|
|
4
4
|
private fileSystem;
|
|
5
5
|
private vscodeService;
|
|
6
|
+
private cursorService;
|
|
6
7
|
private projectDetector;
|
|
7
8
|
private gitIgnoreManager;
|
|
8
9
|
constructor();
|
|
@@ -11,6 +12,7 @@ export declare class InitCommand {
|
|
|
11
12
|
private setupProject;
|
|
12
13
|
private getDefaultTestFramework;
|
|
13
14
|
private getDefaultBuildTool;
|
|
15
|
+
private validateAndGetIdeChoice;
|
|
14
16
|
private displayNextSteps;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAC;AAWtD,qBAAa,WAAW;IACtB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAmB;;IAiBrC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAwCpC,uBAAuB;YAgGvB,YAAY;IAyE1B,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,mBAAmB;YAgBb,uBAAuB;IAiDrC,OAAO,CAAC,gBAAgB;CAoCzB"}
|
package/lib/commands/init.js
CHANGED
|
@@ -10,6 +10,7 @@ const ora_1 = __importDefault(require("ora"));
|
|
|
10
10
|
const template_manager_1 = require("../services/template-manager");
|
|
11
11
|
const filesystem_1 = require("../services/filesystem");
|
|
12
12
|
const vscode_1 = require("../services/vscode");
|
|
13
|
+
const cursor_1 = require("../services/cursor");
|
|
13
14
|
const project_detector_1 = require("../services/project-detector");
|
|
14
15
|
const gitignore_manager_1 = require("../services/gitignore-manager");
|
|
15
16
|
class InitCommand {
|
|
@@ -17,11 +18,13 @@ class InitCommand {
|
|
|
17
18
|
this.templateManager = new template_manager_1.TemplateManager();
|
|
18
19
|
this.fileSystem = new filesystem_1.FileSystemService();
|
|
19
20
|
this.vscodeService = new vscode_1.VSCodeService();
|
|
21
|
+
this.cursorService = new cursor_1.CursorService(this.templateManager, this.fileSystem);
|
|
20
22
|
this.projectDetector = new project_detector_1.ProjectDetector();
|
|
21
23
|
this.gitIgnoreManager = new gitignore_manager_1.GitIgnoreManager();
|
|
22
24
|
}
|
|
23
25
|
async execute(options) {
|
|
24
26
|
console.log(chalk_1.default.cyan.bold('🚀 Welcome to metacoding Setup!\n'));
|
|
27
|
+
const ideChoice = await this.validateAndGetIdeChoice(options);
|
|
25
28
|
const projectInfo = await this.projectDetector.detectProject();
|
|
26
29
|
if ((await this.fileSystem.isMetaCodingSetup()) && !options.force) {
|
|
27
30
|
const { proceed } = await inquirer_1.default.prompt([
|
|
@@ -38,9 +41,9 @@ class InitCommand {
|
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
43
|
const config = await this.getProjectConfiguration(options, projectInfo);
|
|
41
|
-
await this.setupProject(config, options);
|
|
44
|
+
await this.setupProject(config, options, ideChoice);
|
|
42
45
|
console.log(chalk_1.default.green.bold('\n✅ metacoding setup complete!\n'));
|
|
43
|
-
this.displayNextSteps();
|
|
46
|
+
this.displayNextSteps(ideChoice);
|
|
44
47
|
}
|
|
45
48
|
async getProjectConfiguration(options, projectInfo) {
|
|
46
49
|
if (options.force && process.env.NODE_ENV === 'test') {
|
|
@@ -127,7 +130,7 @@ class InitCommand {
|
|
|
127
130
|
buildTool: this.getDefaultBuildTool(answers.projectType),
|
|
128
131
|
};
|
|
129
132
|
}
|
|
130
|
-
async setupProject(config, options) {
|
|
133
|
+
async setupProject(config, options, ideChoice) {
|
|
131
134
|
const spinner = (0, ora_1.default)('Setting up metacoding files...').start();
|
|
132
135
|
try {
|
|
133
136
|
await this.fileSystem.ensureDirectoryExists('.github');
|
|
@@ -140,9 +143,17 @@ class InitCommand {
|
|
|
140
143
|
}
|
|
141
144
|
spinner.text = 'Updating .gitignore with AI assistant exclusions...';
|
|
142
145
|
await this.gitIgnoreManager.updateGitIgnore(process.cwd());
|
|
143
|
-
if (
|
|
144
|
-
|
|
145
|
-
|
|
146
|
+
if (ideChoice === 'vscode') {
|
|
147
|
+
if (!options.skipVscode) {
|
|
148
|
+
spinner.text = 'Configuring VS Code settings...';
|
|
149
|
+
await this.vscodeService.updateSettings(template.vscodeSettings || {});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else if (ideChoice === 'cursor') {
|
|
153
|
+
spinner.text = 'Configuring Cursor IDE rules...';
|
|
154
|
+
const workflowContent = await this.cursorService.generateWorkflowRules(process.cwd(), config.projectType, config);
|
|
155
|
+
const patternRules = await this.cursorService.generatePatternRules(process.cwd(), config.projectType);
|
|
156
|
+
await this.cursorService.installCursorRules(process.cwd(), workflowContent, patternRules);
|
|
146
157
|
}
|
|
147
158
|
spinner.succeed('metacoding files created successfully');
|
|
148
159
|
}
|
|
@@ -175,12 +186,53 @@ class InitCommand {
|
|
|
175
186
|
return 'TypeScript Compiler';
|
|
176
187
|
}
|
|
177
188
|
}
|
|
178
|
-
|
|
189
|
+
async validateAndGetIdeChoice(options) {
|
|
190
|
+
if (options.vscode && options.cursor) {
|
|
191
|
+
throw new Error('Cannot specify both --vscode and --cursor flags. Please choose one.');
|
|
192
|
+
}
|
|
193
|
+
if (options.vscode) {
|
|
194
|
+
return 'vscode';
|
|
195
|
+
}
|
|
196
|
+
if (options.cursor) {
|
|
197
|
+
return 'cursor';
|
|
198
|
+
}
|
|
199
|
+
if (options.force && process.env.NODE_ENV === 'test') {
|
|
200
|
+
return 'vscode';
|
|
201
|
+
}
|
|
202
|
+
const { ideChoice } = await inquirer_1.default.prompt([
|
|
203
|
+
{
|
|
204
|
+
type: 'list',
|
|
205
|
+
name: 'ideChoice',
|
|
206
|
+
message: 'Which AI coding environment would you like to set up?',
|
|
207
|
+
choices: [
|
|
208
|
+
{
|
|
209
|
+
name: 'VS Code + GitHub Copilot (recommended for most users)',
|
|
210
|
+
value: 'vscode',
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: 'Cursor IDE (alternative AI-powered editor)',
|
|
214
|
+
value: 'cursor',
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
default: 'vscode',
|
|
218
|
+
},
|
|
219
|
+
]);
|
|
220
|
+
return ideChoice;
|
|
221
|
+
}
|
|
222
|
+
displayNextSteps(ideChoice) {
|
|
179
223
|
console.log(chalk_1.default.cyan('Next steps:'));
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
224
|
+
if (ideChoice === 'vscode') {
|
|
225
|
+
console.log(chalk_1.default.dim('1.'), 'Restart VS Code to apply settings');
|
|
226
|
+
console.log(chalk_1.default.dim('2.'), 'Open GitHub Copilot Chat');
|
|
227
|
+
console.log(chalk_1.default.dim('3.'), 'Ask: "What is the development workflow for this project?"');
|
|
228
|
+
console.log(chalk_1.default.dim('4.'), 'Start coding with guided workflow support!');
|
|
229
|
+
}
|
|
230
|
+
else if (ideChoice === 'cursor') {
|
|
231
|
+
console.log(chalk_1.default.dim('1.'), 'Open your project in Cursor IDE');
|
|
232
|
+
console.log(chalk_1.default.dim('2.'), 'Check that .cursor/rules/workflow.mdc is loaded');
|
|
233
|
+
console.log(chalk_1.default.dim('3.'), 'Ask Cursor: "What is the development workflow for this project?"');
|
|
234
|
+
console.log(chalk_1.default.dim('4.'), 'Start coding with guided workflow support!');
|
|
235
|
+
}
|
|
184
236
|
console.log('');
|
|
185
237
|
console.log(chalk_1.default.cyan('Need help?'), 'Visit https://github.com/anton-g-kulikov/metacoding');
|
|
186
238
|
}
|
package/lib/commands/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,wDAAgC;AAChC,8CAAsB;AAEtB,mEAA+D;AAC/D,uDAA2D;AAC3D,+CAAmD;AACnD,mEAA+D;AAC/D,qEAAiE;AAKjE,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TemplateManager } from './template-manager';
|
|
2
|
+
import { FileSystemService } from './filesystem';
|
|
3
|
+
export interface PatternRule {
|
|
4
|
+
filename: string;
|
|
5
|
+
content: string;
|
|
6
|
+
pattern: string;
|
|
7
|
+
}
|
|
8
|
+
export interface InstallationResult {
|
|
9
|
+
success: boolean;
|
|
10
|
+
conflicts: string[];
|
|
11
|
+
backups: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare class CursorService {
|
|
14
|
+
private templateManager;
|
|
15
|
+
private fileSystemService;
|
|
16
|
+
constructor(templateManager: TemplateManager, fileSystemService: FileSystemService);
|
|
17
|
+
detectCursorIDE(): Promise<boolean>;
|
|
18
|
+
validateCursorCompatibility(): Promise<boolean>;
|
|
19
|
+
getCursorConfigPath(customPath?: string): string;
|
|
20
|
+
generateWorkflowRules(projectPath: string, templateType: string, projectConfig?: any): Promise<string>;
|
|
21
|
+
generatePatternRules(projectPath: string, templateType: string): Promise<PatternRule[]>;
|
|
22
|
+
installCursorRules(projectPath: string, workflowContent: string, patternRules: PatternRule[]): Promise<InstallationResult>;
|
|
23
|
+
backupExistingRules(projectPath: string): Promise<string[]>;
|
|
24
|
+
processInstructionTemplate(instructionContent: string): string;
|
|
25
|
+
mergeInstructionFiles(instructionFiles: Array<{
|
|
26
|
+
path: string;
|
|
27
|
+
content: string;
|
|
28
|
+
}>, projectConfig?: any): string;
|
|
29
|
+
extractPatternSpecificRules(instructionFile: {
|
|
30
|
+
path: string;
|
|
31
|
+
content: string;
|
|
32
|
+
}, pattern: string): PatternRule;
|
|
33
|
+
validateRulesContent(content: string): boolean;
|
|
34
|
+
private createDefaultWorkflowRules;
|
|
35
|
+
private createCursorRulesHeader;
|
|
36
|
+
private determineFilePattern;
|
|
37
|
+
private generateMdcFilename;
|
|
38
|
+
private createMdcContent;
|
|
39
|
+
private getMetacodingVersion;
|
|
40
|
+
private applyTemplateSubstitution;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/services/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAKD,qBAAa,aAAa;IAEtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,iBAAiB;gBADjB,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB;IAMxC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAanC,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC;IASrD,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAW1C,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,GAAG,GAClB,OAAO,CAAC,MAAM,CAAC;IAsBZ,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,EAAE,CAAC;IAyBnB,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,kBAAkB,CAAC;IAgExB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BjE,0BAA0B,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM;IAiB9D,qBAAqB,CACnB,gBAAgB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,EAC1D,aAAa,CAAC,EAAE,GAAG,GAClB,MAAM;IAsBT,2BAA2B,CACzB,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAClD,OAAO,EAAE,MAAM,GACd,WAAW;IAcd,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAa9C,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,oBAAoB;IAgD5B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,yBAAyB;CAqDlC"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CursorService = void 0;
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const os = __importStar(require("os"));
|
|
39
|
+
const fs_1 = require("fs");
|
|
40
|
+
class CursorService {
|
|
41
|
+
constructor(templateManager, fileSystemService) {
|
|
42
|
+
this.templateManager = templateManager;
|
|
43
|
+
this.fileSystemService = fileSystemService;
|
|
44
|
+
}
|
|
45
|
+
async detectCursorIDE() {
|
|
46
|
+
try {
|
|
47
|
+
const configPath = this.getCursorConfigPath();
|
|
48
|
+
await fs_1.promises.access(configPath);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async validateCursorCompatibility() {
|
|
56
|
+
return await this.detectCursorIDE();
|
|
57
|
+
}
|
|
58
|
+
getCursorConfigPath(customPath) {
|
|
59
|
+
if (customPath) {
|
|
60
|
+
return customPath;
|
|
61
|
+
}
|
|
62
|
+
return path.join(os.homedir(), '.cursor');
|
|
63
|
+
}
|
|
64
|
+
async generateWorkflowRules(projectPath, templateType, projectConfig) {
|
|
65
|
+
try {
|
|
66
|
+
const instructionFiles = await this.templateManager.getInstructionFiles(templateType);
|
|
67
|
+
if (instructionFiles.length === 0) {
|
|
68
|
+
return this.createDefaultWorkflowRules();
|
|
69
|
+
}
|
|
70
|
+
return this.mergeInstructionFiles(instructionFiles, projectConfig);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw new Error(`Failed to generate workflow rules: ${error instanceof Error ? error.message : String(error)}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async generatePatternRules(projectPath, templateType) {
|
|
77
|
+
const instructionFiles = await this.templateManager.getInstructionFiles(templateType);
|
|
78
|
+
const patternRules = [];
|
|
79
|
+
for (const file of instructionFiles) {
|
|
80
|
+
if (file.path.includes('copilot-instructions')) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const pattern = this.determineFilePattern(file.path, templateType);
|
|
84
|
+
const mdcFile = this.extractPatternSpecificRules(file, pattern);
|
|
85
|
+
patternRules.push(mdcFile);
|
|
86
|
+
}
|
|
87
|
+
return patternRules;
|
|
88
|
+
}
|
|
89
|
+
async installCursorRules(projectPath, workflowContent, patternRules) {
|
|
90
|
+
const conflicts = [];
|
|
91
|
+
const backups = [];
|
|
92
|
+
const cursorRulesDir = path.join(projectPath, '.cursor', 'rules');
|
|
93
|
+
const workflowRulesPath = path.join(cursorRulesDir, 'workflow.mdc');
|
|
94
|
+
if (await this.fileSystemService.fileExists(workflowRulesPath)) {
|
|
95
|
+
conflicts.push('.cursor/rules/workflow.mdc');
|
|
96
|
+
}
|
|
97
|
+
for (const rule of patternRules) {
|
|
98
|
+
const rulePath = path.join(cursorRulesDir, rule.filename);
|
|
99
|
+
if (await this.fileSystemService.fileExists(rulePath)) {
|
|
100
|
+
conflicts.push(path.join('.cursor', 'rules', rule.filename));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (conflicts.length > 0) {
|
|
104
|
+
return {
|
|
105
|
+
success: false,
|
|
106
|
+
conflicts,
|
|
107
|
+
backups: [],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
await this.fileSystemService.ensureDirectoryExists(cursorRulesDir);
|
|
112
|
+
const workflowMdcContent = this.createMdcContent(workflowContent, '**/*');
|
|
113
|
+
await this.fileSystemService.writeFile(workflowRulesPath, workflowMdcContent);
|
|
114
|
+
for (const rule of patternRules) {
|
|
115
|
+
const rulePath = path.join(cursorRulesDir, rule.filename);
|
|
116
|
+
await this.fileSystemService.writeFile(rulePath, rule.content);
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
success: true,
|
|
120
|
+
conflicts: [],
|
|
121
|
+
backups,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
throw new Error(`Failed to install Cursor rules: ${error instanceof Error ? error.message : String(error)}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async backupExistingRules(projectPath) {
|
|
129
|
+
const backups = [];
|
|
130
|
+
const legacyWorkflowPath = path.join(projectPath, 'workflow.cursorrules');
|
|
131
|
+
if (await this.fileSystemService.fileExists(legacyWorkflowPath)) {
|
|
132
|
+
const backupPath = await this.fileSystemService.backupFile(legacyWorkflowPath);
|
|
133
|
+
backups.push(backupPath);
|
|
134
|
+
}
|
|
135
|
+
const cursorRulesDir = path.join(projectPath, '.cursor', 'rules');
|
|
136
|
+
if (await this.fileSystemService.fileExists(cursorRulesDir)) {
|
|
137
|
+
const files = await this.fileSystemService.listFiles(cursorRulesDir);
|
|
138
|
+
const mdcFiles = files.filter((file) => file.endsWith('.mdc'));
|
|
139
|
+
for (const file of mdcFiles) {
|
|
140
|
+
const filePath = path.join(cursorRulesDir, file);
|
|
141
|
+
const backupPath = await this.fileSystemService.backupFile(filePath);
|
|
142
|
+
backups.push(backupPath);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return backups;
|
|
146
|
+
}
|
|
147
|
+
processInstructionTemplate(instructionContent) {
|
|
148
|
+
const header = this.createCursorRulesHeader();
|
|
149
|
+
const processedContent = instructionContent
|
|
150
|
+
.replace(/# GitHub Copilot/gi, '# Cursor AI')
|
|
151
|
+
.replace(/GitHub Copilot/g, 'Cursor AI')
|
|
152
|
+
.replace(/Copilot/g, 'Cursor AI')
|
|
153
|
+
.replace(/\.vscode/g, '.cursor')
|
|
154
|
+
.replace(/VS Code/g, 'Cursor IDE')
|
|
155
|
+
.replace(/Visual Studio Code/g, 'Cursor IDE');
|
|
156
|
+
return `${header}\n\n${processedContent}`;
|
|
157
|
+
}
|
|
158
|
+
mergeInstructionFiles(instructionFiles, projectConfig) {
|
|
159
|
+
const header = this.createCursorRulesHeader();
|
|
160
|
+
const mergedContent = instructionFiles
|
|
161
|
+
.map((file) => {
|
|
162
|
+
let processed = this.processInstructionTemplate(file.content);
|
|
163
|
+
if (projectConfig) {
|
|
164
|
+
processed = this.applyTemplateSubstitution(processed, projectConfig);
|
|
165
|
+
}
|
|
166
|
+
return `<!-- Source: ${file.path} -->\n${processed}`;
|
|
167
|
+
})
|
|
168
|
+
.join('\n\n---\n\n');
|
|
169
|
+
return `${header}\n\n${mergedContent}`;
|
|
170
|
+
}
|
|
171
|
+
extractPatternSpecificRules(instructionFile, pattern) {
|
|
172
|
+
const filename = this.generateMdcFilename(instructionFile.path);
|
|
173
|
+
const content = this.createMdcContent(instructionFile.content, pattern);
|
|
174
|
+
return {
|
|
175
|
+
filename,
|
|
176
|
+
content,
|
|
177
|
+
pattern,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
validateRulesContent(content) {
|
|
181
|
+
if (content.includes('<!--') && content.includes('-->')) {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
return content.trim().length > 0;
|
|
185
|
+
}
|
|
186
|
+
createDefaultWorkflowRules() {
|
|
187
|
+
const header = this.createCursorRulesHeader();
|
|
188
|
+
const defaultContent = `# Default Cursor AI Rules
|
|
189
|
+
|
|
190
|
+
No specific instructions found for this project type.
|
|
191
|
+
|
|
192
|
+
Please follow general best practices for code quality, maintainability, and documentation.`;
|
|
193
|
+
return `${header}\n\n${defaultContent}`;
|
|
194
|
+
}
|
|
195
|
+
createCursorRulesHeader() {
|
|
196
|
+
return `<!--
|
|
197
|
+
Generated by metacoding v${this.getMetacodingVersion()}
|
|
198
|
+
Cursor AI rules for enhanced development experience
|
|
199
|
+
Do not edit manually - regenerate using metacoding update
|
|
200
|
+
This content will be wrapped in MDC format when saved to .cursor/rules/
|
|
201
|
+
-->
|
|
202
|
+
|
|
203
|
+
# Cursor AI Development Rules`;
|
|
204
|
+
}
|
|
205
|
+
determineFilePattern(instructionPath, templateType) {
|
|
206
|
+
if (instructionPath.includes('typescript') ||
|
|
207
|
+
instructionPath.includes('ts')) {
|
|
208
|
+
return '**/*.ts';
|
|
209
|
+
}
|
|
210
|
+
if (instructionPath.includes('test')) {
|
|
211
|
+
switch (templateType) {
|
|
212
|
+
case 'typescript':
|
|
213
|
+
case 'node':
|
|
214
|
+
return '**/*.test.ts';
|
|
215
|
+
case 'react':
|
|
216
|
+
return '**/*.test.{tsx,ts}';
|
|
217
|
+
case 'python':
|
|
218
|
+
return '**/*.test.py';
|
|
219
|
+
default:
|
|
220
|
+
return '**/*.test.*';
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (instructionPath.includes('react')) {
|
|
224
|
+
return '**/*.{tsx,jsx}';
|
|
225
|
+
}
|
|
226
|
+
if (instructionPath.includes('python')) {
|
|
227
|
+
return '**/*.py';
|
|
228
|
+
}
|
|
229
|
+
switch (templateType) {
|
|
230
|
+
case 'typescript':
|
|
231
|
+
case 'node':
|
|
232
|
+
return '**/*.{ts,js}';
|
|
233
|
+
case 'react':
|
|
234
|
+
return '**/*.{tsx,jsx,ts,js}';
|
|
235
|
+
case 'python':
|
|
236
|
+
return '**/*.py';
|
|
237
|
+
default:
|
|
238
|
+
return '**/*';
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
generateMdcFilename(instructionPath) {
|
|
242
|
+
const basename = path.basename(instructionPath, '.md');
|
|
243
|
+
const cleanName = basename
|
|
244
|
+
.replace('.instructions', '-instructions')
|
|
245
|
+
.replace('.coding', '-coding')
|
|
246
|
+
.replace(/[^a-zA-Z0-9-]/g, '-')
|
|
247
|
+
.replace(/-+/g, '-')
|
|
248
|
+
.replace(/^-+|-+$/g, '')
|
|
249
|
+
.toLowerCase();
|
|
250
|
+
return `${cleanName}.mdc`;
|
|
251
|
+
}
|
|
252
|
+
createMdcContent(instructionContent, pattern) {
|
|
253
|
+
const frontmatter = `---
|
|
254
|
+
description: "${pattern === '**/*' ? 'General workflow and development rules' : `AI rules for ${pattern} files`}"
|
|
255
|
+
patterns: ["${pattern}"]
|
|
256
|
+
alwaysApply: ${pattern === '**/*' ? 'true' : 'false'}
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
`;
|
|
260
|
+
const processedContent = this.processInstructionTemplate(instructionContent);
|
|
261
|
+
return frontmatter + processedContent;
|
|
262
|
+
}
|
|
263
|
+
getMetacodingVersion() {
|
|
264
|
+
return '1.1.4';
|
|
265
|
+
}
|
|
266
|
+
applyTemplateSubstitution(content, projectConfig) {
|
|
267
|
+
let substituted = content;
|
|
268
|
+
if (projectConfig.projectName) {
|
|
269
|
+
substituted = substituted.replace(/\{\{PROJECT_NAME\}\}/g, projectConfig.projectName);
|
|
270
|
+
}
|
|
271
|
+
if (projectConfig.projectDescription) {
|
|
272
|
+
substituted = substituted.replace(/\{\{PROJECT_DESCRIPTION\}\}/g, projectConfig.projectDescription);
|
|
273
|
+
}
|
|
274
|
+
if (projectConfig.techStack && Array.isArray(projectConfig.techStack)) {
|
|
275
|
+
substituted = substituted.replace(/\{\{TECH_STACK\}\}/g, projectConfig.techStack.join(', '));
|
|
276
|
+
}
|
|
277
|
+
if (projectConfig.projectDomain) {
|
|
278
|
+
substituted = substituted.replace(/\{\{PROJECT_DOMAIN\}\}/g, projectConfig.projectDomain);
|
|
279
|
+
}
|
|
280
|
+
substituted = substituted.replace(/\{\{PROJECT_NAME\}\}/g, 'Project');
|
|
281
|
+
substituted = substituted.replace(/\{\{PROJECT_DESCRIPTION\}\}/g, 'A guided development project using metacoding workflow');
|
|
282
|
+
substituted = substituted.replace(/\{\{TECH_STACK\}\}/g, 'TypeScript, Jest');
|
|
283
|
+
substituted = substituted.replace(/\{\{PROJECT_DOMAIN\}\}/g, 'software');
|
|
284
|
+
substituted = substituted.replace(/\{\{PROJECT_SPECIFIC_GUIDANCE\}\}/g, '- **Best Practices:** Follow language-specific coding standards and conventions\n- **Architecture:** Implement modular and maintainable code structure\n- **Testing:** Write comprehensive tests for all functionality\n- **Documentation:** Maintain clear and up-to-date documentation');
|
|
285
|
+
return substituted;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
exports.CursorService = CursorService;
|
|
289
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/services/cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,5 +14,10 @@ export declare class TemplateManager {
|
|
|
14
14
|
private processTemplateContent;
|
|
15
15
|
private getProjectDomain;
|
|
16
16
|
private getProjectSpecificGuidance;
|
|
17
|
+
getInstructionFiles(templateType: string): Promise<Array<{
|
|
18
|
+
path: string;
|
|
19
|
+
content: string;
|
|
20
|
+
}>>;
|
|
21
|
+
private getCodingInstructionFiles;
|
|
17
22
|
}
|
|
18
23
|
//# sourceMappingURL=template-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-manager.d.ts","sourceRoot":"","sources":["../../src/services/template-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKnD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;;IAYnC,WAAW,CACf,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,QAAQ,CAAC;YAwCN,oBAAoB;IA+G5B,eAAe,CACnB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAqC9C,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YA4BlC,iBAAiB;IAsD/B,OAAO,CAAC,sBAAsB;IA8D9B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"template-manager.d.ts","sourceRoot":"","sources":["../../src/services/template-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKnD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;;IAYnC,WAAW,CACf,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,QAAQ,CAAC;YAwCN,oBAAoB;IA+G5B,eAAe,CACnB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAqC9C,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YA4BlC,iBAAiB;IAsD/B,OAAO,CAAC,sBAAsB;IA8D9B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,0BAA0B;IAmC5B,mBAAmB,CACvB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAqDpD,OAAO,CAAC,yBAAyB;CA2BlC"}
|
|
@@ -282,6 +282,71 @@ class TemplateManager {
|
|
|
282
282
|
- **Documentation:** Maintain clear and up-to-date documentation`;
|
|
283
283
|
}
|
|
284
284
|
}
|
|
285
|
+
async getInstructionFiles(templateType) {
|
|
286
|
+
const instructionFiles = [];
|
|
287
|
+
try {
|
|
288
|
+
const generalPath = path.join(this.templatesDir, 'general');
|
|
289
|
+
const universalFiles = [
|
|
290
|
+
'copilot-instructions.md',
|
|
291
|
+
'docs-update.instructions.md',
|
|
292
|
+
'code-review.instructions.md',
|
|
293
|
+
];
|
|
294
|
+
for (const file of universalFiles) {
|
|
295
|
+
const filePath = path.join(generalPath, file);
|
|
296
|
+
if (await fs.pathExists(filePath)) {
|
|
297
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
298
|
+
instructionFiles.push({
|
|
299
|
+
path: `general/${file}`,
|
|
300
|
+
content,
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
const templatePath = path.join(this.templatesDir, templateType);
|
|
305
|
+
if (await fs.pathExists(templatePath)) {
|
|
306
|
+
const codingFiles = await this.getCodingInstructionFiles(templateType);
|
|
307
|
+
for (const file of codingFiles) {
|
|
308
|
+
const filePath = path.join(templatePath, file);
|
|
309
|
+
if (await fs.pathExists(filePath)) {
|
|
310
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
311
|
+
instructionFiles.push({
|
|
312
|
+
path: `${templateType}/${file}`,
|
|
313
|
+
content,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return instructionFiles;
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
throw new Error(`Failed to load instruction files for ${templateType}: ${error instanceof Error ? error.message : String(error)}`);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
getCodingInstructionFiles(templateType) {
|
|
325
|
+
const commonFiles = ['test-runner.instructions.md'];
|
|
326
|
+
switch (templateType) {
|
|
327
|
+
case 'typescript':
|
|
328
|
+
case 'node':
|
|
329
|
+
return [
|
|
330
|
+
...commonFiles,
|
|
331
|
+
'typescript.coding.instructions.md',
|
|
332
|
+
'nodejs.testing.instructions.md',
|
|
333
|
+
];
|
|
334
|
+
case 'react':
|
|
335
|
+
return [
|
|
336
|
+
...commonFiles,
|
|
337
|
+
'react.coding.instructions.md',
|
|
338
|
+
'react.testing.instructions.md',
|
|
339
|
+
];
|
|
340
|
+
case 'python':
|
|
341
|
+
return [
|
|
342
|
+
...commonFiles,
|
|
343
|
+
'python.coding.instructions.md',
|
|
344
|
+
'python.testing.instructions.md',
|
|
345
|
+
];
|
|
346
|
+
default:
|
|
347
|
+
return commonFiles;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
285
350
|
}
|
|
286
351
|
exports.TemplateManager = TemplateManager;
|
|
287
352
|
//# sourceMappingURL=template-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-manager.js","sourceRoot":"","sources":["../../src/services/template-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"template-manager.js","sourceRoot":"","sources":["../../src/services/template-manager.ts"],"names":[],"mappings":"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"}
|
package/lib/types/index.d.ts
CHANGED
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "metacoding",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Guided Development Workflow for GitHub Copilot - Transform your coding experience with AI-guided standards, structured workflows, and quality practices",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|