@uoyo/mvtt 2.0.0-beta.2 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +1 -11
  2. package/dist/build/section-loader.d.ts.map +1 -1
  3. package/dist/build/section-loader.js +18 -8
  4. package/dist/build/section-loader.js.map +1 -1
  5. package/dist/fs/materialize.d.ts.map +1 -1
  6. package/dist/fs/materialize.js +12 -4
  7. package/dist/fs/materialize.js.map +1 -1
  8. package/dist/fs/registry-merge.d.ts +19 -0
  9. package/dist/fs/registry-merge.d.ts.map +1 -0
  10. package/dist/fs/registry-merge.js +177 -0
  11. package/dist/fs/registry-merge.js.map +1 -0
  12. package/dist/scripts/plan-update.cjs +7563 -0
  13. package/dist/scripts/session-update.cjs +7568 -0
  14. package/install-manifest.yaml +8 -2
  15. package/package.json +3 -2
  16. package/sources/defaults/config.yaml +7 -7
  17. package/sources/defaults/session.yaml +9 -16
  18. package/sources/scripts/plan-update.js +353 -0
  19. package/sources/scripts/session-update.js +351 -0
  20. package/sources/sections/activation-load-context.md +4 -0
  21. package/sources/sections/footer-next-steps.md +1 -1
  22. package/sources/sections/output-format-constraint.md +14 -0
  23. package/sources/sections/project-context-profile.md +29 -0
  24. package/sources/sections/session-update.md +100 -32
  25. package/sources/skills/mvt-analyze/manifest.yaml +4 -0
  26. package/sources/skills/mvt-analyze-code/manifest.yaml +24 -4
  27. package/sources/skills/mvt-bug-detect/business.md +99 -101
  28. package/sources/skills/mvt-bug-detect/manifest.yaml +84 -84
  29. package/sources/skills/mvt-check-context/business.md +3 -5
  30. package/sources/skills/mvt-check-context/manifest.yaml +15 -8
  31. package/sources/skills/mvt-cleanup/business.md +49 -23
  32. package/sources/skills/mvt-cleanup/manifest.yaml +18 -10
  33. package/sources/skills/mvt-config/business.md +1 -2
  34. package/sources/skills/mvt-config/manifest.yaml +11 -4
  35. package/sources/skills/mvt-create-skill/business.md +6 -5
  36. package/sources/skills/mvt-create-skill/manifest.yaml +30 -11
  37. package/sources/skills/mvt-design/business.md +3 -6
  38. package/sources/skills/mvt-design/manifest.yaml +17 -1
  39. package/sources/skills/mvt-fix/business.md +2 -1
  40. package/sources/skills/mvt-fix/manifest.yaml +9 -3
  41. package/sources/skills/mvt-help/business.md +2 -4
  42. package/sources/skills/mvt-help/manifest.yaml +13 -5
  43. package/sources/skills/mvt-implement/business.md +10 -7
  44. package/sources/skills/mvt-implement/manifest.yaml +16 -0
  45. package/sources/skills/mvt-init/business.md +2 -2
  46. package/sources/skills/mvt-init/manifest.yaml +4 -0
  47. package/sources/skills/mvt-manage-context/business.md +11 -0
  48. package/sources/skills/mvt-manage-context/manifest.yaml +20 -3
  49. package/sources/skills/mvt-plan-dev/business.md +101 -20
  50. package/sources/skills/mvt-plan-dev/manifest.yaml +21 -19
  51. package/sources/skills/mvt-quick-dev/business.md +2 -1
  52. package/sources/skills/mvt-quick-dev/manifest.yaml +24 -6
  53. package/sources/skills/mvt-refactor/business.md +2 -1
  54. package/sources/skills/mvt-refactor/manifest.yaml +24 -3
  55. package/sources/skills/mvt-resume/business.md +28 -68
  56. package/sources/skills/mvt-resume/manifest.yaml +17 -7
  57. package/sources/skills/mvt-review/business.md +3 -3
  58. package/sources/skills/mvt-review/manifest.yaml +25 -1
  59. package/sources/skills/mvt-status/business.md +14 -18
  60. package/sources/skills/mvt-status/manifest.yaml +11 -3
  61. package/sources/skills/mvt-sync-context/business.md +69 -35
  62. package/sources/skills/mvt-sync-context/manifest.yaml +9 -0
  63. package/sources/skills/mvt-template/business.md +0 -2
  64. package/sources/skills/mvt-template/manifest.yaml +13 -8
  65. package/sources/skills/mvt-test/business.md +3 -3
  66. package/sources/skills/mvt-test/manifest.yaml +17 -1
  67. package/sources/skills/mvt-update-plan/business.md +41 -28
  68. package/sources/skills/mvt-update-plan/manifest.yaml +14 -19
  69. package/dist/build/plan-validator.d.ts +0 -26
  70. package/dist/build/plan-validator.d.ts.map +0 -1
  71. package/dist/build/plan-validator.js +0 -225
  72. package/dist/build/plan-validator.js.map +0 -1
  73. package/dist/commands/build.d.ts +0 -5
  74. package/dist/commands/build.d.ts.map +0 -1
  75. package/dist/commands/build.js +0 -46
  76. package/dist/commands/build.js.map +0 -1
  77. package/dist/commands/migrate.d.ts +0 -16
  78. package/dist/commands/migrate.d.ts.map +0 -1
  79. package/dist/commands/migrate.js +0 -118
  80. package/dist/commands/migrate.js.map +0 -1
@@ -1,225 +0,0 @@
1
- import { parse as parseYaml } from "yaml";
2
- const PLAN_STATUSES = new Set(["in_progress", "done", "abandoned"]);
3
- const TASK_STATUSES = new Set([
4
- "pending",
5
- "in_progress",
6
- "done",
7
- "blocked",
8
- "skipped",
9
- ]);
10
- function isString(v) {
11
- return typeof v === "string";
12
- }
13
- function isNonEmptyString(v) {
14
- return typeof v === "string" && v.length > 0;
15
- }
16
- function detectCycle(tasks) {
17
- const idIndex = new Map();
18
- for (const t of tasks)
19
- idIndex.set(t.id, t);
20
- const WHITE = 0;
21
- const GRAY = 1;
22
- const BLACK = 2;
23
- const color = new Map();
24
- for (const t of tasks)
25
- color.set(t.id, WHITE);
26
- const stack = [];
27
- function visit(id) {
28
- color.set(id, GRAY);
29
- stack.push(id);
30
- const task = idIndex.get(id);
31
- if (task) {
32
- for (const dep of task.depends_on ?? []) {
33
- const c = color.get(dep);
34
- if (c === GRAY) {
35
- const cycleStart = stack.indexOf(dep);
36
- return stack.slice(cycleStart).concat(dep);
37
- }
38
- if (c === WHITE) {
39
- const found = visit(dep);
40
- if (found)
41
- return found;
42
- }
43
- }
44
- }
45
- stack.pop();
46
- color.set(id, BLACK);
47
- return null;
48
- }
49
- for (const t of tasks) {
50
- if (color.get(t.id) === WHITE) {
51
- const cycle = visit(t.id);
52
- if (cycle)
53
- return cycle;
54
- }
55
- }
56
- return null;
57
- }
58
- function validateTask(task, index, knownIds, errors) {
59
- const base = `tasks[${index}]`;
60
- if (typeof task !== "object" || task === null) {
61
- errors.push({ path: base, message: "Task must be an object" });
62
- return null;
63
- }
64
- const t = task;
65
- if (!isNonEmptyString(t.id)) {
66
- errors.push({ path: `${base}.id`, message: "Missing or empty id" });
67
- return null;
68
- }
69
- if (!isNonEmptyString(t.title)) {
70
- errors.push({ path: `${base}.title`, message: "Missing or empty title" });
71
- }
72
- if (!isString(t.status) || !TASK_STATUSES.has(t.status)) {
73
- errors.push({
74
- path: `${base}.status`,
75
- message: `Invalid status "${String(t.status)}". Expected one of: ${[...TASK_STATUSES].join(", ")}`,
76
- });
77
- }
78
- if (!Array.isArray(t.depends_on)) {
79
- errors.push({
80
- path: `${base}.depends_on`,
81
- message: "depends_on must be an array (use [] for no dependencies)",
82
- });
83
- }
84
- else {
85
- for (let i = 0; i < t.depends_on.length; i++) {
86
- const dep = t.depends_on[i];
87
- if (!isNonEmptyString(dep)) {
88
- errors.push({
89
- path: `${base}.depends_on[${i}]`,
90
- message: "Dependency entries must be non-empty strings",
91
- });
92
- }
93
- }
94
- }
95
- if (t.skill_hint !== undefined && !isString(t.skill_hint)) {
96
- errors.push({ path: `${base}.skill_hint`, message: "skill_hint must be a string" });
97
- }
98
- if (t.acceptance !== undefined && !Array.isArray(t.acceptance)) {
99
- errors.push({ path: `${base}.acceptance`, message: "acceptance must be an array" });
100
- }
101
- if (t.artifacts !== undefined && !Array.isArray(t.artifacts)) {
102
- errors.push({ path: `${base}.artifacts`, message: "artifacts must be an array" });
103
- }
104
- if (t.notes !== undefined && !isString(t.notes)) {
105
- errors.push({ path: `${base}.notes`, message: "notes must be a string" });
106
- }
107
- if (knownIds.has(t.id)) {
108
- errors.push({ path: `${base}.id`, message: `Duplicate task id "${t.id}"` });
109
- }
110
- knownIds.add(t.id);
111
- return {
112
- id: t.id,
113
- title: isString(t.title) ? t.title : "",
114
- status: isString(t.status) ? t.status : "",
115
- depends_on: Array.isArray(t.depends_on) ? t.depends_on : [],
116
- skill_hint: isString(t.skill_hint) ? t.skill_hint : undefined,
117
- acceptance: Array.isArray(t.acceptance) ? t.acceptance : undefined,
118
- artifacts: Array.isArray(t.artifacts) ? t.artifacts : undefined,
119
- notes: isString(t.notes) ? t.notes : undefined,
120
- };
121
- }
122
- export function validatePlan(rawYaml) {
123
- const errors = [];
124
- let parsed;
125
- try {
126
- parsed = parseYaml(rawYaml);
127
- }
128
- catch (e) {
129
- errors.push({ path: "(root)", message: `Invalid YAML: ${e}` });
130
- return errors;
131
- }
132
- if (typeof parsed !== "object" || parsed === null) {
133
- errors.push({ path: "(root)", message: "Plan must be a YAML mapping" });
134
- return errors;
135
- }
136
- const plan = parsed;
137
- if (plan.version !== 1) {
138
- errors.push({
139
- path: "version",
140
- message: `Unsupported plan version "${String(plan.version)}". Expected 1.`,
141
- });
142
- }
143
- if (!isNonEmptyString(plan.change_id)) {
144
- errors.push({ path: "change_id", message: "Missing or empty change_id" });
145
- }
146
- if (!isNonEmptyString(plan.title)) {
147
- errors.push({ path: "title", message: "Missing or empty title" });
148
- }
149
- if (!isNonEmptyString(plan.created_at)) {
150
- errors.push({ path: "created_at", message: "Missing or empty created_at" });
151
- }
152
- if (!isNonEmptyString(plan.updated_at)) {
153
- errors.push({ path: "updated_at", message: "Missing or empty updated_at" });
154
- }
155
- if (!isString(plan.status) || !PLAN_STATUSES.has(plan.status)) {
156
- errors.push({
157
- path: "status",
158
- message: `Invalid status "${String(plan.status)}". Expected one of: ${[...PLAN_STATUSES].join(", ")}`,
159
- });
160
- }
161
- const currentTask = plan.current_task;
162
- if (currentTask !== null && !isString(currentTask)) {
163
- errors.push({
164
- path: "current_task",
165
- message: "current_task must be a task id string or null",
166
- });
167
- }
168
- if (!Array.isArray(plan.tasks)) {
169
- errors.push({ path: "tasks", message: "tasks must be an array" });
170
- return errors;
171
- }
172
- if (plan.tasks.length === 0) {
173
- errors.push({ path: "tasks", message: "Plan must contain at least one task" });
174
- return errors;
175
- }
176
- const knownIds = new Set();
177
- const validated = [];
178
- for (let i = 0; i < plan.tasks.length; i++) {
179
- const t = validateTask(plan.tasks[i], i, knownIds, errors);
180
- if (t)
181
- validated.push(t);
182
- }
183
- for (let i = 0; i < validated.length; i++) {
184
- const t = validated[i];
185
- for (let j = 0; j < t.depends_on.length; j++) {
186
- const dep = t.depends_on[j];
187
- if (!knownIds.has(dep)) {
188
- errors.push({
189
- path: `tasks[${i}].depends_on[${j}]`,
190
- message: `Unknown task id "${dep}"`,
191
- });
192
- }
193
- }
194
- }
195
- if (typeof currentTask === "string" && !knownIds.has(currentTask)) {
196
- errors.push({
197
- path: "current_task",
198
- message: `Unknown task id "${currentTask}"`,
199
- });
200
- }
201
- else if (typeof currentTask === "string" && knownIds.has(currentTask)) {
202
- const ct = validated.find((t) => t.id === currentTask);
203
- if (ct && ct.status !== "pending" && ct.status !== "in_progress") {
204
- errors.push({
205
- path: "current_task",
206
- message: `current_task "${currentTask}" must reference a task with status "pending" or "in_progress" (found "${ct.status}")`,
207
- });
208
- }
209
- }
210
- if (plan.status === "done" && currentTask !== null) {
211
- errors.push({
212
- path: "current_task",
213
- message: 'current_task must be null when plan status is "done"',
214
- });
215
- }
216
- const cycle = detectCycle(validated);
217
- if (cycle) {
218
- errors.push({
219
- path: "tasks",
220
- message: `Dependency cycle detected: ${cycle.join(" -> ")}`,
221
- });
222
- }
223
- return errors;
224
- }
225
- //# sourceMappingURL=plan-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-validator.js","sourceRoot":"","sources":["../../src/build/plan-validator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export interface BuildOptions {
2
- out?: string;
3
- }
4
- export declare function buildCommand(options?: BuildOptions): void;
5
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,IAAI,CA4C7D"}
@@ -1,46 +0,0 @@
1
- import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
2
- import path from "node:path";
3
- import { parse as parseYaml } from "yaml";
4
- import { assembleFromManifest } from "../build/assembler.js";
5
- import { validateManifest } from "../build/validator.js";
6
- export function buildCommand(options = {}) {
7
- const projectRoot = process.cwd();
8
- const sourcesDir = path.resolve(projectRoot, "sources");
9
- const outputRoot = options.out ? path.resolve(options.out) : projectRoot;
10
- const timestamp = new Date().toISOString();
11
- let totalFiles = 0;
12
- let totalErrors = 0;
13
- for (const kind of ["skills", "templates"]) {
14
- const baseDir = path.resolve(sourcesDir, kind);
15
- if (!existsSync(baseDir))
16
- continue;
17
- for (const entry of readdirSync(baseDir)) {
18
- const manifestPath = path.join(baseDir, entry, "manifest.yaml");
19
- if (!existsSync(manifestPath))
20
- continue;
21
- const errors = validateManifest(manifestPath, sourcesDir);
22
- if (errors.length > 0) {
23
- for (const err of errors) {
24
- console.error(`[ERROR] ${err.file}: ${err.message}`);
25
- }
26
- totalErrors += errors.length;
27
- continue;
28
- }
29
- const raw = readFileSync(manifestPath, "utf-8");
30
- const manifest = parseYaml(raw);
31
- const content = assembleFromManifest(manifestPath, {
32
- sourcesDir,
33
- timestamp,
34
- });
35
- const outPath = path.resolve(outputRoot, manifest.output);
36
- mkdirSync(path.dirname(outPath), { recursive: true });
37
- writeFileSync(outPath, content, "utf-8");
38
- console.log(`[OK] ${manifest.output}`);
39
- totalFiles++;
40
- }
41
- }
42
- console.log(`\nBuild complete: ${totalFiles} files generated, ${totalErrors} errors.`);
43
- if (totalErrors > 0)
44
- process.exit(1);
45
- }
46
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,MAAM,UAAU,YAAY,CAAC,UAAwB,EAAE;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAEzE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAU,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QAEnC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,SAAS;YAExC,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAa,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,oBAAoB,CAAC,YAAY,EAAE;gBACjD,UAAU;gBACV,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAEzC,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACvC,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,qBAAqB,WAAW,UAAU,CAAC,CAAC;IACvF,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC"}
@@ -1,16 +0,0 @@
1
- export interface MigrationResult {
2
- skipped: boolean;
3
- reason?: string;
4
- backup?: string;
5
- changes?: string[];
6
- }
7
- export declare function migrateManifests(projectRoot: string): MigrationResult;
8
- export declare function migratePaths(projectRoot: string): MigrationResult;
9
- export declare function migrateConfig(projectRoot: string): MigrationResult;
10
- export interface MigrateAllResult {
11
- manifests: MigrationResult;
12
- paths: MigrationResult;
13
- config: MigrationResult;
14
- }
15
- export declare function migrateAll(projectRoot: string): MigrateAllResult;
16
- //# sourceMappingURL=migrate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAeD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CA8CrE;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CA2BjE;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CA0ClE;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAMhE"}
@@ -1,118 +0,0 @@
1
- import { copyFileSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from "node:fs";
2
- import path from "node:path";
3
- import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
4
- function backupDir(projectRoot) {
5
- const dir = path.join(projectRoot, ".ai-agents/.backup");
6
- mkdirSync(dir, { recursive: true });
7
- return dir;
8
- }
9
- function backupFile(projectRoot, filePath, label) {
10
- const dir = backupDir(projectRoot);
11
- const dest = path.join(dir, `${label}-${Date.now()}.yaml`);
12
- copyFileSync(filePath, dest);
13
- return dest;
14
- }
15
- export function migrateManifests(projectRoot) {
16
- const manifestPath = path.join(projectRoot, ".ai-agents/knowledge/core/manifest.yaml");
17
- if (!existsSync(manifestPath)) {
18
- return { skipped: true, reason: "no core/manifest.yaml present" };
19
- }
20
- const raw = readFileSync(manifestPath, "utf-8");
21
- const old = parseYaml(raw);
22
- const hasLegacyType = old.type === "core";
23
- const hasLegacyField = "token_estimate" in old || "loading_strategy" in old;
24
- const filesArr = Array.isArray(old.files) ? old.files : [];
25
- const filesMissOrigin = filesArr.some((f) => !("origin" in f));
26
- if (!hasLegacyType && !hasLegacyField && !filesMissOrigin) {
27
- return { skipped: true, reason: "already migrated" };
28
- }
29
- const backup = backupFile(projectRoot, manifestPath, "core-manifest");
30
- const migrated = {
31
- id: typeof old.id === "string" ? old.id : "core",
32
- type: hasLegacyType ? "shared" : (old.type ?? "shared"),
33
- files: filesArr.map((f) => ({
34
- path: typeof f.path === "string" ? f.path : "",
35
- origin: typeof f.origin === "string" ? f.origin : "user",
36
- auto_load: typeof f.auto_load === "boolean"
37
- ? f.auto_load
38
- : typeof f.required === "boolean"
39
- ? f.required
40
- : true,
41
- })),
42
- };
43
- writeFileSync(manifestPath, stringifyYaml(migrated), "utf-8");
44
- const changes = [];
45
- if (hasLegacyType)
46
- changes.push("type: core -> shared");
47
- if (hasLegacyField)
48
- changes.push("removed token_estimate / loading_strategy");
49
- if (filesMissOrigin)
50
- changes.push("added origin: user to legacy entries");
51
- return { skipped: false, backup, changes };
52
- }
53
- export function migratePaths(projectRoot) {
54
- const oldPath = path.join(projectRoot, ".ai-agents/workspace/project-context.md");
55
- const newDir = path.join(projectRoot, ".ai-agents/knowledge/project/_generated");
56
- const newPath = path.join(newDir, "project-context.md");
57
- if (!existsSync(oldPath)) {
58
- return { skipped: true, reason: "no legacy workspace/project-context.md" };
59
- }
60
- if (existsSync(newPath)) {
61
- return {
62
- skipped: true,
63
- reason: "target already exists at knowledge/project/_generated/project-context.md",
64
- };
65
- }
66
- const backup = backupFile(projectRoot, oldPath, "project-context");
67
- mkdirSync(newDir, { recursive: true });
68
- renameSync(oldPath, newPath);
69
- return {
70
- skipped: false,
71
- backup,
72
- changes: [`moved workspace/project-context.md -> knowledge/project/_generated/project-context.md`],
73
- };
74
- }
75
- export function migrateConfig(projectRoot) {
76
- const configPath = path.join(projectRoot, ".ai-agents/config.yaml");
77
- if (!existsSync(configPath)) {
78
- return { skipped: true, reason: "no config.yaml" };
79
- }
80
- const raw = readFileSync(configPath, "utf-8");
81
- const config = parseYaml(raw);
82
- const prefs = config.preferences ?? {};
83
- const hasLegacy = typeof prefs.language === "string";
84
- const hasInteraction = typeof prefs.interaction_language === "string";
85
- const hasDocument = typeof prefs.document_output_language === "string";
86
- if (!hasLegacy && hasInteraction && hasDocument) {
87
- return { skipped: true, reason: "already migrated" };
88
- }
89
- if (!hasLegacy && !hasInteraction) {
90
- return { skipped: true, reason: "no language fields to migrate" };
91
- }
92
- const backup = backupFile(projectRoot, configPath, "config");
93
- const source = hasInteraction
94
- ? prefs.interaction_language
95
- : prefs.language;
96
- const newPrefs = { ...prefs };
97
- newPrefs.interaction_language = source;
98
- newPrefs.document_output_language = hasDocument
99
- ? prefs.document_output_language
100
- : source;
101
- delete newPrefs.language;
102
- const migrated = { ...config, preferences: newPrefs };
103
- writeFileSync(configPath, stringifyYaml(migrated), "utf-8");
104
- const changes = [];
105
- if (hasLegacy)
106
- changes.push(`language: ${prefs.language} -> interaction_language + document_output_language`);
107
- if (!hasDocument)
108
- changes.push("set document_output_language fallback");
109
- return { skipped: false, backup, changes };
110
- }
111
- export function migrateAll(projectRoot) {
112
- return {
113
- manifests: migrateManifests(projectRoot),
114
- paths: migratePaths(projectRoot),
115
- config: migrateConfig(projectRoot),
116
- };
117
- }
118
- //# sourceMappingURL=migrate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}