@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,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Beads ↔ Coordination Sync Utility
|
|
4
|
+
*
|
|
5
|
+
* Syncs Beads tasks with the coordination manifest.
|
|
6
|
+
* Handles task status changes, creation, and deletion.
|
|
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.readBeadsTasks = readBeadsTasks;
|
|
43
|
+
exports.readCoordinationManifest = readCoordinationManifest;
|
|
44
|
+
exports.writeCoordinationManifest = writeCoordinationManifest;
|
|
45
|
+
exports.syncBeadsToCoordination = syncBeadsToCoordination;
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
/**
|
|
48
|
+
* Read all tasks from .beads/issues.jsonl
|
|
49
|
+
*/
|
|
50
|
+
function readBeadsTasks(beadsPath = '.beads/issues.jsonl') {
|
|
51
|
+
if (!fs.existsSync(beadsPath)) {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
const content = fs.readFileSync(beadsPath, 'utf-8');
|
|
55
|
+
const lines = content.split('\n').filter(line => line.trim());
|
|
56
|
+
const tasksMap = new Map();
|
|
57
|
+
for (const line of lines) {
|
|
58
|
+
try {
|
|
59
|
+
const entry = JSON.parse(line);
|
|
60
|
+
if (entry.id) {
|
|
61
|
+
// Merge updates into existing task
|
|
62
|
+
if (tasksMap.has(entry.id)) {
|
|
63
|
+
const existing = tasksMap.get(entry.id);
|
|
64
|
+
tasksMap.set(entry.id, { ...existing, ...entry });
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
tasksMap.set(entry.id, entry);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.error(`Failed to parse line: ${line}`, error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return Array.from(tasksMap.values());
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Read coordination manifest
|
|
79
|
+
*/
|
|
80
|
+
function readCoordinationManifest(manifestPath = '.augment/coordination.json') {
|
|
81
|
+
if (!fs.existsSync(manifestPath)) {
|
|
82
|
+
throw new Error(`Coordination manifest not found at ${manifestPath}`);
|
|
83
|
+
}
|
|
84
|
+
return JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Write coordination manifest
|
|
88
|
+
*/
|
|
89
|
+
function writeCoordinationManifest(manifest, manifestPath = '.augment/coordination.json') {
|
|
90
|
+
fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n');
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Validate task ID format
|
|
94
|
+
*/
|
|
95
|
+
function validateTaskId(taskId) {
|
|
96
|
+
const pattern = /^bd-[a-z0-9]+([.-][a-z0-9]+)*$/;
|
|
97
|
+
return pattern.test(taskId);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Sync Beads tasks to coordination manifest
|
|
101
|
+
*/
|
|
102
|
+
function syncBeadsToCoordination(beadsPath = '.beads/issues.jsonl', manifestPath = '.augment/coordination.json') {
|
|
103
|
+
const beadsTasks = readBeadsTasks(beadsPath);
|
|
104
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
105
|
+
let added = 0;
|
|
106
|
+
let updated = 0;
|
|
107
|
+
let removed = 0;
|
|
108
|
+
// Validate all task IDs
|
|
109
|
+
const invalidTaskIds = [];
|
|
110
|
+
for (const task of beadsTasks) {
|
|
111
|
+
if (!validateTaskId(task.id)) {
|
|
112
|
+
invalidTaskIds.push(task.id);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (invalidTaskIds.length > 0) {
|
|
116
|
+
console.error('Error: Invalid task IDs found in Beads (must use "bd-" prefix):');
|
|
117
|
+
for (const taskId of invalidTaskIds) {
|
|
118
|
+
console.error(` - ${taskId}`);
|
|
119
|
+
}
|
|
120
|
+
console.error('');
|
|
121
|
+
console.error('Valid formats:');
|
|
122
|
+
console.error(' - bd-<hash> (e.g., bd-a1b2)');
|
|
123
|
+
console.error(' - bd-<name> (e.g., bd-init, bd-rename1)');
|
|
124
|
+
console.error(' - bd-<hash>.<num> (e.g., bd-a1b2.1)');
|
|
125
|
+
console.error(' - bd-<name>-<num> (e.g., bd-prefix1-1)');
|
|
126
|
+
console.error('');
|
|
127
|
+
console.error('See openspec/specs/beads/naming-convention.md for details');
|
|
128
|
+
throw new Error('Invalid task IDs found in Beads');
|
|
129
|
+
}
|
|
130
|
+
// Track which task IDs exist in Beads
|
|
131
|
+
const beadsTaskIds = new Set(beadsTasks.map(t => t.id));
|
|
132
|
+
// Update or add tasks from Beads
|
|
133
|
+
for (const task of beadsTasks) {
|
|
134
|
+
const existingTask = manifest.tasks[task.id];
|
|
135
|
+
if (!existingTask) {
|
|
136
|
+
// Add new task
|
|
137
|
+
manifest.tasks[task.id] = {
|
|
138
|
+
title: task.title,
|
|
139
|
+
status: task.status,
|
|
140
|
+
relatedSpecs: task.spec ? [task.spec] : [],
|
|
141
|
+
relatedRules: task.rules || [],
|
|
142
|
+
outputFiles: [],
|
|
143
|
+
dependencies: task.blocked_by || []
|
|
144
|
+
};
|
|
145
|
+
added++;
|
|
146
|
+
}
|
|
147
|
+
else if (existingTask.status !== task.status) {
|
|
148
|
+
// Update task status
|
|
149
|
+
existingTask.status = task.status;
|
|
150
|
+
updated++;
|
|
151
|
+
}
|
|
152
|
+
// Update spec's relatedTasks if spec field exists
|
|
153
|
+
if (task.spec && manifest.specs[task.spec]) {
|
|
154
|
+
if (!manifest.specs[task.spec].relatedTasks.includes(task.id)) {
|
|
155
|
+
manifest.specs[task.spec].relatedTasks.push(task.id);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Remove tasks that no longer exist in Beads
|
|
160
|
+
for (const taskId of Object.keys(manifest.tasks)) {
|
|
161
|
+
if (!beadsTaskIds.has(taskId)) {
|
|
162
|
+
delete manifest.tasks[taskId];
|
|
163
|
+
removed++;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Update lastUpdated timestamp
|
|
167
|
+
manifest.lastUpdated = new Date().toISOString();
|
|
168
|
+
writeCoordinationManifest(manifest, manifestPath);
|
|
169
|
+
return { added, updated, removed };
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=beads-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beads-sync.js","sourceRoot":"","sources":["../../src/utils/beads-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coordination Query Functions
|
|
3
|
+
*
|
|
4
|
+
* AI agent discovery functions for querying the coordination manifest.
|
|
5
|
+
* All queries must complete in < 100ms.
|
|
6
|
+
*/
|
|
7
|
+
interface CoordinationManifest {
|
|
8
|
+
version: string;
|
|
9
|
+
lastUpdated: string;
|
|
10
|
+
specs: Record<string, SpecEntry>;
|
|
11
|
+
tasks: Record<string, TaskEntry>;
|
|
12
|
+
rules: Record<string, RuleEntry>;
|
|
13
|
+
files: Record<string, FileEntry>;
|
|
14
|
+
}
|
|
15
|
+
interface SpecEntry {
|
|
16
|
+
path: string;
|
|
17
|
+
status: string;
|
|
18
|
+
relatedTasks: string[];
|
|
19
|
+
relatedRules: string[];
|
|
20
|
+
affectedFiles: string[];
|
|
21
|
+
dependencies: string[];
|
|
22
|
+
}
|
|
23
|
+
interface TaskEntry {
|
|
24
|
+
title: string;
|
|
25
|
+
status: string;
|
|
26
|
+
relatedSpecs: string[];
|
|
27
|
+
relatedRules: string[];
|
|
28
|
+
outputFiles: string[];
|
|
29
|
+
dependencies?: string[];
|
|
30
|
+
}
|
|
31
|
+
interface RuleEntry {
|
|
32
|
+
path: string;
|
|
33
|
+
appliesTo: {
|
|
34
|
+
filePatterns: string[];
|
|
35
|
+
specs: string[];
|
|
36
|
+
tasks: string[];
|
|
37
|
+
};
|
|
38
|
+
priority: string;
|
|
39
|
+
}
|
|
40
|
+
interface FileEntry {
|
|
41
|
+
createdBy: string | null;
|
|
42
|
+
modifiedBy: string[];
|
|
43
|
+
governedBy: string[];
|
|
44
|
+
rulesApplied: string[];
|
|
45
|
+
}
|
|
46
|
+
export declare function readCoordinationManifest(manifestPath?: string): CoordinationManifest;
|
|
47
|
+
/**
|
|
48
|
+
* Get all active specs
|
|
49
|
+
*/
|
|
50
|
+
export declare function getActiveSpecs(manifestPath?: string): Array<{
|
|
51
|
+
id: string;
|
|
52
|
+
} & SpecEntry>;
|
|
53
|
+
/**
|
|
54
|
+
* Get tasks for a specific spec
|
|
55
|
+
*/
|
|
56
|
+
export declare function getTasksForSpec(specId: string, manifestPath?: string): Array<{
|
|
57
|
+
id: string;
|
|
58
|
+
} & TaskEntry>;
|
|
59
|
+
/**
|
|
60
|
+
* Get rules for a specific task
|
|
61
|
+
*/
|
|
62
|
+
export declare function getRulesForTask(taskId: string, manifestPath?: string): Array<{
|
|
63
|
+
name: string;
|
|
64
|
+
} & RuleEntry>;
|
|
65
|
+
/**
|
|
66
|
+
* Get specs that govern a specific file
|
|
67
|
+
*/
|
|
68
|
+
export declare function getSpecForFile(filePath: string, manifestPath?: string): Array<{
|
|
69
|
+
id: string;
|
|
70
|
+
} & SpecEntry>;
|
|
71
|
+
/**
|
|
72
|
+
* Get tasks that created or modified a specific file
|
|
73
|
+
*/
|
|
74
|
+
export declare function getTasksForFile(filePath: string, manifestPath?: string): Array<{
|
|
75
|
+
id: string;
|
|
76
|
+
relationship: string;
|
|
77
|
+
} & TaskEntry>;
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=coordination-queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordination-queries.d.ts","sourceRoot":"","sources":["../../src/utils/coordination-queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QACT,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AASD,wBAAgB,wBAAwB,CAAC,YAAY,GAAE,MAAqC,GAAG,oBAAoB,CAoBlH;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAMvF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAcxG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAc1G;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAQzG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CA+BhI"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Coordination Query Functions
|
|
4
|
+
*
|
|
5
|
+
* AI agent discovery functions for querying the coordination manifest.
|
|
6
|
+
* All queries must complete in < 100ms.
|
|
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.readCoordinationManifest = readCoordinationManifest;
|
|
43
|
+
exports.getActiveSpecs = getActiveSpecs;
|
|
44
|
+
exports.getTasksForSpec = getTasksForSpec;
|
|
45
|
+
exports.getRulesForTask = getRulesForTask;
|
|
46
|
+
exports.getSpecForFile = getSpecForFile;
|
|
47
|
+
exports.getTasksForFile = getTasksForFile;
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const minimatch_1 = require("minimatch");
|
|
50
|
+
/**
|
|
51
|
+
* Read coordination manifest with caching
|
|
52
|
+
*/
|
|
53
|
+
let cachedManifest = null;
|
|
54
|
+
let cachedManifestPath = null;
|
|
55
|
+
let cachedManifestMtime = null;
|
|
56
|
+
function readCoordinationManifest(manifestPath = '.augment/coordination.json') {
|
|
57
|
+
if (!fs.existsSync(manifestPath)) {
|
|
58
|
+
throw new Error(`Coordination manifest not found at ${manifestPath}`);
|
|
59
|
+
}
|
|
60
|
+
const stats = fs.statSync(manifestPath);
|
|
61
|
+
const mtime = stats.mtimeMs;
|
|
62
|
+
// Use cache if available and file hasn't changed
|
|
63
|
+
if (cachedManifest && cachedManifestPath === manifestPath && cachedManifestMtime === mtime) {
|
|
64
|
+
return cachedManifest;
|
|
65
|
+
}
|
|
66
|
+
// Read and cache
|
|
67
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
68
|
+
cachedManifest = manifest;
|
|
69
|
+
cachedManifestPath = manifestPath;
|
|
70
|
+
cachedManifestMtime = mtime;
|
|
71
|
+
return manifest;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get all active specs
|
|
75
|
+
*/
|
|
76
|
+
function getActiveSpecs(manifestPath) {
|
|
77
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
78
|
+
return Object.entries(manifest.specs)
|
|
79
|
+
.filter(([id, spec]) => spec.status === 'active')
|
|
80
|
+
.map(([id, spec]) => ({ id, ...spec }));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get tasks for a specific spec
|
|
84
|
+
*/
|
|
85
|
+
function getTasksForSpec(specId, manifestPath) {
|
|
86
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
87
|
+
const spec = manifest.specs[specId];
|
|
88
|
+
if (!spec) {
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
return spec.relatedTasks
|
|
92
|
+
.filter(taskId => manifest.tasks[taskId])
|
|
93
|
+
.map(taskId => ({
|
|
94
|
+
id: taskId,
|
|
95
|
+
...manifest.tasks[taskId]
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get rules for a specific task
|
|
100
|
+
*/
|
|
101
|
+
function getRulesForTask(taskId, manifestPath) {
|
|
102
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
103
|
+
const task = manifest.tasks[taskId];
|
|
104
|
+
if (!task) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
return task.relatedRules
|
|
108
|
+
.filter(ruleName => manifest.rules[ruleName])
|
|
109
|
+
.map(ruleName => ({
|
|
110
|
+
name: ruleName,
|
|
111
|
+
...manifest.rules[ruleName]
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get specs that govern a specific file
|
|
116
|
+
*/
|
|
117
|
+
function getSpecForFile(filePath, manifestPath) {
|
|
118
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
119
|
+
return Object.entries(manifest.specs)
|
|
120
|
+
.filter(([id, spec]) => {
|
|
121
|
+
return spec.affectedFiles.some(pattern => (0, minimatch_1.minimatch)(filePath, pattern));
|
|
122
|
+
})
|
|
123
|
+
.map(([id, spec]) => ({ id, ...spec }));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get tasks that created or modified a specific file
|
|
127
|
+
*/
|
|
128
|
+
function getTasksForFile(filePath, manifestPath) {
|
|
129
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
130
|
+
const fileEntry = manifest.files[filePath];
|
|
131
|
+
if (!fileEntry) {
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
const tasks = [];
|
|
135
|
+
// Add creator task
|
|
136
|
+
if (fileEntry.createdBy && manifest.tasks[fileEntry.createdBy]) {
|
|
137
|
+
tasks.push({
|
|
138
|
+
id: fileEntry.createdBy,
|
|
139
|
+
relationship: 'created',
|
|
140
|
+
...manifest.tasks[fileEntry.createdBy]
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
// Add modifier tasks
|
|
144
|
+
for (const taskId of fileEntry.modifiedBy) {
|
|
145
|
+
if (manifest.tasks[taskId]) {
|
|
146
|
+
tasks.push({
|
|
147
|
+
id: taskId,
|
|
148
|
+
relationship: 'modified',
|
|
149
|
+
...manifest.tasks[taskId]
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return tasks;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=coordination-queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordination-queries.js","sourceRoot":"","sources":["../../src/utils/coordination-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Association Tracking
|
|
3
|
+
*
|
|
4
|
+
* Tracks which files are created/modified by which tasks.
|
|
5
|
+
* Auto-updates coordination manifest on file changes.
|
|
6
|
+
*/
|
|
7
|
+
interface CoordinationManifest {
|
|
8
|
+
version: string;
|
|
9
|
+
lastUpdated: string;
|
|
10
|
+
specs: Record<string, any>;
|
|
11
|
+
tasks: Record<string, any>;
|
|
12
|
+
rules: Record<string, any>;
|
|
13
|
+
files: Record<string, FileEntry>;
|
|
14
|
+
}
|
|
15
|
+
interface FileEntry {
|
|
16
|
+
createdBy: string | null;
|
|
17
|
+
modifiedBy: string[];
|
|
18
|
+
governedBy: string[];
|
|
19
|
+
rulesApplied: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Read coordination manifest
|
|
23
|
+
*/
|
|
24
|
+
export declare function readCoordinationManifest(manifestPath?: string): CoordinationManifest;
|
|
25
|
+
/**
|
|
26
|
+
* Write coordination manifest
|
|
27
|
+
*/
|
|
28
|
+
export declare function writeCoordinationManifest(manifest: CoordinationManifest, manifestPath?: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Track file creation or modification
|
|
31
|
+
*/
|
|
32
|
+
export declare function trackFileChange(filePath: string, taskId: string, isNew?: boolean, manifestPath?: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Track multiple file changes (batch operation)
|
|
35
|
+
*/
|
|
36
|
+
export declare function trackFileChanges(changes: Array<{
|
|
37
|
+
filePath: string;
|
|
38
|
+
taskId: string;
|
|
39
|
+
isNew: boolean;
|
|
40
|
+
}>, manifestPath?: string): void;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=file-tracking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-tracking.d.ts","sourceRoot":"","sources":["../../src/utils/file-tracking.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,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,SAAS,CAAC,CAAC;CAClC;AAED,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;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,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,OAAe,EACtB,YAAY,GAAE,MAAqC,GAClD,IAAI,CAsDN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,EACpE,YAAY,GAAE,MAAqC,GAClD,IAAI,CAyDN"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* File Association Tracking
|
|
4
|
+
*
|
|
5
|
+
* Tracks which files are created/modified by which tasks.
|
|
6
|
+
* Auto-updates coordination manifest on file changes.
|
|
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.readCoordinationManifest = readCoordinationManifest;
|
|
43
|
+
exports.writeCoordinationManifest = writeCoordinationManifest;
|
|
44
|
+
exports.trackFileChange = trackFileChange;
|
|
45
|
+
exports.trackFileChanges = trackFileChanges;
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const minimatch_1 = require("minimatch");
|
|
48
|
+
/**
|
|
49
|
+
* Read coordination manifest
|
|
50
|
+
*/
|
|
51
|
+
function readCoordinationManifest(manifestPath = '.augment/coordination.json') {
|
|
52
|
+
if (!fs.existsSync(manifestPath)) {
|
|
53
|
+
throw new Error(`Coordination manifest not found at ${manifestPath}`);
|
|
54
|
+
}
|
|
55
|
+
return JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Write coordination manifest
|
|
59
|
+
*/
|
|
60
|
+
function writeCoordinationManifest(manifest, manifestPath = '.augment/coordination.json') {
|
|
61
|
+
fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Track file creation or modification
|
|
65
|
+
*/
|
|
66
|
+
function trackFileChange(filePath, taskId, isNew = false, manifestPath = '.augment/coordination.json') {
|
|
67
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
68
|
+
// Initialize file entry if it doesn't exist
|
|
69
|
+
if (!manifest.files[filePath]) {
|
|
70
|
+
manifest.files[filePath] = {
|
|
71
|
+
createdBy: null,
|
|
72
|
+
modifiedBy: [],
|
|
73
|
+
governedBy: [],
|
|
74
|
+
rulesApplied: []
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
const fileEntry = manifest.files[filePath];
|
|
78
|
+
// Track creation
|
|
79
|
+
if (isNew) {
|
|
80
|
+
fileEntry.createdBy = taskId;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Track modification
|
|
84
|
+
if (!fileEntry.modifiedBy.includes(taskId)) {
|
|
85
|
+
fileEntry.modifiedBy.push(taskId);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Add to task's output files
|
|
89
|
+
if (manifest.tasks[taskId]) {
|
|
90
|
+
if (!manifest.tasks[taskId].outputFiles.includes(filePath)) {
|
|
91
|
+
manifest.tasks[taskId].outputFiles.push(filePath);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Find governing specs
|
|
95
|
+
const governingSpecs = Object.entries(manifest.specs)
|
|
96
|
+
.filter(([id, spec]) => spec.affectedFiles.some((pattern) => (0, minimatch_1.minimatch)(filePath, pattern)))
|
|
97
|
+
.map(([id]) => id);
|
|
98
|
+
fileEntry.governedBy = governingSpecs;
|
|
99
|
+
// Find applicable rules
|
|
100
|
+
const applicableRules = Object.entries(manifest.rules)
|
|
101
|
+
.filter(([name, rule]) => rule.appliesTo.filePatterns.some((pattern) => (0, minimatch_1.minimatch)(filePath, pattern)))
|
|
102
|
+
.map(([name]) => name);
|
|
103
|
+
fileEntry.rulesApplied = applicableRules;
|
|
104
|
+
// Update timestamp
|
|
105
|
+
manifest.lastUpdated = new Date().toISOString();
|
|
106
|
+
writeCoordinationManifest(manifest, manifestPath);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Track multiple file changes (batch operation)
|
|
110
|
+
*/
|
|
111
|
+
function trackFileChanges(changes, manifestPath = '.augment/coordination.json') {
|
|
112
|
+
const manifest = readCoordinationManifest(manifestPath);
|
|
113
|
+
for (const change of changes) {
|
|
114
|
+
const { filePath, taskId, isNew } = change;
|
|
115
|
+
// Initialize file entry if it doesn't exist
|
|
116
|
+
if (!manifest.files[filePath]) {
|
|
117
|
+
manifest.files[filePath] = {
|
|
118
|
+
createdBy: null,
|
|
119
|
+
modifiedBy: [],
|
|
120
|
+
governedBy: [],
|
|
121
|
+
rulesApplied: []
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
const fileEntry = manifest.files[filePath];
|
|
125
|
+
// Track creation or modification
|
|
126
|
+
if (isNew) {
|
|
127
|
+
fileEntry.createdBy = taskId;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
if (!fileEntry.modifiedBy.includes(taskId)) {
|
|
131
|
+
fileEntry.modifiedBy.push(taskId);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Add to task's output files
|
|
135
|
+
if (manifest.tasks[taskId]) {
|
|
136
|
+
if (!manifest.tasks[taskId].outputFiles.includes(filePath)) {
|
|
137
|
+
manifest.tasks[taskId].outputFiles.push(filePath);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Find governing specs
|
|
141
|
+
const governingSpecs = Object.entries(manifest.specs)
|
|
142
|
+
.filter(([id, spec]) => spec.affectedFiles.some((pattern) => (0, minimatch_1.minimatch)(filePath, pattern)))
|
|
143
|
+
.map(([id]) => id);
|
|
144
|
+
fileEntry.governedBy = governingSpecs;
|
|
145
|
+
// Find applicable rules
|
|
146
|
+
const applicableRules = Object.entries(manifest.rules)
|
|
147
|
+
.filter(([name, rule]) => rule.appliesTo.filePatterns.some((pattern) => (0, minimatch_1.minimatch)(filePath, pattern)))
|
|
148
|
+
.map(([name]) => name);
|
|
149
|
+
fileEntry.rulesApplied = applicableRules;
|
|
150
|
+
}
|
|
151
|
+
// Update timestamp
|
|
152
|
+
manifest.lastUpdated = new Date().toISOString();
|
|
153
|
+
writeCoordinationManifest(manifest, manifestPath);
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=file-tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-tracking.js","sourceRoot":"","sources":["../../src/utils/file-tracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration Utility
|
|
3
|
+
*
|
|
4
|
+
* Migrates existing Beads tasks and OpenSpec specs to coordination system.
|
|
5
|
+
* Ensures no data loss during migration.
|
|
6
|
+
*/
|
|
7
|
+
interface MigrationResult {
|
|
8
|
+
beads: {
|
|
9
|
+
added: number;
|
|
10
|
+
updated: number;
|
|
11
|
+
removed: number;
|
|
12
|
+
};
|
|
13
|
+
openspec: {
|
|
14
|
+
added: number;
|
|
15
|
+
updated: number;
|
|
16
|
+
removed: number;
|
|
17
|
+
};
|
|
18
|
+
backup: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Migrate existing data to coordination system
|
|
22
|
+
*/
|
|
23
|
+
export declare function migrateExistingData(beadsPath?: string, openspecDir?: string, manifestPath?: string): MigrationResult;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/utils/migrate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,UAAU,eAAe;IACvB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB;AAuGD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,MAA8B,EACzC,WAAW,GAAE,MAAmB,EAChC,YAAY,GAAE,MAAqC,GAClD,eAAe,CAoEjB"}
|