metacoding 1.5.1 → 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 +45 -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
|
@@ -1,374 +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.TemplateManager = void 0;
|
|
37
|
-
const path = __importStar(require("path"));
|
|
38
|
-
const fs = __importStar(require("fs-extra"));
|
|
39
|
-
class TemplateManager {
|
|
40
|
-
constructor() {
|
|
41
|
-
this.templatesDir = path.join(__dirname, '../../templates');
|
|
42
|
-
this.instructionsDir = this.templatesDir;
|
|
43
|
-
}
|
|
44
|
-
async getTemplate(templateName, projectConfig) {
|
|
45
|
-
const templatePath = path.join(this.templatesDir, templateName);
|
|
46
|
-
if (!(await fs.pathExists(templatePath))) {
|
|
47
|
-
throw new Error(`Template '${templateName}' not found`);
|
|
48
|
-
}
|
|
49
|
-
const configPath = path.join(templatePath, 'template.json');
|
|
50
|
-
if (!(await fs.pathExists(configPath))) {
|
|
51
|
-
throw new Error(`Template configuration not found for '${templateName}'`);
|
|
52
|
-
}
|
|
53
|
-
const config = await fs.readJson(configPath);
|
|
54
|
-
const filesDir = path.join(templatePath, 'files');
|
|
55
|
-
const templateFiles = await this.loadTemplateFiles(filesDir);
|
|
56
|
-
const instructionFiles = await this.loadInstructionFiles(templateName, projectConfig);
|
|
57
|
-
const files = [...templateFiles, ...instructionFiles];
|
|
58
|
-
return {
|
|
59
|
-
name: templateName,
|
|
60
|
-
description: config.description,
|
|
61
|
-
files,
|
|
62
|
-
prompts: config.prompts || [],
|
|
63
|
-
vscodeSettings: config.vscodeSettings || {},
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
async loadInstructionFiles(templateName, projectConfig) {
|
|
67
|
-
const files = [];
|
|
68
|
-
const ideChoice = projectConfig?.ideChoice || 'vscode';
|
|
69
|
-
if (ideChoice === 'cursor') {
|
|
70
|
-
return files;
|
|
71
|
-
}
|
|
72
|
-
const generalPath = path.join(this.templatesDir, 'general');
|
|
73
|
-
const universalFiles = [
|
|
74
|
-
'copilot-instructions.md',
|
|
75
|
-
'docs-update.instructions.md',
|
|
76
|
-
'release.instructions.md',
|
|
77
|
-
'code-review.instructions.md',
|
|
78
|
-
];
|
|
79
|
-
for (const file of universalFiles) {
|
|
80
|
-
const filePath = path.join(generalPath, file);
|
|
81
|
-
if (await fs.pathExists(filePath)) {
|
|
82
|
-
files.push({
|
|
83
|
-
source: `general/${file}`,
|
|
84
|
-
destination: file === 'copilot-instructions.md'
|
|
85
|
-
? '.github/copilot-instructions.md'
|
|
86
|
-
: `.github/instructions/${file}`,
|
|
87
|
-
template: file === 'copilot-instructions.md',
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
const testingFiles = {
|
|
92
|
-
react: 'react.testing.instructions.md',
|
|
93
|
-
node: 'nodejs.testing.instructions.md',
|
|
94
|
-
python: 'python.testing.instructions.md',
|
|
95
|
-
javascript: 'test-runner.instructions.md',
|
|
96
|
-
general: 'test-runner.instructions.md',
|
|
97
|
-
};
|
|
98
|
-
const testingFile = testingFiles[templateName];
|
|
99
|
-
if (testingFile) {
|
|
100
|
-
const templatePath = path.join(this.templatesDir, templateName);
|
|
101
|
-
const testingFilePath = path.join(templatePath, testingFile);
|
|
102
|
-
if (await fs.pathExists(testingFilePath)) {
|
|
103
|
-
files.push({
|
|
104
|
-
source: `${templateName}/${testingFile}`,
|
|
105
|
-
destination: '.github/instructions/test-runner.instructions.md',
|
|
106
|
-
template: false,
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
else if (templateName === 'javascript') {
|
|
110
|
-
const generalTestingPath = path.join(generalPath, 'test-runner.instructions.md');
|
|
111
|
-
if (await fs.pathExists(generalTestingPath)) {
|
|
112
|
-
files.push({
|
|
113
|
-
source: 'general/test-runner.instructions.md',
|
|
114
|
-
destination: '.github/instructions/test-runner.instructions.md',
|
|
115
|
-
template: false,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
const typescriptTemplates = ['node', 'react'];
|
|
121
|
-
const useTypeScript = typescriptTemplates.includes(templateName) ||
|
|
122
|
-
projectConfig?.techStack?.includes('TypeScript');
|
|
123
|
-
if (useTypeScript) {
|
|
124
|
-
const typescriptPath = path.join(this.templatesDir, 'typescript');
|
|
125
|
-
if (await fs.pathExists(typescriptPath)) {
|
|
126
|
-
const typescriptFiles = await fs.readdir(typescriptPath);
|
|
127
|
-
for (const file of typescriptFiles) {
|
|
128
|
-
if (file === 'template.json') {
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
if (file.endsWith('.instructions.md')) {
|
|
132
|
-
files.push({
|
|
133
|
-
source: `typescript/${file}`,
|
|
134
|
-
destination: `.github/instructions/${file}`,
|
|
135
|
-
template: false,
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
if (templateName !== 'general') {
|
|
142
|
-
const templatePath = path.join(this.templatesDir, templateName);
|
|
143
|
-
const templateFiles = await fs.readdir(templatePath);
|
|
144
|
-
for (const file of templateFiles) {
|
|
145
|
-
if (file === 'template.json' || universalFiles.includes(file)) {
|
|
146
|
-
continue;
|
|
147
|
-
}
|
|
148
|
-
if (file.endsWith('.instructions.md')) {
|
|
149
|
-
files.push({
|
|
150
|
-
source: `${templateName}/${file}`,
|
|
151
|
-
destination: `.github/instructions/${file}`,
|
|
152
|
-
template: false,
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return files;
|
|
158
|
-
}
|
|
159
|
-
async processTemplate(template, config) {
|
|
160
|
-
const processedFiles = [];
|
|
161
|
-
for (const file of template.files) {
|
|
162
|
-
let content;
|
|
163
|
-
let filePath;
|
|
164
|
-
if (file.source.includes('/')) {
|
|
165
|
-
filePath = path.join(this.templatesDir, file.source);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
filePath = path.join(this.templatesDir, template.name, file.source);
|
|
169
|
-
}
|
|
170
|
-
if (file.template) {
|
|
171
|
-
const templateContent = await fs.readFile(filePath, 'utf8');
|
|
172
|
-
content = this.processTemplateContent(templateContent, config);
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
content = await fs.readFile(filePath, 'utf8');
|
|
176
|
-
}
|
|
177
|
-
processedFiles.push({
|
|
178
|
-
path: file.destination,
|
|
179
|
-
content,
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
return processedFiles;
|
|
183
|
-
}
|
|
184
|
-
async getAvailableTemplates() {
|
|
185
|
-
if (!(await fs.pathExists(this.templatesDir))) {
|
|
186
|
-
return [];
|
|
187
|
-
}
|
|
188
|
-
const items = await fs.readdir(this.templatesDir);
|
|
189
|
-
const templates = [];
|
|
190
|
-
const excludedTemplates = ['typescript'];
|
|
191
|
-
for (const item of items) {
|
|
192
|
-
const itemPath = path.join(this.templatesDir, item);
|
|
193
|
-
const stat = await fs.stat(itemPath);
|
|
194
|
-
if (stat.isDirectory() && !excludedTemplates.includes(item)) {
|
|
195
|
-
const configPath = path.join(itemPath, 'template.json');
|
|
196
|
-
if (await fs.pathExists(configPath)) {
|
|
197
|
-
templates.push(item);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return templates;
|
|
202
|
-
}
|
|
203
|
-
async loadTemplateFiles(filesDir) {
|
|
204
|
-
const files = [];
|
|
205
|
-
if (!(await fs.pathExists(filesDir))) {
|
|
206
|
-
return files;
|
|
207
|
-
}
|
|
208
|
-
const templateName = path.basename(path.dirname(filesDir));
|
|
209
|
-
const items = await fs.readdir(filesDir, { withFileTypes: true });
|
|
210
|
-
for (const item of items) {
|
|
211
|
-
if (item.isFile()) {
|
|
212
|
-
const isTemplate = item.name.endsWith('.template');
|
|
213
|
-
const source = `${templateName}/files/${item.name}`;
|
|
214
|
-
let destination = item.name;
|
|
215
|
-
if (isTemplate) {
|
|
216
|
-
destination = item.name.replace('.template', '');
|
|
217
|
-
}
|
|
218
|
-
if (destination === 'copilot-instructions.md' ||
|
|
219
|
-
destination.endsWith('.instructions.md')) {
|
|
220
|
-
continue;
|
|
221
|
-
}
|
|
222
|
-
files.push({
|
|
223
|
-
source,
|
|
224
|
-
destination,
|
|
225
|
-
template: isTemplate,
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return files;
|
|
230
|
-
}
|
|
231
|
-
processTemplateContent(content, config) {
|
|
232
|
-
const variables = {
|
|
233
|
-
PROJECT_NAME: config.name,
|
|
234
|
-
PROJECT_DESCRIPTION: config.description,
|
|
235
|
-
TECH_STACK: Array.isArray(config.techStack)
|
|
236
|
-
? config.techStack.join(', ')
|
|
237
|
-
: config.techStack,
|
|
238
|
-
PROJECT_TYPE: config.projectType,
|
|
239
|
-
TEST_FRAMEWORK: config.testFramework || 'Jest',
|
|
240
|
-
BUILD_TOOL: config.buildTool || 'TypeScript Compiler',
|
|
241
|
-
PROJECT_DOMAIN: this.getProjectDomain(config.projectType),
|
|
242
|
-
PROJECT_SPECIFIC_GUIDANCE: this.getProjectSpecificGuidance(config.projectType),
|
|
243
|
-
};
|
|
244
|
-
let processedContent = content;
|
|
245
|
-
for (const [key, value] of Object.entries(variables)) {
|
|
246
|
-
const placeholder = `{{${key}}}`;
|
|
247
|
-
processedContent = processedContent.replace(new RegExp(placeholder, 'g'), value);
|
|
248
|
-
}
|
|
249
|
-
processedContent = processedContent.replace(/\[short project description\]/g, config.description);
|
|
250
|
-
processedContent = processedContent.replace(/\[Main goal 1\]/g, 'Provide guided development workflow');
|
|
251
|
-
processedContent = processedContent.replace(/\[Main goal 2\]/g, 'Ensure code quality and best practices');
|
|
252
|
-
processedContent = processedContent.replace(/\[Main goal 3\]/g, 'Enable efficient team collaboration');
|
|
253
|
-
processedContent = processedContent.replace(/\[List primary technologies\]/g, variables.TECH_STACK);
|
|
254
|
-
processedContent = processedContent.replace(/\[project specific\]/g, variables.PROJECT_DOMAIN);
|
|
255
|
-
return processedContent;
|
|
256
|
-
}
|
|
257
|
-
getProjectDomain(projectType) {
|
|
258
|
-
switch (projectType) {
|
|
259
|
-
case 'react':
|
|
260
|
-
return 'React frontend';
|
|
261
|
-
case 'node':
|
|
262
|
-
return 'Node.js backend';
|
|
263
|
-
case 'python':
|
|
264
|
-
return 'Python';
|
|
265
|
-
default:
|
|
266
|
-
return 'software';
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
getProjectSpecificGuidance(projectType) {
|
|
270
|
-
switch (projectType) {
|
|
271
|
-
case 'react':
|
|
272
|
-
return `
|
|
273
|
-
- **React Components:** Follow modern React patterns with hooks and functional components
|
|
274
|
-
- **JSX Best Practices:** Use semantic HTML elements and proper JSX syntax
|
|
275
|
-
- **State Management:** Implement efficient state management with React hooks
|
|
276
|
-
- **Component Architecture:** Build reusable, testable React components
|
|
277
|
-
- **Frontend Performance:** Optimize rendering and bundle size for better user experience`;
|
|
278
|
-
case 'node':
|
|
279
|
-
return `
|
|
280
|
-
- **Server Architecture:** Design scalable Node.js server applications
|
|
281
|
-
- **API Development:** Build robust REST APIs with proper error handling
|
|
282
|
-
- **Backend Services:** Implement efficient server-side business logic
|
|
283
|
-
- **Database Integration:** Use appropriate data persistence patterns
|
|
284
|
-
- **Performance:** Optimize server response times and resource usage`;
|
|
285
|
-
case 'python':
|
|
286
|
-
return `
|
|
287
|
-
- **Django Development:** Follow Django best practices for web applications
|
|
288
|
-
- **Flask Applications:** Build lightweight Flask applications when appropriate
|
|
289
|
-
- **Python Standards:** Adhere to PEP 8 and Python coding conventions
|
|
290
|
-
- **Backend Development:** Implement scalable Python backend solutions
|
|
291
|
-
- **Framework Integration:** Use appropriate Python frameworks for different use cases`;
|
|
292
|
-
default:
|
|
293
|
-
return `
|
|
294
|
-
- **Best Practices:** Follow language-specific coding standards and conventions
|
|
295
|
-
- **Architecture:** Implement modular and maintainable code structure
|
|
296
|
-
- **Testing:** Write comprehensive tests for all functionality
|
|
297
|
-
- **Documentation:** Maintain clear and up-to-date documentation`;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
async getInstructionFiles(templateType) {
|
|
301
|
-
const instructionFiles = [];
|
|
302
|
-
try {
|
|
303
|
-
const generalPath = path.join(this.templatesDir, 'general');
|
|
304
|
-
const universalFiles = [
|
|
305
|
-
'copilot-instructions.md',
|
|
306
|
-
'docs-update.instructions.md',
|
|
307
|
-
'code-review.instructions.md',
|
|
308
|
-
];
|
|
309
|
-
for (const file of universalFiles) {
|
|
310
|
-
const filePath = path.join(generalPath, file);
|
|
311
|
-
if (await fs.pathExists(filePath)) {
|
|
312
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
313
|
-
instructionFiles.push({
|
|
314
|
-
path: `general/${file}`,
|
|
315
|
-
content,
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
const templatePath = path.join(this.templatesDir, templateType);
|
|
320
|
-
if (await fs.pathExists(templatePath)) {
|
|
321
|
-
const codingFiles = await this.getCodingInstructionFiles(templateType);
|
|
322
|
-
for (const file of codingFiles) {
|
|
323
|
-
const filePath = path.join(templatePath, file);
|
|
324
|
-
if (await fs.pathExists(filePath)) {
|
|
325
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
326
|
-
instructionFiles.push({
|
|
327
|
-
path: `${templateType}/${file}`,
|
|
328
|
-
content,
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
return instructionFiles;
|
|
334
|
-
}
|
|
335
|
-
catch (error) {
|
|
336
|
-
throw new Error(`Failed to load instruction files for ${templateType}: ${error instanceof Error ? error.message : String(error)}`);
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
getCodingInstructionFiles(templateType) {
|
|
340
|
-
const commonFiles = ['test-runner.instructions.md'];
|
|
341
|
-
switch (templateType) {
|
|
342
|
-
case 'typescript':
|
|
343
|
-
case 'node':
|
|
344
|
-
return [
|
|
345
|
-
...commonFiles,
|
|
346
|
-
'typescript.coding.instructions.md',
|
|
347
|
-
'nodejs.testing.instructions.md',
|
|
348
|
-
];
|
|
349
|
-
case 'react':
|
|
350
|
-
return [
|
|
351
|
-
...commonFiles,
|
|
352
|
-
'react.coding.instructions.md',
|
|
353
|
-
'react.testing.instructions.md',
|
|
354
|
-
];
|
|
355
|
-
case 'python':
|
|
356
|
-
return [
|
|
357
|
-
...commonFiles,
|
|
358
|
-
'python.coding.instructions.md',
|
|
359
|
-
'python.testing.instructions.md',
|
|
360
|
-
];
|
|
361
|
-
case 'javascript':
|
|
362
|
-
return [
|
|
363
|
-
...commonFiles,
|
|
364
|
-
'javascript.coding.instructions.md',
|
|
365
|
-
'javascript.testing.instructions.md',
|
|
366
|
-
'javascript.docs.instructions.md',
|
|
367
|
-
];
|
|
368
|
-
default:
|
|
369
|
-
return commonFiles;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
exports.TemplateManager = TemplateManager;
|
|
374
|
-
//# sourceMappingURL=template-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-manager.js","sourceRoot":"","sources":["../../src/services/template-manager.ts"],"names":[],"mappings":"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"}
|
package/lib/services/vscode.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare class VSCodeService {
|
|
2
|
-
private readonly vscodeDir;
|
|
3
|
-
private readonly settingsFile;
|
|
4
|
-
updateSettings(additionalSettings?: Record<string, any>): Promise<void>;
|
|
5
|
-
isConfigured(): Promise<boolean>;
|
|
6
|
-
backupSettings(): Promise<string | null>;
|
|
7
|
-
getSettings(): Promise<Record<string, any>>;
|
|
8
|
-
hasVSCodeConfiguration(): Promise<boolean>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=vscode.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vscode.d.ts","sourceRoot":"","sources":["../../src/services/vscode.ts"],"names":[],"mappings":"AAMA,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;IAKrE,cAAc,CAClB,kBAAkB,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAC3C,OAAO,CAAC,IAAI,CAAC;IAyCV,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAqBhC,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAcxC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAgB3C,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;CAGjD"}
|
package/lib/services/vscode.js
DELETED
|
@@ -1,108 +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.VSCodeService = void 0;
|
|
37
|
-
const fs = __importStar(require("fs-extra"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
class VSCodeService {
|
|
40
|
-
constructor() {
|
|
41
|
-
this.vscodeDir = '.vscode';
|
|
42
|
-
this.settingsFile = path.join(this.vscodeDir, 'settings.json');
|
|
43
|
-
}
|
|
44
|
-
async updateSettings(additionalSettings = {}) {
|
|
45
|
-
const requiredSettings = {
|
|
46
|
-
'github.copilot.chat.codeGeneration.useInstructionFiles': true,
|
|
47
|
-
'chat.promptFiles': true,
|
|
48
|
-
...additionalSettings,
|
|
49
|
-
};
|
|
50
|
-
let existingSettings = {};
|
|
51
|
-
if (await fs.pathExists(this.settingsFile)) {
|
|
52
|
-
try {
|
|
53
|
-
const content = await fs.readFile(this.settingsFile, 'utf8');
|
|
54
|
-
existingSettings = JSON.parse(content);
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
await this.backupSettings();
|
|
58
|
-
existingSettings = {};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
const mergedSettings = {
|
|
62
|
-
...existingSettings,
|
|
63
|
-
...requiredSettings,
|
|
64
|
-
};
|
|
65
|
-
await fs.ensureDir(this.vscodeDir);
|
|
66
|
-
await fs.writeFile(this.settingsFile, JSON.stringify(mergedSettings, null, 2), 'utf8');
|
|
67
|
-
}
|
|
68
|
-
async isConfigured() {
|
|
69
|
-
if (!(await fs.pathExists(this.settingsFile))) {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
try {
|
|
73
|
-
const content = await fs.readFile(this.settingsFile, 'utf8');
|
|
74
|
-
const settings = JSON.parse(content);
|
|
75
|
-
return (settings['github.copilot.chat.codeGeneration.useInstructionFiles'] ===
|
|
76
|
-
true && settings['chat.promptFiles'] === true);
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
async backupSettings() {
|
|
83
|
-
if (!(await fs.pathExists(this.settingsFile))) {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
87
|
-
const backupPath = `${this.settingsFile}.backup-${timestamp}`;
|
|
88
|
-
await fs.copy(this.settingsFile, backupPath);
|
|
89
|
-
return backupPath;
|
|
90
|
-
}
|
|
91
|
-
async getSettings() {
|
|
92
|
-
if (!(await fs.pathExists(this.settingsFile))) {
|
|
93
|
-
return {};
|
|
94
|
-
}
|
|
95
|
-
try {
|
|
96
|
-
const content = await fs.readFile(this.settingsFile, 'utf8');
|
|
97
|
-
return JSON.parse(content);
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
return {};
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
async hasVSCodeConfiguration() {
|
|
104
|
-
return await fs.pathExists(this.vscodeDir);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
exports.VSCodeService = VSCodeService;
|
|
108
|
-
//# sourceMappingURL=vscode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vscode.js","sourceRoot":"","sources":["../../src/services/vscode.ts"],"names":[],"mappings":"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"}
|