@graph-ir/core 0.2.0 → 0.2.2

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 (45) hide show
  1. package/README.md +14 -2
  2. package/dist/canonical-types-2.d.ts +207 -0
  3. package/dist/canonical-types-2.d.ts.map +1 -0
  4. package/dist/canonical-types-2.js +3 -0
  5. package/dist/canonical-types-2.js.map +1 -0
  6. package/dist/canonical-types.d.ts +332 -0
  7. package/dist/canonical-types.d.ts.map +1 -0
  8. package/dist/canonical-types.js +3 -0
  9. package/dist/canonical-types.js.map +1 -0
  10. package/dist/generation/id-generator.d.ts.map +1 -1
  11. package/dist/generation/id-generator.js +16 -10
  12. package/dist/generation/id-generator.js.map +1 -1
  13. package/dist/index.d.ts +2 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/output/types.d.ts.map +1 -1
  18. package/dist/schemas/graph-ir-2.0.schema.json +416 -0
  19. package/dist/schemas/graph-ir.schema.json +1684 -228
  20. package/dist/skills/diff.d.ts +4 -0
  21. package/dist/skills/diff.d.ts.map +1 -1
  22. package/dist/skills/diff.js +93 -11
  23. package/dist/skills/diff.js.map +1 -1
  24. package/dist/skills/migrate.d.ts +48 -19
  25. package/dist/skills/migrate.d.ts.map +1 -1
  26. package/dist/skills/migrate.js +482 -239
  27. package/dist/skills/migrate.js.map +1 -1
  28. package/dist/skills/visualize.d.ts.map +1 -1
  29. package/dist/skills/visualize.js +33 -5
  30. package/dist/skills/visualize.js.map +1 -1
  31. package/dist/testing/diff.d.ts +1 -1
  32. package/dist/testing/diff.d.ts.map +1 -1
  33. package/dist/testing/diff.js +52 -19
  34. package/dist/testing/diff.js.map +1 -1
  35. package/dist/types.d.ts +13 -214
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/types.js +3 -2
  38. package/dist/types.js.map +1 -1
  39. package/dist/validation/ir-validator.d.ts +35 -44
  40. package/dist/validation/ir-validator.d.ts.map +1 -1
  41. package/dist/validation/ir-validator.js +735 -288
  42. package/dist/validation/ir-validator.js.map +1 -1
  43. package/dist/validation/validator.d.ts.map +1 -1
  44. package/package.json +9 -4
  45. package/specification.json +13 -0
@@ -15,6 +15,7 @@ export interface DiffOptions {
15
15
  export interface DiffResult {
16
16
  success: boolean;
17
17
  changes: {
18
+ graph: FieldChange[];
18
19
  nodes: {
19
20
  added: NodeChange[];
20
21
  removed: NodeChange[];
@@ -27,6 +28,9 @@ export interface DiffResult {
27
28
  };
28
29
  };
29
30
  summary: {
31
+ graph: {
32
+ modified: number;
33
+ };
30
34
  nodes: {
31
35
  added: number;
32
36
  modified: number;
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/skills/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAwB,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,mCAAmC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE;YACL,KAAK,EAAE,UAAU,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,CAAC;YACtB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;SAC9B,CAAC;QACF,KAAK,EAAE;YACL,KAAK,EAAE,UAAU,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,CAAC;YACtB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;SAC9B,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5D,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;CACb;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAID;;GAEG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,WAAgB,GACxB,UAAU,CA8IZ"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/skills/diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,oBAAoB;IACpB,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,mCAAmC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,KAAK,EAAE;YACL,KAAK,EAAE,UAAU,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,CAAC;YACtB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;SAC9B,CAAC;QACF,KAAK,EAAE;YACL,KAAK,EAAE,UAAU,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,CAAC;YACtB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;SAC9B,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5B,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5D,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;CACb;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAID;;GAEG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,WAAgB,GACxB,UAAU,CA+JZ"}
@@ -3,17 +3,19 @@
3
3
  *
4
4
  * Compare two Graph-IR files and display semantic differences.
5
5
  */
6
- const DEFAULT_IGNORE = ['sourceInfo', 'position'];
7
6
  /**
8
7
  * Compare two Graph-IR objects
9
8
  */
10
9
  export function diffIR(base, target, options = {}) {
11
- const ignore = new Set([...DEFAULT_IGNORE, ...(options.ignore || [])]);
10
+ const ignore = new Set(options.ignore || []);
12
11
  const format = options.format || 'pretty';
13
12
  try {
13
+ const baseGraph = graphFields(base);
14
+ const targetGraph = graphFields(target);
15
+ const graphModified = compareObjects(baseGraph, targetGraph, ignore, '', 'graph');
14
16
  // Index nodes and edges by ID
15
- const baseNodes = new Map(base.nodes.map((n) => [n.id, n]));
16
- const targetNodes = new Map(target.nodes.map((n) => [n.id, n]));
17
+ const baseNodes = indexNodes(base.nodes);
18
+ const targetNodes = indexNodes(target.nodes);
17
19
  const baseEdges = new Map(base.edges.map((e) => [e.id, e]));
18
20
  const targetEdges = new Map(target.edges.map((e) => [e.id, e]));
19
21
  // Find node changes
@@ -36,7 +38,7 @@ export function diffIR(base, target, options = {}) {
36
38
  for (const [id, baseNode] of baseNodes) {
37
39
  const targetNode = targetNodes.get(id);
38
40
  if (targetNode) {
39
- const changes = compareObjects(baseNode, targetNode, ignore);
41
+ const changes = compareObjects(baseNode, targetNode, ignore, '', 'node');
40
42
  if (changes.length > 0) {
41
43
  nodesModified.push({ id, changes });
42
44
  }
@@ -72,17 +74,19 @@ export function diffIR(base, target, options = {}) {
72
74
  for (const [id, baseEdge] of baseEdges) {
73
75
  const targetEdge = targetEdges.get(id);
74
76
  if (targetEdge) {
75
- const changes = compareObjects(baseEdge, targetEdge, ignore);
77
+ const changes = compareObjects(baseEdge, targetEdge, ignore, '', 'edge');
76
78
  if (changes.length > 0) {
77
79
  edgesModified.push({ id, changes });
78
80
  }
79
81
  }
80
82
  }
81
83
  const changes = {
84
+ graph: graphModified,
82
85
  nodes: { added: nodesAdded, removed: nodesRemoved, modified: nodesModified },
83
86
  edges: { added: edgesAdded, removed: edgesRemoved, modified: edgesModified },
84
87
  };
85
88
  const summary = {
89
+ graph: { modified: graphModified.length },
86
90
  nodes: {
87
91
  added: nodesAdded.length,
88
92
  modified: nodesModified.length,
@@ -119,10 +123,12 @@ export function diffIR(base, target, options = {}) {
119
123
  return {
120
124
  success: false,
121
125
  changes: {
126
+ graph: [],
122
127
  nodes: { added: [], removed: [], modified: [] },
123
128
  edges: { added: [], removed: [], modified: [] },
124
129
  },
125
130
  summary: {
131
+ graph: { modified: 0 },
126
132
  nodes: { added: 0, modified: 0, removed: 0 },
127
133
  edges: { added: 0, modified: 0, removed: 0 },
128
134
  },
@@ -131,14 +137,33 @@ export function diffIR(base, target, options = {}) {
131
137
  };
132
138
  }
133
139
  }
140
+ function graphFields(graph) {
141
+ const result = { ...graph };
142
+ delete result.nodes;
143
+ delete result.edges;
144
+ return result;
145
+ }
146
+ function indexNodes(nodes) {
147
+ const result = new Map();
148
+ const visit = (values) => {
149
+ for (const node of values) {
150
+ result.set(node.id, node);
151
+ if (node.children)
152
+ visit(node.children);
153
+ }
154
+ };
155
+ visit(nodes);
156
+ return result;
157
+ }
134
158
  /**
135
159
  * Deep compare two objects and return field changes
136
160
  */
137
- function compareObjects(base, target, ignore, prefix = '') {
161
+ function compareObjects(base, target, ignore, prefix = '', recordKind = 'none') {
138
162
  const changes = [];
139
163
  const allKeys = new Set([...Object.keys(base), ...Object.keys(target)]);
140
164
  for (const key of allKeys) {
141
- if (ignore.has(key))
165
+ if (ignore.has(key) ||
166
+ (recordKind !== 'none' && recordKind !== 'graph' && key === 'sourceInfo'))
142
167
  continue;
143
168
  const path = prefix ? `${prefix}.${key}` : key;
144
169
  const baseVal = base[key];
@@ -155,13 +180,27 @@ function compareObjects(base, target, ignore, prefix = '') {
155
180
  changes.push({ path, from: baseVal, to: targetVal });
156
181
  }
157
182
  }
183
+ else if (Array.isArray(baseVal) !== Array.isArray(targetVal)) {
184
+ changes.push({ path, from: baseVal, to: targetVal });
185
+ }
158
186
  else if (Array.isArray(baseVal) && Array.isArray(targetVal)) {
159
- if (JSON.stringify(baseVal) !== JSON.stringify(targetVal)) {
160
- changes.push({ path, from: baseVal, to: targetVal });
187
+ const itemRecordKind = canonicalArrayItemKind(recordKind, key);
188
+ const maxLength = Math.max(baseVal.length, targetVal.length);
189
+ for (let index = 0; index < maxLength; index += 1) {
190
+ const itemPath = `${path}[${index}]`;
191
+ if (index >= baseVal.length) {
192
+ changes.push({ path: itemPath, from: undefined, to: targetVal[index] });
193
+ }
194
+ else if (index >= targetVal.length) {
195
+ changes.push({ path: itemPath, from: baseVal[index], to: undefined });
196
+ }
197
+ else {
198
+ changes.push(...compareValues(baseVal[index], targetVal[index], ignore, itemPath, itemRecordKind));
199
+ }
161
200
  }
162
201
  }
163
202
  else {
164
- const nested = compareObjects(baseVal, targetVal, ignore, path);
203
+ const nested = compareObjects(baseVal, targetVal, ignore, path, 'none');
165
204
  changes.push(...nested);
166
205
  }
167
206
  }
@@ -171,9 +210,34 @@ function compareObjects(base, target, ignore, prefix = '') {
171
210
  }
172
211
  return changes;
173
212
  }
213
+ function canonicalArrayItemKind(owner, key) {
214
+ if (owner === 'graph' && key === 'constraints')
215
+ return 'constraint';
216
+ if (owner === 'node' && key === 'children')
217
+ return 'node';
218
+ return 'none';
219
+ }
220
+ function compareValues(base, target, ignore, path, recordKind = 'none') {
221
+ if (base === target)
222
+ return [];
223
+ if (base !== null && target !== null &&
224
+ typeof base === 'object' && typeof target === 'object' &&
225
+ !Array.isArray(base) && !Array.isArray(target)) {
226
+ return compareObjects(base, target, ignore, path, recordKind);
227
+ }
228
+ if (Array.isArray(base) && Array.isArray(target)) {
229
+ const wrapperChanges = compareObjects({ value: base }, { value: target }, ignore, path);
230
+ return wrapperChanges.map((change) => ({
231
+ ...change,
232
+ path: change.path.replace(`${path}.value`, path),
233
+ }));
234
+ }
235
+ return [{ path, from: base, to: target }];
236
+ }
174
237
  function formatStatsOnly(summary, baseCount, targetCount) {
175
238
  const lines = [];
176
239
  const { nodes, edges } = summary;
240
+ lines.push(`Graph fields: ${summary.graph.modified} changed`);
177
241
  lines.push(`Nodes: +${nodes.added} added, ${nodes.modified} modified, -${nodes.removed} removed (${baseCount} → ${targetCount})`);
178
242
  lines.push(`Edges: +${edges.added} added, ${edges.modified} modified, -${edges.removed} removed`);
179
243
  return lines.join('\n');
@@ -183,6 +247,14 @@ function formatPretty(changes, summary) {
183
247
  lines.push('Graph-IR Diff');
184
248
  lines.push('═'.repeat(40));
185
249
  lines.push('');
250
+ lines.push('GRAPH');
251
+ lines.push('─'.repeat(20));
252
+ if (changes.graph.length === 0)
253
+ lines.push('(no changes)');
254
+ for (const change of changes.graph) {
255
+ lines.push(`~ ${change.path}: ${JSON.stringify(change.from)} → ${JSON.stringify(change.to)}`);
256
+ }
257
+ lines.push('');
186
258
  // Nodes section
187
259
  lines.push('NODES');
188
260
  lines.push('─'.repeat(20));
@@ -260,6 +332,16 @@ function formatMarkdown(changes, summary) {
260
332
  const lines = [];
261
333
  lines.push('## Graph-IR Changes');
262
334
  lines.push('');
335
+ lines.push('### Graph fields');
336
+ lines.push('');
337
+ if (changes.graph.length === 0) {
338
+ lines.push('_No changes_');
339
+ }
340
+ else {
341
+ for (const change of changes.graph)
342
+ lines.push(`- \`${change.path}\` changed`);
343
+ }
344
+ lines.push('');
263
345
  // Nodes table
264
346
  lines.push('### Nodes');
265
347
  lines.push('');
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/skills/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/skills/diff.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,60 @@
1
- /**
2
- * IR Migrate Skill
3
- *
4
- * Migrate Graph-IR files between schema versions.
5
- */
6
- import type { GraphIR } from '@graph-ir/core';
1
+ import type { GraphIR, GraphIR2 } from '../types.js';
2
+ export interface GraphIR2To3MigrationOptions {
3
+ dryRun?: boolean;
4
+ }
5
+ export interface MigrationDiagnostic {
6
+ severity: 'error' | 'warning' | 'info';
7
+ code: string;
8
+ path: string;
9
+ message: string;
10
+ }
11
+ export interface GraphIR2To3MigrationChange {
12
+ code: string;
13
+ path: string;
14
+ message: string;
15
+ sourcePath?: string;
16
+ value?: unknown;
17
+ }
18
+ export interface GraphIR2To3MigrationLoss {
19
+ code: string;
20
+ path: string;
21
+ message: string;
22
+ value?: unknown;
23
+ }
24
+ export interface GraphIR2To3MigrationResult {
25
+ success: boolean;
26
+ migrated: GraphIR | null;
27
+ fromVersion: '2.0.0';
28
+ toVersion: '3.0.0';
29
+ changes: GraphIR2To3MigrationChange[];
30
+ losses: GraphIR2To3MigrationLoss[];
31
+ diagnostics: MigrationDiagnostic[];
32
+ errors: string[];
33
+ warnings: string[];
34
+ }
35
+ export declare function migrateGraphIR2To3(input: unknown, options?: GraphIR2To3MigrationOptions): GraphIR2To3MigrationResult;
7
36
  export interface MigrationOptions {
8
- /** Source version (auto-detect if not specified) */
9
37
  fromVersion?: string;
10
- /** Target version (latest if not specified) */
11
38
  toVersion?: string;
12
- /** Show what would change without modifying */
13
39
  dryRun?: boolean;
14
- /** Force migration even if validation fails */
15
- force?: boolean;
40
+ /**
41
+ * Ambiguous 1.x geometry cannot become authored 2.0 meaning automatically.
42
+ * 'drop' is an explicit producer decision to remove it with loss records.
43
+ */
44
+ ambiguousGeometry?: 'error' | 'drop';
45
+ }
46
+ export interface MigrationLoss {
47
+ path: string;
48
+ field: 'position' | 'pinned' | 'dimensions' | 'routingPoints' | 'algorithmOptions';
49
+ reason: string;
16
50
  }
17
51
  export interface MigrationResult {
18
52
  success: boolean;
19
- migrated: GraphIR | null;
53
+ migrated: GraphIR2 | null;
20
54
  fromVersion: string;
21
55
  toVersion: string;
22
56
  changes: MigrationChange[];
57
+ losses: MigrationLoss[];
23
58
  errors: string[];
24
59
  warnings: string[];
25
60
  }
@@ -29,12 +64,6 @@ export interface MigrationChange {
29
64
  description: string;
30
65
  value?: unknown;
31
66
  }
32
- /**
33
- * Migrate a Graph-IR to the target version
34
- */
35
- export declare function migrateIR(ir: unknown, options?: MigrationOptions): MigrationResult;
36
- /**
37
- * Format migration result for display
38
- */
67
+ export declare function migrateIR(input: unknown, options?: MigrationOptions): MigrationResult;
39
68
  export declare function formatMigrationResult(result: MigrationResult, dryRun: boolean): string;
40
69
  //# sourceMappingURL=migrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/skills/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA6GD;;GAEG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,OAAO,EACX,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CAsFjB;AA4ED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CA6CtF"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/skills/migrate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAWrD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,MAAM,EAAE,wBAAwB,EAAE,CAAC;IACnC,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,2BAAgC,GACxC,0BAA0B,CAqN5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,eAAe,GAAG,kBAAkB,CAAC;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CAmFjB;AA+OD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAatF"}