@principal-ai/principal-view-core 0.19.1 → 0.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/node.d.ts +2 -0
  6. package/dist/node.d.ts.map +1 -1
  7. package/dist/node.js +2 -0
  8. package/dist/node.js.map +1 -1
  9. package/dist/registry/EventRegistry.d.ts +79 -0
  10. package/dist/registry/EventRegistry.d.ts.map +1 -0
  11. package/dist/registry/EventRegistry.js +138 -0
  12. package/dist/registry/EventRegistry.js.map +1 -0
  13. package/dist/storyboard/builder.d.ts +143 -0
  14. package/dist/storyboard/builder.d.ts.map +1 -0
  15. package/dist/storyboard/builder.js +233 -0
  16. package/dist/storyboard/builder.js.map +1 -0
  17. package/dist/storyboard/index.d.ts +9 -0
  18. package/dist/storyboard/index.d.ts.map +1 -0
  19. package/dist/storyboard/index.js +8 -0
  20. package/dist/storyboard/index.js.map +1 -0
  21. package/dist/storyboard/types.d.ts +102 -0
  22. package/dist/storyboard/types.d.ts.map +1 -0
  23. package/dist/storyboard/types.js +9 -0
  24. package/dist/storyboard/types.js.map +1 -0
  25. package/dist/workflow/validator.d.ts +7 -0
  26. package/dist/workflow/validator.d.ts.map +1 -1
  27. package/dist/workflow/validator.js +23 -3
  28. package/dist/workflow/validator.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/index.ts +20 -0
  31. package/src/node.ts +4 -0
  32. package/src/registry/EventRegistry.test.ts +387 -0
  33. package/src/registry/EventRegistry.ts +167 -0
  34. package/src/storyboard/builder.ts +314 -0
  35. package/src/storyboard/index.ts +27 -0
  36. package/src/storyboard/types.ts +117 -0
  37. package/src/workflow/__tests__/validator.test.ts +261 -0
  38. package/src/workflow/validator.ts +33 -2
package/dist/index.d.ts CHANGED
@@ -38,6 +38,8 @@ export type { ProtocolMessageType, ProtocolMessage, SessionStartMessage, Session
38
38
  export { LibraryLoader } from './LibraryLoader';
39
39
  export { LibraryConverter } from './utils/LibraryConverter';
40
40
  export type { CreateNodeOptions, CreateEdgeOptions } from './utils/LibraryConverter';
41
+ export type { StoryboardReference, WorkflowReference, ScenarioReference, StoryboardContextSliceData, EventNodeMap, BuildStoryboardContextOptions, } from './storyboard';
42
+ export { buildStoryboardContext, buildNodeSourcesMap, buildEventNodeMap, getNodeEventName, resolveScenarioNodeIds, resolveWorkflowNodeIds, findNodesMatchingEventPattern, getAllNodeIds, } from './storyboard';
41
43
  export type { FileSystemAdapter } from '@principal-ai/repository-abstraction';
42
44
  export { InMemoryFileSystemAdapter } from '@principal-ai/repository-abstraction';
43
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAG7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGxF,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACtF,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,2BAA2B,EAC3B,8BAA8B,EAC9B,6BAA6B,EAC7B,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,YAAY,EACV,aAAa,EACb,eAAe,EACf,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGrF,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -35,6 +35,7 @@ export { EventRecorderService } from './EventRecorderService';
35
35
  // Export component library support (browser-safe - uses FileSystemAdapter abstraction)
36
36
  export { LibraryLoader } from './LibraryLoader';
37
37
  export { LibraryConverter } from './utils/LibraryConverter';
38
+ export { buildStoryboardContext, buildNodeSourcesMap, buildEventNodeMap, getNodeEventName, resolveScenarioNodeIds, resolveWorkflowNodeIds, findNodesMatchingEventPattern, getAllNodeIds, } from './storyboard';
38
39
  export { InMemoryFileSystemAdapter } from '@principal-ai/repository-abstraction';
39
40
  // NOTE: The following require Node.js dependencies and are NOT exported in the main bundle.
40
41
  // Use '@principal-ai/principal-view-core/node' for Node.js-specific functionality:
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;AAiCrC,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;AAK5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,4FAA4F;AAC5F,mFAAmF;AACnF,EAAE;AACF,kFAAkF;AAClF,mDAAmD;AACnD,oDAAoD;AACpD,+DAA+D;AAC/D,2GAA2G;AAC3G,0FAA0F;AAC1F,uDAAuD;AACvD,8CAA8C;AAC9C,qEAAqE;AACrE,gEAAgE;AAChE,EAAE;AACF,WAAW;AACX,iIAAiI"}
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;AAiCrC,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;AAY5D,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,2GAA2G;AAC3G,0FAA0F;AAC1F,uDAAuD;AACvD,8CAA8C;AAC9C,qEAAqE;AACrE,gEAAgE;AAChE,EAAE;AACF,WAAW;AACX,iIAAiI"}
package/dist/node.d.ts CHANGED
@@ -43,6 +43,8 @@ export type { YamlParseResult } from './utils/YamlParser';
43
43
  export { LibraryLoader } from './LibraryLoader';
44
44
  export { LibraryConverter } from './utils/LibraryConverter';
45
45
  export type { CreateNodeOptions, CreateEdgeOptions } from './utils/LibraryConverter';
46
+ export { EventRegistry } from './registry/EventRegistry';
47
+ export type { EventSource } from './registry/EventRegistry';
46
48
  export type { FileSystemAdapter } from '@principal-ai/repository-abstraction';
47
49
  export { InMemoryFileSystemAdapter } from '@principal-ai/repository-abstraction';
48
50
  export * from './rules';
@@ -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
@@ -45,6 +45,8 @@ export { parseYaml, isYamlFile, getConfigNameFromFilename } from './utils/YamlPa
45
45
  // Export component library support (Node.js only - file system)
46
46
  export { LibraryLoader } from './LibraryLoader';
47
47
  export { LibraryConverter } from './utils/LibraryConverter';
48
+ // Export event registry (for cross-canvas event lookup)
49
+ export { EventRegistry } from './registry/EventRegistry';
48
50
  export { InMemoryFileSystemAdapter } from '@principal-ai/repository-abstraction';
49
51
  // Export rules engine (Node.js only - OpenTelemetry dependencies)
50
52
  export * from './rules';
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,4EAA4E;AAC5E,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE3F,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;AAK5D,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,4EAA4E;AAC5E,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE3F,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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * EventRegistry - indexes events across library and canvases
3
+ *
4
+ * Provides a centralized registry for looking up where events are defined,
5
+ * enabling improved validation error messages with actionable suggestions.
6
+ */
7
+ import type { ComponentLibrary } from '../types/library';
8
+ import type { ExtendedCanvas, PVEventSchema } from '../types/canvas';
9
+ /**
10
+ * Describes where an event is defined
11
+ */
12
+ export interface EventSource {
13
+ /** Whether the event is defined in the library or a canvas */
14
+ type: 'library' | 'canvas';
15
+ /** Path to the source file (library.yaml path or canvas path) */
16
+ path: string;
17
+ /** The full event schema if available */
18
+ eventSchema?: PVEventSchema;
19
+ }
20
+ /**
21
+ * EventRegistry indexes all events across a library and set of canvases.
22
+ *
23
+ * Build order (priority):
24
+ * 1. Library eventSchemas (the intended sharing mechanism)
25
+ * 2. Canvas inline events (pv.event)
26
+ * 3. Canvas eventRefs (pv.eventRef) - these reference library schemas
27
+ *
28
+ * Usage:
29
+ * ```typescript
30
+ * const registry = EventRegistry.build(library, canvases, libraryPath);
31
+ * const sources = registry.findEvent('cleanup.started');
32
+ * if (sources.length > 0) {
33
+ * // Event found - provide helpful error message
34
+ * }
35
+ * ```
36
+ */
37
+ export declare class EventRegistry {
38
+ private events;
39
+ private constructor();
40
+ /**
41
+ * Build an EventRegistry from a library and set of canvases.
42
+ *
43
+ * @param library - The component library (may be undefined)
44
+ * @param canvases - Map of canvas path to parsed canvas
45
+ * @param libraryPath - Path to the library file (for error messages)
46
+ * @returns A populated EventRegistry
47
+ */
48
+ static build(library: ComponentLibrary | undefined, canvases: Map<string, ExtendedCanvas>, libraryPath?: string): EventRegistry;
49
+ /**
50
+ * Add an event source to the registry
51
+ */
52
+ private addEvent;
53
+ /**
54
+ * Find all sources where an event is defined.
55
+ * Returns library sources first, then canvas sources.
56
+ *
57
+ * @param eventName - The event name to look up
58
+ * @returns Array of EventSource objects, empty if not found
59
+ */
60
+ findEvent(eventName: string): EventSource[];
61
+ /**
62
+ * Check if an event exists anywhere in the registry.
63
+ *
64
+ * @param eventName - The event name to check
65
+ * @returns true if the event is defined somewhere
66
+ */
67
+ hasEvent(eventName: string): boolean;
68
+ /**
69
+ * Get all known event names in the registry.
70
+ *
71
+ * @returns Array of event names, sorted alphabetically
72
+ */
73
+ getAllEventNames(): string[];
74
+ /**
75
+ * Get the count of registered events.
76
+ */
77
+ get size(): number;
78
+ }
79
+ //# sourceMappingURL=EventRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventRegistry.d.ts","sourceRoot":"","sources":["../../src/registry/EventRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO;IAIP;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CACV,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EACrC,WAAW,CAAC,EAAE,MAAM,GACnB,aAAa;IAsDhB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE;IAU3C;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * EventRegistry - indexes events across library and canvases
3
+ *
4
+ * Provides a centralized registry for looking up where events are defined,
5
+ * enabling improved validation error messages with actionable suggestions.
6
+ */
7
+ /**
8
+ * EventRegistry indexes all events across a library and set of canvases.
9
+ *
10
+ * Build order (priority):
11
+ * 1. Library eventSchemas (the intended sharing mechanism)
12
+ * 2. Canvas inline events (pv.event)
13
+ * 3. Canvas eventRefs (pv.eventRef) - these reference library schemas
14
+ *
15
+ * Usage:
16
+ * ```typescript
17
+ * const registry = EventRegistry.build(library, canvases, libraryPath);
18
+ * const sources = registry.findEvent('cleanup.started');
19
+ * if (sources.length > 0) {
20
+ * // Event found - provide helpful error message
21
+ * }
22
+ * ```
23
+ */
24
+ export class EventRegistry {
25
+ constructor() {
26
+ this.events = new Map();
27
+ }
28
+ /**
29
+ * Build an EventRegistry from a library and set of canvases.
30
+ *
31
+ * @param library - The component library (may be undefined)
32
+ * @param canvases - Map of canvas path to parsed canvas
33
+ * @param libraryPath - Path to the library file (for error messages)
34
+ * @returns A populated EventRegistry
35
+ */
36
+ static build(library, canvases, libraryPath) {
37
+ const registry = new EventRegistry();
38
+ // 1. Index library eventSchemas first (priority source)
39
+ if (library?.eventSchemas) {
40
+ const libPath = libraryPath ?? 'library.yaml';
41
+ for (const [eventName, schema] of Object.entries(library.eventSchemas)) {
42
+ const fullSchema = {
43
+ name: eventName,
44
+ description: schema.description,
45
+ attributes: schema.attributes,
46
+ };
47
+ registry.addEvent(eventName, {
48
+ type: 'library',
49
+ path: libPath,
50
+ eventSchema: fullSchema,
51
+ });
52
+ }
53
+ }
54
+ // 2. Index canvas events
55
+ for (const [canvasPath, canvas] of canvases) {
56
+ if (!canvas.nodes)
57
+ continue;
58
+ for (const node of canvas.nodes) {
59
+ if (!node.pv)
60
+ continue;
61
+ // Inline event definition (pv.event)
62
+ if (node.pv.event && typeof node.pv.event === 'object' && node.pv.event.name) {
63
+ registry.addEvent(node.pv.event.name, {
64
+ type: 'canvas',
65
+ path: canvasPath,
66
+ eventSchema: node.pv.event,
67
+ });
68
+ }
69
+ // Event reference (pv.eventRef) - note: these should resolve to library
70
+ // but we track them as canvas sources too for completeness
71
+ if (node.pv.eventRef && typeof node.pv.eventRef === 'string') {
72
+ // Only add if not already in registry (library takes priority)
73
+ if (!registry.hasEvent(node.pv.eventRef)) {
74
+ registry.addEvent(node.pv.eventRef, {
75
+ type: 'canvas',
76
+ path: canvasPath,
77
+ // No schema available - it's just a reference
78
+ });
79
+ }
80
+ }
81
+ }
82
+ }
83
+ return registry;
84
+ }
85
+ /**
86
+ * Add an event source to the registry
87
+ */
88
+ addEvent(eventName, source) {
89
+ const existing = this.events.get(eventName) ?? [];
90
+ // Avoid duplicate entries for the same path
91
+ if (!existing.some((s) => s.path === source.path && s.type === source.type)) {
92
+ existing.push(source);
93
+ this.events.set(eventName, existing);
94
+ }
95
+ }
96
+ /**
97
+ * Find all sources where an event is defined.
98
+ * Returns library sources first, then canvas sources.
99
+ *
100
+ * @param eventName - The event name to look up
101
+ * @returns Array of EventSource objects, empty if not found
102
+ */
103
+ findEvent(eventName) {
104
+ const sources = this.events.get(eventName) ?? [];
105
+ // Sort: library sources first, then canvases alphabetically
106
+ return [...sources].sort((a, b) => {
107
+ if (a.type === 'library' && b.type !== 'library')
108
+ return -1;
109
+ if (a.type !== 'library' && b.type === 'library')
110
+ return 1;
111
+ return a.path.localeCompare(b.path);
112
+ });
113
+ }
114
+ /**
115
+ * Check if an event exists anywhere in the registry.
116
+ *
117
+ * @param eventName - The event name to check
118
+ * @returns true if the event is defined somewhere
119
+ */
120
+ hasEvent(eventName) {
121
+ return this.events.has(eventName);
122
+ }
123
+ /**
124
+ * Get all known event names in the registry.
125
+ *
126
+ * @returns Array of event names, sorted alphabetically
127
+ */
128
+ getAllEventNames() {
129
+ return [...this.events.keys()].sort();
130
+ }
131
+ /**
132
+ * Get the count of registered events.
133
+ */
134
+ get size() {
135
+ return this.events.size;
136
+ }
137
+ }
138
+ //# sourceMappingURL=EventRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventRegistry.js","sourceRoot":"","sources":["../../src/registry/EventRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Storyboard Context Builder
3
+ *
4
+ * Utilities for building StoryboardContextSliceData from canvas and workflow artifacts.
5
+ * Used by hosts to create the context slice for panels like File City.
6
+ */
7
+ import type { ExtendedCanvas, ExtendedCanvasNode } from '../types/canvas';
8
+ import type { WorkflowTemplate, WorkflowScenario } from '../workflow/types';
9
+ import type { StoryboardReference, StoryboardContextSliceData } from './types';
10
+ /**
11
+ * Map of event name to canvas node IDs that emit that event.
12
+ */
13
+ export type EventNodeMap = Map<string, string[]>;
14
+ /**
15
+ * Options for building storyboard context.
16
+ */
17
+ export interface BuildStoryboardContextOptions {
18
+ /** The parsed canvas content */
19
+ canvas: ExtendedCanvas;
20
+ /** Storyboard metadata (id, name, path) */
21
+ storyboard: StoryboardReference;
22
+ /** Optional: Selected workflow template and its path */
23
+ workflow?: {
24
+ template: WorkflowTemplate;
25
+ path: string;
26
+ };
27
+ /** Optional: Selected scenario within the workflow */
28
+ scenario?: WorkflowScenario;
29
+ /** Optional: Additional supporting files to include */
30
+ additionalSupportingFiles?: string[];
31
+ }
32
+ /**
33
+ * Build a map of canvas node ID to source file paths.
34
+ * Extracts `pv.sources` from each node in the canvas.
35
+ *
36
+ * @param canvas - The extended canvas with nodes
37
+ * @returns Record mapping node IDs to their source file paths
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const nodeSources = buildNodeSourcesMap(canvas);
42
+ * // { 'node-abc': ['src/auth/login.ts'], 'node-xyz': ['src/api/fetch.ts'] }
43
+ * ```
44
+ */
45
+ export declare function buildNodeSourcesMap(canvas: ExtendedCanvas): Record<string, string[]>;
46
+ /**
47
+ * Build a map of event name to canvas node IDs.
48
+ * Uses `pv.event.name` or `pv.eventRef` from each node.
49
+ *
50
+ * @param canvas - The extended canvas with nodes
51
+ * @returns Map of event names to node IDs that emit those events
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const eventMap = buildEventNodeMap(canvas);
56
+ * // Map { 'auth.login' => ['node-abc'], 'api.fetch' => ['node-xyz', 'node-def'] }
57
+ * ```
58
+ */
59
+ export declare function buildEventNodeMap(canvas: ExtendedCanvas): EventNodeMap;
60
+ /**
61
+ * Get the event name from a canvas node.
62
+ * Checks `pv.event.name` first, then falls back to `pv.eventRef`.
63
+ *
64
+ * @param node - The canvas node
65
+ * @returns Event name or undefined if node doesn't emit events
66
+ */
67
+ export declare function getNodeEventName(node: ExtendedCanvasNode): string | undefined;
68
+ /**
69
+ * Resolve workflow scenario event requirements to canvas node IDs.
70
+ *
71
+ * Given a scenario's required events, finds which canvas nodes emit those events.
72
+ *
73
+ * @param canvas - The extended canvas with nodes
74
+ * @param scenario - The workflow scenario with event requirements
75
+ * @returns Array of canvas node IDs involved in this scenario
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const nodeIds = resolveScenarioNodeIds(canvas, scenario);
80
+ * // ['node-abc', 'node-xyz'] - nodes that emit events required by the scenario
81
+ * ```
82
+ */
83
+ export declare function resolveScenarioNodeIds(canvas: ExtendedCanvas, scenario: WorkflowScenario): string[];
84
+ /**
85
+ * Resolve workflow template to canvas node IDs.
86
+ *
87
+ * Returns all unique node IDs that are involved in any scenario of the workflow.
88
+ *
89
+ * @param canvas - The extended canvas with nodes
90
+ * @param workflow - The workflow template with scenarios
91
+ * @returns Array of canvas node IDs involved in this workflow
92
+ */
93
+ export declare function resolveWorkflowNodeIds(canvas: ExtendedCanvas, workflow: WorkflowTemplate): string[];
94
+ /**
95
+ * Find node IDs matching an event pattern (supports glob-style wildcards).
96
+ *
97
+ * @param eventMap - Map of event names to node IDs
98
+ * @param pattern - Event pattern (e.g., "auth.login", "*.error", "api.*")
99
+ * @returns Array of matching node IDs
100
+ */
101
+ export declare function findNodesMatchingEventPattern(eventMap: EventNodeMap, pattern: string): string[];
102
+ /**
103
+ * Get all node IDs from a canvas.
104
+ * Useful when no specific workflow/scenario is selected (widest scope).
105
+ *
106
+ * @param canvas - The extended canvas with nodes
107
+ * @returns Array of all node IDs in the canvas
108
+ */
109
+ export declare function getAllNodeIds(canvas: ExtendedCanvas): string[];
110
+ /**
111
+ * Build a complete StoryboardContextSliceData from canvas and optional workflow/scenario.
112
+ *
113
+ * This is the main function for creating the context slice that panels consume.
114
+ *
115
+ * @param options - Build options with canvas, storyboard, and optional workflow/scenario
116
+ * @returns Complete storyboard context slice data
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * // Just storyboard selected (widest scope)
121
+ * const context = buildStoryboardContext({
122
+ * canvas: parsedCanvas,
123
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
124
+ * });
125
+ *
126
+ * // With workflow selected (medium scope)
127
+ * const context = buildStoryboardContext({
128
+ * canvas: parsedCanvas,
129
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
130
+ * workflow: { template: workflowTemplate, path: 'workflow.workflow.json' },
131
+ * });
132
+ *
133
+ * // With scenario selected (narrowest scope)
134
+ * const context = buildStoryboardContext({
135
+ * canvas: parsedCanvas,
136
+ * storyboard: { id: 'checkout-flow', name: 'Checkout Flow', path: 'canvas.otel.canvas' },
137
+ * workflow: { template: workflowTemplate, path: 'workflow.workflow.json' },
138
+ * scenario: selectedScenario,
139
+ * });
140
+ * ```
141
+ */
142
+ export declare function buildStoryboardContext(options: BuildStoryboardContextOptions): StoryboardContextSliceData;
143
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/storyboard/builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EACV,mBAAmB,EAGnB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,gCAAgC;IAChC,MAAM,EAAE,cAAc,CAAC;IAEvB,2CAA2C;IAC3C,UAAU,EAAE,mBAAmB,CAAC;IAEhC,wDAAwD;IACxD,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,sDAAsD;IACtD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B,uDAAuD;IACvD,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAcpF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAiBtE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,GACzB,MAAM,EAAE,CAgBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,GACzB,MAAM,EAAE,CAWV;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAiBV;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAK9D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,0BAA0B,CA+C5B"}