@principal-ai/principal-view-core 0.18.1 → 0.19.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.
- package/dist/discovery/CanvasDiscovery.d.ts +3 -3
- package/dist/discovery/CanvasDiscovery.js +21 -21
- package/dist/discovery/CanvasDiscovery.js.map +1 -1
- package/dist/discovery/types.d.ts +19 -19
- package/dist/discovery/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +3 -3
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -2
- package/dist/node.js.map +1 -1
- package/dist/workflow/index.d.ts +2 -1
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +1 -1
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/template-parser.d.ts +26 -2
- package/dist/workflow/template-parser.d.ts.map +1 -1
- package/dist/workflow/template-parser.js +204 -3
- package/dist/workflow/template-parser.js.map +1 -1
- package/dist/workflow/template-renderer.js +12 -12
- package/dist/workflow/template-renderer.js.map +1 -1
- package/package.json +1 -1
- package/src/discovery/CanvasDiscovery.ts +27 -27
- package/src/discovery/types.ts +19 -19
- package/src/index.ts +6 -5
- package/src/node.ts +6 -4
- package/src/workflow/__tests__/template-parser.test.ts +142 -42
- package/src/workflow/index.ts +2 -1
- package/src/workflow/template-parser.ts +253 -5
- package/src/workflow/template-renderer.ts +12 -12
|
@@ -27,20 +27,221 @@ Handlebars.registerHelper('or', (...args) => {
|
|
|
27
27
|
return values.some(Boolean);
|
|
28
28
|
});
|
|
29
29
|
Handlebars.registerHelper('not', (a) => !a);
|
|
30
|
+
/**
|
|
31
|
+
* Structured representation of a parsed template with metadata about variables
|
|
32
|
+
*/
|
|
33
|
+
export class ParsedTemplate {
|
|
34
|
+
constructor(segments) {
|
|
35
|
+
this.segments = segments;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Convert to flat string for backwards compatibility
|
|
39
|
+
*/
|
|
40
|
+
toString() {
|
|
41
|
+
return this.segments.map((seg) => seg.value).join('');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extract variable references from a Handlebars AST node
|
|
46
|
+
*/
|
|
47
|
+
function extractVariables(node, variables = new Set()) {
|
|
48
|
+
if (node.type === 'MustacheStatement' || node.type === 'SubExpression') {
|
|
49
|
+
const mustache = node;
|
|
50
|
+
if (mustache.path.type === 'PathExpression') {
|
|
51
|
+
const pathExpr = mustache.path;
|
|
52
|
+
// Only track simple variable references, not helpers
|
|
53
|
+
if (pathExpr.data === false && !mustache.params?.length) {
|
|
54
|
+
variables.add(pathExpr.original);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Process parameters (they might contain variables)
|
|
58
|
+
if (mustache.params) {
|
|
59
|
+
mustache.params.forEach((param) => extractVariables(param, variables));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else if (node.type === 'PathExpression') {
|
|
63
|
+
const pathExpr = node;
|
|
64
|
+
if (pathExpr.data === false) {
|
|
65
|
+
variables.add(pathExpr.original);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if (node.type === 'BlockStatement') {
|
|
69
|
+
const block = node;
|
|
70
|
+
if (block.program) {
|
|
71
|
+
extractVariables(block.program, variables);
|
|
72
|
+
}
|
|
73
|
+
if (block.inverse) {
|
|
74
|
+
extractVariables(block.inverse, variables);
|
|
75
|
+
}
|
|
76
|
+
// Process block parameters
|
|
77
|
+
if (block.params) {
|
|
78
|
+
block.params.forEach((param) => extractVariables(param, variables));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (node.type === 'Program') {
|
|
82
|
+
const program = node;
|
|
83
|
+
program.body.forEach((child) => extractVariables(child, variables));
|
|
84
|
+
}
|
|
85
|
+
else if (node.type === 'PartialStatement') {
|
|
86
|
+
const partial = node;
|
|
87
|
+
if (partial.params) {
|
|
88
|
+
partial.params.forEach((param) => extractVariables(param, variables));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return variables;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Resolve a variable path in a context object
|
|
95
|
+
* Returns [value, resolved] where resolved indicates if the path exists
|
|
96
|
+
*/
|
|
97
|
+
function resolveVariable(path, context) {
|
|
98
|
+
const parts = path.split('.');
|
|
99
|
+
let current = context;
|
|
100
|
+
for (const part of parts) {
|
|
101
|
+
if (current == null || typeof current !== 'object') {
|
|
102
|
+
return [undefined, false];
|
|
103
|
+
}
|
|
104
|
+
if (!(part in current)) {
|
|
105
|
+
return [undefined, false];
|
|
106
|
+
}
|
|
107
|
+
current = current[part];
|
|
108
|
+
}
|
|
109
|
+
return [current, true];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Build segments from rendered output by identifying variable boundaries
|
|
113
|
+
*/
|
|
114
|
+
function buildSegments(template, rendered, context) {
|
|
115
|
+
const segments = [];
|
|
116
|
+
// Find all {{variable}} patterns in the rendered output (these are unresolved)
|
|
117
|
+
const unresolvedPattern = /\{\{([^}]+)\}\}/g;
|
|
118
|
+
const unresolvedMatches = Array.from(rendered.matchAll(unresolvedPattern));
|
|
119
|
+
if (unresolvedMatches.length === 0) {
|
|
120
|
+
// No unresolved variables, check if we have any variables at all
|
|
121
|
+
try {
|
|
122
|
+
const ast = Handlebars.parse(template);
|
|
123
|
+
const variables = extractVariables(ast);
|
|
124
|
+
if (variables.size === 0) {
|
|
125
|
+
// Pure text template
|
|
126
|
+
return [{ type: 'text', value: rendered }];
|
|
127
|
+
}
|
|
128
|
+
// All variables resolved - need to parse more carefully
|
|
129
|
+
// This is complex, so for MVP we'll use a simpler heuristic:
|
|
130
|
+
// Split by variable positions in the template and match to rendered output
|
|
131
|
+
return buildSegmentsWithResolvedVariables(template, rendered, context, variables);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// If parsing fails, return as text
|
|
135
|
+
return [{ type: 'text', value: rendered }];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Build segments with unresolved variables
|
|
139
|
+
let lastIndex = 0;
|
|
140
|
+
for (const match of unresolvedMatches) {
|
|
141
|
+
const beforeText = rendered.substring(lastIndex, match.index);
|
|
142
|
+
if (beforeText) {
|
|
143
|
+
segments.push({ type: 'text', value: beforeText });
|
|
144
|
+
}
|
|
145
|
+
segments.push({
|
|
146
|
+
type: 'variable',
|
|
147
|
+
value: match[0],
|
|
148
|
+
variableName: match[1].trim(),
|
|
149
|
+
resolved: false,
|
|
150
|
+
});
|
|
151
|
+
lastIndex = match.index + match[0].length;
|
|
152
|
+
}
|
|
153
|
+
// Add remaining text
|
|
154
|
+
if (lastIndex < rendered.length) {
|
|
155
|
+
segments.push({ type: 'text', value: rendered.substring(lastIndex) });
|
|
156
|
+
}
|
|
157
|
+
return segments;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Build segments when all variables are resolved
|
|
161
|
+
* This uses template analysis to identify variable positions
|
|
162
|
+
*/
|
|
163
|
+
function buildSegmentsWithResolvedVariables(template, rendered, context, variables) {
|
|
164
|
+
const segments = [];
|
|
165
|
+
// Find all variable positions in the template
|
|
166
|
+
const varPattern = /\{\{([^}]+)\}\}/g;
|
|
167
|
+
const templateMatches = Array.from(template.matchAll(varPattern));
|
|
168
|
+
if (templateMatches.length === 0) {
|
|
169
|
+
return [{ type: 'text', value: rendered }];
|
|
170
|
+
}
|
|
171
|
+
let templateIndex = 0;
|
|
172
|
+
let renderedIndex = 0;
|
|
173
|
+
for (const match of templateMatches) {
|
|
174
|
+
const varName = match[1].trim();
|
|
175
|
+
// Check if this is a helper or a simple variable
|
|
176
|
+
const isHelper = varName.startsWith('#') ||
|
|
177
|
+
varName.startsWith('/') ||
|
|
178
|
+
varName.startsWith('^') ||
|
|
179
|
+
varName.startsWith('>') ||
|
|
180
|
+
!variables.has(varName);
|
|
181
|
+
if (isHelper) {
|
|
182
|
+
continue; // Skip helpers for now
|
|
183
|
+
}
|
|
184
|
+
// Add text before this variable
|
|
185
|
+
const textBefore = template.substring(templateIndex, match.index);
|
|
186
|
+
if (textBefore && renderedIndex < rendered.length) {
|
|
187
|
+
const textLength = textBefore.length;
|
|
188
|
+
segments.push({ type: 'text', value: rendered.substring(renderedIndex, renderedIndex + textLength) });
|
|
189
|
+
renderedIndex += textLength;
|
|
190
|
+
}
|
|
191
|
+
// Resolve the variable
|
|
192
|
+
const [value, resolved] = resolveVariable(varName, context);
|
|
193
|
+
if (resolved && value !== undefined) {
|
|
194
|
+
const valueStr = String(value);
|
|
195
|
+
segments.push({
|
|
196
|
+
type: 'variable',
|
|
197
|
+
value: valueStr,
|
|
198
|
+
variableName: varName,
|
|
199
|
+
resolved: true,
|
|
200
|
+
});
|
|
201
|
+
renderedIndex += valueStr.length;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
// Unresolved - should appear as {{varName}} in output
|
|
205
|
+
const unresolvedStr = `{{${varName}}}`;
|
|
206
|
+
segments.push({
|
|
207
|
+
type: 'variable',
|
|
208
|
+
value: unresolvedStr,
|
|
209
|
+
variableName: varName,
|
|
210
|
+
resolved: false,
|
|
211
|
+
});
|
|
212
|
+
renderedIndex += unresolvedStr.length;
|
|
213
|
+
}
|
|
214
|
+
templateIndex = match.index + match[0].length;
|
|
215
|
+
}
|
|
216
|
+
// Add remaining text
|
|
217
|
+
if (renderedIndex < rendered.length) {
|
|
218
|
+
segments.push({ type: 'text', value: rendered.substring(renderedIndex) });
|
|
219
|
+
}
|
|
220
|
+
return segments;
|
|
221
|
+
}
|
|
30
222
|
/**
|
|
31
223
|
* Parse and evaluate a template string using Handlebars
|
|
32
224
|
*
|
|
33
225
|
* @param template - Template string with {{variables}}
|
|
34
226
|
* @param context - Data context for variable lookup
|
|
35
|
-
* @returns
|
|
227
|
+
* @returns ParsedTemplate with structured segments and variable metadata
|
|
36
228
|
*/
|
|
37
229
|
export function parseTemplate(template, context) {
|
|
38
230
|
try {
|
|
39
231
|
const handlebarTemplate = Handlebars.compile(template, { noEscape: true });
|
|
40
|
-
|
|
232
|
+
const rendered = handlebarTemplate(context);
|
|
233
|
+
// Build structured segments
|
|
234
|
+
const segments = buildSegments(template, rendered, context);
|
|
235
|
+
return new ParsedTemplate(segments);
|
|
41
236
|
}
|
|
42
237
|
catch (error) {
|
|
43
|
-
|
|
238
|
+
// Return error as a single text segment
|
|
239
|
+
return new ParsedTemplate([
|
|
240
|
+
{
|
|
241
|
+
type: 'text',
|
|
242
|
+
value: `{ERROR: Template parsing failed - ${error instanceof Error ? error.message : 'unknown'}}`,
|
|
243
|
+
},
|
|
244
|
+
]);
|
|
44
245
|
}
|
|
45
246
|
}
|
|
46
247
|
//# sourceMappingURL=template-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-parser.js","sourceRoot":"","sources":["../../src/workflow/template-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,qCAAqC;AACrC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;IAC3C,6CAA6C;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AACH,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;IAC1C,6CAA6C;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AACH,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"template-parser.js","sourceRoot":"","sources":["../../src/workflow/template-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ function renderScenario(context) {
|
|
|
79
79
|
};
|
|
80
80
|
// Introduction
|
|
81
81
|
if (scenario.template.introduction) {
|
|
82
|
-
parts.push(parseTemplate(scenario.template.introduction, evalContext));
|
|
82
|
+
parts.push(parseTemplate(scenario.template.introduction, evalContext).toString());
|
|
83
83
|
parts.push(''); // Blank line
|
|
84
84
|
}
|
|
85
85
|
// Main content based on mode
|
|
@@ -102,7 +102,7 @@ function renderScenario(context) {
|
|
|
102
102
|
if (parts.length > 0) {
|
|
103
103
|
parts.push(''); // Blank line before summary
|
|
104
104
|
}
|
|
105
|
-
parts.push(parseTemplate(scenario.template.summary, evalContext));
|
|
105
|
+
parts.push(parseTemplate(scenario.template.summary, evalContext).toString());
|
|
106
106
|
}
|
|
107
107
|
return parts.join('\n');
|
|
108
108
|
}
|
|
@@ -145,12 +145,12 @@ function renderSpanTree(tree, scenario, context, formatting) {
|
|
|
145
145
|
eventContext.span = node.span;
|
|
146
146
|
// Render span
|
|
147
147
|
if (scenario.template.span) {
|
|
148
|
-
const spanText = parseTemplate(scenario.template.span, eventContext);
|
|
148
|
+
const spanText = parseTemplate(scenario.template.span, eventContext).toString();
|
|
149
149
|
parts.push(indent + spanText);
|
|
150
150
|
}
|
|
151
151
|
else if (scenario.template.events?.[node.span.name]) {
|
|
152
152
|
const eventTemplate = scenario.template.events[node.span.name];
|
|
153
|
-
const eventText = parseTemplate(eventTemplate, eventContext);
|
|
153
|
+
const eventText = parseTemplate(eventTemplate, eventContext).toString();
|
|
154
154
|
parts.push(indent + eventText);
|
|
155
155
|
}
|
|
156
156
|
else {
|
|
@@ -220,7 +220,7 @@ function renderTimeline(events, scenario, context, formatting) {
|
|
|
220
220
|
eventText = renderLog(event, scenario, { ...eventContext, log: event }, formatting);
|
|
221
221
|
}
|
|
222
222
|
else if (scenario.template.events?.[event.name]) {
|
|
223
|
-
eventText = parseTemplate(scenario.template.events[event.name], eventContext);
|
|
223
|
+
eventText = parseTemplate(scenario.template.events[event.name], eventContext).toString();
|
|
224
224
|
}
|
|
225
225
|
if (eventText) {
|
|
226
226
|
if (formatting.showTimestamps) {
|
|
@@ -249,12 +249,12 @@ function renderLog(log, scenario, context, _formatting) {
|
|
|
249
249
|
const severity = getSeverityLevel(log.severityNumber);
|
|
250
250
|
const logTemplate = scenario.template.logs[severity] || scenario.template.logs.default;
|
|
251
251
|
if (logTemplate) {
|
|
252
|
-
return parseTemplate(logTemplate, context);
|
|
252
|
+
return parseTemplate(logTemplate, context).toString();
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
255
|
// Check for event-specific template
|
|
256
256
|
if (scenario.template.events?.[`log.${log.severityText?.toLowerCase()}`]) {
|
|
257
|
-
return parseTemplate(scenario.template.events[`log.${log.severityText?.toLowerCase()}`], context);
|
|
257
|
+
return parseTemplate(scenario.template.events[`log.${log.severityText?.toLowerCase()}`], context).toString();
|
|
258
258
|
}
|
|
259
259
|
// Default log rendering
|
|
260
260
|
return `[${log.severityText || 'LOG'}] ${log.body}`;
|
|
@@ -292,7 +292,7 @@ function renderFlow(flow, context) {
|
|
|
292
292
|
for (const item of flow) {
|
|
293
293
|
if (typeof item === 'string') {
|
|
294
294
|
// Simple string template
|
|
295
|
-
parts.push(parseTemplate(item, context));
|
|
295
|
+
parts.push(parseTemplate(item, context).toString());
|
|
296
296
|
}
|
|
297
297
|
else {
|
|
298
298
|
// Flow directive
|
|
@@ -307,21 +307,21 @@ function renderFlow(flow, context) {
|
|
|
307
307
|
...(typeof collectionItem === 'object' && collectionItem !== null ? collectionItem : {}),
|
|
308
308
|
index: i,
|
|
309
309
|
};
|
|
310
|
-
parts.push(parseTemplate(item.template, itemContext));
|
|
310
|
+
parts.push(parseTemplate(item.template, itemContext).toString());
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
}
|
|
314
314
|
else if (item.if) {
|
|
315
315
|
// Conditional
|
|
316
|
-
const condition = parseTemplate(item.if, context);
|
|
316
|
+
const condition = parseTemplate(item.if, context).toString();
|
|
317
317
|
if (condition === 'true' || condition === '1') {
|
|
318
318
|
if (item.then) {
|
|
319
|
-
parts.push(parseTemplate(item.then, context));
|
|
319
|
+
parts.push(parseTemplate(item.then, context).toString());
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
else {
|
|
323
323
|
if (item.else) {
|
|
324
|
-
parts.push(parseTemplate(item.else, context));
|
|
324
|
+
parts.push(parseTemplate(item.else, context).toString());
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../../src/workflow/template-renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,QAA0B,EAAE,MAAmB;IAC5E,yDAAyD;IACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE7C,kBAAkB;IAClB,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEjE,gBAAgB;IAChB,MAAM,OAAO,GAAoB;QAC/B,QAAQ;QACR,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,MAAM;QACN,UAAU;QACV,UAAU,EAAE;YACV,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,cAAc;YAC/B,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,SAAS;YACzB,GAAG,QAAQ,CAAC,UAAU;SACvB;KACF,CAAC;IAEF,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;QACjC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;KACpE;IAED,kBAAkB;IAClB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAErC,iBAAiB;IACjB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/F,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE;QACnC,QAAQ,EAAE;YACR,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,SAAS,EACP,UAAU,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC;oBACE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;oBAC9B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;iBAC7B;gBACH,CAAC,CAAC,SAAS;SAChB;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,OAAwB;IAC9C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACvE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,mEAAmE;IACnE,MAAM,WAAW,GAA4B;QAC3C,GAAG,UAAU;QACb,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,MAAM;KAC3B,CAAC;IAEF,eAAe;IACf,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE;QAClC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;KAC9B;IAED,6BAA6B;IAC7B,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACrB,KAAK,WAAW;YACd,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACpB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;aACjF;YACD,MAAM;QAER,KAAK,UAAU;YACb,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YACtE,MAAM;KACT;IAED,kBAAkB;IAClB,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC1B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;KAC7D;IAED,UAAU;IACV,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B;SAC7C;QACD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;KACnE;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CACrB,IAAoB,EACpB,QAA0B,EAC1B,OAAgC,EAChC,UAA6B;IAE7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACvB,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtE,sEAAsE;QACtE,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAEpC,mDAAmD;QACnD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAC/D,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACrB,iEAAiE;oBACjE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,OAAO,GAA4B,YAAY,CAAC;oBACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;wBACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;4BAC/D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;yBACxB;wBACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;qBACxD;oBACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;iBAC1C;qBAAM;oBACL,aAAa;oBACb,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC3B;aACF;SACF;QAED,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAE9B,cAAc;QACd,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC1B,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;SAC/B;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;SAChC;aAAM;YACL,yBAAyB;YACzB,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5C;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC3B,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBACjE,IAAI,OAAO,EAAE;oBACX,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;iBACpE;aACF;SACF;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACvE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;SAC1E;KACF;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CACrB,MAAmB,EACnB,QAA0B,EAC1B,OAAgC,EAChC,UAA6B;IAE7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,2BAA2B;IAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,uEAAuE;QACvE,MAAM,YAAY,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAEpC,mDAAmD;QACnD,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBAC3D,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACrB,iEAAiE;oBACjE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,OAAO,GAA4B,YAAY,CAAC;oBACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;wBACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;4BAC/D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;yBACxB;wBACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;qBACxD;oBACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;iBAC1C;qBAAM;oBACL,aAAa;oBACb,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC3B;aACF;SACF;QAED,IAAI,SAA6B,CAAC;QAElC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;YACxB,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;SACrF;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACjD,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;SAC/E;QAED,IAAI,SAAS,EAAE;YACb,IAAI,UAAU,CAAC,cAAc,EAAE;gBAC7B,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,eAAe,IAAI,cAAc,CAAC,CAAC;gBACjG,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC;aAC3C;iBAAM;gBACL,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACvB;SACF;KACF;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAChB,GAAc,EACd,QAA0B,EAC1B,OAAgC,EAChC,WAA8B;IAE9B,uCAAuC;IACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QACvF,IAAI,WAAW,EAAE;YACf,OAAO,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;SAC5C;KACF;IAED,oCAAoC;IACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE;QACxE,OAAO,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;KACnG;IAED,wBAAwB;IACxB,OAAO,IAAI,GAAG,CAAC,YAAY,IAAI,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,cAAuB;IAC/C,IAAI,CAAC,cAAc;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,cAAc,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,cAAc,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,cAAc,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,cAAc,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,cAAc,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,IAAmC,EAAE,OAAgC;IACvF,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,yBAAyB;YACzB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SAC1C;aAAM;YACL,iBAAiB;YACjB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjC,YAAY;gBACZ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAc,CAAC;gBACtD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;oBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC1C,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wBACrC,MAAM,WAAW,GAAG;4BAClB,GAAG,OAAO;4BACV,GAAG,CAAC,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,CAAC,CAAC,CAAE,cAA0C,CAAC,CAAC,CAAC,EAAE,CAAC;4BACrH,KAAK,EAAE,CAAC;yBACT,CAAC;wBACF,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;qBACvD;iBACF;aACF;iBAAM,IAAI,IAAI,CAAC,EAAE,EAAE;gBAClB,cAAc;gBACd,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,GAAG,EAAE;oBAC7C,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;qBAC/C;iBACF;qBAAM;oBACL,IAAI,IAAI,CAAC,IAAI,EAAE;wBACb,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;qBAC/C;iBACF;aACF;SACF;KACF;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,MAAmB,EAAE,kBAAkB,GAAG,KAAK;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9E,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;gBACvB,IAAI;gBACJ,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;SACJ;KACF;IAED,uBAAuB;IACvB,IAAI,kBAAkB,EAAE;QACtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,IAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC1C;SACF;KACF;IAED,uBAAuB;IACvB,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YACjE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;SAC/B;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,SAA0B;IACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,wDAAwD;QACxD,OAAO,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;KACvD;IACD,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,SAA0B,EAAE,MAAc;IACjE,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1B,IAAI,MAAM,KAAK,cAAc,EAAE;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrE,OAAO,GAAG,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;KACzD;IAED,yBAAyB;IACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../../src/workflow/template-renderer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,8 +7,8 @@ import { PackageLayerModule, type PackageLayer } from '@principal-ai/codebase-co
|
|
|
7
7
|
import type {
|
|
8
8
|
DiscoveredCanvas,
|
|
9
9
|
DiscoveredCanvasWithContent,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
DiscoveredTestTrace,
|
|
11
|
+
DiscoveredTestTraceWithContent,
|
|
12
12
|
DiscoveredWorkflow,
|
|
13
13
|
DiscoveredWorkflowWithContent,
|
|
14
14
|
DiscoveredStoryboard,
|
|
@@ -16,7 +16,7 @@ import type {
|
|
|
16
16
|
CanvasDiscoveryResult,
|
|
17
17
|
DiscoveryOptions,
|
|
18
18
|
CanvasType,
|
|
19
|
-
|
|
19
|
+
TestTraceType,
|
|
20
20
|
} from './types';
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -53,11 +53,11 @@ export class CanvasDiscovery {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
|
-
* Discover all canvas and
|
|
56
|
+
* Discover all canvas, workflow, and test trace files in the file tree
|
|
57
57
|
*
|
|
58
58
|
* @param fileTree - FileTree from repository-abstraction
|
|
59
59
|
* @param options - Discovery options (fileReader, includeContent)
|
|
60
|
-
* @returns Discovery result with canvases,
|
|
60
|
+
* @returns Discovery result with canvases, testTraces, storyboards, and errors
|
|
61
61
|
*/
|
|
62
62
|
async discover(
|
|
63
63
|
fileTree: FileTree,
|
|
@@ -76,14 +76,14 @@ export class CanvasDiscovery {
|
|
|
76
76
|
const canvases = await this.discoverCanvasFiles(fileTree, packageMap, options, errors);
|
|
77
77
|
|
|
78
78
|
// 4. Discover storyboards (hierarchical organization)
|
|
79
|
-
// Note:
|
|
79
|
+
// Note: Test traces are discovered as part of workflows, not separately
|
|
80
80
|
const storyboards = await this.discoverStoryboards(fileTree, packageMap, canvases, options, errors);
|
|
81
81
|
|
|
82
|
-
// 5. Collect all
|
|
83
|
-
const
|
|
82
|
+
// 5. Collect all test traces from workflows for backward compatibility
|
|
83
|
+
const testTraces: (DiscoveredTestTrace | DiscoveredTestTraceWithContent)[] = [];
|
|
84
84
|
for (const storyboard of storyboards) {
|
|
85
85
|
for (const workflow of storyboard.workflows) {
|
|
86
|
-
|
|
86
|
+
testTraces.push(...workflow.testTraces);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -92,10 +92,10 @@ export class CanvasDiscovery {
|
|
|
92
92
|
|
|
93
93
|
// 7. Sort results
|
|
94
94
|
canvases.sort(this.compareByPackageThenName);
|
|
95
|
-
|
|
95
|
+
testTraces.sort(this.compareByPackageThenName);
|
|
96
96
|
storyboards.sort(this.compareByPackageThenName);
|
|
97
97
|
|
|
98
|
-
return { canvases,
|
|
98
|
+
return { canvases, testTraces, storyboards, errors, warnings };
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
/**
|
|
@@ -229,8 +229,8 @@ export class CanvasDiscovery {
|
|
|
229
229
|
? `${packageInfo.packageData.name}/${storyboardName}/${basename}`
|
|
230
230
|
: `${storyboardName}/${basename}`;
|
|
231
231
|
|
|
232
|
-
// Discover
|
|
233
|
-
const
|
|
232
|
+
// Discover test traces co-located in the same directory as workflow.json
|
|
233
|
+
const workflowTestTraces = await this.discoverTestTracesInWorkflowDir(
|
|
234
234
|
fileTree,
|
|
235
235
|
workflowDir,
|
|
236
236
|
packageMap,
|
|
@@ -250,7 +250,7 @@ export class CanvasDiscovery {
|
|
|
250
250
|
packageName: packageInfo?.packageData.name,
|
|
251
251
|
packagePath: packageInfo?.packageData.path,
|
|
252
252
|
scope: packageInfo ? 'package' : 'root',
|
|
253
|
-
|
|
253
|
+
testTraces: workflowTestTraces,
|
|
254
254
|
};
|
|
255
255
|
|
|
256
256
|
// Optionally load content
|
|
@@ -276,14 +276,14 @@ export class CanvasDiscovery {
|
|
|
276
276
|
/**
|
|
277
277
|
* Discover execution files co-located in a workflow directory
|
|
278
278
|
*/
|
|
279
|
-
private async
|
|
279
|
+
private async discoverTestTracesInWorkflowDir(
|
|
280
280
|
fileTree: FileTree,
|
|
281
281
|
workflowDir: string,
|
|
282
282
|
packageMap: Map<string, PackageLayer>,
|
|
283
283
|
options: DiscoveryOptions,
|
|
284
284
|
errors: Array<{ path: string; error: string }>
|
|
285
|
-
): Promise<(
|
|
286
|
-
const
|
|
285
|
+
): Promise<(DiscoveredTestTrace | DiscoveredTestTraceWithContent)[]> {
|
|
286
|
+
const testTraces: (DiscoveredTestTrace | DiscoveredTestTraceWithContent)[] = [];
|
|
287
287
|
|
|
288
288
|
// Find all .otel.json files in the workflow directory
|
|
289
289
|
for (const file of fileTree.allFiles) {
|
|
@@ -293,12 +293,12 @@ export class CanvasDiscovery {
|
|
|
293
293
|
const fileDir = path.split('/').slice(0, -1).join('/');
|
|
294
294
|
if (fileDir !== workflowDir) continue;
|
|
295
295
|
|
|
296
|
-
// Check if it's
|
|
296
|
+
// Check if it's a test trace file (.otel.json)
|
|
297
297
|
if (!path.endsWith('.otel.json')) {
|
|
298
298
|
continue;
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
-
// Extract
|
|
301
|
+
// Extract test trace metadata
|
|
302
302
|
const filename = path.split('/').pop();
|
|
303
303
|
if (!filename) continue;
|
|
304
304
|
|
|
@@ -313,8 +313,8 @@ export class CanvasDiscovery {
|
|
|
313
313
|
? `${packageInfo.packageData.name}/${workflowBasename}/${basename}`
|
|
314
314
|
: `${workflowBasename}/${basename}`;
|
|
315
315
|
|
|
316
|
-
// Create discovered
|
|
317
|
-
let
|
|
316
|
+
// Create discovered test trace
|
|
317
|
+
let testTrace: DiscoveredTestTrace | DiscoveredTestTraceWithContent = {
|
|
318
318
|
id,
|
|
319
319
|
name: this.toDisplayName(basename),
|
|
320
320
|
path,
|
|
@@ -330,19 +330,19 @@ export class CanvasDiscovery {
|
|
|
330
330
|
if (options.includeContent && options.fileReader) {
|
|
331
331
|
try {
|
|
332
332
|
const content = await options.fileReader(path);
|
|
333
|
-
|
|
333
|
+
testTrace = { ...testTrace, content: JSON.parse(content) } as DiscoveredTestTraceWithContent;
|
|
334
334
|
} catch (error) {
|
|
335
335
|
errors.push({
|
|
336
336
|
path,
|
|
337
|
-
error: `Failed to parse
|
|
337
|
+
error: `Failed to parse test trace content: ${(error as Error).message}`,
|
|
338
338
|
});
|
|
339
339
|
}
|
|
340
340
|
}
|
|
341
341
|
|
|
342
|
-
|
|
342
|
+
testTraces.push(testTrace);
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
-
return
|
|
345
|
+
return testTraces;
|
|
346
346
|
}
|
|
347
347
|
|
|
348
348
|
/**
|
|
@@ -542,8 +542,8 @@ export class CanvasDiscovery {
|
|
|
542
542
|
* Sort by package then name
|
|
543
543
|
*/
|
|
544
544
|
private compareByPackageThenName(
|
|
545
|
-
a: DiscoveredCanvas |
|
|
546
|
-
b: DiscoveredCanvas |
|
|
545
|
+
a: DiscoveredCanvas | DiscoveredTestTrace | DiscoveredStoryboard,
|
|
546
|
+
b: DiscoveredCanvas | DiscoveredTestTrace | DiscoveredStoryboard
|
|
547
547
|
): number {
|
|
548
548
|
// Package files first, then root
|
|
549
549
|
if (a.packageName && !b.packageName) return -1;
|
package/src/discovery/types.ts
CHANGED
|
@@ -12,10 +12,10 @@ import type { WorkflowTemplate } from '../workflow/types';
|
|
|
12
12
|
export type CanvasType = 'otel' | 'regular';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Test trace file type discriminator based on extension
|
|
16
16
|
* Only .otel.json files are supported
|
|
17
17
|
*/
|
|
18
|
-
export type
|
|
18
|
+
export type TestTraceType = 'otel';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Discovered canvas file with package metadata
|
|
@@ -45,20 +45,20 @@ export interface DiscoveredCanvas {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
* Discovered
|
|
48
|
+
* Discovered test trace file with package metadata
|
|
49
49
|
*/
|
|
50
|
-
export interface
|
|
50
|
+
export interface DiscoveredTestTrace {
|
|
51
51
|
/** Unique ID with package prefix (e.g., "core/api-tests" or "api-tests") */
|
|
52
52
|
id: string;
|
|
53
53
|
/** Display name (Title Case from basename) */
|
|
54
54
|
name: string;
|
|
55
55
|
/** Full relative path from repo root */
|
|
56
56
|
path: string;
|
|
57
|
-
/**
|
|
57
|
+
/** Test trace basename (without .otel.json extension) */
|
|
58
58
|
basename: string;
|
|
59
|
-
/**
|
|
60
|
-
type:
|
|
61
|
-
/** Canvas basename this
|
|
59
|
+
/** Test trace file type */
|
|
60
|
+
type: TestTraceType;
|
|
61
|
+
/** Canvas basename this test trace is linked to */
|
|
62
62
|
canvasBasename: string;
|
|
63
63
|
/** Package name if in a package */
|
|
64
64
|
packageName?: string;
|
|
@@ -88,8 +88,8 @@ export interface DiscoveredWorkflow {
|
|
|
88
88
|
packagePath?: string;
|
|
89
89
|
/** Whether this is from repo root vs package */
|
|
90
90
|
scope: 'root' | 'package';
|
|
91
|
-
/** Associated
|
|
92
|
-
|
|
91
|
+
/** Associated test trace files for this workflow */
|
|
92
|
+
testTraces: DiscoveredTestTrace[];
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
/**
|
|
@@ -122,9 +122,9 @@ export interface DiscoveredStoryboard {
|
|
|
122
122
|
export interface CanvasDiscoveryResult {
|
|
123
123
|
/** All discovered canvas files, sorted by package then name */
|
|
124
124
|
canvases: DiscoveredCanvas[];
|
|
125
|
-
/** All discovered
|
|
126
|
-
|
|
127
|
-
/** All discovered storyboards (hierarchical organization of canvas + workflows +
|
|
125
|
+
/** All discovered test trace files, sorted by package then name */
|
|
126
|
+
testTraces: DiscoveredTestTrace[];
|
|
127
|
+
/** All discovered storyboards (hierarchical organization of canvas + workflows + test traces) */
|
|
128
128
|
storyboards: DiscoveredStoryboard[];
|
|
129
129
|
/** Any errors encountered during discovery */
|
|
130
130
|
errors: Array<{ path: string; error: string }>;
|
|
@@ -166,10 +166,10 @@ export interface DiscoveredCanvasWithContent extends DiscoveredCanvas {
|
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
/**
|
|
169
|
-
* Discovered
|
|
169
|
+
* Discovered test trace with parsed content
|
|
170
170
|
*/
|
|
171
|
-
export interface
|
|
172
|
-
/** Parsed
|
|
171
|
+
export interface DiscoveredTestTraceWithContent extends DiscoveredTestTrace {
|
|
172
|
+
/** Parsed test trace artifact (only when includeContent: true) */
|
|
173
173
|
content: ExecutionData;
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -179,8 +179,8 @@ export interface DiscoveredExecutionWithContent extends DiscoveredExecution {
|
|
|
179
179
|
export interface DiscoveredWorkflowWithContent extends DiscoveredWorkflow {
|
|
180
180
|
/** Parsed workflow template (only when includeContent: true) */
|
|
181
181
|
content: WorkflowTemplate;
|
|
182
|
-
/**
|
|
183
|
-
|
|
182
|
+
/** Test traces with parsed content */
|
|
183
|
+
testTraces: (DiscoveredTestTrace | DiscoveredTestTraceWithContent)[];
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
/**
|
|
@@ -198,7 +198,7 @@ export interface DiscoveredStoryboardWithContent extends DiscoveredStoryboard {
|
|
|
198
198
|
*/
|
|
199
199
|
export interface CanvasDiscoveryResultWithContent {
|
|
200
200
|
canvases: (DiscoveredCanvas | DiscoveredCanvasWithContent)[];
|
|
201
|
-
|
|
201
|
+
testTraces: (DiscoveredTestTrace | DiscoveredTestTraceWithContent)[];
|
|
202
202
|
storyboards: (DiscoveredStoryboard | DiscoveredStoryboardWithContent)[];
|
|
203
203
|
errors: Array<{ path: string; error: string }>;
|
|
204
204
|
warnings: Array<{ path: string; message: string; type: 'deprecation' }>;
|