@mytechtoday/augment-extensions 0.1.0 → 0.1.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/AGENTS.md +83 -3
- package/README.md +6 -5
- package/augment-extensions/coding-standards/python/README.md +44 -0
- package/augment-extensions/coding-standards/python/module.json +26 -0
- package/augment-extensions/coding-standards/python/rules/best-practices.md +232 -0
- package/augment-extensions/coding-standards/python/rules/code-organization.md +220 -0
- package/augment-extensions/coding-standards/python/rules/error-handling.md +221 -0
- package/augment-extensions/coding-standards/python/rules/naming-conventions.md +172 -0
- package/augment-extensions/coding-standards/python/rules/type-hints.md +188 -0
- package/augment-extensions/coding-standards/react/README.md +45 -0
- package/augment-extensions/coding-standards/react/module.json +27 -0
- package/augment-extensions/coding-standards/react/rules/component-patterns.md +214 -0
- package/augment-extensions/coding-standards/react/rules/hooks-best-practices.md +235 -0
- package/augment-extensions/coding-standards/react/rules/performance.md +300 -0
- package/augment-extensions/coding-standards/react/rules/state-management.md +265 -0
- package/augment-extensions/coding-standards/react/rules/typescript-react.md +271 -0
- package/augment-extensions/domain-rules/api-design/README.md +41 -0
- package/augment-extensions/domain-rules/api-design/module.json +27 -0
- package/augment-extensions/domain-rules/api-design/rules/authentication.md +263 -0
- package/augment-extensions/domain-rules/api-design/rules/documentation.md +395 -0
- package/augment-extensions/domain-rules/api-design/rules/error-handling.md +290 -0
- package/augment-extensions/domain-rules/api-design/rules/graphql-api.md +313 -0
- package/augment-extensions/domain-rules/api-design/rules/rest-api.md +214 -0
- package/augment-extensions/domain-rules/api-design/rules/versioning.md +268 -0
- package/augment-extensions/domain-rules/security/README.md +41 -0
- package/augment-extensions/domain-rules/security/module.json +28 -0
- package/augment-extensions/domain-rules/security/rules/authentication-security.md +361 -0
- package/augment-extensions/domain-rules/security/rules/encryption.md +208 -0
- package/augment-extensions/domain-rules/security/rules/input-validation.md +294 -0
- package/augment-extensions/domain-rules/security/rules/owasp-top-10.md +339 -0
- package/augment-extensions/domain-rules/security/rules/secure-coding.md +293 -0
- package/augment-extensions/domain-rules/security/rules/web-security.md +268 -0
- package/augment-extensions/examples/design-patterns/README.md +37 -0
- package/augment-extensions/examples/design-patterns/examples/behavioral-patterns.md +370 -0
- package/augment-extensions/examples/design-patterns/examples/creational-patterns.md +250 -0
- package/augment-extensions/examples/design-patterns/examples/structural-patterns.md +264 -0
- package/augment-extensions/examples/design-patterns/module.json +27 -0
- package/{modules → augment-extensions}/workflows/beads/examples/complete-workflow-example.md +5 -5
- package/{modules → augment-extensions}/workflows/beads/rules/file-format.md +45 -1
- package/{modules → augment-extensions}/workflows/beads/rules/workflow.md +41 -0
- package/{modules → augment-extensions}/workflows/openspec/examples/complete-change-example.md +14 -0
- package/{modules → augment-extensions}/workflows/openspec/rules/spec-format.md +44 -1
- package/{modules → augment-extensions}/workflows/openspec/rules/workflow.md +25 -0
- package/cli/dist/cli.js +64 -0
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/coord.d.ts +30 -0
- package/cli/dist/commands/coord.d.ts.map +1 -0
- package/cli/dist/commands/coord.js +150 -0
- package/cli/dist/commands/coord.js.map +1 -0
- package/cli/dist/commands/link.js +1 -1
- package/cli/dist/commands/link.js.map +1 -1
- package/cli/dist/commands/list.js +1 -1
- package/cli/dist/commands/list.js.map +1 -1
- package/cli/dist/commands/search.d.ts.map +1 -1
- package/cli/dist/commands/search.js +107 -5
- package/cli/dist/commands/search.js.map +1 -1
- package/cli/dist/commands/show.js +1 -1
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/sync.d.ts +26 -0
- package/cli/dist/commands/sync.d.ts.map +1 -0
- package/cli/dist/commands/sync.js +106 -0
- package/cli/dist/commands/sync.js.map +1 -0
- package/cli/dist/commands/update.d.ts.map +1 -1
- package/cli/dist/commands/update.js +132 -7
- package/cli/dist/commands/update.js.map +1 -1
- package/cli/dist/utils/auto-sync.d.ts +34 -0
- package/cli/dist/utils/auto-sync.d.ts.map +1 -0
- package/cli/dist/utils/auto-sync.js +172 -0
- package/cli/dist/utils/auto-sync.js.map +1 -0
- package/cli/dist/utils/beads-sync.d.ts +51 -0
- package/cli/dist/utils/beads-sync.d.ts.map +1 -0
- package/cli/dist/utils/beads-sync.js +171 -0
- package/cli/dist/utils/beads-sync.js.map +1 -0
- package/cli/dist/utils/coordination-queries.d.ts +79 -0
- package/cli/dist/utils/coordination-queries.d.ts.map +1 -0
- package/cli/dist/utils/coordination-queries.js +155 -0
- package/cli/dist/utils/coordination-queries.js.map +1 -0
- package/cli/dist/utils/file-tracking.d.ts +42 -0
- package/cli/dist/utils/file-tracking.d.ts.map +1 -0
- package/cli/dist/utils/file-tracking.js +155 -0
- package/cli/dist/utils/file-tracking.js.map +1 -0
- package/cli/dist/utils/migrate.d.ts +25 -0
- package/cli/dist/utils/migrate.d.ts.map +1 -0
- package/cli/dist/utils/migrate.js +204 -0
- package/cli/dist/utils/migrate.js.map +1 -0
- package/cli/dist/utils/openspec-sync.d.ts +48 -0
- package/cli/dist/utils/openspec-sync.d.ts.map +1 -0
- package/cli/dist/utils/openspec-sync.js +167 -0
- package/cli/dist/utils/openspec-sync.js.map +1 -0
- package/{MODULES.md → modules.md} +1 -1
- package/package.json +9 -7
- /package/{modules → augment-extensions}/coding-standards/typescript/README.md +0 -0
- /package/{modules → augment-extensions}/coding-standards/typescript/module.json +0 -0
- /package/{modules → augment-extensions}/coding-standards/typescript/rules/naming-conventions.md +0 -0
- /package/{modules → augment-extensions}/workflows/beads/README.md +0 -0
- /package/{modules → augment-extensions}/workflows/beads/module.json +0 -0
- /package/{modules → augment-extensions}/workflows/beads/rules/best-practices.md +0 -0
- /package/{modules → augment-extensions}/workflows/beads/rules/manual-setup.md +0 -0
- /package/{modules → augment-extensions}/workflows/openspec/README.md +0 -0
- /package/{modules → augment-extensions}/workflows/openspec/module.json +0 -0
- /package/{modules → augment-extensions}/workflows/openspec/rules/best-practices.md +0 -0
- /package/{modules → augment-extensions}/workflows/openspec/rules/manual-setup.md +0 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Migration Utility
|
|
4
|
+
*
|
|
5
|
+
* Migrates existing Beads tasks and OpenSpec specs to coordination system.
|
|
6
|
+
* Ensures no data loss during migration.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.migrateExistingData = migrateExistingData;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const beads_sync_1 = require("./beads-sync");
|
|
45
|
+
const openspec_sync_1 = require("./openspec-sync");
|
|
46
|
+
/**
|
|
47
|
+
* Create backup of coordination manifest
|
|
48
|
+
*/
|
|
49
|
+
function createBackup(manifestPath) {
|
|
50
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
51
|
+
const backupPath = `${manifestPath}.backup-${timestamp}`;
|
|
52
|
+
if (fs.existsSync(manifestPath)) {
|
|
53
|
+
fs.copyFileSync(manifestPath, backupPath);
|
|
54
|
+
}
|
|
55
|
+
return backupPath;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Validate coordination manifest
|
|
59
|
+
*/
|
|
60
|
+
function validateManifest(manifestPath) {
|
|
61
|
+
try {
|
|
62
|
+
const content = fs.readFileSync(manifestPath, 'utf-8');
|
|
63
|
+
const manifest = JSON.parse(content);
|
|
64
|
+
// Check required fields
|
|
65
|
+
if (!manifest.version || !manifest.specs || !manifest.tasks || !manifest.rules || !manifest.files) {
|
|
66
|
+
console.error('Error: Missing required fields in coordination manifest');
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
// Validate task ID prefixes
|
|
70
|
+
const taskIdPattern = /^bd-[a-z0-9]+([.-][a-z0-9]+)*$/;
|
|
71
|
+
const invalidTaskIds = [];
|
|
72
|
+
// Check task IDs in tasks section
|
|
73
|
+
for (const taskId of Object.keys(manifest.tasks)) {
|
|
74
|
+
if (!taskIdPattern.test(taskId)) {
|
|
75
|
+
invalidTaskIds.push(taskId);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Check task IDs referenced in specs
|
|
79
|
+
for (const [specId, spec] of Object.entries(manifest.specs)) {
|
|
80
|
+
const specData = spec;
|
|
81
|
+
if (specData.relatedTasks) {
|
|
82
|
+
for (const taskId of specData.relatedTasks) {
|
|
83
|
+
if (!taskIdPattern.test(taskId)) {
|
|
84
|
+
if (!invalidTaskIds.includes(taskId)) {
|
|
85
|
+
invalidTaskIds.push(taskId);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Report invalid task IDs
|
|
92
|
+
if (invalidTaskIds.length > 0) {
|
|
93
|
+
console.error('Error: Invalid task IDs found (must use "bd-" prefix):');
|
|
94
|
+
for (const taskId of invalidTaskIds) {
|
|
95
|
+
console.error(` - ${taskId}`);
|
|
96
|
+
}
|
|
97
|
+
console.error('');
|
|
98
|
+
console.error('Valid formats:');
|
|
99
|
+
console.error(' - bd-<hash> (e.g., bd-a1b2)');
|
|
100
|
+
console.error(' - bd-<name> (e.g., bd-init, bd-rename1)');
|
|
101
|
+
console.error(' - bd-<hash>.<num> (e.g., bd-a1b2.1)');
|
|
102
|
+
console.error(' - bd-<name>-<num> (e.g., bd-prefix1-1)');
|
|
103
|
+
console.error('');
|
|
104
|
+
console.error('See openspec/specs/beads/naming-convention.md for details');
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
// Check that all task references in specs exist
|
|
108
|
+
for (const [specId, spec] of Object.entries(manifest.specs)) {
|
|
109
|
+
const specData = spec;
|
|
110
|
+
if (specData.relatedTasks) {
|
|
111
|
+
for (const taskId of specData.relatedTasks) {
|
|
112
|
+
if (!manifest.tasks[taskId]) {
|
|
113
|
+
console.warn(`Warning: Spec ${specId} references non-existent task ${taskId}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Check that all spec references in tasks exist
|
|
119
|
+
for (const [taskId, task] of Object.entries(manifest.tasks)) {
|
|
120
|
+
const taskData = task;
|
|
121
|
+
if (taskData.relatedSpecs) {
|
|
122
|
+
for (const specId of taskData.relatedSpecs) {
|
|
123
|
+
if (!manifest.specs[specId]) {
|
|
124
|
+
console.warn(`Warning: Task ${taskId} references non-existent spec ${specId}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error('Validation error:', error);
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Migrate existing data to coordination system
|
|
138
|
+
*/
|
|
139
|
+
function migrateExistingData(beadsPath = '.beads/issues.jsonl', openspecDir = 'openspec', manifestPath = '.augment/coordination.json') {
|
|
140
|
+
console.log('Starting migration...');
|
|
141
|
+
// Create backup
|
|
142
|
+
const backupPath = createBackup(manifestPath);
|
|
143
|
+
console.log(`Created backup at ${backupPath}`);
|
|
144
|
+
// Sync Beads tasks
|
|
145
|
+
console.log('Migrating Beads tasks...');
|
|
146
|
+
let beadsStats = { added: 0, updated: 0, removed: 0 };
|
|
147
|
+
if (fs.existsSync(beadsPath)) {
|
|
148
|
+
try {
|
|
149
|
+
beadsStats = (0, beads_sync_1.syncBeadsToCoordination)(beadsPath, manifestPath);
|
|
150
|
+
console.log(`Beads: ${beadsStats.added} added, ${beadsStats.updated} updated, ${beadsStats.removed} removed`);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
console.error('Failed to migrate Beads tasks:', error);
|
|
154
|
+
// Restore backup
|
|
155
|
+
if (fs.existsSync(backupPath)) {
|
|
156
|
+
fs.copyFileSync(backupPath, manifestPath);
|
|
157
|
+
console.log('Restored from backup');
|
|
158
|
+
}
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
console.log('No Beads tasks found, skipping');
|
|
164
|
+
}
|
|
165
|
+
// Sync OpenSpec specs
|
|
166
|
+
console.log('Migrating OpenSpec specs...');
|
|
167
|
+
let openspecStats = { added: 0, updated: 0, removed: 0 };
|
|
168
|
+
if (fs.existsSync(openspecDir)) {
|
|
169
|
+
try {
|
|
170
|
+
openspecStats = (0, openspec_sync_1.syncOpenSpecToCoordination)(openspecDir, manifestPath);
|
|
171
|
+
console.log(`OpenSpec: ${openspecStats.added} added, ${openspecStats.updated} updated, ${openspecStats.removed} removed`);
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
console.error('Failed to migrate OpenSpec specs:', error);
|
|
175
|
+
// Restore backup
|
|
176
|
+
if (fs.existsSync(backupPath)) {
|
|
177
|
+
fs.copyFileSync(backupPath, manifestPath);
|
|
178
|
+
console.log('Restored from backup');
|
|
179
|
+
}
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
console.log('No OpenSpec specs found, skipping');
|
|
185
|
+
}
|
|
186
|
+
// Validate result
|
|
187
|
+
console.log('Validating migration...');
|
|
188
|
+
if (!validateManifest(manifestPath)) {
|
|
189
|
+
console.error('Validation failed!');
|
|
190
|
+
// Restore backup
|
|
191
|
+
if (fs.existsSync(backupPath)) {
|
|
192
|
+
fs.copyFileSync(backupPath, manifestPath);
|
|
193
|
+
console.log('Restored from backup');
|
|
194
|
+
}
|
|
195
|
+
throw new Error('Migration validation failed');
|
|
196
|
+
}
|
|
197
|
+
console.log('Migration complete!');
|
|
198
|
+
return {
|
|
199
|
+
beads: beadsStats,
|
|
200
|
+
openspec: openspecStats,
|
|
201
|
+
backup: backupPath
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/utils/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenSpec ↔ Coordination Sync Utility
|
|
3
|
+
*
|
|
4
|
+
* Syncs OpenSpec specs with the coordination manifest.
|
|
5
|
+
* Handles spec status changes, creation, and archival.
|
|
6
|
+
*/
|
|
7
|
+
interface SpecFrontmatter {
|
|
8
|
+
id?: string;
|
|
9
|
+
relatedTasks?: string[];
|
|
10
|
+
relatedRules?: string[];
|
|
11
|
+
status?: string;
|
|
12
|
+
affectedFiles?: string[];
|
|
13
|
+
dependencies?: string[];
|
|
14
|
+
}
|
|
15
|
+
interface CoordinationManifest {
|
|
16
|
+
version: string;
|
|
17
|
+
lastUpdated: string;
|
|
18
|
+
specs: Record<string, any>;
|
|
19
|
+
tasks: Record<string, any>;
|
|
20
|
+
rules: Record<string, any>;
|
|
21
|
+
files: Record<string, any>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Extract YAML frontmatter from markdown file
|
|
25
|
+
*/
|
|
26
|
+
export declare function extractFrontmatter(filePath: string): SpecFrontmatter | null;
|
|
27
|
+
/**
|
|
28
|
+
* Find all OpenSpec spec files
|
|
29
|
+
*/
|
|
30
|
+
export declare function findSpecFiles(baseDir?: string): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Read coordination manifest
|
|
33
|
+
*/
|
|
34
|
+
export declare function readCoordinationManifest(manifestPath?: string): CoordinationManifest;
|
|
35
|
+
/**
|
|
36
|
+
* Write coordination manifest
|
|
37
|
+
*/
|
|
38
|
+
export declare function writeCoordinationManifest(manifest: CoordinationManifest, manifestPath?: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Sync OpenSpec specs to coordination manifest
|
|
41
|
+
*/
|
|
42
|
+
export declare function syncOpenSpecToCoordination(openspecDir?: string, manifestPath?: string): {
|
|
43
|
+
added: number;
|
|
44
|
+
updated: number;
|
|
45
|
+
removed: number;
|
|
46
|
+
};
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=openspec-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openspec-sync.d.ts","sourceRoot":"","sources":["../../src/utils/openspec-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,UAAU,eAAe;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmB3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAmB,GAAG,MAAM,EAAE,CAkCpE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,GAAE,MAAqC,GAAG,oBAAoB,CAMlH;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,YAAY,GAAE,MAAqC,GAAG,IAAI,CAEnI;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,GAAE,MAAmB,EAChC,YAAY,GAAE,MAAqC,GAClD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAwDrD"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenSpec ↔ Coordination Sync Utility
|
|
4
|
+
*
|
|
5
|
+
* Syncs OpenSpec specs with the coordination manifest.
|
|
6
|
+
* Handles spec status changes, creation, and archival.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.extractFrontmatter = extractFrontmatter;
|
|
43
|
+
exports.findSpecFiles = findSpecFiles;
|
|
44
|
+
exports.readCoordinationManifest = readCoordinationManifest;
|
|
45
|
+
exports.writeCoordinationManifest = writeCoordinationManifest;
|
|
46
|
+
exports.syncOpenSpecToCoordination = syncOpenSpecToCoordination;
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const yaml = __importStar(require("js-yaml"));
|
|
50
|
+
/**
|
|
51
|
+
* Extract YAML frontmatter from markdown file
|
|
52
|
+
*/
|
|
53
|
+
function extractFrontmatter(filePath) {
|
|
54
|
+
if (!fs.existsSync(filePath)) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
58
|
+
const frontmatterRegex = /^---\s*\n([\s\S]*?)\n---\s*\n/;
|
|
59
|
+
const match = content.match(frontmatterRegex);
|
|
60
|
+
if (!match) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
return yaml.load(match[1]);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error(`Failed to parse frontmatter in ${filePath}:`, error);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Find all OpenSpec spec files
|
|
73
|
+
*/
|
|
74
|
+
function findSpecFiles(baseDir = 'openspec') {
|
|
75
|
+
const specFiles = [];
|
|
76
|
+
function walkDir(dir) {
|
|
77
|
+
if (!fs.existsSync(dir)) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
81
|
+
for (const entry of entries) {
|
|
82
|
+
const fullPath = path.join(dir, entry.name);
|
|
83
|
+
if (entry.isDirectory()) {
|
|
84
|
+
walkDir(fullPath);
|
|
85
|
+
}
|
|
86
|
+
else if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
87
|
+
specFiles.push(fullPath);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Check specs directory
|
|
92
|
+
const specsDir = path.join(baseDir, 'specs');
|
|
93
|
+
if (fs.existsSync(specsDir)) {
|
|
94
|
+
walkDir(specsDir);
|
|
95
|
+
}
|
|
96
|
+
// Check changes directory
|
|
97
|
+
const changesDir = path.join(baseDir, 'changes');
|
|
98
|
+
if (fs.existsSync(changesDir)) {
|
|
99
|
+
walkDir(changesDir);
|
|
100
|
+
}
|
|
101
|
+
return specFiles;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Read coordination manifest
|
|
105
|
+
*/
|
|
106
|
+
function readCoordinationManifest(manifestPath = '.augment/coordination.json') {
|
|
107
|
+
if (!fs.existsSync(manifestPath)) {
|
|
108
|
+
throw new Error(`Coordination manifest not found at ${manifestPath}`);
|
|
109
|
+
}
|
|
110
|
+
return JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Write coordination manifest
|
|
114
|
+
*/
|
|
115
|
+
function writeCoordinationManifest(manifest, manifestPath = '.augment/coordination.json') {
|
|
116
|
+
fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n');
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Sync OpenSpec specs to coordination manifest
|
|
120
|
+
*/
|
|
121
|
+
function syncOpenSpecToCoordination(openspecDir = 'openspec', manifestPath = '.augment/coordination.json') {
|
|
122
|
+
const specFiles = findSpecFiles(openspecDir);
|
|
123
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
124
|
+
let added = 0;
|
|
125
|
+
let updated = 0;
|
|
126
|
+
let removed = 0;
|
|
127
|
+
// Track which spec IDs exist in OpenSpec
|
|
128
|
+
const openspecIds = new Set();
|
|
129
|
+
// Update or add specs from OpenSpec
|
|
130
|
+
for (const specFile of specFiles) {
|
|
131
|
+
const frontmatter = extractFrontmatter(specFile);
|
|
132
|
+
if (!frontmatter || !frontmatter.id) {
|
|
133
|
+
continue; // Skip files without frontmatter or ID
|
|
134
|
+
}
|
|
135
|
+
const specId = frontmatter.id;
|
|
136
|
+
openspecIds.add(specId);
|
|
137
|
+
const existingSpec = manifest.specs[specId];
|
|
138
|
+
if (!existingSpec) {
|
|
139
|
+
// Add new spec
|
|
140
|
+
manifest.specs[specId] = {
|
|
141
|
+
path: specFile,
|
|
142
|
+
status: frontmatter.status || 'active',
|
|
143
|
+
relatedTasks: frontmatter.relatedTasks || [],
|
|
144
|
+
relatedRules: frontmatter.relatedRules || [],
|
|
145
|
+
affectedFiles: frontmatter.affectedFiles || [],
|
|
146
|
+
dependencies: frontmatter.dependencies || []
|
|
147
|
+
};
|
|
148
|
+
added++;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
// Update existing spec
|
|
152
|
+
let hasChanges = false;
|
|
153
|
+
if (existingSpec.status !== (frontmatter.status || 'active')) {
|
|
154
|
+
existingSpec.status = frontmatter.status || 'active';
|
|
155
|
+
hasChanges = true;
|
|
156
|
+
}
|
|
157
|
+
if (hasChanges) {
|
|
158
|
+
updated++;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// Update lastUpdated timestamp
|
|
163
|
+
manifest.lastUpdated = new Date().toISOString();
|
|
164
|
+
writeCoordinationManifest(manifest, manifestPath);
|
|
165
|
+
return { added, updated, removed };
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=openspec-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openspec-sync.js","sourceRoot":"","sources":["../../src/utils/openspec-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,7 +105,7 @@ augx link workflows/beads
|
|
|
105
105
|
|
|
106
106
|
## Contributing New Modules
|
|
107
107
|
|
|
108
|
-
See [
|
|
108
|
+
See [module-development.md](./module-development.md) for guidelines on creating new modules.
|
|
109
109
|
|
|
110
110
|
## Module Versioning
|
|
111
111
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mytechtoday/augment-extensions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "CLI tool for managing Augment Code AI extension modules",
|
|
5
5
|
"main": "cli/dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"cli/dist/",
|
|
11
|
-
"
|
|
11
|
+
"augment-extensions/",
|
|
12
12
|
"README.md",
|
|
13
13
|
"LICENSE",
|
|
14
14
|
"AGENTS.md",
|
|
15
|
-
"
|
|
15
|
+
"modules.md"
|
|
16
16
|
],
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "cd cli && tsc",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"license": "MIT",
|
|
40
40
|
"repository": {
|
|
41
41
|
"type": "git",
|
|
42
|
-
"url": "https://github.com/mytech-today-now/augment.git"
|
|
42
|
+
"url": "git+https://github.com/mytech-today-now/augment.git"
|
|
43
43
|
},
|
|
44
44
|
"bugs": {
|
|
45
45
|
"url": "https://github.com/mytech-today-now/augment/issues"
|
|
@@ -52,15 +52,18 @@
|
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"
|
|
55
|
+
"@types/js-yaml": "^4.0.9",
|
|
56
56
|
"chalk": "^5.3.0",
|
|
57
|
+
"commander": "^11.0.0",
|
|
57
58
|
"inquirer": "^9.2.0",
|
|
59
|
+
"js-yaml": "^4.1.1",
|
|
60
|
+
"minimatch": "^10.1.1",
|
|
58
61
|
"semver": "^7.5.0",
|
|
59
62
|
"yaml": "^2.3.0"
|
|
60
63
|
},
|
|
61
64
|
"devDependencies": {
|
|
62
|
-
"@types/node": "^20.0.0",
|
|
63
65
|
"@types/inquirer": "^9.0.0",
|
|
66
|
+
"@types/node": "^20.0.0",
|
|
64
67
|
"@types/semver": "^7.5.0",
|
|
65
68
|
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
66
69
|
"@typescript-eslint/parser": "^6.0.0",
|
|
@@ -69,4 +72,3 @@
|
|
|
69
72
|
"typescript": "^5.2.0"
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
|
-
|
|
File without changes
|
|
File without changes
|
/package/{modules → augment-extensions}/coding-standards/typescript/rules/naming-conventions.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|