@graph-ir/core 0.2.0 → 0.2.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.
Files changed (40) hide show
  1. package/README.md +15 -2
  2. package/dist/canonical-types.d.ts +207 -0
  3. package/dist/canonical-types.d.ts.map +1 -0
  4. package/dist/canonical-types.js +3 -0
  5. package/dist/canonical-types.js.map +1 -0
  6. package/dist/generation/id-generator.d.ts.map +1 -1
  7. package/dist/generation/id-generator.js +16 -10
  8. package/dist/generation/id-generator.js.map +1 -1
  9. package/dist/index.d.ts +2 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/output/types.d.ts.map +1 -1
  14. package/dist/schemas/graph-ir.schema.json +327 -271
  15. package/dist/skills/diff.d.ts +4 -0
  16. package/dist/skills/diff.d.ts.map +1 -1
  17. package/dist/skills/diff.js +93 -11
  18. package/dist/skills/diff.js.map +1 -1
  19. package/dist/skills/migrate.d.ts +13 -18
  20. package/dist/skills/migrate.d.ts.map +1 -1
  21. package/dist/skills/migrate.js +224 -247
  22. package/dist/skills/migrate.js.map +1 -1
  23. package/dist/skills/visualize.d.ts.map +1 -1
  24. package/dist/skills/visualize.js +29 -5
  25. package/dist/skills/visualize.js.map +1 -1
  26. package/dist/testing/diff.d.ts +1 -1
  27. package/dist/testing/diff.d.ts.map +1 -1
  28. package/dist/testing/diff.js +23 -19
  29. package/dist/testing/diff.js.map +1 -1
  30. package/dist/types.d.ts +12 -214
  31. package/dist/types.d.ts.map +1 -1
  32. package/dist/types.js +3 -2
  33. package/dist/types.js.map +1 -1
  34. package/dist/validation/ir-validator.d.ts +27 -44
  35. package/dist/validation/ir-validator.d.ts.map +1 -1
  36. package/dist/validation/ir-validator.js +481 -294
  37. package/dist/validation/ir-validator.js.map +1 -1
  38. package/dist/validation/validator.d.ts.map +1 -1
  39. package/package.json +9 -4
  40. package/specification.json +9 -0
@@ -1,287 +1,264 @@
1
- /**
2
- * IR Migrate Skill
3
- *
4
- * Migrate Graph-IR files between schema versions.
5
- */
6
- // Current schema version
7
- const CURRENT_VERSION = '1.0.0';
8
- // Define migrations between versions
9
- const MIGRATIONS = [
10
- // Example: 0.9.0 -> 1.0.0
11
- {
12
- fromVersion: '0.9.0',
13
- toVersion: '1.0.0',
14
- changes: [
15
- {
16
- type: 'rename',
17
- path: 'nodes[*].props',
18
- description: 'Rename "props" to "properties"',
19
- },
20
- {
21
- type: 'rename',
22
- path: 'edges[*].from',
23
- description: 'Rename "from" to "source"',
24
- },
25
- {
26
- type: 'rename',
27
- path: 'edges[*].to',
28
- description: 'Rename "to" to "target"',
29
- },
30
- {
31
- type: 'add',
32
- path: 'edges[*].id',
33
- description: 'Add required edge IDs',
34
- },
35
- ],
36
- migrate: (ir) => {
37
- const result = { ...ir };
38
- // Rename node props -> properties
39
- if (Array.isArray(result.nodes)) {
40
- result.nodes = result.nodes.map((node, index) => {
41
- const newNode = { ...node };
42
- if ('props' in newNode) {
43
- newNode.properties = newNode.props;
44
- delete newNode.props;
45
- }
46
- return newNode;
47
- });
48
- }
49
- // Rename edge from/to -> source/target and add IDs
50
- if (Array.isArray(result.edges)) {
51
- result.edges = result.edges.map((edge, index) => {
52
- const newEdge = { ...edge };
53
- if ('from' in newEdge) {
54
- newEdge.source = newEdge.from;
55
- delete newEdge.from;
56
- }
57
- if ('to' in newEdge) {
58
- newEdge.target = newEdge.to;
59
- delete newEdge.to;
60
- }
61
- if (!('id' in newEdge)) {
62
- newEdge.id = `e${index + 1}`;
63
- }
64
- return newEdge;
65
- });
66
- }
67
- result.version = '1.0.0';
68
- return result;
69
- },
70
- },
71
- // Example: 0.8.0 -> 0.9.0
72
- {
73
- fromVersion: '0.8.0',
74
- toVersion: '0.9.0',
75
- changes: [
76
- {
77
- type: 'add',
78
- path: 'version',
79
- description: 'Add required version field',
80
- value: '0.9.0',
81
- },
82
- {
83
- type: 'add',
84
- path: 'id',
85
- description: 'Add required graph ID',
86
- },
87
- ],
88
- migrate: (ir) => {
89
- const result = { ...ir };
90
- if (!result.version) {
91
- result.version = '0.9.0';
92
- }
93
- if (!result.id) {
94
- result.id = 'migrated-graph';
95
- }
96
- return result;
97
- },
98
- },
99
- ];
100
- /**
101
- * Migrate a Graph-IR to the target version
102
- */
103
- export function migrateIR(ir, options = {}) {
104
- const errors = [];
105
- const warnings = [];
106
- const allChanges = [];
107
- // Detect source version
108
- const fromVersion = options.fromVersion || detectVersion(ir);
109
- const toVersion = options.toVersion || CURRENT_VERSION;
110
- if (!fromVersion) {
111
- return {
112
- success: false,
113
- migrated: null,
114
- fromVersion: 'unknown',
115
- toVersion,
116
- changes: [],
117
- errors: ['Could not detect source version. Please specify --from <version>'],
118
- warnings: [],
119
- };
1
+ import { validateIR } from '../validation/validator.js';
2
+ const CURRENT_VERSION = '2.0.0';
3
+ export function migrateIR(input, options = {}) {
4
+ const fromVersion = options.fromVersion ?? detectVersion(input);
5
+ const toVersion = options.toVersion ?? CURRENT_VERSION;
6
+ if (!fromVersion || !isRecord(input)) {
7
+ return failure(fromVersion ?? 'unknown', toVersion, ['Could not detect source version. Specify fromVersion explicitly.']);
120
8
  }
121
- // Already at target version?
122
- if (fromVersion === toVersion) {
9
+ if (toVersion !== CURRENT_VERSION) {
10
+ return failure(fromVersion, toVersion, [`Unsupported migration target ${toVersion}`]);
11
+ }
12
+ if (fromVersion === CURRENT_VERSION) {
13
+ const candidate = structuredClone(input);
14
+ const validationErrors = validateMigrationCandidate(candidate);
15
+ if (validationErrors.length > 0) {
16
+ return invalidCandidate(fromVersion, toVersion, [], [], validationErrors);
17
+ }
123
18
  return {
124
19
  success: true,
125
- migrated: ir,
20
+ migrated: options.dryRun ? null : candidate,
126
21
  fromVersion,
127
22
  toVersion,
128
23
  changes: [],
24
+ losses: [],
129
25
  errors: [],
130
26
  warnings: ['Already at target version'],
131
27
  };
132
28
  }
133
- // Build migration path
134
- const path = buildMigrationPath(fromVersion, toVersion);
135
- if (path.length === 0) {
29
+ let working = structuredClone(input);
30
+ const changes = [];
31
+ if (fromVersion === '0.8.0' || fromVersion === '0.9.0') {
32
+ working = normalizeLegacyToOne(working, changes);
33
+ }
34
+ else if (fromVersion !== '1.0.0') {
35
+ return failure(fromVersion, toVersion, [`No migration path from ${fromVersion}`]);
36
+ }
37
+ const losses = collectAmbiguousLosses(working);
38
+ if (losses.length > 0 && (options.ambiguousGeometry ?? 'error') === 'error') {
136
39
  return {
137
40
  success: false,
138
41
  migrated: null,
139
42
  fromVersion,
140
43
  toVersion,
141
- changes: [],
142
- errors: [`No migration path found from ${fromVersion} to ${toVersion}`],
44
+ changes,
45
+ losses,
46
+ errors: [
47
+ 'Schema 1.x geometry has ambiguous provenance; choose ambiguousGeometry="drop" or migrate with producer-owned provenance.',
48
+ ],
143
49
  warnings: [],
144
50
  };
145
51
  }
146
- // Apply migrations
147
- let current = ir;
148
- for (const migration of path) {
149
- allChanges.push(...migration.changes);
150
- if (!options.dryRun) {
151
- try {
152
- current = migration.migrate(current);
153
- }
154
- catch (e) {
155
- const errorMsg = e instanceof Error ? e.message : 'Unknown migration error';
156
- if (options.force) {
157
- warnings.push(`Migration ${migration.fromVersion} ${migration.toVersion} failed: ${errorMsg}`);
158
- }
159
- else {
160
- return {
161
- success: false,
162
- migrated: null,
163
- fromVersion,
164
- toVersion,
165
- changes: allChanges,
166
- errors: [`Migration failed at ${migration.fromVersion} → ${migration.toVersion}: ${errorMsg}`],
167
- warnings,
168
- };
169
- }
170
- }
171
- }
52
+ if (losses.length > 0) {
53
+ removeAmbiguousGeometry(working, changes);
54
+ }
55
+ promoteEdgeDescriptions(working, changes);
56
+ working.version = CURRENT_VERSION;
57
+ changes.push({
58
+ type: 'transform',
59
+ path: '/version',
60
+ description: 'Set serialized schema version to 2.0.0',
61
+ value: CURRENT_VERSION,
62
+ });
63
+ const candidate = working;
64
+ const validationErrors = validateMigrationCandidate(candidate);
65
+ if (validationErrors.length > 0) {
66
+ return invalidCandidate(fromVersion, toVersion, changes, losses, validationErrors);
172
67
  }
173
68
  return {
174
69
  success: true,
175
- migrated: options.dryRun ? null : current,
70
+ migrated: options.dryRun ? null : candidate,
176
71
  fromVersion,
177
72
  toVersion,
178
- changes: allChanges,
179
- errors,
180
- warnings,
73
+ changes,
74
+ losses,
75
+ errors: [],
76
+ warnings: losses.map((loss) => `Dropped ambiguous ${loss.field} at ${loss.path}`),
181
77
  };
182
78
  }
183
- /**
184
- * Detect the version of a Graph-IR object
185
- */
186
- function detectVersion(ir) {
187
- if (!ir || typeof ir !== 'object') {
188
- return null;
79
+ function validateMigrationCandidate(candidate) {
80
+ const result = validateIR(candidate);
81
+ return result.errors.map((error) => `${error.code} ${error.path || '/'}: ${error.message}`);
82
+ }
83
+ function invalidCandidate(fromVersion, toVersion, changes, losses, errors) {
84
+ return {
85
+ success: false,
86
+ migrated: null,
87
+ fromVersion,
88
+ toVersion,
89
+ changes,
90
+ losses,
91
+ errors: ['Migrated candidate is not valid GraphIR 2.0.0', ...errors],
92
+ warnings: losses.map((loss) => `Would drop ambiguous ${loss.field} at ${loss.path}`),
93
+ };
94
+ }
95
+ function normalizeLegacyToOne(input, changes) {
96
+ const result = { ...input };
97
+ if (!result.id) {
98
+ result.id = 'migrated-graph';
99
+ changes.push({ type: 'add', path: '/id', description: 'Add graph ID' });
189
100
  }
190
- const obj = ir;
191
- // Check explicit version field
192
- if (typeof obj.version === 'string') {
193
- return obj.version;
101
+ if (Array.isArray(result.nodes)) {
102
+ result.nodes = result.nodes.map((value) => {
103
+ if (!isRecord(value))
104
+ return value;
105
+ const node = { ...value };
106
+ if ('props' in node && !('properties' in node)) {
107
+ node.properties = node.props;
108
+ delete node.props;
109
+ changes.push({ type: 'rename', path: '/nodes/*/props', description: 'Rename props to properties' });
110
+ }
111
+ return node;
112
+ });
194
113
  }
195
- // Infer version from structure
196
- if (Array.isArray(obj.nodes) && obj.nodes.length > 0) {
197
- const firstNode = obj.nodes[0];
198
- // v0.9.0: has 'props' instead of 'properties'
199
- if ('props' in firstNode && !('properties' in firstNode)) {
200
- return '0.9.0';
201
- }
114
+ if (Array.isArray(result.edges)) {
115
+ result.edges = result.edges.map((value, index) => {
116
+ if (!isRecord(value))
117
+ return value;
118
+ const edge = { ...value };
119
+ if ('from' in edge && !('source' in edge)) {
120
+ edge.source = edge.from;
121
+ delete edge.from;
122
+ }
123
+ if ('to' in edge && !('target' in edge)) {
124
+ edge.target = edge.to;
125
+ delete edge.to;
126
+ }
127
+ if (!edge.id)
128
+ edge.id = `e${index + 1}`;
129
+ return edge;
130
+ });
131
+ changes.push({ type: 'transform', path: '/edges', description: 'Normalize legacy edge fields and IDs' });
202
132
  }
203
- if (Array.isArray(obj.edges) && obj.edges.length > 0) {
204
- const firstEdge = obj.edges[0];
205
- // v0.9.0: has 'from'/'to' instead of 'source'/'target'
206
- if (('from' in firstEdge || 'to' in firstEdge) &&
207
- !('source' in firstEdge || 'target' in firstEdge)) {
208
- return '0.9.0';
133
+ result.version = '1.0.0';
134
+ return result;
135
+ }
136
+ function collectAmbiguousLosses(input) {
137
+ const losses = [];
138
+ visitNodes(input.nodes, '/nodes', (node, path) => {
139
+ for (const field of ['position', 'pinned', 'dimensions']) {
140
+ if (field in node) {
141
+ losses.push({
142
+ path: `${path}/${field}`,
143
+ field,
144
+ reason: `Schema 1.x ${field} did not distinguish authored and computed geometry`,
145
+ });
146
+ }
209
147
  }
148
+ });
149
+ if (Array.isArray(input.edges)) {
150
+ input.edges.forEach((value, index) => {
151
+ if (isRecord(value) && 'routingPoints' in value) {
152
+ losses.push({
153
+ path: `/edges/${index}/routingPoints`,
154
+ field: 'routingPoints',
155
+ reason: 'Schema 1.x routing points did not distinguish authored waypoints and generated bends',
156
+ });
157
+ }
158
+ });
210
159
  }
211
- // No version field but has modern structure
212
- if (!obj.version && obj.id && Array.isArray(obj.nodes) && Array.isArray(obj.edges)) {
213
- // Could be 1.0.0 without version field
214
- return '1.0.0';
215
- }
216
- // Very old version without id field
217
- if (!obj.id && !obj.version) {
218
- return '0.8.0';
160
+ if (isRecord(input.layoutOptions) && 'algorithmOptions' in input.layoutOptions) {
161
+ losses.push({
162
+ path: '/layoutOptions/algorithmOptions',
163
+ field: 'algorithmOptions',
164
+ reason: 'Raw engine options are not portable authored GraphIR 2.0',
165
+ });
219
166
  }
220
- return null;
167
+ return losses;
221
168
  }
222
- /**
223
- * Build the migration path from source to target version
224
- */
225
- function buildMigrationPath(from, to) {
226
- const path = [];
227
- let current = from;
228
- // Simple linear search - could be optimized with graph traversal
229
- while (current !== to) {
230
- const migration = MIGRATIONS.find((m) => m.fromVersion === current);
231
- if (!migration) {
232
- break;
169
+ function removeAmbiguousGeometry(input, changes) {
170
+ visitNodes(input.nodes, '/nodes', (node, path) => {
171
+ for (const field of ['position', 'pinned', 'dimensions']) {
172
+ if (field in node) {
173
+ delete node[field];
174
+ changes.push({ type: 'remove', path: `${path}/${field}`, description: `Drop ambiguous ${field}` });
175
+ }
233
176
  }
234
- path.push(migration);
235
- current = migration.toVersion;
177
+ });
178
+ if (Array.isArray(input.edges)) {
179
+ input.edges.forEach((value, index) => {
180
+ if (isRecord(value) && 'routingPoints' in value) {
181
+ delete value.routingPoints;
182
+ changes.push({ type: 'remove', path: `/edges/${index}/routingPoints`, description: 'Drop ambiguous routing points' });
183
+ }
184
+ });
236
185
  }
237
- // Verify we reached target
238
- if (current !== to) {
239
- return [];
186
+ if (isRecord(input.layoutOptions) && 'algorithmOptions' in input.layoutOptions) {
187
+ delete input.layoutOptions.algorithmOptions;
188
+ changes.push({ type: 'remove', path: '/layoutOptions/algorithmOptions', description: 'Drop non-portable engine options' });
240
189
  }
241
- return path;
242
190
  }
243
- /**
244
- * Format migration result for display
245
- */
191
+ function promoteEdgeDescriptions(input, changes) {
192
+ if (!Array.isArray(input.edges))
193
+ return;
194
+ input.edges.forEach((value, index) => {
195
+ if (!isRecord(value) || value.description !== undefined || !isRecord(value.properties))
196
+ return;
197
+ if (typeof value.properties.description !== 'string')
198
+ return;
199
+ value.description = value.properties.description;
200
+ delete value.properties.description;
201
+ if (Object.keys(value.properties).length === 0)
202
+ delete value.properties;
203
+ changes.push({
204
+ type: 'transform',
205
+ path: `/edges/${index}/description`,
206
+ description: 'Promote unambiguous properties.description',
207
+ });
208
+ });
209
+ }
210
+ function visitNodes(value, path, visit) {
211
+ if (!Array.isArray(value))
212
+ return;
213
+ value.forEach((candidate, index) => {
214
+ if (!isRecord(candidate))
215
+ return;
216
+ const nodePath = `${path}/${index}`;
217
+ visit(candidate, nodePath);
218
+ visitNodes(candidate.children, `${nodePath}/children`, visit);
219
+ });
220
+ }
221
+ function detectVersion(input) {
222
+ if (!isRecord(input))
223
+ return null;
224
+ if (typeof input.version === 'string')
225
+ return input.version;
226
+ if (!input.id)
227
+ return '0.8.0';
228
+ if (Array.isArray(input.nodes) || Array.isArray(input.edges))
229
+ return '0.9.0';
230
+ return null;
231
+ }
232
+ function isRecord(value) {
233
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
234
+ }
235
+ function failure(fromVersion, toVersion, errors) {
236
+ return {
237
+ success: false,
238
+ migrated: null,
239
+ fromVersion,
240
+ toVersion,
241
+ changes: [],
242
+ losses: [],
243
+ errors,
244
+ warnings: [],
245
+ };
246
+ }
246
247
  export function formatMigrationResult(result, dryRun) {
247
- const lines = [];
248
- if (dryRun) {
249
- lines.push('Migration Plan (Dry Run)');
250
- }
251
- else {
252
- lines.push('Migration Result');
253
- }
254
- lines.push('═'.repeat(40));
255
- lines.push(`Version: ${result.fromVersion} ${result.toVersion}`);
256
- lines.push('');
257
- if (result.changes.length === 0) {
258
- lines.push('No changes needed');
259
- }
260
- else {
261
- lines.push(`Changes (${result.changes.length}):`);
262
- for (const change of result.changes) {
263
- const icon = change.type === 'add' ? '+' :
264
- change.type === 'remove' ? '-' :
265
- change.type === 'rename' ? '~' : '→';
266
- lines.push(` ${icon} ${change.description}`);
267
- lines.push(` Path: ${change.path}`);
268
- }
269
- }
270
- if (result.warnings.length > 0) {
271
- lines.push('');
272
- lines.push('Warnings:');
273
- for (const warning of result.warnings) {
274
- lines.push(` ⚠ ${warning}`);
275
- }
276
- }
277
- if (result.errors.length > 0) {
278
- lines.push('');
279
- lines.push('Errors:');
280
- for (const error of result.errors) {
281
- lines.push(` ✗ ${error}`);
282
- }
283
- }
284
- lines.push('');
248
+ const lines = [
249
+ dryRun ? 'Migration Plan (Dry Run)' : 'Migration Result',
250
+ '═'.repeat(40),
251
+ `Version: ${result.fromVersion} → ${result.toVersion}`,
252
+ '',
253
+ ];
254
+ for (const change of result.changes)
255
+ lines.push(` ${change.type}: ${change.path} — ${change.description}`);
256
+ for (const loss of result.losses)
257
+ lines.push(` loss: ${loss.path} — ${loss.reason}`);
258
+ for (const warning of result.warnings)
259
+ lines.push(` warning: ${warning}`);
260
+ for (const error of result.errors)
261
+ lines.push(` error: ${error}`);
285
262
  lines.push(result.success ? '✓ Migration successful' : '✗ Migration failed');
286
263
  return lines.join('\n');
287
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/skills/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgCH,yBAAyB;AACzB,MAAM,eAAe,GAAG,OAAO,CAAC;AAUhC,qCAAqC;AACrC,MAAM,UAAU,GAAgB;IAC9B,0BAA0B;IAC1B;QACE,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,OAAO;QAClB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,gCAAgC;aAC9C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,2BAA2B;aACzC;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,yBAAyB;aACvC;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,uBAAuB;aACrC;SACF;QACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YACd,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YAEzB,kCAAkC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAA6B,EAAE,KAAa,EAAE,EAAE;oBAC/E,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;oBAC5B,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;wBACvB,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;wBACnC,OAAO,OAAO,CAAC,KAAK,CAAC;oBACvB,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,mDAAmD;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAA6B,EAAE,KAAa,EAAE,EAAE;oBAC/E,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;oBAC5B,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;wBACtB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;wBAC9B,OAAO,OAAO,CAAC,IAAI,CAAC;oBACtB,CAAC;oBACD,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;wBACpB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;wBAC5B,OAAO,OAAO,CAAC,EAAE,CAAC;oBACpB,CAAC;oBACD,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,EAAE,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBAC/B,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IACD,0BAA0B;IAC1B;QACE,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,OAAO;QAClB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,4BAA4B;gBACzC,KAAK,EAAE,OAAO;aACf;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,uBAAuB;aACrC;SACF;QACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YACd,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,CAAC,EAAE,GAAG,gBAAgB,CAAC;YAC/B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,EAAW,EACX,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,wBAAwB;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,eAAe,CAAC;IAEvD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,SAAS;YACtB,SAAS;YACT,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,CAAC,kEAAkE,CAAC;YAC5E,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,EAAa;YACvB,WAAW;YACX,SAAS;YACT,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC,2BAA2B,CAAC;SACxC,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAExD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;YACd,WAAW;YACX,SAAS;YACT,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,CAAC,gCAAgC,WAAW,OAAO,SAAS,EAAE,CAAC;YACvE,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,GAAG,EAA6B,CAAC;IAE5C,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;gBAC5E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClB,QAAQ,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,WAAW,MAAM,SAAS,CAAC,SAAS,YAAY,QAAQ,EAAE,CAAC,CAAC;gBACnG,CAAC;qBAAM,CAAC;oBACN,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,IAAI;wBACd,WAAW;wBACX,SAAS;wBACT,OAAO,EAAE,UAAU;wBACnB,MAAM,EAAE,CAAC,uBAAuB,SAAS,CAAC,WAAW,MAAM,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAC9F,QAAQ;qBACT,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,OAA8B;QACjE,WAAW;QACX,SAAS;QACT,OAAO,EAAE,UAAU;QACnB,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,EAAW;IAChC,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,EAA6B,CAAC;IAE1C,+BAA+B;IAC/B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,+BAA+B;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC;QAE1D,8CAA8C;QAC9C,IAAI,OAAO,IAAI,SAAS,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC;YACzD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC;QAE1D,uDAAuD;QACvD,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC;YAC1C,CAAC,CAAC,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC;YACtD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,uCAAuC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAY,EAAE,EAAU;IAClD,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,iEAAiE;IACjE,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM;QACR,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB,EAAE,MAAe;IAC5E,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,WAAW,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAClD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAChC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAE7E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/skills/migrate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"visualize.d.ts","sourceRoot":"","sources":["../../src/skills/visualize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAwB,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;IAC7C,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAWD;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,OAAO,EACX,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA8BrB"}
1
+ {"version":3,"file":"visualize.d.ts","sourceRoot":"","sources":["../../src/skills/visualize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAwB,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;IAC7C,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAWD;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,OAAO,EACX,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAmCrB"}