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/commands/update.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { UpdateOptions } from '../types';
|
|
2
2
|
export declare class UpdateCommand {
|
|
3
|
-
private
|
|
4
|
-
private backupService;
|
|
5
|
-
private conflictService;
|
|
6
|
-
private
|
|
7
|
-
private projectDetector;
|
|
3
|
+
private readonly skillManager;
|
|
4
|
+
private readonly backupService;
|
|
5
|
+
private readonly conflictService;
|
|
6
|
+
private readonly projectDetector;
|
|
8
7
|
constructor();
|
|
9
8
|
execute(options: UpdateOptions): Promise<void>;
|
|
10
|
-
private detectCurrentTemplate;
|
|
11
|
-
private getProjectConfig;
|
|
12
|
-
private getExistingMetacodingFiles;
|
|
13
9
|
private validateSetup;
|
|
14
|
-
private
|
|
10
|
+
private getDefaultTestFramework;
|
|
11
|
+
private getDefaultBuildTool;
|
|
12
|
+
private getTargetVendors;
|
|
13
|
+
private getRequiredFilesForVendor;
|
|
14
|
+
private normalizeVendor;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAKA,OAAO,EAAkC,aAAa,EAAE,MAAM,UAAU,CAAC;AASzE,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;;IAS5C,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAuGtC,aAAa;IAyD3B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,eAAe;CAcxB"}
|
package/lib/commands/update.js
CHANGED
|
@@ -41,367 +41,188 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
41
41
|
const ora_1 = __importDefault(require("ora"));
|
|
42
42
|
const fs = __importStar(require("fs-extra"));
|
|
43
43
|
const path = __importStar(require("path"));
|
|
44
|
-
const
|
|
44
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
45
45
|
const backup_1 = require("../services/backup");
|
|
46
46
|
const conflict_resolution_1 = require("../services/conflict-resolution");
|
|
47
|
-
const vscode_1 = require("../services/vscode");
|
|
48
47
|
const project_detector_1 = require("../services/project-detector");
|
|
48
|
+
const skill_manager_1 = require("../services/skill-manager");
|
|
49
49
|
class UpdateCommand {
|
|
50
50
|
constructor() {
|
|
51
|
-
this.
|
|
51
|
+
this.skillManager = new skill_manager_1.SkillManager();
|
|
52
52
|
this.backupService = new backup_1.BackupService();
|
|
53
53
|
this.conflictService = new conflict_resolution_1.ConflictResolutionService();
|
|
54
|
-
this.vscodeService = new vscode_1.VSCodeService();
|
|
55
54
|
this.projectDetector = new project_detector_1.ProjectDetector();
|
|
56
55
|
}
|
|
57
56
|
async execute(options) {
|
|
58
57
|
if (options.dryRun) {
|
|
59
|
-
|
|
58
|
+
await this.validateSetup(options);
|
|
59
|
+
return;
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
61
|
+
const installedVendors = await this.skillManager.getInstalledVendors();
|
|
62
|
+
if (installedVendors.length === 0) {
|
|
63
|
+
throw new Error('No metacoding workflow skill installation found. Run "metacoding init" first.');
|
|
64
|
+
}
|
|
65
|
+
const targetVendors = this.getTargetVendors(installedVendors, options.vendor);
|
|
66
|
+
console.log(chalk_1.default.cyan('Syncing metacoding workflow skill...\n'));
|
|
67
|
+
const projectInfo = await this.projectDetector.detectProject();
|
|
68
|
+
const projectType = options.template || projectInfo.type || 'general';
|
|
69
|
+
if (options.backup !== false) {
|
|
70
|
+
const backupSpinner = (0, ora_1.default)('Creating backup...').start();
|
|
71
|
+
const backupTargets = targetVendors.flatMap((vendor) => this.skillManager.getBackupTargets(vendor));
|
|
72
|
+
const backup = await this.backupService.createBackup(backupTargets);
|
|
73
|
+
backupSpinner.succeed(backup.filesBackedUp.length > 0
|
|
74
|
+
? `Backup created at ${backup.backupPath}`
|
|
75
|
+
: 'No existing installation to back up');
|
|
76
|
+
}
|
|
77
|
+
let filesUpdated = 0;
|
|
78
|
+
for (const vendor of targetVendors) {
|
|
79
|
+
const projectConfig = {
|
|
80
|
+
name: projectInfo.name,
|
|
81
|
+
description: 'A project using the metacoding workflow skill',
|
|
82
|
+
techStack: projectInfo.techStack,
|
|
83
|
+
projectType,
|
|
84
|
+
testFramework: this.getDefaultTestFramework(projectType),
|
|
85
|
+
buildTool: this.getDefaultBuildTool(projectType),
|
|
86
|
+
vendor,
|
|
87
|
+
};
|
|
88
|
+
const packagedFiles = await this.skillManager.generateInstallationFiles(projectConfig);
|
|
89
|
+
const existingFiles = await this.skillManager.getInstalledFiles(vendor);
|
|
90
|
+
const conflictSpinner = (0, ora_1.default)(`Checking for local ${vendor} skill edits...`).start();
|
|
91
|
+
const conflicts = await this.conflictService.detectConflicts(packagedFiles, existingFiles);
|
|
92
|
+
if (conflicts.length === 0) {
|
|
93
|
+
conflictSpinner.succeed(`No local ${vendor} skill conflicts detected`);
|
|
70
94
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const existingFiles = await this.getExistingMetacodingFiles();
|
|
77
|
-
const conflictSpinner = (0, ora_1.default)('Checking for conflicts...').start();
|
|
78
|
-
const conflicts = await this.conflictService.detectConflicts(templateFiles.map((f) => ({ path: f.path, content: f.content })), existingFiles);
|
|
79
|
-
if (conflicts.length > 0) {
|
|
80
|
-
conflictSpinner.warn(`Found ${conflicts.length} conflicts`);
|
|
81
|
-
if (!options.force) {
|
|
82
|
-
const resolutions = await this.conflictService.getConflictResolution(conflicts);
|
|
83
|
-
const { preservedFiles } = await this.conflictService.applyResolutions(conflicts, resolutions);
|
|
84
|
-
if (preservedFiles.length > 0) {
|
|
85
|
-
console.log(chalk_1.default.yellow(`💾 Preserved ${preservedFiles.length} user files with user. prefix`));
|
|
95
|
+
else {
|
|
96
|
+
conflictSpinner.warn(`Found ${conflicts.length} locally edited ${vendor} skill files`);
|
|
97
|
+
if (options.force) {
|
|
98
|
+
for (const conflict of conflicts) {
|
|
99
|
+
await fs.writeFile(conflict.filePath, conflict.templateContent, 'utf8');
|
|
86
100
|
}
|
|
87
101
|
}
|
|
88
102
|
else {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
console.log(chalk_1.default.yellow(`⚠️ Force mode: Replaced ${conflicts.length} conflicted files`));
|
|
103
|
+
const resolutions = await this.conflictService.getConflictResolution(conflicts);
|
|
104
|
+
await this.conflictService.applyResolutions(conflicts, resolutions);
|
|
93
105
|
}
|
|
94
106
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
for (const file of templateFiles) {
|
|
101
|
-
const isConflicted = conflicts.some((c) => c.filePath === file.path);
|
|
102
|
-
if (!isConflicted) {
|
|
107
|
+
const writeSpinner = (0, ora_1.default)(`Syncing packaged ${vendor} skill files...`).start();
|
|
108
|
+
let vendorFilesUpdated = 0;
|
|
109
|
+
for (const file of packagedFiles) {
|
|
110
|
+
const conflicted = conflicts.some((conflict) => conflict.filePath === file.path);
|
|
111
|
+
if (!conflicted || options.force) {
|
|
103
112
|
await fs.ensureDir(path.dirname(file.path));
|
|
104
|
-
await fs.writeFile(file.path, file.content);
|
|
113
|
+
await fs.writeFile(file.path, file.content, 'utf8');
|
|
105
114
|
filesUpdated++;
|
|
115
|
+
vendorFilesUpdated++;
|
|
106
116
|
}
|
|
107
117
|
}
|
|
108
|
-
|
|
109
|
-
const vscodeSpinner = (0, ora_1.default)('Updating VS Code settings...').start();
|
|
110
|
-
await this.vscodeService.updateSettings(template.vscodeSettings || {});
|
|
111
|
-
vscodeSpinner.succeed('VS Code settings updated');
|
|
112
|
-
await this.backupService.cleanupOldBackups();
|
|
113
|
-
console.log(chalk_1.default.green.bold('\n✅ metacoding update complete!\n'));
|
|
114
|
-
this.displayUpdateSummary({
|
|
115
|
-
template: currentTemplate,
|
|
116
|
-
filesUpdated,
|
|
117
|
-
conflictsResolved: conflicts.length,
|
|
118
|
-
backupCreated: options.backup !== false,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
123
|
-
console.error(chalk_1.default.red('\n❌ Update failed:'), errorMessage);
|
|
124
|
-
if (process.env.NODE_ENV !== 'test') {
|
|
125
|
-
process.exit(1);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
throw error;
|
|
129
|
-
}
|
|
118
|
+
writeSpinner.succeed(`Updated ${vendor} skill files (${vendorFilesUpdated} files)`);
|
|
130
119
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (specifiedTemplate) {
|
|
134
|
-
return specifiedTemplate;
|
|
135
|
-
}
|
|
136
|
-
if (!(await fs.pathExists('.github'))) {
|
|
137
|
-
throw new Error('No metacoding setup found. Run "metacoding init" first.');
|
|
138
|
-
}
|
|
139
|
-
const projectInfo = await this.projectDetector.detectProject();
|
|
140
|
-
return projectInfo.projectType || 'general';
|
|
141
|
-
}
|
|
142
|
-
async getProjectConfig(templateType) {
|
|
143
|
-
const projectInfo = await this.projectDetector.detectProject();
|
|
144
|
-
return {
|
|
145
|
-
name: projectInfo.name || path.basename(process.cwd()),
|
|
146
|
-
description: projectInfo.description || 'A guided development project',
|
|
147
|
-
techStack: projectInfo.techStack || [],
|
|
148
|
-
projectType: templateType,
|
|
149
|
-
testFramework: projectInfo.testFramework,
|
|
150
|
-
buildTool: projectInfo.buildTool,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
async getExistingMetacodingFiles() {
|
|
154
|
-
const files = [];
|
|
155
|
-
const githubDir = '.github';
|
|
156
|
-
if (!(await fs.pathExists(githubDir))) {
|
|
157
|
-
return files;
|
|
158
|
-
}
|
|
159
|
-
const mainFile = path.join(githubDir, 'copilot-instructions.md');
|
|
160
|
-
if (await fs.pathExists(mainFile)) {
|
|
161
|
-
files.push(mainFile);
|
|
162
|
-
}
|
|
163
|
-
const instructionsDir = path.join(githubDir, 'instructions');
|
|
164
|
-
if (await fs.pathExists(instructionsDir)) {
|
|
165
|
-
const instructionFiles = await fs.readdir(instructionsDir);
|
|
166
|
-
for (const file of instructionFiles) {
|
|
167
|
-
files.push(path.join(instructionsDir, file));
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return files;
|
|
120
|
+
await this.backupService.cleanupOldBackups();
|
|
121
|
+
console.log(chalk_1.default.green.bold(`\nmetacoding workflow skill is up to date (${filesUpdated} files synced).\n`));
|
|
171
122
|
}
|
|
172
123
|
async validateSetup(options) {
|
|
173
|
-
console.log(chalk_1.default.cyan('
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
'.github/instructions/code-review.instructions.md',
|
|
182
|
-
'.github/instructions/docs-update.instructions.md',
|
|
183
|
-
'.github/instructions/release.instructions.md',
|
|
184
|
-
'.github/instructions/test-runner.instructions.md',
|
|
185
|
-
];
|
|
124
|
+
console.log(chalk_1.default.cyan('Validating metacoding workflow skill...\n'));
|
|
125
|
+
const installedVendors = await this.skillManager.getInstalledVendors();
|
|
126
|
+
if (installedVendors.length === 0) {
|
|
127
|
+
throw new Error('Validation failed: no vendor-specific metacoding installation was found.');
|
|
128
|
+
}
|
|
129
|
+
const targetVendors = this.getTargetVendors(installedVendors, options.vendor);
|
|
130
|
+
for (const vendor of targetVendors) {
|
|
131
|
+
const requiredFiles = this.getRequiredFilesForVendor(vendor);
|
|
186
132
|
let missingFiles = 0;
|
|
187
133
|
for (const file of requiredFiles) {
|
|
188
134
|
if (!(await fs.pathExists(file))) {
|
|
189
|
-
validationResults.push({
|
|
190
|
-
check: `File ${file}`,
|
|
191
|
-
status: 'fail',
|
|
192
|
-
message: 'Missing required file',
|
|
193
|
-
});
|
|
194
135
|
missingFiles++;
|
|
195
|
-
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
if (missingFiles === 0) {
|
|
199
|
-
fileSpinner.succeed('File structure complete');
|
|
200
|
-
validationResults.push({
|
|
201
|
-
check: 'File structure',
|
|
202
|
-
status: 'pass',
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
fileSpinner.fail(`Missing ${missingFiles} required files`);
|
|
207
|
-
}
|
|
208
|
-
const vscodeSpinner = (0, ora_1.default)('Checking VS Code configuration...').start();
|
|
209
|
-
try {
|
|
210
|
-
const vscodeSettingsPath = '.vscode/settings.json';
|
|
211
|
-
if (await fs.pathExists(vscodeSettingsPath)) {
|
|
212
|
-
const settings = await fs.readJson(vscodeSettingsPath);
|
|
213
|
-
const requiredSettings = ['github.copilot.chat.promptFiles'];
|
|
214
|
-
let missingSettings = 0;
|
|
215
|
-
for (const setting of requiredSettings) {
|
|
216
|
-
if (!settings[setting]) {
|
|
217
|
-
validationResults.push({
|
|
218
|
-
check: `VS Code setting '${setting}'`,
|
|
219
|
-
status: options.strict ? 'fail' : 'warn',
|
|
220
|
-
message: 'Not configured',
|
|
221
|
-
});
|
|
222
|
-
missingSettings++;
|
|
223
|
-
if (options.strict) {
|
|
224
|
-
hasErrors = true;
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
hasWarnings = true;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
if (missingSettings === 0) {
|
|
232
|
-
vscodeSpinner.succeed('VS Code configuration valid');
|
|
233
|
-
validationResults.push({
|
|
234
|
-
check: 'VS Code configuration',
|
|
235
|
-
status: 'pass',
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
else if (options.strict) {
|
|
239
|
-
vscodeSpinner.fail(`Missing ${missingSettings} required settings`);
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
vscodeSpinner.warn(`Missing ${missingSettings} recommended settings`);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
vscodeSpinner.warn('VS Code settings file not found');
|
|
247
|
-
validationResults.push({
|
|
248
|
-
check: 'VS Code settings file',
|
|
249
|
-
status: 'warn',
|
|
250
|
-
message: 'File not found',
|
|
251
|
-
});
|
|
252
|
-
hasWarnings = true;
|
|
136
|
+
console.log(chalk_1.default.red(`Missing: ${file}`));
|
|
253
137
|
}
|
|
254
138
|
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
validationResults.push({
|
|
258
|
-
check: 'VS Code configuration',
|
|
259
|
-
status: 'fail',
|
|
260
|
-
message: 'Error reading settings file',
|
|
261
|
-
});
|
|
262
|
-
hasErrors = true;
|
|
263
|
-
}
|
|
264
|
-
const gitSpinner = (0, ora_1.default)('Checking Git repository...').start();
|
|
265
|
-
if (await fs.pathExists('.git')) {
|
|
266
|
-
gitSpinner.succeed('Git repository configured');
|
|
267
|
-
validationResults.push({
|
|
268
|
-
check: 'Git repository',
|
|
269
|
-
status: 'pass',
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
const message = 'No Git repository found';
|
|
274
|
-
if (options.strict) {
|
|
275
|
-
gitSpinner.fail(message);
|
|
276
|
-
validationResults.push({
|
|
277
|
-
check: 'Git repository',
|
|
278
|
-
status: 'fail',
|
|
279
|
-
message,
|
|
280
|
-
});
|
|
281
|
-
hasErrors = true;
|
|
282
|
-
}
|
|
283
|
-
else {
|
|
284
|
-
gitSpinner.warn(message);
|
|
285
|
-
validationResults.push({
|
|
286
|
-
check: 'Git repository',
|
|
287
|
-
status: 'warn',
|
|
288
|
-
message,
|
|
289
|
-
});
|
|
290
|
-
hasWarnings = true;
|
|
291
|
-
}
|
|
139
|
+
if (missingFiles > 0) {
|
|
140
|
+
throw new Error(`Validation failed: ${missingFiles} required ${vendor} skill files are missing.`);
|
|
292
141
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
await
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
if (hasPlaceholders) {
|
|
300
|
-
templateSpinner.fail('Template variables not substituted');
|
|
301
|
-
validationResults.push({
|
|
302
|
-
check: 'Template integrity',
|
|
303
|
-
status: 'fail',
|
|
304
|
-
message: 'Unprocessed template variables found',
|
|
305
|
-
});
|
|
306
|
-
hasErrors = true;
|
|
307
|
-
}
|
|
308
|
-
else {
|
|
309
|
-
templateSpinner.succeed('Template integrity verified');
|
|
310
|
-
validationResults.push({
|
|
311
|
-
check: 'Template integrity',
|
|
312
|
-
status: 'pass',
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
else {
|
|
317
|
-
templateSpinner.warn('Cannot verify template integrity - main file missing');
|
|
318
|
-
validationResults.push({
|
|
319
|
-
check: 'Template integrity',
|
|
320
|
-
status: 'warn',
|
|
321
|
-
message: 'Main instruction file missing',
|
|
322
|
-
});
|
|
323
|
-
hasWarnings = true;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
catch {
|
|
327
|
-
templateSpinner.fail('Error checking template integrity');
|
|
328
|
-
validationResults.push({
|
|
329
|
-
check: 'Template integrity',
|
|
330
|
-
status: 'fail',
|
|
331
|
-
message: 'Error during template validation',
|
|
332
|
-
});
|
|
333
|
-
hasErrors = true;
|
|
334
|
-
}
|
|
335
|
-
console.log('');
|
|
336
|
-
for (const result of validationResults) {
|
|
337
|
-
const icon = result.status === 'pass'
|
|
338
|
-
? '✅'
|
|
339
|
-
: result.status === 'warn'
|
|
340
|
-
? '⚠️'
|
|
341
|
-
: '❌';
|
|
342
|
-
const message = result.message ? ` - ${result.message}` : '';
|
|
343
|
-
console.log(`${icon} ${result.check}${message}`);
|
|
344
|
-
}
|
|
345
|
-
console.log('');
|
|
346
|
-
const totalChecks = validationResults.length;
|
|
347
|
-
const passedChecks = validationResults.filter((r) => r.status === 'pass').length;
|
|
348
|
-
if (hasErrors) {
|
|
349
|
-
console.log(chalk_1.default.red.bold('❌ Validation failed with errors\n'));
|
|
350
|
-
console.log(chalk_1.default.cyan('Suggestions:'));
|
|
351
|
-
console.log("- Run 'metacoding update' to restore missing files");
|
|
352
|
-
console.log('- Check VS Code settings configuration');
|
|
353
|
-
console.log("- Ensure you're in a Git repository");
|
|
354
|
-
console.log(chalk_1.default.dim(`\nSummary: ${passedChecks}/${totalChecks} checks passed`));
|
|
355
|
-
if (process.env.NODE_ENV !== 'test') {
|
|
356
|
-
process.exit(1);
|
|
357
|
-
}
|
|
358
|
-
else {
|
|
359
|
-
throw new Error('Validation failed');
|
|
142
|
+
if (vendor === 'codex') {
|
|
143
|
+
const yamlPath = '.codex/skills/metacoding-workflow/agents/openai.yaml';
|
|
144
|
+
const yamlContent = await fs.readFile(yamlPath, 'utf8');
|
|
145
|
+
const parsed = yaml_1.default.parse(yamlContent);
|
|
146
|
+
if (!parsed?.interface?.display_name || !parsed?.interface?.default_prompt) {
|
|
147
|
+
throw new Error('Validation failed: agents/openai.yaml is missing required interface fields.');
|
|
360
148
|
}
|
|
361
149
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
process.exit(2);
|
|
370
|
-
}
|
|
371
|
-
else {
|
|
372
|
-
throw new Error('Validation completed with warnings');
|
|
150
|
+
}
|
|
151
|
+
if (options.strict) {
|
|
152
|
+
const gitignorePath = '.gitignore';
|
|
153
|
+
if (await fs.pathExists(gitignorePath)) {
|
|
154
|
+
const content = await fs.readFile(gitignorePath, 'utf8');
|
|
155
|
+
if (!content.includes('# metacoding: AI coding assistant exclusions')) {
|
|
156
|
+
throw new Error('Validation failed: .gitignore is missing the metacoding skill exclusion.');
|
|
373
157
|
}
|
|
374
158
|
}
|
|
375
|
-
else {
|
|
376
|
-
console.log(chalk_1.default.green.bold('🎉 metacoding setup is valid and ready to use!\n'));
|
|
377
|
-
console.log(chalk_1.default.dim(`Summary: ${passedChecks}/${totalChecks} checks passed`));
|
|
378
|
-
}
|
|
379
159
|
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
160
|
+
console.log(chalk_1.default.green('Validation passed.'));
|
|
161
|
+
}
|
|
162
|
+
getDefaultTestFramework(projectType) {
|
|
163
|
+
return projectType === 'python'
|
|
164
|
+
? 'Pytest'
|
|
165
|
+
: projectType === 'react'
|
|
166
|
+
? 'Jest + React Testing Library'
|
|
167
|
+
: 'Use the repository default';
|
|
168
|
+
}
|
|
169
|
+
getDefaultBuildTool(projectType) {
|
|
170
|
+
return projectType === 'react'
|
|
171
|
+
? 'Vite'
|
|
172
|
+
: projectType === 'python'
|
|
173
|
+
? 'Poetry or the repository default'
|
|
174
|
+
: 'Use the repository default';
|
|
175
|
+
}
|
|
176
|
+
getTargetVendors(installedVendors, selectedVendor) {
|
|
177
|
+
if (!selectedVendor) {
|
|
178
|
+
return installedVendors;
|
|
179
|
+
}
|
|
180
|
+
const normalizedVendor = this.normalizeVendor(selectedVendor);
|
|
181
|
+
if (normalizedVendor === 'all') {
|
|
182
|
+
return installedVendors;
|
|
183
|
+
}
|
|
184
|
+
if (!installedVendors.includes(normalizedVendor)) {
|
|
185
|
+
throw new Error(`No installed metacoding skill was found for vendor "${normalizedVendor}".`);
|
|
392
186
|
}
|
|
187
|
+
return [normalizedVendor];
|
|
393
188
|
}
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
189
|
+
getRequiredFilesForVendor(vendor) {
|
|
190
|
+
if (vendor === 'codex') {
|
|
191
|
+
return [
|
|
192
|
+
'.codex/skills/metacoding-workflow/SKILL.md',
|
|
193
|
+
'.codex/skills/metacoding-workflow/agents/openai.yaml',
|
|
194
|
+
'.codex/skills/metacoding-workflow/references/workflow-rules.md',
|
|
195
|
+
'.codex/skills/metacoding-workflow/references/platform-adaptation.md',
|
|
196
|
+
'.codex/skills/metacoding-workflow/references/project-context.md',
|
|
197
|
+
'.codex/skills/metacoding-workflow/assets/templates/task-entry.md',
|
|
198
|
+
];
|
|
199
|
+
}
|
|
200
|
+
if (vendor === 'claude-code') {
|
|
201
|
+
return [
|
|
202
|
+
'.claude/agents/metacoding-workflow.md',
|
|
203
|
+
'.claude/metacoding-workflow/SKILL.md',
|
|
204
|
+
'.claude/metacoding-workflow/references/workflow-rules.md',
|
|
205
|
+
'.claude/metacoding-workflow/references/platform-adaptation.md',
|
|
206
|
+
'.claude/metacoding-workflow/references/project-context.md',
|
|
207
|
+
'.claude/metacoding-workflow/assets/templates/task-entry.md',
|
|
208
|
+
];
|
|
400
209
|
}
|
|
401
|
-
|
|
402
|
-
|
|
210
|
+
return [
|
|
211
|
+
'.agents/skills/metacoding-workflow/SKILL.md',
|
|
212
|
+
'.agents/skills/metacoding-workflow/references/workflow-rules.md',
|
|
213
|
+
'.agents/skills/metacoding-workflow/references/platform-adaptation.md',
|
|
214
|
+
'.agents/skills/metacoding-workflow/references/project-context.md',
|
|
215
|
+
'.agents/skills/metacoding-workflow/assets/templates/task-entry.md',
|
|
216
|
+
];
|
|
217
|
+
}
|
|
218
|
+
normalizeVendor(vendor) {
|
|
219
|
+
if (vendor === 'codex' ||
|
|
220
|
+
vendor === 'claude-code' ||
|
|
221
|
+
vendor === 'antigravity' ||
|
|
222
|
+
vendor === 'all') {
|
|
223
|
+
return vendor;
|
|
403
224
|
}
|
|
404
|
-
|
|
225
|
+
throw new Error(`Unsupported vendor "${vendor}". Use codex, claude-code, antigravity, or all.`);
|
|
405
226
|
}
|
|
406
227
|
}
|
|
407
228
|
exports.UpdateCommand = UpdateCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,8CAAsB;AACtB,6CAA+B;AAC/B,2CAA6B;AAE7B,mEAA+D;AAC/D,+CAAmD;AACnD,yEAA4E;AAC5E,+CAAmD;AACnD,mEAA+D;AAK/D,MAAa,aAAa;IAOxB;QACE,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAa,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,+CAAyB,EAAE,CAAC;QACvD,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAa,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB;QAElC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAE7D,IAAI,CAAC;YAEH,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACtD,OAAO,CAAC,QAAQ,CACjB,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,qBAAqB,eAAe,EAAE,CAAC,CAAC;YAGxD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC7D,aAAa,CAAC,OAAO,CAAC,sBAAsB,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YACzE,CAAC;YAGD,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;YACjE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CACrD,eAAe,EACf,aAAa,CACd,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAC9D,QAAQ,EACR,aAAa,CACd,CAAC;YACF,eAAe,CAAC,OAAO,CAAC,UAAU,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC;YAGzE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAG9D,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;YACjE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAC1D,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAChE,aAAa,CACd,CAAC;YAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,eAAe,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,YAAY,CAAC,CAAC;gBAG5D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnB,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;oBAC9D,MAAM,EAAE,cAAc,EAAE,GACtB,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBAEtE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,gBAAgB,cAAc,CAAC,MAAM,+BAA+B,CACrE,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBAEN,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;wBACjC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;oBAClE,CAAC;oBACD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,4BAA4B,SAAS,CAAC,MAAM,mBAAmB,CAChE,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACnD,CAAC;YAGD,MAAM,aAAa,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;YAChE,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBAErE,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5C,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,aAAa,CAAC,OAAO,CAAC,WAAW,YAAY,QAAQ,CAAC,CAAC;YAGvD,MAAM,aAAa,GAAG,IAAA,aAAG,EAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YACvE,aAAa,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YAGlD,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YAG7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAEnE,IAAI,CAAC,oBAAoB,CAAC;gBACxB,QAAQ,EAAE,eAAe;gBACzB,YAAY;gBACZ,iBAAiB,EAAE,SAAS,CAAC,MAAM;gBACnC,aAAa,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;aACxC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,YAAY,CAAC,CAAC;YAG7D,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,qBAAqB,CACjC,iBAA0B;QAE1B,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAGD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAGD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QAC/D,OAAO,WAAW,CAAC,WAAW,IAAI,SAAS,CAAC;IAC9C,CAAC;IAKO,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACjD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QAE/D,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACtD,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,8BAA8B;YACtE,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;YACtC,WAAW,EAAE,YAAY;YACzB,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC;IACJ,CAAC;IAKO,KAAK,CAAC,0BAA0B;QACtC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QACjE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAGD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3D,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,KAAK,CAAC,aAAa,CAAC,OAAsB;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAE/D,MAAM,iBAAiB,GAIjB,EAAE,CAAC;QACT,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC;YAEH,MAAM,WAAW,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,MAAM,aAAa,GAAG;gBACpB,iCAAiC;gBACjC,kDAAkD;gBAClD,kDAAkD;gBAClD,8CAA8C;gBAC9C,kDAAkD;aACnD,CAAC;YAEF,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACjC,iBAAiB,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,QAAQ,IAAI,EAAE;wBACrB,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,uBAAuB;qBACjC,CAAC,CAAC;oBACH,YAAY,EAAE,CAAC;oBACf,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACvB,WAAW,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBAC/C,iBAAiB,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,gBAAgB;oBACvB,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,WAAW,YAAY,iBAAiB,CAAC,CAAC;YAC7D,CAAC;YAGD,MAAM,aAAa,GAAG,IAAA,aAAG,EAAC,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAC;YAEvE,IAAI,CAAC;gBACH,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;gBACnD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC5C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;oBACvD,MAAM,gBAAgB,GAAG,CAAC,iCAAiC,CAAC,CAAC;oBAE7D,IAAI,eAAe,GAAG,CAAC,CAAC;oBACxB,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;wBACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;4BACvB,iBAAiB,CAAC,IAAI,CAAC;gCACrB,KAAK,EAAE,oBAAoB,OAAO,GAAG;gCACrC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gCACxC,OAAO,EAAE,gBAAgB;6BAC1B,CAAC,CAAC;4BACH,eAAe,EAAE,CAAC;4BAClB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gCACnB,SAAS,GAAG,IAAI,CAAC;4BACnB,CAAC;iCAAM,CAAC;gCACN,WAAW,GAAG,IAAI,CAAC;4BACrB,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;wBAC1B,aAAa,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;wBACrD,iBAAiB,CAAC,IAAI,CAAC;4BACrB,KAAK,EAAE,uBAAuB;4BAC9B,MAAM,EAAE,MAAM;yBACf,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBAC1B,aAAa,CAAC,IAAI,CAAC,WAAW,eAAe,oBAAoB,CAAC,CAAC;oBACrE,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,IAAI,CAChB,WAAW,eAAe,uBAAuB,CAClD,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;oBACtD,iBAAiB,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,uBAAuB;wBAC9B,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,gBAAgB;qBAC1B,CAAC,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBACrD,iBAAiB,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,uBAAuB;oBAC9B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,6BAA6B;iBACvC,CAAC,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YAGD,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;YAE7D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBAChD,iBAAiB,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,gBAAgB;oBACvB,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,yBAAyB,CAAC;gBAC1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBACnB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzB,iBAAiB,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,gBAAgB;wBACvB,MAAM,EAAE,MAAM;wBACd,OAAO;qBACR,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzB,iBAAiB,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,gBAAgB;wBACvB,MAAM,EAAE,MAAM;wBACd,OAAO;qBACR,CAAC,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;YAGD,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;YAEtE,IAAI,CAAC;gBAEH,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAGnD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,iCAAiC,CAAC,EAAE,CAAC;oBAC3D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC/B,iCAAiC,EACjC,OAAO,CACR,CAAC;oBACF,MAAM,eAAe,GACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAEnD,IAAI,eAAe,EAAE,CAAC;wBACpB,eAAe,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;wBAC3D,iBAAiB,CAAC,IAAI,CAAC;4BACrB,KAAK,EAAE,oBAAoB;4BAC3B,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,sCAAsC;yBAChD,CAAC,CAAC;wBACH,SAAS,GAAG,IAAI,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;wBACvD,iBAAiB,CAAC,IAAI,CAAC;4BACrB,KAAK,EAAE,oBAAoB;4BAC3B,MAAM,EAAE,MAAM;yBACf,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,IAAI,CAClB,sDAAsD,CACvD,CAAC;oBACF,iBAAiB,CAAC,IAAI,CAAC;wBACrB,KAAK,EAAE,oBAAoB;wBAC3B,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,+BAA+B;qBACzC,CAAC,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,IAAI,CAAC;oBACrB,KAAK,EAAE,oBAAoB;oBAC3B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,kCAAkC;iBAC5C,CAAC,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YAGD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;gBACvC,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,MAAM;oBACtB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM;wBACxB,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,GAAG,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC;YACnD,CAAC;YAGD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC;YAC7C,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAC3B,CAAC,MAAM,CAAC;YAET,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBAEjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBAEnD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,cAAc,YAAY,IAAI,WAAW,gBAAgB,CAAC,CACrE,CAAC;gBAGF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;iBAAM,IAAI,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAC7D,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;gBAExD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,cAAc,YAAY,IAAI,WAAW,gBAAgB,CAAC,CACrE,CAAC;gBAGF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CACrE,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,YAAY,YAAY,IAAI,WAAW,gBAAgB,CAAC,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnE,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,YAAY,CAAC,CAAC;YAGjE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAKO,oBAAoB,CAAC,OAK5B;QACC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAExD,IAAI,OAAO,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF;AAtfD,sCAsfC"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,8CAAsB;AACtB,6CAA+B;AAC/B,2CAA6B;AAC7B,gDAAwB;AAExB,+CAAmD;AACnD,yEAA4E;AAC5E,mEAA+D;AAC/D,6DAAyD;AAKzD,MAAa,aAAa;IAMxB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAa,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,+CAAyB,EAAE,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAEvE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAElE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC;QAEtE,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,IAAA,aAAG,EAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;YACxD,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACrD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAC3C,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACpE,aAAa,CAAC,OAAO,CACnB,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,CAAC,qBAAqB,MAAM,CAAC,UAAU,EAAE;gBAC1C,CAAC,CAAC,qCAAqC,CAC1C,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG;gBACpB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,WAAW,EAAE,+CAA+C;gBAC5D,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,WAAW;gBACX,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC;gBACxD,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;gBAChD,MAAM;aACP,CAAC;YAEF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,CACrE,aAAa,CACd,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAExE,MAAM,eAAe,GAAG,IAAA,aAAG,EACzB,sBAAsB,MAAM,iBAAiB,CAC9C,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAC1D,aAAa,EACb,aAAa,CACd,CAAC;YAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,eAAe,CAAC,OAAO,CAAC,YAAY,MAAM,2BAA2B,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,IAAI,CAClB,SAAS,SAAS,CAAC,MAAM,mBAAmB,MAAM,cAAc,CACjE,CAAC;gBAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;wBACjC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;oBAC9D,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,IAAA,aAAG,EAAC,oBAAoB,MAAM,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9E,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAE3B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjF,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACpD,YAAY,EAAE,CAAC;oBACf,kBAAkB,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,YAAY,CAAC,OAAO,CAAC,WAAW,MAAM,iBAAiB,kBAAkB,SAAS,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAE7C,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,IAAI,CACd,8CAA8C,YAAY,mBAAmB,CAC9E,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAAsB;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QAErE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACvE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE9E,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACjC,YAAY,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,sBAAsB,YAAY,aAAa,MAAM,2BAA2B,CACjF,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,sDAAsD,CAAC;gBACxE,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,cAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAEvC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;oBAC3E,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,aAAa,GAAG,YAAY,CAAC;YACnC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,8CAA8C,CAAC,EAAE,CAAC;oBACtE,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACjD,CAAC;IAEO,uBAAuB,CAAC,WAAmB;QACjD,OAAO,WAAW,KAAK,QAAQ;YAC7B,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,WAAW,KAAK,OAAO;gBACvB,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,4BAA4B,CAAC;IACrC,CAAC;IAEO,mBAAmB,CAAC,WAAmB;QAC7C,OAAO,WAAW,KAAK,OAAO;YAC5B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,WAAW,KAAK,QAAQ;gBACxB,CAAC,CAAC,kCAAkC;gBACpC,CAAC,CAAC,4BAA4B,CAAC;IACrC,CAAC;IAEO,gBAAgB,CACtB,gBAA+B,EAC/B,cAAkC;QAElC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAE9D,IAAI,gBAAgB,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,uDAAuD,gBAAgB,IAAI,CAC5E,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAEO,yBAAyB,CAAC,MAAmB;QACnD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO;gBACL,4CAA4C;gBAC5C,sDAAsD;gBACtD,gEAAgE;gBAChE,qEAAqE;gBACrE,iEAAiE;gBACjE,kEAAkE;aACnE,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7B,OAAO;gBACL,uCAAuC;gBACvC,sCAAsC;gBACtC,0DAA0D;gBAC1D,+DAA+D;gBAC/D,2DAA2D;gBAC3D,4DAA4D;aAC7D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,6CAA6C;YAC7C,iEAAiE;YACjE,sEAAsE;YACtE,kEAAkE;YAClE,mEAAmE;SACpE,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,IACE,MAAM,KAAK,OAAO;YAClB,MAAM,KAAK,aAAa;YACxB,MAAM,KAAK,aAAa;YACxB,MAAM,KAAK,KAAK,EAChB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,KAAK,CACb,uBAAuB,MAAM,iDAAiD,CAC/E,CAAC;IACJ,CAAC;CACF;AAlQD,sCAkQC"}
|
package/lib/services/backup.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BackupResult } from '../types';
|
|
2
2
|
export declare class BackupService {
|
|
3
3
|
private readonly backupBaseDir;
|
|
4
|
-
createBackup(): Promise<BackupResult>;
|
|
4
|
+
createBackup(targets?: string[]): Promise<BackupResult>;
|
|
5
5
|
private generateTimestamp;
|
|
6
6
|
private listAllFiles;
|
|
7
7
|
getFileHash(filePath: string): Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/services/backup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAa;IAKrC,YAAY,
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/services/backup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAa;IAKrC,YAAY,CAAC,OAAO,GAAE,MAAM,EAA0C,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BpG,OAAO,CAAC,iBAAiB;YAYX,YAAY;IAgCpB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYrD,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC;IAqBb,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBzC"}
|
package/lib/services/backup.js
CHANGED
|
@@ -41,16 +41,16 @@ class BackupService {
|
|
|
41
41
|
constructor() {
|
|
42
42
|
this.backupBaseDir = '.backup';
|
|
43
43
|
}
|
|
44
|
-
async createBackup() {
|
|
44
|
+
async createBackup(targets = ['.codex/skills/metacoding-workflow']) {
|
|
45
45
|
const timestamp = this.generateTimestamp();
|
|
46
46
|
const backupPath = path.join(this.backupBaseDir, timestamp);
|
|
47
|
-
const githubDir = '.github';
|
|
48
47
|
await fs.ensureDir(backupPath);
|
|
49
48
|
const filesBackedUp = [];
|
|
50
|
-
|
|
51
|
-
await fs.
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
for (const target of targets) {
|
|
50
|
+
if (await fs.pathExists(target)) {
|
|
51
|
+
await fs.copy(target, path.join(backupPath, target));
|
|
52
|
+
filesBackedUp.push(...(await this.listAllFiles(target)));
|
|
53
|
+
}
|
|
54
54
|
}
|
|
55
55
|
return {
|
|
56
56
|
backupPath,
|
|
@@ -71,6 +71,10 @@ class BackupService {
|
|
|
71
71
|
if (!(await fs.pathExists(dirPath))) {
|
|
72
72
|
return files;
|
|
73
73
|
}
|
|
74
|
+
const stat = await fs.stat(dirPath);
|
|
75
|
+
if (stat.isFile()) {
|
|
76
|
+
return [dirPath];
|
|
77
|
+
}
|
|
74
78
|
const items = await fs.readdir(dirPath);
|
|
75
79
|
for (const item of items) {
|
|
76
80
|
const itemPath = path.join(dirPath, item);
|