@principal-ai/principal-view-core 0.20.3 → 0.20.4
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/LibraryDiscovery.d.ts +78 -0
- package/dist/discovery/LibraryDiscovery.d.ts.map +1 -0
- package/dist/discovery/LibraryDiscovery.js +152 -0
- package/dist/discovery/LibraryDiscovery.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +2 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -0
- package/dist/node.js.map +1 -1
- package/package.json +1 -1
- package/src/discovery/LibraryDiscovery.ts +215 -0
- package/src/index.ts +1 -0
- package/src/node.ts +7 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library Discovery System
|
|
3
|
+
*
|
|
4
|
+
* Discovers all library.yaml files across a monorepo's packages and loads their resources.
|
|
5
|
+
* This is the package-aware equivalent of LibraryLoader.
|
|
6
|
+
*/
|
|
7
|
+
import type { FileTree, FileSystemAdapter } from '@principal-ai/repository-abstraction';
|
|
8
|
+
import type { ComponentLibrary } from '../types/library';
|
|
9
|
+
/**
|
|
10
|
+
* Discovered library with metadata
|
|
11
|
+
*/
|
|
12
|
+
export interface DiscoveredLibrary {
|
|
13
|
+
/** Library file path */
|
|
14
|
+
path: string;
|
|
15
|
+
/** Package this library belongs to */
|
|
16
|
+
packageName: string;
|
|
17
|
+
/** Package path */
|
|
18
|
+
packagePath: string;
|
|
19
|
+
/** Loaded library content */
|
|
20
|
+
library: ComponentLibrary;
|
|
21
|
+
/** Service names from this library's resources */
|
|
22
|
+
serviceNames: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Result of library discovery
|
|
26
|
+
*/
|
|
27
|
+
export interface LibraryDiscoveryResult {
|
|
28
|
+
/** All discovered libraries */
|
|
29
|
+
libraries: DiscoveredLibrary[];
|
|
30
|
+
/** All service names across all libraries */
|
|
31
|
+
allServiceNames: string[];
|
|
32
|
+
/** Errors encountered during discovery */
|
|
33
|
+
errors: Array<{
|
|
34
|
+
path: string;
|
|
35
|
+
error: string;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Discovery system for finding and loading all library.yaml files in a monorepo
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const discovery = new LibraryDiscovery(fsAdapter);
|
|
44
|
+
* const result = await discovery.discover(fileTree);
|
|
45
|
+
*
|
|
46
|
+
* console.log('Found libraries:', result.libraries.length);
|
|
47
|
+
* console.log('All services:', result.allServiceNames);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare class LibraryDiscovery {
|
|
51
|
+
private fsAdapter;
|
|
52
|
+
private static readonly CANVAS_DIR;
|
|
53
|
+
private packageModule;
|
|
54
|
+
private packageCache;
|
|
55
|
+
private loader;
|
|
56
|
+
constructor(fsAdapter: FileSystemAdapter);
|
|
57
|
+
/**
|
|
58
|
+
* Discover all library.yaml files in the file tree
|
|
59
|
+
*
|
|
60
|
+
* @param fileTree - FileTree from repository-abstraction
|
|
61
|
+
* @param fileReader - Optional function to read file contents (for package.json parsing)
|
|
62
|
+
* @returns Discovery result with libraries, service names, and errors
|
|
63
|
+
*/
|
|
64
|
+
discover(fileTree: FileTree, fileReader?: (path: string) => Promise<string>): Promise<LibraryDiscoveryResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Clear package cache (useful when file tree changes)
|
|
67
|
+
*/
|
|
68
|
+
clearCache(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Extract service names from a library's resources
|
|
71
|
+
*/
|
|
72
|
+
private extractServiceNames;
|
|
73
|
+
/**
|
|
74
|
+
* Discover packages with caching by fileTree SHA
|
|
75
|
+
*/
|
|
76
|
+
private discoverPackagesWithCache;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=LibraryDiscovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryDiscovery.d.ts","sourceRoot":"","sources":["../../src/discovery/LibraryDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAGxF,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,kBAAkB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,OAAO,EAAE,gBAAgB,CAAC;IAE1B,kDAAkD;IAClD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE/B,6CAA6C;IAC7C,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B,0CAA0C;IAC1C,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAgB;IAOf,OAAO,CAAC,SAAS;IAN7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAsB;IAExD,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,MAAM,CAAgB;gBAEV,SAAS,EAAE,iBAAiB;IAKhD;;;;;;OAMG;IACG,QAAQ,CACZ,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC7C,OAAO,CAAC,sBAAsB,CAAC;IA+FlC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;YACW,yBAAyB;CAexC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library Discovery System
|
|
3
|
+
*
|
|
4
|
+
* Discovers all library.yaml files across a monorepo's packages and loads their resources.
|
|
5
|
+
* This is the package-aware equivalent of LibraryLoader.
|
|
6
|
+
*/
|
|
7
|
+
import { PackageLayerModule } from '@principal-ai/codebase-composition';
|
|
8
|
+
import { LibraryLoader } from '../LibraryLoader';
|
|
9
|
+
/**
|
|
10
|
+
* Discovery system for finding and loading all library.yaml files in a monorepo
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const discovery = new LibraryDiscovery(fsAdapter);
|
|
15
|
+
* const result = await discovery.discover(fileTree);
|
|
16
|
+
*
|
|
17
|
+
* console.log('Found libraries:', result.libraries.length);
|
|
18
|
+
* console.log('All services:', result.allServiceNames);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
class LibraryDiscovery {
|
|
22
|
+
constructor(fsAdapter) {
|
|
23
|
+
this.fsAdapter = fsAdapter;
|
|
24
|
+
this.packageCache = new Map();
|
|
25
|
+
this.packageModule = new PackageLayerModule();
|
|
26
|
+
this.loader = new LibraryLoader(fsAdapter);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Discover all library.yaml files in the file tree
|
|
30
|
+
*
|
|
31
|
+
* @param fileTree - FileTree from repository-abstraction
|
|
32
|
+
* @param fileReader - Optional function to read file contents (for package.json parsing)
|
|
33
|
+
* @returns Discovery result with libraries, service names, and errors
|
|
34
|
+
*/
|
|
35
|
+
async discover(fileTree, fileReader) {
|
|
36
|
+
const errors = [];
|
|
37
|
+
const libraries = [];
|
|
38
|
+
// 1. Discover packages (with caching by fileTree.sha)
|
|
39
|
+
const packages = await this.discoverPackagesWithCache(fileTree, fileReader);
|
|
40
|
+
// 2. For each package, try to load its library.yaml
|
|
41
|
+
for (const pkg of packages) {
|
|
42
|
+
try {
|
|
43
|
+
// Check if this package has a .principal-views directory
|
|
44
|
+
const pvDir = this.fsAdapter.join(pkg.packageData.path, LibraryDiscovery.CANVAS_DIR);
|
|
45
|
+
const pvDirExists = await this.fsAdapter.exists(pvDir);
|
|
46
|
+
if (!pvDirExists) {
|
|
47
|
+
continue; // No .principal-views directory, skip
|
|
48
|
+
}
|
|
49
|
+
// Try to load library from this package
|
|
50
|
+
const loadResult = await this.loader.load(pkg.packageData.path);
|
|
51
|
+
if (loadResult.success && loadResult.library) {
|
|
52
|
+
// Extract service names from resources
|
|
53
|
+
const serviceNames = this.extractServiceNames(loadResult.library);
|
|
54
|
+
libraries.push({
|
|
55
|
+
path: loadResult.path,
|
|
56
|
+
packageName: pkg.packageData.name,
|
|
57
|
+
packagePath: pkg.packageData.path,
|
|
58
|
+
library: loadResult.library,
|
|
59
|
+
serviceNames,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else if (loadResult.error && !loadResult.error.includes('No library file found')) {
|
|
63
|
+
// Only report errors that aren't "file not found" (which is normal)
|
|
64
|
+
errors.push({
|
|
65
|
+
path: loadResult.path,
|
|
66
|
+
error: loadResult.error,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
errors.push({
|
|
72
|
+
path: pkg.packageData.path,
|
|
73
|
+
error: error instanceof Error ? error.message : String(error),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// 3. Also check root directory for a library.yaml (non-package libraries)
|
|
78
|
+
try {
|
|
79
|
+
// FileTree doesn't have a guaranteed path property, use '.' for root
|
|
80
|
+
const rootPath = fileTree.path || '.';
|
|
81
|
+
const hasRootLibrary = await this.loader.hasLibrary(rootPath);
|
|
82
|
+
if (hasRootLibrary) {
|
|
83
|
+
const loadResult = await this.loader.load(rootPath);
|
|
84
|
+
if (loadResult.success && loadResult.library) {
|
|
85
|
+
const serviceNames = this.extractServiceNames(loadResult.library);
|
|
86
|
+
// Check if we already loaded this from a package
|
|
87
|
+
const alreadyLoaded = libraries.some(lib => lib.path === loadResult.path);
|
|
88
|
+
if (!alreadyLoaded) {
|
|
89
|
+
libraries.push({
|
|
90
|
+
path: loadResult.path,
|
|
91
|
+
packageName: 'root',
|
|
92
|
+
packagePath: rootPath,
|
|
93
|
+
library: loadResult.library,
|
|
94
|
+
serviceNames,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if (loadResult.error) {
|
|
99
|
+
errors.push({
|
|
100
|
+
path: loadResult.path,
|
|
101
|
+
error: loadResult.error,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
// Ignore root library errors
|
|
108
|
+
}
|
|
109
|
+
// 4. Collect all service names
|
|
110
|
+
const allServiceNames = libraries.flatMap(lib => lib.serviceNames);
|
|
111
|
+
// 5. Sort libraries by package name
|
|
112
|
+
libraries.sort((a, b) => a.packageName.localeCompare(b.packageName));
|
|
113
|
+
return {
|
|
114
|
+
libraries,
|
|
115
|
+
allServiceNames,
|
|
116
|
+
errors,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Clear package cache (useful when file tree changes)
|
|
121
|
+
*/
|
|
122
|
+
clearCache() {
|
|
123
|
+
this.packageCache.clear();
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Extract service names from a library's resources
|
|
127
|
+
*/
|
|
128
|
+
extractServiceNames(library) {
|
|
129
|
+
if (!library.resources) {
|
|
130
|
+
return [];
|
|
131
|
+
}
|
|
132
|
+
// resources is Record<string, ResourceAttributes>
|
|
133
|
+
return Object.values(library.resources)
|
|
134
|
+
.map(attrs => attrs['service.name'])
|
|
135
|
+
.filter((name) => !!name);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Discover packages with caching by fileTree SHA
|
|
139
|
+
*/
|
|
140
|
+
async discoverPackagesWithCache(fileTree, fileReader) {
|
|
141
|
+
const cacheKey = fileTree.sha;
|
|
142
|
+
if (this.packageCache.has(cacheKey)) {
|
|
143
|
+
return this.packageCache.get(cacheKey);
|
|
144
|
+
}
|
|
145
|
+
const packages = await this.packageModule.discoverPackages(fileTree, fileReader);
|
|
146
|
+
this.packageCache.set(cacheKey, packages);
|
|
147
|
+
return packages;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
LibraryDiscovery.CANVAS_DIR = '.principal-views';
|
|
151
|
+
export { LibraryDiscovery };
|
|
152
|
+
//# sourceMappingURL=LibraryDiscovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryDiscovery.js","sourceRoot":"","sources":["../../src/discovery/LibraryDiscovery.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export type { ProtocolMessageType, ProtocolMessage, SessionStartMessage, Session
|
|
|
42
42
|
export { LibraryLoader } from './LibraryLoader';
|
|
43
43
|
export { LibraryConverter } from './utils/LibraryConverter';
|
|
44
44
|
export type { CreateNodeOptions, CreateEdgeOptions } from './utils/LibraryConverter';
|
|
45
|
+
export type { ResourceAttributes } from './types/library';
|
|
45
46
|
export type { StoryboardReference, WorkflowReference, ScenarioReference, StoryboardContextSliceData, EventNodeMap, BuildStoryboardContextOptions, } from './storyboard';
|
|
46
47
|
export { buildStoryboardContext, buildNodeSourcesMap, buildEventNodeMap, getNodeEventName, resolveScenarioNodeIds, resolveWorkflowNodeIds, findNodesMatchingEventPattern, getAllNodeIds, } from './storyboard';
|
|
47
48
|
export type { FileSystemAdapter } from '@principal-ai/repository-abstraction';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,mFAAmF;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,2CAA2C;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,iDAAiD;AACjD,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AA+CrC,+BAA+B;AAC/B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,qCAAqC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,mEAAmE;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAiB9D,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,gEAAgE;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,+CAA+C;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,uFAAuF;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,mFAAmF;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,2CAA2C;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,iDAAiD;AACjD,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AA+CrC,+BAA+B;AAC/B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,qCAAqC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,mEAAmE;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAiB9D,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,gEAAgE;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,+CAA+C;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,uFAAuF;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAa5D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,aAAa,GACd,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,4FAA4F;AAC5F,mFAAmF;AACnF,EAAE;AACF,kFAAkF;AAClF,mDAAmD;AACnD,oDAAoD;AACpD,+DAA+D;AAC/D,0FAA0F;AAC1F,uDAAuD;AACvD,8CAA8C;AAC9C,qEAAqE;AACrE,gEAAgE;AAChE,EAAE;AACF,wGAAwG;AACxG,sGAAsG;AACtG,sEAAsE;AACtE,uEAAuE"}
|
package/dist/node.d.ts
CHANGED
|
@@ -51,6 +51,8 @@ export { renderWorkflow, parseTemplate, ParsedTemplate, selectScenario, matchesC
|
|
|
51
51
|
export type { TemplateSegment, WorkflowTemplate, WorkflowScenario, WorkflowMode, ScenarioCondition, ScenarioTemplate, Assertion, FlowDirective, LogTemplates, FormattingOptions, OtelEvent, OtelSignal, WorkflowContext, WorkflowResult, ScenarioMatchResult, SpanTreeNode, WorkflowValidationContext, WorkflowViolation, WorkflowValidationResult, } from './workflow';
|
|
52
52
|
export { CanvasDiscovery } from './discovery/CanvasDiscovery';
|
|
53
53
|
export type { DiscoveredCanvas, DiscoveredTestTrace, CanvasDiscoveryResult, DiscoveryOptions, CanvasType, TestTraceType, DiscoveredCanvasWithContent, DiscoveredTestTraceWithContent, CanvasDiscoveryResultWithContent, } from './discovery/types';
|
|
54
|
+
export { LibraryDiscovery } from './discovery/LibraryDiscovery';
|
|
55
|
+
export type { DiscoveredLibrary, LibraryDiscoveryResult, } from './discovery/LibraryDiscovery';
|
|
54
56
|
export { ExecutionValidator, createExecutionValidator } from './execution/ExecutionValidator';
|
|
55
57
|
export type { ExecutionData, ValidationError, ExecutionValidationResult, } from './execution/ExecutionValidator';
|
|
56
58
|
export { ExecutionLoader, createExecutionLoader } from './execution/ExecutionLoader';
|
package/dist/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
package/dist/node.js
CHANGED
|
@@ -52,6 +52,8 @@ export * from './rules';
|
|
|
52
52
|
export { renderWorkflow, parseTemplate, ParsedTemplate, selectScenario, matchesCondition, hasEventMatching, computeAggregates, evaluateAssertion, getNestedValue, setNestedValue, createWorkflowValidator, WorkflowValidator, } from './workflow';
|
|
53
53
|
// Export canvas, workflow, and test trace discovery
|
|
54
54
|
export { CanvasDiscovery } from './discovery/CanvasDiscovery';
|
|
55
|
+
// Export library discovery
|
|
56
|
+
export { LibraryDiscovery } from './discovery/LibraryDiscovery';
|
|
55
57
|
// Export execution validation
|
|
56
58
|
export { ExecutionValidator, createExecutionValidator } from './execution/ExecutionValidator';
|
|
57
59
|
// Export execution loading (Node.js only - file system)
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,8CAA8C;AAC9C,cAAc,SAAS,CAAC;AAExB,2CAA2C;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,iBAAiB;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,iDAAiD;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAG3G,6EAA6E;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGjG,oCAAoC;AACpC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQzE,qDAAqD;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,gCAAgC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,4DAA4D;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,kEAAkE;AAClE,cAAc,SAAS,CAAC;AAExB,4EAA4E;AAC5E,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAuBpB,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAa9D,8BAA8B;AAC9B,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,wDAAwD;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,8CAA8C;AAC9C,cAAc,SAAS,CAAC;AAExB,2CAA2C;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,iBAAiB;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,iDAAiD;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAG3G,6EAA6E;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGjG,oCAAoC;AACpC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQzE,qDAAqD;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,gCAAgC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,4DAA4D;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,kEAAkE;AAClE,cAAc,SAAS,CAAC;AAExB,4EAA4E;AAC5E,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAuBpB,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAa9D,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMhE,8BAA8B;AAC9B,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,wDAAwD;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library Discovery System
|
|
3
|
+
*
|
|
4
|
+
* Discovers all library.yaml files across a monorepo's packages and loads their resources.
|
|
5
|
+
* This is the package-aware equivalent of LibraryLoader.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { FileTree, FileSystemAdapter } from '@principal-ai/repository-abstraction';
|
|
9
|
+
import { PackageLayerModule, type PackageLayer } from '@principal-ai/codebase-composition';
|
|
10
|
+
import { LibraryLoader } from '../LibraryLoader';
|
|
11
|
+
import type { ComponentLibrary, ResourceAttributes } from '../types/library';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Discovered library with metadata
|
|
15
|
+
*/
|
|
16
|
+
export interface DiscoveredLibrary {
|
|
17
|
+
/** Library file path */
|
|
18
|
+
path: string;
|
|
19
|
+
|
|
20
|
+
/** Package this library belongs to */
|
|
21
|
+
packageName: string;
|
|
22
|
+
|
|
23
|
+
/** Package path */
|
|
24
|
+
packagePath: string;
|
|
25
|
+
|
|
26
|
+
/** Loaded library content */
|
|
27
|
+
library: ComponentLibrary;
|
|
28
|
+
|
|
29
|
+
/** Service names from this library's resources */
|
|
30
|
+
serviceNames: string[];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Result of library discovery
|
|
35
|
+
*/
|
|
36
|
+
export interface LibraryDiscoveryResult {
|
|
37
|
+
/** All discovered libraries */
|
|
38
|
+
libraries: DiscoveredLibrary[];
|
|
39
|
+
|
|
40
|
+
/** All service names across all libraries */
|
|
41
|
+
allServiceNames: string[];
|
|
42
|
+
|
|
43
|
+
/** Errors encountered during discovery */
|
|
44
|
+
errors: Array<{ path: string; error: string }>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Discovery system for finding and loading all library.yaml files in a monorepo
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const discovery = new LibraryDiscovery(fsAdapter);
|
|
53
|
+
* const result = await discovery.discover(fileTree);
|
|
54
|
+
*
|
|
55
|
+
* console.log('Found libraries:', result.libraries.length);
|
|
56
|
+
* console.log('All services:', result.allServiceNames);
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export class LibraryDiscovery {
|
|
60
|
+
private static readonly CANVAS_DIR = '.principal-views';
|
|
61
|
+
|
|
62
|
+
private packageModule: PackageLayerModule;
|
|
63
|
+
private packageCache: Map<string, PackageLayer[]> = new Map();
|
|
64
|
+
private loader: LibraryLoader;
|
|
65
|
+
|
|
66
|
+
constructor(private fsAdapter: FileSystemAdapter) {
|
|
67
|
+
this.packageModule = new PackageLayerModule();
|
|
68
|
+
this.loader = new LibraryLoader(fsAdapter);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Discover all library.yaml files in the file tree
|
|
73
|
+
*
|
|
74
|
+
* @param fileTree - FileTree from repository-abstraction
|
|
75
|
+
* @param fileReader - Optional function to read file contents (for package.json parsing)
|
|
76
|
+
* @returns Discovery result with libraries, service names, and errors
|
|
77
|
+
*/
|
|
78
|
+
async discover(
|
|
79
|
+
fileTree: FileTree,
|
|
80
|
+
fileReader?: (path: string) => Promise<string>
|
|
81
|
+
): Promise<LibraryDiscoveryResult> {
|
|
82
|
+
const errors: Array<{ path: string; error: string }> = [];
|
|
83
|
+
const libraries: DiscoveredLibrary[] = [];
|
|
84
|
+
|
|
85
|
+
// 1. Discover packages (with caching by fileTree.sha)
|
|
86
|
+
const packages = await this.discoverPackagesWithCache(fileTree, fileReader);
|
|
87
|
+
|
|
88
|
+
// 2. For each package, try to load its library.yaml
|
|
89
|
+
for (const pkg of packages) {
|
|
90
|
+
try {
|
|
91
|
+
// Check if this package has a .principal-views directory
|
|
92
|
+
const pvDir = this.fsAdapter.join(pkg.packageData.path, LibraryDiscovery.CANVAS_DIR);
|
|
93
|
+
const pvDirExists = await this.fsAdapter.exists(pvDir);
|
|
94
|
+
|
|
95
|
+
if (!pvDirExists) {
|
|
96
|
+
continue; // No .principal-views directory, skip
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Try to load library from this package
|
|
100
|
+
const loadResult = await this.loader.load(pkg.packageData.path);
|
|
101
|
+
|
|
102
|
+
if (loadResult.success && loadResult.library) {
|
|
103
|
+
// Extract service names from resources
|
|
104
|
+
const serviceNames = this.extractServiceNames(loadResult.library);
|
|
105
|
+
|
|
106
|
+
libraries.push({
|
|
107
|
+
path: loadResult.path,
|
|
108
|
+
packageName: pkg.packageData.name,
|
|
109
|
+
packagePath: pkg.packageData.path,
|
|
110
|
+
library: loadResult.library,
|
|
111
|
+
serviceNames,
|
|
112
|
+
});
|
|
113
|
+
} else if (loadResult.error && !loadResult.error.includes('No library file found')) {
|
|
114
|
+
// Only report errors that aren't "file not found" (which is normal)
|
|
115
|
+
errors.push({
|
|
116
|
+
path: loadResult.path,
|
|
117
|
+
error: loadResult.error,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
} catch (error) {
|
|
121
|
+
errors.push({
|
|
122
|
+
path: pkg.packageData.path,
|
|
123
|
+
error: error instanceof Error ? error.message : String(error),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// 3. Also check root directory for a library.yaml (non-package libraries)
|
|
129
|
+
try {
|
|
130
|
+
// FileTree doesn't have a guaranteed path property, use '.' for root
|
|
131
|
+
const rootPath = (fileTree as any).path || '.';
|
|
132
|
+
const hasRootLibrary = await this.loader.hasLibrary(rootPath);
|
|
133
|
+
|
|
134
|
+
if (hasRootLibrary) {
|
|
135
|
+
const loadResult = await this.loader.load(rootPath);
|
|
136
|
+
|
|
137
|
+
if (loadResult.success && loadResult.library) {
|
|
138
|
+
const serviceNames = this.extractServiceNames(loadResult.library);
|
|
139
|
+
|
|
140
|
+
// Check if we already loaded this from a package
|
|
141
|
+
const alreadyLoaded = libraries.some(lib => lib.path === loadResult.path);
|
|
142
|
+
|
|
143
|
+
if (!alreadyLoaded) {
|
|
144
|
+
libraries.push({
|
|
145
|
+
path: loadResult.path,
|
|
146
|
+
packageName: 'root',
|
|
147
|
+
packagePath: rootPath,
|
|
148
|
+
library: loadResult.library,
|
|
149
|
+
serviceNames,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
} else if (loadResult.error) {
|
|
153
|
+
errors.push({
|
|
154
|
+
path: loadResult.path,
|
|
155
|
+
error: loadResult.error,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
} catch (error) {
|
|
160
|
+
// Ignore root library errors
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// 4. Collect all service names
|
|
164
|
+
const allServiceNames = libraries.flatMap(lib => lib.serviceNames);
|
|
165
|
+
|
|
166
|
+
// 5. Sort libraries by package name
|
|
167
|
+
libraries.sort((a, b) => a.packageName.localeCompare(b.packageName));
|
|
168
|
+
|
|
169
|
+
return {
|
|
170
|
+
libraries,
|
|
171
|
+
allServiceNames,
|
|
172
|
+
errors,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Clear package cache (useful when file tree changes)
|
|
178
|
+
*/
|
|
179
|
+
clearCache(): void {
|
|
180
|
+
this.packageCache.clear();
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Extract service names from a library's resources
|
|
185
|
+
*/
|
|
186
|
+
private extractServiceNames(library: ComponentLibrary): string[] {
|
|
187
|
+
if (!library.resources) {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// resources is Record<string, ResourceAttributes>
|
|
192
|
+
return Object.values(library.resources)
|
|
193
|
+
.map(attrs => attrs['service.name'])
|
|
194
|
+
.filter((name): name is string => !!name);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Discover packages with caching by fileTree SHA
|
|
199
|
+
*/
|
|
200
|
+
private async discoverPackagesWithCache(
|
|
201
|
+
fileTree: FileTree,
|
|
202
|
+
fileReader?: (path: string) => Promise<string>
|
|
203
|
+
): Promise<PackageLayer[]> {
|
|
204
|
+
const cacheKey = fileTree.sha;
|
|
205
|
+
|
|
206
|
+
if (this.packageCache.has(cacheKey)) {
|
|
207
|
+
return this.packageCache.get(cacheKey)!;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
const packages = await this.packageModule.discoverPackages(fileTree, fileReader);
|
|
211
|
+
this.packageCache.set(cacheKey, packages);
|
|
212
|
+
|
|
213
|
+
return packages;
|
|
214
|
+
}
|
|
215
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -206,6 +206,7 @@ export type {
|
|
|
206
206
|
export { LibraryLoader } from './LibraryLoader';
|
|
207
207
|
export { LibraryConverter } from './utils/LibraryConverter';
|
|
208
208
|
export type { CreateNodeOptions, CreateEdgeOptions } from './utils/LibraryConverter';
|
|
209
|
+
export type { ResourceAttributes } from './types/library';
|
|
209
210
|
|
|
210
211
|
// Export storyboard context types and builder (browser-safe)
|
|
211
212
|
export type {
|
package/src/node.ts
CHANGED
|
@@ -170,6 +170,13 @@ export type {
|
|
|
170
170
|
CanvasDiscoveryResultWithContent,
|
|
171
171
|
} from './discovery/types';
|
|
172
172
|
|
|
173
|
+
// Export library discovery
|
|
174
|
+
export { LibraryDiscovery } from './discovery/LibraryDiscovery';
|
|
175
|
+
export type {
|
|
176
|
+
DiscoveredLibrary,
|
|
177
|
+
LibraryDiscoveryResult,
|
|
178
|
+
} from './discovery/LibraryDiscovery';
|
|
179
|
+
|
|
173
180
|
// Export execution validation
|
|
174
181
|
export { ExecutionValidator, createExecutionValidator } from './execution/ExecutionValidator';
|
|
175
182
|
export type {
|