@principal-ai/principal-view-react 0.16.21 → 0.16.23
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/dist/components/GraphRenderer.js.map +1 -1
- package/dist/components/session-events/SessionEventFeed.d.ts.map +1 -1
- package/dist/components/session-events/SessionEventFeed.js +10 -3
- package/dist/components/session-events/SessionEventFeed.js.map +1 -1
- package/dist/graphify/consolidated.d.ts +170 -0
- package/dist/graphify/consolidated.d.ts.map +1 -0
- package/dist/graphify/consolidated.js +11 -0
- package/dist/graphify/consolidated.js.map +1 -0
- package/dist/graphify/index.d.ts +9 -0
- package/dist/graphify/index.d.ts.map +1 -0
- package/dist/graphify/index.js +8 -0
- package/dist/graphify/index.js.map +1 -0
- package/dist/graphify/types.d.ts +141 -0
- package/dist/graphify/types.d.ts.map +1 -0
- package/dist/graphify/types.js +8 -0
- package/dist/graphify/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.d.ts +28 -0
- package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -0
- package/dist/subsystem/SubsystemComponentGraph.js +365 -0
- package/dist/subsystem/SubsystemComponentGraph.js.map +1 -0
- package/dist/subsystem/model.d.ts +131 -0
- package/dist/subsystem/model.d.ts.map +1 -0
- package/dist/subsystem/model.js +296 -0
- package/dist/subsystem/model.js.map +1 -0
- package/dist/subsystem/nodes.d.ts +28 -0
- package/dist/subsystem/nodes.d.ts.map +1 -0
- package/dist/subsystem/nodes.js +230 -0
- package/dist/subsystem/nodes.js.map +1 -0
- package/dist/utils/elkLayout.d.ts +19 -0
- package/dist/utils/elkLayout.d.ts.map +1 -1
- package/dist/utils/elkLayout.js +72 -9
- package/dist/utils/elkLayout.js.map +1 -1
- package/package.json +3 -3
- package/src/components/GraphRenderer.tsx +2 -2
- package/src/components/session-events/SessionEventFeed.tsx +20 -3
- package/src/graphify/consolidated.ts +202 -0
- package/src/graphify/index.ts +36 -0
- package/src/graphify/types.ts +164 -0
- package/src/index.ts +31 -0
- package/src/stories/SubsystemComponentGraph.stories.tsx +761 -0
- package/src/subsystem/SubsystemComponentGraph.tsx +585 -0
- package/src/subsystem/model.test.ts +81 -0
- package/src/subsystem/model.ts +434 -0
- package/src/subsystem/nodes.tsx +353 -0
- package/src/utils/elkLayout.ts +98 -9
package/dist/utils/elkLayout.js
CHANGED
|
@@ -116,7 +116,7 @@ export function calculatePathMidpoint(points) {
|
|
|
116
116
|
* Get ELK layout options based on configuration
|
|
117
117
|
*/
|
|
118
118
|
function getElkOptions(options) {
|
|
119
|
-
const { routingStyle = 'orthogonal', nodeSpacing = 50, edgeSpacing = 8, edgeNodeSpacing = 10, direction = 'RIGHT', } = options;
|
|
119
|
+
const { routingStyle = 'orthogonal', nodeSpacing = 50, edgeSpacing = 8, edgeNodeSpacing = 10, interLayerSpacing = 0, edgeLabels, direction = 'RIGHT', } = options;
|
|
120
120
|
const baseOptions = {
|
|
121
121
|
'elk.algorithm': 'layered',
|
|
122
122
|
'elk.direction': direction,
|
|
@@ -126,6 +126,7 @@ function getElkOptions(options) {
|
|
|
126
126
|
'elk.spacing.edgeNode': String(edgeNodeSpacing),
|
|
127
127
|
'elk.layered.spacing.edgeEdgeBetweenLayers': String(edgeSpacing),
|
|
128
128
|
'elk.layered.spacing.edgeNodeBetweenLayers': String(edgeNodeSpacing),
|
|
129
|
+
'elk.layered.spacing.nodeNodeBetweenLayers': String(interLayerSpacing),
|
|
129
130
|
// Port constraints - edges connect at specific sides
|
|
130
131
|
'elk.portConstraints': 'FIXED_SIDE',
|
|
131
132
|
// Improve orthogonal routing quality
|
|
@@ -136,6 +137,13 @@ function getElkOptions(options) {
|
|
|
136
137
|
// Higher thoroughness = better edge routing (1-100)
|
|
137
138
|
'elk.layered.thoroughness': '50',
|
|
138
139
|
};
|
|
140
|
+
// Reserve space for inline edge labels so they don't overlap nodes/edges.
|
|
141
|
+
if (edgeLabels?.enabled !== false) {
|
|
142
|
+
const placement = edgeLabels?.placement ?? 'CENTER';
|
|
143
|
+
baseOptions['elk.edgeLabels.inline'] = 'true';
|
|
144
|
+
baseOptions['elk.edgeLabels.inlinePlacement'] = placement;
|
|
145
|
+
baseOptions['elk.layered.edgeLabels.centerLabelPlacementStrategy'] = 'CENTER_LAYER';
|
|
146
|
+
}
|
|
139
147
|
// Set edge routing style
|
|
140
148
|
switch (routingStyle) {
|
|
141
149
|
case 'orthogonal':
|
|
@@ -160,6 +168,8 @@ function getElkOptions(options) {
|
|
|
160
168
|
*/
|
|
161
169
|
export async function computeElkLayout(nodes, edges, options = {}) {
|
|
162
170
|
const { preserveNodePositions = true } = options;
|
|
171
|
+
const edgeLabels = options.edgeLabels;
|
|
172
|
+
const direction = options.direction ?? 'RIGHT';
|
|
163
173
|
// Build a map of original node positions BEFORE passing to ELK
|
|
164
174
|
// (ELK mutates the input nodes in place, so we must save positions first)
|
|
165
175
|
const originalPositions = new Map();
|
|
@@ -170,6 +180,12 @@ export async function computeElkLayout(nodes, edges, options = {}) {
|
|
|
170
180
|
const elkNodes = nodes.map((node) => {
|
|
171
181
|
const width = node.measured?.width ?? node.width ?? 200;
|
|
172
182
|
const height = node.measured?.height ?? node.height ?? 100;
|
|
183
|
+
// Optional explicit layout layer, read from node data (e.g. our subsystem
|
|
184
|
+
// components carry `data.component.layer`). Forces ELK to place the node in
|
|
185
|
+
// that layer so the graph reads as a pipeline rather than a guess.
|
|
186
|
+
let layer;
|
|
187
|
+
const nd = node.data;
|
|
188
|
+
layer = nd?.layer ?? nd?.component?.layer;
|
|
173
189
|
return {
|
|
174
190
|
id: node.id,
|
|
175
191
|
width,
|
|
@@ -185,6 +201,7 @@ export async function computeElkLayout(nodes, edges, options = {}) {
|
|
|
185
201
|
],
|
|
186
202
|
properties: {
|
|
187
203
|
'portConstraints': 'FIXED_SIDE',
|
|
204
|
+
...(layer !== undefined ? { 'layering.layer': String(layer) } : {}),
|
|
188
205
|
},
|
|
189
206
|
};
|
|
190
207
|
});
|
|
@@ -216,7 +233,17 @@ export async function computeElkLayout(nodes, edges, options = {}) {
|
|
|
216
233
|
targetPort: `${targetId}_${targetSuffix}`,
|
|
217
234
|
};
|
|
218
235
|
}
|
|
219
|
-
//
|
|
236
|
+
// When ELK repositions nodes (preserveNodePositions=false), the initial
|
|
237
|
+
// grid positions are unreliable — use the layout direction instead.
|
|
238
|
+
if (!preserveNodePositions) {
|
|
239
|
+
switch (direction) {
|
|
240
|
+
case 'RIGHT': return { sourcePort: `${sourceId}_right`, targetPort: `${targetId}_left` };
|
|
241
|
+
case 'LEFT': return { sourcePort: `${sourceId}_left`, targetPort: `${targetId}_right` };
|
|
242
|
+
case 'DOWN': return { sourcePort: `${sourceId}_bottom`, targetPort: `${targetId}_top` };
|
|
243
|
+
case 'UP': return { sourcePort: `${sourceId}_top`, targetPort: `${targetId}_bottom` };
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// Fallback to position-based calculation (for preserveNodePositions=true)
|
|
220
247
|
const sourcePos = originalPositions.get(sourceId);
|
|
221
248
|
const targetPos = originalPositions.get(targetId);
|
|
222
249
|
if (!sourcePos || !targetPos) {
|
|
@@ -253,11 +280,20 @@ export async function computeElkLayout(nodes, edges, options = {}) {
|
|
|
253
280
|
// right/left ports = horizontal-first, top/bottom ports = vertical-first
|
|
254
281
|
const isHorizontalFirst = sourcePort.endsWith('_right') || sourcePort.endsWith('_left');
|
|
255
282
|
edgeRoutingDirection.set(edge.id, isHorizontalFirst);
|
|
256
|
-
|
|
283
|
+
const elkEdge = {
|
|
257
284
|
id: edge.id,
|
|
258
285
|
sources: [sourcePort],
|
|
259
286
|
targets: [targetPort],
|
|
260
287
|
};
|
|
288
|
+
// Estimated label size so ELK reserves room to render the inline label
|
|
289
|
+
// without it overlapping nodes or sibling edges.
|
|
290
|
+
if (edgeLabels?.enabled !== false && typeof edge.label === 'string') {
|
|
291
|
+
const text = edge.label;
|
|
292
|
+
const labelWidth = Math.max(20, text.length * 7); // ~7px per mono char
|
|
293
|
+
const labelHeight = 14;
|
|
294
|
+
elkEdge.labels = [{ text, width: labelWidth, height: labelHeight }];
|
|
295
|
+
}
|
|
296
|
+
return elkEdge;
|
|
261
297
|
});
|
|
262
298
|
// Create ELK graph
|
|
263
299
|
const elkGraph = {
|
|
@@ -278,6 +314,7 @@ export async function computeElkLayout(nodes, edges, options = {}) {
|
|
|
278
314
|
// Extract results
|
|
279
315
|
const edgePaths = new Map();
|
|
280
316
|
const edgeLabelPositions = new Map();
|
|
317
|
+
const edgePathPoints = new Map();
|
|
281
318
|
// Process edges
|
|
282
319
|
if (layoutedGraph.edges) {
|
|
283
320
|
for (const edge of layoutedGraph.edges) {
|
|
@@ -326,9 +363,36 @@ export async function computeElkLayout(nodes, edges, options = {}) {
|
|
|
326
363
|
};
|
|
327
364
|
}
|
|
328
365
|
}
|
|
329
|
-
//
|
|
330
|
-
//
|
|
331
|
-
if (
|
|
366
|
+
// Use ELK's native label position (it accounts for node avoidance)
|
|
367
|
+
// and apply the same coordinate offset.
|
|
368
|
+
if (edge.labels && edge.labels.length > 0) {
|
|
369
|
+
const elkLabel = edge.labels[0];
|
|
370
|
+
// Raw ELK label position — no conversion.
|
|
371
|
+
let lx = elkLabel.x ?? 0;
|
|
372
|
+
let ly = elkLabel.y ?? 0;
|
|
373
|
+
if (preserveNodePositions && sourceOriginal && sourceElk && targetOriginal && targetElk) {
|
|
374
|
+
const sourceOffset = {
|
|
375
|
+
x: sourceOriginal.x - sourceElk.x,
|
|
376
|
+
y: sourceOriginal.y - sourceElk.y,
|
|
377
|
+
};
|
|
378
|
+
const targetOffset = {
|
|
379
|
+
x: targetOriginal.x - targetElk.x,
|
|
380
|
+
y: targetOriginal.y - targetElk.y,
|
|
381
|
+
};
|
|
382
|
+
// Interpolate offset based on label position along the edge
|
|
383
|
+
const startX = allPoints[0].x;
|
|
384
|
+
const endX = allPoints[allPoints.length - 1].x;
|
|
385
|
+
const rangeX = Math.abs(endX - startX) || 1;
|
|
386
|
+
const t = Math.min(1, Math.max(0, Math.abs(lx - startX) / rangeX));
|
|
387
|
+
lx += sourceOffset.x + (targetOffset.x - sourceOffset.x) * t;
|
|
388
|
+
ly += sourceOffset.y + (targetOffset.y - sourceOffset.y) * t;
|
|
389
|
+
}
|
|
390
|
+
edgeLabelPositions.set(edge.id, { x: lx, y: ly });
|
|
391
|
+
}
|
|
392
|
+
// For orthogonal routing with preserved positions, the offset can distort
|
|
393
|
+
// ELK's bend points, so we rebuild the path. Otherwise, use ELK's bends
|
|
394
|
+
// as-is since they already account for label placement and node avoidance.
|
|
395
|
+
if (options.routingStyle === 'orthogonal' && preserveNodePositions) {
|
|
332
396
|
const start = allPoints[0];
|
|
333
397
|
const end = allPoints[allPoints.length - 1];
|
|
334
398
|
const dx = Math.abs(end.x - start.x);
|
|
@@ -360,9 +424,7 @@ export async function computeElkLayout(nodes, edges, options = {}) {
|
|
|
360
424
|
? pointsToSmoothPath(allPoints, 8)
|
|
361
425
|
: pointsToPath(allPoints);
|
|
362
426
|
edgePaths.set(edge.id, path);
|
|
363
|
-
|
|
364
|
-
const labelPos = calculatePathMidpoint(allPoints);
|
|
365
|
-
edgeLabelPositions.set(edge.id, labelPos);
|
|
427
|
+
edgePathPoints.set(edge.id, [...allPoints]);
|
|
366
428
|
}
|
|
367
429
|
}
|
|
368
430
|
}
|
|
@@ -383,6 +445,7 @@ export async function computeElkLayout(nodes, edges, options = {}) {
|
|
|
383
445
|
nodes: resultNodes,
|
|
384
446
|
edgePaths,
|
|
385
447
|
edgeLabelPositions,
|
|
448
|
+
edgePathPoints,
|
|
386
449
|
};
|
|
387
450
|
}
|
|
388
451
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elkLayout.js","sourceRoot":"","sources":["../../src/utils/elkLayout.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elkLayout.js","sourceRoot":"","sources":["../../src/utils/elkLayout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,GAA+D,MAAM,0BAA0B,CAAC;AAmGvG,kEAAkE;AAClE,IAAI,WAAW,GAAoC,IAAI,CAAC;AAExD,SAAS,cAAc;IACrB,IAAI,CAAC,WAAW,EAAE;QAChB,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;KACzB;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,eAAuB,CAAC;IAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E;IAED,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE3B,sBAAsB;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAElF,kDAAkD;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,sCAAsC;YACtC,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;YACjC,SAAS;SACV;QAED,8BAA8B;QAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QAEtE,qCAAqC;QACrC,MAAM,QAAQ,GAAG;YACf,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM;YAC3B,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM;SAC5B,CAAC;QACF,MAAM,MAAM,GAAG;YACb,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM;YAC3B,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM;SAC5B,CAAC;QAEF,0DAA0D;QAC1D,IAAI,IAAI,MAAM,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC;KAC1D;IAED,2BAA2B;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;IAEjC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAE1C,8BAA8B;IAC9B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CACxF,CAAC;QACF,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,WAAW,IAAI,GAAG,CAAC;KACpB;IAED,gBAAgB;IAChB,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,CAAC;IACrC,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,IAAI,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE;YACrD,8BAA8B;YAC9B,MAAM,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;YAC/C,MAAM,KAAK,GAAG,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;gBACxD,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;aACzD,CAAC;SACH;QACD,aAAa,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;KACpC;IAED,yBAAyB;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAyB;IAC9C,MAAM,EACJ,YAAY,GAAG,YAAY,EAC3B,WAAW,GAAG,EAAE,EAChB,WAAW,GAAG,CAAC,EACf,eAAe,GAAG,EAAE,EACpB,iBAAiB,GAAG,CAAC,EACrB,UAAU,EACV,SAAS,GAAG,OAAO,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,WAAW,GAAkB;QACjC,eAAe,EAAE,SAAS;QAC1B,eAAe,EAAE,SAAS;QAC1B,UAAU;QACV,sBAAsB,EAAE,MAAM,CAAC,WAAW,CAAC;QAC3C,sBAAsB,EAAE,MAAM,CAAC,WAAW,CAAC;QAC3C,sBAAsB,EAAE,MAAM,CAAC,eAAe,CAAC;QAC/C,2CAA2C,EAAE,MAAM,CAAC,WAAW,CAAC;QAChE,2CAA2C,EAAE,MAAM,CAAC,eAAe,CAAC;QACpE,2CAA2C,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtE,qDAAqD;QACrD,qBAAqB,EAAE,YAAY;QACnC,qCAAqC;QACrC,oCAAoC,EAAE,iBAAiB;QACvD,2CAA2C,EAAE,aAAa;QAC1D,uDAAuD;QACvD,wBAAwB,EAAE,MAAM;QAChC,oDAAoD;QACpD,0BAA0B,EAAE,IAAI;KACjC,CAAC;IAEF,0EAA0E;IAC1E,IAAI,UAAU,EAAE,OAAO,KAAK,KAAK,EAAE;QACjC,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,QAAQ,CAAC;QACpD,WAAW,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC;QAC9C,WAAW,CAAC,gCAAgC,CAAC,GAAG,SAAS,CAAC;QAC1D,WAAW,CAAC,qDAAqD,CAAC,GAAG,cAAc,CAAC;KACrF;IAED,yBAAyB;IACzB,QAAQ,YAAY,EAAE;QACpB,KAAK,YAAY;YACf,WAAW,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;YAC9C,MAAM;QACR,KAAK,SAAS;YACZ,WAAW,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;YAC3C,MAAM;QACR,KAAK,UAAU;YACb,WAAW,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;YAC5C,MAAM;KACT;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,KAAa,EACb,UAA4B,EAAE;IAE9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;IAE/C,+DAA+D;IAC/D,0EAA0E;IAC1E,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoC,CAAC;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;KAC5E;IAED,gEAAgE;IAChE,MAAM,QAAQ,GAAc,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;QAE3D,0EAA0E;QAC1E,4EAA4E;QAC5E,mEAAmE;QACnE,IAAI,KAAyB,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAsE,CAAC;QACvF,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;QAE1C,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK;YACL,MAAM;YACN,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,8CAA8C;YAC9C,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;gBAC9D,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;gBAC/D,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;gBACjE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;aAC/D;YACD,UAAU,EAAE;gBACV,iBAAiB,EAAE,YAAY;gBAC/B,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,+EAA+E;IAC/E,MAAM,kBAAkB,GAAG,CAAC,MAAiC,EAAiB,EAAE;QAC9E,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,uCAAuC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAC;QACrD,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QAChD,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,oFAAoF;IACpF,MAAM,WAAW,GAAG,CAClB,QAAgB,EAChB,QAAgB,EAChB,YAA4B,EAC5B,YAA4B,EACgB,EAAE;QAC9C,oCAAoC;QACpC,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAEtD,IAAI,YAAY,IAAI,YAAY,EAAE;YAChC,OAAO;gBACL,UAAU,EAAE,GAAG,QAAQ,IAAI,YAAY,EAAE;gBACzC,UAAU,EAAE,GAAG,QAAQ,IAAI,YAAY,EAAE;aAC1C,CAAC;SACH;QAED,wEAAwE;QACxE,oEAAoE;QACpE,IAAI,CAAC,qBAAqB,EAAE;YAC1B,QAAQ,SAAS,EAAE;gBACjB,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,QAAQ,EAAE,UAAU,EAAE,GAAG,QAAQ,OAAO,EAAE,CAAC;gBACzF,KAAK,MAAM,CAAC,CAAE,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,OAAO,EAAG,UAAU,EAAE,GAAG,QAAQ,QAAQ,EAAE,CAAC;gBAC1F,KAAK,MAAM,CAAC,CAAE,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,SAAS,EAAE,UAAU,EAAE,GAAG,QAAQ,MAAM,EAAE,CAAC;gBACzF,KAAK,IAAI,CAAC,CAAI,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,MAAM,EAAK,UAAU,EAAE,GAAG,QAAQ,SAAS,EAAE,CAAC;aAC7F;SACF;QAED,0EAA0E;QAC1E,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;YAC5B,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,QAAQ,EAAE,UAAU,EAAE,GAAG,QAAQ,OAAO,EAAE,CAAC;SAC5E;QAED,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAErC,8BAA8B;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC/B,gCAAgC;YAChC,IAAI,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,QAAQ,EAAE,UAAU,EAAE,GAAG,QAAQ,OAAO,EAAE,CAAC;aAC5E;iBAAM;gBACL,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,QAAQ,EAAE,CAAC;aAC5E;SACF;aAAM;YACL,8BAA8B;YAC9B,IAAI,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,SAAS,EAAE,UAAU,EAAE,GAAG,QAAQ,MAAM,EAAE,CAAC;aAC5E;iBAAM;gBACL,OAAO,EAAE,UAAU,EAAE,GAAG,QAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,SAAS,EAAE,CAAC;aAC5E;SACF;IACH,CAAC,CAAC;IAEF,0FAA0F;IAC1F,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAmB,CAAC;IAExD,mDAAmD;IACnD,MAAM,QAAQ,GAAsB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,CAC5C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,mDAAmD;QACnD,yEAAyE;QACzE,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxF,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAErD,MAAM,OAAO,GAAoB;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,CAAC,UAAU,CAAC;YACrB,OAAO,EAAE,CAAC,UAAU,CAAC;SACtB,CAAC;QACF,uEAAuE;QACvE,iDAAiD;QACjD,IAAI,UAAU,EAAE,OAAO,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB;YACvE,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;SACrE;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,MAAM;QACV,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC;QACrC,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;KAChB,CAAC;IAEF,iBAAiB;IACjB,MAAM,aAAa,GAAG,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE9D,6CAA6C;IAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoC,CAAC;IACjE,IAAI,aAAa,CAAC,QAAQ,EAAE;QAC1B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,QAAQ,EAAE;YAC1C,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClE;KACF;IAED,kBAAkB;IAClB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAoC,CAAC;IACvE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmB,CAAC;IAElD,gBAAgB;IAChB,IAAI,aAAa,CAAC,KAAK,EAAE;QACvB,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAA8B,EAAE;YAC/D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;gBAE3D,gFAAgF;gBAChF,mFAAmF;gBACnF,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/D,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE/D,mCAAmC;gBACnC,MAAM,SAAS,GAAY,EAAE,CAAC;gBAE9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACnC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACnC,IAAI,OAAO,CAAC,UAAU,EAAE;wBACtB,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;qBACvC;oBACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;iBAClC;gBAED,6DAA6D;gBAC7D,gEAAgE;gBAChE,IAAI,qBAAqB,IAAI,cAAc,IAAI,SAAS,IAAI,cAAc,IAAI,SAAS,EAAE;oBACvF,wDAAwD;oBACxD,MAAM,YAAY,GAAG;wBACnB,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;wBACjC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;qBAClC,CAAC;oBACF,MAAM,YAAY,GAAG;wBACnB,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;wBACjC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;qBAClC,CAAC;oBAEF,4DAA4D;oBAC5D,gEAAgE;oBAChE,+DAA+D;oBAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;oBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACzC,oEAAoE;wBACpE,2CAA2C;wBAC3C,MAAM,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxC,SAAS,CAAC,CAAC,CAAC,GAAG;4BACb,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;4BAC1E,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;yBAC3E,CAAC;qBACH;iBACF;gBAED,mEAAmE;gBACnE,wCAAwC;gBACxC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAChC,0CAA0C;oBAC1C,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;oBACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;oBACzB,IAAI,qBAAqB,IAAI,cAAc,IAAI,SAAS,IAAI,cAAc,IAAI,SAAS,EAAE;wBACvF,MAAM,YAAY,GAAG;4BACnB,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;4BACjC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;yBAClC,CAAC;wBACF,MAAM,YAAY,GAAG;4BACnB,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;4BACjC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;yBAClC,CAAC;wBACF,4DAA4D;wBAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;wBACnE,EAAE,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC7D,EAAE,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBAC9D;oBACD,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;iBACnD;gBAED,0EAA0E;gBAC1E,wEAAwE;gBACxE,2EAA2E;gBAC3E,IAAI,OAAO,CAAC,YAAY,KAAK,YAAY,IAAI,qBAAqB,EAAE;oBAClE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAErC,0CAA0C;oBAC1C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;oBAEpE,2DAA2D;oBAC3D,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;oBACrB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAEtB,gEAAgE;oBAChE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;wBACpB,IAAI,iBAAiB,EAAE;4BACrB,kFAAkF;4BAClF,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACnC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;4BACxC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;yBACvC;6BAAM;4BACL,gFAAgF;4BAChF,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACnC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;4BACxC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;yBACvC;qBACF;oBAED,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACrB;gBAED,kBAAkB;gBAClB,MAAM,IAAI,GACR,OAAO,CAAC,YAAY,KAAK,YAAY;oBACnC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAC;oBAClC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAE9B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC7B,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;aAC7C;SACF;KACF;IAED,qDAAqD;IACrD,MAAM,WAAW,GAAG,qBAAqB;QACvC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS,EAAE;gBACjE,OAAO;oBACL,GAAG,IAAI;oBACP,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE;iBACzC,CAAC;aACH;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IAEP,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,SAAS;QACT,kBAAkB;QAClB,cAAc;KACf,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA4B,EAAE;IAC9D,OAAO,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACnF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@principal-ai/principal-view-react",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.23",
|
|
4
4
|
"description": "React components for graph-based principal view framework",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"build-storybook": "storybook build"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@xyflow/react": "12.
|
|
18
|
-
"elkjs": "^0.
|
|
17
|
+
"@xyflow/react": "^12.11.3",
|
|
18
|
+
"elkjs": "^0.12.0",
|
|
19
19
|
"hast-util-sanitize": "^5.0.2",
|
|
20
20
|
"highlight.js": "^11.11.1",
|
|
21
21
|
"js-yaml": "4.1.1",
|
|
@@ -1901,7 +1901,7 @@ const GraphRendererInner: React.FC<GraphRendererInnerProps> = ({
|
|
|
1901
1901
|
|
|
1902
1902
|
// Handle node drag to show alignment guides
|
|
1903
1903
|
const handleNodeDrag = useCallback(
|
|
1904
|
-
(_event:
|
|
1904
|
+
(_event: MouseEvent | TouchEvent, node: Node) => {
|
|
1905
1905
|
// Allow dragging if editable OR if this node is in draggableNodeIds
|
|
1906
1906
|
const canDrag = editable || draggableNodeIds?.has(node.id);
|
|
1907
1907
|
if (!canDrag) return;
|
|
@@ -1917,7 +1917,7 @@ const GraphRendererInner: React.FC<GraphRendererInnerProps> = ({
|
|
|
1917
1917
|
|
|
1918
1918
|
// Clear guides when drag ends and notify parent
|
|
1919
1919
|
const handleNodeDragStop = useCallback(
|
|
1920
|
-
(_event:
|
|
1920
|
+
(_event: MouseEvent | TouchEvent, node: Node) => {
|
|
1921
1921
|
setAlignmentGuides([]);
|
|
1922
1922
|
|
|
1923
1923
|
// Call the callback if provided (for draggable nodes outside edit mode)
|
|
@@ -1255,8 +1255,15 @@ export function SessionEventFeed({ title, rows }: SessionEventFeedProps) {
|
|
|
1255
1255
|
const { collapsed, toggle, setAll } = useCollapse(seqs, true);
|
|
1256
1256
|
|
|
1257
1257
|
const activePreset = PRESETS.find((p) => p.id === active) ?? PRESETS[0];
|
|
1258
|
-
|
|
1259
|
-
|
|
1258
|
+
// "Generic tools" surfaces the improvement backlog: tool rows whose
|
|
1259
|
+
// accumulated operation is still the generic `tool` fallback (e.g. bash
|
|
1260
|
+
// commands that haven't been given a listing/reading/… type yet).
|
|
1261
|
+
const [unprocessedOnly, setUnprocessedOnly] = useState(false);
|
|
1262
|
+
const isVisible = (r: FeedItem) =>
|
|
1263
|
+
unprocessedOnly
|
|
1264
|
+
? r.accumulated?.operation === 'tool'
|
|
1265
|
+
: activePreset.include.includes(eventCategory(toRaw(r.raw)));
|
|
1266
|
+
const visibleEvents = displayItems.filter(isVisible);
|
|
1260
1267
|
|
|
1261
1268
|
const presetCounts = useMemo(() => {
|
|
1262
1269
|
const map = new Map<string, number>();
|
|
@@ -1266,6 +1273,11 @@ export function SessionEventFeed({ title, rows }: SessionEventFeedProps) {
|
|
|
1266
1273
|
return map;
|
|
1267
1274
|
}, [displayItems]);
|
|
1268
1275
|
|
|
1276
|
+
const unprocessedCount = useMemo(
|
|
1277
|
+
() => displayItems.filter((r) => r.accumulated?.operation === 'tool').length,
|
|
1278
|
+
[displayItems],
|
|
1279
|
+
);
|
|
1280
|
+
|
|
1269
1281
|
const expandedCount = visibleEvents.filter((r) => !collapsed.has(r.seq)).length;
|
|
1270
1282
|
|
|
1271
1283
|
return (
|
|
@@ -1303,6 +1315,11 @@ export function SessionEventFeed({ title, rows }: SessionEventFeedProps) {
|
|
|
1303
1315
|
/>
|
|
1304
1316
|
))}
|
|
1305
1317
|
<span style={{ flex: 1 }} />
|
|
1318
|
+
<FilterChip
|
|
1319
|
+
label={`Generic tools (${unprocessedCount})`}
|
|
1320
|
+
active={unprocessedOnly}
|
|
1321
|
+
onClick={() => setUnprocessedOnly((v) => !v)}
|
|
1322
|
+
/>
|
|
1306
1323
|
<FilterChip
|
|
1307
1324
|
label={groupTools ? 'Group tool runs: on' : 'Group tool runs: off'}
|
|
1308
1325
|
active={groupTools}
|
|
@@ -1320,7 +1337,7 @@ export function SessionEventFeed({ title, rows }: SessionEventFeedProps) {
|
|
|
1320
1337
|
sessionTitle={title}
|
|
1321
1338
|
runCount={r.runCount}
|
|
1322
1339
|
snapshotCount={r.snapshotCount}
|
|
1323
|
-
visible={isVisible(
|
|
1340
|
+
visible={isVisible(r)}
|
|
1324
1341
|
expanded={!collapsed.has(r.seq)}
|
|
1325
1342
|
onToggle={() => toggle(r.seq)}
|
|
1326
1343
|
/>
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graphify consolidated / drill-down types.
|
|
3
|
+
*
|
|
4
|
+
* graphify stores the graph in flat, normalized form — class vs function vs
|
|
5
|
+
* type is NOT a node attribute (every code node is `file_type: "code"`); it is
|
|
6
|
+
* derived from graph structure. These types rebuild that structure from the raw
|
|
7
|
+
* edges so a UI can show a drill-down modal for a subsystem component or jump
|
|
8
|
+
* to its definition file.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {
|
|
12
|
+
GraphifyConfidence,
|
|
13
|
+
GraphifyFileType,
|
|
14
|
+
GraphifyRelation,
|
|
15
|
+
} from './types';
|
|
16
|
+
|
|
17
|
+
/** How a subsystem component resolved to a graphify node. */
|
|
18
|
+
export type GraphifyAnchorResolution = 'exact' | 'file-only' | 'ambiguous' | 'missing';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The bridge between a facet component and the graphify graph.
|
|
22
|
+
*
|
|
23
|
+
* `nodeId` is reconstructed from the component's `file` + `symbol` via the id
|
|
24
|
+
* slug scheme; `resolution` says how confident that reconstruction is.
|
|
25
|
+
* `source_file` + `source_location` are the "open the definition" primitive.
|
|
26
|
+
*/
|
|
27
|
+
export interface SubsystemGraphifyAnchor {
|
|
28
|
+
/** Resolved graphify node id. */
|
|
29
|
+
nodeId: string;
|
|
30
|
+
/** PURL of the repo the node lives in (pkg:github/owner/repo). */
|
|
31
|
+
purl: string;
|
|
32
|
+
/** How the anchor resolved — the honesty signal for verification. */
|
|
33
|
+
resolution: GraphifyAnchorResolution;
|
|
34
|
+
/** Human-readable node label from the graph. */
|
|
35
|
+
label: string;
|
|
36
|
+
/** Repo-relative path of the node's source file. */
|
|
37
|
+
source_file: string;
|
|
38
|
+
/** `L<line>` — the line of the definition for a file-open jump. */
|
|
39
|
+
source_location?: string;
|
|
40
|
+
/** Node classification from the graph. */
|
|
41
|
+
file_type: GraphifyFileType;
|
|
42
|
+
/** Leiden community id. */
|
|
43
|
+
community?: number | null;
|
|
44
|
+
/** Human-readable community label. */
|
|
45
|
+
community_name?: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Leaf info types — each backed by a specific graphify edge pattern
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
|
|
52
|
+
/** A method on a class-like node (`method` edge from the class). */
|
|
53
|
+
export interface GraphifyMethodInfo {
|
|
54
|
+
/** The method's own node id. */
|
|
55
|
+
nodeId: string;
|
|
56
|
+
/** Display name from the label (`.get()` → `get`). */
|
|
57
|
+
name: string;
|
|
58
|
+
/** Parameter types from `references` edges with context `parameter_type`. */
|
|
59
|
+
parameters?: string[];
|
|
60
|
+
/** Return type from a `references` edge with context `return_type`. */
|
|
61
|
+
returnType?: string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** A property/field on a class- or type-like node. */
|
|
65
|
+
export interface GraphifyPropertyInfo {
|
|
66
|
+
/** Field name — present when graphify emits a `defines` node (C++). */
|
|
67
|
+
name: string;
|
|
68
|
+
/** Field type from a `references` edge with context `field`. */
|
|
69
|
+
type?: string;
|
|
70
|
+
/** The field's own node id when it exists (e.g. C++ `defines` nodes). */
|
|
71
|
+
nodeId?: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** A single typed parameter of a function (`references` context `parameter_type`). */
|
|
75
|
+
export interface GraphifyParamInfo {
|
|
76
|
+
/** Parameter name — not captured by graphify; left undefined. */
|
|
77
|
+
name?: string;
|
|
78
|
+
/** Parameter type. */
|
|
79
|
+
type: string;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** One call relationship, in either direction. */
|
|
83
|
+
export interface GraphifyCallInfo {
|
|
84
|
+
/** The other endpoint's node id (caller for `callers`, callee for `callees`). */
|
|
85
|
+
nodeId: string;
|
|
86
|
+
/** The other endpoint's display label. */
|
|
87
|
+
name: string;
|
|
88
|
+
/** `L<line>` of the call site. */
|
|
89
|
+
source_location?: string;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** A type-name reference to a node (`references` edge with a context). */
|
|
93
|
+
export interface GraphifyReferenceInfo {
|
|
94
|
+
/** The referenced node id. */
|
|
95
|
+
nodeId: string;
|
|
96
|
+
/** The referenced node's display label. */
|
|
97
|
+
name: string;
|
|
98
|
+
/** Reference context (e.g. `type`, `field`, `generic_arg`, `attribute`). */
|
|
99
|
+
context?: string;
|
|
100
|
+
/** `L<line>` of the reference site. */
|
|
101
|
+
source_location?: string;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** An import relationship (`imports` / `imports_from` / `re_exports`). */
|
|
105
|
+
export interface GraphifyImportInfo {
|
|
106
|
+
/** The imported module/file node id. */
|
|
107
|
+
nodeId: string;
|
|
108
|
+
/** The imported module/file label. */
|
|
109
|
+
name: string;
|
|
110
|
+
/** Which relation carried the import. */
|
|
111
|
+
relation?: GraphifyRelation;
|
|
112
|
+
/** `L<line>` of the import statement. */
|
|
113
|
+
source_location?: string;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
// Discriminated union — the drill-down payload
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
|
|
120
|
+
/** A class-like node: owns outgoing `method` edges. */
|
|
121
|
+
export interface GraphifyClassDetail {
|
|
122
|
+
kind: 'class';
|
|
123
|
+
/** Methods connected via `method` edges. */
|
|
124
|
+
methods: GraphifyMethodInfo[];
|
|
125
|
+
/** Fields from `defines`/`references` context `field`. */
|
|
126
|
+
properties: GraphifyPropertyInfo[];
|
|
127
|
+
/** `inherits` edge targets. */
|
|
128
|
+
extends: string[];
|
|
129
|
+
/** `implements` edge targets. */
|
|
130
|
+
implements: string[];
|
|
131
|
+
/** Incoming `calls` — graphify models constructor calls as calls into the class. */
|
|
132
|
+
instantiations: GraphifyCallInfo[];
|
|
133
|
+
/** Everywhere the type name is referenced (`references` edges). */
|
|
134
|
+
references: GraphifyReferenceInfo[];
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** A function-like node: label ends `name()` with no `method` edges. */
|
|
138
|
+
export interface GraphifyFunctionDetail {
|
|
139
|
+
kind: 'function';
|
|
140
|
+
/** Parameter types from `references` context `parameter_type`. */
|
|
141
|
+
parameters: GraphifyParamInfo[];
|
|
142
|
+
/** Return type from `references` context `return_type`. */
|
|
143
|
+
returnType?: string;
|
|
144
|
+
/** Incoming `calls` edges. */
|
|
145
|
+
callers: GraphifyCallInfo[];
|
|
146
|
+
/** Outgoing `calls` edges. */
|
|
147
|
+
callees: GraphifyCallInfo[];
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/** A type-like node (interface/struct): revealed by incoming `implements` edges. */
|
|
151
|
+
export interface GraphifyTypeDetail {
|
|
152
|
+
kind: 'type';
|
|
153
|
+
/** Struct/interface fields. */
|
|
154
|
+
properties: GraphifyPropertyInfo[];
|
|
155
|
+
/** Nodes referencing this type name. */
|
|
156
|
+
usedBy: GraphifyReferenceInfo[];
|
|
157
|
+
/** Nodes that `inherits`/`implements` this type. */
|
|
158
|
+
implementors: string[];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/** A module/file-like node: a `contains` target with a filename label. */
|
|
162
|
+
export interface GraphifyModuleDetail {
|
|
163
|
+
kind: 'module';
|
|
164
|
+
/** `re_exports` targets / contained public symbols. */
|
|
165
|
+
exports: string[];
|
|
166
|
+
/** `imports` / `imports_from` relationships. */
|
|
167
|
+
imports: GraphifyImportInfo[];
|
|
168
|
+
/** Symbols contained in the module (`contains` targets). */
|
|
169
|
+
symbols: string[];
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/** A facet-only component with no graphify node (external consumer stub). */
|
|
173
|
+
export interface GraphifyExternalDetail {
|
|
174
|
+
kind: 'external';
|
|
175
|
+
/** Facet-only label; there is no backing graph data. */
|
|
176
|
+
label: string;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* The drill-down payload for a subsystem component.
|
|
181
|
+
*
|
|
182
|
+
* The discriminant is derived from graph structure, not read off the node:
|
|
183
|
+
* method edges → class; `()` label + no method edges → function; incoming
|
|
184
|
+
* `implements` → type; else module. `external` covers consumer stubs.
|
|
185
|
+
*/
|
|
186
|
+
export type GraphifyComponentDetail =
|
|
187
|
+
| GraphifyClassDetail
|
|
188
|
+
| GraphifyFunctionDetail
|
|
189
|
+
| GraphifyTypeDetail
|
|
190
|
+
| GraphifyModuleDetail
|
|
191
|
+
| GraphifyExternalDetail;
|
|
192
|
+
|
|
193
|
+
/** A raw graphify edge backing a facet claim (verification + provenance). */
|
|
194
|
+
export interface GraphifyEdgeRef {
|
|
195
|
+
source: string;
|
|
196
|
+
target: string;
|
|
197
|
+
relation: GraphifyRelation;
|
|
198
|
+
confidence: GraphifyConfidence;
|
|
199
|
+
confidence_score?: number;
|
|
200
|
+
source_file: string;
|
|
201
|
+
source_location?: string;
|
|
202
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graphify integration types.
|
|
3
|
+
*
|
|
4
|
+
* Type-compatible view of graphify's graph.json data model for consuming
|
|
5
|
+
* graphify output (nodes, links, hyperedges) inside this library.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export type {
|
|
9
|
+
JsonValue,
|
|
10
|
+
GraphifyFileType,
|
|
11
|
+
GraphifyConfidence,
|
|
12
|
+
GraphifyNodeType,
|
|
13
|
+
GraphifyRelation,
|
|
14
|
+
GraphifyNode,
|
|
15
|
+
GraphifyEdge,
|
|
16
|
+
GraphifyHyperedge,
|
|
17
|
+
GraphifyGraphMetadata,
|
|
18
|
+
GraphifyGraph,
|
|
19
|
+
} from './types';
|
|
20
|
+
export type {
|
|
21
|
+
GraphifyAnchorResolution,
|
|
22
|
+
SubsystemGraphifyAnchor,
|
|
23
|
+
GraphifyMethodInfo,
|
|
24
|
+
GraphifyPropertyInfo,
|
|
25
|
+
GraphifyParamInfo,
|
|
26
|
+
GraphifyCallInfo,
|
|
27
|
+
GraphifyReferenceInfo,
|
|
28
|
+
GraphifyImportInfo,
|
|
29
|
+
GraphifyClassDetail,
|
|
30
|
+
GraphifyFunctionDetail,
|
|
31
|
+
GraphifyTypeDetail,
|
|
32
|
+
GraphifyModuleDetail,
|
|
33
|
+
GraphifyExternalDetail,
|
|
34
|
+
GraphifyComponentDetail,
|
|
35
|
+
GraphifyEdgeRef,
|
|
36
|
+
} from './consolidated';
|