metacoding 1.5.0 → 2.0.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 +59 -0
- package/README.md +108 -514
- package/lib/cli.d.ts.map +1 -1
- package/lib/cli.js +18 -19
- package/lib/cli.js.map +1 -1
- package/lib/commands/init.d.ts +8 -14
- package/lib/commands/init.d.ts.map +1 -1
- package/lib/commands/init.js +105 -387
- package/lib/commands/init.js.map +1 -1
- package/lib/commands/update.d.ts +9 -9
- package/lib/commands/update.d.ts.map +1 -1
- package/lib/commands/update.js +141 -320
- package/lib/commands/update.js.map +1 -1
- package/lib/services/backup.d.ts +1 -1
- package/lib/services/backup.d.ts.map +1 -1
- package/lib/services/backup.js +10 -6
- package/lib/services/backup.js.map +1 -1
- package/lib/services/filesystem.d.ts.map +1 -1
- package/lib/services/filesystem.js +11 -5
- package/lib/services/filesystem.js.map +1 -1
- package/lib/services/gitignore-manager.js +5 -5
- package/lib/services/gitignore-manager.js.map +1 -1
- package/lib/services/project-detector.d.ts +9 -8
- package/lib/services/project-detector.d.ts.map +1 -1
- package/lib/services/project-detector.js +79 -197
- package/lib/services/project-detector.js.map +1 -1
- package/lib/services/skill-manager.d.ts +23 -0
- package/lib/services/skill-manager.d.ts.map +1 -0
- package/lib/services/skill-manager.js +212 -0
- package/lib/services/skill-manager.js.map +1 -0
- package/lib/types/index.d.ts +5 -15
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +9 -17
- package/skills/metacoding-workflow/SKILL.md +52 -0
- package/skills/metacoding-workflow/agents/openai.yaml +4 -0
- package/skills/metacoding-workflow/assets/templates/changelog-entry.md +6 -0
- package/skills/metacoding-workflow/assets/templates/project-context.md +18 -0
- package/skills/metacoding-workflow/assets/templates/repeated-task-checklist.md +8 -0
- package/skills/metacoding-workflow/assets/templates/task-entry.md +9 -0
- package/skills/metacoding-workflow/assets/templates/test-plan.md +8 -0
- package/skills/metacoding-workflow/references/javascript.md +7 -0
- package/skills/metacoding-workflow/references/node.md +7 -0
- package/skills/metacoding-workflow/references/platform-adaptation.md +37 -0
- package/skills/metacoding-workflow/references/python.md +7 -0
- package/skills/metacoding-workflow/references/react.md +7 -0
- package/skills/metacoding-workflow/references/repository-organization.md +84 -0
- package/skills/metacoding-workflow/references/typescript.md +7 -0
- package/skills/metacoding-workflow/references/workflow-rules.md +54 -0
- package/skills/vendor-templates/claude-agent.md.template +41 -0
- package/lib/services/assistant-adapter.d.ts +0 -18
- package/lib/services/assistant-adapter.d.ts.map +0 -1
- package/lib/services/assistant-adapter.js +0 -246
- package/lib/services/assistant-adapter.js.map +0 -1
- package/lib/services/cursor.d.ts +0 -47
- package/lib/services/cursor.d.ts.map +0 -1
- package/lib/services/cursor.js +0 -314
- package/lib/services/cursor.js.map +0 -1
- package/lib/services/template-manager.d.ts +0 -23
- package/lib/services/template-manager.d.ts.map +0 -1
- package/lib/services/template-manager.js +0 -374
- package/lib/services/template-manager.js.map +0 -1
- package/lib/services/vscode.d.ts +0 -10
- package/lib/services/vscode.d.ts.map +0 -1
- package/lib/services/vscode.js +0 -108
- package/lib/services/vscode.js.map +0 -1
- package/templates/assistants/AGENTS.md +0 -203
- package/templates/assistants/CLAUDE.md +0 -156
- package/templates/assistants/GEMINI.md +0 -193
- package/templates/general/code-review.instructions.md +0 -265
- package/templates/general/copilot-instructions.md +0 -427
- package/templates/general/docs-update.instructions.md +0 -275
- package/templates/general/release.instructions.md +0 -242
- package/templates/general/template.json +0 -9
- package/templates/general/test-runner.instructions.md +0 -188
- package/templates/javascript/javascript.coding.instructions.md +0 -500
- package/templates/javascript/javascript.docs.instructions.md +0 -563
- package/templates/javascript/javascript.testing.instructions.md +0 -686
- package/templates/javascript/template.json +0 -36
- package/templates/node/nodejs.coding.instructions.md +0 -249
- package/templates/node/nodejs.docs.instructions.md +0 -261
- package/templates/node/nodejs.testing.instructions.md +0 -373
- package/templates/node/template.json +0 -23
- package/templates/python/python.coding.instructions.md +0 -338
- package/templates/python/python.docs.instructions.md +0 -1178
- package/templates/python/python.testing.instructions.md +0 -1073
- package/templates/python/template.json +0 -75
- package/templates/react/react.coding.instructions.md +0 -694
- package/templates/react/react.docs.instructions.md +0 -451
- package/templates/react/react.testing.instructions.md +0 -192
- package/templates/react/template.json +0 -14
- package/templates/react/test-runner.instructions.md +0 -135
- package/templates/typescript/template.json +0 -16
- package/templates/typescript/typescript.coding.instructions.md +0 -368
- package/templates/typescript/typescript.docs.instructions.md +0 -760
- package/templates/typescript/typescript.testing.instructions.md +0 -739
package/lib/services/cursor.js
DELETED
|
@@ -1,314 +0,0 @@
|
|
|
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
|
-
const copilotInstructionsFile = instructionFiles.find((file) => file.path.includes('copilot-instructions.md'));
|
|
68
|
-
if (!copilotInstructionsFile) {
|
|
69
|
-
return this.createDefaultWorkflowRules();
|
|
70
|
-
}
|
|
71
|
-
return this.processInstructionFile(copilotInstructionsFile, projectConfig);
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
throw new Error(`Failed to generate workflow rules: ${error instanceof Error ? error.message : String(error)}`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
async generatePatternRules(projectPath, templateType) {
|
|
78
|
-
const instructionFiles = await this.templateManager.getInstructionFiles(templateType);
|
|
79
|
-
const patternRules = [];
|
|
80
|
-
for (const file of instructionFiles) {
|
|
81
|
-
if (file.path.includes('copilot-instructions')) {
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
const pattern = this.determineFilePattern(file.path, templateType);
|
|
85
|
-
const mdcFile = this.extractPatternSpecificRules(file, pattern);
|
|
86
|
-
patternRules.push(mdcFile);
|
|
87
|
-
}
|
|
88
|
-
return patternRules;
|
|
89
|
-
}
|
|
90
|
-
async installCursorRules(projectPath, workflowContent, patternRules) {
|
|
91
|
-
const conflicts = [];
|
|
92
|
-
const backups = [];
|
|
93
|
-
const cursorRulesDir = path.join(projectPath, '.cursor', 'rules');
|
|
94
|
-
const workflowRulesPath = path.join(cursorRulesDir, 'workflow.mdc');
|
|
95
|
-
if (await this.fileSystemService.fileExists(workflowRulesPath)) {
|
|
96
|
-
conflicts.push('.cursor/rules/workflow.mdc');
|
|
97
|
-
}
|
|
98
|
-
for (const rule of patternRules) {
|
|
99
|
-
const rulePath = path.join(cursorRulesDir, rule.filename);
|
|
100
|
-
if (await this.fileSystemService.fileExists(rulePath)) {
|
|
101
|
-
conflicts.push(path.join('.cursor', 'rules', rule.filename));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (conflicts.length > 0) {
|
|
105
|
-
return {
|
|
106
|
-
success: false,
|
|
107
|
-
conflicts,
|
|
108
|
-
backups: [],
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
try {
|
|
112
|
-
await this.fileSystemService.ensureDirectoryExists(cursorRulesDir);
|
|
113
|
-
const workflowMdcContent = this.createMdcContent(workflowContent, '**/*');
|
|
114
|
-
await this.fileSystemService.writeFile(workflowRulesPath, workflowMdcContent);
|
|
115
|
-
for (const rule of patternRules) {
|
|
116
|
-
const rulePath = path.join(cursorRulesDir, rule.filename);
|
|
117
|
-
await this.fileSystemService.writeFile(rulePath, rule.content);
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
success: true,
|
|
121
|
-
conflicts: [],
|
|
122
|
-
backups,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
throw new Error(`Failed to install Cursor rules: ${error instanceof Error ? error.message : String(error)}`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
async backupExistingRules(projectPath) {
|
|
130
|
-
const backups = [];
|
|
131
|
-
const legacyWorkflowPath = path.join(projectPath, 'workflow.cursorrules');
|
|
132
|
-
if (await this.fileSystemService.fileExists(legacyWorkflowPath)) {
|
|
133
|
-
const backupPath = await this.fileSystemService.backupFile(legacyWorkflowPath);
|
|
134
|
-
backups.push(backupPath);
|
|
135
|
-
}
|
|
136
|
-
const cursorRulesDir = path.join(projectPath, '.cursor', 'rules');
|
|
137
|
-
if (await this.fileSystemService.fileExists(cursorRulesDir)) {
|
|
138
|
-
const files = await this.fileSystemService.listFiles(cursorRulesDir);
|
|
139
|
-
const mdcFiles = files.filter((file) => file.endsWith('.mdc'));
|
|
140
|
-
for (const file of mdcFiles) {
|
|
141
|
-
const filePath = path.join(cursorRulesDir, file);
|
|
142
|
-
const backupPath = await this.fileSystemService.backupFile(filePath);
|
|
143
|
-
backups.push(backupPath);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return backups;
|
|
147
|
-
}
|
|
148
|
-
processInstructionTemplate(instructionContent) {
|
|
149
|
-
const header = this.createCursorRulesHeader();
|
|
150
|
-
const processedContent = instructionContent
|
|
151
|
-
.replace(/# GitHub Copilot/gi, '# Cursor AI')
|
|
152
|
-
.replace(/GitHub Copilot/g, 'Cursor AI')
|
|
153
|
-
.replace(/Copilot/g, 'Cursor AI')
|
|
154
|
-
.replace(/\.vscode/g, '.cursor')
|
|
155
|
-
.replace(/VS Code/g, 'Cursor IDE')
|
|
156
|
-
.replace(/Visual Studio Code/g, 'Cursor IDE');
|
|
157
|
-
return `${header}\n\n${processedContent}`;
|
|
158
|
-
}
|
|
159
|
-
processInstructionFile(instructionFile, projectConfig) {
|
|
160
|
-
let content = instructionFile.content;
|
|
161
|
-
if (projectConfig) {
|
|
162
|
-
content = this.applyTemplateSubstitution(content, projectConfig);
|
|
163
|
-
}
|
|
164
|
-
const cleanedContent = this.processInstructionContentOnly(content);
|
|
165
|
-
const header = this.createCursorRulesHeader();
|
|
166
|
-
return `${header}\n\n<!-- Source: ${instructionFile.path} -->\n${cleanedContent}`;
|
|
167
|
-
}
|
|
168
|
-
mergeInstructionFiles(instructionFiles, projectConfig) {
|
|
169
|
-
const processedFiles = instructionFiles.map((file) => {
|
|
170
|
-
let content = file.content;
|
|
171
|
-
if (projectConfig) {
|
|
172
|
-
content = this.applyTemplateSubstitution(content, projectConfig);
|
|
173
|
-
}
|
|
174
|
-
const cleanedContent = this.processInstructionContentOnly(content);
|
|
175
|
-
return `<!-- Source: ${file.path} -->\n${cleanedContent}`;
|
|
176
|
-
});
|
|
177
|
-
const header = this.createCursorRulesHeader();
|
|
178
|
-
const mergedContent = processedFiles.join('\n\n---\n\n');
|
|
179
|
-
return `${header}\n\n${mergedContent}`;
|
|
180
|
-
}
|
|
181
|
-
extractPatternSpecificRules(instructionFile, pattern) {
|
|
182
|
-
const filename = this.generateMdcFilename(instructionFile.path);
|
|
183
|
-
const content = this.createMdcContent(instructionFile.content, pattern);
|
|
184
|
-
return {
|
|
185
|
-
filename,
|
|
186
|
-
content,
|
|
187
|
-
pattern,
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
validateRulesContent(content) {
|
|
191
|
-
if (content.includes('<!--') && content.includes('-->')) {
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
return content.trim().length > 0;
|
|
195
|
-
}
|
|
196
|
-
createDefaultWorkflowRules() {
|
|
197
|
-
const header = this.createCursorRulesHeader();
|
|
198
|
-
const defaultContent = `# Default Cursor AI Rules
|
|
199
|
-
|
|
200
|
-
No specific instructions found for this project type.
|
|
201
|
-
|
|
202
|
-
Please follow general best practices for code quality, maintainability, and documentation.`;
|
|
203
|
-
return `${header}\n\n${defaultContent}`;
|
|
204
|
-
}
|
|
205
|
-
createCursorRulesHeader() {
|
|
206
|
-
return `<!--
|
|
207
|
-
Generated by metacoding v${this.getMetacodingVersion()}
|
|
208
|
-
Cursor AI rules for enhanced development experience
|
|
209
|
-
Do not edit manually - regenerate using metacoding update
|
|
210
|
-
This content will be wrapped in MDC format when saved to .cursor/rules/
|
|
211
|
-
-->
|
|
212
|
-
|
|
213
|
-
# Cursor AI Development Rules`;
|
|
214
|
-
}
|
|
215
|
-
determineFilePattern(instructionPath, templateType) {
|
|
216
|
-
if (instructionPath.includes('typescript') ||
|
|
217
|
-
instructionPath.includes('ts')) {
|
|
218
|
-
return '**/*.ts';
|
|
219
|
-
}
|
|
220
|
-
if (instructionPath.includes('test')) {
|
|
221
|
-
switch (templateType) {
|
|
222
|
-
case 'typescript':
|
|
223
|
-
case 'node':
|
|
224
|
-
return '**/*.test.ts';
|
|
225
|
-
case 'react':
|
|
226
|
-
return '**/*.test.{tsx,ts}';
|
|
227
|
-
case 'python':
|
|
228
|
-
return '**/*.test.py';
|
|
229
|
-
default:
|
|
230
|
-
return '**/*.test.*';
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
if (instructionPath.includes('react')) {
|
|
234
|
-
return '**/*.{tsx,jsx}';
|
|
235
|
-
}
|
|
236
|
-
if (instructionPath.includes('python')) {
|
|
237
|
-
return '**/*.py';
|
|
238
|
-
}
|
|
239
|
-
switch (templateType) {
|
|
240
|
-
case 'typescript':
|
|
241
|
-
case 'node':
|
|
242
|
-
return '**/*.{ts,js}';
|
|
243
|
-
case 'react':
|
|
244
|
-
return '**/*.{tsx,jsx,ts,js}';
|
|
245
|
-
case 'python':
|
|
246
|
-
return '**/*.py';
|
|
247
|
-
default:
|
|
248
|
-
return '**/*';
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
generateMdcFilename(instructionPath) {
|
|
252
|
-
const basename = path.basename(instructionPath, '.md');
|
|
253
|
-
const cleanName = basename
|
|
254
|
-
.replace('.instructions', '-instructions')
|
|
255
|
-
.replace('.coding', '-coding')
|
|
256
|
-
.replace(/[^a-zA-Z0-9-]/g, '-')
|
|
257
|
-
.replace(/-+/g, '-')
|
|
258
|
-
.replace(/^-+|-+$/g, '')
|
|
259
|
-
.toLowerCase();
|
|
260
|
-
return `${cleanName}.mdc`;
|
|
261
|
-
}
|
|
262
|
-
createMdcContent(instructionContent, pattern) {
|
|
263
|
-
const frontmatter = `---
|
|
264
|
-
description: "${pattern === '**/*' ? 'General workflow and development rules' : `AI rules for ${pattern} files`}"
|
|
265
|
-
patterns: ["${pattern}"]
|
|
266
|
-
alwaysApply: ${pattern === '**/*' ? 'true' : 'false'}
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
`;
|
|
270
|
-
let processedContent;
|
|
271
|
-
if (pattern === '**/*' &&
|
|
272
|
-
instructionContent.includes('# Cursor AI Development Rules')) {
|
|
273
|
-
processedContent = instructionContent;
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
processedContent = this.processInstructionTemplate(instructionContent);
|
|
277
|
-
}
|
|
278
|
-
return frontmatter + processedContent;
|
|
279
|
-
}
|
|
280
|
-
getMetacodingVersion() {
|
|
281
|
-
return '1.1.4';
|
|
282
|
-
}
|
|
283
|
-
applyTemplateSubstitution(content, projectConfig) {
|
|
284
|
-
let substituted = content;
|
|
285
|
-
const replacements = {
|
|
286
|
-
'{{PROJECT_NAME}}': projectConfig?.projectName || 'Project',
|
|
287
|
-
'{{PROJECT_DESCRIPTION}}': projectConfig?.projectDescription ||
|
|
288
|
-
'A guided development project using metacoding workflow',
|
|
289
|
-
'{{TECH_STACK}}': projectConfig?.techStack
|
|
290
|
-
? Array.isArray(projectConfig.techStack)
|
|
291
|
-
? projectConfig.techStack.join(', ')
|
|
292
|
-
: projectConfig.techStack
|
|
293
|
-
: 'TypeScript, Jest',
|
|
294
|
-
'{{PROJECT_DOMAIN}}': projectConfig?.projectDomain || 'software',
|
|
295
|
-
'{{PROJECT_SPECIFIC_GUIDANCE}}': projectConfig?.projectSpecificGuidance ||
|
|
296
|
-
'- **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',
|
|
297
|
-
};
|
|
298
|
-
for (const [placeholder, value] of Object.entries(replacements)) {
|
|
299
|
-
substituted = substituted.replace(new RegExp(placeholder.replace(/[{}]/g, '\\$&'), 'g'), value);
|
|
300
|
-
}
|
|
301
|
-
return substituted;
|
|
302
|
-
}
|
|
303
|
-
processInstructionContentOnly(instructionContent) {
|
|
304
|
-
return instructionContent
|
|
305
|
-
.replace(/# GitHub Copilot/gi, '# Cursor AI')
|
|
306
|
-
.replace(/GitHub Copilot/g, 'Cursor AI')
|
|
307
|
-
.replace(/Copilot/g, 'Cursor AI')
|
|
308
|
-
.replace(/\.vscode/g, '.cursor')
|
|
309
|
-
.replace(/VS Code/g, 'Cursor IDE')
|
|
310
|
-
.replace(/Visual Studio Code/g, 'Cursor IDE');
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
exports.CursorService = CursorService;
|
|
314
|
-
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/services/cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Template, ProjectConfig } from '../types';
|
|
2
|
-
export declare class TemplateManager {
|
|
3
|
-
private readonly templatesDir;
|
|
4
|
-
private readonly instructionsDir;
|
|
5
|
-
constructor();
|
|
6
|
-
getTemplate(templateName: string, projectConfig?: ProjectConfig): Promise<Template>;
|
|
7
|
-
private loadInstructionFiles;
|
|
8
|
-
processTemplate(template: Template, config: ProjectConfig): Promise<Array<{
|
|
9
|
-
path: string;
|
|
10
|
-
content: string;
|
|
11
|
-
}>>;
|
|
12
|
-
getAvailableTemplates(): Promise<string[]>;
|
|
13
|
-
private loadTemplateFiles;
|
|
14
|
-
private processTemplateContent;
|
|
15
|
-
private getProjectDomain;
|
|
16
|
-
private getProjectSpecificGuidance;
|
|
17
|
-
getInstructionFiles(templateType: string): Promise<Array<{
|
|
18
|
-
path: string;
|
|
19
|
-
content: string;
|
|
20
|
-
}>>;
|
|
21
|
-
private getCodingInstructionFiles;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=template-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;IAqI5B,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;CAkClC"}
|