@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.
@@ -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 Evaluated string
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
- return handlebarTemplate(context);
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
- return `{ERROR: Template parsing failed - ${error instanceof Error ? error.message : 'unknown'}}`;
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;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAAgC;IAC9E,IAAI;QACF,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACnC;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC;KACnG;AACH,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":"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"}
1
+ {"version":3,"file":"template-renderer.js","sourceRoot":"","sources":["../../src/workflow/template-renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ai/principal-view-core",
3
- "version": "0.18.1",
3
+ "version": "0.19.1",
4
4
  "description": "Core logic and types for graph-based principal view framework",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -7,8 +7,8 @@ import { PackageLayerModule, type PackageLayer } from '@principal-ai/codebase-co
7
7
  import type {
8
8
  DiscoveredCanvas,
9
9
  DiscoveredCanvasWithContent,
10
- DiscoveredExecution,
11
- DiscoveredExecutionWithContent,
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
- ExecutionType,
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 execution files in the file tree
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, executions, storyboards, and errors
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: Executions are discovered as part of workflows, not separately
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 executions from workflows for backward compatibility
83
- const executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[] = [];
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
- executions.push(...workflow.executions);
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
- executions.sort(this.compareByPackageThenName);
95
+ testTraces.sort(this.compareByPackageThenName);
96
96
  storyboards.sort(this.compareByPackageThenName);
97
97
 
98
- return { canvases, executions, storyboards, errors, warnings };
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 executions co-located in the same directory as workflow.json
233
- const workflowExecutions = await this.discoverExecutionsInWorkflowDir(
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
- executions: workflowExecutions,
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 discoverExecutionsInWorkflowDir(
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<(DiscoveredExecution | DiscoveredExecutionWithContent)[]> {
286
- const executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[] = [];
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 an execution file (.otel.json)
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 execution metadata
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 execution
317
- let execution: DiscoveredExecution | DiscoveredExecutionWithContent = {
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
- execution = { ...execution, content: JSON.parse(content) } as DiscoveredExecutionWithContent;
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 execution content: ${(error as Error).message}`,
337
+ error: `Failed to parse test trace content: ${(error as Error).message}`,
338
338
  });
339
339
  }
340
340
  }
341
341
 
342
- executions.push(execution);
342
+ testTraces.push(testTrace);
343
343
  }
344
344
 
345
- return executions;
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 | DiscoveredExecution | DiscoveredStoryboard,
546
- b: DiscoveredCanvas | DiscoveredExecution | DiscoveredStoryboard
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;
@@ -12,10 +12,10 @@ import type { WorkflowTemplate } from '../workflow/types';
12
12
  export type CanvasType = 'otel' | 'regular';
13
13
 
14
14
  /**
15
- * Execution file type discriminator based on extension
15
+ * Test trace file type discriminator based on extension
16
16
  * Only .otel.json files are supported
17
17
  */
18
- export type ExecutionType = 'otel';
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 execution file with package metadata
48
+ * Discovered test trace file with package metadata
49
49
  */
50
- export interface DiscoveredExecution {
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
- /** Execution basename (without .otel.json extension) */
57
+ /** Test trace basename (without .otel.json extension) */
58
58
  basename: string;
59
- /** Execution file type */
60
- type: ExecutionType;
61
- /** Canvas basename this execution is linked to */
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 execution files for this workflow */
92
- executions: DiscoveredExecution[];
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 execution files, sorted by package then name */
126
- executions: DiscoveredExecution[];
127
- /** All discovered storyboards (hierarchical organization of canvas + workflows + executions) */
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 execution with parsed content
169
+ * Discovered test trace with parsed content
170
170
  */
171
- export interface DiscoveredExecutionWithContent extends DiscoveredExecution {
172
- /** Parsed execution artifact (only when includeContent: true) */
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
- /** Executions with parsed content */
183
- executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[];
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
- executions: (DiscoveredExecution | DiscoveredExecutionWithContent)[];
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' }>;