@principal-ai/principal-view-core 0.24.77 → 0.24.79

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 (47) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +11 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/spans/index.d.ts +12 -0
  6. package/dist/spans/index.d.ts.map +1 -0
  7. package/dist/spans/index.js +23 -0
  8. package/dist/spans/index.js.map +1 -0
  9. package/dist/spans/utils.d.ts +58 -0
  10. package/dist/spans/utils.d.ts.map +1 -0
  11. package/dist/spans/utils.js +146 -0
  12. package/dist/spans/utils.js.map +1 -0
  13. package/dist/workflow/edge-derivation.d.ts +109 -0
  14. package/dist/workflow/edge-derivation.d.ts.map +1 -0
  15. package/dist/workflow/edge-derivation.js +171 -0
  16. package/dist/workflow/edge-derivation.js.map +1 -0
  17. package/dist/workflow/edge-validation.d.ts +170 -0
  18. package/dist/workflow/edge-validation.d.ts.map +1 -0
  19. package/dist/workflow/edge-validation.js +323 -0
  20. package/dist/workflow/edge-validation.js.map +1 -0
  21. package/dist/workflow/index.d.ts +6 -1
  22. package/dist/workflow/index.d.ts.map +1 -1
  23. package/dist/workflow/index.js +20 -1
  24. package/dist/workflow/index.js.map +1 -1
  25. package/dist/workflow/template-renderer.d.ts.map +1 -1
  26. package/dist/workflow/template-renderer.js +8 -4
  27. package/dist/workflow/template-renderer.js.map +1 -1
  28. package/dist/workflow/types.d.ts +58 -4
  29. package/dist/workflow/types.d.ts.map +1 -1
  30. package/dist/workflow/types.js +29 -0
  31. package/dist/workflow/types.js.map +1 -1
  32. package/dist/workflow/validator.d.ts.map +1 -1
  33. package/dist/workflow/validator.js +13 -6
  34. package/dist/workflow/validator.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/index.ts +13 -0
  37. package/src/spans/index.ts +22 -0
  38. package/src/spans/utils.ts +179 -0
  39. package/src/workflow/__tests__/edge-derivation.test.ts +448 -0
  40. package/src/workflow/__tests__/edge-validation.test.ts +417 -0
  41. package/src/workflow/__tests__/types.test.ts +187 -0
  42. package/src/workflow/edge-derivation.ts +259 -0
  43. package/src/workflow/edge-validation.ts +494 -0
  44. package/src/workflow/index.ts +42 -0
  45. package/src/workflow/template-renderer.ts +8 -4
  46. package/src/workflow/types.ts +73 -4
  47. package/src/workflow/validator.ts +13 -6
package/dist/index.d.ts CHANGED
@@ -44,6 +44,8 @@ export { CanvasDiscovery } from './discovery/CanvasDiscovery';
44
44
  export type { DiscoveredCanvas, DiscoveredTestTrace, DiscoveredWorkflow, DiscoveredStoryboard, CanvasDiscoveryResult, DiscoveryOptions, CanvasType, TestTraceType, DiscoveredCanvasWithContent, DiscoveredTestTraceWithContent, DiscoveredWorkflowWithContent, DiscoveredStoryboardWithContent, CanvasDiscoveryResultWithContent, } from './discovery/types';
45
45
  export { ScopesCanvasValidator, DEFAULT_SCOPE_COLOR, DRAFT_NODE_COLOR, isRecordFormat, getScopeNames, getScopeDefinition, getScopeColor, normalizeScopes, extractScopesFromResources, buildScopeColorMap, } from './scopes';
46
46
  export type { ScopesCanvasValidationContext, ScopesCanvasValidationResult, ScopesCanvasViolation, NormalizedScope, } from './scopes';
47
+ export { DEFAULT_SPAN_COLOR, extractSpanConvention, extractSpanConventions, buildSpanColorMap, buildSpanColorMapFromCanvases, matchSpanPattern, getSpanColor, resolveEventSpanColor, } from './spans';
48
+ export type { NormalizedSpanConvention } from './spans';
47
49
  export { ExecutionValidator, createExecutionValidator } from './execution/ExecutionValidator';
48
50
  export type { ExecutionData, ValidationError, ExecutionValidationResult, } from './execution/ExecutionValidator';
49
51
  export { analyzeCoverage } from './telemetry/coverage';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.getScopeMatchSummary = exports.scopeHasMatches = exports.getScopeWithMostSpans = exports.getSpanCountForScope = exports.findScopeByName = exports.getUnmatchedScopes = exports.getPartialMatchedScopes = exports.getMatchedScopes = exports.getAllScopes = exports.getPrimaryScope = exports.getScopeFromUnmatchedSpan = exports.getScopeFromStoryboardMatch = exports.getScopeFromScenarioMatch = exports.groupSpansByTrace = exports.createInMemoryVersionRegistry = exports.InMemoryVersionRegistry = exports.isWarnSeverity = exports.isErrorSeverity = exports.getSpanDuration = exports.parseNanoTime = exports.flattenResourceAttributes = exports.getAttributeValue = exports.findAttribute = exports.getAttributeStringValue = exports.TraceOrchestrator = exports.CompositeRegistry = exports.LocalRegistry = exports.RemoteRegistry = exports.OtlpTraceParser = exports.setNestedValue = exports.getNestedValue = exports.computeAggregates = exports.hasEventMatching = exports.getRequiredEvents = exports.selectScenario = exports.ParsedTemplate = exports.parseTemplate = exports.renderEventTemplate = exports.renderWorkflow = exports.getConfigNameFromFilename = exports.isYamlFile = exports.parseYaml = exports.CanvasConverter = exports.resolveCanvasColor = exports.CANVAS_COLOR_PRESETS = exports.hasPVExtension = exports.isGroupNode = exports.isLinkNode = exports.isFileNode = exports.isTextNode = void 0;
14
- exports.InMemoryFileSystemAdapter = exports.getAllNodeIds = exports.findNodesMatchingEventPattern = exports.resolveWorkflowNodeIds = exports.resolveScenarioNodeIds = exports.getNodeEventName = exports.buildEventNodeMap = exports.buildNodeSourcesMap = exports.buildStoryboardContext = exports.LibraryDiscovery = exports.LibraryConverter = exports.LibraryLoader = exports.EventRecorderService = exports.SessionManager = exports.PathBasedEventProcessor = exports.analyzeCoverage = exports.createExecutionValidator = exports.ExecutionValidator = exports.buildScopeColorMap = exports.extractScopesFromResources = exports.normalizeScopes = exports.getScopeColor = exports.getScopeDefinition = exports.getScopeNames = exports.isRecordFormat = exports.DRAFT_NODE_COLOR = exports.DEFAULT_SCOPE_COLOR = exports.ScopesCanvasValidator = exports.CanvasDiscovery = exports.SpanMatcher = void 0;
14
+ exports.InMemoryFileSystemAdapter = exports.getAllNodeIds = exports.findNodesMatchingEventPattern = exports.resolveWorkflowNodeIds = exports.resolveScenarioNodeIds = exports.getNodeEventName = exports.buildEventNodeMap = exports.buildNodeSourcesMap = exports.buildStoryboardContext = exports.LibraryDiscovery = exports.LibraryConverter = exports.LibraryLoader = exports.EventRecorderService = exports.SessionManager = exports.PathBasedEventProcessor = exports.analyzeCoverage = exports.createExecutionValidator = exports.ExecutionValidator = exports.resolveEventSpanColor = exports.getSpanColor = exports.matchSpanPattern = exports.buildSpanColorMapFromCanvases = exports.buildSpanColorMap = exports.extractSpanConventions = exports.extractSpanConvention = exports.DEFAULT_SPAN_COLOR = exports.buildScopeColorMap = exports.extractScopesFromResources = exports.normalizeScopes = exports.getScopeColor = exports.getScopeDefinition = exports.getScopeNames = exports.isRecordFormat = exports.DRAFT_NODE_COLOR = exports.DEFAULT_SCOPE_COLOR = exports.ScopesCanvasValidator = exports.CanvasDiscovery = exports.SpanMatcher = void 0;
15
15
  // Import canvas utility functions to re-export (avoids export-from syntax that breaks with exports field)
16
16
  const canvas_1 = require("./types/canvas");
17
17
  Object.defineProperty(exports, "isTextNode", { enumerable: true, get: function () { return canvas_1.isTextNode; } });
@@ -105,6 +105,16 @@ Object.defineProperty(exports, "getScopeColor", { enumerable: true, get: functio
105
105
  Object.defineProperty(exports, "normalizeScopes", { enumerable: true, get: function () { return scopes_1.normalizeScopes; } });
106
106
  Object.defineProperty(exports, "extractScopesFromResources", { enumerable: true, get: function () { return scopes_1.extractScopesFromResources; } });
107
107
  Object.defineProperty(exports, "buildScopeColorMap", { enumerable: true, get: function () { return scopes_1.buildScopeColorMap; } });
108
+ // Export spans module (span conventions + span color utilities)
109
+ var spans_1 = require("./spans");
110
+ Object.defineProperty(exports, "DEFAULT_SPAN_COLOR", { enumerable: true, get: function () { return spans_1.DEFAULT_SPAN_COLOR; } });
111
+ Object.defineProperty(exports, "extractSpanConvention", { enumerable: true, get: function () { return spans_1.extractSpanConvention; } });
112
+ Object.defineProperty(exports, "extractSpanConventions", { enumerable: true, get: function () { return spans_1.extractSpanConventions; } });
113
+ Object.defineProperty(exports, "buildSpanColorMap", { enumerable: true, get: function () { return spans_1.buildSpanColorMap; } });
114
+ Object.defineProperty(exports, "buildSpanColorMapFromCanvases", { enumerable: true, get: function () { return spans_1.buildSpanColorMapFromCanvases; } });
115
+ Object.defineProperty(exports, "matchSpanPattern", { enumerable: true, get: function () { return spans_1.matchSpanPattern; } });
116
+ Object.defineProperty(exports, "getSpanColor", { enumerable: true, get: function () { return spans_1.getSpanColor; } });
117
+ Object.defineProperty(exports, "resolveEventSpanColor", { enumerable: true, get: function () { return spans_1.resolveEventSpanColor; } });
108
118
  // Export execution validation (browser-safe - no Node.js dependencies)
109
119
  var ExecutionValidator_1 = require("./execution/ExecutionValidator");
110
120
  Object.defineProperty(exports, "ExecutionValidator", { enumerable: true, get: function () { return ExecutionValidator_1.ExecutionValidator; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Spans module
3
+ *
4
+ * Provides utilities for working with span conventions from .spans.canvas files.
5
+ * Span colors are used as fill colors for events emitted within that span.
6
+ *
7
+ * Color Contract:
8
+ * - Scope color → Border (from library.yaml owned-scopes)
9
+ * - Span color → Fill (from .spans.canvas)
10
+ */
11
+ export { DEFAULT_SPAN_COLOR, extractSpanConvention, extractSpanConventions, buildSpanColorMap, buildSpanColorMapFromCanvases, matchSpanPattern, getSpanColor, resolveEventSpanColor, type NormalizedSpanConvention, } from './utils';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spans/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,KAAK,wBAAwB,GAC9B,MAAM,SAAS,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Spans module
4
+ *
5
+ * Provides utilities for working with span conventions from .spans.canvas files.
6
+ * Span colors are used as fill colors for events emitted within that span.
7
+ *
8
+ * Color Contract:
9
+ * - Scope color → Border (from library.yaml owned-scopes)
10
+ * - Span color → Fill (from .spans.canvas)
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.resolveEventSpanColor = exports.getSpanColor = exports.matchSpanPattern = exports.buildSpanColorMapFromCanvases = exports.buildSpanColorMap = exports.extractSpanConventions = exports.extractSpanConvention = exports.DEFAULT_SPAN_COLOR = void 0;
14
+ var utils_1 = require("./utils");
15
+ Object.defineProperty(exports, "DEFAULT_SPAN_COLOR", { enumerable: true, get: function () { return utils_1.DEFAULT_SPAN_COLOR; } });
16
+ Object.defineProperty(exports, "extractSpanConvention", { enumerable: true, get: function () { return utils_1.extractSpanConvention; } });
17
+ Object.defineProperty(exports, "extractSpanConventions", { enumerable: true, get: function () { return utils_1.extractSpanConventions; } });
18
+ Object.defineProperty(exports, "buildSpanColorMap", { enumerable: true, get: function () { return utils_1.buildSpanColorMap; } });
19
+ Object.defineProperty(exports, "buildSpanColorMapFromCanvases", { enumerable: true, get: function () { return utils_1.buildSpanColorMapFromCanvases; } });
20
+ Object.defineProperty(exports, "matchSpanPattern", { enumerable: true, get: function () { return utils_1.matchSpanPattern; } });
21
+ Object.defineProperty(exports, "getSpanColor", { enumerable: true, get: function () { return utils_1.getSpanColor; } });
22
+ Object.defineProperty(exports, "resolveEventSpanColor", { enumerable: true, get: function () { return utils_1.resolveEventSpanColor; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/spans/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,iCAUiB;AATf,2GAAA,kBAAkB,OAAA;AAClB,8GAAA,qBAAqB,OAAA;AACrB,+GAAA,sBAAsB,OAAA;AACtB,0GAAA,iBAAiB,OAAA;AACjB,sHAAA,6BAA6B,OAAA;AAC7B,yGAAA,gBAAgB,OAAA;AAChB,qGAAA,YAAY,OAAA;AACZ,8GAAA,qBAAqB,OAAA"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Span utility functions
3
+ *
4
+ * Helpers for working with span conventions from .spans.canvas files.
5
+ * Span colors are used as fill colors for events emitted within that span.
6
+ */
7
+ import type { ExtendedCanvas, ExtendedCanvasNode } from '../types/canvas';
8
+ /** Default color for spans without a defined color */
9
+ export declare const DEFAULT_SPAN_COLOR = "#9CA3AF";
10
+ /**
11
+ * Normalized span convention entry
12
+ */
13
+ export interface NormalizedSpanConvention {
14
+ /** Unique identifier for this span convention */
15
+ id: string;
16
+ /** Pattern to match span names (e.g., "validate.*") */
17
+ spanPattern: string;
18
+ /** Color for this span (used as fill for events) */
19
+ color: string;
20
+ /** Human-readable description */
21
+ description?: string;
22
+ /** Status of the span convention */
23
+ status?: 'draft' | 'approved' | 'implemented';
24
+ }
25
+ /**
26
+ * Extract span convention from a canvas node
27
+ */
28
+ export declare function extractSpanConvention(node: ExtendedCanvasNode): NormalizedSpanConvention | null;
29
+ /**
30
+ * Extract all span conventions from a spans.canvas file
31
+ */
32
+ export declare function extractSpanConventions(canvas: ExtendedCanvas): NormalizedSpanConvention[];
33
+ /**
34
+ * Build a span color map from a spans.canvas
35
+ * Returns a map of spanPattern -> color for fast lookups
36
+ */
37
+ export declare function buildSpanColorMap(canvas: ExtendedCanvas | null | undefined): Record<string, string>;
38
+ /**
39
+ * Build a span color map from multiple spans.canvas files
40
+ * Later files override earlier ones for duplicate patterns
41
+ */
42
+ export declare function buildSpanColorMapFromCanvases(canvases: (ExtendedCanvas | null | undefined)[]): Record<string, string>;
43
+ /**
44
+ * Match a span name to a span pattern
45
+ * Supports exact matches and wildcard patterns (e.g., "validate.*")
46
+ */
47
+ export declare function matchSpanPattern(spanName: string, pattern: string): boolean;
48
+ /**
49
+ * Find the color for a span name by matching against span patterns
50
+ * Returns the first matching pattern's color, or default if none match
51
+ */
52
+ export declare function getSpanColor(spanName: string, spanColorMap: Record<string, string>): string;
53
+ /**
54
+ * Resolve span color for an event based on its workflow's spanPattern
55
+ * This is the primary method for determining event fill color
56
+ */
57
+ export declare function resolveEventSpanColor(workflowSpanPattern: string | undefined, spanColorMap: Record<string, string>): string;
58
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spans/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,GAAG,wBAAwB,GAAG,IAAI,CAkC/F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,wBAAwB,EAAE,CAazF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWnG;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYxB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAW3E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,CAcR;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,CASR"}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ /**
3
+ * Span utility functions
4
+ *
5
+ * Helpers for working with span conventions from .spans.canvas files.
6
+ * Span colors are used as fill colors for events emitted within that span.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.resolveEventSpanColor = exports.getSpanColor = exports.matchSpanPattern = exports.buildSpanColorMapFromCanvases = exports.buildSpanColorMap = exports.extractSpanConventions = exports.extractSpanConvention = exports.DEFAULT_SPAN_COLOR = void 0;
10
+ /** Default color for spans without a defined color */
11
+ exports.DEFAULT_SPAN_COLOR = '#9CA3AF'; // gray-400
12
+ /**
13
+ * Extract span convention from a canvas node
14
+ */
15
+ function extractSpanConvention(node) {
16
+ const pv = node.pv;
17
+ if (!pv)
18
+ return null;
19
+ const nodeType = pv.nodeType;
20
+ if (nodeType !== 'span-convention')
21
+ return null;
22
+ const otel = pv.otel;
23
+ const spanPattern = otel?.spanPattern;
24
+ if (!spanPattern)
25
+ return null;
26
+ // Get color from node (required for span conventions)
27
+ const color = node.color;
28
+ if (!color)
29
+ return null;
30
+ // Extract description from node text if present (only text nodes have text)
31
+ let description;
32
+ if ('text' in node && typeof node.text === 'string') {
33
+ const text = node.text;
34
+ // Try to extract description from markdown (lines after the header)
35
+ const lines = text.split('\n');
36
+ const descLines = lines.filter(line => !line.startsWith('#') && line.trim());
37
+ if (descLines.length > 0) {
38
+ description = descLines.join(' ').trim();
39
+ }
40
+ }
41
+ return {
42
+ id: node.id,
43
+ spanPattern,
44
+ color,
45
+ description,
46
+ status: pv.status,
47
+ };
48
+ }
49
+ exports.extractSpanConvention = extractSpanConvention;
50
+ /**
51
+ * Extract all span conventions from a spans.canvas file
52
+ */
53
+ function extractSpanConventions(canvas) {
54
+ const conventions = [];
55
+ if (!canvas.nodes)
56
+ return conventions;
57
+ for (const node of canvas.nodes) {
58
+ const convention = extractSpanConvention(node);
59
+ if (convention) {
60
+ conventions.push(convention);
61
+ }
62
+ }
63
+ return conventions;
64
+ }
65
+ exports.extractSpanConventions = extractSpanConventions;
66
+ /**
67
+ * Build a span color map from a spans.canvas
68
+ * Returns a map of spanPattern -> color for fast lookups
69
+ */
70
+ function buildSpanColorMap(canvas) {
71
+ const colorMap = {};
72
+ if (!canvas)
73
+ return colorMap;
74
+ const conventions = extractSpanConventions(canvas);
75
+ for (const convention of conventions) {
76
+ colorMap[convention.spanPattern] = convention.color;
77
+ }
78
+ return colorMap;
79
+ }
80
+ exports.buildSpanColorMap = buildSpanColorMap;
81
+ /**
82
+ * Build a span color map from multiple spans.canvas files
83
+ * Later files override earlier ones for duplicate patterns
84
+ */
85
+ function buildSpanColorMapFromCanvases(canvases) {
86
+ const colorMap = {};
87
+ for (const canvas of canvases) {
88
+ if (!canvas)
89
+ continue;
90
+ const conventions = extractSpanConventions(canvas);
91
+ for (const convention of conventions) {
92
+ colorMap[convention.spanPattern] = convention.color;
93
+ }
94
+ }
95
+ return colorMap;
96
+ }
97
+ exports.buildSpanColorMapFromCanvases = buildSpanColorMapFromCanvases;
98
+ /**
99
+ * Match a span name to a span pattern
100
+ * Supports exact matches and wildcard patterns (e.g., "validate.*")
101
+ */
102
+ function matchSpanPattern(spanName, pattern) {
103
+ // Exact match
104
+ if (spanName === pattern)
105
+ return true;
106
+ // Wildcard pattern (e.g., "validate.*")
107
+ if (pattern.endsWith('.*')) {
108
+ const prefix = pattern.slice(0, -2);
109
+ return spanName.startsWith(prefix + '.') || spanName === prefix;
110
+ }
111
+ return false;
112
+ }
113
+ exports.matchSpanPattern = matchSpanPattern;
114
+ /**
115
+ * Find the color for a span name by matching against span patterns
116
+ * Returns the first matching pattern's color, or default if none match
117
+ */
118
+ function getSpanColor(spanName, spanColorMap) {
119
+ // First try exact match
120
+ if (spanColorMap[spanName]) {
121
+ return spanColorMap[spanName];
122
+ }
123
+ // Then try pattern matching
124
+ for (const [pattern, color] of Object.entries(spanColorMap)) {
125
+ if (matchSpanPattern(spanName, pattern)) {
126
+ return color;
127
+ }
128
+ }
129
+ return exports.DEFAULT_SPAN_COLOR;
130
+ }
131
+ exports.getSpanColor = getSpanColor;
132
+ /**
133
+ * Resolve span color for an event based on its workflow's spanPattern
134
+ * This is the primary method for determining event fill color
135
+ */
136
+ function resolveEventSpanColor(workflowSpanPattern, spanColorMap) {
137
+ if (!workflowSpanPattern)
138
+ return exports.DEFAULT_SPAN_COLOR;
139
+ // Direct lookup (pattern as key)
140
+ if (spanColorMap[workflowSpanPattern]) {
141
+ return spanColorMap[workflowSpanPattern];
142
+ }
143
+ return exports.DEFAULT_SPAN_COLOR;
144
+ }
145
+ exports.resolveEventSpanColor = resolveEventSpanColor;
146
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/spans/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,sDAAsD;AACzC,QAAA,kBAAkB,GAAG,SAAS,CAAC,CAAC,WAAW;AAkBxD;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAwB;IAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAErB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;IAC7B,IAAI,QAAQ,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAEhD,MAAM,IAAI,GAAG,EAAE,CAAC,IAA+D,CAAC;IAChF,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;IACtC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,sDAAsD;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAA2B,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,4EAA4E;IAC5E,IAAI,WAA+B,CAAC;IACpC,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,oEAAoE;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SAC1C;KACF;IAED,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,WAAW;QACX,KAAK;QACL,WAAW;QACX,MAAM,EAAE,EAAE,CAAC,MAA0D;KACtE,CAAC;AACJ,CAAC;AAlCD,sDAkCC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAAC,MAAsB;IAC3D,MAAM,WAAW,GAA+B,EAAE,CAAC;IAEnD,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,WAAW,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;QAC/B,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,UAAU,EAAE;YACd,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B;KACF;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAbD,wDAaC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,MAAyC;IACzE,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAE7B,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACnD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;KACrD;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAXD,8CAWC;AAED;;;GAGG;AACH,SAAgB,6BAA6B,CAC3C,QAA+C;IAE/C,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;QAC7B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACnD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;SACrD;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAdD,sEAcC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,OAAe;IAChE,cAAc;IACd,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAEtC,wCAAwC;IACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,QAAQ,KAAK,MAAM,CAAC;KACjE;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAXD,4CAWC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAC1B,QAAgB,EAChB,YAAoC;IAEpC,wBAAwB;IACxB,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;KAC/B;IAED,4BAA4B;IAC5B,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC3D,IAAI,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,0BAAkB,CAAC;AAC5B,CAAC;AAjBD,oCAiBC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,mBAAuC,EACvC,YAAoC;IAEpC,IAAI,CAAC,mBAAmB;QAAE,OAAO,0BAAkB,CAAC;IAEpD,iCAAiC;IACjC,IAAI,YAAY,CAAC,mBAAmB,CAAC,EAAE;QACrC,OAAO,YAAY,CAAC,mBAAmB,CAAC,CAAC;KAC1C;IAED,OAAO,0BAAkB,CAAC;AAC5B,CAAC;AAZD,sDAYC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Edge Derivation from Workflows
3
+ *
4
+ * Extracts span context from workflow event templates and derives
5
+ * expected edges (span transitions) for validation against spans.canvas.
6
+ *
7
+ * @see .principal-views/WORKFLOW-SPAN-INTEGRATION.md
8
+ */
9
+ import type { WorkflowTemplate, WorkflowScenario } from './types';
10
+ /**
11
+ * A derived edge representing a span transition observed in a workflow
12
+ */
13
+ export interface DerivedEdge {
14
+ /** Source span name (exact) */
15
+ fromSpan: string;
16
+ /** Target span name (exact) */
17
+ toSpan: string;
18
+ /** Workflow file where this edge was observed */
19
+ workflowFile?: string;
20
+ /** Scenario ID where this edge was observed */
21
+ scenarioId: string;
22
+ /** Event names that caused this transition */
23
+ eventNames: string[];
24
+ }
25
+ /**
26
+ * Result of edge derivation from a single workflow
27
+ */
28
+ export interface WorkflowEdgeDerivationResult {
29
+ /** Workflow name */
30
+ workflowName: string;
31
+ /** Root span for this workflow */
32
+ rootSpan: string | undefined;
33
+ /** All spans referenced in this workflow */
34
+ referencedSpans: string[];
35
+ /** Derived edges per scenario */
36
+ scenarioEdges: Array<{
37
+ scenarioId: string;
38
+ edges: DerivedEdge[];
39
+ }>;
40
+ }
41
+ /**
42
+ * Result of edge derivation across all workflows
43
+ */
44
+ export interface EdgeDerivationResult {
45
+ /** All derived edges (deduplicated) */
46
+ edges: DerivedEdge[];
47
+ /** Per-workflow breakdown */
48
+ workflows: WorkflowEdgeDerivationResult[];
49
+ /** All unique spans referenced across workflows */
50
+ allSpans: string[];
51
+ }
52
+ /**
53
+ * Extract span context from a workflow's event templates
54
+ *
55
+ * @param scenario - Workflow scenario to analyze
56
+ * @param rootSpan - Default span for events without explicit span
57
+ * @returns Array of { eventName, span } entries in template order
58
+ */
59
+ export declare function extractEventSpans(scenario: WorkflowScenario, rootSpan: string | undefined): Array<{
60
+ eventName: string;
61
+ span: string;
62
+ }>;
63
+ /**
64
+ * Derive edges from span transitions in event sequence
65
+ *
66
+ * Identifies when consecutive events are in different spans,
67
+ * which represents a potential edge (call relationship).
68
+ *
69
+ * Note: This captures temporal order, not parent-child nesting.
70
+ * We observe "span A was active, then span B was active" but
71
+ * cannot infer nesting without actual trace data.
72
+ *
73
+ * @param eventSpans - Event-span mappings in order
74
+ * @param scenarioId - ID of the scenario being analyzed
75
+ * @returns Array of derived edges
76
+ */
77
+ export declare function deriveEdgesFromSequence(eventSpans: Array<{
78
+ eventName: string;
79
+ span: string;
80
+ }>, scenarioId: string): DerivedEdge[];
81
+ /**
82
+ * Derive all edges from a workflow template
83
+ *
84
+ * @param workflow - Workflow template to analyze
85
+ * @param workflowFile - Optional file path for tracking
86
+ * @returns Edge derivation result for this workflow
87
+ */
88
+ export declare function deriveWorkflowEdges(workflow: WorkflowTemplate, workflowFile?: string): WorkflowEdgeDerivationResult;
89
+ /**
90
+ * Derive edges from multiple workflows
91
+ *
92
+ * @param workflows - Array of { workflow, filePath } pairs
93
+ * @returns Combined edge derivation result
94
+ */
95
+ export declare function deriveEdgesFromWorkflows(workflows: Array<{
96
+ workflow: WorkflowTemplate;
97
+ filePath?: string;
98
+ }>): EdgeDerivationResult;
99
+ /**
100
+ * Group derived edges by source and target for display
101
+ *
102
+ * @param edges - Derived edges to group
103
+ * @returns Map of edge key to list of workflows/scenarios containing it
104
+ */
105
+ export declare function groupEdgesBySources(edges: DerivedEdge[]): Map<string, Array<{
106
+ workflowFile?: string;
107
+ scenarioId: string;
108
+ }>>;
109
+ //# sourceMappingURL=edge-derivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-derivation.d.ts","sourceRoot":"","sources":["../../src/workflow/edge-derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGlE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IAEjB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEf,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IAEnB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,4CAA4C;IAC5C,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B,iCAAiC;IACjC,aAAa,EAAE,KAAK,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,WAAW,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,KAAK,EAAE,WAAW,EAAE,CAAC;IAErB,6BAA6B;IAC7B,SAAS,EAAE,4BAA4B,EAAE,CAAC;IAE1C,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,UAAU,EAAE,MAAM,GACjB,WAAW,EAAE,CAyBf;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,CAAC,EAAE,MAAM,GACpB,4BAA4B,CAuC9B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,oBAAoB,CA+BtB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAAE,GACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAcnE"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ /**
3
+ * Edge Derivation from Workflows
4
+ *
5
+ * Extracts span context from workflow event templates and derives
6
+ * expected edges (span transitions) for validation against spans.canvas.
7
+ *
8
+ * @see .principal-views/WORKFLOW-SPAN-INTEGRATION.md
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.groupEdgesBySources = exports.deriveEdgesFromWorkflows = exports.deriveWorkflowEdges = exports.deriveEdgesFromSequence = exports.extractEventSpans = void 0;
12
+ const types_1 = require("./types");
13
+ /**
14
+ * Extract span context from a workflow's event templates
15
+ *
16
+ * @param scenario - Workflow scenario to analyze
17
+ * @param rootSpan - Default span for events without explicit span
18
+ * @returns Array of { eventName, span } entries in template order
19
+ */
20
+ function extractEventSpans(scenario, rootSpan) {
21
+ const events = scenario.template.events;
22
+ if (!events) {
23
+ return [];
24
+ }
25
+ const result = [];
26
+ for (const [eventName, eventTemplate] of Object.entries(events)) {
27
+ const explicitSpan = (0, types_1.isEventTemplate)(eventTemplate)
28
+ ? (0, types_1.getEventSpan)(eventTemplate)
29
+ : undefined;
30
+ // Use explicit span if provided, otherwise fall back to rootSpan
31
+ const span = explicitSpan ?? rootSpan;
32
+ if (span) {
33
+ result.push({ eventName, span });
34
+ }
35
+ }
36
+ return result;
37
+ }
38
+ exports.extractEventSpans = extractEventSpans;
39
+ /**
40
+ * Derive edges from span transitions in event sequence
41
+ *
42
+ * Identifies when consecutive events are in different spans,
43
+ * which represents a potential edge (call relationship).
44
+ *
45
+ * Note: This captures temporal order, not parent-child nesting.
46
+ * We observe "span A was active, then span B was active" but
47
+ * cannot infer nesting without actual trace data.
48
+ *
49
+ * @param eventSpans - Event-span mappings in order
50
+ * @param scenarioId - ID of the scenario being analyzed
51
+ * @returns Array of derived edges
52
+ */
53
+ function deriveEdgesFromSequence(eventSpans, scenarioId) {
54
+ const edges = [];
55
+ const seenEdges = new Set();
56
+ for (let i = 0; i < eventSpans.length - 1; i++) {
57
+ const current = eventSpans[i];
58
+ const next = eventSpans[i + 1];
59
+ // Transition occurs when spans differ
60
+ if (current.span !== next.span) {
61
+ const edgeKey = `${current.span}->${next.span}`;
62
+ if (!seenEdges.has(edgeKey)) {
63
+ seenEdges.add(edgeKey);
64
+ edges.push({
65
+ fromSpan: current.span,
66
+ toSpan: next.span,
67
+ scenarioId,
68
+ eventNames: [current.eventName, next.eventName],
69
+ });
70
+ }
71
+ }
72
+ }
73
+ return edges;
74
+ }
75
+ exports.deriveEdgesFromSequence = deriveEdgesFromSequence;
76
+ /**
77
+ * Derive all edges from a workflow template
78
+ *
79
+ * @param workflow - Workflow template to analyze
80
+ * @param workflowFile - Optional file path for tracking
81
+ * @returns Edge derivation result for this workflow
82
+ */
83
+ function deriveWorkflowEdges(workflow, workflowFile) {
84
+ const rootSpan = (0, types_1.getWorkflowRootSpan)(workflow);
85
+ const allSpans = new Set();
86
+ const scenarioEdges = [];
87
+ if (rootSpan) {
88
+ allSpans.add(rootSpan);
89
+ }
90
+ for (const scenario of workflow.scenarios) {
91
+ const eventSpans = extractEventSpans(scenario, rootSpan);
92
+ // Collect all referenced spans
93
+ for (const { span } of eventSpans) {
94
+ allSpans.add(span);
95
+ }
96
+ // Derive edges from transitions
97
+ const edges = deriveEdgesFromSequence(eventSpans, scenario.id);
98
+ // Attach workflow file to each edge
99
+ if (workflowFile) {
100
+ for (const edge of edges) {
101
+ edge.workflowFile = workflowFile;
102
+ }
103
+ }
104
+ scenarioEdges.push({
105
+ scenarioId: scenario.id,
106
+ edges,
107
+ });
108
+ }
109
+ return {
110
+ workflowName: workflow.name,
111
+ rootSpan,
112
+ referencedSpans: Array.from(allSpans),
113
+ scenarioEdges,
114
+ };
115
+ }
116
+ exports.deriveWorkflowEdges = deriveWorkflowEdges;
117
+ /**
118
+ * Derive edges from multiple workflows
119
+ *
120
+ * @param workflows - Array of { workflow, filePath } pairs
121
+ * @returns Combined edge derivation result
122
+ */
123
+ function deriveEdgesFromWorkflows(workflows) {
124
+ const allSpans = new Set();
125
+ const workflowResults = [];
126
+ const edgeMap = new Map();
127
+ for (const { workflow, filePath } of workflows) {
128
+ const result = deriveWorkflowEdges(workflow, filePath);
129
+ workflowResults.push(result);
130
+ // Collect spans
131
+ for (const span of result.referencedSpans) {
132
+ allSpans.add(span);
133
+ }
134
+ // Collect and deduplicate edges
135
+ for (const scenarioResult of result.scenarioEdges) {
136
+ for (const edge of scenarioResult.edges) {
137
+ const key = `${edge.fromSpan}->${edge.toSpan}`;
138
+ if (!edgeMap.has(key)) {
139
+ edgeMap.set(key, edge);
140
+ }
141
+ }
142
+ }
143
+ }
144
+ return {
145
+ edges: Array.from(edgeMap.values()),
146
+ workflows: workflowResults,
147
+ allSpans: Array.from(allSpans),
148
+ };
149
+ }
150
+ exports.deriveEdgesFromWorkflows = deriveEdgesFromWorkflows;
151
+ /**
152
+ * Group derived edges by source and target for display
153
+ *
154
+ * @param edges - Derived edges to group
155
+ * @returns Map of edge key to list of workflows/scenarios containing it
156
+ */
157
+ function groupEdgesBySources(edges) {
158
+ const grouped = new Map();
159
+ for (const edge of edges) {
160
+ const key = `${edge.fromSpan}->${edge.toSpan}`;
161
+ const sources = grouped.get(key) || [];
162
+ sources.push({
163
+ workflowFile: edge.workflowFile,
164
+ scenarioId: edge.scenarioId,
165
+ });
166
+ grouped.set(key, sources);
167
+ }
168
+ return grouped;
169
+ }
170
+ exports.groupEdgesBySources = groupEdgesBySources;
171
+ //# sourceMappingURL=edge-derivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-derivation.js","sourceRoot":"","sources":["../../src/workflow/edge-derivation.ts"],"names":[],"mappings":"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"}