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.
Files changed (95) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +108 -514
  3. package/lib/cli.d.ts.map +1 -1
  4. package/lib/cli.js +18 -19
  5. package/lib/cli.js.map +1 -1
  6. package/lib/commands/init.d.ts +8 -14
  7. package/lib/commands/init.d.ts.map +1 -1
  8. package/lib/commands/init.js +105 -387
  9. package/lib/commands/init.js.map +1 -1
  10. package/lib/commands/update.d.ts +9 -9
  11. package/lib/commands/update.d.ts.map +1 -1
  12. package/lib/commands/update.js +141 -320
  13. package/lib/commands/update.js.map +1 -1
  14. package/lib/services/backup.d.ts +1 -1
  15. package/lib/services/backup.d.ts.map +1 -1
  16. package/lib/services/backup.js +10 -6
  17. package/lib/services/backup.js.map +1 -1
  18. package/lib/services/filesystem.d.ts.map +1 -1
  19. package/lib/services/filesystem.js +11 -5
  20. package/lib/services/filesystem.js.map +1 -1
  21. package/lib/services/gitignore-manager.js +5 -5
  22. package/lib/services/gitignore-manager.js.map +1 -1
  23. package/lib/services/project-detector.d.ts +9 -8
  24. package/lib/services/project-detector.d.ts.map +1 -1
  25. package/lib/services/project-detector.js +79 -197
  26. package/lib/services/project-detector.js.map +1 -1
  27. package/lib/services/skill-manager.d.ts +23 -0
  28. package/lib/services/skill-manager.d.ts.map +1 -0
  29. package/lib/services/skill-manager.js +212 -0
  30. package/lib/services/skill-manager.js.map +1 -0
  31. package/lib/types/index.d.ts +5 -15
  32. package/lib/types/index.d.ts.map +1 -1
  33. package/package.json +9 -17
  34. package/skills/metacoding-workflow/SKILL.md +52 -0
  35. package/skills/metacoding-workflow/agents/openai.yaml +4 -0
  36. package/skills/metacoding-workflow/assets/templates/changelog-entry.md +6 -0
  37. package/skills/metacoding-workflow/assets/templates/project-context.md +18 -0
  38. package/skills/metacoding-workflow/assets/templates/repeated-task-checklist.md +8 -0
  39. package/skills/metacoding-workflow/assets/templates/task-entry.md +9 -0
  40. package/skills/metacoding-workflow/assets/templates/test-plan.md +8 -0
  41. package/skills/metacoding-workflow/references/javascript.md +7 -0
  42. package/skills/metacoding-workflow/references/node.md +7 -0
  43. package/skills/metacoding-workflow/references/platform-adaptation.md +37 -0
  44. package/skills/metacoding-workflow/references/python.md +7 -0
  45. package/skills/metacoding-workflow/references/react.md +7 -0
  46. package/skills/metacoding-workflow/references/repository-organization.md +84 -0
  47. package/skills/metacoding-workflow/references/typescript.md +7 -0
  48. package/skills/metacoding-workflow/references/workflow-rules.md +54 -0
  49. package/skills/vendor-templates/claude-agent.md.template +41 -0
  50. package/lib/services/assistant-adapter.d.ts +0 -18
  51. package/lib/services/assistant-adapter.d.ts.map +0 -1
  52. package/lib/services/assistant-adapter.js +0 -246
  53. package/lib/services/assistant-adapter.js.map +0 -1
  54. package/lib/services/cursor.d.ts +0 -47
  55. package/lib/services/cursor.d.ts.map +0 -1
  56. package/lib/services/cursor.js +0 -314
  57. package/lib/services/cursor.js.map +0 -1
  58. package/lib/services/template-manager.d.ts +0 -23
  59. package/lib/services/template-manager.d.ts.map +0 -1
  60. package/lib/services/template-manager.js +0 -374
  61. package/lib/services/template-manager.js.map +0 -1
  62. package/lib/services/vscode.d.ts +0 -10
  63. package/lib/services/vscode.d.ts.map +0 -1
  64. package/lib/services/vscode.js +0 -108
  65. package/lib/services/vscode.js.map +0 -1
  66. package/templates/assistants/AGENTS.md +0 -203
  67. package/templates/assistants/CLAUDE.md +0 -156
  68. package/templates/assistants/GEMINI.md +0 -193
  69. package/templates/general/code-review.instructions.md +0 -265
  70. package/templates/general/copilot-instructions.md +0 -427
  71. package/templates/general/docs-update.instructions.md +0 -275
  72. package/templates/general/release.instructions.md +0 -242
  73. package/templates/general/template.json +0 -9
  74. package/templates/general/test-runner.instructions.md +0 -188
  75. package/templates/javascript/javascript.coding.instructions.md +0 -500
  76. package/templates/javascript/javascript.docs.instructions.md +0 -563
  77. package/templates/javascript/javascript.testing.instructions.md +0 -686
  78. package/templates/javascript/template.json +0 -36
  79. package/templates/node/nodejs.coding.instructions.md +0 -249
  80. package/templates/node/nodejs.docs.instructions.md +0 -261
  81. package/templates/node/nodejs.testing.instructions.md +0 -373
  82. package/templates/node/template.json +0 -23
  83. package/templates/python/python.coding.instructions.md +0 -338
  84. package/templates/python/python.docs.instructions.md +0 -1178
  85. package/templates/python/python.testing.instructions.md +0 -1073
  86. package/templates/python/template.json +0 -75
  87. package/templates/react/react.coding.instructions.md +0 -694
  88. package/templates/react/react.docs.instructions.md +0 -451
  89. package/templates/react/react.testing.instructions.md +0 -192
  90. package/templates/react/template.json +0 -14
  91. package/templates/react/test-runner.instructions.md +0 -135
  92. package/templates/typescript/template.json +0 -16
  93. package/templates/typescript/typescript.coding.instructions.md +0 -368
  94. package/templates/typescript/typescript.docs.instructions.md +0 -760
  95. 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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"}
@@ -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"}
@@ -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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"}