@principal-ai/principal-view-core 0.6.3 → 0.7.0
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/ConfigurationLoader.js +2 -1
- package/dist/ConfigurationLoader.js.map +1 -1
- package/dist/ConfigurationValidator.js.map +1 -1
- package/dist/EventProcessor.js.map +1 -1
- package/dist/EventRecorderService.js.map +1 -1
- package/dist/LibraryLoader.js.map +1 -1
- package/dist/PathBasedEventProcessor.js.map +1 -1
- package/dist/SessionManager.js +1 -1
- package/dist/SessionManager.js.map +1 -1
- package/dist/ValidationEngine.js.map +1 -1
- package/dist/cli/codegen.js.map +1 -1
- package/dist/codegen/type-generator.js.map +1 -1
- package/dist/codegen/usage-example.js.map +1 -1
- package/dist/helpers/GraphInstrumentationHelper.js +2 -2
- package/dist/helpers/GraphInstrumentationHelper.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/narrative/example.d.ts +11 -0
- package/dist/narrative/example.d.ts.map +1 -0
- package/dist/narrative/example.js +331 -0
- package/dist/narrative/example.js.map +1 -0
- package/dist/narrative/index.d.ts +12 -0
- package/dist/narrative/index.d.ts.map +1 -0
- package/dist/narrative/index.js +14 -0
- package/dist/narrative/index.js.map +1 -0
- package/dist/narrative/scenario-matcher.d.ts +87 -0
- package/dist/narrative/scenario-matcher.d.ts.map +1 -0
- package/dist/narrative/scenario-matcher.js +269 -0
- package/dist/narrative/scenario-matcher.js.map +1 -0
- package/dist/narrative/template-parser.d.ts +33 -0
- package/dist/narrative/template-parser.d.ts.map +1 -0
- package/dist/narrative/template-parser.js +288 -0
- package/dist/narrative/template-parser.js.map +1 -0
- package/dist/narrative/template-renderer.d.ts +18 -0
- package/dist/narrative/template-renderer.d.ts.map +1 -0
- package/dist/narrative/template-renderer.js +367 -0
- package/dist/narrative/template-renderer.js.map +1 -0
- package/dist/narrative/types.d.ts +268 -0
- package/dist/narrative/types.d.ts.map +1 -0
- package/dist/narrative/types.js +10 -0
- package/dist/narrative/types.js.map +1 -0
- package/dist/rules/config.js.map +1 -1
- package/dist/rules/engine.js.map +1 -1
- package/dist/rules/implementations/connection-type-references.js.map +1 -1
- package/dist/rules/implementations/dead-end-states.js.map +1 -1
- package/dist/rules/implementations/library-node-type-match.js.map +1 -1
- package/dist/rules/implementations/minimum-node-sources.js.map +1 -1
- package/dist/rules/implementations/no-unknown-fields.js.map +1 -1
- package/dist/rules/implementations/orphaned-edge-types.js.map +1 -1
- package/dist/rules/implementations/orphaned-node-types.js.map +1 -1
- package/dist/rules/implementations/required-metadata.js.map +1 -1
- package/dist/rules/implementations/state-transition-references.js.map +1 -1
- package/dist/rules/implementations/unreachable-states.js.map +1 -1
- package/dist/rules/implementations/valid-action-patterns.js.map +1 -1
- package/dist/rules/implementations/valid-color-format.js.map +1 -1
- package/dist/rules/implementations/valid-edge-types.js.map +1 -1
- package/dist/rules/implementations/valid-node-types.js.map +1 -1
- package/dist/rules/types.js.map +1 -1
- package/dist/telemetry/coverage.js.map +1 -1
- package/dist/telemetry/event-validator.js.map +1 -1
- package/dist/types/audit.js.map +1 -1
- package/dist/types/canvas.js +5 -5
- package/dist/types/canvas.js.map +1 -1
- package/dist/types/otel.js.map +1 -1
- package/dist/types/resource-match.js.map +1 -1
- package/dist/utils/CanvasConverter.js.map +1 -1
- package/dist/utils/GraphConverter.js.map +1 -1
- package/dist/utils/LibraryConverter.js.map +1 -1
- package/dist/utils/PathMatcher.js.map +1 -1
- package/dist/utils/TraceToCanvas.js +7 -7
- package/dist/utils/TraceToCanvas.js.map +1 -1
- package/dist/utils/YamlParser.js.map +1 -1
- package/package.json +15 -15
- package/src/index.ts +31 -13
- package/src/narrative/README.md +381 -0
- package/src/narrative/__tests__/scenario-matcher.test.ts +368 -0
- package/src/narrative/__tests__/template-parser.test.ts +235 -0
- package/src/narrative/__tests__/template-renderer.test.ts +377 -0
- package/src/narrative/example.ts +349 -0
- package/src/narrative/index.ts +35 -0
- package/src/narrative/scenario-matcher.ts +331 -0
- package/src/narrative/template-parser.ts +298 -0
- package/src/narrative/template-renderer.ts +423 -0
- package/src/narrative/types.ts +368 -0
- package/src/utils/GraphConverter.test.ts +0 -79
- package/dist/utils/ExecutionFileDiscovery.d.ts +0 -206
- package/dist/utils/ExecutionFileDiscovery.d.ts.map +0 -1
- package/dist/utils/ExecutionFileDiscovery.js +0 -340
- package/dist/utils/ExecutionFileDiscovery.js.map +0 -1
- package/src/utils/ExecutionFileDiscovery.ts +0 -522
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Execution File Discovery
|
|
3
|
-
*
|
|
4
|
-
* Discovers execution artifacts and canvas files in a repository with monorepo awareness.
|
|
5
|
-
* Uses codebase-composition (browser-safe export) to intelligently detect package boundaries
|
|
6
|
-
* and workspace patterns.
|
|
7
|
-
*/
|
|
8
|
-
import { PackageLayerModule } from '@principal-ai/codebase-composition/browser';
|
|
9
|
-
/**
|
|
10
|
-
* Execution File Discovery Engine
|
|
11
|
-
*
|
|
12
|
-
* Discovers execution artifacts and canvas files using monorepo-aware logic.
|
|
13
|
-
*/
|
|
14
|
-
export class ExecutionFileDiscovery {
|
|
15
|
-
constructor(options = {}) {
|
|
16
|
-
this.packageLayerModule = new PackageLayerModule();
|
|
17
|
-
this.options = {
|
|
18
|
-
includePackagePrincipalViews: options.includePackagePrincipalViews ?? true,
|
|
19
|
-
executionFolders: options.executionFolders ?? ['__executions__'],
|
|
20
|
-
canvasExtensions: options.canvasExtensions ?? ['.otel.canvas'],
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Find all execution artifact files in the repository
|
|
25
|
-
*/
|
|
26
|
-
async findExecutionFiles(files) {
|
|
27
|
-
const executionFiles = [];
|
|
28
|
-
// Detect packages in the repository
|
|
29
|
-
const packages = await this.detectPackages(files);
|
|
30
|
-
// Search for execution files in each package
|
|
31
|
-
for (const pkg of packages) {
|
|
32
|
-
const pkgExecutions = this.findExecutionsInPackage(pkg, files);
|
|
33
|
-
executionFiles.push(...pkgExecutions);
|
|
34
|
-
}
|
|
35
|
-
// Search in root-level locations
|
|
36
|
-
const rootExecutions = this.findExecutionsInRoot(files);
|
|
37
|
-
executionFiles.push(...rootExecutions);
|
|
38
|
-
// Sort by package name, then by basename
|
|
39
|
-
return this.sortExecutionFiles(executionFiles);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Find all canvas files in the repository
|
|
43
|
-
*/
|
|
44
|
-
async findCanvasFiles(files) {
|
|
45
|
-
const canvasFiles = [];
|
|
46
|
-
// Detect packages in the repository
|
|
47
|
-
const packages = await this.detectPackages(files);
|
|
48
|
-
// Search for canvas files in root .principal-views/
|
|
49
|
-
const rootCanvases = this.findCanvasesInDirectory('.principal-views', files);
|
|
50
|
-
canvasFiles.push(...rootCanvases);
|
|
51
|
-
// Search for canvas files in package-level .principal-views/ if enabled
|
|
52
|
-
if (this.options.includePackagePrincipalViews) {
|
|
53
|
-
for (const pkg of packages) {
|
|
54
|
-
const pkgCanvases = this.findCanvasesInDirectory(`${pkg.packageData.path}/.principal-views`, files, this.createPackageContext(pkg));
|
|
55
|
-
canvasFiles.push(...pkgCanvases);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
// Sort by name
|
|
59
|
-
return canvasFiles.sort((a, b) => a.name.localeCompare(b.name));
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Find execution artifact for a given canvas
|
|
63
|
-
* Now package-aware - can disambiguate between packages
|
|
64
|
-
*/
|
|
65
|
-
findExecutionForCanvas(canvas, executionFiles) {
|
|
66
|
-
// First, try exact package match if canvas has package context
|
|
67
|
-
if (canvas.packageContext) {
|
|
68
|
-
const exactMatch = executionFiles.find(exec => exec.canvasBasename === canvas.basename &&
|
|
69
|
-
exec.packageContext?.name === canvas.packageContext?.name);
|
|
70
|
-
if (exactMatch)
|
|
71
|
-
return exactMatch;
|
|
72
|
-
}
|
|
73
|
-
// Fallback to basename-only match (for root-level canvases)
|
|
74
|
-
return executionFiles.find(exec => exec.canvasBasename === canvas.basename) || null;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Find canvas file for a given execution
|
|
78
|
-
*/
|
|
79
|
-
findCanvasForExecution(execution, canvasFiles) {
|
|
80
|
-
// First, try exact package match if execution has package context
|
|
81
|
-
if (execution.packageContext) {
|
|
82
|
-
const exactMatch = canvasFiles.find(canvas => canvas.basename === execution.canvasBasename &&
|
|
83
|
-
canvas.packageContext?.name === execution.packageContext?.name);
|
|
84
|
-
if (exactMatch)
|
|
85
|
-
return exactMatch;
|
|
86
|
-
}
|
|
87
|
-
// Fallback to basename-only match (for root-level executions)
|
|
88
|
-
return canvasFiles.find(canvas => canvas.basename === execution.canvasBasename) || null;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Parse execution artifact JSON
|
|
92
|
-
*/
|
|
93
|
-
static parseExecutionArtifact(content) {
|
|
94
|
-
try {
|
|
95
|
-
const parsed = JSON.parse(content);
|
|
96
|
-
return parsed;
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
throw new Error(`Failed to parse execution artifact JSON: ${error.message}`);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Get spans from an artifact
|
|
104
|
-
*/
|
|
105
|
-
static getSpans(artifact) {
|
|
106
|
-
return artifact.spans || [];
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Extract metadata from an execution artifact
|
|
110
|
-
*/
|
|
111
|
-
static getExecutionMetadata(artifact) {
|
|
112
|
-
const spans = ExecutionFileDiscovery.getSpans(artifact);
|
|
113
|
-
const spanCount = spans.length;
|
|
114
|
-
const eventCount = spans.reduce((total, span) => {
|
|
115
|
-
return total + (span.events?.length || 0);
|
|
116
|
-
}, 0);
|
|
117
|
-
const metadata = artifact.metadata;
|
|
118
|
-
let status = 'success';
|
|
119
|
-
if (metadata?.status) {
|
|
120
|
-
status = metadata.status;
|
|
121
|
-
}
|
|
122
|
-
else if (spans.length > 0) {
|
|
123
|
-
const hasError = spans.some(s => s.status === 'ERROR' || s.status === 'error' || s.status === 'FAILED');
|
|
124
|
-
status = hasError ? 'error' : 'OK';
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
name: metadata?.canvasName || 'Untitled Execution',
|
|
128
|
-
canvasName: metadata?.canvasName,
|
|
129
|
-
exportedAt: metadata?.exportedAt,
|
|
130
|
-
source: metadata?.source,
|
|
131
|
-
framework: metadata?.framework,
|
|
132
|
-
status,
|
|
133
|
-
spanCount,
|
|
134
|
-
eventCount,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
// Private helper methods
|
|
138
|
-
/**
|
|
139
|
-
* Detect packages using codebase-composition
|
|
140
|
-
*/
|
|
141
|
-
async detectPackages(files) {
|
|
142
|
-
try {
|
|
143
|
-
// Convert files to the format expected by codebase-composition
|
|
144
|
-
const fileTree = this.convertToFileTree(files);
|
|
145
|
-
const packages = await this.packageLayerModule.discoverPackages(fileTree);
|
|
146
|
-
return packages || [];
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
// If package detection fails, continue with fallback patterns
|
|
150
|
-
console.warn('Package detection failed, using fallback patterns:', error);
|
|
151
|
-
return [];
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Convert file entries to file tree format for codebase-composition
|
|
156
|
-
*/
|
|
157
|
-
convertToFileTree(files) {
|
|
158
|
-
// This is a simplified conversion - codebase-composition expects a specific format
|
|
159
|
-
// In practice, the caller should provide a proper FileTree from repository-abstraction
|
|
160
|
-
return {
|
|
161
|
-
files: files.map(f => ({
|
|
162
|
-
path: f.relativePath || f.path || '',
|
|
163
|
-
name: f.name || (f.relativePath || f.path || '').split('/').pop() || '',
|
|
164
|
-
})),
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Find executions in a specific package
|
|
169
|
-
*/
|
|
170
|
-
findExecutionsInPackage(pkg, files) {
|
|
171
|
-
const executions = [];
|
|
172
|
-
const pkgPath = pkg.packageData.path || '';
|
|
173
|
-
const packageContext = this.createPackageContext(pkg);
|
|
174
|
-
for (const execFolder of this.options.executionFolders) {
|
|
175
|
-
const execPath = pkgPath ? `${pkgPath}/${execFolder}` : execFolder;
|
|
176
|
-
for (const file of files) {
|
|
177
|
-
const filePath = file.relativePath || file.path || '';
|
|
178
|
-
const fileName = file.name || filePath.split('/').pop() || '';
|
|
179
|
-
if (filePath.startsWith(execPath + '/') && this.isExecutionFile(fileName)) {
|
|
180
|
-
const basename = this.extractExecutionBasename(fileName);
|
|
181
|
-
executions.push({
|
|
182
|
-
id: this.generateExecutionId(basename, packageContext),
|
|
183
|
-
name: this.formatDisplayName(basename),
|
|
184
|
-
path: filePath,
|
|
185
|
-
canvasBasename: basename,
|
|
186
|
-
packageContext,
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
return executions;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Find executions in root-level locations
|
|
195
|
-
*/
|
|
196
|
-
findExecutionsInRoot(files) {
|
|
197
|
-
const executions = [];
|
|
198
|
-
// Root __executions__/
|
|
199
|
-
for (const execFolder of this.options.executionFolders) {
|
|
200
|
-
for (const file of files) {
|
|
201
|
-
const filePath = file.relativePath || file.path || '';
|
|
202
|
-
const fileName = file.name || filePath.split('/').pop() || '';
|
|
203
|
-
if (filePath.startsWith(`${execFolder}/`) && this.isExecutionFile(fileName)) {
|
|
204
|
-
const basename = this.extractExecutionBasename(fileName);
|
|
205
|
-
executions.push({
|
|
206
|
-
id: `root-${basename}`,
|
|
207
|
-
name: this.formatDisplayName(basename),
|
|
208
|
-
path: filePath,
|
|
209
|
-
canvasBasename: basename,
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
// .principal-views/__executions__/
|
|
215
|
-
const pvExecPath = '.principal-views/__executions__';
|
|
216
|
-
for (const file of files) {
|
|
217
|
-
const filePath = file.relativePath || file.path || '';
|
|
218
|
-
const fileName = file.name || filePath.split('/').pop() || '';
|
|
219
|
-
if (filePath.startsWith(pvExecPath + '/') && this.isExecutionFile(fileName)) {
|
|
220
|
-
const basename = this.extractExecutionBasename(fileName);
|
|
221
|
-
executions.push({
|
|
222
|
-
id: `pv-${basename}`,
|
|
223
|
-
name: this.formatDisplayName(basename),
|
|
224
|
-
path: filePath,
|
|
225
|
-
canvasBasename: basename,
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return executions;
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Find canvas files in a specific directory
|
|
233
|
-
*/
|
|
234
|
-
findCanvasesInDirectory(directory, files, packageContext) {
|
|
235
|
-
const canvases = [];
|
|
236
|
-
for (const file of files) {
|
|
237
|
-
const filePath = file.relativePath || file.path || '';
|
|
238
|
-
const fileName = file.name || filePath.split('/').pop() || '';
|
|
239
|
-
if (filePath.startsWith(directory + '/') && this.isCanvasFile(fileName)) {
|
|
240
|
-
const basename = this.extractCanvasBasename(fileName);
|
|
241
|
-
canvases.push({
|
|
242
|
-
id: this.generateCanvasId(basename, packageContext),
|
|
243
|
-
name: this.formatDisplayName(basename),
|
|
244
|
-
path: filePath,
|
|
245
|
-
basename,
|
|
246
|
-
packageContext,
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
return canvases;
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Create package context from PackageLayer
|
|
254
|
-
*/
|
|
255
|
-
createPackageContext(pkg) {
|
|
256
|
-
return {
|
|
257
|
-
name: pkg.packageData.name || 'unknown',
|
|
258
|
-
packagePath: pkg.packageData.path || '',
|
|
259
|
-
packageType: pkg.type,
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Check if filename is an execution file
|
|
264
|
-
*/
|
|
265
|
-
isExecutionFile(filename) {
|
|
266
|
-
return /\.(spans|execution|events)\.json$/.test(filename);
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Check if filename is a canvas file
|
|
270
|
-
*/
|
|
271
|
-
isCanvasFile(filename) {
|
|
272
|
-
return this.options.canvasExtensions.some(ext => filename.endsWith(ext));
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Extract basename from execution filename
|
|
276
|
-
*/
|
|
277
|
-
extractExecutionBasename(filename) {
|
|
278
|
-
return filename.replace(/\.(spans|execution|events)\.json$/, '');
|
|
279
|
-
}
|
|
280
|
-
/**
|
|
281
|
-
* Extract basename from canvas filename
|
|
282
|
-
*/
|
|
283
|
-
extractCanvasBasename(filename) {
|
|
284
|
-
for (const ext of this.options.canvasExtensions) {
|
|
285
|
-
if (filename.endsWith(ext)) {
|
|
286
|
-
return filename.slice(0, -ext.length);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
return filename;
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Format display name from basename (kebab-case to Title Case)
|
|
293
|
-
*/
|
|
294
|
-
formatDisplayName(basename) {
|
|
295
|
-
return basename
|
|
296
|
-
.split('-')
|
|
297
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
298
|
-
.join(' ');
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Generate unique ID for execution file
|
|
302
|
-
*/
|
|
303
|
-
generateExecutionId(basename, packageContext) {
|
|
304
|
-
if (packageContext) {
|
|
305
|
-
return `${packageContext.name}-${basename}`;
|
|
306
|
-
}
|
|
307
|
-
return basename;
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Generate unique ID for canvas file
|
|
311
|
-
*/
|
|
312
|
-
generateCanvasId(basename, packageContext) {
|
|
313
|
-
if (packageContext) {
|
|
314
|
-
return `${packageContext.name}-${basename}`;
|
|
315
|
-
}
|
|
316
|
-
return basename;
|
|
317
|
-
}
|
|
318
|
-
/**
|
|
319
|
-
* Sort execution files by package name, then by basename
|
|
320
|
-
*/
|
|
321
|
-
sortExecutionFiles(files) {
|
|
322
|
-
return files.sort((a, b) => {
|
|
323
|
-
// Sort by package name first
|
|
324
|
-
if (a.packageContext && b.packageContext) {
|
|
325
|
-
const pkgCompare = a.packageContext.name.localeCompare(b.packageContext.name);
|
|
326
|
-
if (pkgCompare !== 0)
|
|
327
|
-
return pkgCompare;
|
|
328
|
-
}
|
|
329
|
-
else if (a.packageContext) {
|
|
330
|
-
return -1;
|
|
331
|
-
}
|
|
332
|
-
else if (b.packageContext) {
|
|
333
|
-
return 1;
|
|
334
|
-
}
|
|
335
|
-
// Then by basename
|
|
336
|
-
return a.canvasBasename.localeCompare(b.canvasBasename);
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
//# sourceMappingURL=ExecutionFileDiscovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionFileDiscovery.js","sourceRoot":"","sources":["../../src/utils/ExecutionFileDiscovery.ts"],"names":[],"mappings":"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"}
|